diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index bbef34b52be1c58e2c867f5b68bc4105a2fe0097..1d732104b6edfd456e6e04176923f51f264cc7ce 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -7,7 +7,6 @@ The [developer documentation](http://www.mantidproject.org/Category:Development)
 
 Hints to make the integration of your changes easy (and happen faster):
 - Keep your pull requests small
-- Some comments are part of the build server infrastructure (e.g. 'test this please')
 - Don't forget your unit tests
 - All algorithms need documentation, don't forget the .rst file
 - Don't take changes requests to change your code personally
diff --git a/Code/Mantid/Build/CMake/CommonSetup.cmake b/Code/Mantid/Build/CMake/CommonSetup.cmake
index d0876357e91013655141b556ee9626d421b026fb..4d4eaa0fed705150ab8cb7be1b9dff97f2daa77d 100644
--- a/Code/Mantid/Build/CMake/CommonSetup.cmake
+++ b/Code/Mantid/Build/CMake/CommonSetup.cmake
@@ -45,7 +45,7 @@ set ( TESTING_TIMEOUT 300 CACHE INTEGER
 ###########################################################################
 
 set ( Boost_NO_BOOST_CMAKE TRUE )
-find_package ( Boost REQUIRED date_time regex ) 
+find_package ( Boost REQUIRED date_time regex )
 include_directories( SYSTEM ${Boost_INCLUDE_DIRS} )
 add_definitions ( -DBOOST_ALL_DYN_LINK )
 # Need this defined globally for our log time values
@@ -74,10 +74,11 @@ set ( CMAKE_INCLUDE_PATH ${MAIN_CMAKE_INCLUDE_PATH} )
 
 if (${CMAKE_SYSTEM_NAME} MATCHES "Windows" OR (APPLE AND OSX_VERSION VERSION_LESS 10.9))
   set (HDF5_DIR "${CMAKE_MODULE_PATH}")
-  find_package ( HDF5 COMPONENTS HL REQUIRED
+  find_package ( HDF5 COMPONENTS CXX HL REQUIRED
     CONFIGS hdf5-config.cmake )
+  add_definitions ( -DH5_BUILT_AS_DYNAMIC_LIB )
 else()
-  find_package ( HDF5 COMPONENTS HL REQUIRED )
+  find_package ( HDF5 COMPONENTS CXX HL REQUIRED )
 endif()
 
 find_package ( PythonInterp )
@@ -115,7 +116,7 @@ if ( GIT_FOUND )
     string ( REGEX MATCH "(g.*)[^\n]" MtdVersion_WC_LAST_CHANGED_SHA ${MtdVersion_WC_LAST_CHANGED_REV} )
 
     # Get the date of the last commit
-    execute_process ( COMMAND ${GIT_EXECUTABLE} log -1 --format=format:%cD OUTPUT_VARIABLE MtdVersion_WC_LAST_CHANGED_DATE 
+    execute_process ( COMMAND ${GIT_EXECUTABLE} log -1 --format=format:%cD OUTPUT_VARIABLE MtdVersion_WC_LAST_CHANGED_DATE
                       WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
     )
     string ( SUBSTRING ${MtdVersion_WC_LAST_CHANGED_DATE} 0 16 MtdVersion_WC_LAST_CHANGED_DATE )
@@ -251,7 +252,7 @@ endif ()
 if ( CMAKE_COMPILER_IS_GNUCXX )
   include ( GNUSetup )
 elseif ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
-  # Remove once clang warnings have been fixed. 
+  # Remove once clang warnings have been fixed.
   if ( NOT APPLE)
     include ( GNUSetup )
   endif ()
@@ -287,7 +288,7 @@ find_package ( GMock )
 if ( GMOCK_FOUND AND GTEST_FOUND )
   message ( STATUS "GMock/GTest (${GMOCK_VERSION}) is available for unit tests." )
 else ()
-  message ( STATUS "GMock/GTest is not available. Some unit tests will not run." ) 
+  message ( STATUS "GMock/GTest is not available. Some unit tests will not run." )
 endif()
 
 find_package ( PyUnitTest )
diff --git a/Code/Mantid/Build/CMake/FindPyQt.py b/Code/Mantid/Build/CMake/FindPyQt.py
index a8e636b8be82cfdc80931b665eb394026a0a9696..a7ac545f038a11ded969ffbf71055019a6b1e556 100644
--- a/Code/Mantid/Build/CMake/FindPyQt.py
+++ b/Code/Mantid/Build/CMake/FindPyQt.py
@@ -12,9 +12,9 @@ def get_default_sip_dir():
     # default case where installation paths have not been changed in PyQt's
     # configuration process.
     if sys.platform == 'win32':
-        pyqt_sip_dir = os.path.join(sys.platform, 'sip', 'PyQt4')
+        pyqt_sip_dir = os.path.join(sys.prefix, 'sip', 'PyQt4')
     else:
-        pyqt_sip_dir = os.path.join(sys.platform, 'share', 'sip', 'PyQt4')
+        pyqt_sip_dir = os.path.join(sys.prefix, 'share', 'sip', 'PyQt4')
     return pyqt_sip_dir
 
 def get_qt4_tag(sip_flags):
diff --git a/Code/Mantid/Build/CMake/FindPyQt4.cmake b/Code/Mantid/Build/CMake/FindPyQt4.cmake
index 91b69f0cea69ab2a207fde08163d7c6293c8eb75..a1c5bd87457bf7514eab5f08d4df92fb1d5046dd 100644
--- a/Code/Mantid/Build/CMake/FindPyQt4.cmake
+++ b/Code/Mantid/Build/CMake/FindPyQt4.cmake
@@ -45,7 +45,7 @@ ELSE(EXISTS PYQT4_VERSION)
     SET(PYQT4_VERSION_TAG "${CMAKE_MATCH_1}" CACHE STRING "The Qt4 version tag used by PyQt4's .sip files")
 
     STRING(REGEX MATCH ".*\npyqt_sip_dir:([^\n]+).*$" _dummy ${pyqt_config})
-    SET(PYQT4_SIP_DIR "${CMAKE_MATCH_1}" CACHE FILEPATH "The base directory where PyQt4's .sip files are installed")
+    SET(PYQT4_SIP_DIR "${CMAKE_MATCH_1}" CACHE PATH "The base directory where PyQt4's .sip files are installed")
 
     STRING(REGEX MATCH ".*\npyqt_sip_flags:([^\n]+).*$" _dummy ${pyqt_config})
     SET(PYQT4_SIP_FLAGS "${CMAKE_MATCH_1}" CACHE STRING "The SIP flags used to build PyQt4")
diff --git a/Code/Mantid/Build/CMake/Packaging/mantidpython.in b/Code/Mantid/Build/CMake/Packaging/mantidpython.in
index 4efa16c1591152d1faa4eaac76f59828fa0c6420..9261d00f1b3eb3e23915cfc3728964dec4b30651 100755
--- a/Code/Mantid/Build/CMake/Packaging/mantidpython.in
+++ b/Code/Mantid/Build/CMake/Packaging/mantidpython.in
@@ -25,7 +25,7 @@ fi
 PV_PLUGIN_PATH="${INSTALLDIR}/pvplugins/pvplugins"
 
 # Define extra libraries for python
-LOCAL_PYTHONPATH=@WRAPPER_PREFIX@$INSTALLDIR
+LOCAL_PYTHONPATH=$INSTALLDIR
 if [ -n "${PYTHONPATH}" ]; then
     LOCAL_PYTHONPATH=${LOCAL_PYTHONPATH}:${PYTHONPATH}
 fi
@@ -35,4 +35,4 @@ LD_PRELOAD=${LOCAL_PRELOAD} TCMALLOC_RELEASE_RATE=${TCM_RELEASE} \
     LD_LIBRARY_PATH=${LOCAL_LDPATH} QT_API=pyqt \
     PV_PLUGIN_PATH=${PV_PLUGIN_PATH} \
     PYTHONPATH=${LOCAL_PYTHONPATH} \
-    ${IPYTHON} $*@WRAPPER_POSTFIX@
+    @WRAPPER_PREFIX@${IPYTHON} $*@WRAPPER_POSTFIX@
diff --git a/Code/Mantid/Build/CMake/Packaging/rpm/scripts/rpm_post_install.sh.in b/Code/Mantid/Build/CMake/Packaging/rpm/scripts/rpm_post_install.sh.in
index d682ca80ddec983f3b12785503cda1804e795efc..295134ae8eb2f3341e39f884f2c29b823f7ead9a 100644
--- a/Code/Mantid/Build/CMake/Packaging/rpm/scripts/rpm_post_install.sh.in
+++ b/Code/Mantid/Build/CMake/Packaging/rpm/scripts/rpm_post_install.sh.in
@@ -22,4 +22,12 @@ if [ ${ENVVARS_ON_INSTALL} -eq 1 ]; then
     # Link profiles to /etc/profile.d
     ln -s $RPM_INSTALL_PREFIX0/@ETC_DIR@/mantid.sh /etc/profile.d/mantid.sh
     ln -s $RPM_INSTALL_PREFIX0/@ETC_DIR@/mantid.csh /etc/profile.d/mantid.csh
+else
+    # Create symbolic links in worlds path
+    if [ ! -L /usr/bin/mantidplot@CPACK_PACKAGE_SUFFIX@ ]; then
+        ln -s $RPM_INSTALL_PREFIX0/@BIN_DIR@/launch_mantidplot.sh /usr/bin/mantidplot@CPACK_PACKAGE_SUFFIX@
+    fi
+    if [ ! -L /usr/bin/mantidpython@CPACK_PACKAGE_SUFFIX@ ]; then
+        ln -s $RPM_INSTALL_PREFIX0/@BIN_DIR@/mantidpython /usr/bin/mantidpython@CPACK_PACKAGE_SUFFIX@
+    fi
 fi
diff --git a/Code/Mantid/Build/CMake/Packaging/rpm/scripts/rpm_pre_uninstall.sh.in b/Code/Mantid/Build/CMake/Packaging/rpm/scripts/rpm_pre_uninstall.sh.in
index 0c769fee24ddf49c5e0c7985e653334b9bcf58f9..8f9e9b3ffdacbc60039952ae11e2cbad6e1cda80 100644
--- a/Code/Mantid/Build/CMake/Packaging/rpm/scripts/rpm_pre_uninstall.sh.in
+++ b/Code/Mantid/Build/CMake/Packaging/rpm/scripts/rpm_pre_uninstall.sh.in
@@ -2,5 +2,14 @@
 #
 # RPM pre-uninstall script
 #
+ENVVARS_ON_INSTALL=@ENVVARS_ON_INSTALL_INT@
 
-# Nothing needs to be done
+if [ ${ENVVARS_ON_INSTALL} -eq 0 ]; then
+    if [ -L /usr/bin/mantidplot@CPACK_PACKAGE_SUFFIX@ ]; then
+        rm /usr/bin/mantidplot@CPACK_PACKAGE_SUFFIX@
+    fi
+
+    if [ -L /usr/bin/mantidpython@CPACK_PACKAGE_SUFFIX@ ]; then
+        rm /usr/bin/mantidpython@CPACK_PACKAGE_SUFFIX@
+    fi
+fi
diff --git a/Code/Mantid/Build/CMake/ParaViewSetup.cmake b/Code/Mantid/Build/CMake/ParaViewSetup.cmake
index 06421815464c194899c27e74855d5813f4781ee8..91fb527a5559d67e7d7dbe247555c281099e8c6b 100644
--- a/Code/Mantid/Build/CMake/ParaViewSetup.cmake
+++ b/Code/Mantid/Build/CMake/ParaViewSetup.cmake
@@ -1,7 +1,7 @@
 # This file will setup some common items that later setups depend on
 
 # Set the version of ParaView that is compatible with the Mantid code base
-set ( COMPATIBLE_PARAVIEW_VERSION "4.3.1" )
+set ( COMPATIBLE_PARAVIEW_VERSION "4.3.b40280" )
 
 # Set the name of the OSX application as this tends to be different
 set ( OSX_PARAVIEW_APP "paraview.app" )
diff --git a/Code/Mantid/Build/CMake/hdf5-config.cmake b/Code/Mantid/Build/CMake/hdf5-config.cmake
index 785262e199b4e15f2270bac3962575587552d0d1..cbe789b8d6e6dfde5b0bd9acefe2560c9c62f914 100644
--- a/Code/Mantid/Build/CMake/hdf5-config.cmake
+++ b/Code/Mantid/Build/CMake/hdf5-config.cmake
@@ -20,12 +20,12 @@ SET (HDF5_BUILD_SHARED_LIBS    ON)
 #-----------------------------------------------------------------------------
 # Directories
 #-----------------------------------------------------------------------------
-SET (HDF5_INCLUDE_DIRS "${THIRD_PARTY}/include/hdf5;${THIRD_PARTY}/include/hdf5/c++;${THIRD_PARTY}/include/hdf5/hl")
+SET (HDF5_INCLUDE_DIRS "${THIRD_PARTY}/include/hdf5;${THIRD_PARTY}/include/hdf5/cpp;${THIRD_PARTY}/include/hdf5/hl")
 
 IF (HDF5_BUILD_FORTRAN)
   MESSAGE (ERROR "Sorry - we don't supply the fortran bindings.")
 ENDIF (HDF5_BUILD_FORTRAN)
-  
+
 IF (HDF5_BUILD_CPP_LIB)
   SET (HDF5_INCLUDE_DIR_CPP ${HDF5_INCLUDE_DIRS} )
 ENDIF (HDF5_BUILD_CPP_LIB)
diff --git a/Code/Mantid/Build/Jenkins/buildscript b/Code/Mantid/Build/Jenkins/buildscript
index b3938615a1016d07fc45b99da23708cc1b09b3e9..56a4a9e709c6b439ce98552c490b11763f25549c 100755
--- a/Code/Mantid/Build/Jenkins/buildscript
+++ b/Code/Mantid/Build/Jenkins/buildscript
@@ -14,9 +14,9 @@ SCRIPT_DIR=$(dirname "$0")
 BUILDPKG=true
 
 ###############################################################################
-# All node currently have PARAVIEW_DIR=3.98.1 and PARAVIEW_NEXT_DIR=4.3.1
+# All node currently have PARAVIEW_DIR=4.3.b40280 and PARAVIEW_NEXT_DIR=4.3.1
 ###############################################################################
-export PARAVIEW_DIR=${PARAVIEW_NEXT_DIR}
+#export PARAVIEW_DIR=${PARAVIEW_DIR}
 
 ###############################################################################
 # Print out the versions of things we are using
diff --git a/Code/Mantid/Build/Jenkins/buildscript.bat b/Code/Mantid/Build/Jenkins/buildscript.bat
index 26bcc7cec9286b90adc377520295be9982df8b9a..a0e9bbd0a8d276964c488e086d045ca5c4e480cf 100755
--- a/Code/Mantid/Build/Jenkins/buildscript.bat
+++ b/Code/Mantid/Build/Jenkins/buildscript.bat
@@ -9,9 +9,8 @@ setlocal enableextensions enabledelayedexpansion
 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:: All node currently have PARAVIEW_DIR=3.98.1 and PARAVIEW_NEXT_DIR=4.3.1
+:: All nodes currently have PARAVIEW_DIR=4.3.b40280 and PARAVIEW_NEXT_DIR=4.3.1
 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-set PARAVIEW_DIR=%PARAVIEW_NEXT_DIR%
 
 set CMAKE_BIN_DIR=C:\Program Files (x86)\CMake 2.8\bin
 "%CMAKE_BIN_DIR%\cmake.exe" --version
diff --git a/Code/Mantid/Build/Jenkins/doctests b/Code/Mantid/Build/Jenkins/doctests
index b50aec0ed98aea7643e5caf162bd0d8702168213..f17f988f6d591144e7f8bc3bf244b77aa8fe99c7 100755
--- a/Code/Mantid/Build/Jenkins/doctests
+++ b/Code/Mantid/Build/Jenkins/doctests
@@ -66,7 +66,7 @@ rm -f $userprops
 
 data_binary_root=${WORKSPACE}/build/ExternalData
 testdata_dir=${data_binary_root}/Testing/Data
-instrument_dir=/opt/mantidnightly/instrument
+instrument_dir=${WORKSPACE}/Code/Mantid/instrument
 echo "datasearch.directories=${testdata_dir}/DocTest;${testdata_dir}/UnitTest;${instrument_dir}" > $userprops
 echo "UpdateInstrumentDefinitions.OnStartup = 0" >> $userprops
 echo "usagereports.enabled = 0" >> $userprops
diff --git a/Code/Mantid/Build/Jenkins/doctests.bat b/Code/Mantid/Build/Jenkins/doctests.bat
index 1ee2abba78e235caabd6282f2e42dc9ff103f3e4..d22f84d622632a8ef0a8f0ba3a6001891fabc816 100755
--- a/Code/Mantid/Build/Jenkins/doctests.bat
+++ b/Code/Mantid/Build/Jenkins/doctests.bat
@@ -13,7 +13,7 @@ setlocal enableextensions enabledelayedexpansion
 :: Print out the versions of things we are using
 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 set CMAKE_BIN_DIR=C:\Program Files (x86)\CMake 2.8\bin
-"%CMAKE_BIN_DIR%\cmake" --version 
+"%CMAKE_BIN_DIR%\cmake" --version
 echo %sha1%
 
 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@@ -85,7 +85,7 @@ echo usagereports.enabled = 0 >> C:\MantidInstall\bin\Mantid.user.properties
 :: User properties file cannot contain backslash characters
 set WORKSPACE_UNIX_STYLE=%WORKSPACE:\=/%
 set DATA_ROOT=!WORKSPACE_UNIX_STYLE!/build/ExternalData/Testing/Data
-echo datasearch.directories = !DATA_ROOT!/UnitTest;!DATA_ROOT!/DocTest;C:/MantidInstall/instrument >> C:\MantidInstall\bin\Mantid.user.properties
+echo datasearch.directories = !DATA_ROOT!/UnitTest;!DATA_ROOT!/DocTest;!WORKSPACE_UNIX_STYLE!/Code/Mantid/instrument >> C:\MantidInstall\bin\Mantid.user.properties
 
 :: Run tests
 C:\MantidInstall\bin\MantidPlot.exe -xq %BUILD_DIR%\docs\runsphinx_doctest.py
diff --git a/Code/Mantid/Build/Jenkins/systemtests.bat b/Code/Mantid/Build/Jenkins/systemtests.bat
index 75161531e9dbec0ad16d94d3275a43c2810c6788..e92af64ef036f4dca13c4c02e0d3327bb4bc4dc9 100755
--- a/Code/Mantid/Build/Jenkins/systemtests.bat
+++ b/Code/Mantid/Build/Jenkins/systemtests.bat
@@ -62,5 +62,6 @@ echo usagereports.enabled = 0 >> %USERPROPS%
 
 :: Run
 set PKGDIR=%WORKSPACE%\build
+set PATH=C:\MantidInstall\bin;C:\MantidInstall\plugins;%PATH%
 python %WORKSPACE%\Code\Mantid\Testing\SystemTests\scripts\InstallerTests.py -o -d %PKGDIR%
 
diff --git a/Code/Mantid/Build/class_maker.py b/Code/Mantid/Build/class_maker.py
index a902ef6164bd58c066449218038202a9887e40f4..5c585da28b47b4c477643eae05605f55adaaa1b5 100755
--- a/Code/Mantid/Build/class_maker.py
+++ b/Code/Mantid/Build/class_maker.py
@@ -320,6 +320,8 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 """ % (classname,classname,classname,classname)
 
     f.write(s)
diff --git a/Code/Mantid/Build/dev-packages/deb/mantid-developer/README b/Code/Mantid/Build/dev-packages/deb/mantid-developer/README
index cdf59f60170bbe4016cdfb65866aa519346ae394..2b9e6e253bf42579bc58bd69ce50aa97aff27d75 100644
--- a/Code/Mantid/Build/dev-packages/deb/mantid-developer/README
+++ b/Code/Mantid/Build/dev-packages/deb/mantid-developer/README
@@ -2,5 +2,5 @@ This directory contains the structure required to build the simple mantid-develo
 
 To build the package:
    * Switch to the directory containing this file
-   * Run "dpkg --build mantid-developer-1.2.4"
-   * A file called mantid-developer-1.2.4.deb will appear in the current directory.
+   * Run "dpkg --build mantid-developer-1.2.5"
+   * A file called mantid-developer-1.2.5.deb will appear in the current directory.
diff --git a/Code/Mantid/Build/dev-packages/deb/mantid-developer/mantid-developer-1.2.5/DEBIAN/control b/Code/Mantid/Build/dev-packages/deb/mantid-developer/mantid-developer-1.2.5/DEBIAN/control
new file mode 100644
index 0000000000000000000000000000000000000000..58b0055b7d4190626264169468d9cff5a00aad29
--- /dev/null
+++ b/Code/Mantid/Build/dev-packages/deb/mantid-developer/mantid-developer-1.2.5/DEBIAN/control
@@ -0,0 +1,13 @@
+Package: mantid-developer
+Version: 1.2.5
+Section: main
+Priority: optional
+Architecture: all
+Depends: g++, git, clang, cmake-qt-gui(>=2.8.12), qt4-qmake, qt4-dev-tools, libqt4-dbg, libpoco-dev(>=1.4.2), libboost-all-dev, libboost-dbg, libnexus0-dev, libgoogle-perftools-dev, libqwt5-qt4-dev, libqwtplot3d-qt4-dev, python-qt4-dev, libgsl0-dev, liboce-visualization-dev, libmuparser-dev, python-numpy, libssl-dev, libqscintilla2-dev, texlive,texlive-latex-extra, dvipng, libhdf4-dev, doxygen, python-sphinx, python-scipy, ipython-qtconsole (>=1.2.0), libhdf5-dev, libhdf4-dev, libpococrypto11-dbg, libpocodata11-dbg, libpocofoundation11-dbg, libpocomysql11-dbg, libpoconet11-dbg, libpoconetssl11-dbg, libpocoodbc11-dbg, libpocosqlite11-dbg, libpocoutil11-dbg, libpocoxml11-dbg, libpocozip11-dbg, python-qt4-dbg, qt4-default, ninja-build, libjsoncpp-dev, python-dateutil, python-sphinx-bootstrap-theme, graphviz, python-matplotlib
+Installed-Size: 0
+Maintainer: Mantid Project <mantid-help@mantidproject.org>
+Description: Installs all packages required for a Mantid developer
+ A metapackage which requires all the dependencies and tools that are 
+ required for Mantid development. It works for Ubuntu version 14.04, 14.10
+ Some packages (poco) must be newer than those in the Ubuntu repository. Please 
+ follow instructions at http://www.mantidproject.org/Mantid_Prerequisites#Repositories
diff --git a/Code/Mantid/Build/dev-packages/rpm/mantid-developer/mantid-developer.spec b/Code/Mantid/Build/dev-packages/rpm/mantid-developer/mantid-developer.spec
index 2ced1066488b81e8409ece1bea07d937dc4f166c..7a378d0fdbe682a7bf57721dfb655a962c20c36f 100644
--- a/Code/Mantid/Build/dev-packages/rpm/mantid-developer/mantid-developer.spec
+++ b/Code/Mantid/Build/dev-packages/rpm/mantid-developer/mantid-developer.spec
@@ -1,5 +1,5 @@
 Name:           mantid-developer
-Version:        1.10
+Version:        1.12
 Release:        1%{?dist}
 Summary:        Meta Package to install dependencies for Mantid Development
 
@@ -12,6 +12,7 @@ BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Requires: cmake-gui >= 2.8.12
 Requires: boost-devel
 %{?el6:Requires: epel-release}
+Requires: doxygen
 Requires: gperftools-devel
 Requires: gperftools-libs
 Requires: gcc-c++
@@ -31,6 +32,7 @@ Requires: PyQt4-devel
 Requires: python-devel
 Requires: python-ipython >= 1.1
 %{?el6:Conflicts: python-ipython >= 2.0}
+Requires: python-matplotlib
 Requires: python-pip
 Requires: python-sphinx
 Requires: qscintilla-devel
@@ -69,7 +71,7 @@ Requires: graphviz
 BuildArch: noarch
 
 %description
-A virtual package which requires all the dependencies and tools that are 
+A virtual package which requires all the dependencies and tools that are
 required for Mantid development.
 
 %prep
@@ -87,6 +89,9 @@ required for Mantid development.
 %files
 
 %changelog
+* Wed Jul 01 2015 Steven Hahn <hahnse@ornl.gov>
+- Added python-matplotlib dependency
+
 * Thu Feb 12 2015 Harry Jeffery <henry.jeffery@stfc.ac.uk>
 - Added graphviz dependency
 
@@ -133,7 +138,7 @@ required for Mantid development.
 - Added dependency on NeXus development after nexus rpm split.
 - Updated CMake dependency to 2.8.5 following 'the virus'!
 - Added Google Mock and GTest.
- 
+
 * Fri Jun  3 2011 Stuart Campbell <campbellsi@ornl.gov>
 - Added rpmdevtools and lsb dependencies
 
diff --git a/Code/Mantid/Framework/API/CMakeLists.txt b/Code/Mantid/Framework/API/CMakeLists.txt
index 28579ba638544c522cf49e8c92ff92c6cd7ee1c8..1db66c45ad5f443af2b439b0ff0a76037b02f9f7 100644
--- a/Code/Mantid/Framework/API/CMakeLists.txt
+++ b/Code/Mantid/Framework/API/CMakeLists.txt
@@ -292,6 +292,7 @@ set ( INC_FILES
 	inc/MantidAPI/Workspace_fwd.h
 	inc/MantidAPI/WorkspaceFactory.h
 	inc/MantidAPI/WorkspaceGroup.h
+	inc/MantidAPI/WorkspaceGroup_fwd.h
 	inc/MantidAPI/WorkspaceHistory.h
 	inc/MantidAPI/WorkspaceOpOverloads.h
 	inc/MantidAPI/WorkspaceProperty.h
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/CatalogManager.h b/Code/Mantid/Framework/API/inc/MantidAPI/CatalogManager.h
index 15a44960643bb96f3ca75c16b76c8df2296ccd36..a1ac26bb5e1f0b0489908177c3266b33932cfd62 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/CatalogManager.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/CatalogManager.h
@@ -4,6 +4,9 @@
 #include "MantidKernel/SingletonHolder.h"
 #include "MantidAPI/ICatalog.h"
 
+#include <map>
+#include <string>
+
 namespace Mantid {
 namespace API {
 /**
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/CompositeCatalog.h b/Code/Mantid/Framework/API/inc/MantidAPI/CompositeCatalog.h
index 7b52e9dea43d105d6ea351afadc6415cb2a25e4d..97f99fcb48950a065653508000876b85fa495868 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/CompositeCatalog.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/CompositeCatalog.h
@@ -3,6 +3,9 @@
 
 #include "MantidAPI/ICatalog.h"
 
+#include <list>
+#include <set>
+
 namespace Mantid {
 namespace API {
 /**
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/DataProcessorAlgorithm.h b/Code/Mantid/Framework/API/inc/MantidAPI/DataProcessorAlgorithm.h
index 5e0d9f4813e3bde804d2bddc6c239d38562e1b08..2cc4b78212ec9c2cdc8f8974d17eeaf7bda6f787 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/DataProcessorAlgorithm.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/DataProcessorAlgorithm.h
@@ -4,8 +4,8 @@
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/AlgorithmManager.h"
-#include "MantidAPI/ITableWorkspace.h"
-#include "MantidAPI/IEventWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
+#include "MantidAPI/IEventWorkspace_fwd.h"
 #include "MantidKernel/PropertyManager.h"
 #include <vector>
 
@@ -43,6 +43,8 @@ class DLLExport DataProcessorAlgorithm : public Algorithm {
 public:
   DataProcessorAlgorithm();
   virtual ~DataProcessorAlgorithm();
+  virtual std::string getPropertyValue(const std::string &name) const;
+  virtual TypedValue getProperty(const std::string &name) const;
 
 protected:
   virtual boost::shared_ptr<Algorithm> createChildAlgorithm(
@@ -52,6 +54,8 @@ protected:
   void setLoadAlg(const std::string &alg);
   void setLoadAlgFileProp(const std::string &filePropName);
   void setAccumAlg(const std::string &alg);
+  void setPropManagerPropName(const std::string &propName);
+  void mapPropertyName(const std::string &nameInProp, const std::string &nameInPropManager);
   ITableWorkspace_sptr determineChunk();
   void loadChunk();
   Workspace_sptr load(const std::string &inputData,
@@ -59,7 +63,7 @@ protected:
   std::vector<std::string> splitInput(const std::string &input);
   void forwardProperties();
   boost::shared_ptr<Kernel::PropertyManager>
-  getProcessProperties(const std::string &propertyManager);
+  getProcessProperties(const std::string &propertyManager=std::string()) const;
   /// MPI option. If false, we will use one job event if MPI is available
   bool m_useMPI;
   Workspace_sptr assemble(const std::string &partialWSName,
@@ -126,6 +130,11 @@ private:
   std::string m_accumulateAlg;
   /// An alternate filename property for the load algorithm
   std::string m_loadAlgFileProp;
+  /// The name of the parameter that names the property manager. The default
+  /// value is "ReductionProperties".
+  std::string m_propertyManagerPropertyName;
+  /// Map property names to names in supplied properties manager
+  std::map<std::string, std::string> m_nameToPMName;
 };
 
 } // namespace API
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/EnabledWhenWorkspaceIsType.h b/Code/Mantid/Framework/API/inc/MantidAPI/EnabledWhenWorkspaceIsType.h
index 81cbcac7806011ad556b2437a3d692216f0b4357..f19e831ea30248c71201ce9daa56fafdf999ce4e 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/EnabledWhenWorkspaceIsType.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/EnabledWhenWorkspaceIsType.h
@@ -6,7 +6,7 @@
 #include "MantidKernel/DataService.h"
 #include "MantidKernel/SingletonHolder.h"
 #include "MantidKernel/Exception.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidKernel/IPropertyManager.h"
 #include "MantidAPI/AnalysisDataService.h"
 
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/ExperimentInfo.h b/Code/Mantid/Framework/API/inc/MantidAPI/ExperimentInfo.h
index b2012724e47fef2fb3e55a07d33404130afdfb30..96114c6a5de01ce413cfd7d24d73c182e2a0d279 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/ExperimentInfo.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/ExperimentInfo.h
@@ -52,7 +52,7 @@ public:
   virtual const std::string toString() const;
 
   /// Instrument accessors
-  void setInstrument(const Geometry::Instrument_const_sptr &instr);
+  virtual void setInstrument(const Geometry::Instrument_const_sptr &instr);
   /// Returns the parameterized instrument
   virtual Geometry::Instrument_const_sptr getInstrument() const;
 
@@ -118,9 +118,14 @@ public:
   /// Saves this experiment description to the open NeXus file
   virtual void saveExperimentInfoNexus(::NeXus::File *file) const;
   /// Loads an experiment description from the open NeXus file
-  virtual void loadExperimentInfoNexus(::NeXus::File *file, std::string &parameterStr);
+  virtual void loadExperimentInfoNexus(const std::string& nxFilename, ::NeXus::File *file, std::string &parameterStr);
   /// Load the instrument from an open NeXus file.
-  virtual void loadInstrumentInfoNexus(::NeXus::File *file, std::string &parameterStr);
+  virtual void loadInstrumentInfoNexus(const std::string& nxFilename, ::NeXus::File *file, std::string &parameterStr);
+  /// Load the instrument from an open NeXus file without reading any parameters
+  virtual void loadInstrumentInfoNexus(const std::string& nxFilename, ::NeXus::File *file);
+  /// Load instrument parameters from an open Nexus file in Instument group if found there
+  virtual void loadInstrumentParametersNexus ( ::NeXus::File *file, std::string &parameterStr);
+
   /// Load the sample and log info from an open NeXus file.
   virtual void loadSampleAndLogInfoNexus(::NeXus::File *file);
   /// Populate the parameter map given a string
@@ -164,6 +169,14 @@ private:
                              const Geometry::XMLInstrumentParameter &paramInfo,
                              const Run &runData);
 
+  /// Attempt to load instrument embedded in Nexus file. *file must have instrument group open.
+  void loadEmbeddedInstrumentInfoNexus( ::NeXus::File *file, std::string &instrumentName, std::string &instrumentXML );
+
+  /// Set the instrument given the name and XML leading from IDF file if XML string is empty
+  void setInstumentFromXML( const std::string& nxFilename, std::string &instrumentName, std::string &instrumentXML );
+
+  //Loads the xml from an instrument file with some basic error handling
+  std::string loadInstrumentXML(const std::string& filename);
   /// Detector grouping information
   det2group_map m_detgroups;
   /// Mutex to protect against cow_ptr copying
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/FrameworkManager.h b/Code/Mantid/Framework/API/inc/MantidAPI/FrameworkManager.h
index e46e5b7f4028c8e36fa1ecc651a880e7da39eaa6..8addd56ba262084caa8b1405a18076ed67e21dbf 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/FrameworkManager.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/FrameworkManager.h
@@ -117,8 +117,12 @@ private:
   void setGlobalLocaleToAscii();
   /// Silence NeXus output
   void disableNexusOutput();
+  /// Starts asynchronous tasks that are done as part of Start-up
+  void AsynchronousStartupTasks();
   /// Update instrument definitions from github
   void UpdateInstrumentDefinitions();
+  ///check if a newer version of Mantid is available
+  void CheckIfNewerVersionIsAvailable();
   /// Sends startup usage information
   void SendStartupUsageInfo();
 
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/ICatalog.h b/Code/Mantid/Framework/API/inc/MantidAPI/ICatalog.h
index 3e83bb82531d9d0047958962f45e33240f1350cf..0f35426a9bcd235399be1081228c3f797a35507b 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/ICatalog.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/ICatalog.h
@@ -1,9 +1,12 @@
 #ifndef MANTID_API_ICATLOG_H_
 #define MANTID_API_ICATLOG_H_
 
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidAPI/CatalogSession.h"
 
+#include <string>
+#include <vector>
+
 namespace Mantid {
 namespace ICat {
 class CatalogSearchParam;
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IEventList.h b/Code/Mantid/Framework/API/inc/MantidAPI/IEventList.h
index 96da9e98d9cbc65397292f4c01b47cc017fba808..1f5a24541bdecf9135918954d4b680f3d3c7b5f0 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IEventList.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IEventList.h
@@ -2,8 +2,9 @@
 #define MANTID_API_IEVENTLIST_H_
 #include "MantidAPI/DllConfig.h"
 #include "MantidKernel/DateAndTime.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/ISpectrum.h"
+#include <functional>
 
 namespace Mantid {
 namespace API {
@@ -58,6 +59,8 @@ public:
   virtual double integrate(const double minX, const double maxX,
                            const bool entireRange) const = 0;
   /// Convert the TOF values
+  virtual void convertTof(std::function<double(double)> func, const int sorting=0) = 0;
+  /// Convert the TOF values
   virtual void convertTof(const double factor, const double offset = 0.) = 0;
   /// Scale the TOF values by a constant
   virtual void scaleTof(const double factor) = 0;
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IEventWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/IEventWorkspace.h
index 1004ac011db9d9ab60c26728c6406f170e45c5dd..ded85dbefab4106c8a1673ccf601c837de632ad5 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IEventWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IEventWorkspace.h
@@ -37,6 +37,13 @@ namespace API {
 */
 class MANTID_API_DLL IEventWorkspace : public MatrixWorkspace {
 public:
+  IEventWorkspace() : MatrixWorkspace() {}
+
+  /// Returns a clone of the workspace
+  std::unique_ptr<IEventWorkspace> clone() const {
+    return std::unique_ptr<IEventWorkspace>(doClone());
+  }
+
   /// Return the workspace typeID
   virtual const std::string id() const { return "IEventWorkspace"; }
   virtual std::size_t getNumberEvents() const = 0;
@@ -57,7 +64,16 @@ public:
   virtual void clearMRU() const = 0;
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  IEventWorkspace(const IEventWorkspace &other) : MatrixWorkspace(other) {}
+  /// Protected copy assignment operator. Assignment not implemented.
+  IEventWorkspace &operator=(const IEventWorkspace &other);
+
   virtual const std::string toString() const;
+
+private:
+  virtual IEventWorkspace *doClone() const = 0;
+
 };
 }
 }
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IFunctionMW.h b/Code/Mantid/Framework/API/inc/MantidAPI/IFunctionMW.h
index 70fd64776a900bf6a52f9b7cb1d289e6059225e4..4a30e198c40246cfed8600e48a91428f0a9fb2a9 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IFunctionMW.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IFunctionMW.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/IFunction.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/Unit.h"
 
 #ifndef Q_MOC_RUN
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IMDEventWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/IMDEventWorkspace.h
index 994d5c9a0c767d8453353da5f4dcc05e0ea14744..da0d69ffe73332641d686d28a75e4719c41e8ea1 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IMDEventWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IMDEventWorkspace.h
@@ -6,9 +6,9 @@
 #include "MantidAPI/ExperimentInfo.h"
 #include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/IMDWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidAPI/MultipleExperimentInfos.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidAPI/IMDNode.h"
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
 #include "MantidGeometry/MDGeometry/MDDimensionExtents.h"
@@ -32,9 +32,13 @@ class MANTID_API_DLL IMDEventWorkspace : public API::IMDWorkspace,
                                          public API::MultipleExperimentInfos {
 public:
   IMDEventWorkspace();
-  IMDEventWorkspace(const IMDEventWorkspace &other);
   virtual ~IMDEventWorkspace() {}
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<IMDEventWorkspace> clone() const {
+    return std::unique_ptr<IMDEventWorkspace>(doClone());
+  }
+
   /// Perform initialization after dimensions (and others) have been set.
   virtual void initialize() = 0;
 
@@ -82,10 +86,18 @@ public:
       const Mantid::Kernel::SpecialCoordinateSystem coordinateSystem) = 0;
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  IMDEventWorkspace(const IMDEventWorkspace &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  IMDEventWorkspace &operator=(const IMDEventWorkspace &other);
+
   virtual const std::string toString() const;
   /// Marker set to true when a file-backed workspace needs its back-end file
   /// updated (by calling SaveMD(UpdateFileBackEnd=1) )
   bool m_fileNeedsUpdating;
+
+private:
+  virtual IMDEventWorkspace *doClone() const = 0;
 };
 
 } // namespace MDEvents
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IMDEventWorkspace_fwd.h b/Code/Mantid/Framework/API/inc/MantidAPI/IMDEventWorkspace_fwd.h
index 135313a7fee71f3de89eeb7c91f9357c54f08f81..5292e6778e463b4efb2694eae8151d36419486d6 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IMDEventWorkspace_fwd.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IMDEventWorkspace_fwd.h
@@ -32,7 +32,7 @@ namespace API {
 */
 
 /// forward declare of Mantid::API::IMDEventWorkspace
-class MANTID_API_DLL IMDEventWorkspace;
+class IMDEventWorkspace;
 /// Shared pointer to Mantid::API::IMDEventWorkspace
 typedef boost::shared_ptr<IMDEventWorkspace> IMDEventWorkspace_sptr;
 /// Shared pointer to Mantid::API::IMDEventWorkspace (const version)
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IMDHistoWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/IMDHistoWorkspace.h
index c8d54229ae433a974fe0a44d4a7e93d5cb896ae0..3f9dd4549f9d36ebc464abbf2d83df7f4b9635a8 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IMDHistoWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IMDHistoWorkspace.h
@@ -39,9 +39,13 @@ class DLLExport IMDHistoWorkspace : public IMDWorkspace,
                                     public MultipleExperimentInfos {
 public:
   IMDHistoWorkspace();
-  IMDHistoWorkspace(const IMDHistoWorkspace &other);
   virtual ~IMDHistoWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<IMDHistoWorkspace> clone() const {
+    return std::unique_ptr<IMDHistoWorkspace>(doClone());
+  }
+
   /// See the MDHistoWorkspace definition for descriptions of these
   virtual coord_t getInverseVolume() const = 0;
   virtual signal_t *getSignalArray() const = 0;
@@ -92,11 +96,17 @@ public:
   virtual void setCoordinateSystem(
       const Kernel::SpecialCoordinateSystem coordinateSystem) = 0;
 
-  virtual boost::shared_ptr<IMDHistoWorkspace> clone() const = 0;
-
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  IMDHistoWorkspace(const IMDHistoWorkspace &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  IMDHistoWorkspace &operator=(const IMDHistoWorkspace &other);
+
   virtual const std::string toString() const;
+
+private:
+  virtual IMDHistoWorkspace *doClone() const = 0;
 };
 
 } // namespace API
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IMDNode.h b/Code/Mantid/Framework/API/inc/MantidAPI/IMDNode.h
index b04cf2042fbc0134e08f4181b2cd8b26dfd5ad0c..aafcd943395def25bdcf8c03d88bcbda7350c4cf 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IMDNode.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IMDNode.h
@@ -246,6 +246,9 @@ public:
   virtual void refreshCache(Kernel::ThreadScheduler * /*ts*/ = NULL) = 0;
   /** Calculate the centroid of this box and all sub-boxes. */
   virtual void calculateCentroid(coord_t * /*centroid*/) const = 0;
+  /** Calculate the centroid of this box and all sub-boxes. */
+  virtual void calculateCentroid(coord_t * /*centroid*/,
+                                 const int /*runindex*/) const = 0;
   /** Get the centroid of this box and all sub-boxes. */
   virtual coord_t *getCentroid() const = 0;
   //----------------------------------------------------------------------------------------------------------------------------------
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IMDWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/IMDWorkspace.h
index 664b55423a3c632adf1c1d4a2814d48095d01557..60ca7df82c32da0af0c6fa5fc48806ce7b67f74f 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IMDWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IMDWorkspace.h
@@ -13,7 +13,7 @@
 #include "MantidGeometry/MDGeometry/MDImplicitFunction.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidKernel/SpecialCoordinateSystem.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace Mantid {
 
@@ -70,9 +70,13 @@ enum MDNormalization {
 class MANTID_API_DLL IMDWorkspace : public Workspace, public API::MDGeometry {
 public:
   IMDWorkspace();
-  IMDWorkspace(const IMDWorkspace &other);
   virtual ~IMDWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<IMDWorkspace> clone() const {
+    return std::unique_ptr<IMDWorkspace>(doClone());
+  }
+
   /// Get the number of points associated with the workspace.
   /// For MDEvenWorkspace it is the number of events contributing into the
   /// workspace
@@ -134,7 +138,15 @@ public:
   virtual MDNormalization displayNormalization() const;
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  IMDWorkspace(const IMDWorkspace &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  IMDWorkspace &operator=(const IMDWorkspace &other);
+
   virtual const std::string toString() const;
+
+private:
+  virtual IMDWorkspace *doClone() const = 0;
 };
 
 /// Shared pointer to the IMDWorkspace base class
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IMaskWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/IMaskWorkspace.h
index ae10d79fa1443579827510ef799d884c6fc3bb1b..637f2147389e4682757b202894e5108856299ca3 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IMaskWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IMaskWorkspace.h
@@ -1,7 +1,11 @@
 #ifndef MANTID_API_IMASKWORKSPACE_H_
 #define MANTID_API_IMASKWORKSPACE_H_
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidGeometry/IDTypes.h"
+
+#include <boost/shared_ptr.hpp>
+#include <set>
+#include <string>
 
 namespace Mantid {
 namespace API {
@@ -31,6 +35,7 @@ namespace API {
 */
 class DLLExport IMaskWorkspace {
 public:
+  IMaskWorkspace() {}
   /// Return the workspace typeID
   virtual const std::string id() const { return "IMaskWorkspace"; }
   /// Total number of masked pixels
@@ -44,6 +49,12 @@ public:
   /// Set / remove masks of all detectors in a set
   virtual void setMasked(const std::set<detid_t> &detectorIDs,
                          const bool mask = true) = 0;
+
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  IMaskWorkspace(const IMaskWorkspace &other) { (void)other; }
+  /// Protected copy assignment operator. Assignment not implemented.
+  IMaskWorkspace &operator=(const IMaskWorkspace &other);
 };
 
 /// shared pointer to the matrix workspace base class
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IPeaksWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/IPeaksWorkspace.h
index 7ccf62e5264941d08bb572f8acdc2d26e7065a5f..8653b919960781d398096c789afea20ab2e6af91 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IPeaksWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IPeaksWorkspace.h
@@ -4,9 +4,9 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/ExperimentInfo.h"
 #include "MantidAPI/IPeaksWorkspace_fwd.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidKernel/SpecialCoordinateSystem.h"
 #include <boost/optional.hpp>
 
@@ -51,13 +51,14 @@ public:
   /// Ctor
   IPeaksWorkspace() : ITableWorkspace(), ExperimentInfo() {}
 
-  /// Copy constructor
-  IPeaksWorkspace(const IPeaksWorkspace &other)
-      : ITableWorkspace(other), ExperimentInfo(other) {}
-
   /// Destructor
   virtual ~IPeaksWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<IPeaksWorkspace> clone() const {
+    return std::unique_ptr<IPeaksWorkspace>(doClone());
+  }
+
   //---------------------------------------------------------------------------------------------
   /** @return the number of peaks
    */
@@ -151,7 +152,16 @@ public:
   virtual int peakInfoNumber(Kernel::V3D qLabFrame, bool labCoords) const = 0;
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  IPeaksWorkspace(const IPeaksWorkspace &other)
+      : ITableWorkspace(other), ExperimentInfo(other) {}
+  /// Protected copy assignment operator. Assignment not implemented.
+  IPeaksWorkspace &operator=(const IPeaksWorkspace &other);
+
   virtual const std::string toString() const;
+
+private:
+  virtual IPeaksWorkspace *doClone() const = 0;
 };
 
 }
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IRemoteJobManager.h b/Code/Mantid/Framework/API/inc/MantidAPI/IRemoteJobManager.h
index eb6d2ef97bd9dc3a643f69368c4be2be348d5757..c4c671d891850ea8647b50312391321fc6524608 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IRemoteJobManager.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IRemoteJobManager.h
@@ -99,6 +99,12 @@ public:
     /// Date-time the job finished. No particular format can be
     /// assumed
     Mantid::Kernel::DateAndTime completionTime;
+    /// Command line for this job (when running a command ideally this
+    /// would be provided by the underlying job scheduling
+    /// mechanism). As examples, Platform LSF provides this. For the
+    /// Mantid remote job submission API it probably doesn't add any
+    /// important information.
+    std::string cmdLine;
   };
 
   /**
@@ -116,6 +122,19 @@ public:
   virtual void authenticate(const std::string &username,
                             const std::string &password) = 0;
 
+  /**
+   * Logout from the remote resource (close session). Depending on the
+   * underlying scheduler and authentication system this may have
+   * different implementations and effects. In some cases, like the
+   * Mantid Remote Job Submission API v1, this may not send any
+   * request to the remote.
+   *
+   * @param username Username on the remote resource.
+   *
+   * @throws std::runtime_error If the operation fails
+   */
+  virtual void logout(const std::string &username) = 0;
+
   /**
    * Submit a job (and implicitly request to start it) within a
    * transaction.
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/ISplittersWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/ISplittersWorkspace.h
index f62d8d9d98eb5458d5c886391e70007c16947c91..a5ce31c2d20c6af45ad743fff26353378ec4829d 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/ISplittersWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/ISplittersWorkspace.h
@@ -1,8 +1,7 @@
 #ifndef MANTID_API_ISPLITTERSWORKSPACE_H_
 #define MANTID_API_ISPLITTERSWORKSPACE_H_
 
-#include "MantidKernel/System.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/DllConfig.h"
 #include "MantidKernel/TimeSplitter.h"
 
 namespace Mantid {
@@ -34,18 +33,23 @@ namespace API {
   File change history is stored at: <https://github.com/mantidproject/mantid>
   Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class DLLExport ISplittersWorkspace : virtual public API::ITableWorkspace {
+class MANTID_API_DLL ISplittersWorkspace {
 public:
   /*
    * Constructor
    */
-  ISplittersWorkspace() : API::ITableWorkspace() {}
+  ISplittersWorkspace() {}
 
   /*
    * Destructor
    */
   virtual ~ISplittersWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<ISplittersWorkspace> clone() const {
+    return std::unique_ptr<ISplittersWorkspace>(doClone());
+  }
+
   /*
    * Add a time splitter to table workspace
    */
@@ -66,6 +70,15 @@ public:
    * Remove one entry of a splitter
    */
   virtual bool removeSplitter(size_t splitterindex) = 0;
+
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  ISplittersWorkspace(const ISplittersWorkspace &other) { UNUSED_ARG(other) }
+  /// Protected copy assignment operator. Assignment not implemented.
+  ISplittersWorkspace &operator=(const ISplittersWorkspace &other);
+
+private:
+  virtual ISplittersWorkspace *doClone() const = 0;
 };
 
 /// Typedef for a shared pointer to \c TableWorkspace
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/ITableWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/ITableWorkspace.h
index 86d6ffafd558f5deaa58ec30970fe2e4e21b786a..aa39ffe62454be6966f94496f4d0428c00b659f1 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/ITableWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/ITableWorkspace.h
@@ -123,6 +123,11 @@ public:
   /// Virtual destructor.
   virtual ~ITableWorkspace() {}
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<ITableWorkspace> clone() const {
+    return std::unique_ptr<ITableWorkspace>(doClone());
+  }
+
   /// Return the workspace typeID
   virtual const std::string id() const { return "ITableWorkspace"; }
   virtual const std::string toString() const;
@@ -144,9 +149,6 @@ public:
   /// Removes a column.
   virtual void removeColumn(const std::string &name) = 0;
 
-  /// Clones the table workspace
-  virtual ITableWorkspace *clone() const = 0;
-
   /// Number of columns in the workspace.
   virtual size_t columnCount() const = 0;
 
@@ -306,6 +308,11 @@ public:
   void modified();
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  ITableWorkspace(const ITableWorkspace &other) : Workspace(other) {}
+  /// Protected copy assignment operator. Assignment not implemented.
+  ITableWorkspace &operator=(const ITableWorkspace &other);
+
   /**  Resize a column.
          @param c :: Pointer to the column
          @param size :: New column size
@@ -324,6 +331,9 @@ protected:
          @param index :: Index of the element to be removed.
    */
   void removeFromColumn(Column *c, size_t index) { c->remove(index); }
+
+private:
+  virtual ITableWorkspace *doClone() const = 0;
 };
 
 // =====================================================================================
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/IWorkspaceProperty.h b/Code/Mantid/Framework/API/inc/MantidAPI/IWorkspaceProperty.h
index 0ae415a9d63da7a3de76d336b60685827f8e6bbd..ecaf3e18972fa4db6b6fe78b2be74f5d6fcf7230 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/IWorkspaceProperty.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/IWorkspaceProperty.h
@@ -4,7 +4,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 namespace Mantid {
 namespace API {
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/MDGeometry.h b/Code/Mantid/Framework/API/inc/MantidAPI/MDGeometry.h
index 33a0804517ca1b926ee94e8994fd8db42154dd4f..4b4a60750661406e54d55011595fab6cd5176a2c 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/MDGeometry.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/MDGeometry.h
@@ -80,6 +80,7 @@ public:
   Mantid::Kernel::VMD &getBasisVector(size_t index);
   const Mantid::Kernel::VMD &getBasisVector(size_t index) const;
   void setBasisVector(size_t index, const Mantid::Kernel::VMD &vec);
+  bool allBasisNormalized() const;
 
   // --------------------------------------------------------------------------------------------
   bool hasOriginalWorkspace(size_t index = 0) const;
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/MatrixWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/MatrixWorkspace.h
index 97e51c68d6ef84012adfab4fbe469dc396d49b37..094cfc1355897d25cdf597d3ca5816eb6a296c27 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/MatrixWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/MatrixWorkspace.h
@@ -82,6 +82,11 @@ public:
   /// Delete
   virtual ~MatrixWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<MatrixWorkspace> clone() const {
+    return std::unique_ptr<MatrixWorkspace>(doClone());
+  }
+
   using IMDWorkspace::toString;
   /// String description of state
   const std::string toString() const;
@@ -117,7 +122,7 @@ public:
                      const bool ignoreMaskedDetectors = false) const;
   //@}
 
-  void updateSpectraUsing(const SpectrumDetectorMapping &map);
+  virtual void updateSpectraUsing(const SpectrumDetectorMapping &map);
   /// Build the default spectra mapping, most likely wanted after an instrument
   /// update
   void rebuildSpectraMapping(const bool includeMonitors = true);
@@ -126,10 +131,10 @@ public:
   spec2index_map getSpectrumToWorkspaceIndexMap() const;
   detid2index_map
   getDetectorIDToWorkspaceIndexMap(bool throwIfMultipleDets = false) const;
-  void
+  virtual void
   getDetectorIDToWorkspaceIndexVector(std::vector<size_t> &out, detid_t &offset,
                                       bool throwIfMultipleDets = false) const;
-  void getSpectrumToWorkspaceIndexVector(std::vector<size_t> &out,
+  virtual void getSpectrumToWorkspaceIndexVector(std::vector<size_t> &out,
                                          specid_t &offset) const;
   void getIndicesFromSpectra(const std::vector<specid_t> &spectraList,
                              std::vector<size_t> &indexList) const;
@@ -158,7 +163,7 @@ public:
   /// Gets MatrixWorkspace title (same as Run object run_title property)
   virtual const std::string getTitle() const;
 
-  Kernel::DateAndTime getFirstPulseTime() const;
+  virtual Kernel::DateAndTime getFirstPulseTime() const;
   Kernel::DateAndTime getLastPulseTime() const;
 
   /// Returns the bin index for a given X value of a given workspace index
@@ -303,7 +308,7 @@ public:
   //----------------------------------------------------------------------
 
   int axes() const;
-  Axis *getAxis(const std::size_t &axisIndex) const;
+  virtual Axis *getAxis(const std::size_t &axisIndex) const;
   void replaceAxis(const std::size_t &axisIndex, Axis *const newAxis);
 
   /// Returns true if the workspace contains data in histogram form (as opposed
@@ -337,7 +342,7 @@ public:
   const MaskList &maskedBins(const size_t &spectrumIndex) const;
 
   // Methods handling the internal monitor workspace
-  void setMonitorWorkspace(const boost::shared_ptr<MatrixWorkspace> &monitorWS);
+  virtual void setMonitorWorkspace(const boost::shared_ptr<MatrixWorkspace> &monitorWS);
   boost::shared_ptr<MatrixWorkspace> monitorWorkspace() const;
 
   void saveInstrumentNexus(::NeXus::File *file) const;
@@ -426,6 +431,11 @@ public:
   //=====================================================================================
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  MatrixWorkspace(const MatrixWorkspace &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  MatrixWorkspace &operator=(const MatrixWorkspace &other);
+
   MatrixWorkspace(Mantid::Geometry::INearestNeighboursFactory *factory = NULL);
 
   /// Initialises the workspace. Sets the size and lengths of the arrays. Must
@@ -441,10 +451,8 @@ protected:
   std::vector<Axis *> m_axes;
 
 private:
-  /// Private copy constructor. NO COPY ALLOWED
-  MatrixWorkspace(const MatrixWorkspace &);
-  /// Private copy assignment operator. NO ASSIGNMENT ALLOWED
-  MatrixWorkspace &operator=(const MatrixWorkspace &);
+  virtual MatrixWorkspace *doClone() const = 0;
+
   /// Create an MantidImage instance.
   MantidImage_sptr
   getImage(const MantidVec &(MatrixWorkspace::*read)(std::size_t const) const,
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/MatrixWorkspaceMDIterator.h b/Code/Mantid/Framework/API/inc/MantidAPI/MatrixWorkspaceMDIterator.h
index 7106230a861fd136a629d0e953244ef8e06ebbba..a9c7d075e515c9930565609bbe8592360dbc33f0 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/MatrixWorkspaceMDIterator.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/MatrixWorkspaceMDIterator.h
@@ -3,8 +3,9 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/IMDIterator.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/MDGeometry/MDImplicitFunction.h"
+#include "MantidKernel/cow_ptr.h"
 
 namespace Mantid {
 namespace API {
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/MultiPeriodGroupWorker.h b/Code/Mantid/Framework/API/inc/MantidAPI/MultiPeriodGroupWorker.h
index 4aada0f6c0815f2633523c82aa3e88d5524d5d8d..5416238399d099285c33e8788f7c544aa5569b4b 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/MultiPeriodGroupWorker.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/MultiPeriodGroupWorker.h
@@ -2,7 +2,7 @@
 #define MANTID_API_MULTIPERIODGROUPWORKER_H_
 
 #include "MantidKernel/System.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 #include "MantidAPI/Algorithm.h"
 #include <string>
 #include <vector>
@@ -46,7 +46,7 @@ namespace API {
 class DLLExport MultiPeriodGroupWorker {
 public:
   /// Convenience typdef for workspace names.
-  typedef std::vector<boost::shared_ptr<Mantid::API::WorkspaceGroup>>
+  typedef std::vector<WorkspaceGroup_sptr>
       VecWSGroupType;
   /// Constructor
   MultiPeriodGroupWorker();
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/Projection.h b/Code/Mantid/Framework/API/inc/MantidAPI/Projection.h
index 0a5f5c3eaf339b2ff068f7ea24b3ad6cf315c3cd..08dfa8da8bf8289dd442d8dbbfc3c7baf06b503f 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/Projection.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/Projection.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_API_PROJECTION_H_
 #define MANTID_API_PROJECTION_H_
 
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidKernel/V3D.h"
 
 #include <stdexcept>
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/ScopedWorkspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/ScopedWorkspace.h
index 50595222e3f2406b1ca07f36a50f9d181d0a5da5..bd717d5357c31b72495100a47e7107e14acfa2e2 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/ScopedWorkspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/ScopedWorkspace.h
@@ -5,7 +5,7 @@
 
 #include "MantidKernel/ClassMacros.h"
 #include "MantidKernel/System.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 namespace Mantid {
 namespace API {
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/Workspace.h b/Code/Mantid/Framework/API/inc/MantidAPI/Workspace.h
index 3bedb2d2e448c0dbbb695a787cb8cbab8cf9ac9a..ad28cd4e34b9b028a5fed68ea0dbf03069d2b7f5 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/Workspace.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/Workspace.h
@@ -54,9 +54,31 @@ class AnalysisDataServiceImpl;
 class MANTID_API_DLL Workspace : public Kernel::DataItem {
 public:
   Workspace();
-  Workspace(const Workspace &other);
   virtual ~Workspace();
 
+  /** Returns a clone (copy) of the workspace with covariant return type in all
+   * derived classes.
+   *
+   * Note that this public function is *not* virtual. This has two reasons:
+   * - We want to enforce covariant return types. If this public clone() method
+   *   was virtual some derived class might fail to reimplement it. Since there
+   *   are several levels of inheritance in the Workspace inheritance tree we
+   *   cannot just use a pure virtual method in the base class. Thus, we use
+   *   this non-virtual interface method which calls the private and virtual
+   *   doClone() method. Since it is private, failing to reimplement it will
+   *   cause a compiler error as a reminder. Note that this mechanism does not
+   *   always work if a derived class does not implement clone(): if doClone()
+   *   in a parent is implemented then calling clone on a base class will return
+   *   a clone of the parent defining doClone, not the actual instance. This is
+   *   more a problem of the inheritance structure, i.e., whether or not all
+   *   non-leaf classes are pure virtual and declare doClone()=0.
+   * - Covariant return types are in conflict with smart pointers, but if
+   *   clone() is not virtual this is a non-issue.
+   */
+  std::unique_ptr<Workspace> clone() const {
+    return std::unique_ptr<Workspace>(doClone());
+  }
+
   // DataItem interface
   /// Name
   virtual const std::string name() const { return this->getName(); }
@@ -84,6 +106,12 @@ public:
   /// Returns a reference to the WorkspaceHistory const
   const WorkspaceHistory &getHistory() const { return m_history; }
 
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  Workspace(const Workspace &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  Workspace &operator=(const Workspace &other);
+
 private:
   void setName(const std::string &);
   /// The title of the workspace
@@ -96,6 +124,9 @@ private:
   /// The history of the workspace, algorithm and environment
   WorkspaceHistory m_history;
 
+  /// Virtual clone method. Not implemented to force implementation in childs.
+  virtual Workspace *doClone() const = 0;
+
   friend class AnalysisDataServiceImpl;
 };
 
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceGroup.h b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceGroup.h
index 7ab045f9d9002e26f222a9e3380872bd6b5cbe17..8484a6e4b7d23728f9225ead97706612409102d4 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceGroup.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceGroup.h
@@ -4,7 +4,8 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 #include "MantidAPI/AnalysisDataService.h"
 
 #include <Poco/NObserver.h>
@@ -109,11 +110,16 @@ public:
 
   //@}
 
-private:
-  /// Private, unimplemented copy constructor
+protected:
+  /// Protected, unimplemented copy constructor
   WorkspaceGroup(const WorkspaceGroup &ref);
-  /// Private, unimplemented copy assignment operator
+  /// Protected, unimplemented copy assignment operator
   const WorkspaceGroup &operator=(const WorkspaceGroup &);
+
+private:
+  virtual WorkspaceGroup *doClone() const {
+    throw std::runtime_error("Cloning of WorkspaceGroup is not implemented.");
+  }
   /// ADS removes a member of this group using this method. It doesn't send
   /// notifications in contrast to remove(name).
   void removeByADS(const std::string &name);
@@ -145,11 +151,6 @@ private:
   friend class Algorithm;
 };
 
-/// Shared pointer to a workspace group class
-typedef boost::shared_ptr<WorkspaceGroup> WorkspaceGroup_sptr;
-/// Shared pointer to a workspace group class (const version)
-typedef boost::shared_ptr<const WorkspaceGroup> WorkspaceGroup_const_sptr;
-
 } // namespace API
 } // namespace Mantid
 
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceGroup_fwd.h b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceGroup_fwd.h
new file mode 100644
index 0000000000000000000000000000000000000000..d42a5219206f97ab0e9fcdd7e8c3819aeb4a38ea
--- /dev/null
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceGroup_fwd.h
@@ -0,0 +1,43 @@
+#ifndef MANTID_API_WORKSPACEGROUP_FWD_H_
+#define MANTID_API_WORKSPACEGROUP_FWD_H_
+
+#include <boost/shared_ptr.hpp>
+
+namespace Mantid {
+namespace API {
+/**
+  This file provides forward declarations for Mantid::API::WorkspaceGroup
+
+  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>
+*/
+
+/// forward declare of Mantid::API::WorkspaceGroup
+class WorkspaceGroup;
+/// shared pointer to Mantid::API::WorkspaceGroup
+typedef boost::shared_ptr<WorkspaceGroup> WorkspaceGroup_sptr;
+/// shared pointer to Mantid::API::WorkspaceGroup, pointer to const version
+typedef boost::shared_ptr<const WorkspaceGroup> WorkspaceGroup_const_sptr;
+
+} // namespace API
+} // namespace Mantid
+
+#endif // MANTID_API_WORKSPACEGROUP_FWD_H_
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceOpOverloads.h b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceOpOverloads.h
index f5afc19a6cccebb797751bc9f35e2b778bd26007..d9fb89ad7fa417004713376ff7f21b1009c2434b 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceOpOverloads.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceOpOverloads.h
@@ -2,7 +2,7 @@
 #define MANTID_API_WORKOPOVERLOADS_H_
 
 #include "MantidAPI/DllConfig.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace API {
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceProperty.h b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceProperty.h
index d1bf001ff050a1be0b7e379cd73190bc511e0a52..0d672838856ed870fb56fe9748e1628efb487444 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceProperty.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceProperty.h
@@ -269,6 +269,9 @@ public:
       // Workspace groups will not have a value since they are not of type TYPE
       if (!Kernel::PropertyWithValue<boost::shared_ptr<TYPE>>::m_value) {
         Mantid::API::Workspace_sptr wksp;
+        //if the workspace name is empty then there is no point asking the ADS
+        if (m_workspaceName.empty()) return isOptionalWs();
+
         try {
           wksp = AnalysisDataService::Instance().retrieve(m_workspaceName);
         } catch (Kernel::Exception::NotFoundError &) {
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/Workspace_fwd.h b/Code/Mantid/Framework/API/inc/MantidAPI/Workspace_fwd.h
index 6c1b9699fed2ee01beebe61c2a6d0149fed8d95e..6336d08699a2709a5a486e49385bca8a43400395 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/Workspace_fwd.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/Workspace_fwd.h
@@ -1,6 +1,8 @@
 #ifndef MANTID_API_WORKSPACE_FWD_H_
 #define MANTID_API_WORKSPACE_FWD_H_
 
+#include <boost/shared_ptr.hpp>
+
 namespace Mantid {
 namespace API {
 /**
diff --git a/Code/Mantid/Framework/API/src/Algorithm.cpp b/Code/Mantid/Framework/API/src/Algorithm.cpp
index 1fba0af0a23971522df06472d5012a76147acfbf..40965c404d312ae1a4228db270dc8e134905067b 100644
--- a/Code/Mantid/Framework/API/src/Algorithm.cpp
+++ b/Code/Mantid/Framework/API/src/Algorithm.cpp
@@ -39,6 +39,21 @@ namespace API {
 namespace {
 /// Separator for workspace types in workspaceMethodOnTypes member
 const std::string WORKSPACE_TYPES_SEPARATOR = ";";
+
+class WorkspacePropertyValueIs {
+public:
+  WorkspacePropertyValueIs(const std::string &value)
+      : m_value(value) {};
+  bool operator()(IWorkspaceProperty *property) {
+    Property *prop = dynamic_cast<Property *>(property);
+    if (!prop)
+      return false;
+    return prop->value() == m_value;
+  }
+
+private:
+  const std::string& m_value;
+};
 }
 
 // Doxygen can't handle member specialization at the moment:
@@ -1323,10 +1338,25 @@ bool Algorithm::processGroups() {
       if (Property *prop =
               dynamic_cast<Property *>(m_pureOutputWorkspaceProps[owp])) {
         // Default name = "in1_in2_out"
-        std::string outName = outputBaseName + "_" + prop->value();
-        // Except if all inputs had similar names, then the name is "out_1"
+        const std::string inName = prop->value();
+        std::string outName;
         if (m_groupsHaveSimilarNames)
-          outName = prop->value() + "_" + Strings::toString(entry + 1);
+          outName = inName + "_" + Strings::toString(entry + 1);
+        else
+          outName = outputBaseName + "_" + inName;
+
+        auto inputProp = std::find_if(m_inputWorkspaceProps.begin(),
+                                      m_inputWorkspaceProps.end(), WorkspacePropertyValueIs(inName));
+
+        // Overwrite workspaces in any input property if they have the same
+        // name as an output (i.e. copy name button in algorithm dialog used)
+        // (only need to do this for a single input, multiple will be handled
+        // by ADS)
+        if (inputProp != m_inputWorkspaceProps.end()) {
+          const auto & inputGroup = m_groups[inputProp - m_inputWorkspaceProps.begin()];
+          if ( !inputGroup.empty()) outName = inputGroup[entry]->name();
+        }
+        // Except if all inputs had similar names, then the name is "out_1"
 
         // Set in the output
         alg->setPropertyValue(prop->name(), outName);
diff --git a/Code/Mantid/Framework/API/src/AlgorithmProxy.cpp b/Code/Mantid/Framework/API/src/AlgorithmProxy.cpp
index 5d737e8c5f087e5de7d2a350c26345902890a8bb..492ae5a3139deda6c800451ec811601b969156d0 100644
--- a/Code/Mantid/Framework/API/src/AlgorithmProxy.cpp
+++ b/Code/Mantid/Framework/API/src/AlgorithmProxy.cpp
@@ -51,7 +51,7 @@ AlgorithmID AlgorithmProxy::getAlgorithmID() const {
 /** Perform whole-input validation */
 std::map<std::string, std::string> AlgorithmProxy::validateInputs() {
   if (!m_alg)
-    createConcreteAlg();
+    createConcreteAlg(true);
   return m_alg->validateInputs();
 }
 
@@ -66,7 +66,7 @@ std::map<std::string, std::string> AlgorithmProxy::validateInputs() {
 *be executed
 */
 bool AlgorithmProxy::execute() {
-  createConcreteAlg();
+  createConcreteAlg(false);
   try {
     m_alg->execute();
   } catch (...) {
@@ -92,7 +92,7 @@ Poco::ActiveResult<bool> AlgorithmProxy::executeAsync() {
 *  @param dummy :: An unused dummy variable
 */
 bool AlgorithmProxy::executeAsyncImpl(const Poco::Void &dummy) {
-  createConcreteAlg();
+  createConcreteAlg(false);
   // Call Algorithm::executeAsyncImpl rather than executeAsync() because the
   // latter
   // would spawn off another (3rd) thread which is unecessary.
@@ -204,7 +204,6 @@ void AlgorithmProxy::setPropertyValue(const std::string &name,
   createConcreteAlg(true);
   m_alg->setPropertyValue(name, value);
   copyPropertiesFrom(*m_alg);
-  m_alg.reset();
 }
 
 /**
@@ -217,7 +216,6 @@ void AlgorithmProxy::afterPropertySet(const std::string &name) {
       ->setValueFromProperty(*this->getPointerToProperty(name));
   m_alg->afterPropertySet(name);
   copyPropertiesFrom(*m_alg);
-  m_alg.reset();
 }
 
 //----------------------------------------------------------------------
@@ -231,12 +229,19 @@ void AlgorithmProxy::afterPropertySet(const std::string &name) {
 * also be added and rethrows will be true
 */
 void AlgorithmProxy::createConcreteAlg(bool initOnly) {
-  m_alg = boost::dynamic_pointer_cast<Algorithm>(
-      AlgorithmManager::Instance().createUnmanaged(name(), version()));
-  m_alg->initializeFromProxy(*this);
-  if (!initOnly) {
-    m_alg->setRethrows(this->m_rethrow);
-    addObservers();
+  if ((m_alg) && initOnly)
+  {
+    //the cached algorithm exists and is not going to be executed,
+    //use that one
+  }
+  else {
+    m_alg = boost::dynamic_pointer_cast<Algorithm>(
+        AlgorithmManager::Instance().createUnmanaged(name(), version()));
+    m_alg->initializeFromProxy(*this);
+    if (!initOnly) {
+      m_alg->setRethrows(this->m_rethrow);
+      addObservers();
+    }
   }
 }
 
@@ -289,9 +294,8 @@ void AlgorithmProxy::setChildEndProgress(const double endProgress) const {
 * @returns This object serialized as a string
 */
 std::string AlgorithmProxy::toString() const {
-  const_cast<AlgorithmProxy *>(this)->createConcreteAlg();
+  const_cast<AlgorithmProxy *>(this)->createConcreteAlg(true);
   std::string serialized = m_alg->toString();
-  m_alg.reset();
   return serialized;
 }
 
diff --git a/Code/Mantid/Framework/API/src/CatalogManager.cpp b/Code/Mantid/Framework/API/src/CatalogManager.cpp
index 51f340bd214c4a4d7bd815ecf0278e8f569f6f87..06123f0fdea8e716b9602d0e99b4024c7e594152 100644
--- a/Code/Mantid/Framework/API/src/CatalogManager.cpp
+++ b/Code/Mantid/Framework/API/src/CatalogManager.cpp
@@ -4,6 +4,9 @@
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/FacilityInfo.h"
 
+#include <boost/make_shared.hpp>
+#include <map>
+
 namespace Mantid {
 namespace API {
 CatalogManagerImpl::CatalogManagerImpl() : m_activeCatalogs() {}
diff --git a/Code/Mantid/Framework/API/src/CompositeCatalog.cpp b/Code/Mantid/Framework/API/src/CompositeCatalog.cpp
index 61177a11770ae7249cb89e9dd032841912835e73..dd7b182bcd56c2321fa687f380d4f60f2cddbd01 100644
--- a/Code/Mantid/Framework/API/src/CompositeCatalog.cpp
+++ b/Code/Mantid/Framework/API/src/CompositeCatalog.cpp
@@ -1,5 +1,7 @@
 #include "MantidAPI/CompositeCatalog.h"
 
+#include <stdexcept>
+
 namespace Mantid {
 namespace API {
 CompositeCatalog::CompositeCatalog() : m_catalogs() {}
diff --git a/Code/Mantid/Framework/API/src/DataProcessorAlgorithm.cpp b/Code/Mantid/Framework/API/src/DataProcessorAlgorithm.cpp
index bf57428a994d6d0f903192d2bc4fa1c3a4822c41..227a84bea1a4ecebc6e482af758647c1c7868d75 100644
--- a/Code/Mantid/Framework/API/src/DataProcessorAlgorithm.cpp
+++ b/Code/Mantid/Framework/API/src/DataProcessorAlgorithm.cpp
@@ -2,6 +2,8 @@
 #include "MantidAPI/AlgorithmProperty.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/IEventWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidKernel/Exception.h"
 #include "MantidKernel/System.h"
 #include "MantidAPI/FileFinder.h"
 #include "MantidAPI/AlgorithmManager.h"
@@ -23,11 +25,9 @@ namespace API {
 //----------------------------------------------------------------------------------------------
 /** Constructor
  */
-DataProcessorAlgorithm::DataProcessorAlgorithm() : API::Algorithm() {
-  m_loadAlg = "Load";
-  m_accumulateAlg = "Plus";
-  m_loadAlgFileProp = "Filename";
-  m_useMPI = false;
+DataProcessorAlgorithm::DataProcessorAlgorithm() : API::Algorithm(),
+    m_useMPI(false), m_loadAlg("Load"), m_accumulateAlg("Plus"),
+    m_loadAlgFileProp("Filename"), m_propertyManagerPropertyName("ReductionProperties") {
   enableHistoryRecordingForChild(true);
 }
 
@@ -93,6 +93,74 @@ void DataProcessorAlgorithm::setAccumAlg(const std::string &alg) {
   m_accumulateAlg = alg;
 }
 
+void DataProcessorAlgorithm::setPropManagerPropName(const std::string &propName) {
+    m_propertyManagerPropertyName = propName;
+}
+
+/**
+ * Declare mapping of property name to name in the PropertyManager. This is used by
+ * getPropertyValue(const string &) and getProperty(const string&).
+ *
+ * @param nameInProp Name of the property as declared in Algorithm::init().
+ * @param nameInPropManager Name of the property in the PropertyManager.
+ */
+void DataProcessorAlgorithm::mapPropertyName(const std::string &nameInProp,
+                                            const std::string &nameInPropManager) {
+    m_nameToPMName[nameInProp] = nameInPropManager;
+}
+
+/**
+ * Get the property held by this object. If the value is the default see if it
+ * contained in the PropertyManager. @see Algorithm::getPropertyValue(const string &)
+ *
+ * @param name
+ * @return
+ */
+std::string DataProcessorAlgorithm::getPropertyValue(const std::string &name) const {
+  // explicitely specifying a property wins
+  if (!isDefault(name)) {
+    return Algorithm::getPropertyValue(name);
+  }
+
+  // return it if it is in the held property manager
+  auto mapping = m_nameToPMName.find(name);
+  if (mapping != m_nameToPMName.end()) {
+    auto pm = this->getProcessProperties();
+    if (pm->existsProperty(mapping->second)) {
+        return pm->getPropertyValue(mapping->second);
+    }
+  }
+
+  // let the parent class version win
+  return Algorithm::getPropertyValue(name);
+}
+
+/**
+ * Get the property held by this object. If the value is the default see if it
+ * contained in the PropertyManager. @see Algorithm::getProperty(const string&)
+ *
+ * @param name
+ * @return
+ */
+PropertyManagerOwner::TypedValue DataProcessorAlgorithm::getProperty(const std::string &name) const {
+  // explicitely specifying a property wins
+  if (!isDefault(name)) {
+    return Algorithm::getProperty(name);
+  }
+
+  // return it if it is in the held property manager
+  auto mapping = m_nameToPMName.find(name);
+  if (mapping != m_nameToPMName.end()) {
+    auto pm = this->getProcessProperties();
+    if (pm->existsProperty(mapping->second)) {
+      return pm->getProperty(mapping->second);
+    }
+  }
+
+  // let the parent class version win
+  return Algorithm::getProperty(name);
+}
+
 ITableWorkspace_sptr DataProcessorAlgorithm::determineChunk() {
   throw std::runtime_error(
       "DataProcessorAlgorithm::determineChunk is not implemented");
@@ -239,19 +307,31 @@ Workspace_sptr DataProcessorAlgorithm::load(const std::string &inputData,
 
 /**
  * Get the property manager object of a given name from the property manager
- * data service, or create a new one.
- * @param propertyManager :: Name of the property manager to retrieve
+ * data service, or create a new one. If the PropertyManager name is missing (default) this will
+ * look at m_propertyManagerPropertyName to get the correct value;
+ *
+ * @param propertyManager :: Name of the property manager to retrieve.
  */
 boost::shared_ptr<PropertyManager> DataProcessorAlgorithm::getProcessProperties(
-    const std::string &propertyManager) {
+    const std::string &propertyManager) const {
+  std::string propertyManagerName(propertyManager);
+  if (propertyManager.empty() && (!m_propertyManagerPropertyName.empty())) {
+    if (!existsProperty(m_propertyManagerPropertyName)) {
+      std::stringstream msg;
+      msg << "Failed to find property \"" << m_propertyManagerPropertyName << "\"";
+      throw Exception::NotFoundError(msg.str(), this->name());
+    }
+    propertyManagerName = this->getPropertyValue(m_propertyManagerPropertyName);
+  }
+
   boost::shared_ptr<PropertyManager> processProperties;
-  if (PropertyManagerDataService::Instance().doesExist(propertyManager)) {
+  if (PropertyManagerDataService::Instance().doesExist(propertyManagerName)) {
     processProperties =
-        PropertyManagerDataService::Instance().retrieve(propertyManager);
+        PropertyManagerDataService::Instance().retrieve(propertyManagerName);
   } else {
     getLogger().notice() << "Could not find property manager" << std::endl;
     processProperties = boost::make_shared<PropertyManager>();
-    PropertyManagerDataService::Instance().addOrReplace(propertyManager,
+    PropertyManagerDataService::Instance().addOrReplace(propertyManagerName,
                                                         processProperties);
   }
   return processProperties;
diff --git a/Code/Mantid/Framework/API/src/ExperimentInfo.cpp b/Code/Mantid/Framework/API/src/ExperimentInfo.cpp
index cc4dc3e1153d5097fa84e55e2cfadfcf9ab38ff8..bb02457e5267ad3b11288dcc70e7aa251f6319df 100644
--- a/Code/Mantid/Framework/API/src/ExperimentInfo.cpp
+++ b/Code/Mantid/Framework/API/src/ExperimentInfo.cpp
@@ -15,7 +15,6 @@
 #include "MantidKernel/InstrumentInfo.h"
 #include "MantidKernel/Property.h"
 #include "MantidKernel/Strings.h"
-#include "MantidKernel/TimeSeriesProperty.h"
 
 #include <boost/algorithm/string.hpp>
 #include <boost/make_shared.hpp>
@@ -929,6 +928,7 @@ void ExperimentInfo::loadSampleAndLogInfoNexus(::NeXus::File *file) {
 //--------------------------------------------------------------------------------------------
 /** Load the object from an open NeXus file.
  * @param file :: open NeXus file
+ * @param nxFilename :: the filename of the nexus file
  * @param[out] parameterStr :: special string for all the parameters.
  *             Feed that to ExperimentInfo::readParameterMap() after the
  * instrument is done.
@@ -936,16 +936,18 @@ void ExperimentInfo::loadSampleAndLogInfoNexus(::NeXus::File *file) {
  * file and cannot
  *                                  be loaded from the IDF.
  */
-void ExperimentInfo::loadExperimentInfoNexus(::NeXus::File *file,
+void ExperimentInfo::loadExperimentInfoNexus(const std::string& nxFilename,
+                                             ::NeXus::File *file,
                                              std::string &parameterStr) {
   // load sample and log info
   loadSampleAndLogInfoNexus(file);
 
-  loadInstrumentInfoNexus(file, parameterStr);
+  loadInstrumentInfoNexus(nxFilename, file, parameterStr);
 }
 
 //--------------------------------------------------------------------------------------------
 /** Load the instrument from an open NeXus file.
+ * @param nxFilename :: the filename of the nexus file
  * @param file :: open NeXus file
  * @param[out] parameterStr :: special string for all the parameters.
  *             Feed that to ExperimentInfo::readParameterMap() after the
@@ -954,14 +956,67 @@ void ExperimentInfo::loadExperimentInfoNexus(::NeXus::File *file,
  * file and cannot
  *                                  be loaded from the IDF.
  */
-void ExperimentInfo::loadInstrumentInfoNexus(::NeXus::File *file,
+void ExperimentInfo::loadInstrumentInfoNexus(const std::string& nxFilename,
+                                             ::NeXus::File *file,
                                              std::string &parameterStr) {
+
+
+   // Open instrument group                                    
+  file->openGroup("instrument", "NXinstrument");
+
+   // Try to get the instrument embedded in the Nexus file
   std::string instrumentName;
   std::string instrumentXml;
-  std::string instrumentFilename;
+  loadEmbeddedInstrumentInfoNexus( file,  instrumentName,  instrumentXml);
+
+  // load parameters if found
+  loadInstrumentParametersNexus( file, parameterStr );
+
+  // Close the instrument group
+  file->closeGroup();
+
+  // Set the instrument given the name and and XML obtained
+  setInstumentFromXML( nxFilename, instrumentName, instrumentXml );
+
+}
 
-  // Try to get the instrument file
+//--------------------------------------------------------------------------------------------
+/** Load the instrument from an open NeXus file without reading any parameters (yet).
+ * @param nxFilename :: the filename of the nexus file
+ * @param file :: open NeXus file
+ * instrument is done.
+ * @throws Exception::NotFoundError If instrument definition is not in the nexus
+ * file and cannot
+ *                                  be loaded from the IDF.
+ */
+void ExperimentInfo::loadInstrumentInfoNexus(const std::string& nxFilename,
+                                             ::NeXus::File *file ) {
+
+
+   // Open instrument group                                    
   file->openGroup("instrument", "NXinstrument");
+
+   // Try to get the instrument embedded in the Nexus file
+  std::string instrumentName;
+  std::string instrumentXml;
+  loadEmbeddedInstrumentInfoNexus( file,  instrumentName,  instrumentXml);
+
+  // Close the instrument group
+  file->closeGroup();
+
+  // Set the instrument given the name and and XML obtained
+  setInstumentFromXML( nxFilename, instrumentName, instrumentXml );
+
+}
+
+//-------------------------------------------------------------------------------------------------
+/** Attempt to load an IDF embedded in the Nexus file.
+ * @param file :: open NeXus file with instrument group open
+ * @param[out] instrumentName :: name of instrument
+ * @param[out] instrumentXml  :: XML string of embedded instrument definition or empty if not found
+ */
+void ExperimentInfo::loadEmbeddedInstrumentInfoNexus( ::NeXus::File *file, std::string &instrumentName, std::string &instrumentXml) {
+
   file->readData("name", instrumentName);
 
   try {
@@ -969,70 +1024,45 @@ void ExperimentInfo::loadInstrumentInfoNexus(::NeXus::File *file,
     file->readData("data", instrumentXml);
     file->closeGroup();
   } catch (NeXus::Exception &ex) {
-    // Just carry on - it might not be there (e.g. old-style processed files)
-    g_log.debug(ex.what());
+    g_log.debug(std::string("Unable to load instrument_xml: ") + ex.what());
   }
 
-  // We first assume this is a new version file, but if the next step fails we
-  // assume its and old version file.
-  int version = 1;
-  try {
-    file->readData("instrument_source", instrumentFilename);
-  } catch (NeXus::Exception &) {
-    version = 0;
-    // In the old version 'processed' file, this was held at the top level (as
-    // was the parameter map)
-    file->closeGroup();
-    try {
-      file->readData("instrument_source", instrumentFilename);
-    } catch (NeXus::Exception &ex) {
-      // Just carry on - it might not be there (e.g. for SNS files)
-      g_log.debug(ex.what());
-    }
-  }
-
-  try {
-    file->openGroup("instrument_parameter_map", "NXnote");
-    file->readData("data", parameterStr);
-    file->closeGroup();
-  } catch (NeXus::Exception &ex) {
-    // Just carry on - it might not be there (e.g. for SNS files)
-    g_log.debug(ex.what());
-  }
+}
 
-  if (version == 1) {
-    file->closeGroup();
-  }
+//-------------------------------------------------------------------------------------------------
+/** Set the instrument given its name and definition in XML
+ *  If the XML string is empty the definition is loaded from the IDF file 
+ *  specified by the name
+ * @param nxFilename :: the filename of the nexus file, needed to check whether instrument already exists in ADS.
+ * @param instrumentName :: name of instrument
+ * @param instrumentXml  :: XML string of instrument or empty to indicate load of instrument definition file
+ */
+void ExperimentInfo::setInstumentFromXML( const std::string& nxFilename, std::string &instrumentName, std::string &instrumentXml ) {
 
-  instrumentFilename = Strings::strip(instrumentFilename);
+    
   instrumentXml = Strings::strip(instrumentXml);
   instrumentName = Strings::strip(instrumentName);
-  if (instrumentXml.empty() && !instrumentName.empty()) {
-    // XML was not included or was empty.
-    // Use the instrument name to find the file
-    try {
-      std::string filename =
-          getInstrumentFilename(instrumentName, getWorkspaceStartDate());
-      // And now load the contents
-      instrumentFilename = filename;
-      instrumentXml = Strings::loadFile(filename);
-    } catch (std::exception &e) {
-      g_log.error() << "Error loading instrument IDF file for '"
-                    << instrumentName << "'.\n";
-      g_log.debug() << e.what() << std::endl;
-      throw;
-    }
-  } else {
-    if (!instrumentFilename.empty())
-      instrumentFilename = ConfigService::Instance().getInstrumentDirectory() +
-                           "/" + instrumentFilename;
+  std::string instrumentFilename;
+  if (!instrumentXml.empty()) {
+    // instrument xml is being loaded from the nxs file, set the instrumentFilename
+    // to identify the Nexus file as the source of the data
+    instrumentFilename = nxFilename;
     g_log.debug() << "Using instrument IDF XML text contained in nexus file.\n";
   }
+  else
+  {
+    // XML was not included or was empty
+    // Use the instrument name to find the file
+    instrumentFilename =
+        getInstrumentFilename(instrumentName, getWorkspaceStartDate());
+    // And now load the contents
+    instrumentXml = loadInstrumentXML(instrumentFilename);
+  }
 
   // ---------- Now parse that XML to make the instrument -------------------
   if (!instrumentXml.empty() && !instrumentName.empty()) {
-    InstrumentDefinitionParser parser;
-    parser.initialize(instrumentFilename, instrumentName, instrumentXml);
+    InstrumentDefinitionParser parser(instrumentFilename, instrumentName, instrumentXml);
+
     std::string instrumentNameMangled = parser.getMangledName();
     Instrument_sptr instr;
     // Check whether the instrument is already in the InstrumentDataService
@@ -1048,6 +1078,46 @@ void ExperimentInfo::loadInstrumentInfoNexus(::NeXus::File *file,
     // Now set the instrument
     this->setInstrument(instr);
   }
+
+}
+
+//-------------------------------------------------------------------------------------------------
+/** Loads the contents of a file and returns the string
+ *  The file is assumed to be an IDF, and already checked that
+ *  the path is correct.
+ *
+ * @param filename :: the path to the file
+ */
+std::string ExperimentInfo::loadInstrumentXML(const std::string &filename) {
+  try {
+    return Strings::loadFile(filename);
+  } catch (std::exception &e) {
+    g_log.error() << "Error loading instrument IDF file: "
+                  << filename << ".\n";
+    g_log.debug() << e.what() << std::endl;
+    throw;
+  }
+}
+
+//--------------------------------------------------------------------------------------------
+/** Load the instrument parameters from an open NeXus file if found there.
+ * @param file :: open NeXus file in its Instrument group
+ * @param[out] parameterStr :: special string for all the parameters.
+ *             Feed that to ExperimentInfo::readParameterMap() after the
+ * instrument is done.
+ */
+void ExperimentInfo::loadInstrumentParametersNexus( ::NeXus::File *file, 
+                                                    std::string &parameterStr) {
+  try 
+  {
+    file->openGroup("instrument_parameter_map", "NXnote");
+    file->readData("data", parameterStr);
+    file->closeGroup();
+  } catch (NeXus::Exception &ex) {
+    g_log.debug(std::string("Unable to load instrument_parameter_map: ") + ex.what());
+    g_log.information("Parameter map entry missing from NeXus file. Continuing without it.");
+  }
+
 }
 
 //-------------------------------------------------------------------------------------------------
diff --git a/Code/Mantid/Framework/API/src/FileBackedExperimentInfo.cpp b/Code/Mantid/Framework/API/src/FileBackedExperimentInfo.cpp
index 64c7084fdff37c1b41c4e4124fcab7beb547f22c..46b48f0cba02e8e08486229cc75498545c1910ba 100644
--- a/Code/Mantid/Framework/API/src/FileBackedExperimentInfo.cpp
+++ b/Code/Mantid/Framework/API/src/FileBackedExperimentInfo.cpp
@@ -301,7 +301,7 @@ void FileBackedExperimentInfo::populateFromFile() const {
 
     std::string parameterStr;
     const_cast<FileBackedExperimentInfo *>(this)
-        ->loadExperimentInfoNexus(&nxFile, parameterStr);
+        ->loadExperimentInfoNexus(m_filename, &nxFile, parameterStr);
     const_cast<FileBackedExperimentInfo *>(this)
         ->readParameterMap(parameterStr);
   } catch (::NeXus::Exception &exc) {
diff --git a/Code/Mantid/Framework/API/src/FileLoaderRegistry.cpp b/Code/Mantid/Framework/API/src/FileLoaderRegistry.cpp
index c7bc0a5da1050cfba2f84bfe5e36095f60c775e6..0ce3e906c6aa67cf82bc4f6ead32171efc9d34be 100644
--- a/Code/Mantid/Framework/API/src/FileLoaderRegistry.cpp
+++ b/Code/Mantid/Framework/API/src/FileLoaderRegistry.cpp
@@ -151,9 +151,11 @@ bool FileLoaderRegistryImpl::canLoad(const std::string &algorithmName,
   std::multimap<std::string, int> names;
   names.insert(std::make_pair(algorithmName, -1));
   IAlgorithm_sptr loader;
-  if (nexus && NexusDescriptor::isHDF(filename)) {
-    loader = searchForLoader<NexusDescriptor, IFileLoader<NexusDescriptor>>(
-        filename, names, m_log);
+  if (nexus) {
+    if (NexusDescriptor::isHDF(filename)) {
+      loader = searchForLoader<NexusDescriptor, IFileLoader<NexusDescriptor>>(
+          filename, names, m_log);
+    }
   } else {
     loader = searchForLoader<FileDescriptor, IFileLoader<FileDescriptor>>(
         filename, names, m_log);
diff --git a/Code/Mantid/Framework/API/src/FrameworkManager.cpp b/Code/Mantid/Framework/API/src/FrameworkManager.cpp
index f7b731630eeb4ebae160c786e56073bba6fc0a8b..f6fe81aa915785dec8b287cf91e4aababcd753dc 100644
--- a/Code/Mantid/Framework/API/src/FrameworkManager.cpp
+++ b/Code/Mantid/Framework/API/src/FrameworkManager.cpp
@@ -82,24 +82,43 @@ FrameworkManagerImpl::FrameworkManagerImpl()
 
   g_log.debug() << "FrameworkManager created." << std::endl;
 
+  AsynchronousStartupTasks();
+}
+
+/// Destructor
+FrameworkManagerImpl::~FrameworkManagerImpl() {}
+
+/// Starts asynchronous tasks that are done as part of Start-up.
+void FrameworkManagerImpl::AsynchronousStartupTasks()
+{
   int updateInstrumentDefinitions = 0;
   int retVal = Kernel::ConfigService::Instance().getValue(
-      "UpdateInstrumentDefinitions.OnStartup", updateInstrumentDefinitions);
+    "UpdateInstrumentDefinitions.OnStartup", updateInstrumentDefinitions);
   if ((retVal == 1) && (updateInstrumentDefinitions == 1)) {
     UpdateInstrumentDefinitions();
   } else {
     g_log.information()
-        << "Instrument updates disabled - cannot update instrument definitions."
-        << std::endl;
+      << "Instrument updates disabled - cannot update instrument definitions."
+      << std::endl;
   }
 
+  int checkIfNewerVersionIsAvailable= 0;
+  int retValVersionCheck = Kernel::ConfigService::Instance().getValue(
+    "CheckMantidVersion.OnStartup", checkIfNewerVersionIsAvailable);
+  if ((retValVersionCheck == 1) && (checkIfNewerVersionIsAvailable == 1)) {
+    CheckIfNewerVersionIsAvailable();
+  } else {
+    g_log.information()
+      << "Version check disabled."
+      << std::endl;
+  }
+
+
   // the algorithm will see if it should run
+
   SendStartupUsageInfo();
 }
 
-/// Destructor
-FrameworkManagerImpl::~FrameworkManagerImpl() {}
-
 /// Update instrument definitions from github
 void FrameworkManagerImpl::UpdateInstrumentDefinitions() {
   try {
@@ -113,6 +132,20 @@ void FrameworkManagerImpl::UpdateInstrumentDefinitions() {
   }
 }
 
+
+/// Check if a newer release of Mantid is available
+void FrameworkManagerImpl::CheckIfNewerVersionIsAvailable() {
+  try {
+    IAlgorithm *algCheckVersion =
+        this->createAlgorithm("CheckMantidVersion");
+    algCheckVersion->setAlgStartupLogging(false);
+    Poco::ActiveResult<bool> result = algCheckVersion->executeAsync();
+  } catch (Kernel::Exception::NotFoundError &) {
+    g_log.debug() << "CheckMantidVersion algorithm is not available - cannot "
+                     "check if a newer version is available." << std::endl;
+  }
+}
+
 /// Sends startup information about OS and Mantid version
 void FrameworkManagerImpl::SendStartupUsageInfo()
 {
diff --git a/Code/Mantid/Framework/API/src/IFunctionMW.cpp b/Code/Mantid/Framework/API/src/IFunctionMW.cpp
index bbf5f888e51d9be21e1abebd59c8b2114f90cdce..a0c5793f76ac11db357a1182bf87982ed6b343fc 100644
--- a/Code/Mantid/Framework/API/src/IFunctionMW.cpp
+++ b/Code/Mantid/Framework/API/src/IFunctionMW.cpp
@@ -2,6 +2,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/IFunctionMW.h"
+#include "MantidAPI/MatrixWorkspace.h"
 
 #include <iostream>
 
diff --git a/Code/Mantid/Framework/API/src/MDGeometry.cpp b/Code/Mantid/Framework/API/src/MDGeometry.cpp
index 71a5c8d06beba25fefd3fbc0dab72c323b0c0e0f..b567f6ded5c4a483a8ddaaf039ecb948228a8a0e 100644
--- a/Code/Mantid/Framework/API/src/MDGeometry.cpp
+++ b/Code/Mantid/Framework/API/src/MDGeometry.cpp
@@ -101,10 +101,6 @@ MDGeometry::~MDGeometry() {
  */
 void MDGeometry::initGeometry(
     std::vector<Mantid::Geometry::IMDDimension_sptr> &dimensions) {
-  if (dimensions.size() == 0)
-    throw std::invalid_argument(
-        "MDGeometry::initGeometry() 0 valid dimensions were given!");
-
   // Copy the dimensions array
   m_dimensions = dimensions;
   // Make sure the basis vectors are big enough
@@ -283,6 +279,20 @@ void MDGeometry::setBasisVector(size_t index, const Mantid::Kernel::VMD &vec) {
   m_basisVectors[index] = vec;
 }
 
+/**
+ * @return True ONLY if ALL the basis vectors have been normalized.
+ */
+bool MDGeometry::allBasisNormalized() const {
+  bool allNormalized = true;
+  for (auto it = m_basisVectors.begin(); it != m_basisVectors.end(); ++it) {
+      if (it->length() != 1.0) {
+        allNormalized = false;
+        break;
+      }
+  }
+  return allNormalized;
+}
+
 //---------------------------------------------------------------------------------------------------
 /// @return true if the geometry is defined relative to another workspace.
 /// @param index :: index into the vector of original workspaces
diff --git a/Code/Mantid/Framework/API/src/MatrixWorkspace.cpp b/Code/Mantid/Framework/API/src/MatrixWorkspace.cpp
index 7999e7206afb2eb2542a497216326e3884ac52af..552b4b83ce15719cfd29fc735d1babca4ac46af0 100644
--- a/Code/Mantid/Framework/API/src/MatrixWorkspace.cpp
+++ b/Code/Mantid/Framework/API/src/MatrixWorkspace.cpp
@@ -43,6 +43,34 @@ MatrixWorkspace::MatrixWorkspace(
           (nnFactory == NULL) ? new NearestNeighboursFactory : nnFactory),
       m_nearestNeighbours() {}
 
+MatrixWorkspace::MatrixWorkspace(const MatrixWorkspace &other)
+    : IMDWorkspace(other), ExperimentInfo(other) {
+  m_axes.resize(other.m_axes.size());
+  for (size_t i = 0; i < m_axes.size(); ++i)
+    m_axes[i] = other.m_axes[i]->clone(this);
+
+  m_isInitialized = other.m_isInitialized;
+  m_YUnit = other.m_YUnit;
+  m_YUnitLabel = other.m_YUnitLabel;
+  m_isDistribution = other.m_isDistribution;
+  m_isCommonBinsFlagSet = other.m_isCommonBinsFlagSet;
+  m_isCommonBinsFlag = other.m_isCommonBinsFlag;
+  m_masks = other.m_masks;
+  m_indexCalculator = other.m_indexCalculator;
+  // I think it is necessary to create our own copy of the factory, since we do
+  // not know who owns the factory in other and how its lifetime is controlled.
+  m_nearestNeighboursFactory.reset(new NearestNeighboursFactory);
+  // m_nearestNeighbours seem to be built automatically when needed, so we do
+  // not copy here.
+
+  // TODO: Do we need to init m_monitorWorkspace?
+
+  // This call causes copying of m_parmap (ParameterMap). The constructor of
+  // ExperimentInfo just kept a shared_ptr to the same map as in other, which
+  // is not enough as soon as the maps in one of the workspaces it edited.
+  instrumentParameters();
+}
+
 /// Destructor
 // RJT, 3/10/07: The Analysis Data Service needs to be able to delete
 // workspaces, so I moved this from protected to public.
@@ -552,6 +580,10 @@ MatrixWorkspace::getIndexFromSpectrumNumber(const specid_t specNo) const {
 //---------------------------------------------------------------------------------------
 /** Converts a list of detector IDs to the corresponding workspace indices.
 *
+     *  Note that only known detector IDs are converted (so an empty vector will be returned
+     *  if none of the IDs are recognised), and that the returned workspace indices are
+     *  effectively a set (i.e. there are no duplicates).
+     *
 *  @param detIdList :: The list of detector IDs required
 *  @param indexList :: Returns a reference to the vector of indices
 */
diff --git a/Code/Mantid/Framework/API/src/MatrixWorkspaceMDIterator.cpp b/Code/Mantid/Framework/API/src/MatrixWorkspaceMDIterator.cpp
index 77ae1af24e443648ddc5eee7a40791b45ad2e4ff..bf818a20ec115b3cfcb205bd453267d58f57d697 100644
--- a/Code/Mantid/Framework/API/src/MatrixWorkspaceMDIterator.cpp
+++ b/Code/Mantid/Framework/API/src/MatrixWorkspaceMDIterator.cpp
@@ -1,4 +1,5 @@
 #include "MantidAPI/MatrixWorkspaceMDIterator.h"
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidKernel/System.h"
 #include "MantidKernel/VMD.h"
 #include "MantidKernel/cow_ptr.h"
diff --git a/Code/Mantid/Framework/API/src/MultiPeriodGroupWorker.cpp b/Code/Mantid/Framework/API/src/MultiPeriodGroupWorker.cpp
index 68340e0e88c8e1c3418edf2f957484383b62a6a8..c7382752965d72bebf4640e51e1d22236455d3f6 100644
--- a/Code/Mantid/Framework/API/src/MultiPeriodGroupWorker.cpp
+++ b/Code/Mantid/Framework/API/src/MultiPeriodGroupWorker.cpp
@@ -1,6 +1,7 @@
 #include "MantidAPI/MultiPeriodGroupWorker.h"
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/Property.h"
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/IAlgorithm.h"
 #include "MantidAPI/AlgorithmManager.h"
 
diff --git a/Code/Mantid/Framework/API/src/Projection.cpp b/Code/Mantid/Framework/API/src/Projection.cpp
index 18404dc713a53424e2c2654ac45f3441bc94986f..fa4d4ed8e1c4c960a3df5ef4fcb329980d8104e4 100644
--- a/Code/Mantid/Framework/API/src/Projection.cpp
+++ b/Code/Mantid/Framework/API/src/Projection.cpp
@@ -1,4 +1,5 @@
 #include "MantidAPI/Projection.h"
+#include "MantidAPI/ITableWorkspace.h"
 
 namespace Mantid {
 namespace API {
diff --git a/Code/Mantid/Framework/API/src/WorkspaceFactory.cpp b/Code/Mantid/Framework/API/src/WorkspaceFactory.cpp
index 44935d5637bc5f07d02c43219e9a04b878180b3f..e2f890671126a479d732b36c980a5f9a530496d7 100644
--- a/Code/Mantid/Framework/API/src/WorkspaceFactory.cpp
+++ b/Code/Mantid/Framework/API/src/WorkspaceFactory.cpp
@@ -4,6 +4,7 @@
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidAPI/Workspace.h"
 #include "MantidAPI/WorkspaceOpOverloads.h"
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/MemoryManager.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidAPI/NumericAxis.h"
diff --git a/Code/Mantid/Framework/API/src/WorkspaceOpOverloads.cpp b/Code/Mantid/Framework/API/src/WorkspaceOpOverloads.cpp
index fa1e1cf1bb099cf8be91bdcf1991e79d619f1245..7d3d4d42e5abc78f863afa3534b5959d11ec3c10 100644
--- a/Code/Mantid/Framework/API/src/WorkspaceOpOverloads.cpp
+++ b/Code/Mantid/Framework/API/src/WorkspaceOpOverloads.cpp
@@ -6,12 +6,13 @@
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidKernel/Property.h"
 #include "MantidKernel/Exception.h"
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/IWorkspaceProperty.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidAPI/SpectraAxis.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidAPI/IMDHistoWorkspace.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 
 #include <numeric>
 
diff --git a/Code/Mantid/Framework/API/src/WorkspaceProperty.cpp b/Code/Mantid/Framework/API/src/WorkspaceProperty.cpp
index bc643d7adea9c9f1f20d9a509cc005ea8cc71cb4..42a78b0855103388853f61fcbc70374f528eefc9 100644
--- a/Code/Mantid/Framework/API/src/WorkspaceProperty.cpp
+++ b/Code/Mantid/Framework/API/src/WorkspaceProperty.cpp
@@ -21,8 +21,6 @@ template MANTID_API_DLL class Mantid::API::WorkspaceProperty<
     Mantid::API::MatrixWorkspace>;
 template MANTID_API_DLL class Mantid::API::WorkspaceProperty<
     Mantid::API::ITableWorkspace>;
-template MANTID_API_DLL class Mantid::API::WorkspaceProperty<
-    Mantid::API::ISplittersWorkspace>;
 ///@endcond TEMPLATE
 } // namespace API
 } // namespace Mantid
diff --git a/Code/Mantid/Framework/API/test/AlgorithmTest.h b/Code/Mantid/Framework/API/test/AlgorithmTest.h
index 27a56a87baea2034fa83bda4c6c76cb1b39bf8b1..20a9627edc55e0403adf509af22a345f40a30fcc 100644
--- a/Code/Mantid/Framework/API/test/AlgorithmTest.h
+++ b/Code/Mantid/Framework/API/test/AlgorithmTest.h
@@ -770,6 +770,54 @@ public:
     }
   }
 
+  /// Rewrite first input group
+  void test_processGroups_rewriteFirstGroup()
+  {
+      Mantid::API::AnalysisDataService::Instance().clear();
+    WorkspaceGroup_sptr group = do_test_groups("D", "D1,D2,D3",
+        "B", "B1,B2,B3",   "C", "C1,C2,C3");
+
+    TS_ASSERT_EQUALS( ws1->name(), "D1" );
+    TS_ASSERT_EQUALS( ws1->getTitle(), "D1+B1+C1" );
+    TS_ASSERT_EQUALS( ws1->readY(0)[0], 234 );
+    TS_ASSERT_EQUALS( ws2->name(), "D2" );
+    TS_ASSERT_EQUALS( ws2->getTitle(), "D2+B2+C2" );
+    TS_ASSERT_EQUALS( ws3->name(), "D3" );
+    TS_ASSERT_EQUALS( ws3->getTitle(), "D3+B3+C3" );
+  }
+
+  /// Rewrite second group
+  void test_processGroups_rewriteSecondGroup()
+  {
+      Mantid::API::AnalysisDataService::Instance().clear();
+    WorkspaceGroup_sptr group = do_test_groups("A", "A1,A2,A3",
+        "D", "D1,D2,D3",   "C", "C1,C2,C3");
+
+    TS_ASSERT_EQUALS( ws1->name(), "D1" );
+    TS_ASSERT_EQUALS( ws1->getTitle(), "A1+D1+C1" );
+    TS_ASSERT_EQUALS( ws1->readY(0)[0], 234 );
+    TS_ASSERT_EQUALS( ws2->name(), "D2" );
+    TS_ASSERT_EQUALS( ws2->getTitle(), "A2+D2+C2" );
+    TS_ASSERT_EQUALS( ws3->name(), "D3" );
+    TS_ASSERT_EQUALS( ws3->getTitle(), "A3+D3+C3" );
+  }
+
+  /// Rewrite multiple group
+  void test_processGroups_rewriteMultipleGroup()
+  {
+      Mantid::API::AnalysisDataService::Instance().clear();
+    WorkspaceGroup_sptr group = do_test_groups("A", "A1,A2,A3",
+        "D", "D1,D2,D3",   "D", "D1,D2,D3");
+
+    TS_ASSERT_EQUALS( ws1->name(), "D1" );
+    TS_ASSERT_EQUALS( ws1->getTitle(), "A1+D1+D1" );
+    TS_ASSERT_EQUALS( ws1->readY(0)[0], 234 );
+    TS_ASSERT_EQUALS( ws2->name(), "D2" );
+    TS_ASSERT_EQUALS( ws2->getTitle(), "A2+D2+D2" );
+    TS_ASSERT_EQUALS( ws3->name(), "D3" );
+    TS_ASSERT_EQUALS( ws3->getTitle(), "A3+D3+D3" );
+  }
+
 private:
   IAlgorithm_sptr runFromString(const std::string & input)
   {
diff --git a/Code/Mantid/Framework/API/test/AnalysisDataServiceTest.h b/Code/Mantid/Framework/API/test/AnalysisDataServiceTest.h
index 1572441ef800002e5f4dccf314ccb290f1afa010..d1f4973efeb55f56fee4cf1951c05b774346db06 100644
--- a/Code/Mantid/Framework/API/test/AnalysisDataServiceTest.h
+++ b/Code/Mantid/Framework/API/test/AnalysisDataServiceTest.h
@@ -16,6 +16,11 @@ namespace
     virtual const std::string id() const { return "MockWorkspace"; }
     virtual const std::string toString() const { return ""; }
     virtual size_t getMemorySize() const { return 1; }
+
+  private:
+    virtual MockWorkspace *doClone() const {
+      throw std::runtime_error("Cloning of MockWorkspace is not implemented.");
+    }
   };
   typedef boost::shared_ptr<MockWorkspace> MockWorkspace_sptr;
 }
diff --git a/Code/Mantid/Framework/API/test/CMakeLists.txt b/Code/Mantid/Framework/API/test/CMakeLists.txt
index cfe9ef310d09071e95b87909fea54a2497c6f775..5d7a484e94a673ff819d1b608044ec0687c90328 100644
--- a/Code/Mantid/Framework/API/test/CMakeLists.txt
+++ b/Code/Mantid/Framework/API/test/CMakeLists.txt
@@ -1,7 +1,7 @@
 if ( CXXTEST_FOUND )
   include_directories ( SYSTEM ${CXXTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR} ${GTEST_INCLUDE_DIR} )
 
-  include_directories ( ../../TestHelpers/inc )
+  include_directories ( ../../TestHelpers/inc ../../Nexus/inc ${HDF5_INCLUDE_DIRS})
   # This variable is used within the cxxtest_add_test macro to build these helper classes into the test executable.
   # It will go out of scope at the end of this file so doesn't need un-setting
   set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp
@@ -9,7 +9,6 @@ if ( CXXTEST_FOUND )
                         ../../TestHelpers/src/BoxControllerDummyIO.cpp
                         ../../TestHelpers/src/NexusTestHelper.cpp
       )
-  
   cxxtest_add_test ( APITest ${TEST_FILES} ${GMOCK_TEST_FILES})
   target_link_libraries( APITest LINK_PRIVATE 
             API
diff --git a/Code/Mantid/Framework/API/test/CompositeFunctionTest.h b/Code/Mantid/Framework/API/test/CompositeFunctionTest.h
index 9d28def4392fd59135dd37147de3a14a9778ef74..d3cfa8af39977a4671033fb869eabe2948d71c53 100644
--- a/Code/Mantid/Framework/API/test/CompositeFunctionTest.h
+++ b/Code/Mantid/Framework/API/test/CompositeFunctionTest.h
@@ -79,6 +79,11 @@ public:
   void clearFileBacked(bool ){};
   ITableWorkspace_sptr makeBoxTable(size_t /* start*/, size_t /*num*/){return ITableWorkspace_sptr();}
 private:
+  virtual CompositeFunctionTest_MocMatrixWorkspace *doClone() const {
+    throw std::runtime_error("Cloning of "
+                             "CompositeFunctionTest_MocMatrixWorkspace is not "
+                             "implemented.");
+  }
   std::vector<CompositeFunctionTest_MocSpectrum> m_spectra;
   size_t m_blocksize;
 };
diff --git a/Code/Mantid/Framework/API/test/ExperimentInfoTest.h b/Code/Mantid/Framework/API/test/ExperimentInfoTest.h
index 80592866959a9ed7142e8d5f8469e93453cbae2d..697745a9dd82d7e5b9d05c0ef4aa8d6147ddbf8a 100644
--- a/Code/Mantid/Framework/API/test/ExperimentInfoTest.h
+++ b/Code/Mantid/Framework/API/test/ExperimentInfoTest.h
@@ -11,20 +11,27 @@
 #include "MantidKernel/SingletonHolder.h"
 #include "MantidKernel/Matrix.h"
 
+//#include "MantidNexus/NexusClasses.h"
+#include "MantidAPI/FileFinder.h"
+
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 #include "MantidTestHelpers/NexusTestHelper.h"
 
+#include <nexus/NeXusFile.hpp>
+#include <nexus/NeXusException.hpp>
+
 #include <cxxtest/TestSuite.h>
 #include <boost/regex.hpp>
 #include <Poco/DirectoryIterator.h>
 
-#include <iomanip>
-#include <iostream>
 #include <set>
 
+
+
 using namespace Mantid::API;
 using namespace Mantid::Kernel;
 using namespace Mantid::Geometry;
+using namespace NeXus;
 
 class FakeChopper : public Mantid::API::ChopperModel
 {
@@ -184,7 +191,7 @@ public:
     const std::string actualLogName = "SAMPLE_TEMP";
     addInstrumentWithParameter(expt, instPar, actualLogName);
 
-    TS_ASSERT_THROWS(expt.getLog(instPar), Exception::NotFoundError);
+    TS_ASSERT_THROWS(expt.getLog(instPar), Mantid::Kernel::Exception::NotFoundError);
   }
 
   void test_GetLog_Returns_Value_Of_Log_Named_In_Instrument_Parameter_If_It_Exists_And_Actual_Log_Entry_Exists()
@@ -228,7 +235,7 @@ public:
     const std::string actualLogName = "SAMPLE_TEMP";
     addInstrumentWithParameter(expt, instPar, actualLogName);
 
-    TS_ASSERT_THROWS(expt.getLogAsSingleValue(instPar), Exception::NotFoundError);
+    TS_ASSERT_THROWS(expt.getLogAsSingleValue(instPar), Mantid::Kernel::Exception::NotFoundError);
   }
 
   void test_GetLogAsSingleValue_Returns_Value_Of_Log_Named_In_Instrument_Parameter_If_It_Exists_And_Actual_Log_Entry_Exists()
@@ -593,22 +600,23 @@ public:
 
   void test_nexus()
   {
+    std::string filename = "ExperimentInfoTest1.nxs";
     NexusTestHelper th(true);
-    th.createFile("ExperimentInfoTest1.nxs");
+    th.createFile(filename);
     ExperimentInfo ws;
     boost::shared_ptr<Instrument> inst1(new Instrument());
     inst1->setName("GEM");
     inst1->setFilename("GEM_Definition.xml");
     inst1->setXmlText("");
     ws.setInstrument(inst1);
-
+    
     TS_ASSERT_THROWS_NOTHING( ws.saveExperimentInfoNexus(th.file); );
 
     // ------------------------ Re-load the contents ----------------------
     ExperimentInfo ws2;
     std::string parameterStr;
     th.reopenFile();
-    TS_ASSERT_THROWS_NOTHING( ws2.loadExperimentInfoNexus(th.file, parameterStr) );
+    TS_ASSERT_THROWS_NOTHING( ws2.loadExperimentInfoNexus(filename, th.file, parameterStr) );
     Instrument_const_sptr inst = ws2.getInstrument();
     TS_ASSERT_EQUALS( inst->getName(), "GEM" );
     TS_ASSERT( inst->getFilename().find("GEM_Definition.xml",0) != std::string::npos );
@@ -618,8 +626,9 @@ public:
 
   void test_nexus_empty_instrument()
   {
+    std::string filename = "ExperimentInfoTest2.nxs";
     NexusTestHelper th(true);
-    th.createFile("ExperimentInfoTest2.nxs");
+    th.createFile(filename);
     ExperimentInfo ws;
     boost::shared_ptr<Instrument> inst1(new Instrument());
     inst1->setName("");
@@ -633,7 +642,7 @@ public:
     ExperimentInfo ws2;
     std::string parameterStr;
     th.reopenFile();
-    TS_ASSERT_THROWS_NOTHING( ws2.loadExperimentInfoNexus(th.file, parameterStr) );
+    TS_ASSERT_THROWS_NOTHING( ws2.loadExperimentInfoNexus(filename, th.file, parameterStr) );
     Instrument_const_sptr inst = ws2.getInstrument();
     TS_ASSERT_EQUALS( inst->getName(), "" );
     TS_ASSERT_EQUALS( parameterStr, "" );
@@ -641,8 +650,9 @@ public:
 
   void testNexus_W_matrix()
   {
+      std::string filename = "ExperimentInfoWMatrixTest.nxs";
       NexusTestHelper th(true);
-      th.createFile("ExperimentInfoWMatrixTest.nxs");
+      th.createFile(filename);
       ExperimentInfo ei;
 
       DblMatrix WTransf(3,3,true);
@@ -665,7 +675,7 @@ public:
 
       ExperimentInfo other;
       std::string InstrParameters;
-      TS_ASSERT_THROWS_NOTHING(other.loadExperimentInfoNexus(th.file,InstrParameters));
+      TS_ASSERT_THROWS_NOTHING(other.loadExperimentInfoNexus(filename, th.file,InstrParameters));
 
       std::vector<double> wMatrRestored=other.run().getPropertyValueAsType<std::vector<double> >("W_MATRIX");
 
@@ -676,6 +686,54 @@ public:
 
   }
 
+  void test_nexus_intrument_info()
+  {
+     ExperimentInfo ei;
+
+    // We get an instrument group from a test file in the form that would occur in an ISIS Nexus file
+    // with an embedded instrument definition and parameters
+
+    // Create the root Nexus class
+    std::string testFile = "LOQinstrument.h5";
+    std::string path = FileFinder::Instance().getFullPath(testFile);
+
+   
+    // Get nexus file for this. 
+    ::NeXus::File nxFile(path, NXACC_READ);
+
+    // Load the Nexus IDF info
+    std::string params;
+    TS_ASSERT_THROWS_NOTHING(ei.loadInstrumentInfoNexus( testFile, &nxFile, params));
+    Instrument_const_sptr inst = ei.getInstrument();
+    TS_ASSERT_EQUALS( inst->getName(), "LOQ" );  // Check instrument name
+    TS_ASSERT_EQUALS( params.size() , 613 );     // Check size of parameter string
+
+  }
+
+  void test_nexus_parameters()
+  {
+     ExperimentInfo ei;
+
+    // We get an instrument group from a test file in the form that would occur in an ISIS Nexus file
+    // with an embedded instrument definition and parameters
+
+    // Create the root Nexus class
+    std::string testFile = "LOQinstrument.h5";
+    std::string path = FileFinder::Instance().getFullPath(testFile);
+
+   
+    // Get nexus file for this.
+    ::NeXus::File nxFile(path, NXACC_READ);
+    // Open instrument group
+    nxFile.openGroup("instrument", "NXinstrument");
+
+    // Load the Nexus IDF info
+    std::string params;
+    TS_ASSERT_THROWS_NOTHING(ei.loadInstrumentParametersNexus(&nxFile, params));
+    TS_ASSERT_EQUALS( params.size() , 613 );     // Check size of parameter string
+
+  }
+
 private:
 
   void addInstrumentWithParameter(ExperimentInfo & expt, const std::string & name, const std::string & value)
diff --git a/Code/Mantid/Framework/API/test/FileBackedExperimentInfoTest.h b/Code/Mantid/Framework/API/test/FileBackedExperimentInfoTest.h
index f3fa9eb6c621e80188e7144bc58e139e45c4ca73..2f367c924d47fd0958a1589a8fdef79eaf88252e 100644
--- a/Code/Mantid/Framework/API/test/FileBackedExperimentInfoTest.h
+++ b/Code/Mantid/Framework/API/test/FileBackedExperimentInfoTest.h
@@ -36,7 +36,7 @@ public:
     ::NeXus::File nxFile(m_filename, NXACC_READ);
     nxFile.openGroup("mantid_workspace_1", "NXentry");
     std::string paramString;
-    m_inMemoryExptInfo->loadExperimentInfoNexus(&nxFile, paramString);
+    m_inMemoryExptInfo->loadExperimentInfoNexus(m_filename, &nxFile, paramString);
     m_inMemoryExptInfo->readParameterMap(paramString);
   }
 
@@ -56,8 +56,6 @@ public:
 
   void test_getInstrument_populates_object() {
     auto fileBacked = createTestObject();
-    auto fileBackedInstrument = fileBacked->getInstrument();
-    auto inMemoryInstrument = m_inMemoryExptInfo->getInstrument();
 
     TS_ASSERT_EQUALS(fileBacked->constInstrumentParameters(),
                      m_inMemoryExptInfo->constInstrumentParameters());
diff --git a/Code/Mantid/Framework/API/test/MDGeometryTest.h b/Code/Mantid/Framework/API/test/MDGeometryTest.h
index 15f35676ff5c379e2ff2ef012438e86d3176f9ab..8262b3c3475fda17d6bdaf96437fef3e696c5a4d 100644
--- a/Code/Mantid/Framework/API/test/MDGeometryTest.h
+++ b/Code/Mantid/Framework/API/test/MDGeometryTest.h
@@ -256,6 +256,29 @@ public:
     TSM_ASSERT_EQUALS("Wrong number of transforms to original reported.", 2, g.getNumberTransformsToOriginal());
   }
 
+  void test_all_normalized(){
+      MDGeometry geometry;
+      std::vector<IMDDimension_sptr> dims;
+      IMDDimension_sptr dim1(new MDHistoDimension("Qx", "Qx", "Ang", -1, +1, 10));
+      IMDDimension_sptr dim2(new MDHistoDimension("Qy", "Qy", "Ang", -1, +1, 20));
+      dims.push_back(dim1);
+      dims.push_back(dim2);
+      geometry.initGeometry(dims);
+
+      //  Both basis vectors are not normalized
+      geometry.setBasisVector(0, VMD(2.0, 0.0));
+      geometry.setBasisVector(1, VMD(0.0, 4.0));
+      TSM_ASSERT("All Not all basis vectors are normalized", !geometry.allBasisNormalized());
+
+      //  First basis vector is now normalized. The other is not.
+      geometry.setBasisVector(1, VMD(0.0, 1.0));
+      TSM_ASSERT("Not all basis vectors are normalized", !geometry.allBasisNormalized());
+
+      // We overwrite the zeroth basis vector to be normalized. Now both are normalized
+      geometry.setBasisVector(0, VMD(1.0, 0.0));
+      TSM_ASSERT("All basis vectors are normalized", geometry.allBasisNormalized());
+  }
+
 
 };
 
diff --git a/Code/Mantid/Framework/API/test/RemoteJobManagerFactoryTest.h b/Code/Mantid/Framework/API/test/RemoteJobManagerFactoryTest.h
index 90153f606e93124b98a2dcd09ad6d8dfec268a55..635ecac70d58e02a0ac79caecb06a318b980cc91 100644
--- a/Code/Mantid/Framework/API/test/RemoteJobManagerFactoryTest.h
+++ b/Code/Mantid/Framework/API/test/RemoteJobManagerFactoryTest.h
@@ -15,6 +15,8 @@ public:
   virtual void authenticate(const std::string & /*username*/,
                             const std::string & /*password*/) {}
 
+  virtual void logout(const std::string & /*username*/) {}
+
   virtual std::string submitRemoteJob(const std::string & /*transactionID*/,
                                       const std::string & /*runnable*/,
                                       const std::string & /*param*/,
diff --git a/Code/Mantid/Framework/API/test/ScopedWorkspaceTest.h b/Code/Mantid/Framework/API/test/ScopedWorkspaceTest.h
index 245f6bf364f986c029258dcb4d9e62d272057391..9910eb15db427c3f8456da49229dc32dc05f0edd 100644
--- a/Code/Mantid/Framework/API/test/ScopedWorkspaceTest.h
+++ b/Code/Mantid/Framework/API/test/ScopedWorkspaceTest.h
@@ -17,6 +17,11 @@ class MockWorkspace : public Workspace
   virtual const std::string id() const { return "MockWorkspace"; }
   virtual const std::string toString() const { return ""; }
   virtual size_t getMemorySize() const { return 1; }
+
+private:
+  virtual MockWorkspace *doClone() const {
+    throw std::runtime_error("Cloning of MockWorkspace is not implemented.");
+  }
 };
 typedef boost::shared_ptr<MockWorkspace> MockWorkspace_sptr;
 
diff --git a/Code/Mantid/Framework/API/test/WorkspaceGroupTest.h b/Code/Mantid/Framework/API/test/WorkspaceGroupTest.h
index 374cd1c0193de280e03442f219964b32a0948ba4..7a125f876ec3217aadcb9590826ad6d70fc4e1a5 100644
--- a/Code/Mantid/Framework/API/test/WorkspaceGroupTest.h
+++ b/Code/Mantid/Framework/API/test/WorkspaceGroupTest.h
@@ -60,6 +60,11 @@ private:
     MOCK_CONST_METHOD0(threadSafe, bool());
     MOCK_CONST_METHOD0(toString, const std::string());
     MOCK_CONST_METHOD0(getMemorySize, size_t());
+
+  private:
+    virtual MockWorkspace *doClone() const {
+      throw std::runtime_error("Cloning of MockWorkspace is not implemented.");
+    }
   };
 
   /// Make a simple group
diff --git a/Code/Mantid/Framework/Algorithms/CMakeLists.txt b/Code/Mantid/Framework/Algorithms/CMakeLists.txt
index e8dde0d4677c9fd84f7b80f629aae2d196561487..515acd347bdf4d6398b69679cd78b2188c7424b6 100644
--- a/Code/Mantid/Framework/Algorithms/CMakeLists.txt
+++ b/Code/Mantid/Framework/Algorithms/CMakeLists.txt
@@ -4,6 +4,7 @@ set ( SRC_FILES
 	# src/UpdatePeakParameterTable.cpp
 	src/AbsorptionCorrection.cpp
 	src/AddLogDerivative.cpp
+	src/AddNote.cpp
 	src/AddPeak.cpp
 	src/AddSampleLog.cpp
 	src/AddTimeSeriesLog.cpp
@@ -246,6 +247,9 @@ set ( SRC_FILES
 	src/SumSpectra.cpp
 	src/TOFSANSResolution.cpp
 	src/TOFSANSResolutionByPixel.cpp
+	src/TimeAtSampleStrategyDirect.cpp
+	src/TimeAtSampleStrategyElastic.cpp
+	src/TimeAtSampleStrategyIndirect.cpp
 	src/Transpose.cpp
 	src/UnGroupWorkspace.cpp
 	src/UnaryOperation.cpp
@@ -267,6 +271,7 @@ set ( INC_FILES
 	# inc/MantidAlgorithms/UpdatePeakParameterTable.h
 	inc/MantidAlgorithms/AbsorptionCorrection.h
 	inc/MantidAlgorithms/AddLogDerivative.h
+	inc/MantidAlgorithms/AddNote.h
 	inc/MantidAlgorithms/AddPeak.h
 	inc/MantidAlgorithms/AddSampleLog.h
 	inc/MantidAlgorithms/AddTimeSeriesLog.h
@@ -510,6 +515,10 @@ set ( INC_FILES
 	inc/MantidAlgorithms/SumSpectra.h
 	inc/MantidAlgorithms/TOFSANSResolution.h
 	inc/MantidAlgorithms/TOFSANSResolutionByPixel.h
+	inc/MantidAlgorithms/TimeAtSampleStrategy.h
+	inc/MantidAlgorithms/TimeAtSampleStrategyDirect.h
+	inc/MantidAlgorithms/TimeAtSampleStrategyElastic.h
+	inc/MantidAlgorithms/TimeAtSampleStrategyIndirect.h
 	inc/MantidAlgorithms/Transpose.h
 	inc/MantidAlgorithms/UnGroupWorkspace.h
 	inc/MantidAlgorithms/UnaryOperation.h
@@ -541,6 +550,7 @@ set ( TEST_FILES
 	# CountEventsInPulsesTest.h
 	# UpdatePeakParameterTableTest.h
 	AddLogDerivativeTest.h
+	AddNoteTest.h
 	AddPeakTest.h
 	AddSampleLogTest.h
 	AddTimeSeriesLogTest.h
@@ -761,6 +771,9 @@ set ( TEST_FILES
 	SumRowColumnTest.h
 	SumSpectraTest.h
 	TOFSANSResolutionByPixelTest.h
+	TimeAtSampleStrategyDirectTest.h
+	TimeAtSampleStrategyElasticTest.h
+	TimeAtSampleStrategyIndirectTest.h
 	TransposeTest.h
 	UnGroupWorkspaceTest.h
 	UnaryOperationTest.h
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/AddNote.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/AddNote.h
new file mode 100644
index 0000000000000000000000000000000000000000..9a2ee37c2f20cf127f1591a6df03b00d7ee4e313
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/AddNote.h
@@ -0,0 +1,59 @@
+#ifndef MANTID_ALGORITHMS_ADDNOTE_H_
+#define MANTID_ALGORITHMS_ADDNOTE_H_
+
+#include "MantidAPI/Algorithm.h"
+
+namespace Mantid {
+namespace Algorithms {
+
+/**
+  An Algorithm that adds a timestamped note to a workspace.
+
+  @author Elliot Oram, ISIS, RAL
+  @date 17/07/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 DLLExport AddNote : public API::Algorithm {
+public:
+  AddNote();
+  virtual ~AddNote();
+
+  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();
+
+  /// Remove an existing log of the given name
+  void removeExisting(API::MatrixWorkspace_sptr &, const std::string &);
+  /// Create or update the named log entry
+  void createOrUpdate(API::Run &, const std::string &);
+};
+
+} // namespace Algorithms
+} // namespace Mantid
+
+#endif /* MANTID_ALGORITHMS_ADDNOTE_H_ */
\ No newline at end of file
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/AlignDetectors.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/AlignDetectors.h
index 35a2cba1b86cf11b2ed2ca8159fc7278414601d7..e93f1e2360eeaa4c0e5bf5385a8cc94e53689a39 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/AlignDetectors.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/AlignDetectors.h
@@ -2,7 +2,7 @@
 #define MANTID_ALGORITHMS_ALIGNDETECTORS_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidDataObjects/EventWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidDataObjects/OffsetsWorkspace.h"
 #include "MantidKernel/System.h"
 
@@ -52,23 +52,17 @@ public:
   AlignDetectors();
   virtual ~AlignDetectors();
 
-  /// Algorithm's name for identification overriding a virtual method
-  virtual const std::string name() const { return "AlignDetectors"; };
-  /// Summary of algorithms purpose
-  virtual const std::string summary() const {
-    return "Performs a unit change from TOF to dSpacing, correcting the X "
-           "values to account for small errors in the detector positions.";
-  }
+  /// Algorithms name for identification. @see Algorithm::name
+  virtual const std::string name() const;
+  /// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
+  virtual const std::string summary() const;
 
-  /// 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"; }
-
-  // ----- Useful static functions ------
-  static std::map<detid_t, double> *calcTofToD_ConversionMap(
-      Mantid::API::MatrixWorkspace_const_sptr inputWS,
-      Mantid::DataObjects::OffsetsWorkspace_sptr offsetsWS);
+  /// Algorithm's version for identification. @see Algorithm::version
+  virtual int version() const ;
+  /// Algorithm's category for identification. @see Algorithm::category
+  virtual const std::string category() const;
+  /// Cross-check properties with each other @see IAlgorithm::validateInputs
+  virtual std::map<std::string, std::string> validateInputs();
 
 private:
   // Implement abstract Algorithm methods
@@ -77,11 +71,14 @@ private:
 
   void execEvent();
 
-  // void execTOFEvent(std::string calfilename,
-  // Mantid::API::MatrixWorkspace_const_sptr inputWS);
+  void loadCalFile(API::MatrixWorkspace_sptr inputWS, const std::string & filename);
+  void getCalibrationWS(API::MatrixWorkspace_sptr inputWS);
+
+  Mantid::API::ITableWorkspace_sptr m_calibrationWS;
+
+  /// number of spectra in input workspace
+  int64_t m_numberOfSpectra;
 
-  /// Pointer for an event workspace
-  Mantid::DataObjects::EventWorkspace_const_sptr eventW;
 
   /// Map of conversion factors for TOF to d-Spacing conversion
   std::map<detid_t, double> *tofToDmap;
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/BinaryOperation.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/BinaryOperation.h
index 83181a0ab52908b9a4faf26c637e64bb9f3b8bdb..07062fbc96959a224cfd565931ffd9aa4e0b919b 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/BinaryOperation.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/BinaryOperation.h
@@ -6,8 +6,8 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/Run.h"
-#include "MantidAPI/Workspace.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/Workspace_fwd.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 #include "MantidDataObjects/EventList.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidKernel/System.h"
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CalculateEfficiency.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CalculateEfficiency.h
index e0f52ad86d0ceb5140868a0ed60202407e83e732..6e4830b03d7b0a086c4c4cdf82a22a4c950860a0 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CalculateEfficiency.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CalculateEfficiency.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CalculateTransmission.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CalculateTransmission.h
index cd6c383bfd5332f09e97564a8fcb7bee6a124841..def1f4b582a63952bd6c0a0aeabbfe2eaccc5409 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CalculateTransmission.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CalculateTransmission.h
@@ -74,6 +74,7 @@ public:
   virtual ~CalculateTransmission();
   /// Algorithm's name
   virtual const std::string name() const { return "CalculateTransmission"; }
+  ///Summary of algorithms purpose
   /// Summary of algorithms purpose
   virtual const std::string summary() const {
     return "Calculates the transmission correction, as a function of "
@@ -98,8 +99,7 @@ private:
   void exec();
 
   /// Pull out a single spectrum from a 2D workspace
-  API::MatrixWorkspace_sptr extractSpectrum(API::MatrixWorkspace_sptr WS,
-                                            const int64_t index);
+  API::MatrixWorkspace_sptr extractSpectra(API::MatrixWorkspace_sptr ws, const std::vector<size_t> & indices);
   /// Returns a workspace with the evaulation of the fit to the calculated
   /// transmission fraction
   API::MatrixWorkspace_sptr fit(API::MatrixWorkspace_sptr raw,
@@ -115,6 +115,8 @@ private:
   /// Calls the rebin algorithm
   API::MatrixWorkspace_sptr rebin(std::vector<double> &binParams,
                                   API::MatrixWorkspace_sptr output);
+  /// Outpus message to log if the detector at the given index is not a monitor in both input workspaces.
+  void logIfNotMonitor(API::MatrixWorkspace_sptr sampleWS, API::MatrixWorkspace_sptr directWS, size_t index);
 };
 
 } // namespace Algorithm
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ChangeBinOffset.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ChangeBinOffset.h
index a44a0a164e90f2e2b6c663be28b6e2061e28b20a..b3117b1de40b0dc494a807886b6cd615b29a84ea 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ChangeBinOffset.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ChangeBinOffset.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CheckWorkspacesMatch.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CheckWorkspacesMatch.h
index 91e82ac43d31f083c80538665d47cbd1bd4c434d..a1b54c02fb8e227010a92dbfb794c3b4608ff7f3 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CheckWorkspacesMatch.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CheckWorkspacesMatch.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidDataObjects/EventWorkspace.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ConvertAxisByFormula.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ConvertAxisByFormula.h
index 8b5c3d75284a6ffedd5e3f030383d653c69914aa..bc39424b437c2db150ff8c220b247c10a5ef9291 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ConvertAxisByFormula.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ConvertAxisByFormula.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ConvertEmptyToTof.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ConvertEmptyToTof.h
index e9096c9f81575d00b5f8b5230394f98dcc78b409..db06940c690dc57e62a494d2cb933eea63321a08 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ConvertEmptyToTof.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ConvertEmptyToTof.h
@@ -4,7 +4,7 @@
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
 #include "MantidDataObjects/Workspace2D.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include <utility> // std::pair
 
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CopyInstrumentParameters.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CopyInstrumentParameters.h
index efa2bded241bc8fd430c6353493fb006e0fe197f..a5790caf2e070ac7992add809281808228523419 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CopyInstrumentParameters.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CopyInstrumentParameters.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/Instrument.h"
 
 #include <climits>
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CreateLogTimeCorrection.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CreateLogTimeCorrection.h
index 646342d6fa5801d8bd43f91a29e6542c2834a885..706c55bb21ef328c291c0f8f331b05ecfaf948d3 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CreateLogTimeCorrection.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CreateLogTimeCorrection.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidGeometry/Instrument.h"
 
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CreateSampleWorkspace.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CreateSampleWorkspace.h
index db11c9e0d69ae53db3af3ce47e0c8408ae83f483..7133038e53899bba21368405ee159de44c85f252 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CreateSampleWorkspace.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/CreateSampleWorkspace.h
@@ -4,7 +4,7 @@
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/Instrument.h"
 #include "MantidKernel/PseudoRandomNumberGenerator.h"
 
@@ -64,7 +64,9 @@ private:
                            const std::string &functionString, bool isRandom);
   Geometry::Instrument_sptr
   createTestInstrumentRectangular(int num_banks, int pixels,
-                                  double pixelSpacing, const double bankDistanceFromSample);
+                                  double pixelSpacing, 
+                                  const double bankDistanceFromSample,
+                                  const double sourceSampleDistance);
   Geometry::Object_sptr createCappedCylinder(double radius, double height,
                                              const Kernel::V3D &baseCentre,
                                              const Kernel::V3D &axis,
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/EQSANSTofStructure.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/EQSANSTofStructure.h
index 72d732838d708e1bea0873e5da9e7bc3d17b1c37..66b32545de7f260e94a2aa0e1b7e93ed0d1e824d 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/EQSANSTofStructure.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/EQSANSTofStructure.h
@@ -5,9 +5,9 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/EstimateResolutionDiffraction.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/EstimateResolutionDiffraction.h
index 8c24786a6d2f3cb6b3a7e00f94d60cd7ad88e097..4c3dead2741e510eb0400e7b103be9a2d1014c34 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/EstimateResolutionDiffraction.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/EstimateResolutionDiffraction.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/Instrument.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExportTimeSeriesLog.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExportTimeSeriesLog.h
index 3e35f1cf7609a996fb1cdfab5f7b18c1b402c4c7..e4def97d3da9b53ddac9408fd0e597e6d08f0d8f 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExportTimeSeriesLog.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExportTimeSeriesLog.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
 
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExtractMaskToTable.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExtractMaskToTable.h
index b27d1b62ad062868de647c75b90c4d88a619ecb3..8cfd456b490e59603b2d0f761163db37c161fd66 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExtractMaskToTable.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExtractMaskToTable.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/TableWorkspace.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExtractSpectra.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExtractSpectra.h
index 86fbaaa6a318e599ff36bda49bd235abf9d7b682..83fe80ecc04ba1a21aeba82e7a1df6b9222d2a53 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExtractSpectra.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ExtractSpectra.h
@@ -68,8 +68,8 @@ private:
   bool m_histogram;
   /// Flag indicating whether XMin and/or XMax has been set
   bool m_croppingInX;
-  /// The list of spectra to extract.
-  std::vector<specid_t> m_spectrumList;
+  /// The list of workspaces to extract.
+  std::vector<size_t> m_workspaceIndexList;
 };
 
 } // namespace Algorithms
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFT.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFT.h
index b1e34ccf16a49a19816f76f77f385c922e1d4d3a..c455993d6fb38b5cf09c56f83c4b679438ec61e3 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFT.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFT.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFTSmooth.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFTSmooth.h
index f04f7762714f0dcbb08ae20579dcbb5c0331d169..350b9e7e89cd7f2827dfcdeb5a0845191a744e9d 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFTSmooth.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFTSmooth.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFTSmooth2.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFTSmooth2.h
index 8e3d189d468d03f0a79ae48781873d3030ef028a..7fd15314cc9147e515c1ecd7f2bb35a55cb81b43 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFTSmooth2.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FFTSmooth2.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FilterEvents.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FilterEvents.h
index 1814d010af51cc72cb3f92b5bbb8f9a8cc127268..ac563068024ae9473537f6a7228a52683aee0658 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FilterEvents.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FilterEvents.h
@@ -8,12 +8,14 @@
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidAPI/ISplittersWorkspace.h"
 #include "MantidKernel/TimeSplitter.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidKernel/TimeSeriesProperty.h"
 
 namespace Mantid {
 namespace Algorithms {
 
+class TimeAtSampleStrategy;
+
 /** FilterEvents : Filter Events in EventWorkspace to multiple EventsWorkspace
   by Splitters
 
@@ -92,15 +94,15 @@ private:
   void setupDetectorTOFCalibration();
 
   /// Set up detector calibration parameters for elastic scattering instrument
-  void setupElasticTOFCorrection(API::MatrixWorkspace_sptr corrws);
+  TimeAtSampleStrategy* setupElasticTOFCorrection() const;
 
   /// Set up detector calibration parmaeters for direct inelastic scattering
   /// instrument
-  void setupDirectTOFCorrection(API::MatrixWorkspace_sptr corrws);
+  TimeAtSampleStrategy* setupDirectTOFCorrection() const;
 
   /// Set up detector calibration parameters for indirect inelastic scattering
   /// instrument
-  void setupIndirectTOFCorrection(API::MatrixWorkspace_sptr corrws);
+  TimeAtSampleStrategy* setupIndirectTOFCorrection() const;
 
   /// Set up detector calibration parameters from customized values
   void setupCustomizedTOFCorrection();
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FitPeak.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FitPeak.h
index 325176ccfca2fabda980d0a0d6188b3acb6c6fa9..2ed8d511dc87e7edfec46190ddb4fc22a0392ed5 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FitPeak.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FitPeak.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/IPeakFunction.h"
 #include "MantidAPI/IBackgroundFunction.h"
 #include "MantidDataObjects/TableWorkspace.h"
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GenerateEventsFilter.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GenerateEventsFilter.h
index d057fec05be9638925ed6cee10594416d4fccae8..cebed9f58a483e0afce13ab054b2d9ba92b5c7b7 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GenerateEventsFilter.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GenerateEventsFilter.h
@@ -6,8 +6,7 @@
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidKernel/TimeSeriesProperty.h"
 #include "MantidDataObjects/SplittersWorkspace.h"
-#include "MantidAPI/ISplittersWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
@@ -174,7 +173,7 @@ private:
   DataObjects::EventWorkspace_const_sptr m_dataWS;
 
   /// SplitterWorkspace
-  API::ISplittersWorkspace_sptr m_splitWS;
+  DataObjects::SplittersWorkspace_sptr m_splitWS;
   /// Matrix workspace containing splitters
   API::MatrixWorkspace_sptr m_filterWS;
 
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GeneratePeaks.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GeneratePeaks.h
index 0142c95b418a84cdf3d7913316f0266abf7b5760..faf07c8aa8cbda0399fc4c2a96152b142f9ba2f4 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GeneratePeaks.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GeneratePeaks.h
@@ -4,7 +4,7 @@
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
 #include "MantidDataObjects/TableWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidAPI/IPeakFunction.h"
 #include "MantidAPI/CompositeFunction.h"
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetDetOffsetsMultiPeaks.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetDetOffsetsMultiPeaks.h
index 755fea2fadfbaa742c7cdfdb902288a218d6bb97..24bc3aae46e27bcc984148689a62ced1ece93d3d 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetDetOffsetsMultiPeaks.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetDetOffsetsMultiPeaks.h
@@ -6,7 +6,7 @@
 #include "MantidDataObjects/OffsetsWorkspace.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidDataObjects/TableWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include <gsl/gsl_blas.h>
 #include <gsl/gsl_multifit_nlin.h>
 #include <gsl/gsl_multimin.h>
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetEi2.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetEi2.h
index 25c5e124793943515b9b88fc6324dd90a0766a74..04cd146e7cf984fc094795db2ac7bb63c938d35f 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetEi2.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetEi2.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/System.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetTimeSeriesLogInformation.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetTimeSeriesLogInformation.h
index fba0d92b6e336d2a1ccccf2cb14707b1d157fb8a..8c86c243fa1fc17ce08374ad17a38a4e1cc1d928 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetTimeSeriesLogInformation.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GetTimeSeriesLogInformation.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidDataObjects/TableWorkspace.h"
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GravitySANSHelper.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GravitySANSHelper.h
index 943d17375b257ba48a297eaa0ee064b0622a7bb5..b67013edda6fb83714d45ff0a3f6417a77aaad2a 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GravitySANSHelper.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GravitySANSHelper.h
@@ -1,6 +1,8 @@
 #ifndef MANTID_ALGORITHMS_GRAVITYSANSHELPER_H_
 #define MANTID_ALGORITHMS_GRAVITYSANSHELPER_H_
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidKernel/V3D.h"
+#include "MantidGeometry/IDetector.h"
 
 namespace Mantid {
 namespace Algorithms {
@@ -81,4 +83,4 @@ private:
 };
 }
 }
-#endif /*#define MANTID_ALGORITHMS_GRAVITYSANSHELPER_H_*/
\ No newline at end of file
+#endif /*#define MANTID_ALGORITHMS_GRAVITYSANSHELPER_H_*/
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GroupWorkspaces.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GroupWorkspaces.h
index 81113d0bb6437d7672c1f41daf042577ccb7430c..c1d0a0bc14f0f4324452a55064442e92bce5bb72 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GroupWorkspaces.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/GroupWorkspaces.h
@@ -7,9 +7,11 @@
 #include "MantidAPI/Algorithm.h"
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidAPI/WorkspaceProperty.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
+
 namespace Mantid {
 namespace Algorithms {
+
 /** Takes   workspaces as input and groups the workspaces.
 
 Required Properties:
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ModeratorTzero.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ModeratorTzero.h
index 2276cfe3492fb6ede048b50cf8f8f16c994aec0e..69f72f97c9e34c9a2cde73680b7c10b85f777ce7 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ModeratorTzero.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ModeratorTzero.h
@@ -104,15 +104,15 @@ private:
   /// Execution code for histogram workspace
   void exec();
   /// Execution code for event workspace
-  void execEvent();
-  /// Calculate distance from source to sample or monitor
-  double CalculateL1(Mantid::API::MatrixWorkspace_sptr inputWS, size_t i);
-  /// Calculate time from sample to detector
-  double CalculateT2(Mantid::API::MatrixWorkspace_sptr inputWS, size_t i);
-  /// Calculate emission time from the moderator for a given detector (L1, t2)
-  /// and TOF
-  double CalculateT0(const double &tof, const double &L1, const double &t2,
-                     double &E1, mu::Parser &parser);
+  void execEvent(const std::string &emode);
+  /// Calculate emission time from the moderator for a given
+  /// detector (L1, t2) and TOF when Emode==Inelastic
+  double CalculateT0indirect(const double &tof, const double &L1,
+    const double &t2, double &E1, mu::Parser &parser);
+  /// Calculate emission time from the moderator for a given
+  /// detector (L1, t2) and TOF when Emode==Elastic
+  double CalculateT0elastic(const double &tof, const double &L12,
+    double &E1, mu::Parser &parser);
   const double m_convfactor;
   /// Maximum number of iterations when calculating the emission time from the
   /// moderator
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RealFFT.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RealFFT.h
index 2ca65fdb6a21b803c029a405e013c7c16a1ce725..dd19f3811e95eaf51fce33e7b053ebee75afb477 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RealFFT.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RealFFT.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidAlgorithms/FFT.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Rebin2D.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Rebin2D.h
index 6c1eb4f51ea4e9d996672a6c063cf063cecf2020..a852a349c234c1abdb214f57fce76387001bf745 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Rebin2D.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Rebin2D.h
@@ -60,28 +60,6 @@ public:
   virtual const std::string category() const { return "Transforms\\Rebin"; }
 
 protected:
-  /// Rebin the input quadrilateral to to output grid
-  void rebinToOutput(const Geometry::Quadrilateral &inputQ,
-                     API::MatrixWorkspace_const_sptr inputWS, const size_t i,
-                     const size_t j, API::MatrixWorkspace_sptr outputWS,
-                     const std::vector<double> &verticalAxis);
-  /// Rebin the input quadrilateral to to output grid
-  void rebinToFractionalOutput(const Geometry::Quadrilateral &inputQ,
-                               API::MatrixWorkspace_const_sptr inputWS,
-                               const size_t i, const size_t j,
-                               DataObjects::RebinnedOutput_sptr outputWS,
-                               const std::vector<double> &verticalAxis);
-
-  /// Find the intersect region on the output grid
-  bool getIntersectionRegion(API::MatrixWorkspace_const_sptr outputWS,
-                             const std::vector<double> &verticalAxis,
-                             const Geometry::Quadrilateral &inputQ,
-                             size_t &qstart, size_t &qend, size_t &en_start,
-                             size_t &en_end) const;
-  /// Compute sqrt of errors and put back in bin width division if necessary
-  void normaliseOutput(API::MatrixWorkspace_sptr outputWS,
-                       API::MatrixWorkspace_const_sptr inputWS);
-
   /// Progress reporter
   boost::shared_ptr<API::Progress> m_progress;
 
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinByTimeAtSample.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinByTimeAtSample.h
index d00e9d9682180cb383ea6a0038fe61a292540f98..741c404f326df10b26383adb54ebaa07aa631001 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinByTimeAtSample.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinByTimeAtSample.h
@@ -5,6 +5,7 @@
 #include "MantidAlgorithms/RebinByTimeBase.h"
 
 namespace Mantid {
+
 namespace Algorithms {
 
 /** RebinByTimeAtSample : Rebins an event workspace to a histogram workspace
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinByTimeBase.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinByTimeBase.h
index 1676de507e98163596bebdc1317aab442ef51e9d..7560baec50117a76c80ec0f6dbfab43da0ce1cb2 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinByTimeBase.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinByTimeBase.h
@@ -3,8 +3,8 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/IEventWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidAPI/IEventWorkspace_fwd.h"
 #include "MantidKernel/cow_ptr.h"
 #include "MantidAPI/Progress.h"
 
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinToWorkspace.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinToWorkspace.h
index 9f9a42bd973f6449397df906000e82f84f4ff919..1bd1d61f29e7376302978ba508a14f656c04ec22 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinToWorkspace.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RebinToWorkspace.h
@@ -2,7 +2,7 @@
 #define ALGORITHMS_REBINTOWORKSPACE_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ReflectometryReductionOne.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ReflectometryReductionOne.h
index c73fcd890077cb3b1ac0f06e55d513b6a97f7da6..0894c133735d8df53a9f22b7aa5588190b5e143d 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ReflectometryReductionOne.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ReflectometryReductionOne.h
@@ -2,7 +2,7 @@
 #define MANTID_ALGORITHMS_REFLECTOMETRYREDUCTIONONE_H_
 
 #include "MantidKernel/System.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/Instrument.h"
 #include "MantidGeometry/IComponent.h"
 #include "MantidGeometry/IDetector.h"
@@ -99,6 +99,11 @@ private:
       const OptionalDouble &stitchingEndOverlapQ, const double &wavelengthStep,
       const std::string &processingCommands);
 
+  /// Perform transmission correction using either PolynomialCorrection
+  /// or ExponentialCorrection.
+  API::MatrixWorkspace_sptr
+  algorithmicCorrection(API::MatrixWorkspace_sptr IvsLam);
+
   /// Verify spectrum maps
   void verifySpectrumMaps(API::MatrixWorkspace_const_sptr ws1,
                           API::MatrixWorkspace_const_sptr ws2,
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Regroup.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Regroup.h
index 365480571a397c69fbe694c3344d1c268d3ccd6d..69b8970c7782b575b29e1a3b9f6f9dc238cd51dd 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Regroup.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Regroup.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RemoveMaskedSpectra.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RemoveMaskedSpectra.h
index 03354c75b5bd4eaf64be9bc204261171496cd2c8..278be3d8abe422031e99de941ae10948d154b849 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RemoveMaskedSpectra.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/RemoveMaskedSpectra.h
@@ -43,7 +43,7 @@ public:
 private:
   void init();
   void exec();
-  void makeIndexList(std::vector<specid_t> &indices,
+  void makeIndexList(std::vector<size_t> &indices,
                      const API::MatrixWorkspace *maskedWorkspace);
 };
 
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SaveGSASInstrumentFile.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SaveGSASInstrumentFile.h
index 2d8ce483a27a4fb235459b6d4685e61c5fe99649..1a0b8b8e908eff0085d98ba58c6a420bfa3e4d74 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SaveGSASInstrumentFile.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SaveGSASInstrumentFile.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidDataObjects/TableWorkspace.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ScaleX.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ScaleX.h
index 9d9190818b0ceac827d90a1eebf3e3f658184b12..62e8ba567a7589c4f161424ec625b0358a05b515 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ScaleX.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/ScaleX.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 #include <boost/function.hpp>
 
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SofQCommon.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SofQCommon.h
index 4ff44cff32fed0d6dae3222c5180869764ad95bb..d8deb07775c6acd93cad4e2b2dabc1078e3e46e8 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SofQCommon.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SofQCommon.h
@@ -1,7 +1,8 @@
 #ifndef MANTID_ALGORITHMS_SOFQW_COMMON_H_
 #define MANTID_ALGORITHMS_SOFQW_COMMON_H_
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/Algorithm.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/IDetector.h"
 // Two small routines used by all SofQW algorithms intended to provide united
 // user interface to all SofQ algorihtms.
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SpecularReflectionPositionCorrect.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SpecularReflectionPositionCorrect.h
index a427e4c44b4d920e7373b9a7a1c77fcf672c6e56..1320760ce62116ff71ea112353812bab0e6d4ac5 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SpecularReflectionPositionCorrect.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SpecularReflectionPositionCorrect.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAlgorithms/SpecularReflectionAlgorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/StripPeaks.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/StripPeaks.h
index 10a6c8fe4b713a9ca9b1b12bc248912cc359a63c..eacde19b9542a61b6f2249e75172e064dd79f52a 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/StripPeaks.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/StripPeaks.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks.h
index 7f8823177dd14426d89efa0ff10ea96d5bc7d547..262bf33ee52797963c5859faa40555aa7c1c4769 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks.h
@@ -12,7 +12,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SumEventsByLogValue.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SumEventsByLogValue.h
index d418be1f2ce9b8ddf71295aeb8c15ed5d388cca5..4af2579b1338209b9ca29c5aaed686e49f733284 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SumEventsByLogValue.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SumEventsByLogValue.h
@@ -7,7 +7,7 @@
 #include "MantidAPI/Algorithm.h"
 #include "MantidKernel/TimeSeriesProperty.h"
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SumSpectra.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SumSpectra.h
index db9647c07cf1e2d9f4ab2bee0d67bea257d3b614..f7530823cc3a337693526d15d65ba92a3e7fdee8 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SumSpectra.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/SumSpectra.h
@@ -96,9 +96,9 @@ private:
   /// The output spectrum id
   specid_t m_outSpecId;
   /// The spectrum to start the integration from
-  int m_MinSpec;
+  int m_minSpec;
   /// The spectrum to finish the integration at
-  int m_MaxSpec;
+  int m_maxSpec;
   /// Set true to keep monitors
   bool m_keepMonitors;
   /// numberOfSpectra in the input
@@ -110,7 +110,7 @@ private:
 
   // if calculateing additional workspace with specially weighted averages is
   // necessary
-  bool m_CalculateWeightedSum;
+  bool m_calculateWeightedSum;
 };
 
 } // namespace Algorithm
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TOFSANSResolution.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TOFSANSResolution.h
index 9be467e51281660822e5e5a1869303d8e153c2f9..f8e7b3352ee0e48b2a79da4d6cf93aa130cf05dd 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TOFSANSResolution.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TOFSANSResolution.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TOFSANSResolutionByPixel.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TOFSANSResolutionByPixel.h
index b180363e3e08f2a0dbd00d59a57b501d67ed2416..158ad68fd81de3db814b550356d84fdedce9fd79 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TOFSANSResolutionByPixel.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TOFSANSResolutionByPixel.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategy.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategy.h
new file mode 100644
index 0000000000000000000000000000000000000000..9b141ef8504b23a1eaa6a1ebd489978270b3527f
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategy.h
@@ -0,0 +1,51 @@
+#ifndef MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGY_H_
+#define MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGY_H_
+
+#include "MantidKernel/System.h"
+
+namespace Mantid {
+namespace Algorithms {
+
+struct Correction {
+  Correction(double tOffset, double tFactor)
+      : offset(tOffset), factor(tFactor) {}
+  double offset;
+  double factor;
+};
+
+/** TimeAtSampleStrategy : Strategy (technique dependent) for determining Time
+  At Sample
+
+  SampleT = PulseT + [TOF to sample]
+
+  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 TimeAtSampleStrategy {
+public:
+  virtual Correction calculate(const size_t &workspace_index) const = 0;
+  virtual ~TimeAtSampleStrategy(){};
+};
+
+} // namespace Algorithms
+} // namespace Mantid
+
+#endif /* MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGY_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategyDirect.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategyDirect.h
new file mode 100644
index 0000000000000000000000000000000000000000..498c4a8f199d3489ff69d10072d51b68e78bf0ad
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategyDirect.h
@@ -0,0 +1,53 @@
+#ifndef MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYDIRECT_H_
+#define MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYDIRECT_H_
+
+#include "MantidKernel/System.h"
+#include "MantidAlgorithms/TimeAtSampleStrategy.h"
+#include <boost/shared_ptr.hpp>
+
+namespace Mantid {
+
+namespace API {
+class MatrixWorkspace;
+}
+
+namespace Algorithms {
+/** TimeAtSampleStrategyDirect : Determine the Time at Sample corrections for a
+  Direct Geometry instrument
+
+  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 TimeAtSampleStrategyDirect : public TimeAtSampleStrategy {
+public:
+  TimeAtSampleStrategyDirect(boost::shared_ptr<const Mantid::API::MatrixWorkspace> ws, double ei);
+  virtual ~TimeAtSampleStrategyDirect();
+  Correction calculate(const size_t &workspace_index) const;
+
+private:
+  /// Cached L1, Ei dependent const shift
+  double m_constShift;
+};
+
+} // namespace Algorithms
+} // namespace Mantid
+
+#endif /* MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYDIRECT_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategyElastic.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategyElastic.h
new file mode 100644
index 0000000000000000000000000000000000000000..8cf3b80773e80dda6471c2409d031443e433a470
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategyElastic.h
@@ -0,0 +1,53 @@
+#ifndef MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYELASTIC_H_
+#define MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYELASTIC_H_
+
+#include "MantidKernel/System.h"
+#include "MantidAlgorithms/TimeAtSampleStrategy.h"
+#include <boost/shared_ptr.hpp>
+
+namespace Mantid {
+
+namespace API {
+class MatrixWorkspace;
+}
+namespace Algorithms {
+
+/** TimeAtSampleStrategyElastic : Time at sample stragegy for elastic scattering
+
+  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 TimeAtSampleStrategyElastic
+    : public Mantid::Algorithms::TimeAtSampleStrategy {
+public:
+  TimeAtSampleStrategyElastic(
+      boost::shared_ptr<const Mantid::API::MatrixWorkspace> ws);
+  virtual ~TimeAtSampleStrategyElastic();
+  virtual Correction calculate(const size_t &workspace_index) const;
+
+private:
+  boost::shared_ptr<const Mantid::API::MatrixWorkspace> m_ws;
+};
+
+} // namespace Algorithms
+} // namespace Mantid
+
+#endif /* MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYELASTIC_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategyIndirect.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategyIndirect.h
new file mode 100644
index 0000000000000000000000000000000000000000..d6454359b72ac455c6eb3162c2fb8904e015839c
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/TimeAtSampleStrategyIndirect.h
@@ -0,0 +1,52 @@
+#ifndef MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYINDIRECT_H_
+#define MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYINDIRECT_H_
+
+#include "MantidKernel/System.h"
+#include "MantidAlgorithms/TimeAtSampleStrategy.h"
+#include <boost/shared_ptr.hpp>
+
+namespace Mantid {
+
+namespace API {
+class MatrixWorkspace;
+}
+
+namespace Algorithms {
+
+/** TimeAtSampleStrategyIndirect : Determine Time At Sample for an indirect instrument setup.
+
+  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 TimeAtSampleStrategyIndirect : public TimeAtSampleStrategy {
+public:
+  TimeAtSampleStrategyIndirect(boost::shared_ptr<const Mantid::API::MatrixWorkspace> ws);
+  virtual ~TimeAtSampleStrategyIndirect();
+  virtual Correction calculate(const size_t &workspace_index) const;
+private:
+  /// Workspace to operate on
+  boost::shared_ptr<const Mantid::API::MatrixWorkspace> m_ws;
+};
+
+} // namespace Algorithms
+} // namespace Mantid
+
+#endif /* MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYINDIRECT_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/src/AddNote.cpp b/Code/Mantid/Framework/Algorithms/src/AddNote.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1c2e6ad9ae2fd869b738c3bbb0449581c587c123
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/src/AddNote.cpp
@@ -0,0 +1,143 @@
+#include "MantidAlgorithms/AddNote.h"
+#include "MantidKernel/DateTimeValidator.h"
+#include "MantidKernel/MandatoryValidator.h"
+#include "MantidKernel/TimeSeriesProperty.h"
+#include "boost/date_time/local_time/posix_time_zone.hpp"
+
+namespace Mantid {
+namespace Algorithms {
+
+using namespace API;
+using namespace Kernel;
+
+namespace {
+/**
+ * Creates/updates the named log on the given run.
+ * @param run A reference to the run object that stores the logs
+ * @param name The name of the log that is to be either created or updated
+ * @param time A time string in ISO format, passed to the DateAndTime
+ * constructor
+ * @param value The value at the given time
+ */
+void createOrUpdateValue(API::Run &run, const std::string &name,
+                         const std::string &time, const std::string &value) {
+  TimeSeriesProperty<std::string> *timeSeries(NULL);
+  if (run.hasProperty(name)) {
+    timeSeries =
+        dynamic_cast<TimeSeriesProperty<std::string> *>(run.getLogData(name));
+    if (!timeSeries)
+      throw std::invalid_argument(
+          "Log '" + name +
+          "' already exists but the values are a different type.");
+  } else {
+    timeSeries = new TimeSeriesProperty<std::string>(name);
+    run.addProperty(timeSeries);
+  }
+  timeSeries->addValue(time, value);
+}
+}
+
+// Register the algorithm into the AlgorithmFactory
+DECLARE_ALGORITHM(AddNote)
+
+//----------------------------------------------------------------------------------------------
+AddNote::AddNote() {}
+
+AddNote::~AddNote() {}
+
+//----------------------------------------------------------------------------------------------
+
+/// Algorithms name for identification. @see Algorithm::name
+const std::string AddNote::name() const { return "AddNote"; }
+
+/// Algorithm's version for identification. @see Algorithm::version
+int AddNote::version() const { return 1; }
+
+/// Algorithm's category for identification. @see Algorithm::category
+const std::string AddNote::category() const { return "DataHandling\\Logs"; }
+
+/// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
+const std::string AddNote::summary() const {
+  return "Adds a timestamped note to a workspace.";
+}
+
+//----------------------------------------------------------------------------------------------
+/** Initialize the algorithm's properties.
+ */
+void AddNote::init() {
+  declareProperty(
+      new WorkspaceProperty<MatrixWorkspace>("Workspace", "", Direction::InOut),
+      "An InOut workspace that will store the new log information");
+
+  declareProperty("Name", "",
+                  boost::make_shared<MandatoryValidator<std::string>>(),
+                  "A String name for either a new time series log to be "
+                  "created or an existing name to update",
+                  Direction::Input);
+
+  auto dtv = boost::make_shared<DateTimeValidator>();
+  dtv->allowEmpty(true);
+
+  declareProperty(
+      "Time", "", dtv,
+      "An ISO formatted date/time string specifying the timestamp for "
+      "the given log value, for example 2010-09-14T04:20:12 \n"
+      "If left blank, this will default to the current Date and Time",
+      Direction::Input);
+
+  declareProperty(
+      "Value", "", boost::make_shared<MandatoryValidator<std::string>>(),
+      "A String value for the series log at the given time", Direction::Input);
+
+  declareProperty(
+      "DeleteExisting", false,
+      "If true and the named log exists then the whole log is removed first.",
+      Direction::Input);
+}
+//----------------------------------------------------------------------------------------------
+/** Executes the algorithm.
+ */
+void AddNote::exec() {
+  MatrixWorkspace_sptr logWS = getProperty("Workspace");
+  std::string name = getProperty("Name");
+  const bool deleteExisting = getProperty("DeleteExisting");
+  auto &run = logWS->mutableRun();
+  if (deleteExisting && run.hasProperty(name)) {
+    removeExisting(logWS, name);
+  }
+  createOrUpdate(run, name);
+  auto dtv = boost::make_shared<DateTimeValidator>();
+}
+
+/**
+ * Removes an existing instance of the log from the Workspace
+ * @param logWS The workspace containing the log
+ * @param name The name of the log to delete
+ */
+void AddNote::removeExisting(API::MatrixWorkspace_sptr &logWS,
+                             const std::string &name) {
+  auto deleter = createChildAlgorithm("DeleteLog", -1, -1, false);
+  deleter->setProperty("Workspace", logWS);
+  deleter->setProperty("Name", name);
+  deleter->executeAsChildAlg();
+}
+
+/**
+ * Obtains variables to use in createOrUpdateValue function
+ * @param run The run object that either has the log or will store it
+ * @param name The name of the log to create/update
+ */
+void AddNote::createOrUpdate(API::Run &run, const std::string &name) {
+  std::string time = getProperty("Time");
+  if (time.compare(std::string("")) == 0) {
+    namespace pt = boost::posix_time;
+    auto dateTimeObj = DateAndTime(pt::second_clock::local_time());
+    time = dateTimeObj.toISO8601String();
+  }
+  std::string value = getProperty("Value");
+
+  createOrUpdateValue(run, name, time, value);
+}
+
+} // namespace Algorithms
+} // namespace Mantid
\ No newline at end of file
diff --git a/Code/Mantid/Framework/Algorithms/src/AddSampleLog.cpp b/Code/Mantid/Framework/Algorithms/src/AddSampleLog.cpp
index 5660a83383c57594440dc293fd3809720eb316ba..31036f03bad4cc7d2f6b4222ea3a2680810c30f0 100644
--- a/Code/Mantid/Framework/Algorithms/src/AddSampleLog.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/AddSampleLog.cpp
@@ -36,6 +36,7 @@ void AddSampleLog::init() {
   declareProperty("LogType", "String",
                   boost::make_shared<StringListValidator>(propOptions),
                   "The type that the log data will be.");
+  declareProperty("LogUnit", "", "The units of the log");
 }
 
 void AddSampleLog::exec() {
@@ -48,6 +49,7 @@ void AddSampleLog::exec() {
   // get the data that the user wants to add
   std::string propName = getProperty("LogName");
   std::string propValue = getProperty("LogText");
+  std::string propUnit = getProperty("LogUnit");
   std::string propType = getPropertyValue("LogType");
 
   // Remove any existing log
@@ -57,6 +59,7 @@ void AddSampleLog::exec() {
 
   if (propType == "String") {
     theRun.addLogData(new PropertyWithValue<std::string>(propName, propValue));
+    theRun.getProperty(propName)->setUnits(propUnit);
     return;
   }
 
@@ -94,6 +97,7 @@ void AddSampleLog::exec() {
       theRun.addLogData(tsp);
     }
   }
+  theRun.getProperty(propName)->setUnits(propUnit);
 }
 
 } // namespace Algorithms
diff --git a/Code/Mantid/Framework/Algorithms/src/AlignDetectors.cpp b/Code/Mantid/Framework/Algorithms/src/AlignDetectors.cpp
index dbe3c0ab96fca0ffeffc0b3ea00350aa2b43df48..fc48aea5099443b63d8ff87b02ae539afd326274 100644
--- a/Code/Mantid/Framework/Algorithms/src/AlignDetectors.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/AlignDetectors.cpp
@@ -3,6 +3,7 @@
 //----------------------------------------------------------------------
 #include "MantidAlgorithms/AlignDetectors.h"
 #include "MantidAPI/FileProperty.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceValidators.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidDataObjects/OffsetsWorkspace.h"
@@ -23,91 +24,136 @@ namespace Algorithms {
 // Register the algorithm into the algorithm factory
 DECLARE_ALGORITHM(AlignDetectors)
 
-//-----------------------------------------------------------------------
-/**
- * Make a map of the conversion factors between tof and D-spacing
- * for all pixel IDs in a workspace.
- * @param inputWS the workspace containing the instrument geometry of interest.
- * @param offsetsWS map between pixelID and offset (from the calibration file)
- * @return map of conversion factors between TOF and dSpacing
- */
-std::map<detid_t, double> *AlignDetectors::calcTofToD_ConversionMap(
-    Mantid::API::MatrixWorkspace_const_sptr inputWS,
-    OffsetsWorkspace_sptr offsetsWS) {
-  // Get a pointer to the instrument contained in the workspace
-  Instrument_const_sptr instrument = inputWS->getInstrument();
-
-  double l1;
-  Kernel::V3D beamline, samplePos;
-  double beamline_norm;
-
-  instrument->getInstrumentParameters(l1, beamline, beamline_norm, samplePos);
-
-  std::map<detid_t, double> *myMap = new std::map<detid_t, double>();
-
-  // To get all the detector ID's
-  detid2det_map allDetectors;
-  instrument->getDetectors(allDetectors);
-
-  // Now go through all
-  detid2det_map::iterator it;
-  for (it = allDetectors.begin(); it != allDetectors.end(); ++it) {
-    detid_t detectorID = it->first;
-    Geometry::IDetector_const_sptr det = it->second;
-
-    // Find the offset, if any
-    double offset = offsetsWS->getValue(detectorID, 0.0);
-    if (offset <= -1.) { // non-physical
-      std::stringstream msg;
-      msg << "Encountered offset of " << offset
-          << " which converts data to negative d-spacing for detectorID "
-          << detectorID << "\n";
-      throw std::logic_error(msg.str());
-    }
+namespace { // anonymous namespace
 
-    // Compute the factor
-    double factor = Instrument::calcConversion(l1, beamline, beamline_norm,
-                                               samplePos, det, offset);
+    /// Applies the equation d=(TOF-tzero)/difc
+    struct func_difc_only {
+      func_difc_only(const double difc) : factor(1./difc){
+      }
 
-    // Save in map
-    (*myMap)[detectorID] = factor;
-  }
+      double operator()(const double tof) const {
+        return factor*tof;
+      }
 
-  // Give back the map.
-  return myMap;
-}
+      /// 1./difc
+      double factor;
+    };
 
-//-----------------------------------------------------------------------
-/** Compute a conversion factor for a LIST of detectors.
- * Averages out the conversion factors if there are several.
- *
- * @param tofToDmap :: detectord id to double conversions map
- * @param detectors :: list of detector IDS
- * @return
- */
+    /// Applies the equation d=(TOF-tzero)/difc
+    struct func_difc_and_tzero {
+      func_difc_and_tzero(const double difc, const double tzero) : factor(1./difc), offset(-1.*tzero/difc){
+      }
 
-double calcConversionFromMap(std::map<detid_t, double> *tofToDmap,
-                             const std::set<detid_t> &detectors) {
-  double factor = 0.;
-  detid_t numDetectors = 0;
-  for (std::set<detid_t>::const_iterator iter = detectors.begin();
-       iter != detectors.end(); ++iter) {
-    detid_t detectorID = *iter;
-    std::map<detid_t, double>::iterator it;
-    it = tofToDmap->find(detectorID);
-    if (it != tofToDmap->end()) {
-      factor += it->second; // The factor for that ID
-      numDetectors++;
-    }
-  }
-  if (numDetectors > 0)
-    return factor / static_cast<double>(numDetectors);
-  else
-    return 0;
+      double operator()(const double tof) const {
+        return factor*tof+offset;
+      }
+
+      /// 1./difc
+      double factor;
+      /// -tzero/difc
+      double offset;
+    };
+
+    struct func_difa {
+      func_difa(const double difc, const double difa, const double tzero) {
+          factor1 = -0.5 * difc / difa;
+          factor2 = 1. / difa;
+          factor3 = (factor1 * factor1) - (tzero / difa);
+      }
+
+      double operator()(const double tof) const {
+        double second = std::sqrt((tof*factor2) + factor3);
+        if (second < factor1)
+            return factor1-second;
+        else {
+            return factor1+second;
+        }
+      }
+
+      /// -0.5*difc/difa
+      double factor1;
+      /// 1/difa
+      double factor2;
+      /// (0.5*difc/difa)^2 - (tzero/difa)
+      double factor3;
+    };
+
+    class ConversionFactors {
+    public:
+        ConversionFactors(ITableWorkspace_const_sptr table) {
+            m_difcCol = table->getColumn("difc");
+            m_difaCol = table->getColumn("difa");
+            m_tzeroCol = table->getColumn("tzero");
+
+            this->generateDetidToRow(table);
+        }
+
+        std::function<double(double)> getConversionFunc(const std::set<detid_t> & detIds) {
+            const std::set<size_t> rows = this->getRow(detIds);
+            double difc = 0.;
+            double difa = 0.;
+            double tzero = 0.;
+            for (auto row = rows.begin(); row != rows.end(); ++row) {
+                difc += m_difcCol->toDouble(*row);
+                difa += m_difaCol->toDouble(*row);
+                tzero += m_tzeroCol->toDouble(*row);
+            }
+            if (rows.size() > 1) {
+                double norm = 1./static_cast<double>(rows.size());
+                difc = norm * difc;
+                difa = norm * difa;
+                tzero = norm * tzero;
+            }
+
+            if (difa == 0.) {
+                if (tzero == 0.) {
+                    return func_difc_only(difc);
+                } else {
+                    return func_difc_and_tzero(difc, tzero);
+                }
+            } else { // difa != 0.
+                return func_difa(difc, difa, tzero);
+            }
+        }
+
+    private:
+        void generateDetidToRow(ITableWorkspace_const_sptr table) {
+            ConstColumnVector<int> detIDs = table->getVector("detid");
+            const size_t numDets = detIDs.size();
+            for (size_t i=0; i<numDets; ++i) {
+                m_detidToRow[static_cast<detid_t>(detIDs[i])]=i;
+            }
+        }
+
+        std::set<size_t> getRow(const std::set<detid_t> & detIds) {
+            std::set<size_t> rows;
+            for (auto detId = detIds.begin(); detId != detIds.end(); ++detId) {
+                auto rowIter = m_detidToRow.find(*detId);
+                if (rowIter != m_detidToRow.end()) { // skip if not found
+                    rows.insert(rowIter->second);
+                }
+            }
+            return rows;
+        }
+
+        std::map<detid_t, size_t> m_detidToRow;
+        Column_const_sptr m_difcCol;
+        Column_const_sptr m_difaCol;
+        Column_const_sptr m_tzeroCol;
+    };
+} // anonymous namespace
+
+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::summary() const {
+  return "Performs a unit change from TOF to dSpacing, correcting the X "
+         "values to account for small errors in the detector positions.";
 }
 
-//========================================================================
-//========================================================================
 /// (Empty) Constructor
 AlignDetectors::AlignDetectors() { this->tofToDmap = NULL; }
 
@@ -120,7 +166,6 @@ void AlignDetectors::init() {
   // Workspace unit must be TOF.
   wsValidator->add<WorkspaceUnitValidator>("TOF");
   wsValidator->add<RawCountValidator>();
-  wsValidator->add<InstrumentValidator>();
 
   declareProperty(new WorkspaceProperty<API::MatrixWorkspace>(
                       "InputWorkspace", "", Direction::Input, wsValidator),
@@ -131,17 +176,106 @@ void AlignDetectors::init() {
                   "The name to use for the output workspace");
 
   std::vector<std::string> exts;
+  exts.push_back(".h5");
+  exts.push_back(".hd5");
+  exts.push_back(".hdf");
   exts.push_back(".cal");
   declareProperty(
       new FileProperty("CalibrationFile", "", FileProperty::OptionalLoad, exts),
       "Optional: The .cal file containing the position correction factors. "
       "Either this or OffsetsWorkspace needs to be specified.");
 
+  declareProperty(
+      new WorkspaceProperty<ITableWorkspace>(
+          "CalibrationWorkspace", "", Direction::Input, PropertyMode::Optional),
+      "Optional: A Workspace containing the calibration information. Either "
+      "this or CalibrationFile needs to be specified.");
+
   declareProperty(
       new WorkspaceProperty<OffsetsWorkspace>(
           "OffsetsWorkspace", "", Direction::Input, PropertyMode::Optional),
       "Optional: A OffsetsWorkspace containing the calibration offsets. Either "
       "this or CalibrationFile needs to be specified.");
+
+  // make group associations.
+  std::string calibrationGroup("Calibration");
+  setPropertyGroup("CalibrationFile", calibrationGroup);
+  setPropertyGroup("CalibrationWorkspace", calibrationGroup);
+  setPropertyGroup("OffsetsWorkspace", calibrationGroup);
+}
+
+std::map<std::string, std::string> AlignDetectors::validateInputs() {
+    std::map<std::string, std::string> result;
+
+    int numWays = 0;
+
+    const std::string calFileName = getProperty("CalibrationFile");
+    if (!calFileName.empty()) numWays+=1;
+
+    ITableWorkspace_const_sptr calibrationWS = getProperty("CalibrationWorkspace");
+    if(bool(calibrationWS)) numWays+=1;
+
+    OffsetsWorkspace_const_sptr offsetsWS = getProperty("OffsetsWorkspace");
+    if(bool(offsetsWS)) numWays+=1;
+
+    std::string message;
+    if (numWays == 0) {
+        message = "You must specify only one of CalibrationFile, "
+                  "CalibrationWorkspace, OffsetsWorkspace.";
+    }
+    if (numWays > 1) {
+        message = "You must specify one of CalibrationFile, "
+                  "CalibrationWorkspace, OffsetsWorkspace.";
+    }
+
+    if (!message.empty()) {
+        result["CalibrationFile"] = message;
+        result["CalibrationWorkspace"] = message;
+    }
+
+    return result;
+}
+
+void AlignDetectors::loadCalFile(MatrixWorkspace_sptr inputWS, const std::string & filename) {
+  IAlgorithm_sptr alg = createChildAlgorithm("LoadDiffCal");
+  alg->setProperty("InputWorkspace", inputWS);
+  alg->setPropertyValue("Filename", filename);
+  alg->setProperty<bool>("MakeCalWorkspace", true);
+  alg->setProperty<bool>("MakeGroupingWorkspace", false);
+  alg->setProperty<bool>("MakeMaskWorkspace", false);
+  alg->setPropertyValue("WorkspaceName", "temp");
+  alg->executeAsChildAlg();
+
+  m_calibrationWS = alg->getProperty("OutputCalWorkspace");
+}
+
+void AlignDetectors::getCalibrationWS(MatrixWorkspace_sptr inputWS) {
+  m_calibrationWS = getProperty("CalibrationWorkspace");
+  if (m_calibrationWS)
+    return; // nothing more to do
+
+  OffsetsWorkspace_sptr offsetsWS = getProperty("OffsetsWorkspace");
+  if (offsetsWS) {
+    auto alg = createChildAlgorithm("ConvertDiffCal");
+    alg->setProperty("OffsetsWorkspace", offsetsWS);
+    alg->executeAsChildAlg();
+    m_calibrationWS = alg->getProperty("OutputWorkspace");
+    m_calibrationWS->setTitle(offsetsWS->getTitle());
+    return;
+  }
+
+  const std::string calFileName = getPropertyValue("CalibrationFile");
+  if (!calFileName.empty()) {
+    progress(0.0, "Reading calibration file");
+    loadCalFile(inputWS, calFileName);
+    return;
+  }
+
+  throw std::runtime_error("Failed to determine calibration information");
+}
+
+void setXAxisUnits(API::MatrixWorkspace_sptr outputWS) {
+    outputWS->getAxis(0)->unit() = UnitFactory::Instance().create("dSpacing");
 }
 
 //-----------------------------------------------------------------------
@@ -155,35 +289,10 @@ void AlignDetectors::exec() {
   // Get the input workspace
   MatrixWorkspace_sptr inputWS = getProperty("InputWorkspace");
 
-  // Read in the calibration data
-  const std::string calFileName = getProperty("CalibrationFile");
-  OffsetsWorkspace_sptr offsetsWS = getProperty("OffsetsWorkspace");
-
-  progress(0.0, "Reading calibration file");
-  if (offsetsWS && !calFileName.empty())
-    throw std::invalid_argument("You must specify either CalibrationFile or "
-                                "OffsetsWorkspace but not both.");
-  if (!offsetsWS && calFileName.empty())
-    throw std::invalid_argument(
-        "You must specify either CalibrationFile or OffsetsWorkspace.");
+  this->getCalibrationWS(inputWS);
 
-  if (!calFileName.empty()) {
-    // Load the .cal file
-    IAlgorithm_sptr alg = createChildAlgorithm("LoadCalFile");
-    alg->setPropertyValue("CalFilename", calFileName);
-    alg->setProperty("InputWorkspace", inputWS);
-    alg->setProperty<bool>("MakeGroupingWorkspace", false);
-    alg->setProperty<bool>("MakeOffsetsWorkspace", true);
-    alg->setProperty<bool>("MakeMaskWorkspace", false);
-    alg->setPropertyValue("WorkspaceName", "temp");
-    alg->executeAsChildAlg();
-    offsetsWS = alg->getProperty("OutputOffsetsWorkspace");
-  }
-
-  const int64_t numberOfSpectra = inputWS->getNumberHistograms();
-
-  // generate map of the tof->d conversion factors
-  this->tofToDmap = calcTofToD_ConversionMap(inputWS, offsetsWS);
+  // Initialise the progress reporting object
+  m_numberOfSpectra = static_cast<int64_t>(inputWS->getNumberHistograms());
 
   // Check if its an event workspace
   EventWorkspace_const_sptr eventW =
@@ -202,20 +311,20 @@ void AlignDetectors::exec() {
   }
 
   // Set the final unit that our output workspace will have
-  outputWS->getAxis(0)->unit() = UnitFactory::Instance().create("dSpacing");
+  setXAxisUnits(outputWS);
 
-  // Initialise the progress reporting object
-  Progress progress(this, 0.0, 1.0, numberOfSpectra);
+  ConversionFactors converter = ConversionFactors(m_calibrationWS);
+
+  Progress progress(this, 0.0, 1.0, m_numberOfSpectra);
 
   // Loop over the histograms (detector spectra)
   PARALLEL_FOR2(inputWS, outputWS)
-  for (int64_t i = 0; i < int64_t(numberOfSpectra); ++i) {
+  for (int64_t i = 0; i < m_numberOfSpectra; ++i) {
     PARALLEL_START_INTERUPT_REGION
     try {
       // Get the input spectrum number at this workspace index
-      const ISpectrum *inSpec = inputWS->getSpectrum(size_t(i));
-      const double factor =
-          calcConversionFromMap(this->tofToDmap, inSpec->getDetectorIDs());
+      auto inSpec = inputWS->getSpectrum(size_t(i));
+      auto toDspacing = converter.getConversionFunc(inSpec->getDetectorIDs());
 
       // Get references to the x data
       MantidVec &xOut = outputWS->dataX(i);
@@ -226,13 +335,7 @@ void AlignDetectors::exec() {
       // vectors were shared.
       const MantidVec &xIn = inSpec->readX();
 
-      // std::transform( xIn.begin(), xIn.end(), xOut.begin(),
-      // std::bind2nd(std::multiplies<double>(), factor) );
-      // the above transform creates wrong output in parallel in debug in Visual
-      // Studio
-      for (size_t k = 0; k < xOut.size(); ++k) {
-        xOut[k] = xIn[k] * factor;
-      }
+       std::transform( xIn.begin(), xIn.end(), xOut.begin(), toDspacing);
 
       // Copy the Y&E data
       outputWS->dataY(i) = inSpec->readY();
@@ -288,23 +391,18 @@ void AlignDetectors::execEvent() {
   }
 
   // Set the final unit that our output workspace will have
-  outputWS->getAxis(0)->unit() = UnitFactory::Instance().create("dSpacing");
+  setXAxisUnits(outputWS);
 
-  const int64_t numberOfSpectra =
-      static_cast<int64_t>(inputWS->getNumberHistograms());
+  ConversionFactors converter = ConversionFactors(m_calibrationWS);
 
-  // Initialise the progress reporting object
-  Progress progress(this, 0.0, 1.0, numberOfSpectra);
+  Progress progress(this, 0.0, 1.0, m_numberOfSpectra);
 
   PARALLEL_FOR_NO_WSP_CHECK()
-  for (int64_t i = 0; i < int64_t(numberOfSpectra); ++i) {
+  for (int64_t i = 0; i < m_numberOfSpectra; ++i) {
     PARALLEL_START_INTERUPT_REGION
-    // Compute the conversion factor
-    double factor = calcConversionFromMap(
-        this->tofToDmap, inputWS->getSpectrum(size_t(i))->getDetectorIDs());
 
-    // Perform the multiplication on all events
-    outputWS->getEventList(i).convertTof(factor);
+    auto toDspacing = converter.getConversionFunc(inputWS->getSpectrum(size_t(i))->getDetectorIDs());
+    outputWS->getEventList(i).convertTof(toDspacing);
 
     progress.report();
     PARALLEL_END_INTERUPT_REGION
@@ -316,7 +414,7 @@ void AlignDetectors::execEvent() {
     msg << "Something wrong with the calibration. Negative minimum d-spacing "
            "created. d_min = " << outputWS->getTofMin() << " d_max "
         << outputWS->getTofMax();
-    throw std::runtime_error(msg.str());
+    g_log.warning(msg.str());
   }
   outputWS->clearMRU();
 }
diff --git a/Code/Mantid/Framework/Algorithms/src/AsymmetryCalc.cpp b/Code/Mantid/Framework/Algorithms/src/AsymmetryCalc.cpp
index 4c69d8b608e55d6986094b7eea84aa20d3cc6851..ee1ab6ca8edeadf3aa8c81af70c9521a18b6697c 100644
--- a/Code/Mantid/Framework/Algorithms/src/AsymmetryCalc.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/AsymmetryCalc.cpp
@@ -91,7 +91,7 @@ void AsymmetryCalc::exec() {
     // If some spectra were not found, can't continue
     if (specIDs.size() != indices.size())
       throw std::invalid_argument(
-          "Some of the spectra specified do not exist in a workspace");
+          "Could not find two spectra in the input workspace");
 
     forward = static_cast<int>(indices[0]);
     backward = static_cast<int>(indices[1]);
diff --git a/Code/Mantid/Framework/Algorithms/src/BinaryOperateMasks.cpp b/Code/Mantid/Framework/Algorithms/src/BinaryOperateMasks.cpp
index 25ee6dd1fda0de47453f8c5399b5d2e5c62509bf..5972a15a7f8a199b48efd6a4be47d184d8ba38eb 100644
--- a/Code/Mantid/Framework/Algorithms/src/BinaryOperateMasks.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/BinaryOperateMasks.cpp
@@ -64,14 +64,13 @@ void BinaryOperateMasks::exec() {
   std::string op = getProperty("OperationType");
 
   // 2. Output
-  Mantid::DataObjects::MaskWorkspace_sptr outputws =
+  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::MaskWorkspace>(
-        API::WorkspaceFactory::Instance().create(inputws1));
+    outputws = boost::make_shared<DataObjects::MaskWorkspace>(inputws1->getInstrument());
     outputws->copyFrom(inputws1);
   }
 
diff --git a/Code/Mantid/Framework/Algorithms/src/CalculateFlatBackground.cpp b/Code/Mantid/Framework/Algorithms/src/CalculateFlatBackground.cpp
index b2897efe7a006397cabc44da76bdfabd96ad1014..34b3f5a8ba418043878fcef208d96f97c787fa75 100644
--- a/Code/Mantid/Framework/Algorithms/src/CalculateFlatBackground.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CalculateFlatBackground.cpp
@@ -79,6 +79,10 @@ void CalculateFlatBackground::exec() {
   const int numHists = static_cast<int>(inputWS->getNumberHistograms());
   const int blocksize = static_cast<int>(inputWS->blocksize());
 
+  if (blocksize == 1)
+    throw std::runtime_error("CalculateFlatBackground with only one bin is "
+                             "not possible.");
+
   m_skipMonitors = getProperty("SkipMonitors");
   // Get the required X range
   double startX, endX;
diff --git a/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp b/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp
index ef8aad1ced9f2b1237e3c04b73fca708f49f6208..6f35de921511e29e487f26361ad6d354be45cc6d 100644
--- a/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp
@@ -1,3 +1,4 @@
+
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
@@ -11,172 +12,191 @@
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/IFunction.h"
 
+#include <algorithm>
+#include <cassert>
 #include <cmath>
 
-namespace Mantid {
-namespace Algorithms {
+#include <boost/algorithm/string/join.hpp>
+#include <boost/assign/list_of.hpp>
+#include <boost/foreach.hpp>
+#include <boost/lexical_cast.hpp>
 
-// Register the algorithm into the AlgorithmFactory
-DECLARE_ALGORITHM(CalculateTransmission)
+namespace Mantid
+{
+namespace Algorithms
+{
 
 using namespace Kernel;
 using namespace API;
 
-CalculateTransmission::CalculateTransmission()
-    : API::Algorithm(), m_done(0.0) {}
+namespace // anonymous
+{
+  // For LOQ at least, the transmission monitor is 3.  (The incident beam monitor's UDET is 2.)
+  const detid_t LOQ_TRANSMISSION_MONITOR_UDET = 3;
+
+  /**
+   * Helper function to convert a single detector ID to a workspace index.
+   * Should we just go ahead and add this to the MatrixWorkspace class?
+   *
+   * @param ws    :: workspace containing det ID to ws index mapping
+   * @param detID :: the detector ID to look for
+   *
+   * @returns workspace index corresponding to the given detector ID
+   */
+  size_t getIndexFromDetectorID(MatrixWorkspace_sptr ws, detid_t detid)
+  {
+    const std::vector<detid_t> input = boost::assign::list_of(detid);
+    std::vector<size_t> result;
+    
+    ws->getIndicesFromDetectorIDs(input, result);
+    if( result.empty() )
+      throw std::invalid_argument("Could not find the spectra corresponding to detector ID " + 
+        boost::lexical_cast<std::string>(detid));
+
+    return result[0];
+  }
+}
+
+// Register the algorithm into the AlgorithmFactory
+DECLARE_ALGORITHM(CalculateTransmission)
+
+CalculateTransmission::CalculateTransmission() : API::Algorithm(), m_done(0.0)
+{}
 
-CalculateTransmission::~CalculateTransmission() {}
+CalculateTransmission::~CalculateTransmission()
+{}
 
-void CalculateTransmission::init() {
+void CalculateTransmission::init()
+{
   auto wsValidator = boost::make_shared<CompositeValidator>();
   wsValidator->add<WorkspaceUnitValidator>("Wavelength");
   wsValidator->add<CommonBinsValidator>();
   wsValidator->add<HistogramValidator>();
+  
+  declareProperty(new WorkspaceProperty<>("SampleRunWorkspace","", Direction::Input, wsValidator), "The workspace containing the sample transmission run. Must have common binning and be in units of wavelength.");
+  declareProperty(new WorkspaceProperty<>("DirectRunWorkspace","", Direction::Input, wsValidator), "The workspace containing the direct beam (no sample) transmission run. The units and binning must match those of the SampleRunWorkspace.");
+  declareProperty(new WorkspaceProperty<>("OutputWorkspace","",Direction::Output), "The name of the workspace in which to store the fitted transmission fractions.");
 
-  declareProperty(new WorkspaceProperty<>("SampleRunWorkspace", "",
-                                          Direction::Input, wsValidator),
-                  "The workspace containing the sample transmission run. Must "
-                  "have common binning and be in units of wavelength.");
-  declareProperty(new WorkspaceProperty<>("DirectRunWorkspace", "",
-                                          Direction::Input, wsValidator),
-                  "The workspace containing the direct beam (no sample) "
-                  "transmission run. The units and binning must match those of "
-                  "the SampleRunWorkspace.");
-  declareProperty(
-      new WorkspaceProperty<>("OutputWorkspace", "", Direction::Output),
-      "The name of the workspace in which to store the fitted transmission "
-      "fractions.");
-
-  auto zeroOrMore = boost::make_shared<BoundedValidator<int>>();
+  auto zeroOrMore = boost::make_shared<BoundedValidator<int> >();
   zeroOrMore->setLower(0);
-  // The defaults here are the correct detector numbers for LOQ
-  declareProperty("IncidentBeamMonitor", EMPTY_INT(),
-                  "The UDET of the incident beam monitor");
-  declareProperty("TransmissionMonitor", 3, zeroOrMore,
-                  "The UDET of the transmission monitor");
+  
+  declareProperty("IncidentBeamMonitor", EMPTY_INT(), zeroOrMore,
+    "The UDET of the incident beam monitor");
+  declareProperty("TransmissionMonitor", EMPTY_INT(), zeroOrMore,
+    "The UDET of the transmission monitor");
 
   declareProperty(new ArrayProperty<double>("RebinParams"),
-                  "A comma separated list of first bin boundary, width, last "
-                  "bin boundary. Optionally\n"
-                  "this can be followed by a comma and more widths and last "
-                  "boundary pairs.\n"
-                  "Negative width values indicate logarithmic binning.");
+    "A comma separated list of first bin boundary, width, last bin boundary. Optionally\n"
+    "this can be followed by a comma and more widths and last boundary pairs.\n"
+    "Negative width values indicate logarithmic binning.");
 
   std::vector<std::string> options(3);
   options[0] = "Linear";
   options[1] = "Log";
-  options[2] = "Polynomial";
-
-  declareProperty("FitMethod", "Log",
-                  boost::make_shared<StringListValidator>(options),
-                  "Whether to fit directly to the transmission curve using "
-                  "Linear, Log or Polynomial.");
-  auto twoOrMore = boost::make_shared<BoundedValidator<int>>();
-  twoOrMore->setLower(2);
-  declareProperty("PolynomialOrder", 2, twoOrMore, "Order of the polynomial to "
-                                                   "fit. It is considered only "
-                                                   "for FitMethod=Polynomial");
-
-  declareProperty("OutputUnfittedData", false,
-                  "If True, will output an additional workspace called "
-                  "[OutputWorkspace]_unfitted containing the unfitted "
-                  "transmission correction.");
+  options[2] = "Polynomial"; 
+   
+  declareProperty("FitMethod","Log",boost::make_shared<StringListValidator>(options),
+    "Whether to fit directly to the transmission curve using Linear, Log or Polynomial.");
+  auto twoOrMore = boost::make_shared<BoundedValidator<int> >();
+  twoOrMore->setLower(2); 
+  declareProperty("PolynomialOrder", 2, twoOrMore, "Order of the polynomial to fit. It is considered only for FitMethod=Polynomial"); 
+
+  declareProperty("OutputUnfittedData",false, "If True, will output an additional workspace called [OutputWorkspace]_unfitted containing the unfitted transmission correction.");
+
+  declareProperty(new ArrayProperty<detid_t>("TransmissionROI"),
+    "An optional ArrayProperty containing a list of detector ID's.  These specify a region of interest "
+    "which is to be summed and then used instead of a tranmission monitor. This allow for a \"beam stop "
+    "out\" method of transmission calculation." );
 }
 
-void CalculateTransmission::exec() {
+void CalculateTransmission::exec()
+{
   MatrixWorkspace_sptr sampleWS = getProperty("SampleRunWorkspace");
   MatrixWorkspace_sptr directWS = getProperty("DirectRunWorkspace");
 
-  // Check whether we need to normalise by the beam monitor
-  int beamMonitorID = getProperty("IncidentBeamMonitor");
-  bool normaliseToMonitor = true;
-  if (isEmpty(beamMonitorID))
-    normaliseToMonitor = false;
-  else if (beamMonitorID < 0) {
-    g_log.error("The beam monitor UDET should be greater or equal to zero");
-    throw std::invalid_argument(
-        "The beam monitor UDET should be greater or equal to zero");
+  const detid_t beamMonitorID             = getProperty("IncidentBeamMonitor");
+  detid_t transMonitorID                  = getProperty("TransmissionMonitor");
+  const std::vector<detid_t> transDetList = getProperty("TransmissionROI");
+
+  const bool usingSameInstrument = sampleWS->getInstrument()->getName() == directWS->getInstrument()->getName();
+  if ( !usingSameInstrument )
+    throw std::invalid_argument("The input workspaces do not come from the same instrument.");
+  if ( !WorkspaceHelpers::matchingBins(sampleWS, directWS) )
+    throw std::invalid_argument("The input workspaces do not have matching bins.");
+
+  bool usingMonitor = !isEmpty(transMonitorID);
+  const bool usingROI = !transDetList.empty();
+  if( usingMonitor && usingROI )
+    throw std::invalid_argument("Unable to use both a monitor and a region of interest in transmission calculation.");
+  if( !usingMonitor && !usingROI )
+  {
+    transMonitorID = LOQ_TRANSMISSION_MONITOR_UDET;
+    usingMonitor = true;
   }
 
-  // Check that the two input workspaces are from the same instrument
-  if (sampleWS->getInstrument()->getName() !=
-      directWS->getInstrument()->getName()) {
-    g_log.error("The input workspaces do not come from the same instrument");
-    throw std::invalid_argument(
-        "The input workspaces do not come from the same instrument");
+  // Populate transmissionIndices with the workspace indices to use for the transmission.
+  // In the case of TransmissionMonitor this will be a single index corresponding to a
+  // monitor, in the case of TransmissionROI it will be one or more indices corresponding
+  // to a region of interest on the detector bank(s).
+  std::vector<size_t> transmissionIndices;
+  if(usingMonitor)
+  {
+    const size_t transmissionMonitorIndex = getIndexFromDetectorID(sampleWS, transMonitorID);
+    transmissionIndices.push_back(transmissionMonitorIndex);
+    logIfNotMonitor(sampleWS, directWS, transmissionMonitorIndex);
   }
-  // Check that the two inputs have matching binning
-  if (!WorkspaceHelpers::matchingBins(sampleWS, directWS)) {
-    g_log.error("Input workspaces do not have matching binning");
-    throw std::invalid_argument(
-        "Input workspaces do not have matching binning");
+  else if(usingROI)
+  {
+    sampleWS->getIndicesFromDetectorIDs(transDetList, transmissionIndices);
   }
+  else
+    assert(false);
+  
+  const std::string transPropName = usingMonitor ? "TransmissionMonitor" : "TransmissionROI";
 
-  // Extract the required spectra into separate workspaces
-  std::vector<detid_t> udets;
-  std::vector<size_t> indices;
-  // For LOQ at least, the incident beam monitor's UDET is 2 and the
-  // transmission monitor is 3
-  udets.push_back(getProperty("TransmissionMonitor"));
-  if (normaliseToMonitor)
-    udets.push_back(getProperty("IncidentBeamMonitor"));
-  // Convert UDETs to workspace indices
-  sampleWS->getIndicesFromDetectorIDs(udets, indices);
-  if ((indices.size() < 2 && normaliseToMonitor) ||
-      (indices.size() < 1 && !normaliseToMonitor)) {
-    if (indices.size() == 1) {
-      g_log.error() << "Incident and transmitted spectra must be set to "
-                       "different spectra that exist in the workspaces. Only "
-                       "found one valid index " << indices.front() << std::endl;
-    } else {
-      g_log.debug() << "sampleWS->getIndicesFromDetectorIDs() returned empty\n";
-    }
+  if( transmissionIndices.empty() )
     throw std::invalid_argument(
-        "Could not find the incident and transmission monitor spectra\n");
-  }
-  // Check that given spectra are monitors
-  if (normaliseToMonitor &&
-      !sampleWS->getDetector(indices.back())->isMonitor()) {
-    g_log.information(
-        "The Incident Beam Monitor UDET provided is not marked as a monitor");
+      "The UDET(s) passed to " + transPropName + " do not correspond to spectra in the workspace.");
+
+  // Check if we're normalising to the incident beam monitor.  If so, then it
+  // needs to be a monitor that is not also used for the transmission.
+  const bool normaliseToMonitor = !isEmpty(beamMonitorID);
+  size_t beamMonitorIndex = 0;
+  if( normaliseToMonitor )
+  {
+    beamMonitorIndex = getIndexFromDetectorID(sampleWS, beamMonitorID);
+    logIfNotMonitor(sampleWS, directWS, beamMonitorIndex);
+
+    BOOST_FOREACH( size_t transmissionIndex, transmissionIndices )
+      if( transmissionIndex == beamMonitorIndex )
+        throw std::invalid_argument(
+          "The IncidentBeamMonitor UDET (" + boost::lexical_cast<std::string>(transmissionIndex) + \
+          ") matches a UDET given in " + transPropName + ".");
   }
-  if (!sampleWS->getDetector(indices.front())->isMonitor()) {
-    g_log.information(
-        "The Transmission Monitor UDET provided is not marked as a monitor");
-  }
-  MatrixWorkspace_sptr M2_sample;
-  if (normaliseToMonitor)
-    M2_sample = this->extractSpectrum(sampleWS, indices[1]);
-  MatrixWorkspace_sptr M3_sample = this->extractSpectrum(sampleWS, indices[0]);
-  sampleWS->getIndicesFromDetectorIDs(udets, indices);
-  // Check that given spectra are monitors
-  if (!directWS->getDetector(indices.back())->isMonitor()) {
-    g_log.information(
-        "The Incident Beam Monitor UDET provided is not marked as a monitor");
-  }
-  if (!directWS->getDetector(indices.front())->isMonitor()) {
-    g_log.information(
-        "The Transmission Monitor UDET provided is not marked as a monitor");
-  }
-  MatrixWorkspace_sptr M2_direct;
-  if (normaliseToMonitor)
-    M2_direct = this->extractSpectrum(directWS, indices[1]);
-  MatrixWorkspace_sptr M3_direct = this->extractSpectrum(directWS, indices[0]);
-
+  
+  MatrixWorkspace_sptr sampleInc;
+  if (normaliseToMonitor) sampleInc = this->extractSpectra(sampleWS, std::vector<size_t>(1, beamMonitorIndex));
+  MatrixWorkspace_sptr sampleTrans = this->extractSpectra(sampleWS, transmissionIndices);
+
+  MatrixWorkspace_sptr directInc;
+  if (normaliseToMonitor) directInc = this->extractSpectra(directWS, std::vector<size_t>(1, beamMonitorIndex));
+  MatrixWorkspace_sptr directTrans = this->extractSpectra(directWS, transmissionIndices);
+  
   double start = m_done;
   Progress progress(this, start, m_done += 0.2, 2);
   progress.report("CalculateTransmission: Dividing transmission by incident");
+
   // The main calculation
-  MatrixWorkspace_sptr transmission = M3_sample / M3_direct;
-  if (normaliseToMonitor)
-    transmission = transmission * (M2_direct / M2_sample);
+  MatrixWorkspace_sptr transmission = sampleTrans/directTrans;
+  if (normaliseToMonitor)  transmission = transmission*(directInc/sampleInc);
 
   // This workspace is now a distribution
   progress.report("CalculateTransmission: Dividing transmission by incident");
 
   // Output this data if requested
   const bool outputRaw = getProperty("OutputUnfittedData");
-  if (outputRaw) {
+  if ( outputRaw )
+  {
     IAlgorithm_sptr childAlg = createChildAlgorithm("ReplaceSpecialValues");
     childAlg->setProperty<MatrixWorkspace_sptr>("InputWorkspace", transmission);
     childAlg->setProperty<double>("NaNValue", 0.0);
@@ -187,135 +207,150 @@ void CalculateTransmission::exec() {
     transmission = childAlg->getProperty("OutputWorkspace");
     std::string outputWSName = getPropertyValue("OutputWorkspace");
     outputWSName += "_unfitted";
-    declareProperty(new WorkspaceProperty<>("UnfittedData", outputWSName,
-                                            Direction::Output));
-    setProperty("UnfittedData", transmission);
+    declareProperty(new WorkspaceProperty<>("UnfittedData",outputWSName,Direction::Output));
+    setProperty("UnfittedData",transmission);
   }
-
+  
   // Check that there are more than a single bin in the transmission
   // workspace. Skip the fit it there isn't.
-  if (transmission->dataY(0).size() > 1) {
-    transmission =
-        fit(transmission, getProperty("RebinParams"), getProperty("FitMethod"));
+  if ( transmission->dataY(0).size() > 1 )
+  {
+    transmission = fit(transmission, getProperty("RebinParams"), getProperty("FitMethod"));
   }
   setProperty("OutputWorkspace", transmission);
 }
 
-/** Extracts a single spectrum from a Workspace2D into a new workspaces. Uses
- * CropWorkspace to do this.
- *  @param WS ::    The workspace containing the spectrum to extract
- *  @param index :: The workspace index of the spectrum to extract
- *  @return A Workspace2D containing the extracted spectrum
- *  @throw runtime_error if the ExtractSingleSpectrum algorithm fails during
- * execution
+/**
+ * Extracts multiple spectra from a Workspace2D into a new workspaces, using SumSpectra.
+ *
+ * @param ws      :: The workspace containing the spectrum to extract
+ * @param indices :: The workspace index of the spectrum to extract
+ *
+ * @returns a Workspace2D containing the extracted spectrum
+ * @throws runtime_error if the ExtractSingleSpectrum algorithm fails during execution
  */
-API::MatrixWorkspace_sptr
-CalculateTransmission::extractSpectrum(API::MatrixWorkspace_sptr WS,
-                                       const int64_t index) {
+API::MatrixWorkspace_sptr CalculateTransmission::extractSpectra(API::MatrixWorkspace_sptr ws, const std::vector<size_t> & indices)
+{
+  // Compile a comma separated list of indices that we can pass to SumSpectra.
+  std::vector<std::string> indexStrings(indices.size());
+  // A bug in boost 1.53: https://svn.boost.org/trac/boost/ticket/7421
+  // means that lexical_cast cannot be used directly as the call is ambiguous
+  // so we need to define a function pointer that can resolve the overloaded
+  // lexical_cast function
+  typedef std::string (*from_size_t)(const size_t &);
+
+  std::transform(
+    indices.begin(), indices.end(),
+    indexStrings.begin(), 
+    (from_size_t)boost::lexical_cast<std::string, size_t>);
+  const std::string commaIndexList = boost::algorithm::join(indexStrings, ",");
+
   double start = m_done;
-  IAlgorithm_sptr childAlg =
-      createChildAlgorithm("ExtractSingleSpectrum", start, m_done += 0.1);
-  childAlg->setProperty<MatrixWorkspace_sptr>("InputWorkspace", WS);
-  childAlg->setProperty<int>("WorkspaceIndex", static_cast<int>(index));
+  IAlgorithm_sptr childAlg = createChildAlgorithm("SumSpectra", start, m_done += 0.1);
+  childAlg->setProperty<MatrixWorkspace_sptr>("InputWorkspace", ws);
+  childAlg->setPropertyValue("ListOfWorkspaceIndices", commaIndexList);
   childAlg->executeAsChildAlg();
 
   // Only get to here if successful
   return childAlg->getProperty("OutputWorkspace");
 }
-/** Calculate a workspace that contains the result of the fit to the
-* transmission fraction that was calculated
+
+/** Calculate a workspace that contains the result of the fit to the transmission fraction that was calculated
 *  @param raw [in] the workspace with the unfitted transmission ratio data
 *  @param rebinParams [in] the parameters for rebinning
-*  @param fitMethod [in] string can be Log, Linear, Poly2, Poly3, Poly4, Poly5,
-* Poly6
+*  @param fitMethod [in] string can be Log, Linear, Poly2, Poly3, Poly4, Poly5, Poly6
 *  @return a workspace that contains the evaluation of the fit
-*  @throw runtime_error if the Linear or ExtractSpectrum algorithm fails during
-* execution
+*  @throw runtime_error if the Linear or ExtractSpectrum algorithm fails during execution
 */
-API::MatrixWorkspace_sptr
-CalculateTransmission::fit(API::MatrixWorkspace_sptr raw,
-                           std::vector<double> rebinParams,
-                           const std::string fitMethod) {
-  MatrixWorkspace_sptr output = this->extractSpectrum(raw, 0);
+API::MatrixWorkspace_sptr CalculateTransmission::fit(API::MatrixWorkspace_sptr raw, std::vector<double> rebinParams, const std::string fitMethod)
+{
+  MatrixWorkspace_sptr output = this->extractSpectra(raw, std::vector<size_t>(1, 0));
 
   Progress progress(this, m_done, 1.0, 4);
   progress.report("CalculateTransmission: Performing fit");
 
-  // these are calculated by the call to fit below
+  //these are calculated by the call to fit below
   double grad(0.0), offset(0.0);
   std::vector<double> coeficients;
-  const bool logFit = (fitMethod == "Log");
-  if (logFit) {
+  const bool logFit = ( fitMethod == "Log" );
+  if (logFit)
+  {
     g_log.debug("Fitting to the logarithm of the transmission");
 
-    MantidVec &Y = output->dataY(0);
-    MantidVec &E = output->dataE(0);
+    MantidVec & Y = output->dataY(0);
+    MantidVec & E = output->dataE(0);
     double start = m_done;
-    Progress prog2(this, start, m_done += 0.1, Y.size());
-    for (size_t i = 0; i < Y.size(); ++i) {
-      // Take the log of each datapoint for fitting. Recalculate errors
-      // remembering that d(log(a))/da  = 1/a
-      E[i] = std::abs(E[i] / Y[i]);
+    Progress prog2(this, start, m_done+=0.1 ,Y.size());
+    for (size_t i=0; i < Y.size(); ++i)
+    {
+      // Take the log of each datapoint for fitting. Recalculate errors remembering that d(log(a))/da  = 1/a
+      E[i] = std::abs(E[i]/Y[i]);
       Y[i] = std::log10(Y[i]);
       progress.report("Fitting to the logarithm of the transmission");
     }
-
+  
     // Now fit this to a straight line
     output = fitData(output, grad, offset);
-  }                                 // logFit true
-  else if (fitMethod == "Linear") { // Linear fit
+  } // logFit true
+  else if (fitMethod == "Linear")
+  { // Linear fit
     g_log.debug("Fitting directly to the data (i.e. linearly)");
     output = fitData(output, grad, offset);
-  } else { // fitMethod Polynomial
+  }else{ // fitMethod Polynomial
     int order = getProperty("PolynomialOrder");
-    std::stringstream info;
-    info << "Fitting the transmission to polynomial order=" << order;
+    std::stringstream info; 
+    info << "Fitting the transmission to polynomial order=" << order ; 
     g_log.information(info.str());
     output = fitPolynomial(output, order, coeficients);
   }
 
   progress.report("CalculateTransmission: Performing fit");
 
-  // if no rebin parameters were set the output workspace will have the same
-  // binning as the input ones, otherwise rebin
-  if (!rebinParams.empty()) {
+  //if no rebin parameters were set the output workspace will have the same binning as the input ones, otherwise rebin
+  if ( ! rebinParams.empty() )
+  {
     output = rebin(rebinParams, output);
   }
   progress.report("CalculateTransmission: Performing fit");
 
-  // if there was rebinnning or log fitting we need to recalculate the Ys,
-  // otherwise we can just use the workspace kicked out by the fitData()'s call
-  // to Linear
-  if ((!rebinParams.empty()) || logFit) {
-    const MantidVec &X = output->readX(0);
-    MantidVec &Y = output->dataY(0);
-    if (logFit) {
+  // if there was rebinnning or log fitting we need to recalculate the Ys, otherwise we can just use the workspace kicked out by the fitData()'s call to Linear
+  if ( (! rebinParams.empty()) || logFit)
+  {
+    const MantidVec & X = output->readX(0);
+    MantidVec & Y = output->dataY(0);
+    if (logFit)
+    {
       // Need to transform back to 'unlogged'
-      const double m(std::pow(10, grad));
-      const double factor(std::pow(10, offset));
-
-      MantidVec &E = output->dataE(0);
-      for (size_t i = 0; i < Y.size(); ++i) {
-        // the relationship between the grad and interspt of the log fit and the
-        // un-logged value of Y contain this dependence on the X (bin center
-        // values)
-        Y[i] = factor * (std::pow(m, 0.5 * (X[i] + X[i + 1])));
-        E[i] = std::abs(E[i] * Y[i]);
+      const double m(std::pow(10,grad));
+      const double factor(std::pow(10,offset));
+
+      MantidVec & E = output->dataE(0);
+      for (size_t i = 0; i < Y.size(); ++i)
+      {
+        //the relationship between the grad and interspt of the log fit and the un-logged value of Y contain this dependence on the X (bin center values)
+        Y[i] = factor*(std::pow(m,0.5*(X[i]+X[i+1])));
+        E[i] = std::abs(E[i]*Y[i]);
         progress.report();
       }
-    } // end logFit
-    else if (fitMethod == "Linear") {
-      // the simpler linear situation
-      for (size_t i = 0; i < Y.size(); ++i) {
-        Y[i] = (grad * 0.5 * (X[i] + X[i + 1])) + offset;
+    }// end logFit
+    else if (fitMethod == "Linear")
+    {
+      //the simpler linear situation
+      for (size_t i = 0; i < Y.size(); ++i)
+      {
+        Y[i] = (grad*0.5*(X[i]+X[i+1]))+offset;
       }
-    } else { // the polynomial fit
-      for (size_t i = 0; i < Y.size(); ++i) {
-        double aux = 0;
-        double x_v = 0.5 * (X[i] + X[i + 1]);
-
-        for (int j = 0; j < static_cast<int>(coeficients.size()); ++j) {
-          aux += coeficients[j] * std::pow(x_v, j);
+    }
+    else 
+    { // the polynomial fit
+      for (size_t i=0; i<Y.size(); ++i)
+      {
+        double aux=0;
+        double x_v =0.5*(X[i]+X[i+1]);
+
+        for (int j=0; j<static_cast<int>(coeficients.size()); ++j)
+        {
+          aux += coeficients[j]*std::pow(x_v,j);
         }
         Y[i] = aux;
       }
@@ -325,74 +360,71 @@ CalculateTransmission::fit(API::MatrixWorkspace_sptr raw,
 
   return output;
 }
-/** Uses 'Linear' as a ChildAlgorithm to fit the log of the exponential curve
- * expected for the transmission.
+/** Uses 'Linear' as a ChildAlgorithm to fit the log of the exponential curve expected for the transmission.
  *  @param[in] WS The single-spectrum workspace to fit
  *  @param[out] grad The single-spectrum workspace to fit
  *  @param[out] offset The single-spectrum workspace to fit
  *  @return A workspace containing the fit
  *  @throw runtime_error if the Linear algorithm fails during execution
  */
-API::MatrixWorkspace_sptr
-CalculateTransmission::fitData(API::MatrixWorkspace_sptr WS, double &grad,
-                               double &offset) {
+API::MatrixWorkspace_sptr CalculateTransmission::fitData(API::MatrixWorkspace_sptr WS, double & grad, double & offset)
+{
   g_log.information("Fitting the experimental transmission curve");
   double start = m_done;
-  IAlgorithm_sptr childAlg = createChildAlgorithm("Fit", start, m_done = 0.9);
-  auto linearBack =
-      API::FunctionFactory::Instance().createFunction("LinearBackground");
-  childAlg->setProperty("Function", linearBack);
+  IAlgorithm_sptr childAlg = createChildAlgorithm("Fit", start, m_done=0.9);
+  auto linearBack = API::FunctionFactory::Instance().createFunction("LinearBackground");
+  childAlg->setProperty("Function",linearBack);
   childAlg->setProperty<MatrixWorkspace_sptr>("InputWorkspace", WS);
-  childAlg->setProperty("Minimizer", "Levenberg-MarquardtMD");
-  childAlg->setProperty("CreateOutput", true);
-  childAlg->setProperty("IgnoreInvalidData", true);
+  childAlg->setProperty("Minimizer","Levenberg-MarquardtMD");
+  childAlg->setProperty("CreateOutput",true);
+  childAlg->setProperty("IgnoreInvalidData",true);
   childAlg->executeAsChildAlg();
 
   std::string fitStatus = childAlg->getProperty("OutputStatus");
-  if (fitStatus != "success") {
+  if ( fitStatus != "success" )
+  {
     g_log.error("Unable to successfully fit the data: " + fitStatus);
     throw std::runtime_error("Unable to successfully fit the data");
   }
-
+ 
   // Only get to here if successful
   offset = linearBack->getParameter(0);
   grad = linearBack->getParameter(1);
-  return this->extractSpectrum(childAlg->getProperty("OutputWorkspace"), 1);
+  return this->extractSpectra(childAlg->getProperty("OutputWorkspace"), std::vector<size_t>(1, 1));
 }
-/** Uses Polynomial as a ChildAlgorithm to fit the log of the exponential curve
- * expected for the transmission.
+/** Uses Polynomial as a ChildAlgorithm to fit the log of the exponential curve expected for the transmission.
  * @param[in] WS The single-spectrum workspace to fit
  * @param[in] order The order of the polynomial from 2 to 6
  * @param[out] coeficients of the polynomial. c[0] + c[1]x + c[2]x^2 + ...
  */
-API::MatrixWorkspace_sptr
-CalculateTransmission::fitPolynomial(API::MatrixWorkspace_sptr WS, int order,
-                                     std::vector<double> &coeficients) {
+API::MatrixWorkspace_sptr CalculateTransmission::fitPolynomial(API::MatrixWorkspace_sptr WS, int order, std::vector<double> & coeficients)
+{
   g_log.notice("Fitting the experimental transmission curve fitpolyno");
-  double start = m_done;
-  IAlgorithm_sptr childAlg = createChildAlgorithm("Fit", start, m_done = 0.9);
-  auto polyfit = API::FunctionFactory::Instance().createFunction("Polynomial");
-  polyfit->setAttributeValue("n", order);
+  double start = m_done; 
+  IAlgorithm_sptr childAlg = createChildAlgorithm("Fit", start, m_done=0.9); 
+  auto polyfit = API::FunctionFactory::Instance().createFunction("Polynomial"); 
+  polyfit->setAttributeValue("n",order); 
   polyfit->initialize();
-  childAlg->setProperty("Function", polyfit);
-  childAlg->setProperty<MatrixWorkspace_sptr>("InputWorkspace", WS);
-  childAlg->setProperty("Minimizer", "Levenberg-MarquardtMD");
-  childAlg->setProperty("CreateOutput", true);
-  childAlg->setProperty("IgnoreInvalidData", true);
+  childAlg->setProperty("Function",polyfit); 
+  childAlg->setProperty<MatrixWorkspace_sptr>("InputWorkspace",WS);
+  childAlg->setProperty("Minimizer","Levenberg-MarquardtMD");
+  childAlg->setProperty("CreateOutput",true); 
+  childAlg->setProperty("IgnoreInvalidData",true);
   childAlg->executeAsChildAlg();
   std::string fitStatus = childAlg->getProperty("OutputStatus");
-  if (fitStatus != "success") {
+  if ( fitStatus != "success" )
+  {
     g_log.error("Unable to successfully fit the data: " + fitStatus);
     throw std::runtime_error("Unable to successfully fit the data");
   }
-
+ 
   // Only get to here if successful
-  coeficients.resize(order + 1);
-  for (int i = 0; i <= order; i++) {
-    coeficients[i] = polyfit->getParameter(i);
+  coeficients.resize(order+1);
+  for (int i = 0; i<=order; i++){
+    coeficients[i] = polyfit->getParameter(i); 
   }
-  return this->extractSpectrum(childAlg->getProperty("OutputWorkspace"), 1);
-}
+  return this->extractSpectra(childAlg->getProperty("OutputWorkspace"), std::vector<size_t>(1, 1));
+} 
 
 /** Calls rebin as Child Algorithm
 *  @param binParams this string is passed to rebin as the "Params" property
@@ -400,19 +432,34 @@ CalculateTransmission::fitPolynomial(API::MatrixWorkspace_sptr WS, int order,
 *  @return the resultant rebinned workspace
 *  @throw runtime_error if the rebin algorithm fails during execution
 */
-API::MatrixWorkspace_sptr
-CalculateTransmission::rebin(std::vector<double> &binParams,
-                             API::MatrixWorkspace_sptr ws) {
+API::MatrixWorkspace_sptr CalculateTransmission::rebin(std::vector<double> & binParams, API::MatrixWorkspace_sptr ws)
+{
   double start = m_done;
-  IAlgorithm_sptr childAlg =
-      createChildAlgorithm("Rebin", start, m_done += 0.05);
+  IAlgorithm_sptr childAlg = createChildAlgorithm("Rebin", start, m_done += 0.05);
   childAlg->setProperty<MatrixWorkspace_sptr>("InputWorkspace", ws);
-  childAlg->setProperty<std::vector<double>>("Params", binParams);
+  childAlg->setProperty< std::vector<double> >("Params", binParams);
   childAlg->executeAsChildAlg();
-
+  
   // Only get to here if successful
   return childAlg->getProperty("OutputWorkspace");
 }
 
+/**
+ * Outputs message to log if the detector at the given index is not a monitor in both input workspaces.
+ *
+ * @param sampleWS :: the input sample workspace
+ * @param directWS :: the input direct workspace
+ * @param index    :: the index of the detector to checked
+ */
+void CalculateTransmission::logIfNotMonitor(API::MatrixWorkspace_sptr sampleWS, API::MatrixWorkspace_sptr directWS, size_t index)
+{
+  const std::string message = "The detector at index " + boost::lexical_cast<std::string>(index) + \
+                              " is not a monitor in the ";
+  if( !sampleWS->getDetector(index)->isMonitor() )
+    g_log.information(message + "sample workspace.");
+  if( !directWS->getDetector(index)->isMonitor() )
+    g_log.information(message + "direct workspace.");
+}
+
 } // namespace Algorithm
 } // namespace Mantid
diff --git a/Code/Mantid/Framework/Algorithms/src/CheckWorkspacesMatch.cpp b/Code/Mantid/Framework/Algorithms/src/CheckWorkspacesMatch.cpp
index b55b520a6f84493b406a7ccd15140710f1153377..fb47181372e2e4176df05a170dd5439b4edd26a5 100644
--- a/Code/Mantid/Framework/Algorithms/src/CheckWorkspacesMatch.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CheckWorkspacesMatch.cpp
@@ -7,6 +7,7 @@
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include "MantidAPI/WorkspaceGroup.h"
 #include "MantidAPI/NumericAxis.h"
 #include "MantidAPI/TableRow.h"
diff --git a/Code/Mantid/Framework/Algorithms/src/CloneWorkspace.cpp b/Code/Mantid/Framework/Algorithms/src/CloneWorkspace.cpp
index 3380593b06af08236f11329541ce60b76edf8a7e..3275c26c1d0e66d73015a3c0c9cdc63694a6ae3e 100644
--- a/Code/Mantid/Framework/Algorithms/src/CloneWorkspace.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CloneWorkspace.cpp
@@ -29,62 +29,15 @@ void CloneWorkspace::exec() {
   Workspace_sptr inputWorkspace = getProperty("InputWorkspace");
   MatrixWorkspace_const_sptr inputMatrix =
       boost::dynamic_pointer_cast<const MatrixWorkspace>(inputWorkspace);
-  EventWorkspace_const_sptr inputEvent =
-      boost::dynamic_pointer_cast<const EventWorkspace>(inputWorkspace);
   IMDWorkspace_sptr inputMD =
       boost::dynamic_pointer_cast<IMDWorkspace>(inputWorkspace);
-  PeaksWorkspace_const_sptr inputPeaks =
-      boost::dynamic_pointer_cast<const PeaksWorkspace>(inputWorkspace);
-  TableWorkspace_const_sptr tableWS =
-      boost::dynamic_pointer_cast<const TableWorkspace>(inputWorkspace);
+  ITableWorkspace_const_sptr iTableWS =
+      boost::dynamic_pointer_cast<const ITableWorkspace>(inputWorkspace);
 
-  if (inputEvent) {
-    // Handle an EventWorkspace as the input.
-    // Make a brand new EventWorkspace
-    EventWorkspace_sptr outputWS = boost::dynamic_pointer_cast<EventWorkspace>(
-        API::WorkspaceFactory::Instance().create(
-            "EventWorkspace", inputEvent->getNumberHistograms(), 2, 1));
-
-    // Copy geometry over.
-    API::WorkspaceFactory::Instance().initializeFromParent(inputEvent, outputWS,
-                                                           false);
-
-    // You need to copy over the data as well.
-    outputWS->copyDataFrom((*inputEvent));
-
-    // Cast to the matrixOutputWS and save it
-    setProperty("OutputWorkspace",
-                boost::dynamic_pointer_cast<Workspace>(outputWS));
-  } else if (inputMatrix) {
-    // Create the output workspace. This will copy many aspects fron the input
-    // one.
-    MatrixWorkspace_sptr outputWorkspace =
-        WorkspaceFactory::Instance().create(inputMatrix);
-
-    // ...but not the data, so do that here.
-
-    const int64_t numHists =
-        static_cast<int64_t>(inputMatrix->getNumberHistograms());
-    Progress prog(this, 0.0, 1.0, numHists);
-
-    PARALLEL_FOR2(inputMatrix, outputWorkspace)
-    for (int64_t i = 0; i < int64_t(numHists); ++i) {
-      PARALLEL_START_INTERUPT_REGION
-
-      outputWorkspace->setX(i, inputMatrix->refX(i));
-      outputWorkspace->dataY(i) = inputMatrix->readY(i);
-      outputWorkspace->dataE(i) = inputMatrix->readE(i);
-      // Be sure to not break sharing between Dx vectors by assigning pointers
-      outputWorkspace->getSpectrum(i)
-          ->setDx(inputMatrix->getSpectrum(i)->ptrDx());
-
-      prog.report();
-
-      PARALLEL_END_INTERUPT_REGION
-    }
-    PARALLEL_CHECK_INTERUPT_REGION
-    setProperty("OutputWorkspace",
-                boost::dynamic_pointer_cast<Workspace>(outputWorkspace));
+  if (inputMatrix || iTableWS) {
+    // Workspace::clone() is polymorphic, we can use the same for all types
+    Workspace_sptr outputWS(inputWorkspace->clone().release());
+    setProperty("OutputWorkspace", outputWS);
   } else if (inputMD) {
     // Call the CloneMDWorkspace algo to handle MDEventWorkspace
     IAlgorithm_sptr alg =
@@ -96,14 +49,6 @@ void CloneWorkspace::exec() {
     IMDWorkspace_sptr outputWS = alg->getProperty("OutputWorkspace");
     setProperty("OutputWorkspace",
                 boost::dynamic_pointer_cast<Workspace>(outputWS));
-  } else if (inputPeaks) {
-    PeaksWorkspace_sptr outputWS(inputPeaks->clone());
-    setProperty("OutputWorkspace",
-                boost::dynamic_pointer_cast<Workspace>(outputWS));
-  } else if (tableWS) {
-    TableWorkspace_sptr outputWS(tableWS->clone());
-    setProperty("OutputWorkspace",
-                boost::dynamic_pointer_cast<Workspace>(outputWS));
   } else
     throw std::runtime_error("Expected a MatrixWorkspace, PeaksWorkspace, "
                              "MDEventWorkspace, or a MDHistoWorkspace. Cannot "
diff --git a/Code/Mantid/Framework/Algorithms/src/CorelliCrossCorrelate.cpp b/Code/Mantid/Framework/Algorithms/src/CorelliCrossCorrelate.cpp
index 7945792f2ae92164950ce47266b1210980931533..a6e0cb33adfc00ecba56d322c2c4855662b143b7 100644
--- a/Code/Mantid/Framework/Algorithms/src/CorelliCrossCorrelate.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CorelliCrossCorrelate.cpp
@@ -84,6 +84,10 @@ std::map<std::string, std::string> CorelliCrossCorrelate::validateInputs() {
   else if (!inputWS->run().hasProperty("chopper4_TDC"))
     errors["InputWorkspace"] = "Workspace is missing chopper4 TDCs.";
 
+  // Must include the chopper4 MotorSpeed.
+  else if (!inputWS->run().hasProperty("BL9:Chop:Skf4:MotorSpeed"))
+    errors["InputWorkspace"] = "Workspace is missing chopper4 Motor Speed.";
+
   // Check if input workspace is sorted.
   else if (inputWS->getSortType() == UNSORTED)
     errors["InputWorkspace"] = "The workspace needs to be a sorted.";
@@ -161,10 +165,10 @@ void CorelliCrossCorrelate::exec() {
   for (unsigned long i = 0; i < tdc.size(); ++i)
     tdc[i] += offset;
 
-  // Determine period from TDC.
-  double period = static_cast<double>(tdc[tdc.size() - 1].totalNanoseconds() -
-                                      tdc[1].totalNanoseconds()) /
-                  double(tdc.size() - 2);
+  // Determine period from chopper frequency.
+  auto motorSpeed = dynamic_cast<TimeSeriesProperty<double> *>(
+      inputWS->run().getProperty("BL9:Chop:Skf4:MotorSpeed"));
+  double period = 1e9 / static_cast<double>(motorSpeed->timeAverageValue());
   g_log.information() << "Frequency = " << 1e9 / period
                       << "Hz Period = " << period << "ns\n";
 
diff --git a/Code/Mantid/Framework/Algorithms/src/CreateCalFileByNames.cpp b/Code/Mantid/Framework/Algorithms/src/CreateCalFileByNames.cpp
index ff6079f89026d56f48eaef7e99d7904de690c220..f5b44fc0351ef147d82955afcbd38b0e74c9f504 100644
--- a/Code/Mantid/Framework/Algorithms/src/CreateCalFileByNames.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CreateCalFileByNames.cpp
@@ -38,10 +38,10 @@ void CreateCalFileByNames::init() {
       new WorkspaceProperty<>("InstrumentWorkspace", "", Direction::Input,
                               boost::make_shared<InstrumentValidator>()),
       "A workspace that contains a reference to the instrument of interest. "
-      "You can use [[LoadEmptyInstrument]] to create such a workspace.");
+      "You can use LoadEmptyInstrument to create such a workspace.");
   declareProperty(
       new FileProperty("GroupingFileName", "", FileProperty::Save, ".cal"),
-      "The name of the output [[CalFile]]");
+      "The name of the output CalFile");
   declareProperty(
       "GroupNames", "",
       "A string of the instrument component names to use as separate groups. "
diff --git a/Code/Mantid/Framework/Algorithms/src/CreateDummyCalFile.cpp b/Code/Mantid/Framework/Algorithms/src/CreateDummyCalFile.cpp
index 7491718576509b60a3742f61d8548bda9ef2db9e..58cc3b4a8d5d957d62b3ab993ed44a4612236dee 100644
--- a/Code/Mantid/Framework/Algorithms/src/CreateDummyCalFile.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CreateDummyCalFile.cpp
@@ -14,8 +14,6 @@
 #include <Poco/DOM/DOMParser.h>
 #include <Poco/DOM/Document.h>
 #include <Poco/DOM/Element.h>
-#include <Poco/File.h>
-#include <Poco/Path.h>
 #include <boost/algorithm/string/split.hpp>
 #include <boost/algorithm/string/detail/classification.hpp>
 
@@ -63,55 +61,10 @@ void CreateDummyCalFile::exec() {
 
   // Get some stuff from the input workspace
   Instrument_const_sptr inst = inputW->getInstrument();
-  std::string instname = inst->getName();
-
-  // Check that the instrument is in store
-  // Get only the first 3 letters
-  std::string instshort = instname;
-  std::transform(instshort.begin(), instshort.end(), instshort.begin(),
-                 toupper);
-  instshort = instshort + "_Definition.xml";
-  // Determine the search directory for XML instrument definition files (IDFs)
-  std::string directoryName =
-      Kernel::ConfigService::Instance().getInstrumentDirectory();
-
-  // Set up the DOM parser and parse xml file
-  DOMParser pParser;
-  Poco::AutoPtr<Document> pDoc;
-  try {
-    pDoc = pParser.parse(directoryName + instshort);
-  } catch (...) {
-    g_log.error("Unable to parse file " + m_filename);
-    throw Kernel::Exception::FileError("Unable to parse File:", m_filename);
-  }
-  // Get pointer to root element
-  Element *pRootElem = pDoc->documentElement();
-  if (!pRootElem->hasChildNodes()) {
-    g_log.error("XML file: " + m_filename + "contains no root element.");
-    throw Kernel::Exception::InstrumentDefinitionError(
-        "No root element in XML instrument file", m_filename);
-  }
+  if (!inst)
+    throw std::invalid_argument("The InputWorkspace does not have an instrument definition");
 
-  // Handle used in the singleton constructor for instrument file should append
-  // the value
-  // of the last-modified tag inside the file to determine if it is already in
-  // memory so that
-  // changes to the instrument file will cause file to be reloaded.
-  auto temp =
-      instshort +
-      pRootElem->getAttribute(
-          "last-modified"); // Generate the mangled name by hand (old-style)
-
-  // If instrument not in store, insult the user
-  if (!API::InstrumentDataService::Instance().doesExist(temp)) {
-    Mantid::Geometry::IDFObject idf(directoryName + instshort);
-    temp = idf.getMangledName(); // new style.
-    if (!API::InstrumentDataService::Instance().doesExist(temp)) {
-      g_log.error("Instrument " + instshort + " is not present in data store.");
-      throw std::runtime_error("Instrument " + instshort +
-                               " is not present in data store.");
-    }
-  }
+  std::string instname = inst->getName();
 
   // Get the names of groups
   groups = instname;
diff --git a/Code/Mantid/Framework/Algorithms/src/CreateLogPropertyTable.cpp b/Code/Mantid/Framework/Algorithms/src/CreateLogPropertyTable.cpp
index 618f59294d5e261f9bc078af82feb7882469b9df..ca716941326bc32f200ac4fbbfa445992ae6f85d 100644
--- a/Code/Mantid/Framework/Algorithms/src/CreateLogPropertyTable.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CreateLogPropertyTable.cpp
@@ -33,6 +33,8 @@ retrieveMatrixWsList(const std::vector<std::string> &wsNames,
                      GroupPolicy groupPolicy);
 GroupPolicy getGroupPolicyByName(const std::string &name);
 std::set<std::string> getAllGroupPolicyNames();
+Math::StatisticType getStatisticTypeByName(const std::string &name);
+std::set<std::string> getAllStatisticTypeNames();
 }
 
 /**
@@ -58,6 +60,12 @@ void CreateLogPropertyTable::init() {
           boost::make_shared<MandatoryValidator<std::vector<std::string>>>()),
       "The names of the log properties to place in table.");
 
+  // How to handle time series logs
+  const std::set<std::string> statisticNames = getAllStatisticTypeNames();
+  declareProperty("TimeSeriesStatistic", "Mean",
+                  boost::make_shared<StringListValidator>(statisticNames),
+                  "The statistic to use when adding a time series log.");
+
   // How to handle workspace groups
   const std::set<std::string> groupPolicies = getAllGroupPolicyNames();
   declareProperty("GroupPolicy", "First",
@@ -110,12 +118,15 @@ void CreateLogPropertyTable::exec() {
   for (size_t i = 0; i < matrixWsList.size(); ++i)
     outputTable->appendRow();
 
-  // Change all "plot designation" fields to "None". (This basically means that
-  // column headings
-  // appear as, for example, "inst_abrv" instead of "inst_abrv [X]" or similar.)
+  // Set the first column to X and all others to Y
+  // This is to reduce the number of steps required to plot the data
   for (size_t i = 0; i < outputTable->columnCount(); ++i)
-    outputTable->getColumn(i)->setPlotType(0);
+    outputTable->getColumn(i)->setPlotType(i == 0 ? 1 : 2);
 
+  const std::string timeSeriesStatName =
+      this->getPropertyValue("TimeSeriesStatistic");
+  const Math::StatisticType timeSeriesStat =
+      getStatisticTypeByName(timeSeriesStatName);
   // Populate output table with the requested run properties.
   for (size_t i = 0; i < outputTable->rowCount(); ++i) {
     TableRow row = outputTable->getRow(i);
@@ -123,9 +134,17 @@ void CreateLogPropertyTable::exec() {
 
     for (auto propName = propNames.begin(); propName != propNames.end();
          ++propName) {
-      const std::string propValue =
-          matrixWs->run().getProperty(*propName)->value();
-      row << propValue;
+      Property *prop = matrixWs->run().getProperty(*propName);
+      std::stringstream propValue;
+
+      if (prop->type().find("TimeValue") != std::string::npos) {
+        propValue << matrixWs->run().getLogAsSingleValue(*propName,
+                                                         timeSeriesStat);
+      } else {
+        propValue << prop->value();
+      }
+
+      row << propValue.str();
     }
   }
 
@@ -261,7 +280,61 @@ std::set<std::string> getAllGroupPolicyNames() {
 
   return groupPolicyNames;
 }
+
+/**
+ * Returns a constant reference to a static map, which maps statistic
+ * names to Kernel::Math::StatisticType members.
+ *
+ * @returns map of statistic names and StatisticType members
+ */
+const std::map<std::string, Math::StatisticType> &getStatisticTypeMap() {
+  static std::map<std::string, Math::StatisticType> map;
+
+  // Populate the map if empty.
+  if (map.empty()) {
+    map.insert(std::make_pair("FirstValue", Math::StatisticType::FirstValue));
+    map.insert(std::make_pair("LastValue", Math::StatisticType::LastValue));
+    map.insert(std::make_pair("Minimum", Math::StatisticType::Minimum));
+    map.insert(std::make_pair("Maximum", Math::StatisticType::Maximum));
+    map.insert(std::make_pair("Mean", Math::StatisticType::Mean));
+    map.insert(std::make_pair("Median", Math::StatisticType::Median));
+  }
+
+  return map;
 }
 
+/**
+ * Given a statistic type name, will return the corresponding StatisticType.
+ *
+ * @param name :: name of statistic
+ * @returns StatisticType
+ */
+Math::StatisticType getStatisticTypeByName(const std::string &name) {
+  const std::map<std::string, Math::StatisticType> &map = getStatisticTypeMap();
+
+  // If we can find a policy with the given name, return it.
+  auto policy = map.find(name);
+  if (policy != map.end())
+    return policy->second;
+
+  // Else return ALL as default.  Assert since we should never reach here.
+  return Math::StatisticType::Mean;
+}
+
+/**
+ * Returns a set of all statistic type names.
+ *
+ * @returns a set of all statistic type names.
+ */
+std::set<std::string> getAllStatisticTypeNames() {
+  const std::map<std::string, Math::StatisticType> &map = getStatisticTypeMap();
+  std::set<std::string> statisticTypeNames;
+
+  for (auto policy = map.begin(); policy != map.end(); ++policy)
+    statisticTypeNames.insert(policy->first);
+
+  return statisticTypeNames;
+}
+}
 } // namespace Algorithms
 } // namespace Mantid
diff --git a/Code/Mantid/Framework/Algorithms/src/CreateSampleWorkspace.cpp b/Code/Mantid/Framework/Algorithms/src/CreateSampleWorkspace.cpp
index 0c08dda844cbe54c945b2b9df5569fb1ff425797..9e3a6de3cfac8853d63d3945c8c9cbb2b6dfb0c3 100644
--- a/Code/Mantid/Framework/Algorithms/src/CreateSampleWorkspace.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CreateSampleWorkspace.cpp
@@ -2,16 +2,11 @@
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidAPI/FunctionProperty.h"
-#include "MantidAPI/SpectraAxis.h"
-#include "MantidAPI/NumericAxis.h"
 #include "MantidGeometry/Objects/ShapeFactory.h"
 #include "MantidGeometry/Instrument/ReferenceFrame.h"
 #include "MantidGeometry/Instrument/RectangularDetector.h"
 #include "MantidKernel/BoundedValidator.h"
-#include "MantidKernel/ArrayProperty.h"
-#include "MantidKernel/RebinParamsValidator.h"
 #include "MantidKernel/ListValidator.h"
-#include "MantidKernel/VectorHelper.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidKernel/MersenneTwister.h"
 #include "MantidAPI/FunctionFactory.h"
@@ -87,6 +82,17 @@ void CreateSampleWorkspace::init() {
       "Flat background", "name=LinearBackground, A0=1;"));
   m_preDefinedFunctionmap.insert(std::pair<std::string, std::string>(
       "Exp Decay", "name=ExpDecay, Height=100, Lifetime=1000;"));
+  m_preDefinedFunctionmap.insert(std::pair<std::string, std::string>(
+      "Powder Diffraction", "name= LinearBackground,A0=0.0850208,A1=-4.89583e-06;"
+      "name=Gaussian,Height=0.584528,PeakCentre=$PC1$,Sigma=14.3772;"
+      "name=Gaussian,Height=1.33361,PeakCentre=$PC2$,Sigma=15.2516;"
+      "name=Gaussian,Height=1.74691,PeakCentre=$PC3$,Sigma=15.8395;"
+      "name=Gaussian,Height=0.950388,PeakCentre=$PC4$,Sigma=19.8408;"
+      "name=Gaussian,Height=1.92185,PeakCentre=$PC5$,Sigma=18.0844;"
+      "name=Gaussian,Height=3.64069,PeakCentre=$PC6$,Sigma=19.2404;"
+      "name=Gaussian,Height=2.8998,PeakCentre=$PC7$,Sigma=21.1127;"
+      "name=Gaussian,Height=2.05237,PeakCentre=$PC8$,Sigma=21.9932;"
+      "name=Gaussian,Height=8.40976,PeakCentre=$PC9$,Sigma=25.2751;"));
   m_preDefinedFunctionmap.insert(
       std::pair<std::string, std::string>("User Defined", ""));
   std::vector<std::string> functionOptions;
@@ -106,14 +112,14 @@ void CreateSampleWorkspace::init() {
                   "The Number of banks in the instrument (default:2)");
   declareProperty("BankPixelWidth", 10,
                   boost::make_shared<BoundedValidator<int>>(0, 10000),
-                  "The width & height of each bank in pixels (default:10).");
+                  "The number of pixels in horizontally and vertically in a bank (default:10)");
   declareProperty("NumEvents", 1000,
                   boost::make_shared<BoundedValidator<int>>(0, 100000),
                   "The number of events per detector, this is only used for "
-                  "EventWorkspaces (default:1000).");
+                  "EventWorkspaces (default:1000)");
   declareProperty(
       "Random", false,
-      "Whether to randomise the placement of events and data (default:false).");
+      "Whether to randomise the placement of events and data (default:false)");
 
   declareProperty("XUnit", "TOF",
                   "The unit to assign to the XAxis (default:\"TOF\")");
@@ -121,7 +127,7 @@ void CreateSampleWorkspace::init() {
   declareProperty("XMax", 20000.0, "The maximum X axis value (default:20000)");
   declareProperty("BinWidth", 200.0,
                   boost::make_shared<BoundedValidator<double>>(0, 100000, true),
-                  "The bin width of the X axis (default:200).");
+                  "The bin width of the X axis (default:200)");
   declareProperty("PixelSpacing", 0.008,
                   boost::make_shared<BoundedValidator<double>>(0, 100000, true),
                   "The spacing between detector pixels in M (default:0.008)");
@@ -129,6 +135,10 @@ void CreateSampleWorkspace::init() {
                   boost::make_shared<BoundedValidator<double>>(0, 1000, true),
                   "The distance along the beam direction from the sample to "
                   "bank in M (default:5.0)");
+  declareProperty("SourceDistanceFromSample", 10.0,
+                  boost::make_shared<BoundedValidator<double>>(0, 1000, true),
+                  "The distance along the beam direction from the source to "
+                  "the sample in M (default:10.0)");
 }
 
 //----------------------------------------------------------------------------------------------
@@ -148,6 +158,7 @@ void CreateSampleWorkspace::exec() {
   double binWidth = getProperty("BinWidth");
   const double pixelSpacing = getProperty("PixelSpacing");
   const double bankDistanceFromSample = getProperty("BankDistanceFromSample");
+  const double sourceSampleDistance = getProperty("SourceDistanceFromSample");
 
   if (xMax <= xMin) {
     throw std::invalid_argument("XMax must be larger than XMin");
@@ -181,7 +192,8 @@ void CreateSampleWorkspace::exec() {
 
   // Create an instrument with one or more rectangular banks.
   Instrument_sptr inst = createTestInstrumentRectangular(
-      numBanks, bankPixelWidth, pixelSpacing, bankDistanceFromSample);
+      numBanks, bankPixelWidth, pixelSpacing, 
+      bankDistanceFromSample,sourceSampleDistance);
 
   int num_bins = static_cast<int>((xMax - xMin) / binWidth);
   MatrixWorkspace_sptr ws;
@@ -404,10 +416,13 @@ void CreateSampleWorkspace::replaceAll(std::string &str,
  * @param pixelSpacing :: padding between pixels
  * @param bankDistanceFromSample :: Distance of first bank from sample (defaults
  *to 5.0m)
+ * @param sourceSampleDistance :: The distance from the source to the sample
+ * @returns A shared pointer to the generated instrument
  */
 Instrument_sptr CreateSampleWorkspace::createTestInstrumentRectangular(
     int num_banks, int pixels, double pixelSpacing,
-    const double bankDistanceFromSample) {
+    const double bankDistanceFromSample,
+    const double sourceSampleDistance) {
   boost::shared_ptr<Instrument> testInst(new Instrument("basic_rect"));
   // The instrument is going to be set up with z as the beam axis and y as the
   // vertical axis.
@@ -447,7 +462,7 @@ Instrument_sptr CreateSampleWorkspace::createTestInstrumentRectangular(
   // Define a source component
   ObjComponent *source =
       new ObjComponent("moderator", Object_sptr(new Object), testInst.get());
-  source->setPos(V3D(0.0, 0.0, -10.));
+  source->setPos(V3D(0.0, 0.0, -sourceSampleDistance));
   testInst->add(source);
   testInst->markAsSource(source);
 
diff --git a/Code/Mantid/Framework/Algorithms/src/ExtractSpectra.cpp b/Code/Mantid/Framework/Algorithms/src/ExtractSpectra.cpp
index 2c88e207d9e74e4676452a58ccef3c2b3b511d11..84050147560c09e2268ba1594ab78ab04416cb4a 100644
--- a/Code/Mantid/Framework/Algorithms/src/ExtractSpectra.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ExtractSpectra.cpp
@@ -8,6 +8,7 @@
 #include "MantidKernel/BoundedValidator.h"
 #include "MantidKernel/VectorHelper.h"
 
+#include <algorithm>
 #include <iostream>
 
 namespace {
@@ -87,9 +88,15 @@ void ExtractSpectra::init() {
       "The index number of the last entry in the Workspace to be loaded\n"
       "(default: last entry in the Workspace)");
   declareProperty(
-      new ArrayProperty<specid_t>("SpectrumList"),
-      "A comma-separated list of individual spectra to read.  Only used if\n"
-      "explicitly set.");
+      new ArrayProperty<size_t>("WorkspaceIndexList"),
+      "A comma-separated list of individual workspace indices to read.  Only used if\n"
+      "explicitly set. The WorkspaceIndexList is only used if the DetectorList is empty.");
+
+    declareProperty(
+      new ArrayProperty<detid_t>("DetectorList"),
+      "A comma-separated list of individual detector IDs to read.  Only used if\n"
+      "explicitly set. When specifying the WorkspaceIndexList and DetectorList property,\n"
+      "the latter is being selected.");
 }
 
 //----------------------------------------------------------------------------------------------
@@ -122,7 +129,7 @@ void ExtractSpectra::execHistogram() {
 
   // Create the output workspace
   MatrixWorkspace_sptr outputWorkspace = WorkspaceFactory::Instance().create(
-    m_inputWorkspace, m_spectrumList.size(), m_maxX - m_minX,
+    m_inputWorkspace, m_workspaceIndexList.size(), m_maxX - m_minX,
       m_maxX - m_minX - m_histogram);
 
   // If this is a Workspace2D, get the spectra axes for copying in the spectraNo
@@ -139,13 +146,13 @@ void ExtractSpectra::execHistogram() {
 
   cow_ptr<MantidVec> newX;
   if (m_commonBoundaries) {
-    const MantidVec &oldX = m_inputWorkspace->readX(m_spectrumList.front());
+    const MantidVec &oldX = m_inputWorkspace->readX(m_workspaceIndexList.front());
     newX.access().assign(oldX.begin() + m_minX, oldX.begin() + m_maxX);
   }
-  Progress prog(this, 0.0, 1.0, (m_spectrumList.size()));
-  // Loop over the required spectra, copying in the desired bins
-  for (int j = 0; j < static_cast<int>(m_spectrumList.size()); ++j) {
-    auto i = m_spectrumList[j];
+  Progress prog(this, 0.0, 1.0, (m_workspaceIndexList.size()));
+  // Loop over the required workspace indices, copying in the desired bins
+  for (int j = 0; j < static_cast<int>(m_workspaceIndexList.size()); ++j) {
+    auto i = m_workspaceIndexList[j];
     // Preserve/restore sharing if X vectors are the same
     if (m_commonBoundaries) {
       outputWorkspace->setX(j, newX);
@@ -177,7 +184,7 @@ void ExtractSpectra::execHistogram() {
         ->copyInfoFrom(*m_inputWorkspace->getSpectrum(i));
 
     if (!m_commonBoundaries)
-      this->cropRagged(outputWorkspace, i, j);
+      this->cropRagged(outputWorkspace, static_cast<int>(i), j);
 
     // Propagate bin masking if there is any
     if (m_inputWorkspace->hasMaskedBins(i)) {
@@ -196,6 +203,30 @@ void ExtractSpectra::execHistogram() {
   setProperty("OutputWorkspace", outputWorkspace);
 }
 
+namespace { // anonymous namespace
+
+template <class T>
+struct eventFilter {
+    eventFilter(const double minValue, const double maxValue):
+        minValue(minValue), maxValue(maxValue)
+    {}
+
+    bool operator()(const T &value) {
+        const double tof = value.tof();
+        return (tof <= maxValue && tof >= minValue);
+    }
+
+    double minValue;
+    double maxValue;
+};
+
+template <class T>
+void copyEventsHelper(const std::vector<T> &inputEvents, std::vector<T> &outputEvents, const double xmin, const double xmax) {
+    copy_if(inputEvents.begin(), inputEvents.end(), std::back_inserter(outputEvents), eventFilter<T>(xmin, xmax));
+}
+
+}
+
 /** Executes the algorithm
  *  @throw std::out_of_range If a property is set to an invalid value for the
  * input workspace
@@ -216,7 +247,7 @@ void ExtractSpectra::execEvent() {
   this->checkProperties();
   cow_ptr<MantidVec> XValues_new;
   if (m_commonBoundaries) {
-    const MantidVec &oldX = m_inputWorkspace->readX(m_spectrumList.front());
+    const MantidVec &oldX = m_inputWorkspace->readX(m_workspaceIndexList.front());
     XValues_new.access().assign(oldX.begin() + m_minX, oldX.begin() + m_maxX);
   }
   size_t ntcnew = m_maxX - m_minX;
@@ -241,7 +272,7 @@ void ExtractSpectra::execEvent() {
   EventWorkspace_sptr outputWorkspace =
       boost::dynamic_pointer_cast<EventWorkspace>(
           API::WorkspaceFactory::Instance().create(
-              "EventWorkspace", m_spectrumList.size(), ntcnew,
+              "EventWorkspace", m_workspaceIndexList.size(), ntcnew,
               ntcnew - m_histogram));
   eventW->sortAll(TOF_SORT, NULL);
   outputWorkspace->sortAll(TOF_SORT, NULL);
@@ -249,13 +280,13 @@ void ExtractSpectra::execEvent() {
   API::WorkspaceFactory::Instance().initializeFromParent(m_inputWorkspace,
                                                          outputWorkspace, true);
 
-  Progress prog(this, 0.0, 1.0, 2 * m_spectrumList.size());
+  Progress prog(this, 0.0, 1.0, 2 * m_workspaceIndexList.size());
   eventW->sortAll(Mantid::DataObjects::TOF_SORT, &prog);
-  // Loop over the required spectra, copying in the desired bins
+  // Loop over the required workspace indices, copying in the desired bins
   PARALLEL_FOR2(m_inputWorkspace, outputWorkspace)
-  for (int j = 0; j < static_cast<int>(m_spectrumList.size()); ++j) {
+  for (int j = 0; j < static_cast<int>(m_workspaceIndexList.size()); ++j) {
     PARALLEL_START_INTERUPT_REGION
-    auto i = m_spectrumList[j];
+    auto i = m_workspaceIndexList[j];
     const EventList &el = eventW->getEventList(i);
     // The output event list
     EventList &outEL = outputWorkspace->getOrAddEventList(j);
@@ -266,45 +297,23 @@ void ExtractSpectra::execEvent() {
 
     switch (el.getEventType()) {
     case TOF: {
-      std::vector<TofEvent>::const_iterator itev = el.getEvents().begin();
-      std::vector<TofEvent>::const_iterator end = el.getEvents().end();
       std::vector<TofEvent> moreevents;
       moreevents.reserve(el.getNumberEvents()); // assume all will make it
-      for (; itev != end; ++itev) {
-        const double tof = itev->tof();
-        if (tof <= maxX_val && tof >= minX_val)
-          moreevents.push_back(*itev);
-      }
+      copyEventsHelper(el.getEvents(), moreevents, minX_val, maxX_val);
       outEL += moreevents;
       break;
     }
     case WEIGHTED: {
-      std::vector<WeightedEvent>::const_iterator itev =
-          el.getWeightedEvents().begin();
-      std::vector<WeightedEvent>::const_iterator end =
-          el.getWeightedEvents().end();
       std::vector<WeightedEvent> moreevents;
       moreevents.reserve(el.getNumberEvents()); // assume all will make it
-      for (; itev != end; ++itev) {
-        const double tof = itev->tof();
-        if (tof <= maxX_val && tof >= minX_val)
-          moreevents.push_back(*itev);
-      }
+      copyEventsHelper(el.getWeightedEvents(), moreevents, minX_val, maxX_val);
       outEL += moreevents;
       break;
     }
     case WEIGHTED_NOTIME: {
-      std::vector<WeightedEventNoTime>::const_iterator itev =
-          el.getWeightedEventsNoTime().begin();
-      std::vector<WeightedEventNoTime>::const_iterator end =
-          el.getWeightedEventsNoTime().end();
       std::vector<WeightedEventNoTime> moreevents;
       moreevents.reserve(el.getNumberEvents()); // assume all will make it
-      for (; itev != end; ++itev) {
-        const double tof = itev->tof();
-        if (tof <= maxX_val && tof >= minX_val)
-          moreevents.push_back(*itev);
-      }
+      copyEventsHelper(el.getWeightedEventsNoTime(), moreevents, minX_val, maxX_val);
       outEL += moreevents;
       break;
     }
@@ -376,34 +385,43 @@ void ExtractSpectra::checkProperties() {
   if (!m_commonBoundaries)
     m_maxX = static_cast<int>(m_inputWorkspace->readX(0).size());
 
-  m_spectrumList = getProperty("SpectrumList");
-
-  if (m_spectrumList.empty()) {
-    int minSpec = getProperty("StartWorkspaceIndex");
-    const int numberOfSpectra =
-        static_cast<int>(m_inputWorkspace->getNumberHistograms());
-    int maxSpec = getProperty("EndWorkspaceIndex");
-    if (isEmpty(maxSpec))
-      maxSpec = numberOfSpectra - 1;
-
-    // Check 'StartSpectrum' is in range 0-numberOfSpectra
-    if (minSpec > numberOfSpectra - 1) {
-      g_log.error("StartWorkspaceIndex out of range!");
-      throw std::out_of_range("StartSpectrum out of range!");
-    }
-    if (maxSpec > numberOfSpectra - 1) {
-      g_log.error("EndWorkspaceIndex out of range!");
-      throw std::out_of_range("EndWorkspaceIndex out of range!");
-    }
-    if (maxSpec < minSpec) {
-      g_log.error("StartWorkspaceIndex must be less than or equal to "
-                  "EndWorkspaceIndex");
-      throw std::out_of_range("StartWorkspaceIndex must be less than or equal "
-                              "to EndWorkspaceIndex");
-    }
-    m_spectrumList.reserve(maxSpec - minSpec + 1);
-    for (specid_t i = minSpec; i <= maxSpec; ++i) {
-      m_spectrumList.push_back(i);
+  // The hierarchy of inputs is (one is being selected):
+  // 1. DetectorList
+  // 2. WorkspaceIndexList
+  // 3. Start and stop index
+  std::vector<detid_t> detectorList = getProperty("DetectorList");
+  if (!detectorList.empty()) {
+    m_inputWorkspace->getIndicesFromDetectorIDs(detectorList, m_workspaceIndexList);
+  } else {
+    m_workspaceIndexList = getProperty("WorkspaceIndexList");
+
+    if (m_workspaceIndexList.empty()) {
+      int minSpec = getProperty("StartWorkspaceIndex");
+      const int numberOfSpectra =
+          static_cast<int>(m_inputWorkspace->getNumberHistograms());
+      int maxSpec = getProperty("EndWorkspaceIndex");
+      if (isEmpty(maxSpec))
+        maxSpec = numberOfSpectra - 1;
+
+      // Check 'StartSpectrum' is in range 0-numberOfSpectra
+      if (minSpec > numberOfSpectra - 1) {
+        g_log.error("StartWorkspaceIndex out of range!");
+        throw std::out_of_range("StartSpectrum out of range!");
+      }
+      if (maxSpec > numberOfSpectra - 1) {
+        g_log.error("EndWorkspaceIndex out of range!");
+        throw std::out_of_range("EndWorkspaceIndex out of range!");
+      }
+      if (maxSpec < minSpec) {
+        g_log.error("StartWorkspaceIndex must be less than or equal to "
+                    "EndWorkspaceIndex");
+        throw std::out_of_range("StartWorkspaceIndex must be less than or equal "
+                                "to EndWorkspaceIndex");
+      }
+      m_workspaceIndexList.reserve(maxSpec - minSpec + 1);
+      for (size_t i = static_cast<size_t>(minSpec); i <= static_cast<size_t>(maxSpec); ++i) {
+        m_workspaceIndexList.push_back(i);
+      }
     }
   }
 }
@@ -492,4 +510,4 @@ void ExtractSpectra::cropRagged(API::MatrixWorkspace_sptr outputWorkspace,
 }
 
 } // namespace Algorithms
-} // namespace Mantid
\ No newline at end of file
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/Algorithms/src/FFT.cpp b/Code/Mantid/Framework/Algorithms/src/FFT.cpp
index 7b387eae0a38f0607550248450b439e5d406c612..4b1dbebdd4a2fdeb29365824fa71fd38eb8e187c 100644
--- a/Code/Mantid/Framework/Algorithms/src/FFT.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/FFT.cpp
@@ -3,6 +3,7 @@
 //----------------------------------------------------------------------
 #include "MantidAlgorithms/FFT.h"
 #include "MantidKernel/UnitFactory.h"
+#include "MantidKernel/UnitLabelTypes.h"
 #include "MantidAPI/TextAxis.h"
 
 #include <boost/shared_array.hpp>
@@ -127,25 +128,41 @@ void FFT::exec() {
   MatrixWorkspace_sptr outWS =
       WorkspaceFactory::Instance().create(inWS, nOut, xSize, ySize);
 
-  bool isEnergyMeV = false;
-  if (inWS->getAxis(0)->unit() &&
-      (inWS->getAxis(0)->unit()->caption() == "Energy" ||
-       inWS->getAxis(0)->unit()->caption() == "Energy transfer") &&
-      inWS->getAxis(0)->unit()->label() == "meV") {
+  double df = 1.0 / (dx * ySize);
+
+  // Output label
+  outWS->getAxis(0)->unit() = UnitFactory::Instance().create("Label");
+
+  auto inputUnit = inWS->getAxis(0)->unit();
+  if (inputUnit) {
+
     boost::shared_ptr<Kernel::Units::Label> lblUnit =
         boost::dynamic_pointer_cast<Kernel::Units::Label>(
             UnitFactory::Instance().create("Label"));
     if (lblUnit) {
-      lblUnit->setLabel("Time", "ns");
+
+      if ((inputUnit->caption() == "Energy" ||
+           inputUnit->caption() == "Energy transfer") &&
+          inputUnit->label() == "meV") {
+        lblUnit->setLabel("Time", "ns");
+        df /= 2.418e2;
+      } else if (inputUnit->caption() == "Time" && inputUnit->label() == "s") {
+        lblUnit->setLabel("Frequency", "Hz");
+      } else if (inputUnit->caption() == "Frequency" && inputUnit->label() == "Hz") {
+        lblUnit->setLabel("Time", "s");
+      } else if (inputUnit->caption() == "Time" && inputUnit->label() == "microsecond") {
+        lblUnit->setLabel("Frequency", "MHz");
+      } else if (inputUnit->caption() == "Frequency" && inputUnit->label() == "MHz") {
+        lblUnit->setLabel("Time", Units::Symbol::Microsecond);
+      } else if (inputUnit->caption() == "d-Spacing" && inputUnit->label() == "Angstrom") {
+        lblUnit->setLabel("q", Units::Symbol::InverseAngstrom);
+      } else if (inputUnit->caption() == "q" && inputUnit->label() == "Angstrom^-1") {
+        lblUnit->setLabel("d-Spacing", Units::Symbol::Angstrom);
+      }
+
       outWS->getAxis(0)->unit() = lblUnit;
     }
-    isEnergyMeV = true;
-  } else
-    outWS->getAxis(0)->unit() = UnitFactory::Instance().create("Label");
-
-  double df = 1.0 / (dx * ySize);
-  if (isEnergyMeV)
-    df /= 2.418e2;
+  }
 
   // centerShift == true means that the zero on the x axis is assumed to be in
   // the data centre
diff --git a/Code/Mantid/Framework/Algorithms/src/FilterEvents.cpp b/Code/Mantid/Framework/Algorithms/src/FilterEvents.cpp
index b46fe17d77b5f97834b8476a8f89423a4ac5c3bd..cf0fb291f7c774c0abb89c9e4fed0a75d62aac00 100644
--- a/Code/Mantid/Framework/Algorithms/src/FilterEvents.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/FilterEvents.cpp
@@ -1,4 +1,7 @@
 #include "MantidAlgorithms/FilterEvents.h"
+#include "MantidAlgorithms/TimeAtSampleStrategyDirect.h"
+#include "MantidAlgorithms/TimeAtSampleStrategyElastic.h"
+#include "MantidAlgorithms/TimeAtSampleStrategyIndirect.h"
 #include "MantidKernel/System.h"
 #include "MantidKernel/ListValidator.h"
 #include "MantidKernel/BoundedValidator.h"
@@ -13,7 +16,7 @@
 #include "MantidKernel/LogFilter.h"
 #include "MantidKernel/PhysicalConstants.h"
 #include "MantidKernel/ArrayProperty.h"
-
+#include <memory>
 #include <sstream>
 
 using namespace Mantid;
@@ -571,7 +574,7 @@ void FilterEvents::createOutputWorkspaces() {
   */
 void FilterEvents::setupDetectorTOFCalibration() {
   // Set output correction workspace and set to output
-  size_t numhist = m_eventWS->getNumberHistograms();
+  const size_t numhist = m_eventWS->getNumberHistograms();
   MatrixWorkspace_sptr corrws = boost::dynamic_pointer_cast<MatrixWorkspace>(
       WorkspaceFactory::Instance().create("Workspace2D", numhist, 2, 2));
   setProperty("OutputTOFCorrectionWorkspace", corrws);
@@ -581,60 +584,43 @@ void FilterEvents::setupDetectorTOFCalibration() {
   m_detTofShifts.resize(numhist, 0.0);
 
   // Set up detector values
+  std::unique_ptr<TimeAtSampleStrategy> strategy;
+
   if (m_tofCorrType == CustomizedCorrect) {
     setupCustomizedTOFCorrection();
   } else if (m_tofCorrType == ElasticCorrect) {
     // Generate TOF correction from instrument's set up
-    setupElasticTOFCorrection(corrws);
+    strategy.reset(setupElasticTOFCorrection());
   } else if (m_tofCorrType == DirectCorrect) {
     // Generate TOF correction for direct inelastic instrument
-    setupDirectTOFCorrection(corrws);
+    strategy.reset(setupDirectTOFCorrection());
   } else if (m_tofCorrType == IndirectCorrect) {
     // Generate TOF correction for indirect elastic instrument
-    setupIndirectTOFCorrection(corrws);
+    strategy.reset(setupIndirectTOFCorrection());
   }
+  if (strategy) {
+    for (size_t i = 0; i < numhist; ++i) {
+      if (!m_vecSkip[i]) {
 
-  return;
-}
-
-//----------------------------------------------------------------------------------------------
-/**
-  */
-void FilterEvents::setupElasticTOFCorrection(API::MatrixWorkspace_sptr corrws) {
-  // Get sample distance to moderator
-  Geometry::Instrument_const_sptr instrument = m_eventWS->getInstrument();
-  IComponent_const_sptr source =
-      boost::dynamic_pointer_cast<const IComponent>(instrument->getSource());
-  double l1 = instrument->getDistance(*source);
-
-  // Get
-  size_t numhist = m_eventWS->getNumberHistograms();
-  for (size_t i = 0; i < numhist; ++i) {
-    if (!m_vecSkip[i]) {
-      IComponent_const_sptr tmpdet =
-          boost::dynamic_pointer_cast<const IComponent>(
-              m_eventWS->getDetector(i));
-      double l2 = instrument->getDistance(*tmpdet);
-
-      double corrfactor = (l1) / (l1 + l2);
+        Correction correction = strategy->calculate(i);
+        m_detTofOffsets[i] = correction.offset;
+        m_detTofShifts[i] = correction.factor;
 
-      m_detTofOffsets[i] = corrfactor;
-      corrws->dataY(i)[0] = corrfactor;
+        corrws->dataY(i)[0] = correction.offset;
+        corrws->dataY(i)[1] = correction.factor;
+      }
     }
   }
 
   return;
 }
 
-//----------------------------------------------------------------------------------------------
-/** Calculate TOF correction for direct geometry inelastic instrument
-  * Time = T_pulse + TOF*0 + L1/sqrt(E*2/m)
-  */
-void FilterEvents::setupDirectTOFCorrection(API::MatrixWorkspace_sptr corrws) {
-  // Get L1
-  V3D samplepos = m_eventWS->getInstrument()->getSample()->getPos();
-  V3D sourcepos = m_eventWS->getInstrument()->getSource()->getPos();
-  double l1 = samplepos.distance(sourcepos);
+TimeAtSampleStrategy *FilterEvents::setupElasticTOFCorrection() const {
+
+  return new TimeAtSampleStrategyElastic(m_eventWS);
+}
+
+TimeAtSampleStrategy *FilterEvents::setupDirectTOFCorrection() const {
 
   // Get incident energy Ei
   double ei = 0.;
@@ -650,108 +636,11 @@ void FilterEvents::setupDirectTOFCorrection(API::MatrixWorkspace_sptr corrws) {
     g_log.debug() << "Using user-input Ei value " << ei << "\n";
   }
 
-  // Calculate constant (to all spectra) shift
-  double constshift = l1 / sqrt(ei * 2. * PhysicalConstants::meV /
-                                PhysicalConstants::NeutronMass);
-
-  // Set up the shfit
-  size_t numhist = m_eventWS->getNumberHistograms();
-
-  g_log.debug()
-      << "Calcualte direct inelastic scattering for input workspace of "
-      << numhist << " spectra "
-      << "storing to output workspace with " << corrws->getNumberHistograms()
-      << " spectra. "
-      << "\n";
-
-  for (size_t i = 0; i < numhist; ++i) {
-    m_detTofOffsets[i] = 0.0;
-    m_detTofShifts[i] = constshift;
-
-    corrws->dataY(i)[0] = 0.0;
-    corrws->dataY(i)[1] = constshift;
-  }
-
-  return;
+  return new TimeAtSampleStrategyDirect(m_eventWS, ei);
 }
 
-//----------------------------------------------------------------------------------------------
-/** Calculate TOF correction for indirect geometry inelastic instrument
-  * Time = T_pulse + TOF - L2/sqrt(E_fix * 2 * meV / mass)
-  */
-void
-FilterEvents::setupIndirectTOFCorrection(API::MatrixWorkspace_sptr corrws) {
-  g_log.debug("Start to set up indirect TOF correction. ");
-
-  // A constant among all spectra
-  double twomev_d_mass =
-      2. * PhysicalConstants::meV / PhysicalConstants::NeutronMass;
-  V3D samplepos = m_eventWS->getInstrument()->getSample()->getPos();
-
-  // Get the parameter map
-  const ParameterMap &pmap = m_eventWS->constInstrumentParameters();
-
-  // Set up the shift
-  size_t numhist = m_eventWS->getNumberHistograms();
-
-  g_log.debug() << "[DBx158] Number of histograms = " << numhist
-                << ", Correction WS size = " << corrws->getNumberHistograms()
-                << "\n";
-
-  for (size_t i = 0; i < numhist; ++i) {
-    if (!m_vecSkip[i]) {
-      double shift;
-      IDetector_const_sptr det = m_eventWS->getDetector(i);
-      if (!det->isMonitor()) {
-        // Get E_fix
-        double efix = 0.;
-        try {
-          Parameter_sptr par = pmap.getRecursive(det.get(), "Efixed");
-          if (par) {
-            efix = par->value<double>();
-            g_log.debug() << "Detector: " << det->getID() << " of spectrum "
-                          << i << " EFixed: " << efix << "\n";
-          } else {
-            g_log.warning() << "Detector: " << det->getID() << " of spectrum "
-                            << i << " does not have EFixed set up."
-                            << "\n";
-          }
-        } catch (std::runtime_error &) {
-          // Throws if a DetectorGroup, use single provided value
-          stringstream errmsg;
-          errmsg << "Inelastic instrument detector " << det->getID()
-                 << " of spectrum " << i << " does not have EFixed ";
-          throw runtime_error(errmsg.str());
-        }
-
-        // Get L2
-        double l2 = det->getPos().distance(samplepos);
-
-        // Calculate shift
-        shift = -1. * l2 / sqrt(efix * twomev_d_mass);
-
-        g_log.notice() << "Detector " << i << ": "
-                       << "L2 = " << l2 << ", EFix = " << efix
-                       << ", Shift = " << shift << "\n";
-      } else {
-        // Monitor:
-        g_log.warning() << "Spectrum " << i << " contains detector "
-                        << det->getID() << " is a monitor. "
-                        << "\n";
-
-        shift = 0.;
-      }
-
-      // Set up the shifts
-      m_detTofOffsets[i] = 1.0;
-      m_detTofShifts[i] = shift;
-
-      corrws->dataY(i)[0] = 1.0;
-      corrws->dataY(i)[1] = shift;
-    }
-  } // ENDOF (all spectra)
-
-  return;
+TimeAtSampleStrategy *FilterEvents::setupIndirectTOFCorrection() const {
+  return new TimeAtSampleStrategyIndirect(m_eventWS);
 }
 
 //----------------------------------------------------------------------------------------------
diff --git a/Code/Mantid/Framework/Algorithms/src/FindPeaks.cpp b/Code/Mantid/Framework/Algorithms/src/FindPeaks.cpp
index 247b8b9e30e6e75382af5c6e4b78fc49e916c483..2006840116b741bb18eab92a00ab5ccdedd15364 100644
--- a/Code/Mantid/Framework/Algorithms/src/FindPeaks.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/FindPeaks.cpp
@@ -375,7 +375,9 @@ FindPeaks::findPeaksGivenStartingPoints(const std::vector<double> &peakcentres,
           break;
         }
       }
-      g_log.warning() << "i_min = " << i_min << " i_max = " << i_max << "\n";
+      g_log.debug()
+          << "Finding peaks from giving starting point, with interval i_min = "
+          << i_min << " i_max = " << i_max << std::endl;
       practical_x_max = vecX[i_max];
     }
     g_log.information() << "practical x-range = [" << practical_x_min << " -> "
@@ -1302,7 +1304,8 @@ void FindPeaks::estimateBackground(const MantidVec &X, const MantidVec &Y,
                                    std::vector<double> &vecbkgdparvalues) {
   // Validate input
   if (i_min >= i_max)
-    throw std::runtime_error("i_min cannot larger or equal to i_max");
+    throw std::runtime_error("when trying to estimate the background parameter "
+                             "values: i_min cannot larger or equal to i_max");
   if (vecbkgdparvalues.size() < 3)
     vecbkgdparvalues.resize(3, 0.);
 
@@ -1468,11 +1471,12 @@ void FindPeaks::addInfoRow(const size_t spectrum,
       a2 = bkgdfunction->getParameter("A2");
 
     t << a0 << a1 << a2;
-    g_log.warning() << "cen=" << peakcentre << " fwhm=" << fwhm
-                    << " height=" << height << " a0=" << a0 << " a0=" << a1
-                    << " a2=" << a2;
+
+    g_log.debug() << "Peak parameters found: cen=" << peakcentre
+                  << " fwhm=" << fwhm << " height=" << height << " a0=" << a0
+                  << " a1=" << a1 << " a2=" << a2;
   }
-  g_log.warning() << " chsq=" << mincost << "\n";
+  g_log.debug() << " chsq=" << mincost << "\n";
   // Minimum cost function value
   t << mincost;
 
diff --git a/Code/Mantid/Framework/Algorithms/src/GravitySANSHelper.cpp b/Code/Mantid/Framework/Algorithms/src/GravitySANSHelper.cpp
index bfd3079c738b7fe733f966b83c48361355b89866..a7d2b3efdba6aa5f957ae96e2f7ad696b4c21cf7 100644
--- a/Code/Mantid/Framework/Algorithms/src/GravitySANSHelper.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/GravitySANSHelper.cpp
@@ -1,6 +1,8 @@
 #include "MantidAlgorithms/GravitySANSHelper.h"
 #include <math.h>
 
+#include "MantidAPI/MatrixWorkspace.h"
+
 namespace Mantid {
 namespace Algorithms {
 using Kernel::V3D;
@@ -114,4 +116,4 @@ double GravitySANSHelper::gravitationalDrop(API::MatrixWorkspace_const_sptr ws,
 
   return waveLength * waveLength * L2;
 }}
-}
\ No newline at end of file
+}
diff --git a/Code/Mantid/Framework/Algorithms/src/ModeratorTzero.cpp b/Code/Mantid/Framework/Algorithms/src/ModeratorTzero.cpp
index eb954f560164c0b1d3a11df7f39a334e5c688b22..7fc1ebd6d07db8e193dfed447e8481ead68cb507 100644
--- a/Code/Mantid/Framework/Algorithms/src/ModeratorTzero.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ModeratorTzero.cpp
@@ -5,6 +5,7 @@
 #include "MantidAPI/WorkspaceValidators.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidDataObjects/EventWorkspace.h"
+#include "MantidKernel/ListValidator.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidGeometry/muParser_Silent.h"
 #include <boost/lexical_cast.hpp>
@@ -37,21 +38,29 @@ void ModeratorTzero::init() {
   auto wsValidator = boost::make_shared<CompositeValidator>();
   wsValidator->add<WorkspaceUnitValidator>("TOF");
   declareProperty(new WorkspaceProperty<MatrixWorkspace>(
-                      "InputWorkspace", "", Direction::Input, wsValidator),
-                  "The name of the input workspace, containing events and/or "
-                  "histogram data, in units of time-of-flight");
+    "InputWorkspace", "", Direction::Input, wsValidator),
+    "The name of the input workspace, containing events and/or "
+    "histogram data, in units of time-of-flight");
   // declare the output workspace
   declareProperty(new WorkspaceProperty<MatrixWorkspace>("OutputWorkspace", "",
-                                                         Direction::Output),
-                  "The name of the output workspace");
+    Direction::Output), "The name of the output workspace");
+
+  // declare the instrument scattering mode
+  std::vector<std::string> EModeOptions;
+  EModeOptions.push_back("Indirect");
+  EModeOptions.push_back("Direct");
+  EModeOptions.push_back("Elastic");
+  this->declareProperty("EMode", "Indirect",
+    boost::make_shared<StringListValidator>(EModeOptions),
+    "The energy mode (default: Indirect)");
+
   declareProperty(new Kernel::PropertyWithValue<double>(
-                      "tolTOF", 0.1, Kernel::Direction::Input),
-                  "Tolerance in the calculation of the emission time, in "
-                  "microseconds (default:1)");
+    "tolTOF", 0.1, Kernel::Direction::Input),
+    "Tolerance in the calculation of the emission time, in "
+    "microseconds (default:1)");
   declareProperty(new Kernel::PropertyWithValue<size_t>(
-                      "Niter", 1, Kernel::Direction::Input),
-                  "Number of iterations (default:1)");
-
+    "Niter", 1, Kernel::Direction::Input),
+    "Number of iterations (default:1)");
 } // end of void ModeratorTzero::init()
 
 void ModeratorTzero::exec() {
@@ -60,34 +69,52 @@ void ModeratorTzero::exec() {
   m_niter = getProperty("Niter");   // number of iterations
   const MatrixWorkspace_sptr inputWS = getProperty("InputWorkspace");
   m_instrument = inputWS->getInstrument(); // pointer to the instrument
+  const std::string emode = getProperty("EMode");
 
-  // deltaE-mode (should be "indirect")
-  std::vector<std::string> Emode =
-      m_instrument->getStringParameter("deltaE-mode");
-  if (Emode.empty())
-    throw Exception::InstrumentDefinitionError(
-        "Unable to retrieve instrument geometry (direct or indirect) parameter",
-        inputWS->getTitle());
-  if (Emode[0] != "indirect")
-    throw Exception::InstrumentDefinitionError(
-        "Instrument geometry must be of type indirect.");
+  // Check if Ei stored in workspace
+  if(emode=="Direct")
+  {
+    if(!inputWS->run().hasProperty("Ei"))
+    {
+      g_log.error("No incident energy value (Ei) has been set or stored.");
+      return;
+    }
+  }
 
   // extract formula from instrument parameters
   std::vector<std::string> t0_formula =
-      m_instrument->getStringParameter("t0_formula");
+  m_instrument->getStringParameter("t0_formula");
   if (t0_formula.empty())
-    throw Exception::InstrumentDefinitionError(
-        "Unable to retrieve t0_formula among instrument parameters");
+  {
+    g_log.error("Unable to retrieve t0_formula among instrument parameters.");
+    return;
+  }
   m_formula = t0_formula[0];
+  // Are there source and sample?
+  IComponent_const_sptr source;
+  IComponent_const_sptr sample;
+  double Lss(0); // distance from source to sample
+  try
+  {
+    source = m_instrument->getSource();
+    sample = m_instrument->getSample();
+    Lss = source->getDistance(*sample);
+  }
+  catch(Exception::NotFoundError &)
+  {
+    g_log.error("Unable to calculate source-sample distance.");
+    return;
+  }
 
   // Run execEvent if eventWorkSpace
   EventWorkspace_const_sptr eventWS =
       boost::dynamic_pointer_cast<const EventWorkspace>(inputWS);
   if (eventWS != NULL) {
-    execEvent();
+    execEvent(emode);
     return;
   }
 
+  // Run exec for matrix workspace
   MatrixWorkspace_sptr outputWS = getProperty("OutputWorkspace");
   // Check whether input == output to see whether a new workspace is required.
   if (outputWS != inputWS) {
@@ -95,81 +122,173 @@ void ModeratorTzero::exec() {
     outputWS = WorkspaceFactory::Instance().create(inputWS);
   }
 
+  // calculate tof shift once for all neutrons if emode==Direct
+  double t0_direct(-1);
+  if(emode=="Direct")
+  {
+    Kernel::Property *eiprop = inputWS->run().getProperty("Ei");
+    double Ei = boost::lexical_cast<double>(eiprop->value());
+    mu::Parser parser;
+    parser.DefineVar("incidentEnergy", &Ei); // associate E1 to this parser
+    parser.SetExpr(m_formula);
+    t0_direct = parser.Eval();
+  }
+
   const size_t numHists = static_cast<size_t>(inputWS->getNumberHistograms());
   Progress prog(this, 0.0, 1.0, numHists); // report progress of algorithm
   PARALLEL_FOR2(inputWS, outputWS)
   // iterate over the spectra
-  for (int i = 0; i < static_cast<int>(numHists); ++i) {
+  for (int i = 0; i < static_cast<int>(numHists); ++i)
+  {
     PARALLEL_START_INTERUPT_REGION
-    size_t wsIndex = static_cast<size_t>(i);
-    double L1 = CalculateL1(
-        inputWS, wsIndex); // distance from source to sample or monitor
-    double t2 = CalculateT2(inputWS, wsIndex); // time from sample to detector
-    // shift the time of flights by the emission time from the moderator
-    if (t2 >= 0) // t2 < 0 when no detector info is available
+    MantidVec &inbins = inputWS->dataX(i);
+    MantidVec &outbins = outputWS->dataX(i);
+
+    // One parser for each parallel processor needed (except Edirect mode)
+    double E1;
+    mu::Parser parser;
+    parser.DefineVar("incidentEnergy", &E1); // associate E1 to this parser
+    parser.SetExpr(m_formula);
+
+    IDetector_const_sptr det;
+    double L1(Lss); // distance from source to sample
+    double L2(-1); // distance from sample to detector
+    try
     {
-      double E1;
-      mu::Parser parser;
-      parser.DefineVar("incidentEnergy", &E1); // associate E1 to this parser
-      parser.SetExpr(m_formula);
-      E1 = m_convfactor * (L1 / m_t1min) * (L1 / m_t1min);
-      double min_t0_next = parser.Eval(); // fast neutrons are shifted by
-                                          // min_t0_next, irrespective of tof
-      MantidVec &inbins = inputWS->dataX(i);
-      MantidVec &outbins = outputWS->dataX(i);
-
-      // iterate over the time-of-flight values
-      for (unsigned int ibin = 0; ibin < inbins.size(); ibin++) {
-        double tof = inbins[ibin]; // current time-of-flight
-        if (tof < m_t1min + t2)
-          tof -= min_t0_next;
-        else
-          tof -= CalculateT0(tof, L1, t2, E1, parser);
-        outbins[ibin] = tof;
+      det = inputWS->getDetector(i);
+      if (det->isMonitor())
+      {
+        // redefine the sample as the monitor
+        L1 = source->getDistance(*det);
+        L2 = 0;
       }
-    } else {
-      outputWS->dataX(i) = inputWS->dataX(i);
+      else
+      {
+        L2 = sample->getDistance(*det);
+      }
+    } // end of try
+    catch(Exception::NotFoundError &)
+    {
+      g_log.error() << "Unable to calculate distances to/from detector" << i << std::endl;
+      outbins = inbins;
     }
+    if(L2 >= 0)
+    {
+      // fast neutrons are shifted by min_t0_next, irrespective of tof
+      double v1_max = L1 / m_t1min;
+      E1 = m_convfactor * v1_max*v1_max;
+      double min_t0_next = parser.Eval();
+
+      if(emode=="Indirect")
+      {
+        double t2(-1.0); // time from sample to detector. (-1) signals error
+        if(det->isMonitor())
+        {
+          t2=0.0;
+        }
+        else
+        {
+          static const double convFact = 1.0e-6 * sqrt(2 * PhysicalConstants::meV /
+            PhysicalConstants::NeutronMass);
+          std::vector<double> wsProp = det->getNumberParameter("Efixed");
+          if (!wsProp.empty())
+          {
+            double E2 = wsProp.at(0);        //[E2]=meV
+            double v2 = convFact * sqrt(E2); //[v2]=meter/microsec
+            t2 = L2 / v2;
+          }
+          else
+          {
+            // t2 is kept to -1 if no Efixed is found
+            g_log.debug() << "Efixed not found for detector " << i << std::endl;
+          }
+        }
+        // shift the time of flights by the emission time from the moderator
+        if (t2 >= 0) // t2 < 0 when no detector info is available
+        {
+          // iterate over the time-of-flight values
+          for (unsigned int ibin = 0; ibin < inbins.size(); ibin++) {
+            double tof = inbins[ibin]; // recorded time-of-flight
+            if (tof < m_t1min + t2)
+              tof -= min_t0_next;
+            else
+              tof -= CalculateT0indirect(tof, L1, t2, E1, parser);
+            outbins[ibin] = tof;
+          }
+        }
+        else
+        {
+          outbins = inbins;
+        }
+      } // end of if(emode=="Indirect")
+      else if(emode=="Elastic")
+      {
+        for (unsigned int ibin = 0; ibin < inbins.size(); ibin++)
+        {
+          double tof = inbins[ibin]; // recorded time-of-flight;
+          if (tof < m_t1min *(L1+L2)/L1)
+            tof -= min_t0_next;
+          else
+            tof -= CalculateT0elastic(tof, L1+L2, E1, parser);
+          outbins[ibin] = tof;
+        }
+      } // end of else if(emode=="Elastic")
+      else if(emode=="Direct")
+      {
+        for (unsigned int ibin = 0; ibin < inbins.size(); ibin++)
+        {
+          outbins[ibin] = inbins[ibin] - t0_direct;
+        }
+      } // end of else if(emode="Direct")
+    } // end of if(L2 >= 0)
+
     // Copy y and e data
     outputWS->dataY(i) = inputWS->dataY(i);
     outputWS->dataE(i) = inputWS->dataE(i);
     prog.report();
     PARALLEL_END_INTERUPT_REGION
-  }
+  } // end of for (int i = 0; i < static_cast<int>(numHists); ++i)
   PARALLEL_CHECK_INTERUPT_REGION
 
   // Copy units
-  if (inputWS->getAxis(0)->unit().get()) {
+  if (inputWS->getAxis(0)->unit().get())
+  {
     outputWS->getAxis(0)->unit() = inputWS->getAxis(0)->unit();
   }
-  try {
-    if (inputWS->getAxis(1)->unit().get()) {
+  try
+  {
+    if (inputWS->getAxis(1)->unit().get())
+    {
       outputWS->getAxis(1)->unit() = inputWS->getAxis(1)->unit();
     }
-  } catch (Exception::IndexError &) {
+  }
+  catch (Exception::IndexError &)
+  {
     // OK, so this isn't a Workspace2D
   }
 
   // Assign it to the output workspace property
-  setProperty("OutputWorkspace", outputWS);
-}
+} //end of void ModeratorTzero::exec
+
 
-void ModeratorTzero::execEvent() {
+void ModeratorTzero::execEvent(const std::string &emode)
+{
   g_log.information("Processing event workspace");
 
-  const MatrixWorkspace_const_sptr matrixInputWS =
-      getProperty("InputWorkspace");
+  const MatrixWorkspace_const_sptr matrixInputWS = getProperty("InputWorkspace");
   EventWorkspace_const_sptr inputWS =
-      boost::dynamic_pointer_cast<const EventWorkspace>(matrixInputWS);
+    boost::dynamic_pointer_cast<const EventWorkspace>(matrixInputWS);
 
   // generate the output workspace pointer
   const size_t numHists = static_cast<size_t>(inputWS->getNumberHistograms());
-  Mantid::API::MatrixWorkspace_sptr matrixOutputWS =
-      getProperty("OutputWorkspace");
+  Mantid::API::MatrixWorkspace_sptr matrixOutputWS = getProperty("OutputWorkspace");
   EventWorkspace_sptr outputWS;
-  if (matrixOutputWS == matrixInputWS) {
+  if (matrixOutputWS == matrixInputWS)
+  {
     outputWS = boost::dynamic_pointer_cast<EventWorkspace>(matrixOutputWS);
-  } else {
+  }
+  else
+  {
     // Make a brand new EventWorkspace
     outputWS = boost::dynamic_pointer_cast<EventWorkspace>(
         WorkspaceFactory::Instance().create("EventWorkspace", numHists, 2, 1));
@@ -182,143 +301,194 @@ void ModeratorTzero::execEvent() {
     setProperty("OutputWorkspace", matrixOutputWS);
   }
 
-  // Get a pointer to the sample
-  IComponent_const_sptr sample = outputWS->getInstrument()->getSample();
+  // Get pointers to sample and source
+  IComponent_const_sptr source = m_instrument->getSource();
+  IComponent_const_sptr sample = m_instrument->getSample();
+  double Lss = source->getDistance(*sample); // distance from source to sample
+
+  // calculate tof shift once for all neutrons if emode==Direct
+  double t0_direct(-1);
+  if(emode=="Direct")
+  {
+    Kernel::Property *eiprop = inputWS->run().getProperty("Ei");
+    double Ei = boost::lexical_cast<double>(eiprop->value());
+    mu::Parser parser;
+    parser.DefineVar("incidentEnergy", &Ei); // associate E1 to this parser
+    parser.SetExpr(m_formula);
+    t0_direct = parser.Eval();
+  }
 
   // Loop over the spectra
   Progress prog(this, 0.0, 1.0, numHists); // report progress of algorithm
   PARALLEL_FOR1(outputWS)
-  for (int i = 0; i < static_cast<int>(numHists); ++i) {
+  for (int i = 0; i < static_cast<int>(numHists); ++i)
+  {
     PARALLEL_START_INTERUPT_REGION
     size_t wsIndex = static_cast<size_t>(i);
     EventList &evlist = outputWS->getEventList(wsIndex);
     if (evlist.getNumberEvents() > 0) // don't bother with empty lists
     {
-      double L1 = CalculateL1(
-          matrixOutputWS, wsIndex); // distance from source to sample or monitor
-      double t2 =
-          CalculateT2(matrixOutputWS, wsIndex); // time from sample to detector
-      if (t2 >= 0) // t2 < 0 when no detector info is available
+      IDetector_const_sptr det;
+      double L1(Lss); // distance from source to sample
+      double L2(-1); // distance from sample to detector
+
+      try
+      {
+        det = inputWS->getDetector(i);
+        if (det->isMonitor())
+        {
+          // redefine the sample as the monitor
+          L1 = source->getDistance(*det);
+          L2 = 0;
+        }
+        else
+        {
+          L2 = sample->getDistance(*det);
+        }
+      }
+      catch(Exception::NotFoundError &)
+      {
+        g_log.error() << "Unable to calculate distances to/from detector" << i << std::endl;
+      }
+
+      if(L2 >= 0)
       {
-        double tof, E1;
+        // One parser for each parallel processor needed (except Edirect mode)
+        double E1;
         mu::Parser parser;
-        parser.DefineVar("incidentEnergy",
-                         &E1); // associate variable E1 to this parser
+        parser.DefineVar("incidentEnergy", &E1); // associate E1 to this parser
         parser.SetExpr(m_formula);
-        E1 = m_convfactor * (L1 / m_t1min) * (L1 / m_t1min);
-        double min_t0_next = parser.Eval(); // fast neutrons are shifted by
-                                            // min_t0_next, irrespective of tof
-
-        // fix the histogram bins
-        MantidVec &x = evlist.dataX();
-        for (MantidVec::iterator iter = x.begin(); iter != x.end(); ++iter) {
-          tof = *iter;
-          if (tof < m_t1min + t2)
-            tof -= min_t0_next;
-          else
-            tof -= CalculateT0(tof, L1, t2, E1, parser);
-          *iter = tof;
-        }
 
-        MantidVec tofs = evlist.getTofs();
-        for (unsigned int itof = 0; itof < tofs.size(); itof++) {
-          tof = tofs[itof] + 0.002 * (rand() % 100 - 50); // add a [-0.1,0.1]
-                                                          // microsecond noise
-                                                          // to avoid artifacts
-                                                          // resulting from
-                                                          // original tof data
-          if (tof < m_t1min + t2)
-            tof -= min_t0_next;
+        // fast neutrons are shifted by min_t0_next, irrespective of tof
+        double v1_max = L1 / m_t1min;
+        E1 = m_convfactor * v1_max*v1_max;
+        double min_t0_next = parser.Eval();
+
+        if(emode=="Indirect")
+        {
+          double t2(-1.0); // time from sample to detector. (-1) signals error
+          if(det->isMonitor())
+          {
+            t2=0.0;
+          }
           else
-            tof -= CalculateT0(tof, L1, t2, E1, parser);
-          tofs[itof] = tof;
-        }
-        evlist.setTofs(tofs);
-        evlist.setSortOrder(Mantid::DataObjects::EventSortType::UNSORTED);
-      }
-    }
+          {
+            static const double convFact = 1.0e-6 * sqrt(2 * PhysicalConstants::meV /
+              PhysicalConstants::NeutronMass);
+            std::vector<double> wsProp = det->getNumberParameter("Efixed");
+            if (!wsProp.empty())
+            {
+              double E2 = wsProp.at(0);        //[E2]=meV
+              double v2 = convFact * sqrt(E2); //[v2]=meter/microsec
+              t2 = L2 / v2;
+            }
+            else
+            {
+              // t2 is kept to -1 if no Efixed is found
+              g_log.debug() << "Efixed not found for detector " << i << std::endl;
+            }
+          }
+          if(t2 >= 0) // t2 < 0 when no detector info is available
+          {
+            double tof;
+            // fix the histogram bins
+            MantidVec &x = evlist.dataX();
+            for (MantidVec::iterator iter = x.begin(); iter != x.end(); ++iter)
+            {
+              tof = *iter;
+              if (tof < m_t1min + t2)
+                tof -= min_t0_next;
+              else
+                tof -= CalculateT0indirect(tof, L1, t2, E1, parser);
+              *iter = tof;
+            }
+
+            MantidVec tofs = evlist.getTofs();
+            for (unsigned int itof = 0; itof < tofs.size(); itof++)
+            {
+              tof = tofs[itof];
+              if (tof < m_t1min + t2)
+                tof -= min_t0_next;
+              else
+                tof -= CalculateT0indirect(tof, L1, t2, E1, parser);
+              tofs[itof] = tof;
+            }
+            evlist.setTofs(tofs);
+            evlist.setSortOrder(Mantid::DataObjects::EventSortType::UNSORTED);
+          } // end of if( t2>= 0)
+        }// end of if(emode=="Indirect")
+        else if(emode=="Elastic")
+        {
+          double tof;
+          // Apply t0 correction to histogram bins
+          MantidVec &x = evlist.dataX();
+          for (MantidVec::iterator iter = x.begin(); iter != x.end(); ++iter)
+          {
+            tof = *iter;
+            if(tof < m_t1min *(L1+L2)/L1)
+              tof -= min_t0_next;
+            else
+              tof -= CalculateT0elastic(tof, L1+L2, E1, parser);
+            *iter = tof;
+          }
+
+          MantidVec tofs = evlist.getTofs();
+          for (unsigned int itof = 0; itof < tofs.size(); itof++)
+          {
+            // add a [-0.1,0.1] microsecond noise to avoid artifacts
+            // resulting from original tof data
+            tof = tofs[itof];
+            if(tof < m_t1min *(L1+L2)/L1)
+              tof -= min_t0_next;
+            else
+              tof -= CalculateT0elastic(tof, L1+L2, E1, parser);
+            tofs[itof] = tof;
+          }
+          evlist.setTofs(tofs);
+          evlist.setSortOrder(Mantid::DataObjects::EventSortType::UNSORTED);
+
+          MantidVec tofs_b=evlist.getTofs();
+          MantidVec xarray=evlist.readX();
+        } // end of else if(emode=="Elastic")
+        else if(emode=="Direct")
+        {
+          // fix the histogram bins
+          MantidVec &x = evlist.dataX();
+          for (MantidVec::iterator iter = x.begin(); iter != x.end(); ++iter)
+          {
+            *iter -= t0_direct;
+          }
+
+          MantidVec tofs = evlist.getTofs();
+          for (unsigned int itof = 0; itof < tofs.size(); itof++)
+          {
+            tofs[itof] -=t0_direct;
+          }
+          evlist.setTofs(tofs);
+          evlist.setSortOrder(Mantid::DataObjects::EventSortType::UNSORTED);
+        } // end of else if(emode=="Direct")
+      } // end of if(L2 >= 0)
+    } // end of if (evlist.getNumberEvents() > 0)
     prog.report();
     PARALLEL_END_INTERUPT_REGION
-  }
+  } // end of for (int i = 0; i < static_cast<int>(numHists); ++i)
   PARALLEL_CHECK_INTERUPT_REGION
   outputWS->clearMRU(); // Clears the Most Recent Used lists */
 } // end of void ModeratorTzero::execEvent()
 
-/// calculate distance from source to sample or detector
-double ModeratorTzero::CalculateL1(Mantid::API::MatrixWorkspace_sptr inputWS,
-                                   size_t i) {
-  double L1(0);
-  // Get detector position
-  IDetector_const_sptr det;
-  try {
-    det = inputWS->getDetector(i);
-  } catch (Exception::NotFoundError &) {
-    return 0;
-  }
-
-  if (det->isMonitor()) {
-    L1 = m_instrument->getSource()->getDistance(*det);
-  } else {
-    IComponent_const_sptr sample = m_instrument->getSample();
-    try {
-      L1 = m_instrument->getSource()->getDistance(*sample);
-    } catch (Exception::NotFoundError &) {
-      g_log.error("Unable to calculate source-sample distance");
-      throw Exception::InstrumentDefinitionError(
-          "Unable to calculate source-sample distance", inputWS->getTitle());
-    }
-  }
-  return L1;
-}
 
-// calculate time from sample to detector
-double ModeratorTzero::CalculateT2(MatrixWorkspace_sptr inputWS, size_t i) {
-  static const double convFact = 1.0e-6 * sqrt(2 * PhysicalConstants::meV /
-                                               PhysicalConstants::NeutronMass);
-  double t2(-1.0); // negative initialization signals error
-  // Get detector position
-  IDetector_const_sptr det;
-  try {
-    det = inputWS->getDetector(i);
-  } catch (Exception::NotFoundError &) {
-    return t2;
-  }
+/// Calculate emission time for a given detector (L1, t2)
+/// and TOF when Emode==Inelastic
+double ModeratorTzero::CalculateT0indirect(const double &tof, const double &L1,
+  const double &t2, double &E1, mu::Parser &parser) {
 
-  if (det->isMonitor()) {
-    t2 = 0.0; // t2=0.0 since there is no sample to detector path
-  } else {
-    IComponent_const_sptr sample = m_instrument->getSample();
-    // Get final energy E_f, final velocity v_f
-    std::vector<double> wsProp = det->getNumberParameter("Efixed");
-    if (!wsProp.empty()) {
-      double E2 = wsProp.at(0);        //[E2]=meV
-      double v2 = convFact * sqrt(E2); //[v2]=meter/microsec
-      try {
-        double L2 = det->getDistance(*sample);
-        t2 = L2 / v2;
-      } catch (Exception::NotFoundError &) {
-        g_log.error("Unable to calculate detector-sample distance");
-        throw Exception::InstrumentDefinitionError(
-            "Unable to calculate detector-sample distance",
-            inputWS->getTitle());
-      }
-    } else {
-      g_log.debug() << "Efixed not found for detector " << i << std::endl;
-    }
-  }
-  return t2;
-} // end of CalculateT2(const MatrixWorkspace_sptr inputWS, size_t i)
-
-/// Calculate emission time for a given detector (L1, t2) and TOF
-double ModeratorTzero::CalculateT0(const double &tof, const double &L1,
-                                   const double &t2, double &E1,
-                                   mu::Parser &parser) {
   double t0_curr, t0_next;
   t0_curr = m_tolTOF; // current iteration emission time
   t0_next = 0.0;      // next iteration emission time, initialized to zero
   size_t iiter(0);    // current iteration number
   // iterate until convergence in t0 reached
-  while (std::fabs(t0_curr - t0_next) >= m_tolTOF && iiter < m_niter) {
+  while (std::fabs(t0_curr - t0_next) >= m_tolTOF && iiter < m_niter)
+  {
     t0_curr = t0_next;
     double t1 = tof - t0_curr - t2;
     double v1 = L1 / t1;
@@ -329,6 +499,26 @@ double ModeratorTzero::CalculateT0(const double &tof, const double &L1,
   return t0_next;
 }
 
+/// Calculate emission time for a given detector (L1, t2)
+/// and TOF when Emode==Elastic
+double ModeratorTzero::CalculateT0elastic(const double &tof, const double &L12,
+  double &E1, mu::Parser &parser)
+{
+  double t0_curr, t0_next;
+  t0_curr = m_tolTOF; // current iteration emission time
+  t0_next = 0.0;      // next iteration emission time, initialized to zero
+  size_t iiter(0);    // current iteration number
+  // iterate until convergence in t0 reached
+  while (std::fabs(t0_curr - t0_next) >= m_tolTOF && iiter < m_niter)
+  {
+    t0_curr = t0_next;
+    double v1 = L12 / (tof - t0_curr); // v1 = v2 = v since emode is elastic
+    E1 = m_convfactor * v1 * v1; // Energy in meV if v1 in meter/microsecond
+    t0_next = parser.Eval();
+    iiter++;
+  }
+  return t0_next;
+}
 double ModeratorTzero::gett1min() { return m_t1min; }
 
 } // namespace Algorithms
diff --git a/Code/Mantid/Framework/Algorithms/src/NormaliseToMonitor.cpp b/Code/Mantid/Framework/Algorithms/src/NormaliseToMonitor.cpp
index 1fdb630964372ce558afdbec1f71d823653f2510..82031ba8347b9eb2ddd7937f7cf2cb77187c3407 100644
--- a/Code/Mantid/Framework/Algorithms/src/NormaliseToMonitor.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/NormaliseToMonitor.cpp
@@ -592,6 +592,8 @@ void NormaliseToMonitor::normaliseBinByBin(
 
   const size_t numHists = inputWorkspace->getNumberHistograms();
   MantidVec::size_type specLength = inputWorkspace->blocksize();
+  // Flag set when a division by 0 is found
+  bool hasZeroDivision = false;
   Progress prog(this, 0.0, 1.0, numHists);
   // Loop over spectra
   PARALLEL_FOR3(inputWorkspace, outputWorkspace, m_monitor)
@@ -636,6 +638,10 @@ void NormaliseToMonitor::normaliseBinByBin(
         const double &leftY = inY[k];
         const double &rightY = (*Y)[k];
 
+        if (rightY == 0.0) {
+          hasZeroDivision = true;
+        }
+
         // Calculate result and store in local variable to avoid overwriting
         // original data if
         // output workspace is same as one of the input ones
@@ -662,6 +668,9 @@ void NormaliseToMonitor::normaliseBinByBin(
     PARALLEL_END_INTERUPT_REGION
   } // end loop over spectra
   PARALLEL_CHECK_INTERUPT_REGION
+  if (hasZeroDivision) {
+    g_log.warning() << "Division by zero in some of the bins." << std::endl;
+  }
 }
 
 /** Calculates the overall normalization factor.
diff --git a/Code/Mantid/Framework/Algorithms/src/PhaseQuadMuon.cpp b/Code/Mantid/Framework/Algorithms/src/PhaseQuadMuon.cpp
index d59adfc4b3cfa03f485c2dd3e8eb6d1f460eef37..7095d78ca47134876a66f57157d133de3adcd8a4 100644
--- a/Code/Mantid/Framework/Algorithms/src/PhaseQuadMuon.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/PhaseQuadMuon.cpp
@@ -4,6 +4,7 @@
 #include "MantidAlgorithms/PhaseQuadMuon.h"
 #include "MantidAPI/FileProperty.h"
 #include "MantidAPI/IFileLoader.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/FrameworkManager.h"
 
@@ -468,4 +469,4 @@ void PhaseQuadMuon::regainExponential(API::MatrixWorkspace_sptr outputWs) {
   }
 }
 }
-}
\ No newline at end of file
+}
diff --git a/Code/Mantid/Framework/Algorithms/src/Q1DWeighted.cpp b/Code/Mantid/Framework/Algorithms/src/Q1DWeighted.cpp
index 4aeb5383790b5c2cb3bbb509fbc5f36b56ecd415..dcae515bf495122405f6551b330227e5e7004369 100644
--- a/Code/Mantid/Framework/Algorithms/src/Q1DWeighted.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/Q1DWeighted.cpp
@@ -269,7 +269,7 @@ void Q1DWeighted::exec() {
               // only over a forward-going cone
               if (isCone)
                 center_angle *= 2.0;
-              center_angle += wedgeOffset;
+              center_angle += M_PI / 180.0 * wedgeOffset;
               V3D sub_pix = V3D(pos.X(), pos.Y(), 0.0);
               double angle = fabs(sub_pix.angle(
                   V3D(cos(center_angle), sin(center_angle), 0.0)));
diff --git a/Code/Mantid/Framework/Algorithms/src/Rebin2D.cpp b/Code/Mantid/Framework/Algorithms/src/Rebin2D.cpp
index 65a74bebe6abe6ebcdfb31615bd248ed9897ca8c..7d32e69f65ed83f46e068ea3ad6bb7ec94cf664a 100644
--- a/Code/Mantid/Framework/Algorithms/src/Rebin2D.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/Rebin2D.cpp
@@ -3,6 +3,7 @@
 //------------------------------------------------------------------------------
 #include "MantidAlgorithms/Rebin2D.h"
 #include "MantidDataObjects/RebinnedOutput.h"
+#include "MantidDataObjects/FractionalRebinning.h"
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/RebinParamsValidator.h"
 #include "MantidKernel/PropertyWithValue.h"
@@ -11,7 +12,7 @@
 #include "MantidAPI/WorkspaceProperty.h"
 #include "MantidGeometry/Math/ConvexPolygon.h"
 #include "MantidGeometry/Math/Quadrilateral.h"
-#include "MantidGeometry/Math/LaszloIntersection.h"
+#include "MantidGeometry/Math/PolygonIntersection.h"
 
 #include <boost/math/special_functions/fpclassify.hpp>
 
@@ -23,8 +24,7 @@ DECLARE_ALGORITHM(Rebin2D)
 
 using namespace API;
 using namespace DataObjects;
-using Geometry::ConvexPolygon;
-using Geometry::Quadrilateral;
+using namespace Geometry;
 using Kernel::V2D;
 
 //--------------------------------------------------------------------------
@@ -115,7 +115,7 @@ void Rebin2D::exec() {
   m_progress = boost::shared_ptr<API::Progress>(
       new API::Progress(this, 0.0, 1.0, nreports));
 
-  // PARALLEL_FOR2(inputWS, outputWS)
+  PARALLEL_FOR2(inputWS, outputWS)
   for (int64_t i = 0; i < static_cast<int64_t>(numYBins);
        ++i) // signed for openmp
   {
@@ -131,9 +131,10 @@ void Rebin2D::exec() {
       const double x_jp1 = oldXEdges[j + 1];
       Quadrilateral inputQ = Quadrilateral(x_j, x_jp1, vlo, vhi);
       if (!useFractionalArea) {
-        rebinToOutput(inputQ, inputWS, i, j, outputWS, newYBins);
+        FractionalRebinning::rebinToOutput(inputQ, inputWS, i, j, outputWS,
+                                           newYBins);
       } else {
-        rebinToFractionalOutput(
+        FractionalRebinning::rebinToFractionalOutput(
             inputQ, inputWS, i, j,
             boost::dynamic_pointer_cast<RebinnedOutput>(outputWS), newYBins);
       }
@@ -145,7 +146,8 @@ void Rebin2D::exec() {
   if (useFractionalArea) {
     boost::dynamic_pointer_cast<RebinnedOutput>(outputWS)->finalize();
   }
-  normaliseOutput(outputWS, inputWS);
+
+  FractionalRebinning::normaliseOutput(outputWS, inputWS, m_progress);
 
   bool Transpose = this->getProperty("Transpose");
   if (Transpose) {
@@ -159,211 +161,6 @@ void Rebin2D::exec() {
   setProperty("OutputWorkspace", outputWS);
 }
 
-/**
- * Rebin the input quadrilateral to the output grid
- * @param inputQ The input polygon
- * @param inputWS The input workspace containing the input intensity values
- * @param i The index in the vertical axis direction that inputQ references
- * @param j The index in the horizontal axis direction that inputQ references
- * @param outputWS A pointer to the output workspace that accumulates the data
- * @param verticalAxis A vector containing the output vertical axis bin
- * boundaries
- */
-void Rebin2D::rebinToOutput(const Geometry::Quadrilateral &inputQ,
-                            MatrixWorkspace_const_sptr inputWS, const size_t i,
-                            const size_t j, MatrixWorkspace_sptr outputWS,
-                            const std::vector<double> &verticalAxis) {
-  const MantidVec &X = outputWS->readX(0);
-  size_t qstart(0), qend(verticalAxis.size() - 1), en_start(0),
-      en_end(X.size() - 1);
-  if (!getIntersectionRegion(outputWS, verticalAxis, inputQ, qstart, qend,
-                             en_start, en_end))
-    return;
-
-  for (size_t qi = qstart; qi < qend; ++qi) {
-    const double vlo = verticalAxis[qi];
-    const double vhi = verticalAxis[qi + 1];
-    for (size_t ei = en_start; ei < en_end; ++ei) {
-      const V2D ll(X[ei], vlo);
-      const V2D lr(X[ei + 1], vlo);
-      const V2D ur(X[ei + 1], vhi);
-      const V2D ul(X[ei], vhi);
-      const Quadrilateral outputQ(ll, lr, ur, ul);
-
-      double yValue = inputWS->readY(i)[j];
-      if (boost::math::isnan(yValue)) {
-        continue;
-      }
-      try {
-        ConvexPolygon overlap = intersectionByLaszlo(outputQ, inputQ);
-        const double weight = overlap.area() / inputQ.area();
-        yValue *= weight;
-        double eValue = inputWS->readE(i)[j] * weight;
-        const double overlapWidth = overlap.largestX() - overlap.smallestX();
-        if (inputWS->isDistribution()) {
-          yValue *= overlapWidth;
-          eValue *= overlapWidth;
-        }
-        eValue = eValue * eValue;
-        PARALLEL_CRITICAL(overlap) {
-          outputWS->dataY(qi)[ei] += yValue;
-          outputWS->dataE(qi)[ei] += eValue;
-        }
-      } catch (Geometry::NoIntersectionException &) {
-      }
-    }
-  }
-}
-
-/**
- * Rebin the input quadrilateral to the output grid
- * @param inputQ The input polygon
- * @param inputWS The input workspace containing the input intensity values
- * @param i The index in the vertical axis direction that inputQ references
- * @param j The index in the horizontal axis direction that inputQ references
- * @param outputWS A pointer to the output workspace that accumulates the data
- * @param verticalAxis A vector containing the output vertical axis bin
- * boundaries
- */
-void Rebin2D::rebinToFractionalOutput(const Geometry::Quadrilateral &inputQ,
-                                      MatrixWorkspace_const_sptr inputWS,
-                                      const size_t i, const size_t j,
-                                      RebinnedOutput_sptr outputWS,
-                                      const std::vector<double> &verticalAxis) {
-  const MantidVec &X = outputWS->readX(0);
-  size_t qstart(0), qend(verticalAxis.size() - 1), en_start(0),
-      en_end(X.size() - 1);
-  if (!getIntersectionRegion(outputWS, verticalAxis, inputQ, qstart, qend,
-                             en_start, en_end))
-    return;
-
-  for (size_t qi = qstart; qi < qend; ++qi) {
-    const double vlo = verticalAxis[qi];
-    const double vhi = verticalAxis[qi + 1];
-    for (size_t ei = en_start; ei < en_end; ++ei) {
-      const V2D ll(X[ei], vlo);
-      const V2D lr(X[ei + 1], vlo);
-      const V2D ur(X[ei + 1], vhi);
-      const V2D ul(X[ei], vhi);
-      const Quadrilateral outputQ(ll, lr, ur, ul);
-
-      double yValue = inputWS->readY(i)[j];
-      if (boost::math::isnan(yValue)) {
-        continue;
-      }
-      try {
-        ConvexPolygon overlap = intersectionByLaszlo(outputQ, inputQ);
-        const double weight = overlap.area() / inputQ.area();
-        yValue *= weight;
-        double eValue = inputWS->readE(i)[j] * weight;
-        const double overlapWidth = overlap.largestX() - overlap.smallestX();
-        // Don't do the overlap removal if already RebinnedOutput.
-        // This wreaks havoc on the data.
-        if (inputWS->isDistribution() && inputWS->id() != "RebinnedOutput") {
-          yValue *= overlapWidth;
-          eValue *= overlapWidth;
-        }
-        eValue *= eValue;
-        PARALLEL_CRITICAL(overlap) {
-          outputWS->dataY(qi)[ei] += yValue;
-          outputWS->dataE(qi)[ei] += eValue;
-          outputWS->dataF(qi)[ei] += weight;
-        }
-      } catch (Geometry::NoIntersectionException &) {
-      }
-    }
-  }
-}
-
-/**
- * Find the possible region of intersection on the output workspace for the
- * given polygon
- * @param outputWS A pointer to the output workspace
- * @param verticalAxis A vector containing the output vertical axis edges
- * @param inputQ The input polygon
- * @param qstart An output giving the starting index in the Q direction
- * @param qend An output giving the end index in the Q direction
- * @param en_start An output giving the start index in the dE direction
- * @param en_end An output giving the end index in the dE direction
- * @return True if an intersecition is possible
- */
-bool Rebin2D::getIntersectionRegion(API::MatrixWorkspace_const_sptr outputWS,
-                                    const std::vector<double> &verticalAxis,
-                                    const Geometry::Quadrilateral &inputQ,
-                                    size_t &qstart, size_t &qend,
-                                    size_t &en_start, size_t &en_end) const {
-  const MantidVec &xAxis = outputWS->readX(0);
-  const double xn_lo(inputQ.smallestX()), xn_hi(inputQ.largestX());
-  const double yn_lo(inputQ.smallestY()), yn_hi(inputQ.largestY());
-
-  if (xn_hi < xAxis.front() || xn_lo > xAxis.back() ||
-      yn_hi < verticalAxis.front() || yn_lo > verticalAxis.back())
-    return false;
-
-  MantidVec::const_iterator start_it =
-      std::upper_bound(xAxis.begin(), xAxis.end(), xn_lo);
-  MantidVec::const_iterator end_it =
-      std::upper_bound(xAxis.begin(), xAxis.end(), xn_hi);
-  en_start = 0;
-  en_end = xAxis.size() - 1;
-  if (start_it != xAxis.begin()) {
-    en_start = (start_it - xAxis.begin() - 1);
-  }
-  if (end_it != xAxis.end()) {
-    en_end = end_it - xAxis.begin();
-  }
-
-  // Q region
-  start_it = std::upper_bound(verticalAxis.begin(), verticalAxis.end(), yn_lo);
-  end_it = std::upper_bound(verticalAxis.begin(), verticalAxis.end(), yn_hi);
-  qstart = 0;
-  qend = verticalAxis.size() - 1;
-  if (start_it != verticalAxis.begin()) {
-    qstart = (start_it - verticalAxis.begin() - 1);
-  }
-  if (end_it != verticalAxis.end()) {
-    qend = end_it - verticalAxis.begin();
-  }
-
-  return true;
-}
-
-/**
- * Computes the square root of the errors and if the input was a distribution
- * this divides by the new bin-width
- * @param outputWS The workspace containing the output data
- * @param inputWS The input workspace used for testing distribution state
- */
-void Rebin2D::normaliseOutput(MatrixWorkspace_sptr outputWS,
-                              MatrixWorkspace_const_sptr inputWS) {
-  // PARALLEL_FOR1(outputWS)
-  for (int64_t i = 0; i < static_cast<int64_t>(outputWS->getNumberHistograms());
-       ++i) {
-    PARALLEL_START_INTERUPT_REGION
-
-    MantidVec &outputY = outputWS->dataY(i);
-    MantidVec &outputE = outputWS->dataE(i);
-    for (size_t j = 0; j < outputWS->blocksize(); ++j) {
-      m_progress->report("Calculating errors");
-      const double binWidth =
-          (outputWS->readX(i)[j + 1] - outputWS->readX(i)[j]);
-      double eValue = std::sqrt(outputE[j]);
-      // Don't do this for a RebinnedOutput workspace. The fractions
-      // take care of such things.
-      if (inputWS->isDistribution() && inputWS->id() != "RebinnedOutput") {
-        outputY[j] /= binWidth;
-        eValue /= binWidth;
-      }
-      outputE[j] = eValue;
-    }
-
-    PARALLEL_END_INTERUPT_REGION
-  }
-  PARALLEL_CHECK_INTERUPT_REGION
-
-  outputWS->isDistribution(inputWS->isDistribution());
-}
-
 /**
  * Setup the output workspace
  * @param parent :: A pointer to the input workspace
diff --git a/Code/Mantid/Framework/Algorithms/src/RebinByTimeAtSample.cpp b/Code/Mantid/Framework/Algorithms/src/RebinByTimeAtSample.cpp
index ff2234d2fec9fa9a206c1d2ecf0220f1f2512215..5dcefd704e8f25facc3333530213c9e15deb7a16 100644
--- a/Code/Mantid/Framework/Algorithms/src/RebinByTimeAtSample.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/RebinByTimeAtSample.cpp
@@ -1,10 +1,12 @@
 #include "MantidAlgorithms/RebinByTimeAtSample.h"
-
+#include "MantidAlgorithms/TimeAtSampleStrategyElastic.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidKernel/VectorHelper.h"
 #include "MantidKernel/Unit.h"
+#include "MantidKernel/V3D.h"
 #include <boost/make_shared.hpp>
 #include <algorithm>
+#include <cmath>
 
 namespace Mantid {
 namespace Algorithms {
@@ -61,18 +63,17 @@ void RebinByTimeAtSample::doHistogramming(IEventWorkspace_sptr inWS,
   const int histnumber = static_cast<int>(inWS->getNumberHistograms());
 
   const double tofOffset = 0;
-  auto instrument = inWS->getInstrument();
-  auto source = instrument->getSource();
-  auto sample = instrument->getSample();
-  const double L1 = source->getDistance(*sample);
+
+  TimeAtSampleStrategyElastic strategy(inWS);
 
   // Go through all the histograms and set the data
   PARALLEL_FOR2(inWS, outputWS)
   for (int i = 0; i < histnumber; ++i) {
     PARALLEL_START_INTERUPT_REGION
 
-    const double L2 = inWS->getDetector(i)->getDistance(*sample);
-    const double tofFactor = L1 / (L1 + L2);
+    Correction correction = strategy.calculate(i);
+
+    const double tofFactor = correction.factor;
 
     const IEventList *el = inWS->getEventListPtr(i);
     MantidVec y_data, e_data;
diff --git a/Code/Mantid/Framework/Algorithms/src/Rebunch.cpp b/Code/Mantid/Framework/Algorithms/src/Rebunch.cpp
index da974d7d6e453dc01a82a8c0d17b3ad1e2675f7c..51d54ce76e838afa1f458c8099579f6ca1d0fb58 100644
--- a/Code/Mantid/Framework/Algorithms/src/Rebunch.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/Rebunch.cpp
@@ -2,7 +2,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAlgorithms/Rebunch.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 #include <sstream>
 #include <numeric>
diff --git a/Code/Mantid/Framework/Algorithms/src/ReflectometryReductionOne.cpp b/Code/Mantid/Framework/Algorithms/src/ReflectometryReductionOne.cpp
index dfb1a2932196bc442fc5ce1046f0f5e833edd8ba..eff628576b6e33d9f6b040b59f9490e5b57ebb45 100644
--- a/Code/Mantid/Framework/Algorithms/src/ReflectometryReductionOne.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ReflectometryReductionOne.cpp
@@ -168,6 +168,9 @@ void ReflectometryReductionOne::init() {
                                                 Direction::Output),
                   "Calculated final theta in degrees.");
 
+  declareProperty("NormalizeByIntegratedMonitors", true,
+                  "Normalize by dividing by the integrated monitors.");
+
   declareProperty(new PropertyWithValue<bool>("CorrectDetectorPositions", true,
                                               Direction::Input),
                   "Correct detector positions using ThetaIn (if given)");
@@ -190,7 +193,40 @@ void ReflectometryReductionOne::init() {
 
   declareProperty(new PropertyWithValue<bool>("StrictSpectrumChecking", true,
                                               Direction::Input),
-                  "Enforces spectrum number checking prior to normalisation");
+                  "Enforces spectrum number checking prior to normalization");
+
+  std::vector<std::string> correctionAlgorithms = boost::assign::list_of(
+      "None")("PolynomialCorrection")("ExponentialCorrection");
+  declareProperty("CorrectionAlgorithm", "None",
+                  boost::make_shared<StringListValidator>(correctionAlgorithms),
+                  "The type of correction to perform.");
+
+  declareProperty(new ArrayProperty<double>("Polynomial"),
+                  "Coefficients to be passed to the PolynomialCorrection"
+                  " algorithm.");
+
+  declareProperty(
+      new PropertyWithValue<double>("C0", 0.0, Direction::Input),
+      "C0 value to be passed to the ExponentialCorrection algorithm.");
+
+  declareProperty(
+      new PropertyWithValue<double>("C1", 0.0, Direction::Input),
+      "C1 value to be passed to the ExponentialCorrection algorithm.");
+
+  setPropertyGroup("CorrectionAlgorithm", "Polynomial Corrections");
+  setPropertyGroup("Polynomial", "Polynomial Corrections");
+  setPropertyGroup("C0", "Polynomial Corrections");
+  setPropertyGroup("C1", "Polynomial Corrections");
+
+  setPropertySettings("Polynomial", new Kernel::EnabledWhenProperty(
+                                        "CorrectionAlgorithm", IS_EQUAL_TO,
+                                        "PolynomialCorrection"));
+  setPropertySettings(
+      "C0", new Kernel::EnabledWhenProperty("CorrectionAlgorithm", IS_EQUAL_TO,
+                                            "ExponentialCorrection"));
+  setPropertySettings(
+      "C1", new Kernel::EnabledWhenProperty("CorrectionAlgorithm", IS_EQUAL_TO,
+                                            "ExponentialCorrection"));
 
   setPropertyGroup("FirstTransmissionRun", "Transmission");
   setPropertyGroup("SecondTransmissionRun", "Transmission");
@@ -486,20 +522,26 @@ void ReflectometryReductionOne::exec() {
         detectorWS = divide(detectorWS, regionOfDirectBeamWS);
       }
     }
-    auto integrationAlg = this->createChildAlgorithm("Integration");
-    integrationAlg->initialize();
-    integrationAlg->setProperty("InputWorkspace", monitorWS);
-    integrationAlg->setProperty("RangeLower",
-                                monitorIntegrationWavelengthInterval.get<0>());
-    integrationAlg->setProperty("RangeUpper",
-                                monitorIntegrationWavelengthInterval.get<1>());
-    integrationAlg->execute();
-    MatrixWorkspace_sptr integratedMonitor =
-        integrationAlg->getProperty("OutputWorkspace");
-
-    IvsLam = divide(
-        detectorWS,
-        integratedMonitor); // Normalize by the integrated monitor counts.
+
+    const bool normalizeByIntMon = getProperty("NormalizeByIntegratedMonitors");
+    if (normalizeByIntMon) {
+      auto integrationAlg = this->createChildAlgorithm("Integration");
+      integrationAlg->initialize();
+      integrationAlg->setProperty("InputWorkspace", monitorWS);
+      integrationAlg->setProperty(
+          "RangeLower", monitorIntegrationWavelengthInterval.get<0>());
+      integrationAlg->setProperty(
+          "RangeUpper", monitorIntegrationWavelengthInterval.get<1>());
+      integrationAlg->execute();
+      MatrixWorkspace_sptr integratedMonitor =
+          integrationAlg->getProperty("OutputWorkspace");
+
+      IvsLam = divide(
+          detectorWS,
+          integratedMonitor); // Normalize by the integrated monitor counts.
+    } else {
+      IvsLam = divide(detectorWS, monitorWS);
+    }
   } else {
     // Neither TOF or Lambda? Abort.
     throw std::invalid_argument(
@@ -514,6 +556,8 @@ void ReflectometryReductionOne::exec() {
         firstTransmissionRun.get(), secondTransmissionRun, stitchingStart,
         stitchingDelta, stitchingEnd, stitchingStartOverlap,
         stitchingEndOverlap, wavelengthStep, processingCommands);
+  } else if (getPropertyValue("CorrectionAlgorithm") != "None") {
+    IvsLam = algorithmicCorrection(IvsLam);
   } else {
     g_log.warning("No transmission correction will be applied.");
   }
@@ -643,6 +687,35 @@ MatrixWorkspace_sptr ReflectometryReductionOne::transmissonCorrection(
   return normalizedIvsLam;
 }
 
+/**
+ * Perform transmission correction using alternative correction algorithms.
+ * @param IvsLam : Run workspace which is to be normalized by the results of the
+ * transmission corrections.
+ * @return Corrected workspace
+ */
+MatrixWorkspace_sptr
+ReflectometryReductionOne::algorithmicCorrection(MatrixWorkspace_sptr IvsLam) {
+
+  const std::string corrAlgName = getProperty("CorrectionAlgorithm");
+
+  IAlgorithm_sptr corrAlg = createChildAlgorithm(corrAlgName);
+  corrAlg->initialize();
+  if (corrAlgName == "PolynomialCorrection") {
+    corrAlg->setPropertyValue("Coefficients", getPropertyValue("Polynomial"));
+  } else if (corrAlgName == "ExponentialCorrection") {
+    corrAlg->setPropertyValue("C0", getPropertyValue("C0"));
+    corrAlg->setPropertyValue("C1", getPropertyValue("C1"));
+  } else {
+    throw std::runtime_error("Unknown correction algorithm: " + corrAlgName);
+  }
+
+  corrAlg->setProperty("InputWorkspace", IvsLam);
+  corrAlg->setProperty("Operation", "Divide");
+  corrAlg->execute();
+
+  return corrAlg->getProperty("OutputWorkspace");
+}
+
 /**
  @param ws1 : First workspace to compare
  @param ws2 : Second workspace to compare against
diff --git a/Code/Mantid/Framework/Algorithms/src/ReflectometryReductionOneAuto.cpp b/Code/Mantid/Framework/Algorithms/src/ReflectometryReductionOneAuto.cpp
index 884848559d96a6bdeddd81e471ca0d54f71c3b69..fcd4c481b612503e401b7d0f1d7ba2ec32581097 100644
--- a/Code/Mantid/Framework/Algorithms/src/ReflectometryReductionOneAuto.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ReflectometryReductionOneAuto.cpp
@@ -6,6 +6,7 @@
 #include "MantidKernel/BoundedValidator.h"
 #include "MantidKernel/RebinParamsValidator.h"
 #include <boost/optional.hpp>
+#include <boost/assign/list_of.hpp>
 
 namespace Mantid {
 namespace Algorithms {
@@ -106,7 +107,7 @@ void ReflectometryReductionOneAuto::init() {
 
   declareProperty(new PropertyWithValue<int>("I0MonitorIndex",
                                              Mantid::EMPTY_INT(), index_bounds),
-                  "I0 monitor index");
+                  "I0 monitor workspace index");
   declareProperty(new PropertyWithValue<std::string>("ProcessingInstructions",
                                                      "", Direction::Input),
                   "Processing commands to select and add spectrum to make a "
@@ -145,6 +146,9 @@ void ReflectometryReductionOneAuto::init() {
   declareProperty("ThetaOut", Mantid::EMPTY_DBL(),
                   "Calculated final theta in degrees.", Direction::Output);
 
+  declareProperty("NormalizeByIntegratedMonitors", true,
+                  "Normalize by dividing by the integrated monitors.");
+
   declareProperty("CorrectDetectorPositions", true,
                   "Correct detector positions using ThetaIn (if given)");
 
@@ -152,6 +156,39 @@ void ReflectometryReductionOneAuto::init() {
                   "Strict checking between spectrum numbers in input "
                   "workspaces and transmission workspaces.");
 
+  std::vector<std::string> correctionAlgorithms = boost::assign::list_of(
+      "None")("AutoDetect")("PolynomialCorrection")("ExponentialCorrection");
+  declareProperty("CorrectionAlgorithm", "AutoDetect",
+                  boost::make_shared<StringListValidator>(correctionAlgorithms),
+                  "The type of correction to perform.");
+
+  declareProperty(new ArrayProperty<double>("Polynomial"),
+                  "Coefficients to be passed to the PolynomialCorrection"
+                  " algorithm.");
+
+  declareProperty(
+      new PropertyWithValue<double>("C0", 0.0, Direction::Input),
+      "C0 value to be passed to the ExponentialCorrection algorithm.");
+
+  declareProperty(
+      new PropertyWithValue<double>("C1", 0.0, Direction::Input),
+      "C1 value to be passed to the ExponentialCorrection algorithm.");
+
+  setPropertyGroup("CorrectionAlgorithm", "Polynomial Corrections");
+  setPropertyGroup("Polynomial", "Polynomial Corrections");
+  setPropertyGroup("C0", "Polynomial Corrections");
+  setPropertyGroup("C1", "Polynomial Corrections");
+
+  setPropertySettings("Polynomial", new Kernel::EnabledWhenProperty(
+                                        "CorrectionAlgorithm", IS_EQUAL_TO,
+                                        "PolynomialCorrection"));
+  setPropertySettings(
+      "C0", new Kernel::EnabledWhenProperty("CorrectionAlgorithm", IS_EQUAL_TO,
+                                            "ExponentialCorrection"));
+  setPropertySettings(
+      "C1", new Kernel::EnabledWhenProperty("CorrectionAlgorithm", IS_EQUAL_TO,
+                                            "ExponentialCorrection"));
+
   // Polarization correction inputs --------------
   std::vector<std::string> propOptions;
   propOptions.push_back(noPolarizationCorrectionMode());
@@ -290,6 +327,8 @@ void ReflectometryReductionOneAuto::exec() {
 
   bool correct_positions = this->getProperty("CorrectDetectorPositions");
   bool strict_spectrum_checking = this->getProperty("StrictSpectrumChecking");
+  bool norm_by_int_mons = getProperty("NormalizeByIntegratedMonitors");
+  const std::string correction_algorithm = getProperty("CorrectionAlgorithm");
 
   // Pass the arguments and execute the main algorithm.
 
@@ -301,6 +340,7 @@ void ReflectometryReductionOneAuto::exec() {
     refRedOne->setProperty("OutputWorkspace", output_workspace_name);
     refRedOne->setProperty("OutputWorkspaceWavelength",
                            output_workspace_lam_name);
+    refRedOne->setProperty("NormalizeByIntegratedMonitors", norm_by_int_mons);
     refRedOne->setProperty("I0MonitorIndex", i0_monitor_index);
     refRedOne->setProperty("ProcessingInstructions", processing_commands);
     refRedOne->setProperty("WavelengthMin", wavelength_min);
@@ -316,6 +356,68 @@ void ReflectometryReductionOneAuto::exec() {
     refRedOne->setProperty("CorrectDetectorPositions", correct_positions);
     refRedOne->setProperty("StrictSpectrumChecking", strict_spectrum_checking);
 
+    if (correction_algorithm == "PolynomialCorrection") {
+      // Copy across the polynomial
+      refRedOne->setProperty("CorrectionAlgorithm", "PolynomialCorrection");
+      refRedOne->setProperty("Polynomial", getPropertyValue("Polynomial"));
+    } else if (correction_algorithm == "ExponentialCorrection") {
+      // Copy across c0 and c1
+      refRedOne->setProperty("CorrectionAlgorithm", "ExponentialCorrection");
+      refRedOne->setProperty("C0", getPropertyValue("C0"));
+      refRedOne->setProperty("C1", getPropertyValue("C1"));
+    } else if (correction_algorithm == "AutoDetect") {
+      // Figure out what to do from the instrument
+      try {
+        auto inst = in_ws->getInstrument();
+
+        const std::vector<std::string> corrVec =
+            inst->getStringParameter("correction");
+        const std::string correctionStr = !corrVec.empty() ? corrVec[0] : "";
+
+        if (correctionStr.empty())
+          throw std::runtime_error(
+              "'correction' instrument parameter was not found.");
+
+        const std::vector<std::string> polyVec =
+            inst->getStringParameter("polynomial");
+        const std::string polyStr = !polyVec.empty() ? polyVec[0] : "";
+
+        const std::vector<std::string> c0Vec = inst->getStringParameter("C0");
+        const std::string c0Str = !c0Vec.empty() ? c0Vec[0] : "";
+
+        const std::vector<std::string> c1Vec = inst->getStringParameter("C1");
+        const std::string c1Str = !c1Vec.empty() ? c1Vec[0] : "";
+
+        if (correctionStr == "polynomial" && polyStr.empty())
+          throw std::runtime_error(
+              "'polynomial' instrument parameter was not found.");
+
+        if (correctionStr == "exponential" && (c0Str.empty() || c1Str.empty()))
+          throw std::runtime_error(
+              "'C0' or 'C1' instrument parameter was not found.");
+
+        if (correctionStr == "polynomial") {
+          refRedOne->setProperty("CorrectionAlgorithm", "PolynomialCorrection");
+          refRedOne->setProperty("Polynomial", polyStr);
+        } else if (correctionStr == "exponential") {
+          refRedOne->setProperty("CorrectionAlgorithm",
+                                 "ExponentialCorrection");
+          refRedOne->setProperty("C0", c0Str);
+          refRedOne->setProperty("C1", c1Str);
+        }
+
+      } catch (std::runtime_error &e) {
+        g_log.warning() << "Could not autodetect polynomial correction method. "
+                           "Polynomial correction will not be performed. "
+                           "Reason for failure: " << e.what() << std::endl;
+        refRedOne->setProperty("CorrectionAlgorithm", "None");
+      }
+
+    } else {
+      // None was selected
+      refRedOne->setProperty("CorrectionAlgorithm", "None");
+    }
+
     if (first_ws) {
       refRedOne->setProperty("FirstTransmissionRun", first_ws);
     }
diff --git a/Code/Mantid/Framework/Algorithms/src/ReflectometryWorkflowBase.cpp b/Code/Mantid/Framework/Algorithms/src/ReflectometryWorkflowBase.cpp
index c6df17c271a8f1fe5d2e52f5dee9525d35174c87..38522663a8796941adaa4650ccfff4bf01f2df63 100644
--- a/Code/Mantid/Framework/Algorithms/src/ReflectometryWorkflowBase.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ReflectometryWorkflowBase.cpp
@@ -47,7 +47,7 @@ void ReflectometryWorkflowBase::initIndexInputs() {
   declareProperty(new PropertyWithValue<int>("I0MonitorIndex",
                                              Mantid::EMPTY_INT(),
                                              mandatoryWorkspaceIndex),
-                  "I0 monitor index");
+                  "I0 monitor workspace index");
 
   declareProperty(new PropertyWithValue<std::string>(
                       "ProcessingInstructions", "",
@@ -360,7 +360,6 @@ ReflectometryWorkflowBase::toLamMonitor(const MatrixWorkspace_sptr &toConvert,
   convertUnitsAlg->initialize();
   convertUnitsAlg->setProperty("InputWorkspace", toConvert);
   convertUnitsAlg->setProperty("Target", "Wavelength");
-  convertUnitsAlg->setProperty("AlignBins", true);
   convertUnitsAlg->execute();
 
   // Crop the to the monitor index.
@@ -374,14 +373,15 @@ ReflectometryWorkflowBase::toLamMonitor(const MatrixWorkspace_sptr &toConvert,
   cropWorkspaceAlg->execute();
   monitorWS = cropWorkspaceAlg->getProperty("OutputWorkspace");
 
+  // If min&max are both 0, we won't do the flat background normalization.
+  if (backgroundMinMax.get<0>() == 0 && backgroundMinMax.get<1>() == 0)
+    return monitorWS;
+
   // Flat background correction
   auto correctMonitorsAlg =
       this->createChildAlgorithm("CalculateFlatBackground");
   correctMonitorsAlg->initialize();
   correctMonitorsAlg->setProperty("InputWorkspace", monitorWS);
-  correctMonitorsAlg->setProperty(
-      "WorkspaceIndexList",
-      boost::assign::list_of(0).convert_to_container<std::vector<int>>());
   correctMonitorsAlg->setProperty("StartX", backgroundMinMax.get<0>());
   correctMonitorsAlg->setProperty("EndX", backgroundMinMax.get<1>());
   correctMonitorsAlg->setProperty("SkipMonitors", false);
@@ -405,25 +405,25 @@ ReflectometryWorkflowBase::toLamDetector(const std::string &processingCommands,
                                          const MatrixWorkspace_sptr &toConvert,
                                          const MinMax &wavelengthMinMax,
                                          const double &wavelengthStep) {
-  // Process the input workspace according to the processingCommands to get a
-  // detector workspace
-  auto performIndexAlg = this->createChildAlgorithm("GroupDetectors");
-  performIndexAlg->initialize();
-  performIndexAlg->setProperty("GroupingPattern", processingCommands);
-  performIndexAlg->setProperty("InputWorkspace", toConvert);
-  performIndexAlg->execute();
-  MatrixWorkspace_sptr detectorWS =
-      performIndexAlg->getProperty("OutputWorkspace");
 
-  // Now convert units. Do this after the conjoining step otherwise the x bins
-  // will not match up.
   auto convertUnitsAlg = this->createChildAlgorithm("ConvertUnits");
   convertUnitsAlg->initialize();
-  convertUnitsAlg->setProperty("InputWorkspace", detectorWS);
+  convertUnitsAlg->setProperty("InputWorkspace", toConvert);
   convertUnitsAlg->setProperty("Target", "Wavelength");
   convertUnitsAlg->setProperty("AlignBins", true);
   convertUnitsAlg->execute();
-  detectorWS = convertUnitsAlg->getProperty("OutputWorkspace");
+  MatrixWorkspace_sptr detectorWS =
+      convertUnitsAlg->getProperty("OutputWorkspace");
+
+  // Process the input workspace according to the processingCommands to get a
+  // detector workspace
+
+  auto performIndexAlg = this->createChildAlgorithm("GroupDetectors");
+  performIndexAlg->initialize();
+  performIndexAlg->setProperty("GroupingPattern", processingCommands);
+  performIndexAlg->setProperty("InputWorkspace", detectorWS);
+  performIndexAlg->execute();
+  detectorWS = performIndexAlg->getProperty("OutputWorkspace");
 
   // Crop out the lambda x-ranges now that the workspace is in wavelength.
   auto cropWorkspaceAlg = this->createChildAlgorithm("CropWorkspace");
diff --git a/Code/Mantid/Framework/Algorithms/src/RemoveExpDecay.cpp b/Code/Mantid/Framework/Algorithms/src/RemoveExpDecay.cpp
index 7d52bc4ce412e89276f8aa3d828818871d719342..71dadb9955613b4fce35af207135d8e4425411d3 100644
--- a/Code/Mantid/Framework/Algorithms/src/RemoveExpDecay.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/RemoveExpDecay.cpp
@@ -4,7 +4,7 @@
 #include <cmath>
 #include <vector>
 
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidAPI/IFunction.h"
 #include "MantidKernel/PhysicalConstants.h"
 #include "MantidKernel/ArrayProperty.h"
diff --git a/Code/Mantid/Framework/Algorithms/src/RemoveMaskedSpectra.cpp b/Code/Mantid/Framework/Algorithms/src/RemoveMaskedSpectra.cpp
index d6961fc18e1e96c75cc9a0a2cd59f787e20a6428..e93473234e4255d40f30113a3d636b602b4ccddd 100644
--- a/Code/Mantid/Framework/Algorithms/src/RemoveMaskedSpectra.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/RemoveMaskedSpectra.cpp
@@ -77,7 +77,7 @@ void RemoveMaskedSpectra::exec() {
   }
 
   // Find indices of the unmasked spectra.
-  std::vector<specid_t> indices;
+  std::vector<size_t> indices;
   makeIndexList(indices, maskedWorkspace.get());
 
   auto extract = createChildAlgorithm("ExtractSpectra", 0, 1);
@@ -85,7 +85,7 @@ void RemoveMaskedSpectra::exec() {
   extract->setRethrows(true);
 
   extract->setProperty("InputWorkspace", inputWorkspace);
-  extract->setProperty("SpectrumList", indices);
+  extract->setProperty("WorkspaceIndexList", indices);
 
   extract->execute();
 
@@ -98,12 +98,12 @@ void RemoveMaskedSpectra::exec() {
 /// @param indices :: A reference to a vector to fill with the indices.
 /// @param maskedWorkspace :: A workspace with masking information.
 void RemoveMaskedSpectra::makeIndexList(
-    std::vector<specid_t> &indices, const API::MatrixWorkspace *maskedWorkspace) {
+    std::vector<size_t> &indices, const API::MatrixWorkspace *maskedWorkspace) {
   auto mask = dynamic_cast<const DataObjects::MaskWorkspace *>(maskedWorkspace);
   if (mask) {
     for (size_t i = 0; i < mask->getNumberHistograms(); ++i) {
       if (mask->readY(i)[0] == 0.0) {
-        indices.push_back(static_cast<specid_t>(i));
+        indices.push_back(static_cast<size_t>(i));
       }
     }
   } else {
@@ -115,7 +115,7 @@ void RemoveMaskedSpectra::makeIndexList(
         continue;
       }
       if (!det->isMasked()) {
-        indices.push_back(static_cast<specid_t>(i));
+        indices.push_back(static_cast<size_t>(i));
       }
     }
   }
diff --git a/Code/Mantid/Framework/Algorithms/src/SofQCommon.cpp b/Code/Mantid/Framework/Algorithms/src/SofQCommon.cpp
index e1e1721baf0c6de1122858b1b2baf07ae4198e40..61398c61da58e6d82134cde67abe5411e475fbc4 100644
--- a/Code/Mantid/Framework/Algorithms/src/SofQCommon.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/SofQCommon.cpp
@@ -1,5 +1,6 @@
 #include "MantidAlgorithms/SofQCommon.h"
 #include "MantidAPI/Algorithm.h"
+#include "MantidAPI/MatrixWorkspace.h"
 
 namespace Mantid {
 namespace Algorithms {
diff --git a/Code/Mantid/Framework/Algorithms/src/SofQWNormalisedPolygon.cpp b/Code/Mantid/Framework/Algorithms/src/SofQWNormalisedPolygon.cpp
index 08aac98e65bce79dda83cf9cbae9348c3a58127c..ef9d2bd1ef1419de1a26c3106b50a363a2ca3581 100644
--- a/Code/Mantid/Framework/Algorithms/src/SofQWNormalisedPolygon.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/SofQWNormalisedPolygon.cpp
@@ -6,11 +6,9 @@
 #include "MantidAPI/BinEdgeAxis.h"
 #include "MantidAPI/SpectrumDetectorMapping.h"
 #include "MantidAPI/WorkspaceFactory.h"
+#include "MantidDataObjects/FractionalRebinning.h"
 #include "MantidGeometry/Instrument/DetectorGroup.h"
 #include "MantidGeometry/Instrument/ReferenceFrame.h"
-#include "MantidGeometry/Math/LaszloIntersection.h"
-#include "MantidGeometry/Math/Quadrilateral.h"
-#include "MantidGeometry/Math/Vertex2D.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidKernel/VectorHelper.h"
 
@@ -27,12 +25,6 @@ using namespace Mantid::Kernel;
 using namespace Mantid::Geometry;
 using namespace Mantid::API;
 using namespace Mantid::DataObjects;
-using Geometry::IDetector_const_sptr;
-using Geometry::DetectorGroup;
-using Geometry::DetectorGroup_const_sptr;
-using Geometry::ConvexPolygon;
-using Geometry::Quadrilateral;
-using Geometry::Vertex2D;
 
 /// Default constructor
 SofQWNormalisedPolygon::SofQWNormalisedPolygon()
@@ -43,7 +35,9 @@ SofQWNormalisedPolygon::SofQWNormalisedPolygon()
 /**
  * @return the name of the Algorithm
  */
-const std::string SofQWNormalisedPolygon::name() const { return "SofQWNormalisedPolygon"; }
+const std::string SofQWNormalisedPolygon::name() const {
+  return "SofQWNormalisedPolygon";
+}
 
 /**
  * @return the version number of the Algorithm
@@ -53,12 +47,16 @@ int SofQWNormalisedPolygon::version() const { return 1; }
 /**
  * @return the category list for the Algorithm
  */
-const std::string SofQWNormalisedPolygon::category() const { return "Inelastic"; }
+const std::string SofQWNormalisedPolygon::category() const {
+  return "Inelastic";
+}
 
 /**
  * Initialize the algorithm
  */
-void SofQWNormalisedPolygon::init() { SofQW::createCommonInputProperties(*this); }
+void SofQWNormalisedPolygon::init() {
+  SofQW::createCommonInputProperties(*this);
+}
 
 /**
  * Execute the algorithm.
@@ -102,13 +100,13 @@ void SofQWNormalisedPolygon::exec() {
   }
 
   const MantidVec &X = inputWS->readX(0);
-
   int emode = m_EmodeProperties.m_emode;
-  /* PARALLEL_FOR2(inputWS, outputWS) */
+
+  PARALLEL_FOR2(inputWS, outputWS)
   for (int64_t i = 0; i < static_cast<int64_t>(nHistos);
        ++i) // signed for openmp
   {
-    /* PARALLEL_START_INTERUPT_REGION */
+    PARALLEL_START_INTERUPT_REGION
 
     DetConstPtr detector = inputWS->getDetector(i);
     if (detector->isMasked() || detector->isMonitor()) {
@@ -159,28 +157,31 @@ void SofQWNormalisedPolygon::exec() {
 
       Quadrilateral inputQ = Quadrilateral(ll, lr, ur, ul);
 
-      this->rebinToFractionalOutput(inputQ, inputWS, i, j, outputWS, m_Qout);
+      FractionalRebinning::rebinToFractionalOutput(inputQ, inputWS, i, j,
+                                                   outputWS, m_Qout);
 
       // Find which q bin this point lies in
       const MantidVec::difference_type qIndex =
           std::upper_bound(m_Qout.begin(), m_Qout.end(), lrQ) - m_Qout.begin();
       if (qIndex != 0 && qIndex < static_cast<int>(m_Qout.size())) {
         // Add this spectra-detector pair to the mapping
+        PARALLEL_CRITICAL(SofQWNormalisedPolygon_spectramap) {
         specNumberMapping.push_back(
             outputWS->getSpectrum(qIndex - 1)->getSpectrumNo());
         detIDMapping.push_back(detector->getID());
+        }
       }
     }
     if (g_log.is(Logger::Priority::PRIO_DEBUG)) {
       g_log.debug(logStream.str());
     }
 
-    /* PARALLEL_END_INTERUPT_REGION */
+     PARALLEL_END_INTERUPT_REGION
   }
-  /* PARALLEL_CHECK_INTERUPT_REGION */
+  PARALLEL_CHECK_INTERUPT_REGION
 
   outputWS->finalize();
-  this->normaliseOutput(outputWS, inputWS);
+  FractionalRebinning::normaliseOutput(outputWS, inputWS, m_progress);
 
   // Set the output spectrum-detector mapping
   SpectrumDetectorMapping outputDetectorMap(specNumberMapping, detIDMapping);
@@ -197,8 +198,10 @@ void SofQWNormalisedPolygon::exec() {
  * @param azimuthal :: The value of the azimuthual angle
  * @return The value of Q
  */
-double SofQWNormalisedPolygon::calculateQ(const double efixed, int emode, const double deltaE,
-                          const double twoTheta, const double azimuthal) const {
+double SofQWNormalisedPolygon::calculateQ(const double efixed, int emode,
+                                          const double deltaE,
+                                          const double twoTheta,
+                                          const double azimuthal) const {
   double ki = 0.0;
   double kf = 0.0;
   if (emode == 1) {
@@ -301,8 +304,8 @@ void SofQWNormalisedPolygon::initAngularCachesNonPSD(
  * it calculates the two-theta and azimuthal angle widths.
  * @param workspace : the workspace containing the needed detector information
  */
-void
-SofQWNormalisedPolygon::initAngularCachesPSD(const API::MatrixWorkspace_const_sptr &workspace) {
+void SofQWNormalisedPolygon::initAngularCachesPSD(
+    const API::MatrixWorkspace_const_sptr &workspace) {
   // Trigger a build of the nearst neighbors outside the OpenMP loop
   const int numNeighbours = 4;
   const size_t nHistos = workspace->getNumberHistograms();
@@ -374,10 +377,9 @@ SofQWNormalisedPolygon::initAngularCachesPSD(const API::MatrixWorkspace_const_sp
  * parameters
  *  @return A pointer to the newly-created workspace
  */
-RebinnedOutput_sptr
-SofQWNormalisedPolygon::setUpOutputWorkspace(API::MatrixWorkspace_const_sptr inputWorkspace,
-                             const std::vector<double> &binParams,
-                             std::vector<double> &newAxis) {
+RebinnedOutput_sptr SofQWNormalisedPolygon::setUpOutputWorkspace(
+    API::MatrixWorkspace_const_sptr inputWorkspace,
+    const std::vector<double> &binParams, std::vector<double> &newAxis) {
   // Create vector to hold the new X axis values
   MantidVecPtr xAxis;
   xAxis.access() = inputWorkspace->readX(0);
diff --git a/Code/Mantid/Framework/Algorithms/src/SofQWPolygon.cpp b/Code/Mantid/Framework/Algorithms/src/SofQWPolygon.cpp
index 175ca23a85b631d0ee4618805eb2506054c1ca90..aaedd49c8bab9fbfd3834e95894b227d9f69c5fb 100644
--- a/Code/Mantid/Framework/Algorithms/src/SofQWPolygon.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/SofQWPolygon.cpp
@@ -5,10 +5,10 @@
 #include "MantidAlgorithms/SofQW.h"
 #include "MantidAPI/SpectraAxis.h"
 #include "MantidAPI/SpectrumDetectorMapping.h"
-#include "MantidGeometry/Math/LaszloIntersection.h"
+#include "MantidGeometry/Math/PolygonIntersection.h"
 #include "MantidGeometry/Math/Quadrilateral.h"
-#include "MantidGeometry/Math/Vertex2D.h"
 #include "MantidGeometry/Instrument/DetectorGroup.h"
+#include "MantidDataObjects/FractionalRebinning.h"
 
 namespace Mantid {
 namespace Algorithms {
@@ -16,14 +16,9 @@ namespace Algorithms {
 // Register the algorithm into the AlgorithmFactory
 DECLARE_ALGORITHM(SofQWPolygon)
 
-using namespace Mantid::Kernel;
 using namespace Mantid::API;
-using Geometry::IDetector_const_sptr;
-using Geometry::DetectorGroup;
-using Geometry::DetectorGroup_const_sptr;
-using Geometry::ConvexPolygon;
-using Geometry::Quadrilateral;
-using Geometry::Vertex2D;
+using namespace Mantid::Kernel;
+using namespace Mantid::Geometry;
 
 /// Default constructor
 SofQWPolygon::SofQWPolygon()
@@ -79,11 +74,11 @@ void SofQWPolygon::exec() {
     qCalculator = &SofQWPolygon::calculateIndirectQ;
   }
 
-  /* PARALLEL_FOR2(inputWS, outputWS) */
+  PARALLEL_FOR2(inputWS, outputWS)
   for (int64_t i = 0; i < static_cast<int64_t>(nTheta);
        ++i) // signed for openmp
   {
-    /* PARALLEL_START_INTERUPT_REGION */
+    PARALLEL_START_INTERUPT_REGION
 
     const double theta = m_thetaPts[i];
     if (theta < 0.0) // One to skip
@@ -113,24 +108,28 @@ void SofQWPolygon::exec() {
       const V2D ul(dE_j, (this->*qCalculator)(efixed, dE_j, thetaUpper, 0.0));
       Quadrilateral inputQ = Quadrilateral(ll, lr, ur, ul);
 
-      rebinToOutput(inputQ, inputWS, i, j, outputWS, m_Qout);
+      DataObjects::FractionalRebinning::rebinToOutput(inputQ, inputWS, i, j,
+                                                      outputWS, m_Qout);
 
       // Find which q bin this point lies in
       const MantidVec::difference_type qIndex =
           std::upper_bound(m_Qout.begin(), m_Qout.end(), lrQ) - m_Qout.begin();
       if (qIndex != 0 && qIndex < static_cast<int>(m_Qout.size())) {
         // Add this spectra-detector pair to the mapping
-        specNumberMapping.push_back(
-            outputWS->getSpectrum(qIndex - 1)->getSpectrumNo());
-        detIDMapping.push_back(det->getID());
+        PARALLEL_CRITICAL(SofQWPolygon_spectramap) {
+          specNumberMapping.push_back(
+              outputWS->getSpectrum(qIndex - 1)->getSpectrumNo());
+          detIDMapping.push_back(det->getID());
+        }
       }
     }
 
-    /* PARALLEL_END_INTERUPT_REGION */
+    PARALLEL_END_INTERUPT_REGION
   }
-  /* PARALLEL_CHECK_INTERUPT_REGION */
+  PARALLEL_CHECK_INTERUPT_REGION
 
-  normaliseOutput(outputWS, inputWS);
+  DataObjects::FractionalRebinning::normaliseOutput(outputWS, inputWS,
+                                                    m_progress);
 
   // Set the output spectrum-detector mapping
   SpectrumDetectorMapping outputDetectorMap(specNumberMapping, detIDMapping);
diff --git a/Code/Mantid/Framework/Algorithms/src/StripPeaks.cpp b/Code/Mantid/Framework/Algorithms/src/StripPeaks.cpp
index 884d0aac8216db330f551651536bcd22542e0c45..9eb048765843bda13bcd36ead72e5578630f7b0f 100644
--- a/Code/Mantid/Framework/Algorithms/src/StripPeaks.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/StripPeaks.cpp
@@ -1,6 +1,7 @@
 #include "MantidAlgorithms/StripPeaks.h"
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/PhysicalConstants.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidKernel/BoundedValidator.h"
 #include "MantidKernel/ListValidator.h"
diff --git a/Code/Mantid/Framework/Algorithms/src/SumSpectra.cpp b/Code/Mantid/Framework/Algorithms/src/SumSpectra.cpp
index 4f6fd41ec46d165ff2cbe7338ee47806115eb52c..7388ab59c7f2e88fa2bee3e86cdbc770f386f2ba 100644
--- a/Code/Mantid/Framework/Algorithms/src/SumSpectra.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/SumSpectra.cpp
@@ -18,9 +18,9 @@ using namespace API;
 using namespace DataObjects;
 
 SumSpectra::SumSpectra()
-    : API::Algorithm(), m_outSpecId(0), m_MinSpec(0), m_MaxSpec(0),
+    : API::Algorithm(), m_outSpecId(0), m_minSpec(0), m_maxSpec(0),
       m_keepMonitors(false), m_numberOfSpectra(0), m_yLength(0), m_indices(),
-      m_CalculateWeightedSum(false) {}
+      m_calculateWeightedSum(false) {}
 
 /** Initialisation method.
  *
@@ -72,8 +72,8 @@ void SumSpectra::init() {
  */
 void SumSpectra::exec() {
   // Try and retrieve the optional properties
-  m_MinSpec = getProperty("StartWorkspaceIndex");
-  m_MaxSpec = getProperty("EndWorkspaceIndex");
+  m_minSpec = getProperty("StartWorkspaceIndex");
+  m_maxSpec = getProperty("EndWorkspaceIndex");
   const std::vector<int> indices_list = getProperty("ListOfWorkspaceIndices");
 
   m_keepMonitors = getProperty("IncludeMonitors");
@@ -85,30 +85,30 @@ void SumSpectra::exec() {
   this->m_yLength = static_cast<int>(localworkspace->blocksize());
 
   // Check 'StartSpectrum' is in range 0-m_numberOfSpectra
-  if (m_MinSpec > m_numberOfSpectra) {
+  if (m_minSpec > m_numberOfSpectra) {
     g_log.warning("StartWorkspaceIndex out of range! Set to 0.");
-    m_MinSpec = 0;
+    m_minSpec = 0;
   }
 
   if (indices_list.empty()) {
     // If no list was given and no max, just do all.
-    if (isEmpty(m_MaxSpec))
-      m_MaxSpec = m_numberOfSpectra - 1;
+    if (isEmpty(m_maxSpec))
+      m_maxSpec = m_numberOfSpectra - 1;
   }
 
-  // Something for m_MaxSpec was given but it is out of range?
-  if (!isEmpty(m_MaxSpec) &&
-      (m_MaxSpec > m_numberOfSpectra - 1 || m_MaxSpec < m_MinSpec)) {
+  // Something for m_maxSpec was given but it is out of range?
+  if (!isEmpty(m_maxSpec) &&
+      (m_maxSpec > m_numberOfSpectra - 1 || m_maxSpec < m_minSpec)) {
     g_log.warning("EndWorkspaceIndex out of range! Set to max Workspace Index");
-    m_MaxSpec = m_numberOfSpectra;
+    m_maxSpec = m_numberOfSpectra;
   }
 
   // Make the set of indices to sum up from the list
   this->m_indices.insert(indices_list.begin(), indices_list.end());
 
   // And add the range too, if any
-  if (!isEmpty(m_MaxSpec)) {
-    for (int i = m_MinSpec; i <= m_MaxSpec; i++)
+  if (!isEmpty(m_maxSpec)) {
+    for (int i = m_minSpec; i <= m_maxSpec; i++)
       this->m_indices.insert(i);
   }
 
@@ -118,12 +118,12 @@ void SumSpectra::exec() {
       << "Spectra remapping gives single spectra with spectra number: "
       << m_outSpecId << "\n";
 
-  m_CalculateWeightedSum = getProperty("WeightedSum");
+  m_calculateWeightedSum = getProperty("WeightedSum");
 
   EventWorkspace_const_sptr eventW =
       boost::dynamic_pointer_cast<const EventWorkspace>(localworkspace);
   if (eventW) {
-    m_CalculateWeightedSum = false;
+    m_calculateWeightedSum = false;
     this->execEvent(eventW, this->m_indices);
   } else {
     //-------Workspace 2D mode -----
@@ -131,7 +131,7 @@ void SumSpectra::exec() {
     // Create the 2D workspace for the output
     MatrixWorkspace_sptr outputWorkspace =
         API::WorkspaceFactory::Instance().create(
-            localworkspace, 1, localworkspace->readX(0).size(),
+            localworkspace, 1, localworkspace->readX(m_minSpec).size(),
             this->m_yLength);
     size_t numSpectra(0); // total number of processed spectra
     size_t numMasked(0);  // total number of the masked and skipped spectra
@@ -228,7 +228,7 @@ void SumSpectra::doWorkspace2D(MatrixWorkspace_const_sptr localworkspace,
 
   MantidVec Weight;
   std::vector<size_t> nZeros;
-  if (m_CalculateWeightedSum) {
+  if (m_calculateWeightedSum) {
     Weight.assign(YSum.size(), 0);
     nZeros.assign(YSum.size(), 0);
   }
@@ -238,7 +238,7 @@ void SumSpectra::doWorkspace2D(MatrixWorkspace_const_sptr localworkspace,
 
   // Loop over spectra
   std::set<int>::iterator it;
-  // for (int i = m_MinSpec; i <= m_MaxSpec; ++i)
+  // for (int i = m_minSpec; i <= m_maxSpec; ++i)
   for (it = this->m_indices.begin(); it != this->m_indices.end(); ++it) {
     int i = *it;
     // Don't go outside the range.
@@ -267,7 +267,7 @@ void SumSpectra::doWorkspace2D(MatrixWorkspace_const_sptr localworkspace,
     // Retrieve the spectrum into a vector
     const MantidVec &YValues = localworkspace->readY(i);
     const MantidVec &YErrors = localworkspace->readE(i);
-    if (m_CalculateWeightedSum) {
+    if (m_calculateWeightedSum) {
       for (int k = 0; k < this->m_yLength; ++k) {
         if (YErrors[k] != 0) {
           double errsq = YErrors[k] * YErrors[k];
@@ -291,7 +291,7 @@ void SumSpectra::doWorkspace2D(MatrixWorkspace_const_sptr localworkspace,
     progress.report();
   }
 
-  if (m_CalculateWeightedSum) {
+  if (m_calculateWeightedSum) {
     numZeros = 0;
     for (size_t i = 0; i < Weight.size(); i++) {
       if (nZeros[i] == 0)
@@ -343,7 +343,7 @@ void SumSpectra::doRebinnedOutput(MatrixWorkspace_sptr outputWorkspace,
   MantidVec &FracSum = outWS->dataF(0);
   MantidVec Weight;
   std::vector<size_t> nZeros;
-  if (m_CalculateWeightedSum) {
+  if (m_calculateWeightedSum) {
     Weight.assign(YSum.size(), 0);
     nZeros.assign(YSum.size(), 0);
   }
@@ -353,7 +353,7 @@ void SumSpectra::doRebinnedOutput(MatrixWorkspace_sptr outputWorkspace,
 
   // Loop over spectra
   std::set<int>::iterator it;
-  // for (int i = m_MinSpec; i <= m_MaxSpec; ++i)
+  // for (int i = m_minSpec; i <= m_maxSpec; ++i)
   for (it = m_indices.begin(); it != m_indices.end(); ++it) {
     int i = *it;
     // Don't go outside the range.
@@ -384,7 +384,7 @@ void SumSpectra::doRebinnedOutput(MatrixWorkspace_sptr outputWorkspace,
     const MantidVec &YErrors = localworkspace->readE(i);
     const MantidVec &FracArea = inWS->readF(i);
 
-    if (m_CalculateWeightedSum) {
+    if (m_calculateWeightedSum) {
       for (int k = 0; k < this->m_yLength; ++k) {
         if (YErrors[k] != 0) {
           double errsq = YErrors[k] * YErrors[k] * FracArea[k] * FracArea[k];
@@ -411,7 +411,7 @@ void SumSpectra::doRebinnedOutput(MatrixWorkspace_sptr outputWorkspace,
     progress.report();
   }
 
-  if (m_CalculateWeightedSum) {
+  if (m_calculateWeightedSum) {
     numZeros = 0;
     for (size_t i = 0; i < Weight.size(); i++) {
       if (nZeros[i] == 0)
@@ -451,7 +451,7 @@ void SumSpectra::execEvent(EventWorkspace_const_sptr localworkspace,
   size_t numSpectra(0);
   size_t numMasked(0);
   size_t numZeros(0);
-  // for (int i = m_MinSpec; i <= m_MaxSpec; ++i)
+  // for (int i = m_minSpec; i <= m_maxSpec; ++i)
   for (it = indices.begin(); it != indices.end(); ++it) {
     int i = *it;
     // Don't go outside the range.
diff --git a/Code/Mantid/Framework/Algorithms/src/TimeAtSampleStrategyDirect.cpp b/Code/Mantid/Framework/Algorithms/src/TimeAtSampleStrategyDirect.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..73dd04c68d420dffc7aa8ead3d90aa578cfd7cf6
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/src/TimeAtSampleStrategyDirect.cpp
@@ -0,0 +1,54 @@
+#include "MantidAlgorithms/TimeAtSampleStrategyDirect.h"
+#include "MantidGeometry/IDetector.h"
+#include "MantidGeometry/IComponent.h"
+#include "MantidGeometry/Instrument.h"
+#include "MantidGeometry/Instrument/ReferenceFrame.h"
+#include "MantidKernel/Logger.h"
+#include "MantidKernel/PhysicalConstants.h"
+#include "MantidKernel/Property.h"
+#include "MantidKernel/V3D.h"
+#include "MantidAPI/MatrixWorkspace.h"
+#include <cmath>
+
+using namespace Mantid::Kernel;
+using namespace Mantid::Geometry;
+using namespace Mantid::API;
+
+namespace Mantid {
+namespace Algorithms {
+
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+TimeAtSampleStrategyDirect::TimeAtSampleStrategyDirect(
+    MatrixWorkspace_const_sptr ws, double ei)
+    :  m_constShift(0) {
+
+  // Get L1
+  V3D samplepos = ws->getInstrument()->getSample()->getPos();
+  V3D sourcepos = ws->getInstrument()->getSource()->getPos();
+  double l1 = samplepos.distance(sourcepos);
+
+  // Calculate constant (to all spectra) shift
+  m_constShift = l1 / std::sqrt(ei * 2. * PhysicalConstants::meV /
+                                PhysicalConstants::NeutronMass);
+}
+
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+TimeAtSampleStrategyDirect::~TimeAtSampleStrategyDirect() {}
+
+/**
+ * @brief Calculate corrections to get a Time at Sample for a DG instrument.
+ * @return Correction struct
+ */
+Correction Mantid::Algorithms::TimeAtSampleStrategyDirect::calculate(
+    const size_t&) const {
+
+  // Correction is L1 and Ei dependent only. Detector positions are not required.
+  return Correction(0, m_constShift);
+}
+
+} // namespace Algorithms
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/Algorithms/src/TimeAtSampleStrategyElastic.cpp b/Code/Mantid/Framework/Algorithms/src/TimeAtSampleStrategyElastic.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d96227655c7769f905acefa54048dbd96ab0f3bc
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/src/TimeAtSampleStrategyElastic.cpp
@@ -0,0 +1,77 @@
+#include "MantidAlgorithms/TimeAtSampleStrategyElastic.h"
+#include "MantidGeometry/IDetector.h"
+#include "MantidGeometry/IComponent.h"
+#include "MantidGeometry/Instrument.h"
+#include "MantidGeometry/Instrument/ReferenceFrame.h"
+#include "MantidKernel/V3D.h"
+#include "MantidAPI/MatrixWorkspace.h"
+
+using namespace Mantid::Kernel;
+using namespace Mantid::Geometry;
+using namespace Mantid::API;
+
+namespace {
+/**
+ * For detectors (not monitor detectors). neutrons interact with the sample
+ *first. so the ratio we want to
+ * calculate is L1 / (L1 + L2) in order to calculate a TatSample for a neturon
+ *based on it's recorded TOF at the detector.
+ *
+ * For monitors. The L2 scattering distance is of no consequence. The ratio we
+ *want to calculate is L1m / L1s where L1m
+ * is the L1 for the monitor, and L1s is the L1 for the sample.
+ *
+ *
+ * @param detector : Detector
+ * @param source : Source
+ * @param L1s : L1 distance Source - Sample
+ * @return Calculated ratio
+ */
+double calculateTOFRatio(const IDetector &detector, const IComponent &source,
+                         const IComponent &sample, const double &L1s,
+                         const V3D &beamDir) {
+  if (detector.isMonitor()) {
+    double L1m = beamDir.scalar_prod(source.getPos() - detector.getPos());
+    return std::abs(L1s / L1m);
+  } else {
+    const double L2 = sample.getPos().distance(detector.getPos());
+    return L1s / (L1s + L2);
+  }
+}
+}
+
+namespace Mantid {
+namespace Algorithms {
+
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+TimeAtSampleStrategyElastic::TimeAtSampleStrategyElastic(
+    Mantid::API::MatrixWorkspace_const_sptr ws)
+    : m_ws(ws) {}
+
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+TimeAtSampleStrategyElastic::~TimeAtSampleStrategyElastic() {}
+
+/**
+ * @brief Calculate correction
+ * @param workspace_index
+ * @return Correction
+ */
+Correction
+TimeAtSampleStrategyElastic::calculate(const size_t &workspace_index) const {
+  auto instrument = m_ws->getInstrument();
+  auto source = instrument->getSource();
+  auto sample = instrument->getSample();
+  const double L1s = source->getDistance(*sample);
+  auto refFrame = instrument->getReferenceFrame();
+  const V3D &beamDir = refFrame->vecPointingAlongBeam();
+  const double factor = calculateTOFRatio(*m_ws->getDetector(workspace_index),
+                                          *source, *sample, L1s, beamDir);
+  return Correction(0, factor);
+}
+
+} // namespace Algorithms
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/Algorithms/src/TimeAtSampleStrategyIndirect.cpp b/Code/Mantid/Framework/Algorithms/src/TimeAtSampleStrategyIndirect.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4935d2ec0878998a50a3ec9ba70686236cc1165d
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/src/TimeAtSampleStrategyIndirect.cpp
@@ -0,0 +1,83 @@
+#include "MantidAlgorithms/TimeAtSampleStrategyIndirect.h"
+#include "MantidGeometry/IDetector.h"
+#include "MantidGeometry/IComponent.h"
+#include "MantidGeometry/Instrument.h"
+#include "MantidGeometry/Instrument/ReferenceFrame.h"
+#include "MantidGeometry/Instrument/ParameterMap.h"
+#include "MantidKernel/Logger.h"
+#include "MantidKernel/PhysicalConstants.h"
+#include "MantidKernel/V3D.h"
+#include "MantidAPI/MatrixWorkspace.h"
+#include <cmath>
+#include <boost/shared_ptr.hpp>
+#include <sstream>
+
+using namespace Mantid::Kernel;
+using namespace Mantid::Geometry;
+using namespace Mantid::API;
+
+namespace Mantid {
+
+namespace API {
+class MatrixWorkspace;
+}
+
+namespace Algorithms {
+
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+TimeAtSampleStrategyIndirect::TimeAtSampleStrategyIndirect(
+    MatrixWorkspace_const_sptr ws)
+    : m_ws(ws) {}
+
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+TimeAtSampleStrategyIndirect::~TimeAtSampleStrategyIndirect() {}
+
+Correction
+TimeAtSampleStrategyIndirect::calculate(const size_t &workspace_index) const {
+
+  // A constant among all spectra
+  double twomev_d_mass =
+      2. * PhysicalConstants::meV / PhysicalConstants::NeutronMass;
+  V3D samplepos = m_ws->getInstrument()->getSample()->getPos();
+
+  // Get the parameter map
+  const ParameterMap &pmap = m_ws->constInstrumentParameters();
+
+  double shift;
+  IDetector_const_sptr det = m_ws->getDetector(workspace_index);
+  if (!det->isMonitor()) {
+    // Get E_fix
+    double efix = 0.;
+    try {
+      Parameter_sptr par = pmap.getRecursive(det.get(), "Efixed");
+      if (par) {
+        efix = par->value<double>();
+      }
+    } catch (std::runtime_error &) {
+      // Throws if a DetectorGroup, use single provided value
+      std::stringstream errmsg;
+      errmsg << "Inelastic instrument detector " << det->getID()
+             << " of spectrum " << workspace_index << " does not have EFixed ";
+      throw std::runtime_error(errmsg.str());
+    }
+
+    // Get L2
+    double l2 = det->getPos().distance(samplepos);
+
+    // Calculate shift
+    shift = -1. * l2 / sqrt(efix * twomev_d_mass);
+
+  } else {
+    std::stringstream errormsg;
+    errormsg << "Workspace index " << workspace_index << " is a monitor. ";
+    throw std::invalid_argument(errormsg.str());
+  }
+  return Correction(1.0, shift);
+}
+
+} // namespace Algorithms
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/Algorithms/test/AddNoteTest.h b/Code/Mantid/Framework/Algorithms/test/AddNoteTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..f3f0c8e1ae63f72baa739cd4ae4bca79e93d0769
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/test/AddNoteTest.h
@@ -0,0 +1,141 @@
+#ifndef MANTID_ALGORITHMS_ADDNOTETEST_H_
+#define MANTID_ALGORITHMS_ADDNOTETEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include "MantidAlgorithms/AddNote.h"
+#include "MantidKernel/TimeSeriesProperty.h"
+#include "MantidTestHelpers/WorkspaceCreationHelper.h"
+
+class AddNoteTest : public CxxTest::TestSuite {
+
+private:
+  enum UpdateType { Update, Delete };
+
+public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static AddNoteTest *createSuite() { return new AddNoteTest(); }
+  static void destroySuite(AddNoteTest *suite) { delete suite; }
+
+  void test_delete_existing_removes_complete_log_first() {
+    auto ws = WorkspaceCreationHelper::Create2DWorkspace(10, 10);
+    TS_ASSERT_THROWS_NOTHING(executeAlgorithm(
+        ws, "Test Name", "2010-09-14T04:20:12", "First Test String"));
+    checkLogWithEntryExists<std::string>(ws, "Test Name", "2010-09-14T04:20:12", 0,
+                                         "First Test String", 0);
+    TS_ASSERT_THROWS_NOTHING(executeAlgorithm(
+        ws, "Test Name", "2010-09-14T04:20:19", "Second Test String", Delete));
+    checkLogWithEntryExists<std::string>(ws, "Test Name", "2010-09-14T04:20:19", 0,
+                                         "Second Test String", 0);
+  }
+
+  void test_empty_time_property_produces_current_time_in_log_output() {
+    auto ws = WorkspaceCreationHelper::Create2DWorkspace(10, 10);
+	
+	//Get Current Date Time
+	namespace pt = boost::posix_time;
+    auto dateTimeObj = Mantid::Kernel::DateAndTime(pt::second_clock::local_time());
+    std::string time = dateTimeObj.toISO8601String();
+	std::string timeOffset = time;
+    TS_ASSERT_THROWS_NOTHING(executeAlgorithm(ws, "Test Time", "", "Test String"));
+    checkLogWithEntryExists<std::string>(ws, "Test Time", time, 1, "Test String", 0);
+  }
+
+  //-------------------------- Failure cases----------------------------
+  void test_empty_log_name_not_allowed() {
+    Mantid::Algorithms::AddNote alg;
+    TS_ASSERT_THROWS_NOTHING(alg.initialize());
+
+    TS_ASSERT_THROWS(alg.setPropertyValue("Name", ""), std::invalid_argument);
+  }
+
+  void test_empty_value_not_allowed() {
+    Mantid::Algorithms::AddNote alg;
+    TS_ASSERT_THROWS_NOTHING(alg.initialize());
+
+    TS_ASSERT_THROWS(alg.setPropertyValue("Value", ""), std::invalid_argument);
+  }
+
+  void test_empty_time_is_allowed() {
+    Mantid::Algorithms::AddNote alg;
+    TS_ASSERT_THROWS_NOTHING(alg.initialize());
+    TS_ASSERT_THROWS_NOTHING(alg.setPropertyValue("Time", ""));
+  }
+
+  void test_algorithm_fails_if_log_exists_but_is_not_a_time_series() {
+    auto ws = WorkspaceCreationHelper::Create2DWorkspace(10, 10);
+    auto &run = ws->mutableRun();
+    run.addProperty<std::string>("Test Name", "Test");
+    TS_ASSERT_THROWS(
+        executeAlgorithm(ws, "Test Name", "2010-09-14T04:20:12", "Test String"),
+        std::invalid_argument);
+  }
+
+  void test_Init() {
+    Mantid::Algorithms::AddNote alg;
+    TS_ASSERT_THROWS_NOTHING(alg.initialize());
+    TS_ASSERT(alg.isInitialized());
+  }
+
+private:
+  void executeAlgorithm(Mantid::API::MatrixWorkspace_sptr testWS,
+                        const std::string &logName, const std::string &logTime,
+                        const std::string logValue,
+                        const UpdateType update = Update) {
+
+    Mantid::Algorithms::AddNote alg;
+    alg.setChild(true);
+    TS_ASSERT_THROWS_NOTHING(alg.initialize());
+    TS_ASSERT(alg.isInitialized());
+
+    alg.setProperty("Workspace", testWS);
+    alg.setPropertyValue("Name", logName);
+    alg.setPropertyValue("Time", logTime);
+    alg.setProperty("Value", logValue);
+    if (update == Delete) {
+      alg.setProperty("DeleteExisting", true);
+    }
+    alg.setRethrows(true);
+    alg.execute();
+  }
+
+  template <typename T>
+  void checkLogWithEntryExists(Mantid::API::MatrixWorkspace_sptr testWS,
+                               const std::string &logName,
+                               const std::string &logStartTime,
+							   const int &logEndTime,
+                               const std::string logValue,
+                               const size_t position) {
+    using Mantid::Kernel::DateAndTime;
+    using Mantid::Kernel::TimeSeriesProperty;
+
+    const auto &run = testWS->run();
+    TSM_ASSERT("Run does not contain the expected log entry",
+               run.hasProperty(logName));
+
+    auto *prop = run.getLogData(logName);
+    auto *timeSeries = dynamic_cast<TimeSeriesProperty<T> *>(prop);
+    TSM_ASSERT(
+        "A log entry with the given name exists but it is not a time series",
+        timeSeries);
+    auto times = timeSeries->timesAsVector();
+    TS_ASSERT(times.size() >= position + 1);
+    auto values = timeSeries->valuesAsVector();
+	if(logEndTime == 0){
+		TS_ASSERT_EQUALS(DateAndTime(logStartTime), times[position]);
+	}else{
+		int logMinTime = 0, logMaxTime = 0;
+		TS_ASSERT_THROWS_NOTHING(logMinTime = (times[position].toISO8601String().at(15)) - '0' );
+		TS_ASSERT_THROWS_NOTHING(logMaxTime = (logStartTime.at(15) + logEndTime) - '0');
+		const int remainder = logMaxTime - logMinTime;
+		TS_ASSERT_LESS_THAN_EQUALS(0, remainder);
+		
+	}
+    TS_ASSERT(values.size() >= position + 1);
+    TS_ASSERT_EQUALS(logValue, values[position]);
+  }
+};
+
+
+
+#endif /* MANTID_ALGORITHMS_ADDNOTETEST_H_ */
\ No newline at end of file
diff --git a/Code/Mantid/Framework/Algorithms/test/AddSampleLogTest.h b/Code/Mantid/Framework/Algorithms/test/AddSampleLogTest.h
index 59b1298df8a23cbdf57d0229de8869fd2d36f100..a3d1eee5ef7e86ec80a46c6d05f72ae96c1c06b9 100644
--- a/Code/Mantid/Framework/Algorithms/test/AddSampleLogTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/AddSampleLogTest.h
@@ -71,9 +71,18 @@ public:
     ExecuteAlgorithm(ws, "Another Name", "Number Series", "123456789", 123456789);
   }
 
+  void test_Units()
+  {
+    MatrixWorkspace_sptr ws = WorkspaceCreationHelper::Create2DWorkspace(10,10);
+    ws->mutableRun().setStartAndEndTime(DateAndTime("2013-12-18T13:40:00"),DateAndTime("2013-12-18T13:42:00"));
+    ExecuteAlgorithm(ws, "My Name", "Number Series", "1.234", 1.234,false,"myUnit");
+    ExecuteAlgorithm(ws, "My New Name", "Number", "963", 963,false,"differentUnit");
+    ExecuteAlgorithm(ws, "My Name", "String", "My Value", 0.0,false,"stringUnit");
+  }
+
   template<typename T>
   void ExecuteAlgorithm(MatrixWorkspace_sptr testWS, std::string LogName, std::string LogType, std::string LogText,
-      T expectedValue, bool fails=false)
+      T expectedValue, bool fails=false, std::string LogUnit="")
   {
     //add the workspace to the ADS
     AnalysisDataService::Instance().addOrReplace("AddSampleLogTest_Temporary", testWS);
@@ -86,6 +95,7 @@ public:
     alg.setPropertyValue("Workspace", "AddSampleLogTest_Temporary");
     alg.setPropertyValue("LogName", LogName);
     alg.setPropertyValue("LogText", LogText);
+    alg.setPropertyValue("LogUnit", LogUnit);
     alg.setPropertyValue("LogType", LogType);
     TS_ASSERT_THROWS_NOTHING(alg.execute())
     if (fails)
@@ -123,7 +133,6 @@ public:
       TS_ASSERT_EQUALS(testProp->firstTime(),DateAndTime("2013-12-18T13:40:00"));
       TS_ASSERT_DELTA(testProp->firstValue(), expectedValue, 1e-5);
     }
-    
     //cleanup
     AnalysisDataService::Instance().remove(output->getName());
     
diff --git a/Code/Mantid/Framework/Algorithms/test/CalculateTransmissionTest.h b/Code/Mantid/Framework/Algorithms/test/CalculateTransmissionTest.h
index 801b83e8fb0581c60d9e76e69f8aa254fccf0c3e..4485802d34b16c0104b0a4bf22b1e0e6b4867969 100644
--- a/Code/Mantid/Framework/Algorithms/test/CalculateTransmissionTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/CalculateTransmissionTest.h
@@ -11,6 +11,8 @@
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 #include "MantidTestHelpers/SANSInstrumentCreationHelper.h"
 
+#include <boost/assign/list_of.hpp>
+
 using namespace Mantid::DataHandling;
 using namespace Mantid::Algorithms;
 using Mantid::API::MatrixWorkspace;
@@ -33,6 +35,73 @@ public:
     TS_ASSERT_EQUALS( trans.version(), 1 );
   }
 
+  void testDefiningBothTransmissionMonitorAndRegionOfInterestThrows()
+  {
+    Mantid::Algorithms::CalculateTransmission trans;
+
+    auto inputWS = WorkspaceCreationHelper::create2DWorkspaceWithFullInstrument(4,50,true);
+    inputWS->getAxis(0)->unit() = 
+      Mantid::Kernel::UnitFactory::Instance().create("Wavelength");
+
+    const std::string outputWsName("CalculateTransmissionTest_outputWS");
+
+    trans.initialize();
+
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("SampleRunWorkspace", inputWS) );
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("DirectRunWorkspace", inputWS) );
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("IncidentBeamMonitor", 1) );
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("TransmissionMonitor", 2) );
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("TransmissionROI", "2,3") );
+    TS_ASSERT_THROWS_NOTHING( trans.setPropertyValue("OutputWorkspace", outputWsName) );
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("OutputUnfittedData", true) );
+
+    trans.execute();
+
+    TS_ASSERT( !trans.isExecuted() );
+  }
+
+  void testRegionOfInterest()
+  {
+    Mantid::Algorithms::CalculateTransmission trans;
+
+    auto inputWS = WorkspaceCreationHelper::create2DWorkspaceWithFullInstrument(4,50,true);
+    inputWS->getAxis(0)->unit() = 
+      Mantid::Kernel::UnitFactory::Instance().create("Wavelength");
+
+    const std::string outputWsName("CalculateTransmissionTest_outputWS");
+
+    trans.initialize();
+
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("SampleRunWorkspace", inputWS) );
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("DirectRunWorkspace", inputWS) );
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("IncidentBeamMonitor", 1) );
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("TransmissionROI", "2,3") );
+    TS_ASSERT_THROWS_NOTHING( trans.setPropertyValue("OutputWorkspace", outputWsName) );
+    TS_ASSERT_THROWS_NOTHING( trans.setProperty("OutputUnfittedData", true) );
+
+    TS_ASSERT_THROWS_NOTHING( trans.execute() );
+    TS_ASSERT( trans.isExecuted() );
+
+    Mantid::API::MatrixWorkspace_const_sptr fitted, unfitted;
+    TS_ASSERT_THROWS_NOTHING(fitted = boost::dynamic_pointer_cast<MatrixWorkspace>(
+      Mantid::API::AnalysisDataService::Instance().retrieve(outputWsName)) );
+    TS_ASSERT_THROWS_NOTHING(unfitted = boost::dynamic_pointer_cast<MatrixWorkspace>(
+      Mantid::API::AnalysisDataService::Instance().retrieve(outputWsName+"_unfitted")) );
+
+    const Mantid::MantidVec &fit = fitted->readY(0), &unfit = unfitted->readY(0);
+    TS_ASSERT_EQUALS(fit.size(), unfit.size())
+    for (unsigned int i = 0; i < fit.size(); ++i)
+    {
+      // Should all be 1 because I used the same workspace twice as the input
+      TS_ASSERT_DELTA( fit[i], 1.0, 0.0005 )
+      // a linear fit thorugh all 1s should result in all 1s
+      TS_ASSERT_DELTA( fit[i], unfit[i], 0.0005 )
+    }
+
+    Mantid::API::AnalysisDataService::Instance().remove(outputWsName);
+    Mantid::API::AnalysisDataService::Instance().remove(outputWsName+"_unfitted");
+  }
+
   void testFittedUnfitted()
   {
 
diff --git a/Code/Mantid/Framework/Algorithms/test/ConvertDiffCalTest.h b/Code/Mantid/Framework/Algorithms/test/ConvertDiffCalTest.h
index 58714fbab21d7981e4dbe058ea34eb2da20618fc..ee25bc4d209ab0409a922d58cbbd6bf833fc2a6b 100644
--- a/Code/Mantid/Framework/Algorithms/test/ConvertDiffCalTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ConvertDiffCalTest.h
@@ -3,6 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAlgorithms/ConvertDiffCal.h"
 #include "MantidDataObjects/OffsetsWorkspace.h"
 #include "MantidTestHelpers/ComponentCreationHelper.h"
diff --git a/Code/Mantid/Framework/Algorithms/test/ConvertToMatrixWorkspaceTest.h b/Code/Mantid/Framework/Algorithms/test/ConvertToMatrixWorkspaceTest.h
index e6173b9c16abaf69cae58e9dced37d9e9ec2126a..a045146f5f05245cb48b764835462e7ffaea4889 100644
--- a/Code/Mantid/Framework/Algorithms/test/ConvertToMatrixWorkspaceTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ConvertToMatrixWorkspaceTest.h
@@ -3,100 +3,105 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidAlgorithms/ConvertToMatrixWorkspace.h"
-#include "MantidDataHandling/LoadRaw3.h"
 #include "MantidAlgorithms/CheckWorkspacesMatch.h"
-#include "MantidDataHandling/LoadEventNexus.h"
-#include "MantidTestHelpers/WorkspaceCreationHelper.h"
-#include "MantidDataObjects/EventWorkspace.h"
+#include "MantidAlgorithms/ConvertToMatrixWorkspace.h"
 #include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/ISpectrum.h"
+#include "MantidDataObjects/EventWorkspace.h"
+#include "MantidTestHelpers/WorkspaceCreationHelper.h"
 
 using namespace Mantid;
-using namespace Mantid::API;
 using namespace Mantid::Kernel;
-using namespace Mantid::DataObjects;
 
-class ConvertToMatrixWorkspaceTest : public CxxTest::TestSuite
-{
+class ConvertToMatrixWorkspaceTest : public CxxTest::TestSuite {
 public:
-  void testName()
-  {
-    TS_ASSERT_EQUALS( cloner.name(), "ConvertToMatrixWorkspace" )
+  void testName() {
+    Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
+    TS_ASSERT_EQUALS(cloner.name(), "ConvertToMatrixWorkspace")
   }
 
-  void testVersion()
-  {
-    TS_ASSERT_EQUALS( cloner.version(), 1 )
+  void testVersion() {
+    Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
+    TS_ASSERT_EQUALS(cloner.version(), 1)
   }
 
-  void testInit()
-  {
-    TS_ASSERT_THROWS_NOTHING( cloner.initialize() )
-    TS_ASSERT( cloner.isInitialized() )
+  void testInit() {
+    Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
+    TS_ASSERT_THROWS_NOTHING(cloner.initialize())
+    TS_ASSERT(cloner.isInitialized())
   }
 
+  void testExec_2D_to_2D() {
+    Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
+    cloner.setChild(true);
+    cloner.initialize();
+    // create 2D input workspace
+    Mantid::API::MatrixWorkspace_sptr in =
+        WorkspaceCreationHelper::Create2DWorkspace(5, 10);
+    // add instance to variable 'in'
 
-  void testExec_2D_to_2D()
-  {
-    if ( !cloner.isInitialized() ) cloner.initialize();
-
-    Mantid::DataHandling::LoadRaw3 loader;
-    loader.initialize();
-    loader.setPropertyValue("Filename", "LOQ48127.raw");
-    loader.setPropertyValue("OutputWorkspace", "in");
-    loader.execute();
+    Mantid::API::MatrixWorkspace_sptr out;
 
-    TS_ASSERT_THROWS_NOTHING( cloner.setPropertyValue("InputWorkspace","in") )
-    TS_ASSERT_THROWS_NOTHING( cloner.setPropertyValue("OutputWorkspace","out") )
+    TS_ASSERT_THROWS_NOTHING(cloner.setProperty("InputWorkspace", in))
+    TS_ASSERT_THROWS_NOTHING(cloner.setProperty("OutputWorkspace", "out"))
+    TS_ASSERT(cloner.execute())
 
-    TS_ASSERT( cloner.execute() )
+    // retrieve OutputWorkspace produced by execute and set it to out
+    TS_ASSERT_THROWS_NOTHING(out = cloner.getProperty("OutputWorkspace"));
+    TS_ASSERT(out);
+    if (!out)
+      return;
 
     // Best way to test this is to use the CheckWorkspacesMatch algorithm
     Mantid::Algorithms::CheckWorkspacesMatch checker;
     checker.initialize();
-    checker.setPropertyValue("Workspace1","in");
-    checker.setPropertyValue("Workspace2","out");
+    checker.setProperty("Workspace1", in);
+    checker.setProperty("Workspace2", out);
     checker.execute();
 
-    TS_ASSERT_EQUALS( checker.getPropertyValue("Result"), checker.successString() )
+    TS_ASSERT_EQUALS(checker.getPropertyValue("Result"),
+                     checker.successString());
   }
 
-  void testExec_Event_to_2D()
-  {
-    if ( !cloner.isInitialized() ) cloner.initialize();
+  void testExec_Event_to_2D() {
+    Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
+    cloner.setChild(true);
+    cloner.initialize();
+    Mantid::DataObjects::EventWorkspace_sptr in =
+        WorkspaceCreationHelper::createEventWorkspaceWithFullInstrument(1, 10);
 
-    EventWorkspace_sptr in = WorkspaceCreationHelper::createEventWorkspaceWithFullInstrument(1, 10);
-    AnalysisDataService::Instance().addOrReplace("in", in);
-    TS_ASSERT_THROWS_NOTHING( cloner.setPropertyValue("InputWorkspace", "in") )
-    TS_ASSERT_THROWS_NOTHING( cloner.setPropertyValue("OutputWorkspace","out") )
-    TS_ASSERT( cloner.execute() )
+    TS_ASSERT_THROWS_NOTHING(cloner.setProperty("InputWorkspace", in))
+    TS_ASSERT_THROWS_NOTHING(cloner.setPropertyValue("OutputWorkspace", "out"))
+    TS_ASSERT(cloner.execute())
 
-    MatrixWorkspace_sptr out;
-    TS_ASSERT_THROWS_NOTHING(
-        out = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>("out") );
+    Mantid::API::MatrixWorkspace_sptr out;
+    TS_ASSERT_THROWS_NOTHING(out = cloner.getProperty("OutputWorkspace"));
     TS_ASSERT(out);
-    if (!out) return;
-
-    TS_ASSERT_EQUALS( in->getNumberHistograms(), out->getNumberHistograms());
-    TS_ASSERT_EQUALS( in->getInstrument()->getName(), out->getInstrument()->getName());
-    TS_ASSERT_EQUALS( in->getInstrument()->isParametrized(), out->getInstrument()->isParametrized());
-    for (size_t i=0; i < out->getNumberHistograms(); i++)
-    {
-      const ISpectrum * inSpec = in->getSpectrum(i);
-      const ISpectrum * outSpec = out->getSpectrum(i);
-      TS_ASSERT_EQUALS( inSpec->getSpectrumNo(), outSpec->getSpectrumNo());
-      TS_ASSERT_EQUALS( *inSpec->getDetectorIDs().begin(), *outSpec->getDetectorIDs().begin());
-      TS_ASSERT_EQUALS( in->readX(i), out->readX(i));
-      TS_ASSERT_EQUALS( in->readY(i), out->readY(i));
-      TS_ASSERT_EQUALS( in->readE(i), out->readE(i));
+    if (!out)
+      return;
+
+    TS_ASSERT_EQUALS(in->getNumberHistograms(), out->getNumberHistograms());
+    TS_ASSERT_EQUALS(in->getInstrument()->getName(),
+                     out->getInstrument()->getName());
+    TS_ASSERT_EQUALS(in->getInstrument()->isParametrized(),
+                     out->getInstrument()->isParametrized());
+    for (size_t i = 0; i < out->getNumberHistograms(); i++) {
+      const Mantid::API::ISpectrum *inSpec = in->getSpectrum(i);
+      const Mantid::API::ISpectrum *outSpec = out->getSpectrum(i);
+      TSM_ASSERT_EQUALS("Failed on comparing Spectrum Number for Histogram: " +
+                            boost::lexical_cast<std::string>(i),
+                        inSpec->getSpectrumNo(), outSpec->getSpectrumNo());
+      TSM_ASSERT_EQUALS("Failed on comparing Detector ID for Histogram: " +
+                            boost::lexical_cast<std::string>(i),
+                        *inSpec->getDetectorIDs().begin(),
+                        *outSpec->getDetectorIDs().begin());
+      TSM_ASSERT_EQUALS("Failed on readX for Histogram: " + boost::lexical_cast<std::string>(i),
+                        in->readX(i), out->readX(i));
+      TSM_ASSERT_EQUALS("Failed on readY for Histogram: " + boost::lexical_cast<std::string>(i),
+                        in->readY(i), out->readY(i));
+      TSM_ASSERT_EQUALS("Failed on readE for Histogram: " + boost::lexical_cast<std::string>(i),
+                        in->readE(i), out->readE(i));
     }
-
-    AnalysisDataService::Instance().remove("in");
   }
-
-private:
-  Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
 };
 
 #endif /*CONVERTTOMATRIXWORKSPACETEST_H_*/
diff --git a/Code/Mantid/Framework/Algorithms/test/CorelliCrossCorrelateTest.h b/Code/Mantid/Framework/Algorithms/test/CorelliCrossCorrelateTest.h
index b4c9bed5adb2a5aed056d70ad41218e4faba8e5d..261bff3bf8ccaa45e9ee914aec7dcdf2ff748757 100644
--- a/Code/Mantid/Framework/Algorithms/test/CorelliCrossCorrelateTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/CorelliCrossCorrelateTest.h
@@ -68,6 +68,11 @@ public:
     }
     ws->mutableRun().addLogData(tdc);
 
+    // Add motorSpeed to the workspace
+    auto motorSpeed = new TimeSeriesProperty<double>("BL9:Chop:Skf4:MotorSpeed");
+    motorSpeed->addValue(startTime,293.383);
+    ws->mutableRun().addLogData(motorSpeed);
+
     CorelliCrossCorrelate alg;
     TS_ASSERT_THROWS_NOTHING(alg.initialize())
     TS_ASSERT(alg.isInitialized())
diff --git a/Code/Mantid/Framework/Algorithms/test/CreateLogPropertyTableTest.h b/Code/Mantid/Framework/Algorithms/test/CreateLogPropertyTableTest.h
index f54e2f10389e37e0cd1d5371334e8b810f0bbc4b..4208eee9444e924bd7a7025eec8103c9dcfb1765 100644
--- a/Code/Mantid/Framework/Algorithms/test/CreateLogPropertyTableTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/CreateLogPropertyTableTest.h
@@ -9,6 +9,9 @@
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
+#include "MantidTestHelpers/WorkspaceCreationHelper.h"
+#include "MantidKernel/TimeSeriesProperty.h"
+#include "MantidDataObjects/EventWorkspace.h"
 
 #include <string>
 #include <vector>
@@ -17,26 +20,8 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::Algorithms;
 using namespace Mantid::DataHandling;
+using namespace Mantid::DataObjects;
 
-namespace
-{
-  std::vector<std::string> loadTestWorkspaces(std::vector<std::string> filenames)
-  {
-    std::vector<Workspace_sptr> wsList;
-
-    Load loader;
-    loader.initialize();
-
-    for( auto filename = filenames.begin(); filename != filenames.end(); ++filename )
-    {
-      loader.setPropertyValue("Filename", *filename);
-      loader.setPropertyValue("OutputWorkspace", *filename);
-      TS_ASSERT_THROWS_NOTHING(loader.execute());
-    }
-
-    return filenames;
-  }
-}
 
 class CreateLogPropertyTableTest : public CxxTest::TestSuite
 {
@@ -50,13 +35,8 @@ public:
 
   void test_exec()
   {
-    const std::string filenamesArray[2] = {
-      "TSC10076", 
-      "OSI11886"};
-    std::vector<std::string> filenames;
-    filenames.assign(filenamesArray, filenamesArray+2);
-    
-    std::vector<std::string> wsNames = loadTestWorkspaces(filenames);
+    createSampleWorkspace("__CreateLogPropertyTable__A", 12345, 50000000000);
+    createSampleWorkspace("__CreateLogPropertyTable__B", 67890, 56000000000);
 
     CreateLogPropertyTable alg;
     alg.initialize();
@@ -67,7 +47,7 @@ public:
     std::vector<std::string> propNames;
     propNames.assign(propNamesArray, propNamesArray + 2);
 
-    TS_ASSERT_THROWS_NOTHING( alg.setProperty("InputWorkspaces", wsNames) );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("InputWorkspaces", "__CreateLogPropertyTable__A, __CreateLogPropertyTable__B") );
     TS_ASSERT_THROWS_NOTHING( alg.setProperty("LogPropertyNames", propNames) );
     TS_ASSERT_THROWS_NOTHING( alg.setPropertyValue("OutputWorkspace", "outputTest") );
 
@@ -76,16 +56,84 @@ public:
     TS_ASSERT( alg.isExecuted() );
 
     ITableWorkspace_sptr table = AnalysisDataService::Instance().retrieveWS<ITableWorkspace>("outputTest");
-    
+
     TS_ASSERT( table );
 
     TableRow row1 = table->getRow(0);
     TableRow row2 = table->getRow(1);
-    
-    TS_ASSERT_EQUALS( row1.cell<std::string>(0), "10076" );
-    TS_ASSERT_EQUALS( row1.cell<std::string>(1), "2008-12-10T10:35:23" );
-    TS_ASSERT_EQUALS( row2.cell<std::string>(0), "11886" );
-    TS_ASSERT_EQUALS( row2.cell<std::string>(1), "2000-03-12T08:54:42" );
+
+    TS_ASSERT_EQUALS( row1.cell<std::string>(0), "12345" );
+    TS_ASSERT_EQUALS( row1.cell<std::string>(1), "1990-01-01T00:00:50" );
+    TS_ASSERT_EQUALS( row2.cell<std::string>(0), "67890" );
+    TS_ASSERT_EQUALS( row2.cell<std::string>(1), "1990-01-01T00:00:56" );
+  }
+
+  void test_timeSeries()
+  {
+    createSampleWorkspace();
+
+    CreateLogPropertyTable alg;
+    alg.initialize();
+
+    std::string propNamesArray[3] = {
+      "run_number",
+      "run_start",
+      "FastSineLog"};
+    std::vector<std::string> propNames;
+    propNames.assign(propNamesArray, propNamesArray + 3);
+
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("InputWorkspaces", "__CreateLogPropertyTable__TestWorkspace") );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("LogPropertyNames", propNames) );
+    TS_ASSERT_THROWS_NOTHING( alg.setPropertyValue("OutputWorkspace", "outputTest") );
+    TS_ASSERT_THROWS_NOTHING( alg.setPropertyValue("TimeSeriesStatistic", "Minimum") );
+
+    TS_ASSERT_THROWS_NOTHING( alg.execute() );
+
+    TS_ASSERT( alg.isExecuted() );
+
+    ITableWorkspace_sptr table = AnalysisDataService::Instance().retrieveWS<ITableWorkspace>("outputTest");
+
+    TS_ASSERT( table );
+
+    TableRow row1 = table->getRow(0);
+
+    TS_ASSERT_EQUALS( row1.cell<std::string>(0), "12345" );
+    TS_ASSERT_EQUALS( row1.cell<std::string>(1), "1990-01-01T00:00:03" );
+    TS_ASSERT_EQUALS( row1.cell<std::string>(2), "-1" );
+  }
+
+private:
+  void createSampleWorkspace(std::string wsName = "__CreateLogPropertyTable__TestWorkspace",
+      int runNumber = 12345, int64_t runStart = 3000000000)
+  {
+    using namespace WorkspaceCreationHelper;
+
+    MatrixWorkspace_sptr eventws = WorkspaceCreationHelper::Create2DWorkspace(1, 1);
+
+    int64_t runstoptime_ns = runStart + 1000000;
+    int64_t pulsetime_ns(100000);
+
+    // Run number
+    eventws->mutableRun().addProperty("run_number", runNumber);
+
+    // Run start log
+    DateAndTime runstarttime(runStart);
+    eventws->mutableRun().addProperty("run_start", runstarttime.toISO8601String());
+
+    // Sine log
+    TimeSeriesProperty<double> *sinlog = new TimeSeriesProperty<double>("FastSineLog");
+    double period = static_cast<double>(pulsetime_ns);
+    int64_t curtime_ns = runStart;
+    while (curtime_ns < runstoptime_ns)
+    {
+      DateAndTime curtime(curtime_ns);
+      double value = sin(M_PI*static_cast<double>(curtime_ns)/period*0.25);
+      sinlog->addValue(curtime, value);
+      curtime_ns += pulsetime_ns/4;
+    }
+    eventws->mutableRun().addProperty(sinlog, true);
+
+    AnalysisDataService::Instance().addOrReplace(wsName, eventws);
   }
 };
 
diff --git a/Code/Mantid/Framework/Algorithms/test/CreateTransmissionWorkspaceTest.h b/Code/Mantid/Framework/Algorithms/test/CreateTransmissionWorkspaceTest.h
index 46791037dc1fbd4e865d43a44560a74dd88d5094..c5ee96af3a2f8011c3a4e451c8a5623ca42f45ac 100644
--- a/Code/Mantid/Framework/Algorithms/test/CreateTransmissionWorkspaceTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/CreateTransmissionWorkspaceTest.h
@@ -166,20 +166,6 @@ public:
     TS_ASSERT_THROWS(alg->setProperty("I0MonitorIndex", -1), std::invalid_argument);
   }
 
-  void test_workspace_index_list_throw_if_not_pairs()
-  {
-    auto alg = construct_standard_algorithm();
-    alg->setProperty("ProcessingInstructions", "0");
-    TS_ASSERT_THROWS(alg->execute(), std::runtime_error);
-  }
-
-  void test_workspace_index_list_values_not_positive_throws()
-  {
-    auto alg = construct_standard_algorithm();
-    alg->setProperty("ProcessingInstructions", "-1, 0"); //-1 is not acceptable.
-    TS_ASSERT_THROWS(alg->execute(), std::invalid_argument);
-  }
-
   void test_execute_one_tranmission()
   {
 
@@ -192,12 +178,12 @@ public:
     alg->setProperty("WavelengthMin", 1.0);
     alg->setProperty("WavelengthMax", 15.0);
     alg->setProperty("WavelengthStep", 0.05);
-    alg->setProperty("I0MonitorIndex", 0);
+    alg->setProperty("I0MonitorIndex", 1);
     alg->setProperty("MonitorBackgroundWavelengthMin", 14.0);
     alg->setProperty("MonitorBackgroundWavelengthMax", 15.0);
     alg->setProperty("MonitorIntegrationWavelengthMin", 4.0);
     alg->setProperty("MonitorIntegrationWavelengthMax", 10.0);
-    alg->setPropertyValue("ProcessingInstructions", "1");
+    alg->setPropertyValue("ProcessingInstructions", "0");
     alg->setPropertyValue("OutputWorkspace", "demo_ws");
     alg->execute();
 
diff --git a/Code/Mantid/Framework/Algorithms/test/ExtractSpectraTest.h b/Code/Mantid/Framework/Algorithms/test/ExtractSpectraTest.h
index 34aa79fb0b19bc2fcf031e7f430cf995ea79c39d..2fc6324ecc801cdad33e5f1ba0b111a3f0b2a068 100644
--- a/Code/Mantid/Framework/Algorithms/test/ExtractSpectraTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ExtractSpectraTest.h
@@ -84,37 +84,37 @@ public:
   void test_spectrum_list()
   {
     Parameters params;
-    params.setSpectrumList();
+    params.setWorkspaceIndexList();
 
     auto ws = runAlgorithm(params);
     if (!ws) return;
 
     TS_ASSERT_EQUALS(ws->blocksize(), nBins);
-    params.testSpectrumList(*ws);
+    params.testWorkspaceIndexList(*ws);
   }
 
   void test_index_and_spectrum_list()
   {
     Parameters params;
-    params.setSpectrumList().setIndexRange();
+    params.setWorkspaceIndexList().setIndexRange();
 
     auto ws = runAlgorithm(params);
     if (!ws) return;
 
     TS_ASSERT_EQUALS(ws->blocksize(), nBins);
-    params.testSpectrumList(*ws);
+    params.testWorkspaceIndexList(*ws);
   }
 
   void test_x_range_and_spectrum_list()
   {
     Parameters params;
-    params.setSpectrumList().setXRange();
+    params.setWorkspaceIndexList().setXRange();
 
     auto ws = runAlgorithm(params);
     if (!ws) return;
 
     params.testXRange(*ws);
-    params.testSpectrumList(*ws);
+    params.testWorkspaceIndexList(*ws);
   }
 
   void test_invalid_x_range()
@@ -139,6 +139,55 @@ public:
     }
   }
 
+  void test_detector_list()
+  {
+    Parameters params("histo-detector");
+    params.setDetectorList();
+
+    auto ws = runAlgorithm(params);
+    if (!ws) return;
+
+    TS_ASSERT_EQUALS(ws->blocksize(), nBins);
+    params.testDetectorList(*ws);
+  }
+
+  void test_index_and_detector_list()
+  {
+    Parameters params("histo-detector");
+    params.setDetectorList().setIndexRange();
+
+    auto ws = runAlgorithm(params);
+    if (!ws) return;
+
+    TS_ASSERT_EQUALS(ws->blocksize(), nBins);
+    params.testDetectorList(*ws);
+  }
+
+  void test_x_range_and_detector_list()
+  {
+    Parameters params("histo-detector");
+    params.setDetectorList().setXRange();
+
+    auto ws = runAlgorithm(params);
+    if (!ws) return;
+
+    params.testXRange(*ws);
+    params.testDetectorList(*ws);
+  }
+
+  void test_spectrum_list_and_detector_list()
+  {
+    Parameters params("histo-detector");
+    params.setWorkspaceIndexList().setDetectorList();
+
+    auto ws = runAlgorithm(params);
+    if (!ws) return;
+
+    TS_ASSERT_EQUALS(ws->blocksize(), nBins);
+    params.testDetectorList(*ws);
+  }
+
+
 
   // ---- test event ----
 
@@ -169,37 +218,37 @@ public:
   void test_spectrum_list_event()
   {
     Parameters params("event");
-    params.setSpectrumList();
+    params.setWorkspaceIndexList();
 
     auto ws = runAlgorithm(params);
     if (!ws) return;
 
     TS_ASSERT_EQUALS(ws->blocksize(), nBins);
-    params.testSpectrumList(*ws);
+    params.testWorkspaceIndexList(*ws);
   }
 
   void test_index_and_spectrum_list_event()
   {
     Parameters params("event");
-    params.setSpectrumList().setIndexRange();
+    params.setWorkspaceIndexList().setIndexRange();
 
     auto ws = runAlgorithm(params);
     if (!ws) return;
 
     TS_ASSERT_EQUALS(ws->blocksize(), nBins);
-    params.testSpectrumList(*ws);
+    params.testWorkspaceIndexList(*ws);
   }
 
   void test_x_range_and_spectrum_list_event()
   {
     Parameters params("event");
-    params.setSpectrumList().setXRange();
+    params.setWorkspaceIndexList().setXRange();
 
     auto ws = runAlgorithm(params);
     if (!ws) return;
 
     params.testXRange(*ws);
-    params.testSpectrumList(*ws);
+    params.testWorkspaceIndexList(*ws);
   }
 
   void test_invalid_x_range_event()
@@ -227,6 +276,57 @@ public:
       auto ws = runAlgorithm(params, false);
     }
   }
+
+  void test_detector_list_event()
+  {
+    Parameters params("event-detector");
+    params.setDetectorList();
+
+    auto ws = runAlgorithm(params);
+    if (!ws) return;
+
+    TS_ASSERT_EQUALS(ws->blocksize(), nBins);
+    params.testDetectorList(*ws);
+  }
+
+
+    void test_index_and_detector_list_event()
+  {
+    Parameters params("event-detector");
+    params.setDetectorList().setIndexRange();
+
+    auto ws = runAlgorithm(params);
+    if (!ws) return;
+
+    TS_ASSERT_EQUALS(ws->blocksize(), nBins);
+    params.testDetectorList(*ws);
+  }
+
+  void test_x_range_and_detector_list_event()
+  {
+    Parameters params("event-detector");
+    params.setDetectorList().setXRange();
+
+    auto ws = runAlgorithm(params);
+    if (!ws) return;
+
+    params.testXRange(*ws);
+    params.testDetectorList(*ws);
+  }
+
+  void test_spectrum_list_and_detector_list_event()
+  {
+    Parameters params("event-detector");
+    params.setWorkspaceIndexList().setDetectorList();
+
+    auto ws = runAlgorithm(params);
+    if (!ws) return;
+
+    TS_ASSERT_EQUALS(ws->blocksize(), nBins);
+    params.testDetectorList(*ws);
+  }
+
+
   // ---- test histo-ragged ----
 
   void test_x_range_ragged()
@@ -256,13 +356,13 @@ public:
   void test_spectrum_list_ragged()
   {
     Parameters params("histo-ragged");
-    params.setSpectrumList();
+    params.setWorkspaceIndexList();
 
     auto ws = runAlgorithm(params);
     if (!ws) return;
 
     TS_ASSERT_EQUALS(ws->blocksize(), nBins);
-    params.testSpectrumList(*ws);
+    params.testWorkspaceIndexList(*ws);
   }
 
   void xtest_invalid_x_range_ragged()
@@ -289,6 +389,10 @@ private:
       return createInputWorkspaceEvent();
     else if (workspaceType == "histo-ragged")
       return createInputWorkspaceHistoRagged();
+    else if (workspaceType == "histo-detector")
+      return createInputWithDetectors("histo");
+    else if (workspaceType == "event-detector")
+      return createInputWithDetectors("event");
     throw std::runtime_error("Undefined workspace type");
   }
 
@@ -332,18 +436,41 @@ private:
     return ws;
   }
 
+  MatrixWorkspace_sptr createInputWithDetectors(std::string workspaceType) const
+  {
+    MatrixWorkspace_sptr ws;
+
+    // Set the type of underlying workspace
+    if (workspaceType == "histo") {
+      ws = createInputWorkspaceHisto();
+      for( size_t i = 0; i < ws->getNumberHistograms(); ++i )
+      {
+        // Create a detector for each spectra
+        ws->getSpectrum(i)->setDetectorID(static_cast<detid_t>(i + 1));
+      }
+    } else if (workspaceType == "event") {
+      ws = createInputWorkspaceEvent();
+    } else {
+      throw std::runtime_error("Undefined workspace type (with detector ids)");
+    }
+    return ws;
+  }
+
+
+
   struct Parameters
   {
     Parameters(const std::string& workspaceType = "histo")
         : XMin(EMPTY_DBL()), XMax(EMPTY_DBL()), StartWorkspaceIndex(0),
-        EndWorkspaceIndex(EMPTY_INT()), SpectrumList(), wsType(workspaceType)
+        EndWorkspaceIndex(EMPTY_INT()), WorkspaceIndexList(), wsType(workspaceType)
     {
     }
     double XMin;
     double XMax;
     int StartWorkspaceIndex;
     int EndWorkspaceIndex;
-    std::vector<int> SpectrumList;
+    std::vector<size_t> WorkspaceIndexList;
+    std::vector<detid_t> DetectorList;
     std::string wsType;
 
     // ---- x range ----
@@ -418,15 +545,15 @@ private:
     }
 
     // ---- spectrum list ----
-    Parameters& setSpectrumList()
+    Parameters& setWorkspaceIndexList()
     {
-      SpectrumList.resize(3);
-      SpectrumList[0] = 0;
-      SpectrumList[1] = 2;
-      SpectrumList[2] = 4;
+      WorkspaceIndexList.resize(3);
+      WorkspaceIndexList[0] = 0;
+      WorkspaceIndexList[1] = 2;
+      WorkspaceIndexList[2] = 4;
       return *this;
     }
-    void testSpectrumList(const MatrixWorkspace& ws) const
+    void testWorkspaceIndexList(const MatrixWorkspace& ws) const
     {
       TS_ASSERT_EQUALS(ws.getNumberHistograms(), 3);
       if (wsType == "histo")
@@ -443,6 +570,32 @@ private:
       }
    }
 
+    // ---- detector list ----
+    Parameters& setDetectorList()
+    {
+      DetectorList.resize(3);
+      DetectorList[0] = 1;  // Translates into WSindex = 0
+      DetectorList[1] = 3;  // Translates into WSindex = 2
+      DetectorList[2] = 5;  // Translates into WSindex = 4
+      return *this;
+    }
+    void testDetectorList(const MatrixWorkspace& ws) const
+    {
+      TS_ASSERT_EQUALS(ws.getNumberHistograms(), 3);
+      if (wsType == "histo-detector")
+      {
+        TS_ASSERT_EQUALS(ws.readY(0)[0], 0.0);
+        TS_ASSERT_EQUALS(ws.readY(1)[0], 2.0);
+        TS_ASSERT_EQUALS(ws.readY(2)[0], 4.0);
+      }
+      else if (wsType == "event-detector")
+      {
+        TS_ASSERT_EQUALS(ws.getDetector(0)->getID(), 1);
+        TS_ASSERT_EQUALS(ws.getDetector(1)->getID(), 3);
+        TS_ASSERT_EQUALS(ws.getDetector(2)->getID(), 5);
+      }
+   }
+
     // ---- invalid inputs ----
     void setInvalidXRange()
     {
@@ -486,9 +639,13 @@ private:
     {
       TS_ASSERT_THROWS_NOTHING( alg.setProperty("EndWorkspaceIndex", params.EndWorkspaceIndex) );
     }
-    if (!params.SpectrumList.empty())
+    if (!params.WorkspaceIndexList.empty())
+    {
+      TS_ASSERT_THROWS_NOTHING( alg.setProperty("WorkspaceIndexList", params.WorkspaceIndexList) );
+    }
+    if (!params.DetectorList.empty())
     {
-      TS_ASSERT_THROWS_NOTHING( alg.setProperty("SpectrumList", params.SpectrumList) );
+      TS_ASSERT_THROWS_NOTHING( alg.setProperty("DetectorList", params.DetectorList) );
     }
 
     TS_ASSERT_THROWS_NOTHING( alg.execute(); );
diff --git a/Code/Mantid/Framework/Algorithms/test/FFTTest.h b/Code/Mantid/Framework/Algorithms/test/FFTTest.h
index 977333897908dae913f4b3802ec872f4b4e05c12..23a600fce244a47b916692730f8e02b07283ac24 100644
--- a/Code/Mantid/Framework/Algorithms/test/FFTTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/FFTTest.h
@@ -9,6 +9,7 @@
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
+#include "MantidKernel/UnitFactory.h"
 
 using namespace Mantid;
 using namespace Mantid::API;
@@ -382,6 +383,10 @@ public:
     MatrixWorkspace_sptr fWS = boost::dynamic_pointer_cast<MatrixWorkspace>
       (AnalysisDataService::Instance().retrieve("FFT_out"));
 
+    // Test the output label
+    TS_ASSERT_EQUALS(fWS->getAxis(0)->unit()->caption(), "Quantity");
+    TS_ASSERT_EQUALS(fWS->getAxis(0)->unit()->label(), "");
+
     const MantidVec& X = fWS->readX(0);
     const MantidVec& Yr = fWS->readY(0);
     const MantidVec& Yi = fWS->readY(1);
@@ -408,6 +413,49 @@ public:
     FrameworkManager::Instance().deleteWorkspace("FFT_out");
   }
 
+  void testUnitsEnergy() {
+
+    const int N = 100;
+    const double XX = dX * N;
+    double dx = 1/(XX);
+
+    MatrixWorkspace_sptr WS = createWS(N,1,"even_hist");
+
+    // Set a label
+    WS->getAxis(0)->unit() = Mantid::Kernel::UnitFactory::Instance().create("Energy");
+
+    IAlgorithm* fft = Mantid::API::FrameworkManager::Instance().createAlgorithm("FFT");
+    fft->initialize();
+    fft->setPropertyValue("InputWorkspace","FFT_WS_even_hist");
+    fft->setPropertyValue("OutputWorkspace","FFT_out");
+    fft->setPropertyValue("Real","0");
+    fft->execute();
+
+    MatrixWorkspace_sptr fWS = boost::dynamic_pointer_cast<MatrixWorkspace>
+      (AnalysisDataService::Instance().retrieve("FFT_out"));
+
+    // Test X values
+    // When the input unit is 'Energy' in 'meV'
+    // there is a factor of 1/2.418e2 in X
+    const MantidVec& X = fWS->readX(0);
+
+    const MantidVec::const_iterator it = std::find(X.begin(),X.end(),0.);
+    int i0 = static_cast<int>(it - X.begin());
+
+    for (int i = 0; i < N / 4; i++) {
+      int j = i0 + i;
+      double x = X[j];
+      TS_ASSERT_DELTA(x, dx * i /2.418e2, 0.00001);
+    }
+
+    // Test the output label
+    TS_ASSERT_EQUALS(fWS->getAxis(0)->unit()->caption(),"Time");
+    TS_ASSERT_EQUALS(fWS->getAxis(0)->unit()->label(),"ns");
+
+    FrameworkManager::Instance().deleteWorkspace("FFT_WS_even_hist");
+    FrameworkManager::Instance().deleteWorkspace("FFT_out");
+  }
+
 private:
 
   MatrixWorkspace_sptr createWS(int n,int dn,const std::string& name)
diff --git a/Code/Mantid/Framework/Algorithms/test/ModeratorTzeroTest.h b/Code/Mantid/Framework/Algorithms/test/ModeratorTzeroTest.h
index b84e1d76012dd0cb3d1ddd1796ec224e88178ac5..1de0794e8a1a16e2ac101f721056b4a923363746 100644
--- a/Code/Mantid/Framework/Algorithms/test/ModeratorTzeroTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ModeratorTzeroTest.h
@@ -37,92 +37,197 @@ void TestInit()
   TS_ASSERT( alg.isInitialized() );
 }
 
-void TestExecThrowsDeltaEmode()
+void TestExecHistogramIndirect()
 {
   MatrixWorkspace_sptr testWS = CreateHistogramWorkspace();
   AnalysisDataService::Instance().add("testWS", testWS);
+  const bool add_Efixed=true;
+  const bool add_t0_formula=true;
+  AddToIndirectInstrument(testWS, add_t0_formula, add_Efixed);
   ModeratorTzero alg;
   alg.initialize();
   alg.setProperty("InputWorkspace",testWS);
   alg.setProperty("OutputWorkspace","testWS");
-  alg.setRethrows(true); // necessary, otherwise the algorithm will catch all exceptions and not return them
-  TS_ASSERT_THROWS(alg.execute(), Exception::InstrumentDefinitionError);
+  alg.setProperty("EMode", "Indirect");
+  alg.setRethrows(true);
+  TS_ASSERT_THROWS_NOTHING(alg.execute());
+
+  // Check a few values. These are values separated by 400 bins
+  const size_t jump(400);
+  double tofs[3][11]={
+      {-0.218694, 1599.78, 3199.78, 4799.78, 6399.78, 7999.78, 9550.71, 11150.2, 12750.1, 14350, 15950},
+      {-34.9412, 1550.24, 3150.06, 4750.03, 6350.01, 7950.01, 9550.01, 11150, 12750, 14350, 15950},
+      {-9.67714, 1550.63, 3150.16, 4750.07, 6350.04, 7950.03, 9550.02, 11150, 12750, 14350, 15950}
+  };
+  for (size_t ihist=0; ihist<testWS->getNumberHistograms(); ++ihist)
+  {
+    MantidVec xarray=testWS->dataX(ihist);
+    for(size_t ibin=0; ibin < xarray.size(); ibin+=jump)
+    {
+      TS_ASSERT_DELTA(tofs[ihist][ibin/jump],xarray[ibin],0.1);
+    }
+  }
   AnalysisDataService::Instance().remove("testWS");
 }
 
-void TestExecThrowsNoFormula()
+void TestExecHistogramElastic()
 {
   MatrixWorkspace_sptr testWS = CreateHistogramWorkspace();
   AnalysisDataService::Instance().add("testWS", testWS);
-  const bool add_deltaE_mode=true;
-  AddToInstrument(testWS,add_deltaE_mode);
+  testWS->instrumentParameters().addString(testWS->getInstrument()->getComponentID(),
+    "t0_formula","101.9*incidentEnergy^(-0.41)*exp(-incidentEnergy/282.0)");
   ModeratorTzero alg;
   alg.initialize();
   alg.setProperty("InputWorkspace",testWS);
   alg.setProperty("OutputWorkspace","testWS");
-  alg.setRethrows(true); // necessary, otherwise the algorithm will catch all exceptions and not return them
-  TS_ASSERT_THROWS(alg.execute(), Exception::InstrumentDefinitionError);
+  alg.setProperty("EMode", "Elastic");
+  alg.setRethrows(true);
+  TS_ASSERT_THROWS_NOTHING(alg.execute());
+
+  // Check a few values. These are values separated by 400 bins
+  const size_t jump(400);
+  double tofs[3][11]={
+      {0.0, 1599.94, 3196.91, 4791.92, 6387.25, 7983.04, 9579.19, 11175.6, 12772.2, 14368.9, 15965.7},
+      {0.0, 1595.57, 3184.9, 4776.23, 6368.59, 7961.54, 9554.85, 11148.4, 12742.2, 14336.2, 15930.3},
+      {0.0, 1599.32, 3193.02, 4786.52, 6380.87, 7975.78, 9571.06, 11166.6, 12762.3, 14358.2, 15954.1}
+  };
+  for (size_t ihist=0; ihist<testWS->getNumberHistograms(); ++ihist)
+  {
+    MantidVec xarray=testWS->dataX(ihist);
+    for(size_t ibin=0; ibin < xarray.size(); ibin+=jump)
+    {
+      TS_ASSERT_DELTA(tofs[ihist][ibin/jump],xarray[ibin],0.1);
+    }
+  }
   AnalysisDataService::Instance().remove("testWS");
 }
 
-/*
- * First spectrum is a detector. Remaining two spectra are monitors
- */
-void TestExecHistogram()
+void TestExecHistogramDirect()
 {
   MatrixWorkspace_sptr testWS = CreateHistogramWorkspace();
   AnalysisDataService::Instance().add("testWS", testWS);
-  const bool add_deltaE_mode=true;
-  const bool add_t0_formula=true;
-  AddToInstrument(testWS, add_deltaE_mode, add_t0_formula);
+  testWS->instrumentParameters().addString(testWS->getInstrument()->getComponentID(),
+    "t0_formula","101.9*incidentEnergy^(-0.41)*exp(-incidentEnergy/282.0)");
+  testWS->mutableRun().addProperty("Ei", 100.0, "meV", true);
   ModeratorTzero alg;
   alg.initialize();
   alg.setProperty("InputWorkspace",testWS);
   alg.setProperty("OutputWorkspace","testWS");
+  alg.setProperty("EMode", "Direct");
   alg.setRethrows(true);
   TS_ASSERT_THROWS_NOTHING(alg.execute());
 
-  // Check a few values
+  // Check a few values. These are values separated by 400 bins
+  const size_t jump(400);
   double tofs[3][11]={
-      {-0.218694, 1599.78, 3199.78, 4799.78, 6399.78, 7999.78, 9550.71, 11150.2, 12750.1, 14350, 15950},
-      {-34.9412, 1550.24, 3150.06, 4750.03, 6350.01, 7950.01, 9550.01, 11150, 12750, 14350, 15950},
-      {-9.67714, 1550.63, 3150.16, 4750.07, 6350.04, 7950.03, 9550.02, 11150, 12750, 14350, 15950}
+    {-10.8185,1589.18,3189.18,4789.18,6389.18,7989.18,9589.18,11189.2,12789.2,14389.2,15989.2},
+    {-10.8185,1589.18,3189.18,4789.18,6389.18,7989.18,9589.18,11189.2,12789.2,14389.2,15989.2},
+    {-10.8185,1589.18,3189.18,4789.18,6389.18,7989.18,9589.18,11189.2,12789.2,14389.2,15989.2}
   };
   for (size_t ihist=0; ihist<testWS->getNumberHistograms(); ++ihist)
   {
     MantidVec xarray=testWS->dataX(ihist);
-    for(size_t ibin=0; ibin < xarray.size(); ibin+=400)
-      TS_ASSERT_DELTA(tofs[ihist][ibin/400],xarray[ibin],0.1);
+    for(size_t ibin=0; ibin < xarray.size(); ibin+=jump)
+    {
+      TS_ASSERT_DELTA(tofs[ihist][ibin/jump],xarray[ibin],0.1);
+    }
   }
   AnalysisDataService::Instance().remove("testWS");
 }
 
-void TestExecEvents()
+void TestExecEventsIndirect()
 {
   EventWorkspace_sptr testWS=CreateEventWorkspace();
   AnalysisDataService::Instance().add("testWS", testWS);
-  const bool add_deltaE_mode=true;
+  const bool add_Efixed=true;
   const bool add_t0_formula=true;
   MatrixWorkspace_sptr mtestWS=boost::dynamic_pointer_cast<MatrixWorkspace>(testWS);
-  AddToInstrument(mtestWS, add_deltaE_mode, add_t0_formula);
+  AddToIndirectInstrument(mtestWS, add_t0_formula, add_Efixed);
   ModeratorTzero alg;
   alg.initialize();
   alg.setProperty("InputWorkspace",testWS);
   alg.setProperty("OutputWorkspace","testWS");
+  alg.setProperty("EMode", "Indirect");
   alg.setRethrows(true);
   TS_ASSERT_THROWS_NOTHING(alg.execute());
 
-  // Check a few values
+  // Check a few values.  These are values separated by 400 bins
+  const size_t jump(400);
   double tofs_a[11]={-37.5547, 1562.45, 3162.45, 4762.45, 6362.45, 7962.45, 9550.18, 11150, 12750, 14350, 15950};
   for (size_t ihist=0; ihist<testWS->getNumberHistograms(); ++ihist)
   {
     EventList &evlist=testWS->getEventList(ihist);
     MantidVec tofs_b=evlist.getTofs();
     MantidVec xarray=evlist.readX();
-    for(size_t ibin=0; ibin < xarray.size(); ibin+=400)
+    for(size_t ibin=0; ibin < xarray.size(); ibin+=jump)
     {
-      TS_ASSERT_DELTA(tofs_a[ibin/400],xarray[ibin],0.1);
-      TS_ASSERT_DELTA(tofs_a[ibin/400],tofs_b[ibin],0.2);
+      TS_ASSERT_DELTA(tofs_a[ibin/jump],xarray[ibin],0.1);
+      TS_ASSERT_DELTA(tofs_a[ibin/jump],tofs_b[ibin],0.2);
+    }
+  }
+  AnalysisDataService::Instance().remove("testWS");
+}
+
+void TestExecEventsElastic()
+{
+  EventWorkspace_sptr testWS=CreateEventWorkspace();
+  AnalysisDataService::Instance().add("testWS", testWS);
+  MatrixWorkspace_sptr mtestWS=boost::dynamic_pointer_cast<MatrixWorkspace>(testWS);
+  testWS->instrumentParameters().addString(testWS->getInstrument()->getComponentID(),
+    "t0_formula","101.9*incidentEnergy^(-0.41)*exp(-incidentEnergy/282.0)");
+  ModeratorTzero alg;
+  alg.initialize();
+  alg.setProperty("InputWorkspace",testWS);
+  alg.setProperty("OutputWorkspace","testWS");
+  alg.setProperty("EMode", "Elastic");
+  alg.setRethrows(true);
+  TS_ASSERT_THROWS_NOTHING(alg.execute());
+
+  // Check a few values.  These are values separated by 400 bins
+  const size_t jump(400);
+  double tofs_a[11]={0.0,1598.38,3190.3,4783.04,6376.76,7971.06,9565.72,11160.6,12755.7,14351,15946.3};
+  for (size_t ihist=0; ihist<testWS->getNumberHistograms(); ++ihist)
+  {
+    EventList &evlist=testWS->getEventList(ihist);
+    MantidVec tofs_b=evlist.getTofs();
+    MantidVec xarray=evlist.readX();
+    for(size_t ibin=0; ibin < xarray.size(); ibin+=jump)
+    {
+      TS_ASSERT_DELTA(tofs_a[ibin/jump],xarray[ibin],0.1);
+      TS_ASSERT_DELTA(tofs_a[ibin/jump],tofs_b[ibin],0.2);
+    }
+  }
+  AnalysisDataService::Instance().remove("testWS");
+}
+
+void TestExecEventsDirect()
+{
+  EventWorkspace_sptr testWS=CreateEventWorkspace();
+  AnalysisDataService::Instance().add("testWS", testWS);
+  MatrixWorkspace_sptr mtestWS=boost::dynamic_pointer_cast<MatrixWorkspace>(testWS);
+  testWS->instrumentParameters().addString(testWS->getInstrument()->getComponentID(),
+    "t0_formula","101.9*incidentEnergy^(-0.41)*exp(-incidentEnergy/282.0)");
+  testWS->mutableRun().addProperty("Ei", 100.0, "meV", true);
+  ModeratorTzero alg;
+  alg.initialize();
+  alg.setProperty("InputWorkspace",testWS);
+  alg.setProperty("OutputWorkspace","testWS");
+  alg.setProperty("EMode", "Direct");
+  alg.setRethrows(true);
+  TS_ASSERT_THROWS_NOTHING(alg.execute());
+
+  // Check a few values.  These are values separated by 400 bins
+  const size_t jump(400);
+  double tofs_a[11]={-10.8185,1589.18,3189.18,4789.18,6389.18,7989.18,9589.18,11189.2,12789.2,14389.2,15989.2};
+  for (size_t ihist=0; ihist<testWS->getNumberHistograms(); ++ihist)
+  {
+    EventList &evlist=testWS->getEventList(ihist);
+    MantidVec tofs_b=evlist.getTofs();
+    MantidVec xarray=evlist.readX();
+    for(size_t ibin=0; ibin < xarray.size(); ibin+=jump)
+    {
+      TS_ASSERT_DELTA(tofs_a[ibin/jump],xarray[ibin],0.1);
+      TS_ASSERT_DELTA(tofs_a[ibin/jump],tofs_b[ibin],0.2);
     }
   }
   AnalysisDataService::Instance().remove("testWS");
@@ -130,6 +235,10 @@ void TestExecEvents()
 
 private:
 
+/*
+ * First spectrum is a detector. Remaining two spectra are monitors
+ * Detector contains histogram of tof with a Gaussian profile
+ */
 MatrixWorkspace_sptr CreateHistogramWorkspace()
 {
   const int numHists(3);
@@ -138,14 +247,16 @@ MatrixWorkspace_sptr CreateHistogramWorkspace()
   testWS->getAxis(0)->unit()=Mantid::Kernel::UnitFactory::Instance().create("TOF");
   MantidVecPtr xdata;
   xdata.access().resize(numBins+1);
-  const double peakHeight(1000), peakCentre(7000.), sigmaSq(1000*1000.);
+  const double peakHeight(1000.), peakCentre(7000.), sigmaSq(1000*1000.);
+  // tof ranges from 0 to 16000 (units assumed micro-seconds
+  const double rescaling_factor(4.0);
   for(int ibin=0; ibin<numBins; ++ibin)
   {
-    const double xValue=4*ibin;
+    const double xValue = rescaling_factor*ibin;
     testWS->dataY(0)[ibin]=peakHeight*exp(-0.5*pow(xValue-peakCentre, 2.)/sigmaSq);
     xdata.access()[ibin] = xValue;
   }
-  xdata.access()[numBins] = 4*numBins;
+  xdata.access()[numBins] = rescaling_factor*numBins;
   for( int ihist=0; ihist<numHists; ihist++)
     testWS->setX(ihist, xdata);
   return testWS;
@@ -157,6 +268,7 @@ EventWorkspace_sptr CreateEventWorkspace()
   const bool clearEvents(true);
   EventWorkspace_sptr testWS=WorkspaceCreationHelper::createEventWorkspaceWithFullInstrument(numBanks,numPixels,clearEvents);
   testWS->getAxis(0)->unit()=Mantid::Kernel::UnitFactory::Instance().create("TOF");
+  const double rescaling_factor(4.0);
   const size_t numHists=testWS->getNumberHistograms();
   for (size_t ihist=0; ihist<numHists; ++ihist)
   {
@@ -165,7 +277,7 @@ EventWorkspace_sptr CreateEventWorkspace()
     xdata.access().resize(numBins+1);
     for(int ibin=0; ibin<=numBins; ++ibin)
     {
-      double tof=4*ibin;
+      double tof = rescaling_factor*ibin;
       TofEvent tofevent(tof);
       xdata.access()[ibin]=tof;
       evlist.addEventQuickly(tofevent); // insert event
@@ -175,16 +287,21 @@ EventWorkspace_sptr CreateEventWorkspace()
   return testWS;
 }
 
-void AddToInstrument(MatrixWorkspace_sptr &testWS, const bool &add_deltaE_mode=false, const bool &add_t0_formula=false)
+void AddToIndirectInstrument(MatrixWorkspace_sptr &testWS, const bool &add_t0_formula=false, const bool &add_Efixed=false)
 {
-  const double evalue(2.082); // energy corresponding to the first order Bragg peak in the analyzers
-  if(add_deltaE_mode)
-    testWS->instrumentParameters().addString(testWS->getInstrument()->getComponentID(),"deltaE-mode", "indirect");
-    for(size_t ihist=0; ihist<testWS->getNumberHistograms(); ++ihist)
-      testWS->instrumentParameters().addDouble(testWS->getDetector(ihist)->getComponentID(),"Efixed",evalue);
+
   if(add_t0_formula)
     testWS->instrumentParameters().addString(testWS->getInstrument()->getComponentID(),"t0_formula","50.-(50./52500)*incidentEnergy");
-}
+
+  if(add_Efixed)
+  {
+    const double evalue(2.082); // energy corresponding to the first order Bragg peak in the analyzers
+    for(size_t ihist=0; ihist<testWS->getNumberHistograms(); ++ihist)
+    {
+      testWS->instrumentParameters().addDouble(testWS->getDetector(ihist)->getComponentID(),"Efixed",evalue);
+    }
+  }
+} // end of void AddToInstrumen
 
 };
 
diff --git a/Code/Mantid/Framework/Algorithms/test/PlotAsymmetryByLogValueTest.h b/Code/Mantid/Framework/Algorithms/test/PlotAsymmetryByLogValueTest.h
index 7a5bb3e5ce5e1040e4b9e86f8bdad0fd84c8b17f..7041c99377e243995637634370e52d55b2d94680 100644
--- a/Code/Mantid/Framework/Algorithms/test/PlotAsymmetryByLogValueTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/PlotAsymmetryByLogValueTest.h
@@ -7,6 +7,7 @@
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/TextAxis.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidDataHandling/LoadMuonNexus.h"
 #include "MantidDataHandling/LoadInstrument.h"
@@ -42,7 +43,7 @@ public:
     alg.setPropertyValue("OutputWorkspace","PlotAsymmetryByLogValueTest_WS");
     alg.setPropertyValue("LogValue","Field_Danfysik");
     alg.setPropertyValue("Red","2");
-  alg.setPropertyValue("Green","1");
+    alg.setPropertyValue("Green", "1");
 
     TS_ASSERT_THROWS_NOTHING(alg.execute());
     TS_ASSERT(alg.isExecuted());
@@ -212,8 +213,8 @@ public:
 
     const Mantid::MantidVec& Y = outWs->readY(0);
 
-    TS_ASSERT_DELTA(Y[0], 0.15108, 0.00001);
-    TS_ASSERT_DELTA(Y[1], 0.14389, 0.00001);
+    TS_ASSERT_DELTA(Y[0], 0.15214, 0.00001);
+    TS_ASSERT_DELTA(Y[1], 0.14492, 0.00001);
 
     AnalysisDataService::Instance().remove(ws);
     AnalysisDataService::Instance().remove(deadTimeWs);
@@ -248,12 +249,59 @@ public:
 
     const Mantid::MantidVec& Y = outWs->readY(0);
 
-    TS_ASSERT_DELTA(Y[0], 0.150616, 0.00001);
-    TS_ASSERT_DELTA(Y[1], 0.143444, 0.00001);
+    TS_ASSERT_DELTA(Y[0], 0.151202, 0.00001);
+    TS_ASSERT_DELTA(Y[1], 0.144008, 0.00001);
 
     AnalysisDataService::Instance().remove(ws);
   }
 
+    void test_customGrouping()
+  {
+    PlotAsymmetryByLogValue alg;
+
+    TS_ASSERT_THROWS_NOTHING(alg.initialize());
+
+    alg.setPropertyValue("FirstRun", firstRun);
+    alg.setPropertyValue("LastRun", lastRun);
+    alg.setPropertyValue("OutputWorkspace","PlotAsymmetryByLogValueTest_WS");
+    alg.setPropertyValue("LogValue","run_number");
+    alg.setPropertyValue("Red","2");
+    alg.setPropertyValue("Green","1");
+    alg.setPropertyValue("ForwardSpectra","1-16,33-48");
+    alg.setPropertyValue("BackwardSpectra","17-32,49-64");
+    alg.setPropertyValue("DeadTimeCorrType","None");
+
+    TS_ASSERT_THROWS_NOTHING(alg.execute());
+    TS_ASSERT(alg.isExecuted());
+
+    if(!alg.isExecuted()) return;
+
+    MatrixWorkspace_sptr outWs = boost::dynamic_pointer_cast<MatrixWorkspace>(
+        AnalysisDataService::Instance().retrieve(
+            "PlotAsymmetryByLogValueTest_WS"));
+
+    TS_ASSERT(outWs);
+    TS_ASSERT_EQUALS(outWs->blocksize(), 2);
+    TS_ASSERT_EQUALS(outWs->getNumberHistograms(),4);
+
+    const Mantid::MantidVec& YDiff = outWs->readY(0);
+    const Mantid::MantidVec& EDiff = outWs->readE(0);
+    const Mantid::MantidVec& YSum = outWs->readY(3);
+    const Mantid::MantidVec& ESum = outWs->readE(3);
+
+    TS_ASSERT_DELTA(YDiff[0], 0.001135, 0.000001);
+    TS_ASSERT_DELTA(EDiff[0], 0.001805, 0.000001);
+    TS_ASSERT_DELTA(YDiff[1], -0.000151, 0.000001);
+    TS_ASSERT_DELTA(EDiff[1], 0.001806, 0.000001);
+
+    TS_ASSERT_DELTA(YSum[0], 0.170842, 0.000001);
+    TS_ASSERT_DELTA(ESum[0], 0.001805, 0.000001);
+    TS_ASSERT_DELTA(YSum[1], 0.171467, 0.000001);
+    TS_ASSERT_DELTA(ESum[1], 0.001806, 0.000001);
+
+    AnalysisDataService::Instance().clear();
+  }
+
   void test_LogValueFunction ()
   {
     const std::string ws = "Test_LogValueFunction";
diff --git a/Code/Mantid/Framework/Algorithms/test/Q1DWeightedTest.h b/Code/Mantid/Framework/Algorithms/test/Q1DWeightedTest.h
index d0eb3455b7bb2690d4bfc6d28cef0f49ff5aa238..13bbc48ffb25db0658db4d6975ac811da6924b0b 100644
--- a/Code/Mantid/Framework/Algorithms/test/Q1DWeightedTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/Q1DWeightedTest.h
@@ -92,6 +92,112 @@ public:
 
   }
 
+  // Test whether the WedgeOffset parameter works correctly.
+  void testWedgeOffset() {
+    // Setup is copied from testExec().
+    Mantid::DataHandling::LoadSpice2D loader;
+    loader.initialize();
+    loader.setPropertyValue("Filename", "BioSANS_exp61_scan0004_0001.xml");
+    const std::string inputWS("wav");
+    loader.setPropertyValue("OutputWorkspace", inputWS);
+    loader.execute();
+
+    // Move detector to its correct position
+    Mantid::DataHandling::MoveInstrumentComponent mover;
+    mover.initialize();
+    mover.setPropertyValue("Workspace", inputWS);
+    mover.setPropertyValue("ComponentName", "detector1");
+
+    // According to the instrument geometry, the center of the detector is
+    // located at N_pixel / 2 + 0.5
+    // X = (16-192.0/2.0+0.5)*5.15/1000.0 = -0.409425
+    // Y = (95-192.0/2.0+0.5)*5.15/1000.0 = -0.002575
+    mover.setPropertyValue("X", "0.409425");
+    mover.setPropertyValue("Y", "0.002575");
+    mover.execute();
+
+    const std::string outputWS("result");
+    const std::string wedgeWS1("wedge1");
+    const std::string wedgeWS2("wedge2");
+
+    // Test method:
+    // We use two wedges, which implies that they have an offset of 90 degree.
+    // We then call the algorithm twice, once with offset 0, once with offset
+    // 90. With offset 90 the wedges are thus logically "swapped", so we check
+    // if their values match.
+
+    if (!radial_average.isInitialized())
+      radial_average.initialize();
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("InputWorkspace", inputWS))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("OutputWorkspace", outputWS))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("OutputBinning", "0.01,0.001,0.11"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("NPixelDivision", "3"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("ErrorWeighting", "1"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("WedgeWorkspace", wedgeWS1))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("NumberOfWedges", "2"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("WedgeAngle", "30"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("WedgeOffset", "0"))
+
+    TS_ASSERT_THROWS_NOTHING(radial_average.execute())
+    TS_ASSERT(radial_average.isExecuted())
+
+    if (!radial_average.isInitialized())
+      radial_average.initialize();
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("InputWorkspace", inputWS))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("OutputWorkspace", outputWS))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("OutputBinning", "0.01,0.001,0.11"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("NPixelDivision", "3"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("ErrorWeighting", "1"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("WedgeWorkspace", wedgeWS2))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("NumberOfWedges", "2"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("WedgeAngle", "30"))
+    TS_ASSERT_THROWS_NOTHING(
+        radial_average.setPropertyValue("WedgeOffset", "90"))
+
+    TS_ASSERT_THROWS_NOTHING(radial_average.execute())
+    TS_ASSERT(radial_average.isExecuted())
+
+    // Get wedge 0 of the result with offset 0.
+    auto result1 = boost::dynamic_pointer_cast<Mantid::API::WorkspaceGroup>(
+        Mantid::API::AnalysisDataService::Instance().retrieve(wedgeWS1));
+    auto wedge1 = boost::dynamic_pointer_cast<Mantid::API::MatrixWorkspace>(
+        result1->getItem(0));
+
+    // Get wedge 1 of the result with offset 90.
+    auto result2 = boost::dynamic_pointer_cast<Mantid::API::WorkspaceGroup>(
+        Mantid::API::AnalysisDataService::Instance().retrieve(wedgeWS2));
+    auto wedge2 = boost::dynamic_pointer_cast<Mantid::API::MatrixWorkspace>(
+        result2->getItem(1));
+
+    double tolerance = 1e-12;
+
+    // The two wedges shold be identical.
+    for (size_t i = 0; i < wedge1->dataY(0).size(); ++i)
+      TS_ASSERT_DELTA(wedge1->dataY(0)[i], wedge2->dataY(0)[i], tolerance);
+
+    Mantid::API::AnalysisDataService::Instance().remove(inputWS);
+    Mantid::API::AnalysisDataService::Instance().remove(outputWS);
+    Mantid::API::AnalysisDataService::Instance().remove(wedgeWS1);
+    Mantid::API::AnalysisDataService::Instance().remove(wedgeWS2);
+  }
+
 private:
   Mantid::Algorithms::Q1DWeighted radial_average;
   std::string inputWS;
diff --git a/Code/Mantid/Framework/Algorithms/test/RebinByTimeAtSampleTest.h b/Code/Mantid/Framework/Algorithms/test/RebinByTimeAtSampleTest.h
index 540851a292011245d5c4413a0b8b6071d8fa15fa..0c954ee9fd72df1353718f4fb747227c35ff073c 100644
--- a/Code/Mantid/Framework/Algorithms/test/RebinByTimeAtSampleTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/RebinByTimeAtSampleTest.h
@@ -4,12 +4,16 @@
 #include <cxxtest/TestSuite.h>
 #include "RebinByTimeBaseTest.h"
 #include "MantidAlgorithms/RebinByTimeAtSample.h"
+#include "MantidGeometry/Instrument/Detector.h"
+#include "MantidGeometry/Instrument/Component.h"
 #include <numeric>
+#include <cmath>
 
 using Mantid::Algorithms::RebinByTimeAtSample;
 
 namespace
 {
+
   /**
    Helper method to create an event workspace around some different geometries (for each detector) L1 and L2. with uniform TOFs for each and pulse time of zero.
    */
@@ -263,6 +267,7 @@ public:
     TSM_ASSERT_EQUALS("Spectrum 3 should only contain one count", 1.0, y3Sum);
 
   }
+
 };
 
 //=====================================================================================
diff --git a/Code/Mantid/Framework/Algorithms/test/RebinByTimeBaseTest.h b/Code/Mantid/Framework/Algorithms/test/RebinByTimeBaseTest.h
index 30d2835542d27f633fc571a73c2edc2d4337a3aa..db81f664679b49f40b42fd3e44c625a7a362508e 100644
--- a/Code/Mantid/Framework/Algorithms/test/RebinByTimeBaseTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/RebinByTimeBaseTest.h
@@ -91,6 +91,12 @@ namespace
     MOCK_CONST_METHOD0(getSpecialCoordinateSystem, Mantid::Kernel::SpecialCoordinateSystem());
     virtual ~MockIEventWorkspace()
     {}
+
+  private:
+    virtual MockIEventWorkspace *doClone() const {
+      throw std::runtime_error(
+          "Cloning of MockIEventWorkspace is not implemented.");
+    }
   };}
 //=====================================================================================
 // Functional Tests
diff --git a/Code/Mantid/Framework/Algorithms/test/ReflectometryReductionOneAutoTest.h b/Code/Mantid/Framework/Algorithms/test/ReflectometryReductionOneAutoTest.h
index af5e200bdb2fd3981e43d6803b8ee2adcd4917b8..51570fa8ba427fab9ba9f7918158401bd8f7cb3b 100644
--- a/Code/Mantid/Framework/Algorithms/test/ReflectometryReductionOneAutoTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ReflectometryReductionOneAutoTest.h
@@ -6,14 +6,18 @@
 #include "MantidAlgorithms/ReflectometryReductionOneAuto.h"
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/AlgorithmManager.h"
+#include "MantidGeometry/Instrument/ReferenceFrame.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 #include <boost/assign/list_of.hpp>
 
 using Mantid::Algorithms::ReflectometryReductionOneAuto;
-using namespace Mantid::Kernel;
 using namespace Mantid::API;
-using namespace boost::assign;
+using namespace Mantid::DataObjects;
+using namespace Mantid::Geometry;
+using namespace Mantid::Kernel;
 using Mantid::MantidVec;
+using Mantid::MantidVecPtr;
+using namespace boost::assign;
 
 namespace
 {
@@ -249,20 +253,6 @@ public:
     TS_ASSERT_THROWS(alg->setProperty("I0MonitorIndex", -1), std::invalid_argument);
   }
 
-  void test_workspace_index_list_throw_if_not_pairs()
-  {
-    auto alg = construct_standard_algorithm();
-    alg->setProperty("ProcessingInstructions", "0");
-    TS_ASSERT_THROWS(alg->execute(), std::runtime_error);
-  }
-
-  void test_workspace_index_list_values_not_positive_throws()
-  {
-    auto alg = construct_standard_algorithm();
-    alg->setProperty("ProcessingInstructions", "-1, 0"); //-1 is not acceptable.
-    TS_ASSERT_THROWS(alg->execute(), std::invalid_argument);
-  }
-
   void test_cannot_set_direct_beam_region_of_interest_without_multidetector_run()
   {
     auto alg = construct_standard_algorithm();
@@ -387,6 +377,120 @@ public:
     AnalysisDataService::Instance().remove(outWSLamName);
   }
 
+  void test_normalize_by_detmon()
+  {
+    //Prepare workspace
+    //-----------------
+    MantidVecPtr x, e, detData, monData;
+
+    //Single bin from 0->1
+    x.access().resize(2);
+    x.access()[0] = 0;
+    x.access()[1] = 1;
+    //No error at all
+    e.access().resize(1, 0.0);
+
+    //Set the detector and monitor y values
+    detData.access().resize(1, 10);
+    monData.access().resize(1, 5);
+
+    auto tinyWS = MatrixWorkspace_sptr(new Workspace2D());
+    // 2 spectra, 2 x values, 1 y value per spectra
+    tinyWS->initialize(2, 2, 1);
+    tinyWS->setX(0, x);
+    tinyWS->setX(1, x);
+    tinyWS->setData(0, detData, e);
+    tinyWS->setData(1, monData, e);
+
+    tinyWS->setTitle("Test histogram");
+    tinyWS->getAxis(0)->setUnit("Wavelength");
+    tinyWS->setYUnit("Counts");
+
+
+    //Prepare instrument
+    //------------------
+    Instrument_sptr instrument = boost::make_shared<Instrument>();
+    instrument->setReferenceFrame(
+        boost::make_shared<ReferenceFrame>(Y, X, Left, "0,0,0"));
+
+    ObjComponent *source = new ObjComponent("source");
+    source->setPos(V3D(0, 0, 0));
+    instrument->add(source);
+    instrument->markAsSource(source);
+
+
+    ObjComponent *sample = new ObjComponent("some-surface-holder");
+    source->setPos(V3D(15, 0, 0));
+    instrument->add(sample);
+    instrument->markAsSamplePos(sample);
+
+    Detector *det = new Detector("point-detector", 1, NULL);
+    det->setPos(20, (20 - sample->getPos().X()), 0);
+    instrument->add(det);
+    instrument->markAsDetector(det);
+
+    Detector *monitor = new Detector("Monitor", 2, NULL);
+    monitor->setPos(14, 0, 0);
+    instrument->add(monitor);
+    instrument->markAsMonitor(monitor);
+
+    //Add instrument to workspace
+    tinyWS->setInstrument(instrument);
+    tinyWS->getSpectrum(0)->addDetectorID(det->getID());
+    tinyWS->getSpectrum(1)->addDetectorID(monitor->getID());
+
+    //Now we can parameterize the instrument
+    auto tinyInst = tinyWS->getInstrument();
+    ParameterMap_sptr params = tinyInst->getParameterMap();
+    params->addDouble(tinyInst.get(), "PointDetectorStart", 0.0);
+    params->addDouble(tinyInst.get(), "PointDetectorStop", 0.0);
+    params->addDouble(tinyInst.get(), "I0MonitorIndex", 1.0);
+    params->addDouble(tinyInst.get(), "LambdaMin", 0.0);
+    params->addDouble(tinyInst.get(), "LambdaMax", 10.0);
+    params->addDouble(tinyInst.get(), "MonitorBackgroundMin", 0.0);
+    params->addDouble(tinyInst.get(), "MonitorBackgroundMax", 0.0);
+    params->addDouble(tinyInst.get(), "MonitorIntegralMin", 0.0);
+    params->addDouble(tinyInst.get(), "MonitorIntegralMax", 10.0);
+
+    tinyWS->mutableRun().addLogData(new PropertyWithValue<double>("Theta", 0.1));
+
+    //Run the required algorithms
+    //---------------------------
+
+    //Convert units
+    IAlgorithm_sptr conv = AlgorithmManager::Instance().create("ConvertUnits");
+    conv->initialize();
+    conv->setProperty("InputWorkspace", tinyWS);
+    conv->setProperty("OutputWorkspace", inWSName);
+    conv->setProperty("Target", "TOF");
+    conv->execute();
+    TS_ASSERT(conv->isExecuted());
+
+    //Reduce
+    IAlgorithm_sptr alg = AlgorithmManager::Instance().create("ReflectometryReductionOneAuto");
+    alg->setRethrows(true);
+    TS_ASSERT_THROWS_NOTHING(alg->initialize());
+    TS_ASSERT_THROWS_NOTHING(alg->setProperty("InputWorkspace", inWSName));
+    TS_ASSERT_THROWS_NOTHING(alg->setProperty("NormalizeByIntegratedMonitors", false));
+    TS_ASSERT_THROWS_NOTHING(alg->setProperty("WavelengthStep", 1.0));
+    TS_ASSERT_THROWS_NOTHING(alg->setPropertyValue("OutputWorkspace", outWSQName));
+    TS_ASSERT_THROWS_NOTHING(alg->setPropertyValue("OutputWorkspaceWavelength", outWSLamName));
+    alg->execute();
+    TS_ASSERT(alg->isExecuted());
+
+    //Get results
+    MatrixWorkspace_sptr outWSLam = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(outWSLamName);
+
+    //Check results (10 / 5 = 2)
+    TS_ASSERT_DELTA(outWSLam->readY(0)[0], 2, 1e-5);
+    TS_ASSERT_DELTA(outWSLam->readX(0)[0], 0, 1e-5);
+    TS_ASSERT_DELTA(outWSLam->readX(0)[1], 1, 1e-5);
+
+    // Remove workspace from the data service.
+    AnalysisDataService::Instance().remove(inWSName);
+    AnalysisDataService::Instance().remove(outWSQName);
+    AnalysisDataService::Instance().remove(outWSLamName);
+  }
 };
 
 #endif /* MANTID_ALGORITHMS_REFLECTOMETRYREDUCTIONONEAUTOTEST_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/test/SmoothDataTest.h b/Code/Mantid/Framework/Algorithms/test/SmoothDataTest.h
index ae99e9ed82785283e3f412fcba9023af9c4da338..0cdaadc06437466b3af25b120047f58d00d7de41 100644
--- a/Code/Mantid/Framework/Algorithms/test/SmoothDataTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/SmoothDataTest.h
@@ -2,103 +2,176 @@
 #define SMOOTHDATATEST_H_
 
 #include <cxxtest/TestSuite.h>
-
+#include "MantidAlgorithms/CreateSampleWorkspace.h"
+#include "MantidAlgorithms/CreateGroupingWorkspace.h"
 #include "MantidAlgorithms/SmoothData.h"
+#include "MantidAPI/FrameworkManager.h"
+#include "MantidDataObjects/GroupingWorkspace.h"
 
 using namespace Mantid::API;
 using namespace Mantid::Algorithms;
+using namespace Mantid::DataObjects;
 
-class SmoothDataTest : public CxxTest::TestSuite
-{
+class SmoothDataTest : public CxxTest::TestSuite {
 public:
   static SmoothDataTest *createSuite() { return new SmoothDataTest(); }
   static void destroySuite(SmoothDataTest *suite) { delete suite; }
-  
-  SmoothDataTest()
-  {
+
+  SmoothDataTest() {
+    FrameworkManager::Instance();
     // Set up a small workspace for testing
-    MatrixWorkspace_sptr space = WorkspaceFactory::Instance().create("Workspace2D",2,10,10);
-    for (int i = 0; i < 10; ++i)
-    {
-      space->dataY(0)[i] = i+1.0;
-      space->dataE(0)[i] = sqrt(i+1.0);
+    MatrixWorkspace_sptr space =
+        WorkspaceFactory::Instance().create("Workspace2D", 2, 10, 10);
+    for (int i = 0; i < 10; ++i) {
+      space->dataY(0)[i] = i + 1.0;
+      space->dataE(0)[i] = sqrt(i + 1.0);
     }
 
     // Register the workspace in the data service
     AnalysisDataService::Instance().add("noisy", space);
   }
 
-  void testName()
-  {
-    TS_ASSERT_EQUALS( smooth.name(), "SmoothData" );
+  void testName() {
+    SmoothData smooth;
+    TS_ASSERT_EQUALS(smooth.name(), "SmoothData");
   }
 
-  void testVersion()
-  {
-    TS_ASSERT_EQUALS( smooth.version(), 1 );
+  void testVersion() {
+    SmoothData smooth;
+    TS_ASSERT_EQUALS(smooth.version(), 1);
   }
 
-  void testInit()
-  {
-    TS_ASSERT_THROWS_NOTHING( smooth.initialize() );
-    TS_ASSERT( smooth.isInitialized() );
+  void testInit() {
+    SmoothData smooth;
+    TS_ASSERT_THROWS_NOTHING(smooth.initialize());
+    TS_ASSERT(smooth.isInitialized());
   }
 
-  void testInvalidInputs()
-  {
+  void testInvalidInputs() {
     SmoothData smooth2;
-    TS_ASSERT_THROWS_NOTHING( smooth2.initialize() );
-    TS_ASSERT_THROWS( smooth2.execute(), std::runtime_error );
+    TS_ASSERT_THROWS_NOTHING(smooth2.initialize());
+    TS_ASSERT_THROWS(smooth2.execute(), std::runtime_error);
     // Can't set Npoints to value less than 3
-    TS_ASSERT_THROWS( smooth2.setPropertyValue("NPoints","1"), std::invalid_argument );
+    TS_ASSERT_THROWS(smooth2.setPropertyValue("NPoints", "1"),
+                     std::invalid_argument);
 
-    TS_ASSERT_THROWS_NOTHING( smooth2.setPropertyValue("InputWorkspace","noisy") );
-    TS_ASSERT_THROWS_NOTHING( smooth2.setPropertyValue("OutputWorkspace","something") );
+    TS_ASSERT_THROWS_NOTHING(
+        smooth2.setPropertyValue("InputWorkspace", "noisy"));
+    TS_ASSERT_THROWS_NOTHING(
+        smooth2.setPropertyValue("OutputWorkspace", "something"));
     // Will also fail if NPoints is larger than spectrum length
-    TS_ASSERT_THROWS_NOTHING( smooth2.setPropertyValue("NPoints","11") );
-    TS_ASSERT_THROWS_NOTHING( smooth2.execute() );
-    TS_ASSERT( ! smooth2.isExecuted() );
+    TS_ASSERT_THROWS_NOTHING(smooth2.setPropertyValue("NPoints", "11"));
+    TS_ASSERT_THROWS_NOTHING(smooth2.execute());
+    TS_ASSERT(!smooth2.isExecuted());
   }
 
-  void testExec()
-  {
-    if ( !smooth.isInitialized() ) smooth.initialize();
+  void testGroupspaceProperty() {
+
+    MatrixWorkspace_sptr createSampleWorkspace;
+    // Creating sample workspace
+    CreateSampleWorkspace createWS;
+    createWS.initialize();
+    createWS.setChild(true);
+    // setting property
+    std::string outWSName("CreateWorkspaceTest_OutputWS");
+    TS_ASSERT_THROWS_NOTHING(
+        createWS.setPropertyValue("OutputWorkspace", outWSName));
+    TS_ASSERT_THROWS_NOTHING(createWS.execute(););
+    MatrixWorkspace_sptr outWS = createWS.getProperty("OutputWorkspace");
+
+    // Creating group workspace
+    CreateGroupingWorkspace alg;
+    alg.initialize();
+    alg.setChild(true);
+    std::string outGWSName("CreateGroupingWorkspaceTest_OutputWS");
+    TS_ASSERT_THROWS_NOTHING(alg.setProperty("InputWorkspace", outWS));
+    TS_ASSERT_THROWS_NOTHING(alg.setPropertyValue("GroupNames", "bank1,bank2"));
+    TS_ASSERT_THROWS_NOTHING(
+        alg.setPropertyValue("OutputWorkspace", outGWSName));
+    TS_ASSERT_THROWS_NOTHING(alg.execute());
+    TS_ASSERT(alg.isExecuted());
+    GroupingWorkspace_sptr groupingWS = alg.getProperty("OutputWorkspace");
+
+    SmoothData smooth;
+    smooth.initialize();
+    smooth.setChild(true);
+    TS_ASSERT_THROWS_NOTHING(smooth.setProperty("InputWorkspace", outWS));
+    std::string outputWS("smoothed");
+    TS_ASSERT_THROWS_NOTHING(
+        smooth.setPropertyValue("OutputWorkspace", outputWS));
+    // Set to 4 - algorithm should change it to 5
+    TS_ASSERT_THROWS_NOTHING(smooth.setPropertyValue("NPoints", "3,5"));
+    TS_ASSERT_THROWS_NOTHING(
+        smooth.setProperty("GroupingWorkspace", groupingWS));
+    TS_ASSERT_THROWS_NOTHING(smooth.execute());
+    TS_ASSERT(smooth.isExecuted());
+
+    MatrixWorkspace_const_sptr output = smooth.getProperty("OutputWorkspace");
+    // as alg child is set true, wouldnt need to use AnalysisDataService
+    const Mantid::MantidVec &Y = output->dataY(0);
+    const Mantid::MantidVec &X = output->dataX(0);
+    const Mantid::MantidVec &E = output->dataE(0);
+    TS_ASSERT_EQUALS(Y[0], 0.3);
+    TS_ASSERT_EQUALS(X[6], 1200);
+    TS_ASSERT_DIFFERS(E[2], Y[2]);
+    for (int i = 0; i < 4; ++i) {
+      TS_ASSERT_EQUALS(Y[i], 0.3);
+      TS_ASSERT_EQUALS(X[i + 1], (i + 1) * 200);
+    }
+    TS_ASSERT_LESS_THAN(E[8], 0.31625);
+    TS_ASSERT_EQUALS(Y[10], Y[15]);
+    TS_ASSERT_DIFFERS(Y[50], Y[45]);
+    TS_ASSERT_EQUALS(X[50], 10000);
+    TS_ASSERT_DIFFERS(Y[51], 3.63333333333333);
+    TS_ASSERT_LESS_THAN_EQUALS(E[15], 0.3169);
+    TS_ASSERT_EQUALS(X[16], 3200);
+    TS_ASSERT_LESS_THAN_EQUALS(Y[49], 3.64);
+    TS_ASSERT_DIFFERS(X[2], E[2]);
+    TS_ASSERT_DIFFERS(X[0], Y[0]);
+    TS_ASSERT_DIFFERS(E[5], Y[5]);
+    // Check X vectors are shared
+    TS_ASSERT_EQUALS(&(output->dataX(0)), &(output->dataX(1)));
+  }
 
-    TS_ASSERT_THROWS_NOTHING( smooth.setPropertyValue("InputWorkspace","noisy") );
+  void testExec() {
+    SmoothData smooth;
+    smooth.initialize();
+
+    TS_ASSERT_THROWS_NOTHING(
+        smooth.setPropertyValue("InputWorkspace", "noisy"));
     std::string outputWS("smoothed");
-    TS_ASSERT_THROWS_NOTHING( smooth.setPropertyValue("OutputWorkspace",outputWS) );
+    TS_ASSERT_THROWS_NOTHING(
+        smooth.setPropertyValue("OutputWorkspace", outputWS));
     // Set to 4 - algorithm should change it to 5
-    TS_ASSERT_THROWS_NOTHING( smooth.setPropertyValue("NPoints","4") );
+    TS_ASSERT_THROWS_NOTHING(smooth.setPropertyValue("NPoints", "4"));
 
-    TS_ASSERT_THROWS_NOTHING( smooth.execute() );
-    TS_ASSERT( smooth.isExecuted() );
+    TS_ASSERT_THROWS_NOTHING(smooth.execute());
+    TS_ASSERT(smooth.isExecuted());
 
     MatrixWorkspace_const_sptr output;
-    TS_ASSERT_THROWS_NOTHING( output = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(outputWS) );
+    TS_ASSERT_THROWS_NOTHING(
+        output = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+            outputWS));
     const Mantid::MantidVec &Y = output->dataY(0);
     const Mantid::MantidVec &E = output->dataE(0);
-    TS_ASSERT_EQUALS( Y[0], 2 );
-    TS_ASSERT_DELTA( E[0], sqrt(Y[0]/3.0), 0.0001 );
-    TS_ASSERT_EQUALS( Y[1], 2.5 );
-    TS_ASSERT_DELTA( E[1], sqrt(Y[1]/4.0), 0.0001 );
-    for (size_t i = 2; i < output->blocksize()-2; ++i)
-    {
-      TS_ASSERT_EQUALS( Y[i], static_cast<double>(i)+1.0 );
-      TS_ASSERT_DELTA( E[i], sqrt(Y[i]/5.0), 0.0001 );
+    TS_ASSERT_EQUALS(Y[0], 2);
+    TS_ASSERT_DELTA(E[0], sqrt(Y[0] / 3.0), 0.0001);
+    TS_ASSERT_EQUALS(Y[1], 2.5);
+    TS_ASSERT_DELTA(E[1], sqrt(Y[1] / 4.0), 0.0001);
+    for (size_t i = 2; i < output->blocksize() - 2; ++i) {
+      TS_ASSERT_EQUALS(Y[i], static_cast<double>(i) + 1.0);
+      TS_ASSERT_DELTA(E[i], sqrt(Y[i] / 5.0), 0.0001);
     }
-    TS_ASSERT_EQUALS( Y[8], 8.5 );
-    TS_ASSERT_DELTA( E[8], sqrt(Y[8]/4.0), 0.0001 );
-    TS_ASSERT_EQUALS( Y[9], 9 );
-    TS_ASSERT_DELTA( E[9], sqrt(Y[9]/3.0), 0.0001 );
+    TS_ASSERT_EQUALS(Y[8], 8.5);
+    TS_ASSERT_DELTA(E[8], sqrt(Y[8] / 4.0), 0.0001);
+    TS_ASSERT_EQUALS(Y[9], 9);
+    TS_ASSERT_DELTA(E[9], sqrt(Y[9] / 3.0), 0.0001);
 
     // Check X vectors are shared
-    TS_ASSERT_EQUALS( &(output->dataX(0)), &(output->dataX(1)) );
+    TS_ASSERT_EQUALS(&(output->dataX(0)), &(output->dataX(1)));
 
     AnalysisDataService::Instance().remove(outputWS);
   }
-
-private:
-  SmoothData smooth;
 };
 
 #endif /*SMOOTHDATATEST_H_*/
diff --git a/Code/Mantid/Framework/Algorithms/test/SofQWNormalisedPolygonTest.h b/Code/Mantid/Framework/Algorithms/test/SofQWNormalisedPolygonTest.h
index bdc83bf2afb8e027d5cd0025f4283297b75bf378..bc56e96df0527948ce663c8047649d3316802e58 100644
--- a/Code/Mantid/Framework/Algorithms/test/SofQWNormalisedPolygonTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/SofQWNormalisedPolygonTest.h
@@ -5,64 +5,85 @@
 #include "MantidAlgorithms/SofQWNormalisedPolygon.h"
 
 #include "SofQWTest.h"
+#include <boost/assign.hpp>
 
 using namespace Mantid::Algorithms;
 using namespace Mantid::API;
 
-class SofQWNormalisedPolygonTest : public CxxTest::TestSuite
-{
+class SofQWNormalisedPolygonTest : public CxxTest::TestSuite {
 public:
-
-  void test_Init()
-  {
+  void test_Init() {
     SofQWNormalisedPolygon alg;
-    TS_ASSERT_THROWS_NOTHING( alg.initialize() )
-    TS_ASSERT( alg.isInitialized() )
+    TS_ASSERT_THROWS_NOTHING(alg.initialize())
+    TS_ASSERT(alg.isInitialized())
   }
 
-  void test_Aliased_To_SofQW3()
-  {
+  void test_Aliased_To_SofQW3() {
     SofQWNormalisedPolygon alg;
     TS_ASSERT_EQUALS("SofQW3", alg.alias())
   }
 
-  void test_exec()
-  {
-    auto result = SofQWTest::runSQW<Mantid::Algorithms::SofQWNormalisedPolygon>();
+  void test_exec() {
+    auto result =
+        SofQWTest::runSQW<Mantid::Algorithms::SofQWNormalisedPolygon>();
 
-    TS_ASSERT_EQUALS( result->getAxis(0)->length(), 1904 );
-    TS_ASSERT_EQUALS( result->getAxis(0)->unit()->unitID(), "DeltaE" );
-    TS_ASSERT_DELTA( (*(result->getAxis(0)))(0), -0.5590, 0.0001 );
-    TS_ASSERT_DELTA( (*(result->getAxis(0)))(999), -0.0971, 0.0001 );
-    TS_ASSERT_DELTA( (*(result->getAxis(0)))(1900), 0.5728, 0.0001 );
+    TS_ASSERT_EQUALS(result->getAxis(0)->length(), 1904);
+    TS_ASSERT_EQUALS(result->getAxis(0)->unit()->unitID(), "DeltaE");
+    TS_ASSERT_DELTA((*(result->getAxis(0)))(0), -0.5590, 0.0001);
+    TS_ASSERT_DELTA((*(result->getAxis(0)))(999), -0.0971, 0.0001);
+    TS_ASSERT_DELTA((*(result->getAxis(0)))(1900), 0.5728, 0.0001);
 
-    TS_ASSERT_EQUALS( result->getAxis(1)->length(), 7 );
-    TS_ASSERT_EQUALS( result->getAxis(1)->unit()->unitID(), "MomentumTransfer" );
-    TS_ASSERT_EQUALS( (*(result->getAxis(1)))(0), 0.5 );
-    TS_ASSERT_EQUALS( (*(result->getAxis(1)))(3), 1.25 );
-    TS_ASSERT_EQUALS( (*(result->getAxis(1)))(6), 2.0 );
+    TS_ASSERT_EQUALS(result->getAxis(1)->length(), 7);
+    TS_ASSERT_EQUALS(result->getAxis(1)->unit()->unitID(), "MomentumTransfer");
+    TS_ASSERT_EQUALS((*(result->getAxis(1)))(0), 0.5);
+    TS_ASSERT_EQUALS((*(result->getAxis(1)))(3), 1.25);
+    TS_ASSERT_EQUALS((*(result->getAxis(1)))(6), 2.0);
 
     const double delta(1e-08);
-    TS_ASSERT_DELTA( result->readY(0)[1160], 22.8567683273, delta);
-    TS_ASSERT_DELTA( result->readE(0)[1160], 0.2568965638, delta);
-
-    TS_ASSERT_DELTA( result->readY(1)[1145], 7.5942160104, delta);
-    TS_ASSERT_DELTA( result->readE(1)[1145], 0.1490079010 ,delta);
-
-    TS_ASSERT_DELTA( result->readY(2)[1200], 2.0249626546, delta);
-    TS_ASSERT_DELTA( result->readE(2)[1200], 0.0752776593, delta);
-
-    TS_ASSERT_DELTA( result->readY(3)[99], 0.0419939169, delta);
-    TS_ASSERT_DELTA( result->readE(3)[99], 0.0175106375, delta);
-
-    TS_ASSERT_DELTA( result->readY(4)[1654], 0.0167189448, delta);
-    TS_ASSERT_DELTA( result->readE(4)[1654], 0.0056801131, delta);
-
-    TS_ASSERT_DELTA( result->readY(5)[1025], 0.0808168496, delta);
-    TS_ASSERT_DELTA( result->readE(5)[1025], 0.0161117732, delta);
-
+    TS_ASSERT_DELTA(result->readY(0)[1160], 22.8567683273, delta);
+    TS_ASSERT_DELTA(result->readE(0)[1160], 0.2568965638, delta);
+
+    TS_ASSERT_DELTA(result->readY(1)[1145], 7.5942160104, delta);
+    TS_ASSERT_DELTA(result->readE(1)[1145], 0.1490079010, delta);
+
+    TS_ASSERT_DELTA(result->readY(2)[1200], 2.0249626546, delta);
+    TS_ASSERT_DELTA(result->readE(2)[1200], 0.0752776593, delta);
+
+    TS_ASSERT_DELTA(result->readY(3)[99], 0.0419939169, delta);
+    TS_ASSERT_DELTA(result->readE(3)[99], 0.0175106375, delta);
+
+    TS_ASSERT_DELTA(result->readY(4)[1654], 0.0167189448, delta);
+    TS_ASSERT_DELTA(result->readE(4)[1654], 0.0056801131, delta);
+
+    TS_ASSERT_DELTA(result->readY(5)[1025], 0.0808168496, delta);
+    TS_ASSERT_DELTA(result->readE(5)[1025], 0.0161117732, delta);
+
+    // Spectra-detector mapping
+    const size_t nspectra(6);
+    using namespace boost::assign;
+    typedef std::set<int> IDSet;
+    std::vector<IDSet> expectedIDs(nspectra);
+    IDSet s1 = list_of(3);
+    expectedIDs[0] = s1;
+    IDSet s2 = list_of(13);
+    expectedIDs[1] = s2;
+    IDSet s3 = list_of(13)(23);
+    expectedIDs[2] = s3;
+    IDSet s4 = list_of(23)(33);
+    expectedIDs[3] = s4;
+    IDSet s5 = list_of(33)(43);
+    expectedIDs[4] = s5;
+    IDSet s6 = list_of(43);
+    expectedIDs[5] = s6;
+
+    for (size_t i = 0; i < nspectra; ++i) {
+      const auto *spectrum = result->getSpectrum(i);
+      Mantid::specid_t specNoActual = spectrum->getSpectrumNo();
+      Mantid::specid_t specNoExpected = static_cast<Mantid::specid_t>(i + 1);
+      TS_ASSERT_EQUALS(specNoExpected, specNoActual);
+      TS_ASSERT_EQUALS(expectedIDs[i], spectrum->getDetectorIDs());
+    }
   }
 };
 
-
 #endif /* MANTID_ALGORITHMS_SOFQW2TEST_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/test/SofQWPolygonTest.h b/Code/Mantid/Framework/Algorithms/test/SofQWPolygonTest.h
index ddb245adbdf38dd12e118a65566c25cdae7fd4c3..67f98a4c90189bd7bc09c1eae8337ca2b04e4901 100644
--- a/Code/Mantid/Framework/Algorithms/test/SofQWPolygonTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/SofQWPolygonTest.h
@@ -5,64 +5,84 @@
 #include "MantidAlgorithms/SofQWPolygon.h"
 
 #include "SofQWTest.h"
+#include <boost/assign.hpp>
 
 using namespace Mantid::Algorithms;
 using namespace Mantid::API;
 
-class SofQWPolygonTest : public CxxTest::TestSuite
-{
+class SofQWPolygonTest : public CxxTest::TestSuite {
 public:
-
-  void test_Init()
-  {
+  void test_Init() {
     SofQWPolygon alg;
-    TS_ASSERT_THROWS_NOTHING( alg.initialize() )
-    TS_ASSERT( alg.isInitialized() )
+    TS_ASSERT_THROWS_NOTHING(alg.initialize())
+    TS_ASSERT(alg.isInitialized())
   }
 
-  void test_Aliased_To_SofQW2()
-  {
+  void test_Aliased_To_SofQW2() {
     SofQWPolygon alg;
     TS_ASSERT_EQUALS("SofQW2", alg.alias())
   }
 
-  void test_exec()
-  {
+  void test_exec() {
     auto result = SofQWTest::runSQW<Mantid::Algorithms::SofQWPolygon>();
 
-    TS_ASSERT_EQUALS( result->getAxis(0)->length(), 1904 );
-    TS_ASSERT_EQUALS( result->getAxis(0)->unit()->unitID(), "DeltaE" );
-    TS_ASSERT_DELTA( (*(result->getAxis(0)))(0), -0.5590, 0.0001 );
-    TS_ASSERT_DELTA( (*(result->getAxis(0)))(999), -0.0971, 0.0001 );
-    TS_ASSERT_DELTA( (*(result->getAxis(0)))(1900), 0.5728, 0.0001 );
+    TS_ASSERT_EQUALS(result->getAxis(0)->length(), 1904);
+    TS_ASSERT_EQUALS(result->getAxis(0)->unit()->unitID(), "DeltaE");
+    TS_ASSERT_DELTA((*(result->getAxis(0)))(0), -0.5590, 0.0001);
+    TS_ASSERT_DELTA((*(result->getAxis(0)))(999), -0.0971, 0.0001);
+    TS_ASSERT_DELTA((*(result->getAxis(0)))(1900), 0.5728, 0.0001);
 
-    TS_ASSERT_EQUALS( result->getAxis(1)->length(), 7 );
-    TS_ASSERT_EQUALS( result->getAxis(1)->unit()->unitID(), "MomentumTransfer" );
-    TS_ASSERT_EQUALS( (*(result->getAxis(1)))(0), 0.5 );
-    TS_ASSERT_EQUALS( (*(result->getAxis(1)))(3), 1.25 );
-    TS_ASSERT_EQUALS( (*(result->getAxis(1)))(6), 2.0 );
+    TS_ASSERT_EQUALS(result->getAxis(1)->length(), 7);
+    TS_ASSERT_EQUALS(result->getAxis(1)->unit()->unitID(), "MomentumTransfer");
+    TS_ASSERT_EQUALS((*(result->getAxis(1)))(0), 0.5);
+    TS_ASSERT_EQUALS((*(result->getAxis(1)))(3), 1.25);
+    TS_ASSERT_EQUALS((*(result->getAxis(1)))(6), 2.0);
 
     const double delta(1e-08);
-    TS_ASSERT_DELTA( result->readY(0)[1160], 17.5583314826, delta);
-    TS_ASSERT_DELTA( result->readE(0)[1160], 0.197345265992, delta);
-
-    TS_ASSERT_DELTA( result->readY(1)[1145], 4.61301046588, delta);
-    TS_ASSERT_DELTA( result->readE(1)[1145], 0.0721823446635,delta);
-
-    TS_ASSERT_DELTA( result->readY(2)[1200], 1.33394133548, delta);
-    TS_ASSERT_DELTA( result->readE(2)[1200], 0.0419839252961, delta);
-
-    TS_ASSERT_DELTA( result->readY(3)[99], 0.0446085388561, delta);
-    TS_ASSERT_DELTA( result->readE(3)[99], 0.0185049423467, delta);
-
-    TS_ASSERT_DELTA( result->readY(4)[1654], 0.0171136490957 , delta);
-    TS_ASSERT_DELTA( result->readE(4)[1654], 0.005007299861, delta);
-
-    TS_ASSERT_DELTA( result->readY(5)[1025], 0.0516113202152, delta);
-    TS_ASSERT_DELTA( result->readE(5)[1025], 0.0102893133461, delta);
-
+    TS_ASSERT_DELTA(result->readY(0)[1160], 17.5583314826, delta);
+    TS_ASSERT_DELTA(result->readE(0)[1160], 0.197345265992, delta);
+
+    TS_ASSERT_DELTA(result->readY(1)[1145], 4.61301046588, delta);
+    TS_ASSERT_DELTA(result->readE(1)[1145], 0.0721823446635, delta);
+
+    TS_ASSERT_DELTA(result->readY(2)[1200], 1.33394133548, delta);
+    TS_ASSERT_DELTA(result->readE(2)[1200], 0.0419839252961, delta);
+
+    TS_ASSERT_DELTA(result->readY(3)[99], 0.0446085388561, delta);
+    TS_ASSERT_DELTA(result->readE(3)[99], 0.0185049423467, delta);
+
+    TS_ASSERT_DELTA(result->readY(4)[1654], 0.0171136490957, delta);
+    TS_ASSERT_DELTA(result->readE(4)[1654], 0.005007299861, delta);
+
+    TS_ASSERT_DELTA(result->readY(5)[1025], 0.0516113202152, delta);
+    TS_ASSERT_DELTA(result->readE(5)[1025], 0.0102893133461, delta);
+
+    // Spectra-detector mapping
+    const size_t nspectra(6);
+    using namespace boost::assign;
+    typedef std::set<int> IDSet;
+    std::vector<IDSet> expectedIDs(nspectra);
+    IDSet s1 = list_of(3);
+    expectedIDs[0] = s1;
+    IDSet s2 = list_of(13);
+    expectedIDs[1] = s2;
+    IDSet s3 = list_of(23);
+    expectedIDs[2] = s3;
+    IDSet s4 = list_of(23)(33);
+    expectedIDs[3] = s4;
+    IDSet s5 = list_of(33)(43);
+    expectedIDs[4] = s5;
+    IDSet s6 = list_of(43);
+    expectedIDs[5] = s6;
+
+    for (size_t i = 0; i < nspectra; ++i) {
+      const auto *spectrum = result->getSpectrum(i);
+      Mantid::specid_t specNoActual = spectrum->getSpectrumNo();
+      Mantid::specid_t specNoExpected = static_cast<Mantid::specid_t>(i + 1);
+      TS_ASSERT_EQUALS(specNoExpected, specNoActual);
+      TS_ASSERT_EQUALS(expectedIDs[i], spectrum->getDetectorIDs());
+    }
   }
 };
 
-
 #endif /* MANTID_ALGORITHMS_SofQWPolygonTEST_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/test/TimeAtSampleStrategyDirectTest.h b/Code/Mantid/Framework/Algorithms/test/TimeAtSampleStrategyDirectTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..c94f774af71e578730c9f72322f9a8f33a9eb10b
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/test/TimeAtSampleStrategyDirectTest.h
@@ -0,0 +1,58 @@
+#ifndef MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYDIRECTTEST_H_
+#define MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYDIRECTTEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include "MantidTestHelpers/WorkspaceCreationHelper.h"
+#include "MantidGeometry/IDetector.h"
+#include "MantidGeometry/IComponent.h"
+#include "MantidGeometry/Instrument.h"
+#include "MantidKernel/PhysicalConstants.h"
+#include "MantidKernel/V3D.h"
+#include "MantidAPI/MatrixWorkspace.h"
+
+#include "MantidAlgorithms/TimeAtSampleStrategyDirect.h"
+
+using namespace Mantid::Algorithms;
+
+class TimeAtSampleStrategyDirectTest : 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 TimeAtSampleStrategyDirectTest *createSuite() { return new TimeAtSampleStrategyDirectTest(); }
+  static void destroySuite( TimeAtSampleStrategyDirectTest *suite ) { delete suite; }
+
+
+  void test_L2_detector(){
+      using namespace Mantid;
+      using namespace Mantid::Geometry;
+
+
+      auto ws = WorkspaceCreationHelper::create2DWorkspaceWithReflectometryInstrument();
+
+      auto instrument = ws->getInstrument();
+
+      auto sample =instrument->getSample();
+
+      auto source = instrument->getSource();
+
+      const size_t detectorIndex = 0; // detector workspace index.
+      const double ei = 12; //MeV
+      auto detector = ws->getDetector(detectorIndex);
+
+      const double L1 = source->getPos().distance(sample->getPos());
+
+      TimeAtSampleStrategyDirect strategy(ws, ei);
+      Correction correction = strategy.calculate(detectorIndex);
+
+      const double shift = correction.factor;
+
+      double expectedShift = L1 / std::sqrt(ei * 2. * PhysicalConstants::meV /
+                                                         PhysicalConstants::NeutronMass);
+
+      TSM_ASSERT_EQUALS("L1 / (L1 + L2)", expectedShift, shift);
+  }
+
+};
+
+
+#endif /* MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYDIRECTTEST_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/test/TimeAtSampleStrategyElasticTest.h b/Code/Mantid/Framework/Algorithms/test/TimeAtSampleStrategyElasticTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..3d7d50c11b8463c0ee9a03a435e7b5d73c98b5c5
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/test/TimeAtSampleStrategyElasticTest.h
@@ -0,0 +1,83 @@
+#ifndef MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYELASTICTEST_H_
+#define MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYELASTICTEST_H_
+
+#include <cxxtest/TestSuite.h>
+
+#include "MantidAlgorithms/TimeAtSampleStrategy.h"
+#include "MantidAlgorithms/TimeAtSampleStrategyElastic.h"
+#include "MantidTestHelpers/WorkspaceCreationHelper.h"
+#include "MantidGeometry/IDetector.h"
+#include "MantidGeometry/IComponent.h"
+#include "MantidGeometry/Instrument.h"
+#include "MantidGeometry/Instrument/ReferenceFrame.h"
+#include "MantidKernel/V3D.h"
+#include "MantidAPI/MatrixWorkspace.h"
+
+using namespace Mantid::Algorithms;
+using namespace Mantid::Geometry;
+using namespace Mantid::API;
+using namespace Mantid::Kernel;
+
+class TimeAtSampleStrategyElasticTest : 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 TimeAtSampleStrategyElasticTest *createSuite() { return new TimeAtSampleStrategyElasticTest(); }
+  static void destroySuite( TimeAtSampleStrategyElasticTest *suite ) { delete suite; }
+
+  void test_L2_detector(){
+
+      auto ws = WorkspaceCreationHelper::create2DWorkspaceWithReflectometryInstrument();
+
+      auto instrument = ws->getInstrument();
+
+      auto sample =instrument->getSample();
+
+      auto source = instrument->getSource();
+
+      const size_t detectorIndex = 0; // detector workspace index.
+      auto detector = ws->getDetector(detectorIndex);
+
+      const double L1 = source->getPos().distance(sample->getPos());
+
+      TimeAtSampleStrategyElastic strategy(ws);
+      Correction correction = strategy.calculate(detectorIndex);
+
+      const double ratio = correction.factor;
+
+      TSM_ASSERT_EQUALS("L1 / (L1 + L2)", L1 / (L1 + sample->getPos().distance(detector->getPos())), ratio);
+  }
+
+
+  void test_L2_monitor(){
+
+      auto ws = WorkspaceCreationHelper::create2DWorkspaceWithReflectometryInstrument();
+
+      auto instrument = ws->getInstrument();
+
+      auto sample =instrument->getSample();
+
+      auto source = instrument->getSource();
+
+      const V3D& beamDir = instrument->getReferenceFrame()->vecPointingAlongBeam();
+
+      const size_t monitorIndex = 1; // monitor workspace index.
+      auto monitor = ws->getDetector(monitorIndex);
+
+      const double L1 = source->getPos().distance(sample->getPos());
+
+      TimeAtSampleStrategyElastic strategy(ws);
+      Correction correction = strategy.calculate(monitorIndex);
+
+      const double ratio = correction.factor;
+
+      TSM_ASSERT_EQUALS("L1/L1m", std::abs(L1/beamDir.scalar_prod(source->getPos() - monitor->getPos())), ratio);
+  }
+
+
+
+
+};
+
+
+#endif /* MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYELASTICTEST_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/test/TimeAtSampleStrategyIndirectTest.h b/Code/Mantid/Framework/Algorithms/test/TimeAtSampleStrategyIndirectTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..740814c8c88257c3f679cf21eb13c8dc62bf5bc7
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/test/TimeAtSampleStrategyIndirectTest.h
@@ -0,0 +1,30 @@
+#ifndef MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYINDIRECTTEST_H_
+#define MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYINDIRECTTEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include "MantidAlgorithms/TimeAtSampleStrategyIndirect.h"
+#include "MantidTestHelpers/WorkspaceCreationHelper.h"
+
+
+using Mantid::Algorithms::TimeAtSampleStrategyIndirect;
+
+class TimeAtSampleStrategyIndirectTest : 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 TimeAtSampleStrategyIndirectTest *createSuite() { return new TimeAtSampleStrategyIndirectTest(); }
+  static void destroySuite( TimeAtSampleStrategyIndirectTest *suite ) { delete suite; }
+
+
+  void test_break_on_monitors()
+  {
+    auto ws = WorkspaceCreationHelper::create2DWorkspaceWithReflectometryInstrument();// workspace has monitors
+    TimeAtSampleStrategyIndirect strategy(ws);
+    TS_ASSERT_THROWS(strategy.calculate(1 /*monitor index*/), std::invalid_argument&);
+  }
+
+
+};
+
+
+#endif /* MANTID_ALGORITHMS_TIMEATSAMPLESTRATEGYINDIRECTTEST_H_ */
diff --git a/Code/Mantid/Framework/CMakeLists.txt b/Code/Mantid/Framework/CMakeLists.txt
index f7f4be9571eb0bdc85ce5fcf28ad63b88a3cf916..078f61da42f3a515c4e648e7e5b33be3e21d6c8f 100644
--- a/Code/Mantid/Framework/CMakeLists.txt
+++ b/Code/Mantid/Framework/CMakeLists.txt
@@ -55,6 +55,8 @@ if ( ${CMAKE_PROJECT_NAME} MATCHES "MantidFramework" AND ${CMAKE_SYSTEM_NAME} MA
   if ( MPI_BUILD )
   include ( MPISetup )
         set ( MANTIDLIBS  ${MANTIDLIBS} ${Boost_LIBRARIES} ${MPI_CXX_LIBRARIES} )
+        find_package ( OpenGL REQUIRED )
+        find_package ( GSL REQUIRED )
   endif ( MPI_BUILD )
 endif ()
 
@@ -131,8 +133,9 @@ add_subdirectory (ISISLiveData)
 # Add a custom target to build all of the Framework
 ###########################################################################
 
-set ( FRAMEWORK_LIBS Kernel Geometry API PythonKernelModule
-                     PythonGeometryModule PythonAPIModule DataObjects
+set ( FRAMEWORK_LIBS Kernel Geometry API DataObjects
+                     PythonKernelModule PythonGeometryModule PythonAPIModule
+                     PythonDataObjectsModule
                      DataHandling Nexus Algorithms CurveFitting ICat
                      Crystal MDAlgorithms WorkflowAlgorithms
                      LiveData ISISLiveData RemoteAlgorithms RemoteJobManagers
diff --git a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/ConnectedComponentLabeling.h b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/ConnectedComponentLabeling.h
index 9da876d7e0658d64609d4b05d798991a79c980e9..7e7e6eac7ec0ed2bf8cc04794b451d0a406dc381 100644
--- a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/ConnectedComponentLabeling.h
+++ b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/ConnectedComponentLabeling.h
@@ -2,12 +2,14 @@
 #define MANTID_CRYSTAL_CONNECTEDCOMPONENTLABELING_H_
 
 #include "MantidKernel/System.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidKernel/V3D.h"
+#include "MantidAPI/IMDHistoWorkspace_fwd.h"
 #include "MantidCrystal/DisjointElement.h"
 #include <boost/shared_ptr.hpp>
 #include <boost/tuple/tuple.hpp>
 #include <boost/optional.hpp>
 #include <map>
+#include <set>
 
 namespace Mantid {
 namespace API {
diff --git a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/FindSXPeaks.h b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/FindSXPeaks.h
index 29dc8ef3de624cb0078c80ba883d60682f6d95ff..5ab61ce0b15ae310e3a02d99687e3841e825e010 100644
--- a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/FindSXPeaks.h
+++ b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/FindSXPeaks.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidDataObjects/PeaksWorkspace.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/IndexSXPeaks.h b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/IndexSXPeaks.h
index c33f4cb95583aaee37182ca8cfb34b81a516efae..32ecfd639c47c71958c120bdced4074a5952dcff 100644
--- a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/IndexSXPeaks.h
+++ b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/IndexSXPeaks.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
 #include <boost/tuple/tuple.hpp>
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidGeometry/Crystal/UnitCell.h"
 #include "MantidKernel/V3D.h"
 #include <set>
diff --git a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/IntegratePeakTimeSlices.h b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/IntegratePeakTimeSlices.h
index 72b587a4221d6d5771e70872eb94257bc8ef51f0..8ed7fea923b19c26e3dc95110b44b7a0c15b51c2 100644
--- a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/IntegratePeakTimeSlices.h
+++ b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/IntegratePeakTimeSlices.h
@@ -10,10 +10,10 @@
 #include "MantidAPI/Algorithm.h"
 #include "MantidGeometry/Crystal/IPeak.h"
 #include "MantidDataObjects/TableWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/PeaksWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/Instrument/RectangularDetector.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidAPI/SpectraDetectorTypes.h"
diff --git a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/PeakBackground.h b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/PeakBackground.h
index 168829fb768e9ec573b6c901dbc1a3d50fbaee54..c7b1643e1e3f0310fa8e9584502fe781dbc3d2d6 100644
--- a/Code/Mantid/Framework/Crystal/inc/MantidCrystal/PeakBackground.h
+++ b/Code/Mantid/Framework/Crystal/inc/MantidCrystal/PeakBackground.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidKernel/V3D.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidAPI/IMDIterator.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidCrystal/HardThresholdBackground.h"
diff --git a/Code/Mantid/Framework/Crystal/src/CentroidPeaks.cpp b/Code/Mantid/Framework/Crystal/src/CentroidPeaks.cpp
index 270669d1789a5d8552d783867815b64b0c5e4166..0de29292380731ba7e081cbd662b7e537ee7869a 100644
--- a/Code/Mantid/Framework/Crystal/src/CentroidPeaks.cpp
+++ b/Code/Mantid/Framework/Crystal/src/CentroidPeaks.cpp
@@ -72,7 +72,7 @@ void CentroidPeaks::integrate() {
   Mantid::DataObjects::PeaksWorkspace_sptr peakWS =
       getProperty("OutPeaksWorkspace");
   if (peakWS != inPeakWS)
-    peakWS = inPeakWS->clone();
+    peakWS.reset(inPeakWS->clone().release());
 
   /// Radius to use around peaks
   int PeakRadius = getProperty("PeakRadius");
@@ -208,7 +208,7 @@ void CentroidPeaks::integrateEvent() {
   Mantid::DataObjects::PeaksWorkspace_sptr peakWS =
       getProperty("OutPeaksWorkspace");
   if (peakWS != inPeakWS)
-    peakWS = inPeakWS->clone();
+    peakWS.reset(inPeakWS->clone().release());
 
   /// Radius to use around peaks
   int PeakRadius = getProperty("PeakRadius");
diff --git a/Code/Mantid/Framework/Crystal/src/CombinePeaksWorkspaces.cpp b/Code/Mantid/Framework/Crystal/src/CombinePeaksWorkspaces.cpp
index ae225e36b6f2f86af2de6e10b22a4303f0adc7c9..7e9fef2be5082acd67c04590b683b2ecf61a9591 100644
--- a/Code/Mantid/Framework/Crystal/src/CombinePeaksWorkspaces.cpp
+++ b/Code/Mantid/Framework/Crystal/src/CombinePeaksWorkspaces.cpp
@@ -79,7 +79,7 @@ void CombinePeaksWorkspaces::exec() {
   }
 
   // Copy the first workspace to our output workspace
-  PeaksWorkspace_sptr output(LHSWorkspace->clone());
+  PeaksWorkspace_sptr output(LHSWorkspace->clone().release());
   // Get hold of the peaks in the second workspace
   auto &rhsPeaks = RHSWorkspace->getPeaks();
 
diff --git a/Code/Mantid/Framework/Crystal/src/ConnectedComponentLabeling.cpp b/Code/Mantid/Framework/Crystal/src/ConnectedComponentLabeling.cpp
index 13786689b8b58d1b8ff6ba78ff1355b862e89051..aa183dc399ab9514a9029b1936344a0b4db1a334 100644
--- a/Code/Mantid/Framework/Crystal/src/ConnectedComponentLabeling.cpp
+++ b/Code/Mantid/Framework/Crystal/src/ConnectedComponentLabeling.cpp
@@ -2,6 +2,7 @@
 
 #include "MantidKernel/Memory.h"
 #include "MantidAPI/FrameworkManager.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidAPI/IMDIterator.h"
 #include "MantidCrystal/BackgroundStrategy.h"
 #include "MantidCrystal/ICluster.h"
@@ -60,7 +61,7 @@ size_t calculateMaxClusters(IMDHistoWorkspace const *const ws,
  */
 boost::shared_ptr<Mantid::API::IMDHistoWorkspace>
 cloneInputWorkspace(IMDHistoWorkspace_sptr &inWS) {
-  IMDHistoWorkspace_sptr outWS = inWS->clone();
+  IMDHistoWorkspace_sptr outWS(inWS->clone().release());
 
   // Initialize to zero.
   PARALLEL_FOR_NO_WSP_CHECK()
diff --git a/Code/Mantid/Framework/Crystal/src/DiffPeaksWorkspaces.cpp b/Code/Mantid/Framework/Crystal/src/DiffPeaksWorkspaces.cpp
index 34337d74f916b5f752f209cd46e81ab1639e2530..3e2e50614d576efef9a7a2f3bd44aa78bedacc49 100644
--- a/Code/Mantid/Framework/Crystal/src/DiffPeaksWorkspaces.cpp
+++ b/Code/Mantid/Framework/Crystal/src/DiffPeaksWorkspaces.cpp
@@ -72,7 +72,7 @@ void DiffPeaksWorkspaces::exec() {
   }
 
   // Copy the first workspace to our output workspace
-  PeaksWorkspace_sptr output(LHSWorkspace->clone());
+  PeaksWorkspace_sptr output(LHSWorkspace->clone().release());
   // Get hold of the peaks in the second workspace
   auto &rhsPeaks = RHSWorkspace->getPeaks();
   // Get hold of the peaks in the first workspace as we'll need to examine them
diff --git a/Code/Mantid/Framework/Crystal/src/FindUBUsingIndexedPeaks.cpp b/Code/Mantid/Framework/Crystal/src/FindUBUsingIndexedPeaks.cpp
index 67a0fe6666a3ceea9155e90284e9a8ce88293037..a4a2ce7c88104bc15781a6e585bd0a4de1aae3c8 100644
--- a/Code/Mantid/Framework/Crystal/src/FindUBUsingIndexedPeaks.cpp
+++ b/Code/Mantid/Framework/Crystal/src/FindUBUsingIndexedPeaks.cpp
@@ -106,32 +106,12 @@ void FindUBUsingIndexedPeaks::exec() {
 
     OrientedLattice o_lattice;
     o_lattice.setUB(UB);
-    double calc_a = o_lattice.a();
-    double calc_b = o_lattice.b();
-    double calc_c = o_lattice.c();
-    double calc_alpha = o_lattice.alpha();
-    double calc_beta = o_lattice.beta();
-    double calc_gamma = o_lattice.gamma();
-    // Show the modified lattice parameters
-    sprintf(
-        logInfo,
-        std::string("Lattice Parameters: %8.3f %8.3f %8.3f %8.3f %8.3f %8.3f")
-            .c_str(),
-        calc_a, calc_b, calc_c, calc_alpha, calc_beta, calc_gamma);
-    g_log.notice(std::string(logInfo));
-    g_log.notice() << std::fixed << std::setprecision(3) << std::setw(9);
-
-    g_log.notice() << "Parameter Errors   :" << std::fixed
-                   << std::setprecision(3) << std::setw(9) << sigabc[0]
-                   << std::fixed << std::setprecision(3) << std::setw(9)
-                   << sigabc[1] << std::fixed << std::setprecision(3)
-                   << std::setw(9) << sigabc[2] << std::fixed
-                   << std::setprecision(3) << std::setw(9) << sigabc[3]
-                   << std::fixed << std::setprecision(3) << std::setw(9)
-                   << sigabc[4] << std::fixed << std::setprecision(3)
-                   << std::setw(9) << sigabc[5] << std::endl;
+
     o_lattice.setError(sigabc[0], sigabc[1], sigabc[2], sigabc[3], sigabc[4],
                        sigabc[5]);
+
+    // Show the modified lattice parameters
+    g_log.notice() << o_lattice << "\n";
     ws->mutableSample().setOrientedLattice(&o_lattice);
   }
 }
diff --git a/Code/Mantid/Framework/Crystal/src/FindUBUsingLatticeParameters.cpp b/Code/Mantid/Framework/Crystal/src/FindUBUsingLatticeParameters.cpp
index d17030d75d7f066510ed06e64d9a1e7e108bab45..3f8b587e729b3d30d176a3d0de808ab2bbae5e6b 100644
--- a/Code/Mantid/Framework/Crystal/src/FindUBUsingLatticeParameters.cpp
+++ b/Code/Mantid/Framework/Crystal/src/FindUBUsingLatticeParameters.cpp
@@ -139,25 +139,10 @@ void FindUBUsingLatticeParameters::exec() {
     double calc_beta = o_lattice.beta();
     double calc_gamma = o_lattice.gamma();
     // Show the modified lattice parameters
-    sprintf(
-        logInfo,
-        std::string("Lattice Parameters: %8.3f %8.3f %8.3f %8.3f %8.3f %8.3f")
-            .c_str(),
-        calc_a, calc_b, calc_c, calc_alpha, calc_beta, calc_gamma);
-    g_log.notice(std::string(logInfo));
+    g_log.notice() << o_lattice << "\n";
 
-    g_log.notice() << "Parameter Errors  :" << std::fixed
-                   << std::setprecision(3) << std::setw(9) << sigabc[0]
-                   << std::fixed << std::setprecision(3) << std::setw(9)
-                   << sigabc[1] << std::fixed << std::setprecision(3)
-                   << std::setw(9) << sigabc[2] << std::fixed
-                   << std::setprecision(3) << std::setw(9) << sigabc[3]
-                   << std::fixed << std::setprecision(3) << std::setw(9)
-                   << sigabc[4] << std::fixed << std::setprecision(3)
-                   << std::setw(9) << sigabc[5] << std::endl;
-
-    sprintf(logInfo, std::string("Lattice Parameters (Refined - Input): %8.3f "
-                                 "%8.3f %8.3f %8.3f %8.3f %8.3f").c_str(),
+    sprintf(logInfo, std::string("Lattice Parameters (Refined - Input): %11.6f "
+                                 "%11.6f %11.6f %11.6f %11.6f %11.6f").c_str(),
             calc_a - a, calc_b - b, calc_c - c, calc_alpha - alpha,
             calc_beta - beta, calc_gamma - gamma);
     g_log.notice(std::string(logInfo));
diff --git a/Code/Mantid/Framework/Crystal/src/FindUBUsingMinMaxD.cpp b/Code/Mantid/Framework/Crystal/src/FindUBUsingMinMaxD.cpp
index 9c3fdecb41fd5f3b446930d8f9b7b8a3cc1229c3..b008fe742f9166dc69725f1588fb6e5f64687e86 100644
--- a/Code/Mantid/Framework/Crystal/src/FindUBUsingMinMaxD.cpp
+++ b/Code/Mantid/Framework/Crystal/src/FindUBUsingMinMaxD.cpp
@@ -135,29 +135,9 @@ void FindUBUsingMinMaxD::exec() {
     o_lattice.setError(sigabc[0], sigabc[1], sigabc[2], sigabc[3], sigabc[4],
                        sigabc[5]);
 
-    double calc_a = o_lattice.a();
-    double calc_b = o_lattice.b();
-    double calc_c = o_lattice.c();
-    double calc_alpha = o_lattice.alpha();
-    double calc_beta = o_lattice.beta();
-    double calc_gamma = o_lattice.gamma();
     // Show the modified lattice parameters
-    sprintf(
-        logInfo,
-        std::string("Lattice Parameters: %8.3f %8.3f %8.3f %8.3f %8.3f %8.3f")
-            .c_str(),
-        calc_a, calc_b, calc_c, calc_alpha, calc_beta, calc_gamma);
-    g_log.notice(std::string(logInfo));
+    g_log.notice() << o_lattice << "\n";
 
-    g_log.notice() << "Parameter Errors  :" << std::fixed
-                   << std::setprecision(3) << std::setw(9) << sigabc[0]
-                   << std::fixed << std::setprecision(3) << std::setw(9)
-                   << sigabc[1] << std::fixed << std::setprecision(3)
-                   << std::setw(9) << sigabc[2] << std::fixed
-                   << std::setprecision(3) << std::setw(9) << sigabc[3]
-                   << std::fixed << std::setprecision(3) << std::setw(9)
-                   << sigabc[4] << std::fixed << std::setprecision(3)
-                   << std::setw(9) << sigabc[5] << std::endl;
     ws->mutableSample().setOrientedLattice(&o_lattice);
   }
 }
diff --git a/Code/Mantid/Framework/Crystal/src/IntegratePeaksHybrid.cpp b/Code/Mantid/Framework/Crystal/src/IntegratePeaksHybrid.cpp
index a90fe00a40f3eb54141694f213fca6029da9eccb..efe1ea26ade9d1716a5813c20126d3ffcda9bcd7 100644
--- a/Code/Mantid/Framework/Crystal/src/IntegratePeaksHybrid.cpp
+++ b/Code/Mantid/Framework/Crystal/src/IntegratePeaksHybrid.cpp
@@ -42,6 +42,7 @@
 #include "MantidCrystal/PeakClusterProjection.h"
 
 #include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidAPI/IMDIterator.h"
 #include "MantidKernel/CompositeValidator.h"
 #include "MantidKernel/MandatoryValidator.h"
@@ -163,8 +164,7 @@ void IntegratePeaksHybrid::exec() {
   const double peakOuterRadius = getProperty("BackgroundOuterRadius");
   const double halfPeakOuterRadius = peakOuterRadius / 2;
   if (peakWS != inPeakWS) {
-    peakWS = IPeaksWorkspace_sptr(
-        dynamic_cast<IPeaksWorkspace *>(inPeakWS->clone()));
+    peakWS = IPeaksWorkspace_sptr(inPeakWS->clone().release());
   }
 
   {
diff --git a/Code/Mantid/Framework/Crystal/src/IntegratePeaksUsingClusters.cpp b/Code/Mantid/Framework/Crystal/src/IntegratePeaksUsingClusters.cpp
index fd9bd4d2d833b176493e2b06de8cb6bef41c4c8b..301f18e55605e2c05feba3151838742d1b1bc19a 100644
--- a/Code/Mantid/Framework/Crystal/src/IntegratePeaksUsingClusters.cpp
+++ b/Code/Mantid/Framework/Crystal/src/IntegratePeaksUsingClusters.cpp
@@ -3,6 +3,7 @@
 #include "MantidCrystal/ConnectedComponentLabeling.h"
 #include "MantidCrystal/HardThresholdBackground.h"
 #include "MantidCrystal/PeakClusterProjection.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidAPI/IMDIterator.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidKernel/CompositeValidator.h"
@@ -119,8 +120,7 @@ void IntegratePeaksUsingClusters::exec() {
   IPeaksWorkspace_sptr inPeakWS = getProperty("PeaksWorkspace");
   IPeaksWorkspace_sptr peakWS = getProperty("OutputWorkspace");
   if (peakWS != inPeakWS) {
-    peakWS = IPeaksWorkspace_sptr(
-        dynamic_cast<IPeaksWorkspace *>(inPeakWS->clone()));
+    peakWS = IPeaksWorkspace_sptr(inPeakWS->clone().release());
   }
 
   {
diff --git a/Code/Mantid/Framework/Crystal/src/LoadIsawPeaks.cpp b/Code/Mantid/Framework/Crystal/src/LoadIsawPeaks.cpp
index 23b60552a2816170cfc904db9b82faa06f432e35..7d33610095df6493b3b05eb498ce1e397b3a8532 100644
--- a/Code/Mantid/Framework/Crystal/src/LoadIsawPeaks.cpp
+++ b/Code/Mantid/Framework/Crystal/src/LoadIsawPeaks.cpp
@@ -186,7 +186,10 @@ LoadIsawPeaks::ApplyCalibInfo(std::ifstream &in, std::string startChar,
     std::string SbankNum = boost::lexical_cast<std::string>(bankNum);
     std::string bankName = "bank";
     if (instr->getName() == "WISH")
-      bankName = "WISHpanel0";
+    {
+      if (bankNum < 10) bankName = "WISHpanel0";
+      else bankName = "WISHpanel";
+    }
     bankName += SbankNum;
     boost::shared_ptr<const Geometry::IComponent> bank =
         instr_old->getComponentByName(bankName);
@@ -416,7 +419,13 @@ int LoadIsawPeaks::findPixelID(Instrument_const_sptr inst, std::string bankName,
     boost::shared_ptr<const Geometry::ICompAssembly> asmb =
         boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(parent);
     asmb->getChildren(children, false);
-    int col0 = col;
+    if(children[0]->getName().compare("sixteenpack") == 0){
+      asmb = boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(children[0]);
+      children.clear();
+      asmb->getChildren(children, false);
+    }
+    int col0 = col - 1;
+    //WISH detectors are in bank in this order in instrument
     if (inst->getName() == "WISH")
       col0 = (col % 2 == 0 ? col / 2 + 75 : (col - 1) / 2);
     boost::shared_ptr<const Geometry::ICompAssembly> asmb2 =
@@ -522,7 +531,10 @@ void LoadIsawPeaks::appendFile(PeaksWorkspace_sptr outWS,
     std::ostringstream oss;
     std::string bankString = "bank";
     if (outWS->getInstrument()->getName() == "WISH")
-      bankString = "WISHpanel0";
+    {
+      if (bankNum < 10) bankString = "WISHpanel0";
+      else bankString = "WISHpanel";
+    }
     oss << bankString << bankNum;
     std::string bankName = oss.str();
 
diff --git a/Code/Mantid/Framework/Crystal/src/OptimizeCrystalPlacement.cpp b/Code/Mantid/Framework/Crystal/src/OptimizeCrystalPlacement.cpp
index 759fafc0b8c77aa293b1a44ba1c2208d65e3be53..5c17eaf04321b75177163896aea0d4947c3e0aa1 100644
--- a/Code/Mantid/Framework/Crystal/src/OptimizeCrystalPlacement.cpp
+++ b/Code/Mantid/Framework/Crystal/src/OptimizeCrystalPlacement.cpp
@@ -151,7 +151,7 @@ void OptimizeCrystalPlacement::exec() {
   PeaksWorkspace_sptr OutPeaks = getProperty("ModifiedPeaksWorkspace");
 
   if (Peaks != OutPeaks) {
-    boost::shared_ptr<PeaksWorkspace> X(Peaks->clone());
+    boost::shared_ptr<PeaksWorkspace> X(Peaks->clone().release());
     OutPeaks = X;
   }
 
diff --git a/Code/Mantid/Framework/Crystal/src/OptimizeLatticeForCellType.cpp b/Code/Mantid/Framework/Crystal/src/OptimizeLatticeForCellType.cpp
index 4d9e7135eee9b261bc79a04facfb8a245260cdae..b5b60609b2b08f3c6317cb9f80da1a5a6791e14f 100644
--- a/Code/Mantid/Framework/Crystal/src/OptimizeLatticeForCellType.cpp
+++ b/Code/Mantid/Framework/Crystal/src/OptimizeLatticeForCellType.cpp
@@ -122,8 +122,7 @@ void OptimizeLatticeForCellType::exec() {
   }
   // finally do the optimization
   for (size_t i_run = 0; i_run < runWS.size(); i_run++) {
-    DataObjects::PeaksWorkspace_sptr peakWS(new PeaksWorkspace());
-    peakWS = runWS[i_run]->clone();
+    DataObjects::PeaksWorkspace_sptr peakWS(runWS[i_run]->clone().release());
     AnalysisDataService::Instance().addOrReplace("_peaks", peakWS);
     const DblMatrix UB = peakWS->sample().getOrientedLattice().getUB();
     std::vector<double> lat(6);
diff --git a/Code/Mantid/Framework/Crystal/src/PeakBackground.cpp b/Code/Mantid/Framework/Crystal/src/PeakBackground.cpp
index 1f3364fb9f42c3fb6c7564fa47263945908656b6..205380630e762c7b2199cc9a6499da3c4b5fcd61 100644
--- a/Code/Mantid/Framework/Crystal/src/PeakBackground.cpp
+++ b/Code/Mantid/Framework/Crystal/src/PeakBackground.cpp
@@ -1,4 +1,5 @@
 #include "MantidCrystal/PeakBackground.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include "MantidGeometry/Crystal/IPeak.h"
 
 using namespace Mantid::API;
diff --git a/Code/Mantid/Framework/Crystal/src/PeakIntegration.cpp b/Code/Mantid/Framework/Crystal/src/PeakIntegration.cpp
index 76534a235dbdeda8c080eee8241c18ce0ab21d4c..28f086a967487d3b425e0deb8a56d2b15ef27edf 100644
--- a/Code/Mantid/Framework/Crystal/src/PeakIntegration.cpp
+++ b/Code/Mantid/Framework/Crystal/src/PeakIntegration.cpp
@@ -73,7 +73,7 @@ void PeakIntegration::exec() {
   /// Output peaks workspace, create if needed
   PeaksWorkspace_sptr peaksW = getProperty("OutPeaksWorkspace");
   if (peaksW != inPeaksW)
-    peaksW = inPeaksW->clone();
+    peaksW.reset(inPeaksW->clone().release());
 
   double qspan = 0.12;
   m_IC = getProperty("IkedaCarpenterTOF");
diff --git a/Code/Mantid/Framework/Crystal/src/PredictFractionalPeaks.cpp b/Code/Mantid/Framework/Crystal/src/PredictFractionalPeaks.cpp
index 77c854a42642429820447da8a405ee35be5eac24..11058245f55677f8418d84b9f7546c057a3fba2c 100644
--- a/Code/Mantid/Framework/Crystal/src/PredictFractionalPeaks.cpp
+++ b/Code/Mantid/Framework/Crystal/src/PredictFractionalPeaks.cpp
@@ -38,16 +38,28 @@ void PredictFractionalPeaks::init() {
                                              Direction::Output),
       "Workspace of Peaks with peaks with fractional h,k, and/or l values");
 
+  std::vector<double> hOffsetDefault(3);
+  hOffsetDefault[0] = -0.5;
+  hOffsetDefault[1] = 0.0;
+  hOffsetDefault[2] = 0.5;
+
+
   declareProperty(
-      new Kernel::ArrayProperty<double>(string("HOffset"), string("-.5,0, .5")),
+	  new Kernel::ArrayProperty<double>(string("HOffset"), hOffsetDefault),
       "Offset in the h direction");
 
+  //const std::vector<double> kOffsetDefault(1, 0);
+  //std::vector<double>(1, 0)
   declareProperty(
-      new Kernel::ArrayProperty<double>(string("KOffset"), string("0")),
+      new Kernel::ArrayProperty<double>(string("KOffset"), std::vector<double>(1, 0)),
       "Offset in the h direction");
 
+  std::vector<double> lOffsetDefault(3);
+  lOffsetDefault[0] = -0.5;
+  lOffsetDefault[1] = 0.5;
+
   declareProperty(
-      new Kernel::ArrayProperty<double>(string("LOffset"), string("-.5,.5")),
+	  new Kernel::ArrayProperty<double>(string("LOffset"), lOffsetDefault),
       "Offset in the h direction");
 
   declareProperty("IncludeAllPeaksInRange", false,
diff --git a/Code/Mantid/Framework/Crystal/src/PredictPeaks.cpp b/Code/Mantid/Framework/Crystal/src/PredictPeaks.cpp
index 58a1923c8ace7429a8962a8d556ea63778afc088..f9af58fdd691ad641841a3575b3fc336e85fde19 100644
--- a/Code/Mantid/Framework/Crystal/src/PredictPeaks.cpp
+++ b/Code/Mantid/Framework/Crystal/src/PredictPeaks.cpp
@@ -170,7 +170,7 @@ void PredictPeaks::exec() {
       boost::dynamic_pointer_cast<IMDEventWorkspace>(inBareWS);
   std::vector<Matrix<double>> gonioVec;
   m_gonio = Matrix<double>(3, 3, true);
-  Mantid::Kernel::DblMatrix gonioLast = Matrix<double>(3, 3, true);
+  Mantid::Kernel::DblMatrix gonioLast = Matrix<double>(3, 3, false);
   if (matrixWS) {
     inWS = matrixWS;
     // Retrieve the goniometer rotation matrix
diff --git a/Code/Mantid/Framework/Crystal/src/SaveHKL.cpp b/Code/Mantid/Framework/Crystal/src/SaveHKL.cpp
index e385281433cb63a65b119bbd28d6e04c556dd22b..e51e06d314a98731b017a852eba8e51f02300a5e 100644
--- a/Code/Mantid/Framework/Crystal/src/SaveHKL.cpp
+++ b/Code/Mantid/Framework/Crystal/src/SaveHKL.cpp
@@ -109,7 +109,7 @@ void SaveHKL::exec() {
   // HKL will be overwritten by equivalent HKL but never seen by user
   PeaksWorkspace_sptr peaksW = getProperty("OutputWorkspace");
   if (peaksW != ws)
-    peaksW = ws->clone();
+    peaksW.reset(ws->clone().release());
   double scaleFactor = getProperty("ScalePeaks");
   double dMin = getProperty("MinDSpacing");
   double wlMin = getProperty("MinWavelength");
diff --git a/Code/Mantid/Framework/Crystal/src/SaveIsawPeaks.cpp b/Code/Mantid/Framework/Crystal/src/SaveIsawPeaks.cpp
index 44e3e5a7d5d1f9cef5824e9bb96f1f7c20513f6e..dddbf880f36789bd590b36aea71b76811a2d7642 100644
--- a/Code/Mantid/Framework/Crystal/src/SaveIsawPeaks.cpp
+++ b/Code/Mantid/Framework/Crystal/src/SaveIsawPeaks.cpp
@@ -175,34 +175,47 @@ void SaveIsawPeaks::exec() {
         std::ostringstream mess;
         if (bankPart == "bank")
           mess << "bank" << bank;
-        else if (bankPart == "WISH")
+        else if (bankPart == "WISH" && bank < 10)
           mess << "WISHpanel0" << bank;
+        else if (bankPart == "WISH")
+          mess << "WISHpanel" << bank;
 
         std::string bankName = mess.str();
         // Retrieve it
         boost::shared_ptr<const IComponent> det =
             inst->getComponentByName(bankName);
+        if (inst->getName() .compare("CORELLI") == 0) // for Corelli with sixteenpack under bank
+        {
+          std::vector<Geometry::IComponent_const_sptr> children;
+          boost::shared_ptr<const Geometry::ICompAssembly> asmb =
+              boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(inst->getComponentByName(bankName));
+          asmb->getChildren(children, false);
+          det = children[0];
+        }
         if (det) {
           // Center of the detector
           V3D center = det->getPos();
+
           // Distance to center of detector
           double detd = (center - inst->getSample()->getPos()).norm();
-
+          int NCOLS, NROWS;
+          double xsize, ysize;
+          sizeBanks(bankName, NCOLS, NROWS, xsize, ysize);
           // Base unit vector (along the horizontal, X axis)
+          int midX = NCOLS/2;
+          int midY = NROWS/2;
           V3D base =
-              findPixelPos(bankName, 1, 0) - findPixelPos(bankName, 0, 0);
+              findPixelPos(bankName, midX + 1, midY) - findPixelPos(bankName, midX, midY);
           base.normalize();
+
           // Up unit vector (along the vertical, Y axis)
-          V3D up = findPixelPos(bankName, 0, 1) - findPixelPos(bankName, 0, 0);
+          V3D up = findPixelPos(bankName, midX, midY + 1) - findPixelPos(bankName, midX, midY);
           up.normalize();
-          int NCOLS, NROWS;
-          double xsize, ysize;
-          sizeBanks(bankName, NCOLS, NROWS, xsize, ysize);
 
           // Write the line
           out << "5 " << std::setw(6) << std::right << bank << " "
-              << std::setw(6) << std::right << NCOLS << " " << std::setw(6)
-              << std::right << NROWS << " " << std::setw(7) << std::right
+              << std::setw(6) << std::right << NROWS << " " << std::setw(6)
+              << std::right << NCOLS << " " << std::setw(7) << std::right
               << std::fixed << std::setprecision(4) << 100.0 * xsize << " "
               << std::setw(7) << std::right << std::fixed
               << std::setprecision(4) << 100.0 * ysize << " "
@@ -384,12 +397,21 @@ V3D SaveIsawPeaks::findPixelPos(std::string bankName, int col, int row) {
     boost::shared_ptr<const Geometry::ICompAssembly> asmb =
         boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(parent);
     asmb->getChildren(children, false);
+    if(children[0]->getName().compare("sixteenpack") == 0){
+      asmb = boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(children[0]);
+      children.clear();
+      asmb->getChildren(children, false);
+    }
+    int col0 = col - 1;
+    //WISH detectors are in bank in this order in instrument
+    if (inst->getName() == "WISH")
+      col0 = (col % 2 == 0 ? col / 2 + 75 : (col - 1) / 2);
     boost::shared_ptr<const Geometry::ICompAssembly> asmb2 =
         boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(
-            children[col]);
+            children[col0]);
     std::vector<Geometry::IComponent_const_sptr> grandchildren;
     asmb2->getChildren(grandchildren, false);
-    Geometry::IComponent_const_sptr first = grandchildren[row];
+    Geometry::IComponent_const_sptr first = grandchildren[row - 1];
     return first->getPos();
   }
 }
@@ -412,6 +434,11 @@ void SaveIsawPeaks::sizeBanks(std::string bankName, int &NCOLS, int &NROWS,
     boost::shared_ptr<const Geometry::ICompAssembly> asmb =
         boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(parent);
     asmb->getChildren(children, false);
+    if(children[0]->getName().compare("sixteenpack") == 0){
+      asmb = boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(children[0]);
+      children.clear();
+      asmb->getChildren(children, false);
+    }
     boost::shared_ptr<const Geometry::ICompAssembly> asmb2 =
         boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(children[0]);
     std::vector<Geometry::IComponent_const_sptr> grandchildren;
diff --git a/Code/Mantid/Framework/Crystal/src/SortHKL.cpp b/Code/Mantid/Framework/Crystal/src/SortHKL.cpp
index 5e9adc68e696948a1cdeef3ec3ac314c89140f76..8f9f742cca7614cc21075a5306a820489bad5cd5 100644
--- a/Code/Mantid/Framework/Crystal/src/SortHKL.cpp
+++ b/Code/Mantid/Framework/Crystal/src/SortHKL.cpp
@@ -68,7 +68,7 @@ void SortHKL::exec() {
   // HKL will be overwritten by equivalent HKL but never seen by user
   PeaksWorkspace_sptr peaksW = getProperty("OutputWorkspace");
   if (peaksW != InPeaksW)
-    peaksW = InPeaksW->clone();
+    peaksW.reset(InPeaksW->clone().release());
 
   // Init or append to a table workspace
   bool append = getProperty("Append");
diff --git a/Code/Mantid/Framework/Crystal/src/SortPeaksWorkspace.cpp b/Code/Mantid/Framework/Crystal/src/SortPeaksWorkspace.cpp
index 68c05197b157e77ca20151367c0e03aaf259fa32..92659a4d5ef3a7fddd0a9690351726b258ac5651 100644
--- a/Code/Mantid/Framework/Crystal/src/SortPeaksWorkspace.cpp
+++ b/Code/Mantid/Framework/Crystal/src/SortPeaksWorkspace.cpp
@@ -90,7 +90,7 @@ void SortPeaksWorkspace::exec() {
     inputWS->getColumn(columnToSortBy);
 
     if (inputWS != outputWS) {
-      outputWS = boost::shared_ptr<PeaksWorkspace>(inputWS->clone());
+      outputWS = boost::shared_ptr<PeaksWorkspace>(inputWS->clone().release());
     }
 
     // Perform the sorting.
diff --git a/Code/Mantid/Framework/Crystal/src/TOFExtinction.cpp b/Code/Mantid/Framework/Crystal/src/TOFExtinction.cpp
index 489d280b132ce9292a140c9df708acea445f6e3b..ddbed391b46b895e978e6850e312b0e08be8159d 100644
--- a/Code/Mantid/Framework/Crystal/src/TOFExtinction.cpp
+++ b/Code/Mantid/Framework/Crystal/src/TOFExtinction.cpp
@@ -77,7 +77,7 @@ void TOFExtinction::exec() {
   /// Output peaks workspace, create if needed
   PeaksWorkspace_sptr peaksW = getProperty("OutputWorkspace");
   if (peaksW != inPeaksW)
-    peaksW = inPeaksW->clone();
+    peaksW.reset(inPeaksW->clone().release());
 
   const Kernel::Material *m_sampleMaterial =
       &(inPeaksW->sample().getMaterial());
diff --git a/Code/Mantid/Framework/Crystal/test/IndexSXPeaksTest.h b/Code/Mantid/Framework/Crystal/test/IndexSXPeaksTest.h
index 58764857035aab084b11b7e5f3bd7bf2d285ba86..96c8cdfbd99b1fcf41639d38858865d27cf10698 100644
--- a/Code/Mantid/Framework/Crystal/test/IndexSXPeaksTest.h
+++ b/Code/Mantid/Framework/Crystal/test/IndexSXPeaksTest.h
@@ -60,7 +60,7 @@ public:
   {
     
     //Take a copy of the original peaks workspace.
-    PeaksWorkspace_sptr local = m_masterPeaks->clone();
+    PeaksWorkspace_sptr local(m_masterPeaks->clone().release());
     //Clear the copies hkl values with some invalid values so that we'll know if we fail.
     for(int i = 0; i < nPixels; i++)
     {
@@ -115,7 +115,7 @@ public:
 
   void test_colinearPeaksThrows()
   {
-    PeaksWorkspace_sptr temp = m_masterPeaks->clone();
+    PeaksWorkspace_sptr temp(m_masterPeaks->clone().release());
 
     for(int i = 0; i < m_masterPeaks->getNumberPeaks(); i++)
     {
diff --git a/Code/Mantid/Framework/CurveFitting/CMakeLists.txt b/Code/Mantid/Framework/CurveFitting/CMakeLists.txt
index d6ebca85d114fdd2211d199fad929764adf785a1..167d9117d143130d886803b6c25e42e6f86a0b46 100644
--- a/Code/Mantid/Framework/CurveFitting/CMakeLists.txt
+++ b/Code/Mantid/Framework/CurveFitting/CMakeLists.txt
@@ -15,6 +15,7 @@ set ( SRC_FILES
 	src/CalculateChiSquared.cpp
 	src/CalculateGammaBackground.cpp
 	src/CalculateMSVesuvio.cpp
+	src/ChebfunBase.cpp
 	src/Chebyshev.cpp
 	src/ComptonPeakProfile.cpp
 	src/ComptonProfile.cpp
@@ -35,6 +36,7 @@ set ( SRC_FILES
 	src/DynamicKuboToyabe.cpp
 	src/EndErfc.cpp
 	src/EstimatePeakErrors.cpp
+	src/EvaluateFunction.cpp
 	src/ExpDecay.cpp
 	src/ExpDecayMuon.cpp
 	src/ExpDecayOsc.cpp
@@ -49,6 +51,7 @@ set ( SRC_FILES
 	src/FunctionDomain1DSpectrumCreator.cpp
 	src/GSLFunctions.cpp
 	src/GSLMatrix.cpp
+	src/GSLVector.cpp
 	src/GausDecay.cpp
 	src/GausOsc.cpp
 	src/Gaussian.cpp
@@ -131,6 +134,7 @@ set ( INC_FILES
 	inc/MantidCurveFitting/CalculateChiSquared.h
 	inc/MantidCurveFitting/CalculateGammaBackground.h
 	inc/MantidCurveFitting/CalculateMSVesuvio.h
+	inc/MantidCurveFitting/ChebfunBase.h
 	inc/MantidCurveFitting/Chebyshev.h
 	inc/MantidCurveFitting/ComptonPeakProfile.h
 	inc/MantidCurveFitting/ComptonProfile.h
@@ -152,6 +156,7 @@ set ( INC_FILES
 	inc/MantidCurveFitting/DynamicKuboToyabe.h
 	inc/MantidCurveFitting/EndErfc.h
 	inc/MantidCurveFitting/EstimatePeakErrors.h
+	inc/MantidCurveFitting/EvaluateFunction.h
 	inc/MantidCurveFitting/ExpDecay.h
 	inc/MantidCurveFitting/ExpDecayMuon.h
 	inc/MantidCurveFitting/ExpDecayOsc.h
@@ -173,6 +178,7 @@ set ( INC_FILES
 	inc/MantidCurveFitting/Gaussian.h
 	inc/MantidCurveFitting/GaussianComptonProfile.h
 	inc/MantidCurveFitting/GramCharlierComptonProfile.h
+	inc/MantidCurveFitting/HalfComplex.h
 	inc/MantidCurveFitting/IFittingAlgorithm.h
 	inc/MantidCurveFitting/IkedaCarpenterPV.h
 	inc/MantidCurveFitting/Jacobian.h
@@ -247,6 +253,7 @@ set ( TEST_FILES
 	CalculateChiSquaredTest.h
 	CalculateGammaBackgroundTest.h
 	CalculateMSVesuvioTest.h
+	ChebfunBaseTest.h
 	ChebyshevTest.h
 	CompositeFunctionTest.h
 	ComptonPeakProfileTest.h
@@ -264,6 +271,7 @@ set ( TEST_FILES
 	DynamicKuboToyabeTest.h
 	EndErfcTest.h
 	EstimatePeakErrorsTest.h
+	EvaluateFunctionTest.h
 	ExpDecayMuonTest.h
 	ExpDecayOscTest.h
 	ExpDecayTest.h
@@ -278,6 +286,7 @@ set ( TEST_FILES
 	FunctionFactoryConstraintTest.h
 	FunctionParameterDecoratorFitTest.h
 	GSLMatrixTest.h
+	GSLVectorTest.h
 	GausDecayTest.h
 	GausOscTest.h
 	GaussianComptonProfileTest.h
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CalculateChiSquared.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CalculateChiSquared.h
index 43694114c1644dedd8d9b19c959c97acd6b0d0af..34d50d67839be92218d2d149aad8272f7c9ce575 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CalculateChiSquared.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CalculateChiSquared.h
@@ -10,6 +10,8 @@ namespace CurveFitting {
 /**
 
   Calculate chi squared for a function and a data set in a workspace.
+  Optionally outputs slices of the chi^2 along the parameter axes
+  and estimates the standard deviations.
 
   Copyright &copy; 2015 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge
   National Laboratory & European Spallation Source
@@ -34,9 +36,6 @@ namespace CurveFitting {
 */
 class DLLExport CalculateChiSquared : public IFittingAlgorithm {
 public:
-  CalculateChiSquared();
-  virtual ~CalculateChiSquared();
-
   virtual const std::string name() const;
   virtual int version() const;
   virtual const std::string summary() const;
@@ -44,6 +43,12 @@ public:
 private:
   void initConcrete();
   void execConcrete();
+  void estimateErrors();
+  void unfixParameters();
+  void refixParameters();
+
+  /// Cache indices of fixed parameters
+  std::vector<size_t> m_fixedParameters;
 };
 
 } // namespace CurveFitting
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ChebfunBase.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ChebfunBase.h
new file mode 100644
index 0000000000000000000000000000000000000000..4ce7df5f525244c3ed3e865f390a53ea5aa3518b
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ChebfunBase.h
@@ -0,0 +1,218 @@
+#ifndef MANTID_CURVEFITTING_CHEBFUNBASE_H
+#define MANTID_CURVEFITTING_CHEBFUNBASE_H
+
+#include "DllConfig.h"
+#include "GSLMatrix.h"
+
+#include <boost/shared_ptr.hpp>
+#include <vector>
+#include <functional>
+
+namespace Mantid {
+
+namespace API {
+class IFunction;
+}
+
+namespace CurveFitting {
+
+/// Type of the approximated function
+typedef std::function<double(double)> ChebfunFunctionType;
+
+/**
+
+The ChebfunBase class provides a base for function approximation
+with Chebyshev polynomials.
+
+A smooth function on a finite interval [a,b] can be approximated
+by a Chebyshev expansion of order n. Finding an approximation is
+very easy: the function needs to be evaluated at n+1 specific x-
+points. These n+1 values can be used to interpolate the function
+at any x-point in interval [a,b]. This is done by calling the fit(...)
+method.
+
+Different functions require different polynomial orders to reach
+the same accuracy of approximation. Static method bestFit(...) tries
+to find the smallest value of n that provides the required accuracy.
+If it fails to find an n smaller than some maximum number it returns
+an empty shared pointer.
+
+Knowing the vector of the function values (P) at the n+1 base x-points and the
+related vector of the Chebyshev expansion coefficients (A) (claculated
+by calcA(...) method) allows one to perform various manipulations on
+the approximation:
+  - algebraic operations: +,-,*,/
+  - applying a function
+  - root finding
+  - differentiation
+  - integration
+  - convolution
+  - solving of (integro-)differential equations
+  - etc
+
+This calss doesn't represent a function approximation itself but keeps
+proerties that can be shared by multiple approximations.
+
+This class is based on the ideas from the Chebfun matlab package
+(http://www.chebfun.org/).
+
+Copyright &copy; 2007-8 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 MANTID_CURVEFITTING_DLL ChebfunBase {
+public:
+  ChebfunBase(size_t n, double start, double end, double tolerance = 0.0);
+  /// Copy constructor
+  ChebfunBase(const ChebfunBase &other);
+  /// Get the polynomial order of this base.
+  size_t order() const { return m_n; }
+  /// Get the size of the base which is the number of x-points.
+  size_t size() const { return m_x.size(); }
+  /// Start of the interval
+  double startX() const { return m_x.front(); }
+  /// End of the interval
+  double endX() const { return m_x.back(); }
+  /// Get the width of the interval
+  double width() const { return endX() - startX(); }
+  /// Get a reference to the x-points
+  const std::vector<double> &xPoints() const { return m_x; }
+  /// Get a reference to the integration weights
+  const std::vector<double> &integrationWeights() const;
+  /// Calculate an integral
+  double integrate(const std::vector<double> &p) const;
+  /// Calculate expansion coefficients
+  std::vector<double> calcA(const std::vector<double> &p) const;
+  /// Calculate function values
+  std::vector<double> calcP(const std::vector<double> &a) const;
+  /// Calculate function values at chebfun x-points
+  std::vector<double> fit(ChebfunFunctionType f) const;
+  /// Calculate function values at chebfun x-points
+  std::vector<double> fit(const API::IFunction &f) const;
+
+  /// Evaluate a function
+  double eval(double x, const std::vector<double> &p) const;
+  /// Evaluate a function
+  void evalVector(const std::vector<double> &x, const std::vector<double> &p,
+                  std::vector<double> &res) const;
+  /// Evaluate a function
+  std::vector<double> evalVector(const std::vector<double> &x,
+                                 const std::vector<double> &p) const;
+  /// Calculate the derivative
+  void derivative(const std::vector<double> &a,
+                  std::vector<double> &aout) const;
+  /// Calculate the integral
+  boost::shared_ptr<ChebfunBase> integral(const std::vector<double> &a,
+                                          std::vector<double> &aout) const;
+  /// Find all roots of a function on this interval
+  std::vector<double> roots(const std::vector<double> &a) const;
+
+  /// Fit a function until full convergence
+  static boost::shared_ptr<ChebfunBase>
+  bestFit(double start, double end, ChebfunFunctionType, std::vector<double> &p,
+          std::vector<double> &a, double maxA = 0.0, double tolerance = 0.0,
+          size_t maxSize = 0);
+  /// Fit a function until full convergence
+  static boost::shared_ptr<ChebfunBase>
+  bestFit(double start, double end, const API::IFunction &,
+          std::vector<double> &p, std::vector<double> &a, double maxA = 0.0,
+          double tolerance = 0.0, size_t maxSize = 0);
+  /// Tolerance for comparing doubles
+  double tolerance() { return m_tolerance; }
+
+  /// Find best fit with highest possible tolerance (to be used with noisy data).
+  template <class FunctionType>
+  static boost::shared_ptr<ChebfunBase>
+  bestFitAnyTolerance(double start, double end, FunctionType f,
+                      std::vector<double> &p, std::vector<double> &a,
+                      double maxA = 0.0, double tolerance = 0.0, size_t maxSize = 0);
+
+  /// Create a vector of x values linearly spaced on the approximation interval
+  std::vector<double> linspace(size_t n) const;
+
+private:
+  /// Private assingment operator to stress the immutability of ChebfunBase.
+  ChebfunBase &operator=(const ChebfunBase &other);
+  /// Calculate the x-values based on the (start,end) interval.
+  void calcX();
+  /// Calculate the integration weights
+  void calcIntegrationWeights() const;
+
+  /// Calculate function values at odd-valued indices of the base x-points
+  std::vector<double> fitOdd(ChebfunFunctionType f,
+                             std::vector<double> &p) const;
+  /// Calculate function values at odd-valued indices of the base x-points
+  std::vector<double> fitOdd(const API::IFunction &f,
+                             std::vector<double> &p) const;
+  /// Test an array of Chebyshev coefficients for convergence
+  static bool hasConverged(const std::vector<double> &a, double maxA,
+                           double tolerance, size_t shift = 0);
+  /// Templated implementation of bestFit method
+  template <class FunctionType>
+  static boost::shared_ptr<ChebfunBase>
+  bestFitTempl(double start, double end, FunctionType f, std::vector<double> &p,
+               std::vector<double> &a, double maxA, double tolerance,
+               size_t maxSize);
+
+  /// Actual tolerance in comparing doubles
+  const double m_tolerance;
+  /// Polynomial order.
+  size_t m_n;
+  /// Start of the interval
+  double m_start;
+  /// End of the interval
+  double m_end;
+  /// The x-points
+  std::vector<double> m_x;
+  /// The barycentric weights.
+  std::vector<double> m_bw;
+  /// The integration weights
+  mutable std::vector<double> m_integrationWeights;
+  /// Maximum tolerance in comparing doubles
+  static const double g_tolerance;
+  /// Maximum number of (x) points in a base.
+  static const size_t g_maxNumberPoints;
+};
+
+typedef boost::shared_ptr<ChebfunBase> ChebfunBase_sptr;
+
+
+/// Find best fit with highest possible tolerance (to be used with noisy data).
+template <class FunctionType>
+boost::shared_ptr<ChebfunBase>
+ChebfunBase::bestFitAnyTolerance(double start, double end, FunctionType f,
+                    std::vector<double> &p, std::vector<double> &a,
+                    double maxA, double tolerance, size_t maxSize)
+{
+  if (tolerance == 0.0)
+    tolerance = g_tolerance;
+  for(double tol = tolerance; tol < 0.1; tol *= 100)
+  {
+    auto base = bestFit(start, end, f, p, a, maxA, tol, maxSize);
+    if (base) return base;
+  }
+  return ChebfunBase_sptr();
+}
+
+} // CurveFitting
+} // Mantid
+
+#endif // MANTID_CURVEFITTING_CHEBFUNBASE_H
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ComptonPeakProfile.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ComptonPeakProfile.h
index 8ed2f12c24bfcb2dce32275b68d132fd26a6174e..22d9514f8f6749ea7e5a5d9d6153613673be7005 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ComptonPeakProfile.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ComptonPeakProfile.h
@@ -3,7 +3,7 @@
 
 #include "MantidCurveFitting/DllConfig.h"
 #include "MantidAPI/IPeakFunction.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/ParamFunction.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ComptonProfile.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ComptonProfile.h
index 813320615a901d57823c6011c645c2d199ed007c..c533219940a0172149577792504bae5ea9c88330 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ComptonProfile.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ComptonProfile.h
@@ -4,7 +4,7 @@
 #include "MantidCurveFitting/DllConfig.h"
 #include "MantidCurveFitting/VesuvioResolution.h"
 #include "MantidAPI/IPeakFunction.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/ParamFunction.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ConvolveWorkspaces.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ConvolveWorkspaces.h
index 32659cce69a42d05bc0c622e90389b3fd50c8853..30ad9f3f040bf284b2274e08dbd3753b665eff41 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ConvolveWorkspaces.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ConvolveWorkspaces.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/IFunctionMW.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidCurveFitting/CubicSpline.h"
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h
index 1ace0ce7c0b7ed2bff41ba6ed259047a02349c6b..93afc751bbb5992d94df123e4fd6c07744e322ed 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h
@@ -64,8 +64,7 @@ public:
   /// @return :: The value of the function
   virtual double valAndDeriv(std::vector<double> &der) const;
 
-  virtual double valDerivHessian(bool evalFunction = true,
-                                 bool evalDeriv = true,
+  virtual double valDerivHessian(bool evalDeriv = true,
                                  bool evalHessian = true) const;
   const GSLVector &getDeriv() const;
   const GSLMatrix &getHessian() const;
@@ -85,7 +84,7 @@ protected:
   void addValDerivHessian(API::IFunction_sptr function,
                           API::FunctionDomain_sptr domain,
                           API::FunctionValues_sptr values,
-                          bool evalFunction = true, bool evalDeriv = true,
+                          bool evalDeriv = true,
                           bool evalHessian = true) const;
 
   /// Get mapped weights from FunctionValues
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/EvaluateFunction.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/EvaluateFunction.h
new file mode 100644
index 0000000000000000000000000000000000000000..48bfd7abe57983d68d45b5c817c6361fb06313fa
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/EvaluateFunction.h
@@ -0,0 +1,50 @@
+#ifndef MANTID_CURVEFITTING_EVALUATEFUNCTION_H_
+#define MANTID_CURVEFITTING_EVALUATEFUNCTION_H_
+
+#include "MantidKernel/System.h"
+#include "MantidCurveFitting/IFittingAlgorithm.h"
+
+namespace Mantid {
+namespace CurveFitting {
+
+/**
+
+  Evaluate a function (1D or MD) on a domain of an input workspace and save
+  the result in the output workspace.
+
+  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 EvaluateFunction : public IFittingAlgorithm {
+public:
+  virtual const std::string name() const;
+  virtual int version() const;
+  virtual const std::string summary() const;
+
+private:
+  void initConcrete();
+  void execConcrete();
+};
+
+} // namespace CurveFitting
+} // namespace Mantid
+
+#endif /* MANTID_CURVEFITTING_EVALUATEFUNCTION_H_ */
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/Fit.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/Fit.h
index 7bd44423f20366d6d6aacbb934e23aab2dbac72d..5371b76fa552b925a86a3e9a76e787e7dff68801 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/Fit.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/Fit.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 //#include "MantidAPI/Algorithm.h"
 //#include "MantidAPI/IFunction.h"
-//#include "MantidAPI/Workspace.h"
+//#include "MantidAPI/Workspace_fwd.h"
 //#include "MantidAPI/IDomainCreator.h"
 #include "MantidCurveFitting/IFittingAlgorithm.h"
 
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/FitPowderDiffPeaks.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/FitPowderDiffPeaks.h
index 2c5ba80bb03b160cf863e2773ef90f56e7a2e2c1..1fe1d2551ebe75f32516f0077b138a6c153f8fc3 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/FitPowderDiffPeaks.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/FitPowderDiffPeaks.h
@@ -3,9 +3,9 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/CompositeFunction.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidCurveFitting/BackgroundFunction.h"
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/FunctionDomain1DSpectrumCreator.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/FunctionDomain1DSpectrumCreator.h
index e838d3908542d1edacd6cfd48089f75351b4208d..09cb3d1aafbfe1a7714dbefcddc69f5b9a99edba 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/FunctionDomain1DSpectrumCreator.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/FunctionDomain1DSpectrumCreator.h
@@ -3,8 +3,9 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/IDomainCreator.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/FunctionDomain1D.h"
+#include "MantidKernel/cow_ptr.h"
 
 namespace Mantid {
 namespace CurveFitting {
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLJacobian.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLJacobian.h
index 8aeb7d64cd213acf56ed0e33c7e262d606d4c4d6..5aa82134bf72a6a06a4ab92c80a88886f21f36d9 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLJacobian.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLJacobian.h
@@ -3,7 +3,7 @@
 
 #include "MantidAPI/Jacobian.h"
 #include "MantidAPI/IFunction.h"
-#include <gsl/gsl_matrix.h>
+#include "MantidCurveFitting/GSLMatrix.h"
 
 #include <vector>
 #include <stdexcept>
@@ -39,7 +39,7 @@ Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
 class GSLJacobian : public API::Jacobian {
   /// The pointer to the GSL's internal jacobian matrix
-  gsl_matrix *m_J;
+  GSLMatrix m_J;
   /// Maps declared indeces to active. For fixed (tied) parameters holds -1
   std::vector<int> m_index;
 
@@ -55,14 +55,16 @@ public:
       if (fun->isActive(i))
         ++np;
     }
-    m_J = gsl_matrix_alloc(ny, np);
+    m_J.resize(ny, np);
   }
 
   /// Destructor.
-  ~GSLJacobian() { gsl_matrix_free(m_J); }
+  ~GSLJacobian() { }
+
+  GSLMatrix& matrix() {return m_J;}
 
   /// Get the pointer to the GSL's jacobian
-  gsl_matrix *getJ() { return m_J; }
+  gsl_matrix *getJ() { return m_J.gsl(); }
 
   /// overwrite base method
   /// @param value :: the value
@@ -70,12 +72,12 @@ public:
   ///  @throw runtime_error Thrown if column of Jacobian to add number to does
   ///  not exist
   void addNumberToColumn(const double &value, const size_t &iActiveP) {
-    if (iActiveP < m_J->size2) {
+    if (iActiveP < m_J.size2()) {
       // add penalty to first and last point and every 10th point in between
-      m_J->data[iActiveP] += value;
-      m_J->data[(m_J->size1 - 1) * m_J->size2 + iActiveP] += value;
-      for (size_t iY = 9; iY < m_J->size1 - 1; iY += 10)
-        m_J->data[iY * m_J->size2 + iActiveP] += value;
+      m_J.gsl()->data[iActiveP] += value;
+      m_J.gsl()->data[(m_J.size1() - 1) * m_J.size2() + iActiveP] += value;
+      for (size_t iY = 9; iY < m_J.size1() - 1; iY += 10)
+        m_J.gsl()->data[iY * m_J.size2() + iActiveP] += value;
     } else {
       throw std::runtime_error("Try to add number to column of Jacobian matrix "
                                "which does not exist.");
@@ -85,13 +87,13 @@ public:
   void set(size_t iY, size_t iP, double value) {
     int j = m_index[iP];
     if (j >= 0)
-      gsl_matrix_set(m_J, iY, j, value);
+      m_J.set(iY, j, value);
   }
   /// overwrite base method
   double get(size_t iY, size_t iP) {
     int j = m_index[iP];
     if (j >= 0)
-      return gsl_matrix_get(m_J, iY, j);
+      return m_J.get(iY, j);
     return 0.0;
   }
 };
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLMatrix.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLMatrix.h
index 98f69c7cc7ca1742cd80ed40a71c392b6f37659e..d5e687a1ae5c4b047cc244b9491d4e25af3e7149 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLMatrix.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLMatrix.h
@@ -101,168 +101,80 @@ class MANTID_CURVEFITTING_DLL GSLMatrix {
   gsl_matrix *m_matrix;
 public:
   /// Constructor
-  GSLMatrix() : m_matrix(NULL) {}
+  GSLMatrix();
   /// Constructor
-  /// @param nx :: First dimension
-  /// @param ny :: Second dimension
-  GSLMatrix(const size_t nx, const size_t ny) {
-    m_matrix = gsl_matrix_alloc(nx, ny);
-  }
-
+  GSLMatrix(const size_t nx, const size_t ny);
   /// Copy constructor
-  /// @param M :: The other matrix.
-  GSLMatrix(const GSLMatrix &M) {
-    m_matrix = gsl_matrix_alloc(M.size1(), M.size2());
-    gsl_matrix_memcpy(m_matrix, M.gsl());
-  }
-
-  /// Create a submatrix. A submatrix is a view into the parent matrix.
-  /// Lifetime of a submatrix cannot exceed the lifetime of the parent.
-  /// @param M :: The parent matrix.
-  /// @param row :: The first row in the submatrix.
-  /// @param col :: The first column in the submatrix.
-  /// @param nRows :: The number of rows in the submatrix.
-  /// @param nCols :: The number of columns in the submatrix.
-  GSLMatrix(const GSLMatrix &M, size_t row, size_t col, size_t nRows, size_t nCols) {
-    if ( row + nRows > M.size1() || col + nCols > M.size2() )
-    {
-      throw std::runtime_error("Submatrix exceeds matrix size.");
-    }
-    auto view = gsl_matrix_const_submatrix(M.gsl(), row, col, nRows, nCols);
-    m_matrix = gsl_matrix_alloc(nRows, nCols);
-    gsl_matrix_memcpy(m_matrix, &view.matrix);
-  }
-
+  GSLMatrix(const GSLMatrix &M);
+  /// Create a submatrix. 
+  GSLMatrix(const GSLMatrix &M, size_t row, size_t col, size_t nRows, size_t nCols);
   /// Constructor
-  /// @param M :: A matrix to copy.
-  GSLMatrix(const Kernel::Matrix<double>& M) {
-    m_matrix = gsl_matrix_alloc(M.numRows(), M.numCols());
-    for(size_t i = 0; i < size1(); ++i)
-    for(size_t j = 0; j < size2(); ++j){
-      set(i,j, M[i][j]);
-    }
-  }
-
+  GSLMatrix(const Kernel::Matrix<double>& M);
   /// Create this matrix from a product of two other matrices
-  /// @param mult2 :: Matrix multiplication helper object.
-  GSLMatrix(const GSLMatrixMult2 &mult2) : m_matrix(NULL) {*this = mult2;}
-
+  GSLMatrix(const GSLMatrixMult2 &mult2);
   /// Create this matrix from a product of three other matrices
-  /// @param mult3 :: Matrix multiplication helper object.
-  GSLMatrix(const GSLMatrixMult3 &mult3) : m_matrix(NULL) {*this = mult3;}
-
+  GSLMatrix(const GSLMatrixMult3 &mult3);
   /// Destructor.
-  ~GSLMatrix() {
-    if (m_matrix) {
-      gsl_matrix_free(m_matrix);
-    }
-  }
+  ~GSLMatrix();
 
   /// Copy assignment operator
-  GSLMatrix &operator=(const GSLMatrix &M) {
-    resize(M.size1(), M.size2());
-    gsl_matrix_memcpy(m_matrix, M.gsl());
-    return *this;
-  }
+  GSLMatrix &operator=(const GSLMatrix &M);
 
   /// Get the pointer to the GSL matrix
   gsl_matrix *gsl() { return m_matrix; }
-
   /// Get the const pointer to the GSL matrix
   const gsl_matrix *gsl() const { return m_matrix; }
 
   /// Is matrix empty
-  bool isEmpty() const { return m_matrix == NULL; }
-
+  bool isEmpty() const;
   /// Resize the matrix
-  /// @param nx :: New first dimension
-  /// @param ny :: New second dimension
-  void resize(const size_t nx, const size_t ny) {
-    if (m_matrix) {
-      gsl_matrix_free(m_matrix);
-    }
-    m_matrix = gsl_matrix_alloc(nx, ny);
-  }
-
+  void resize(const size_t nx, const size_t ny);
   /// First size of the matrix
-  size_t size1() const { return m_matrix ? m_matrix->size1 : 0; }
-
+  size_t size1() const;
   /// Second size of the matrix
-  size_t size2() const { return m_matrix ? m_matrix->size2 : 0; }
-
-  /// set an element
-  /// @param i :: The row
-  /// @param j :: The column
-  /// @param value :: The new vaule
-  void set(size_t i, size_t j, double value) {
-    if (i < m_matrix->size1 && j < m_matrix->size2)
-      gsl_matrix_set(m_matrix, i, j, value);
-    else {
-      throw std::out_of_range("GSLMatrix indices are out of range.");
-    }
-  }
-  /// get an element
-  /// @param i :: The row
-  /// @param j :: The column
-  double get(size_t i, size_t j) const {
-    if (i < m_matrix->size1 && j < m_matrix->size2)
-      return gsl_matrix_get(m_matrix, i, j);
-    throw std::out_of_range("GSLMatrix indices are out of range.");
-  }
+  size_t size2() const;
+  /// Set an element
+  void set(size_t i, size_t j, double value);
+  /// Get an element
+  double get(size_t i, size_t j) const;
 
   /// Set this matrix to identity matrix
-  void identity() { gsl_matrix_set_identity(m_matrix); }
-
+  void identity();
   /// Set all elements to zero
-  void zero() { gsl_matrix_set_zero(m_matrix); }
-
-  /// add a matrix to this
-  /// @param M :: A matrix
-  GSLMatrix &operator+=(const GSLMatrix &M) {
-    gsl_matrix_add(m_matrix, M.gsl());
-    return *this;
-  }
-
-  /// add a constant to this matrix
-  /// @param d :: A number
-  GSLMatrix &operator+=(const double &d) {
-    gsl_matrix_add_constant(m_matrix, d);
-    return *this;
-  }
-
-  /// subtract a matrix from this
-  /// @param M :: A matrix
-  GSLMatrix &operator-=(const GSLMatrix &M) {
-    gsl_matrix_sub(m_matrix, M.gsl());
-    return *this;
-  }
-
-  /// multiply this matrix by a number
-  /// @param d :: A number
-  GSLMatrix &operator*=(const double &d) {
-    gsl_matrix_scale(m_matrix, d);
-    return *this;
-  }
-
+  void zero();
+  /// Set the matrix to be diagonal.
+  void diag(const GSLVector& d);
+  /// Add a matrix to this
+  GSLMatrix &operator+=(const GSLMatrix &M);
+  /// Add a constant to this matrix
+  GSLMatrix &operator+=(const double &d);
+  /// Subtract a matrix from this
+  GSLMatrix &operator-=(const GSLMatrix &M);
+  /// Multiply this matrix by a number
+  GSLMatrix &operator*=(const double &d);
   /// Assign this matrix to a product of two other matrices
   /// @param mult2 :: Matrix multiplication helper object.
   GSLMatrix &operator=(const GSLMatrixMult2 &mult2);
-
   /// Assign this matrix to a product of three other matrices
   /// @param mult3 :: Matrix multiplication helper object.
   GSLMatrix &operator=(const GSLMatrixMult3 &mult3);
 
+  /// Copy a row into a GSLVector
+  GSLVector copyRow(size_t i) const;
+  /// Copy a column into a GSLVector
+  GSLVector copyColumn(size_t i) const;
+
   /// Solve system of linear equations M*x == rhs, M is this matrix
   /// This matrix is destroyed.
   /// @param rhs :: The right-hand-side vector
   /// @param x :: The solution vector
   void solve(const GSLVector &rhs, GSLVector &x);
-
   /// Invert this matrix
   void invert();
-
   /// Calculate the determinant
   double det();
+  /// Calculate the eigensystem of a symmetric matrix
+  void eigenSystem(GSLVector& eigenValues, GSLMatrix& eigenVectors);
 };
 
 /// Overloaded operator for matrix multiplication
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLVector.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLVector.h
index 7b651649aa9c9f57a4ddbeecec2a9224ff4caa5b..c25740b8792d98d1fb9aa229c21fe7d086fe4150 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLVector.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/GSLVector.h
@@ -1,10 +1,10 @@
 #ifndef MANTID_CURVEFITTING_GSLVECTOR_H_
 #define MANTID_CURVEFITTING_GSLVECTOR_H_
 
+#include "MantidCurveFitting/DllConfig.h"
 #include <gsl/gsl_vector.h>
 
-#include <stdexcept>
-#include <sstream>
+#include <ostream>
 #include <vector>
 
 namespace Mantid {
@@ -36,134 +36,67 @@ 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 GSLVector {
-  /// The pointer to the GSL vector
-  gsl_vector *m_vector;
-
+class MANTID_CURVEFITTING_DLL GSLVector {
 public:
   /// Constructor
-  GSLVector() : m_vector(NULL) {}
-
+  GSLVector();
   /// Constructor
-  /// @param n :: The length of the vector.
-  GSLVector(const size_t n) { m_vector = gsl_vector_alloc(n); }
-
+  explicit GSLVector(const size_t n);
   /// Construct from a std vector
-  /// @param v :: A std vector.
-  GSLVector(const std::vector<double> &v) {
-    m_vector = gsl_vector_alloc(v.size());
-    for (size_t i = 0; i < v.size(); ++i) {
-      set(i, v[i]);
-    }
-  }
-
+  explicit GSLVector(const std::vector<double> &v);
+  /// Copy from a gsl vector
+  explicit GSLVector(const gsl_vector *v);
   /// Copy constructor.
-  /// @param v :: The other vector
-  GSLVector(const GSLVector &v) {
-    m_vector = gsl_vector_alloc(v.size());
-    gsl_vector_memcpy(m_vector, v.gsl());
-  }
-
+  GSLVector(const GSLVector &v);
   /// Copy assignment operator
-  /// @param v :: The other vector
-  GSLVector &operator=(const GSLVector &v) {
-    if (m_vector && size() != v.size()) {
-      gsl_vector_free(m_vector);
-      m_vector = NULL;
-    }
-    if (!m_vector) {
-      m_vector = gsl_vector_alloc(v.size());
-    }
-    gsl_vector_memcpy(m_vector, v.gsl());
-    return *this;
-  }
-
-  /// Destructor.
-  ~GSLVector() {
-    if (m_vector) {
-      gsl_vector_free(m_vector);
-    }
-  }
+  GSLVector &operator=(const GSLVector &v);
 
   /// Get the pointer to the GSL vector
-  gsl_vector *gsl() { return m_vector; }
-
+  gsl_vector *gsl();
   /// Get the pointer to the GSL vector
-  const gsl_vector *gsl() const { return m_vector; }
+  const gsl_vector *gsl() const;
 
   /// Resize the vector
-  /// @param n :: The new length
-  void resize(const size_t n) {
-    if (m_vector) {
-      gsl_vector_free(m_vector);
-    }
-    m_vector = gsl_vector_alloc(n);
-  }
-
+  void resize(const size_t n);
   /// Size of the vector
-  size_t size() const { return m_vector ? m_vector->size : 0; }
-
-  /// set an element
-  /// @param i :: The element index
-  /// @param value :: The new value
-  void set(size_t i, double value) {
-    if (i < m_vector->size)
-      gsl_vector_set(m_vector, i, value);
-    else {
-      std::stringstream errmsg;
-      errmsg << "GSLVector index = " << i
-             << " is out of range = " << m_vector->size
-             << " in GSLVector.set()";
-      throw std::out_of_range(errmsg.str());
-    }
-  }
-  /// get an element
-  /// @param i :: The element index
-  double get(size_t i) const {
-    if (i < m_vector->size)
-      return gsl_vector_get(m_vector, i);
-
-    std::stringstream errmsg;
-    errmsg << "GSLVector index = " << i
-           << " is out of range = " << m_vector->size << " in GSLVector.get()";
-    throw std::out_of_range(errmsg.str());
-  }
-
+  size_t size() const;
+
+  /// Set an element
+  void set(size_t i, double value);
+  /// Get an element
+  double get(size_t i) const;
+  /// Get a const reference to an element
+  const double& operator[](size_t i) const {return m_data[i];}
+  /// Get a reference to an element
+  double& operator[](size_t i) {return m_data[i];}
   // Set all elements to zero
-  void zero() {
-    if (m_vector) {
-      gsl_vector_set_zero(m_vector);
-    }
-  }
+  void zero();
+  /// Normalise this vector
+  void normalize();
+  /// Get vector norm (length)
+  double norm() const;
+  /// Get vector norm squared
+  double norm2() const;
+  /// Calculate the dot product
+  double dot(const GSLVector &v) const;
 
   /// Add a vector
-  /// @param v :: The other vector
-  GSLVector &operator+=(const GSLVector &v) {
-    if (m_vector) {
-      gsl_vector_add(m_vector, v.gsl());
-    }
-    return *this;
-  }
-
+  GSLVector &operator+=(const GSLVector &v);
   /// Subtract a vector
-  /// @param v :: The other vector
-  GSLVector &operator-=(const GSLVector &v) {
-    if (m_vector) {
-      gsl_vector_sub(m_vector, v.gsl());
-    }
-    return *this;
-  }
-
+  GSLVector &operator-=(const GSLVector &v);
   /// Multiply by a number
-  /// @param d :: The number
-  GSLVector &operator*=(const double d) {
-    if (m_vector) {
-      gsl_vector_scale(m_vector, d);
-    }
-    return *this;
-  }
+  GSLVector &operator*=(const double d);
+
+private:
+  /// Default element storage
+  std::vector<double> m_data;
+  /// The pointer to the GSL vector
+  gsl_vector_view m_view;
 };
 
+/// The << operator.
+MANTID_CURVEFITTING_DLL std::ostream &operator<<(std::ostream &ostr, const GSLVector &v);
+
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/HalfComplex.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/HalfComplex.h
new file mode 100644
index 0000000000000000000000000000000000000000..97ffb7901ba330975596dd8f99c28a69b4f9c5cc
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/HalfComplex.h
@@ -0,0 +1,74 @@
+#ifndef MANTID_CURVEFITTING_HALFCOMPLEX_H_
+#define MANTID_CURVEFITTING_HALFCOMPLEX_H_
+
+namespace Mantid {
+namespace CurveFitting {
+
+/**
+ * Class for helping to read the transformed data. It represent an output of
+ * the GSL real fast fourier transform routine. The routine transforms an
+ * array of n real numbers into an array of about n/2 complex numbers which
+ * are the amplitudes of the positive frequencies of the full complex fourier
+ * transform.
+ */
+class HalfComplex {
+  size_t m_size;  ///< size of the transformed data
+  double *m_data; ///< pointer to the transformed data
+  bool m_even;    ///< true if the size of the original data is even
+public:
+
+   /// Constructor.
+   /// @param data :: A pointer to the transformed complex data
+   /// @param n :: The size of untransformed real data
+  HalfComplex(double *data, const size_t &n)
+      : m_size(n / 2 + 1), m_data(data), m_even(n / 2 * 2 == n) {}
+  /// Returns the size of the transform
+  size_t size() const { return m_size; }
+
+  /// The real part of i-th transform coefficient
+  /// @param i :: The index of the complex transform coefficient
+  /// @return The real part
+  double real(size_t i) const {
+    if (i >= m_size)
+      return 0.;
+    if (i == 0)
+      return m_data[0];
+    return m_data[2 * i - 1];
+  }
+  /// The imaginary part of i-th transform coefficient
+  /// @param i :: The index of the complex transform coefficient
+  /// @return The imaginary part
+  double imag(size_t i) const {
+    if (i >= m_size)
+      return 0.;
+    if (i == 0)
+      return 0;
+    if (m_even && i == m_size - 1)
+      return 0;
+    return m_data[2 * i];
+  }
+  
+  /// Set a new value for i-th complex coefficient
+  /// @param i :: The index of the coefficient
+  /// @param re :: The real part of the new value
+  /// @param im :: The imaginary part of the new value
+  void set(size_t i, const double &re, const double &im) {
+    if (i >= m_size)
+      return;
+    if (i == 0) // this is purely real
+    {
+      m_data[0] = re;
+    } else if (m_even && i == m_size - 1) // this is also purely real
+    {
+      m_data[2 * i - 1] = re;
+    } else {
+      m_data[2 * i - 1] = re;
+      m_data[2 * i] = im;
+    }
+  }
+};
+
+} // namespace CurveFitting
+} // namespace Mantid
+
+#endif /*MANTID_CURVEFITTING_HALFCOMPLEX_H_*/
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LatticeDomainCreator.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LatticeDomainCreator.h
index 290a8347fd0e6cd13fc79731ed575fc140879a71..9e3da267890fbdb756d746c6bbe6752d6002d98a 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LatticeDomainCreator.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LatticeDomainCreator.h
@@ -3,8 +3,9 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/IDomainCreator.h"
-#include "MantidAPI/Workspace.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/Workspace_fwd.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace Mantid {
 namespace CurveFitting {
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFit.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFit.h
index 6080044f484a343cbb201dbec5fc8c8210ca12d5..cd60219519794d3d0e53e12965233f4402904dfb 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFit.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFit.h
@@ -6,11 +6,11 @@
 #include "MantidCurveFitting/LeBailFunction.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidCurveFitting/ThermalNeutronBk2BkExpConvPVoigt.h"
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/BackgroundFunction.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidAPI/IFunction.h"
 #include <gsl/gsl_sf_erf.h>
 
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFunction.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFunction.h
index d26f232f4987532dec6858a3c9d0cfa0550cf901..5eace6a2e0a622cd78c135672cb77dee8a16b882 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFunction.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFunction.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/CompositeFunction.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/IPowderDiffPeakFunction.h"
 #include "MantidCurveFitting/BackgroundFunction.h"
 
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/MultiBG.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/MultiBG.h
index 41b7b1a255451e944250f8399718d11484b9a75f..506d7e7f047a3cc6dccba054d32ed6ec93e21e94 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/MultiBG.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/MultiBG.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidAPI/IFunctionMW.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #ifdef _WIN32
 #pragma warning(disable : 4250)
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ParDomain.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ParDomain.h
index 0c8f0aa9efc5500a20a6d2879d1a05dd509707d9..bda5ec1da7cc7a89ee1a20eeb634b7eca1a483a7 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ParDomain.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/ParDomain.h
@@ -48,8 +48,7 @@ public:
   /// function
   virtual void
   leastSquaresValDerivHessian(const CostFuncLeastSquares &leastSquares,
-                              bool evalFunction, bool evalDeriv,
-                              bool evalHessian);
+                              bool evalDeriv, bool evalHessian);
 };
 
 } // namespace CurveFitting
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFit.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFit.h
index 455df893d86d5afafc4a473e538a13125d3b0cff..c1c78b1044cd34e7e7a24c9d3277b1ae0b9098ba 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFit.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFit.h
@@ -3,6 +3,8 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
+#include "MantidAPI/TableRow.h"
 #include "MantidCurveFitting/PawleyFunction.h"
 #include "MantidKernel/Unit.h"
 
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFunction.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFunction.h
index bd042c8a4cbd02c7da0ce01cc5eeb58b22022ecc..a9e3214fd494c581db6725e82b1b4c62cd5ca66d 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFunction.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFunction.h
@@ -4,7 +4,7 @@
 #include "MantidKernel/System.h"
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidAPI/IPawleyFunction.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/IPeakFunction.h"
 #include "MantidAPI/ParamFunction.h"
 
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters.h
index 95b443f7076547586a72d1d70e34e8e4d18a2d59..debe7054a8bbfc3ff26d11c0638cd687034fec87 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters.h
@@ -3,9 +3,9 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/CompositeFunction.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidCurveFitting/BackgroundFunction.h"
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomain.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomain.h
index fb61d9b2b2ae23a14388629d8d752777d4e47b11..56c115327c57f54fc4bc8daa1e08edbe641a5d4f 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomain.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomain.h
@@ -62,13 +62,11 @@ public:
   /// function
   virtual void
   leastSquaresValDerivHessian(const CostFuncLeastSquares &leastSquares,
-                              bool evalFunction, bool evalDeriv,
-                              bool evalHessian);
+                              bool evalDeriv, bool evalHessian);
   /// Calculate the value of a Rwp cost function
   void rwpVal(const CostFuncRwp &rwp);
   /// Calculate the value, first and second derivatives of a RWP cost function
-  void rwpValDerivHessian(const CostFuncRwp &rwp, bool evalFunction,
-                          bool evalDeriv, bool evalHessian);
+  void rwpValDerivHessian(const CostFuncRwp &rwp, bool evalDeriv, bool evalHessian);
 
   /// Create an instance of SeqDomain in one of two forms: either SeqDomain for
   /// sequential domain creation
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomainSpectrumCreator.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomainSpectrumCreator.h
index 1cba45ba9a32ff9866e6990b6504a3435ae769ba..6a521e3ab34193271bf9bcbe3cb6feb9efc500e8 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomainSpectrumCreator.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomainSpectrumCreator.h
@@ -4,7 +4,8 @@
 #include "MantidKernel/System.h"
 #include "MantidAPI/IDomainCreator.h"
 #include "MantidAPI/FunctionDomain1D.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/Workspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace CurveFitting {
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SplineBackground.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SplineBackground.h
index e45ccb0aa8c68afadfc9b3a55e7bd98456521d7c..53d877e613b3670c049e7683fa8f5c8c83114ca1 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SplineBackground.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/SplineBackground.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 namespace Mantid {
 namespace CurveFitting {
diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/VesuvioResolution.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/VesuvioResolution.h
index e747df1d7294e6005f55a4d10ad9f48be720a8b1..02f62fb838f4303c62d893c1d86b769f6dedb560 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/VesuvioResolution.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/VesuvioResolution.h
@@ -3,7 +3,7 @@
 
 #include "MantidCurveFitting/DllConfig.h"
 #include "MantidAPI/IPeakFunction.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/ParamFunction.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/CurveFitting/src/BSpline.cpp b/Code/Mantid/Framework/CurveFitting/src/BSpline.cpp
index 2771d44b4399ecf71239a479ab090f62bcab338c..b174fdc184dedc64f68525912eddf8103fde4e81 100644
--- a/Code/Mantid/Framework/CurveFitting/src/BSpline.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/BSpline.cpp
@@ -232,7 +232,7 @@ void BSpline::resetKnots() {
       resetGSLObjects();
       resetParameters();
     }
-    GSLVector bp = breakPoints;
+    GSLVector bp(breakPoints);
     gsl_bspline_knots(bp.gsl(), m_bsplineWorkspace.get());
     storeAttributeValue("StartX", Attribute(breakPoints.front()));
     storeAttributeValue("EndX", Attribute(breakPoints.back()));
diff --git a/Code/Mantid/Framework/CurveFitting/src/CalculateChiSquared.cpp b/Code/Mantid/Framework/CurveFitting/src/CalculateChiSquared.cpp
index f0fac91ba88dee890560c73a5142f0dfcfb00a9d..6a4351d26f30095f9a99b0d0ca47e01fbbc29cb8 100644
--- a/Code/Mantid/Framework/CurveFitting/src/CalculateChiSquared.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/CalculateChiSquared.cpp
@@ -1,4 +1,10 @@
 #include "MantidCurveFitting/CalculateChiSquared.h"
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/WorkspaceFactory.h"
+#include "MantidAPI/Column.h"
+#include "MantidAPI/TableRow.h"
+#include "MantidCurveFitting/ChebfunBase.h"
+#include "MantidCurveFitting/GSLJacobian.h"
 
 namespace Mantid {
 namespace CurveFitting {
@@ -10,14 +16,42 @@ using namespace Mantid::API;
 DECLARE_ALGORITHM(CalculateChiSquared)
 
 //----------------------------------------------------------------------------------------------
-/** Constructor
- */
-CalculateChiSquared::CalculateChiSquared() {}
+namespace {
 
-//----------------------------------------------------------------------------------------------
-/** Destructor
- */
-CalculateChiSquared::~CalculateChiSquared() {}
+/// Caclculate the chi squared, weighted chi squared and the number of degrees
+/// of freedom.
+/// @param domain :: Function's domain.
+/// @param nParams :: Number of free fitting parameters.
+/// @param values :: Functin's values.
+/// @param chi0 :: Chi squared at the minimum.
+/// @param sigma2 :: Estimated variance of the fitted data.
+void calcChiSquared(const API::IFunction &fun, size_t nParams,
+                    const API::FunctionDomain &domain,
+                    API::FunctionValues &values, double &chiSquared,
+                    double &chiSquaredWeighted, double &dof) {
+
+  // Calculate function values.
+  fun.function(domain, values);
+
+  // Calculate the chi squared.
+  chiSquared = 0.0;
+  chiSquaredWeighted = 0.0;
+  dof = -static_cast<double>(nParams);
+  for (size_t i = 0; i < values.size(); ++i) {
+    auto weight = values.getFitWeight(i);
+    if (weight > 0.0) {
+      double tmp = values.getFitData(i) - values.getCalculated(i);
+      chiSquared += tmp * tmp;
+      tmp *= weight;
+      chiSquaredWeighted += tmp * tmp;
+      dof += 1.0;
+    }
+  }
+  if (dof <= 0.0) {
+    dof = 1.0;
+  }
+}
+}
 
 //----------------------------------------------------------------------------------------------
 
@@ -37,16 +71,23 @@ const std::string CalculateChiSquared::summary() const {
 //----------------------------------------------------------------------------------------------
 /// Initialize the algorithm's properties.
 void CalculateChiSquared::initConcrete() {
-  declareProperty("ChiSquared", 0.0, "Output value of chi squared.", Direction::Output);
+  declareProperty("ChiSquared", 0.0, "Output value of chi squared.",
+                  Direction::Output);
   declareProperty("ChiSquaredDividedByDOF", 0.0,
                   "Output value of chi squared divided by the "
                   "number of degrees of freedom (NofData "
-                  "- nOfParams).", Direction::Output);
-  declareProperty("ChiSquaredWeighted", 0.0, "Output value of weighted chi squared.", Direction::Output);
+                  "- nOfParams).",
+                  Direction::Output);
+  declareProperty("ChiSquaredWeighted", 0.0,
+                  "Output value of weighted chi squared.", Direction::Output);
   declareProperty("ChiSquaredWeightedDividedByDOF", 0.0,
                   "Output value of weighted chi squared divided by the "
                   "number of degrees of freedom (NofData "
-                  "- nOfParams).", Direction::Output);
+                  "- nOfParams).",
+                  Direction::Output);
+  declareProperty("Output", "", "A base name for output workspaces.");
+  declareProperty("Weighted", false, "Option to use the weighted chi squared "
+                                     "in error estimation. Default is false.");
 }
 
 //----------------------------------------------------------------------------------------------
@@ -62,9 +103,6 @@ void CalculateChiSquared::execConcrete() {
 
   // Do something with the function which may depend on workspace.
   m_domainCreator->initFunction(m_function);
-  
-  // Calculate function values.
-  m_function->function(*domain, *values);
 
   // Get the number of free fitting parameters
   size_t nParams = 0;
@@ -72,21 +110,16 @@ void CalculateChiSquared::execConcrete() {
     if (!m_function->isFixed(i))
       nParams += 1;
   }
-  double dof = - static_cast<double>(nParams);
+
+  // Calculate function values.
+  m_function->function(*domain, *values);
 
   // Calculate the chi squared.
   double chiSquared = 0.0;
   double chiSquaredWeighted = 0.0;
-  for(size_t i = 0; i < values->size(); ++i) {
-    auto weight = values->getFitWeight(i);
-    if (weight > 0.0) {
-      double tmp = values->getFitData(i) - values->getCalculated(i);
-      chiSquared += tmp * tmp;
-      tmp *= weight;
-      chiSquaredWeighted += tmp * tmp;
-      dof += 1.0;
-    }
-  }
+  double dof = 0.0;
+  calcChiSquared(*m_function, nParams, *domain, *values, chiSquared,
+                 chiSquaredWeighted, dof);
   g_log.notice() << "Chi squared " << chiSquared << std::endl;
   g_log.notice() << "Chi squared weighted " << chiSquaredWeighted << std::endl;
 
@@ -95,7 +128,6 @@ void CalculateChiSquared::execConcrete() {
   setProperty("chiSquaredWeighted", chiSquaredWeighted);
 
   // Divide by the DOF
-  g_log.debug() << "DOF " << dof << std::endl;
   if (dof <= 0.0) {
     dof = 1.0;
     g_log.warning() << "DOF has a non-positive value, changing to 1.0."
@@ -104,11 +136,515 @@ void CalculateChiSquared::execConcrete() {
   chiSquared /= dof;
   chiSquaredWeighted /= dof;
   g_log.notice() << "Chi squared / DOF " << chiSquared << std::endl;
-  g_log.notice() << "Chi squared weighed / DOF " << chiSquaredWeighted << std::endl;
+  g_log.notice() << "Chi squared weighed / DOF " << chiSquaredWeighted
+                 << std::endl;
+  g_log.notice() << "DOF " << dof << std::endl;
 
   // Store the result.
   setProperty("ChiSquaredDividedByDOF", chiSquared);
   setProperty("ChiSquaredWeightedDividedByDOF", chiSquaredWeighted);
+
+  std::string baseName = getProperty("Output");
+  if (!baseName.empty()) {
+    estimateErrors();
+  }
+}
+
+//----------------------------------------------------------------------------------------------
+namespace {
+
+/// Calculate the negative logarithm of the probability density function (PDF):
+/// if a = getDiff(...) then exp(-a) is a value of the PDF.
+/// @param domain :: Function's domain.
+/// @param nParams :: Number of free fitting parameters.
+/// @param values :: Functin's values.
+/// @param chi0 :: Chi squared at the minimum.
+/// @param sigma2 :: Estimated variance of the fitted data.
+double getDiff(const API::IFunction &fun, size_t nParams,
+               const API::FunctionDomain &domain, API::FunctionValues &values,
+               double chi0, double sigma2) {
+  double chiSquared = 0.0;
+  double chiSquaredWeighted = 0.0;
+  double dof = 0;
+  calcChiSquared(fun, nParams, domain, values, chiSquared, chiSquaredWeighted,
+                 dof);
+  double res = 0.0;
+  if (sigma2 > 0) {
+    res = (chiSquared - chi0) / 2 / sigma2;
+  } else {
+    res = (chiSquaredWeighted - chi0) / 2;
+  }
+  return res;
+}
+
+/// Helper class to calculate the chi squared along a direction in the parameter
+/// space.
+class ChiSlice {
+public:
+  /// Constructor.
+  /// @param f :: The fitting function
+  /// @param dir :: A normalised direction vector in the parameter space.
+  /// @param domain :: Function's domain.
+  /// @param values :: Functin's values.
+  /// @param chi0 :: Chi squared at the minimum.
+  /// @param sigma2 :: Estimated variance of the fitted data.
+  ChiSlice(IFunction &f, const GSLVector &dir,
+           const API::FunctionDomain &domain, API::FunctionValues &values,
+           double chi0, double sigma2)
+      : m_function(f), m_direction(dir), m_domain(domain), m_values(values),
+        m_chi0(chi0), m_sigma2(sigma2) {}
+  /// Calculate the value of chi squared along the chosen direction at a
+  /// distance from
+  /// the minimum point.
+  /// @param p :: A distance from the minimum.
+  double operator()(double p) {
+    std::vector<double> par0(m_function.nParams());
+    for (size_t ip = 0; ip < m_function.nParams(); ++ip) {
+      par0[ip] = m_function.getParameter(ip);
+      m_function.setParameter(ip, par0[ip] + p * m_direction[ip]);
+    }
+    double res = getDiff(m_function, m_function.nParams(), m_domain, m_values,
+                         m_chi0, m_sigma2);
+    for (size_t ip = 0; ip < m_function.nParams(); ++ip) {
+      m_function.setParameter(ip, par0[ip]);
+    }
+    return res;
+  }
+
+  /// Make an approximation for this slice on an interval.
+  /// @param lBound :: The left bound of the approximation interval.
+  /// @param rBound :: The right bound of the approximation interval.
+  /// @param P :: Output vector with approximation parameters.
+  /// @param A :: Output vector with approximation parameters.
+  ChebfunBase_sptr makeApprox(double lBound, double rBound,
+                              std::vector<double> &P, std::vector<double> &A, bool &ok) {
+
+    auto base = ChebfunBase::bestFitAnyTolerance(lBound, rBound, *this, P, A,
+                                                 1.0, 1e-4, 129);
+    ok = bool(base);
+    if (!base) {
+      base = boost::make_shared<ChebfunBase>(10, lBound, rBound, 1e-4);
+      P = base->fit(*this);
+      A = base->calcA(P);
+    }
+    return base;
+  }
+
+  /// Fiind a displacement in the parameter space from the initial point
+  /// to a point where the PDF drops significantly.
+  /// @param shift :: Initial shift form par0 value.
+  double findBound(double shift) {
+    double bound0 = 0;
+    double diff0 = (*this)(0);
+    double bound = shift;
+    bool canDecrease = true;
+    for (size_t i = 0; i < 100; ++i) {
+      double diff = (*this)(bound);
+
+      bool isIncreasing = fabs(bound) > fabs(bound0) && diff > diff0;
+      if (canDecrease) {
+        if (isIncreasing)
+          canDecrease = false;
+      } else {
+        if (!isIncreasing) {
+          bound = bound0;
+          break;
+        }
+      }
+
+      bound0 = bound;
+      diff0 = diff;
+
+      if (diff > 3.0) {
+        if (diff < 4.0) {
+          break;
+        }
+        // diff is too large
+        bound *= 0.75;
+      } else {
+        // diff is too small
+        bound *= 2;
+      }
+    }
+    return bound;
+  }
+
+private:
+  /// The fitting function
+  IFunction &m_function;
+  /// The direction in the parameter space
+  GSLVector m_direction;
+  /// The domain
+  const API::FunctionDomain &m_domain;
+  /// The values
+  API::FunctionValues &m_values;
+  /// The chi squared at the minimum
+  double m_chi0;
+  /// The data variance.
+  double m_sigma2;
+};
+}
+
+//----------------------------------------------------------------------------------------------
+/// Examine the chi squared as a function of fitting parameters and estimate
+/// errors for each parameter.
+void CalculateChiSquared::estimateErrors() {
+  // Number of fiting parameters
+  auto nParams = m_function->nParams();
+  // Create an output table for displaying slices of the chi squared and
+  // the probabilitydensity function
+  auto pdfTable = API::WorkspaceFactory::Instance().createTable();
+
+  std::string baseName = getProperty("Output");
+  if (baseName.empty()) {
+    baseName = "CalculateChiSquared";
+  }
+  declareProperty(new API::WorkspaceProperty<API::ITableWorkspace>(
+                      "PDFs", "", Kernel::Direction::Output),
+                  "The name of the TableWorkspace in which to store the "
+                  "pdfs of fit parameters");
+  setPropertyValue("PDFs", baseName + "_pdf");
+  setProperty("PDFs", pdfTable);
+
+  // Create an output table for displaying the parameter errors.
+  auto errorsTable = API::WorkspaceFactory::Instance().createTable();
+  auto nameColumn = errorsTable->addColumn("str", "Parameter");
+  auto valueColumn = errorsTable->addColumn("double", "Value");
+  auto minValueColumn = errorsTable->addColumn("double", "Value at Min");
+  auto leftErrColumn = errorsTable->addColumn("double", "Left Error");
+  auto rightErrColumn = errorsTable->addColumn("double", "Right Error");
+  auto quadraticErrColumn = errorsTable->addColumn("double", "Quadratic Error");
+  auto chiMinColumn = errorsTable->addColumn("double", "Chi2 Min");
+  errorsTable->setRowCount(nParams);
+  declareProperty(new API::WorkspaceProperty<API::ITableWorkspace>(
+                      "Errors", "", Kernel::Direction::Output),
+                  "The name of the TableWorkspace in which to store the "
+                  "values and errors of fit parameters");
+  setPropertyValue("Errors", baseName + "_errors");
+  setProperty("Errors", errorsTable);
+
+  // Calculate initial values
+  double chiSquared = 0.0;
+  double chiSquaredWeighted = 0.0;
+  double dof = 0;
+  API::FunctionDomain_sptr domain;
+  API::FunctionValues_sptr values;
+  m_domainCreator->createDomain(domain, values);
+  calcChiSquared(*m_function, nParams, *domain, *values, chiSquared,
+                 chiSquaredWeighted, dof);
+  // Value of chi squared for current parameters in m_function
+  double chi0 = chiSquared;
+  // Fit data variance
+  double sigma2 = chiSquared / dof;
+  bool useWeighted = getProperty("Weighted");
+
+  if (useWeighted) {
+    chi0 = chiSquaredWeighted;
+    sigma2 = 0.0;
+  }
+
+  if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+    g_log.debug() << "chi0=" << chi0 << std::endl;
+    g_log.debug() << "sigma2=" << sigma2 << std::endl;
+    g_log.debug() << "dof=" << dof << std::endl;
+  }
+
+  // Parameter bounds that define a volume in the parameter
+  // space within which the chi squared is being examined.
+  GSLVector lBounds(nParams);
+  GSLVector rBounds(nParams);
+
+  // Number of points in lines for plotting
+  size_t n = 100;
+  pdfTable->setRowCount(n);
+  const double fac = 1e-4;
+
+  // Loop over each parameter
+  for (size_t ip = 0; ip < nParams; ++ip) {
+
+    // Add columns for the parameter to the pdf table.
+    auto parName = m_function->parameterName(ip);
+    nameColumn->read(ip, parName);
+    // Parameter values
+    auto col1 = pdfTable->addColumn("double", parName);
+    col1->setPlotType(1);
+    // Chi squared values
+    auto col2 = pdfTable->addColumn("double", parName + "_chi2");
+    col2->setPlotType(2);
+    // PDF values
+    auto col3 = pdfTable->addColumn("double", parName + "_pdf");
+    col3->setPlotType(2);
+
+    double par0 = m_function->getParameter(ip);
+    double shift = fabs(par0 * fac);
+    if (shift == 0.0) {
+      shift = fac;
+    }
+
+    // Make a slice along this parameter
+    GSLVector dir(nParams);
+    dir.zero();
+    dir[ip] = 1.0;
+    ChiSlice slice(*m_function, dir, *domain, *values, chi0, sigma2);
+
+    // Find the bounds withn which the PDF is significantly above zero.
+    // The bounds are defined relative to par0:
+    //   par0 + lBound is the lowest value of the parameter (lBound <= 0)
+    //   par0 + rBound is the highest value of the parameter (rBound >= 0)
+    double lBound = slice.findBound(-shift);
+    double rBound = slice.findBound(shift);
+    lBounds[ip] = lBound;
+    rBounds[ip] = rBound;
+
+    // Approximate the slice with a polynomial.
+    // P is a vector of values of the polynomial at special points.
+    // A is a vector of Chebyshev expansion coefficients.
+    // The polynomial is defined on interval [lBound, rBound]
+    // The value of the polynomial at 0 == chi squared at par0
+    std::vector<double> P, A;
+    bool ok = true;
+    auto base = slice.makeApprox(lBound, rBound, P, A, ok);
+    if (!ok) {
+      g_log.warning() << "Approximation failed for parameter " << ip << std::endl;
+    }
+    if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+      g_log.debug() << "Parameter " << ip << std::endl;
+      g_log.debug() << "Slice approximated by polynomial of order "
+                    << base->size() - 1;
+      g_log.debug() << " between " << lBound << " and " << rBound << std::endl;
+    }
+
+    // Write n slice points into the output table.
+    double dp = (rBound - lBound) / static_cast<double>(n);
+    for (size_t i = 0; i < n; ++i) {
+      double par = lBound + dp * static_cast<double>(i);
+      double chi = base->eval(par, P);
+      col1->fromDouble(i, par0 + par);
+      col2->fromDouble(i, chi);
+    }
+
+    // Check if par0 is a minimum point of the chi squared
+    std::vector<double> AD;
+    // Calculate the derivative polynomial.
+    // AD are the Chebyshev expansion of the derivative.
+    base->derivative(A, AD);
+    // Find the roots of the derivative polynomial
+    std::vector<double> minima = base->roots(AD);
+    if (minima.empty()) {
+      minima.push_back(par0);
+    }
+
+    if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+      g_log.debug() << "Minima: ";
+    }
+
+    // If only 1 extremum is found assume (without checking) that it's a
+    // minimum.
+    // If there are more than 1, find the one with the smallest chi^2.
+    double chiMin = std::numeric_limits<double>::max();
+    double parMin = par0;
+    for (size_t i = 0; i < minima.size(); ++i) {
+      double value = base->eval(minima[i], P);
+      if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+        g_log.debug() << minima[i] << " (" << value << ") ";
+      }
+      if (value < chiMin) {
+        chiMin = value;
+        parMin = minima[i];
+      }
+    }
+    if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+      g_log.debug() << std::endl;
+      g_log.debug() << "Smallest minimum at " << parMin << " is " << chiMin
+                    << std::endl;
+    }
+
+    // Points of intersections with line chi^2 = 1/2 give an estimate of
+    // the standard deviation of this parameter if it's uncorrelated with the
+    // others.
+    A[0] -= 0.5; // Now A are the coefficients of the original polynomial
+                 // shifted down by 1/2.
+    std::vector<double> roots = base->roots(A);
+    std::sort(roots.begin(), roots.end());
+
+    if (roots.empty()) {
+      // Something went wrong; use the whole interval.
+      roots.resize(2);
+      roots[0] = lBound;
+      roots[1] = rBound;
+    } else if (roots.size() == 1) {
+      // Only one root found; use a bound for the other root.
+      if (roots.front() < 0) {
+        roots.push_back(rBound);
+      } else {
+        roots.insert(roots.begin(), lBound);
+      }
+    } else if (roots.size() > 2) {
+      // More than 2 roots; use the smallest and the biggest
+      auto smallest = roots.front();
+      auto biggest = roots.back();
+      roots.resize(2);
+      roots[0] = smallest;
+      roots[1] = biggest;
+    }
+
+    if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+      g_log.debug() << "Roots: ";
+      for (size_t i = 0; i < roots.size(); ++i) {
+        g_log.debug() << roots[i] << ' ';
+      }
+      g_log.debug() << std::endl;
+    }
+
+    // Output parameter info to the table.
+    valueColumn->fromDouble(ip, par0);
+    minValueColumn->fromDouble(ip, par0 + parMin);
+    leftErrColumn->fromDouble(ip, roots[0] - parMin);
+    rightErrColumn->fromDouble(ip, roots[1] - parMin);
+    chiMinColumn->fromDouble(ip, chiMin);
+
+    // Output the PDF
+    for (size_t i = 0; i < n; ++i) {
+      double chi = col2->toDouble(i);
+      col3->fromDouble(i, exp(-chi + chiMin));
+    }
+
+    // make sure function parameters don't change.
+    m_function->setParameter(ip, par0);
+  }
+
+  // Improve estimates for standard deviations.
+  // If parameters are correlated the found deviations
+  // most likely underestimate the true values.
+  unfixParameters();
+  GSLJacobian J(m_function, values->size());
+  m_function->functionDeriv(*domain, J);
+  refixParameters();
+  // Calculate the hessian at the current point.
+  GSLMatrix H;
+  if (useWeighted) {
+    H.resize(nParams, nParams);
+    for (size_t i = 0; i < nParams; ++i) {
+      for (size_t j = i; j < nParams; ++j) {
+        double h = 0.0;
+        for (size_t k = 0; k < values->size(); ++k) {
+          double w = values->getFitWeight(k);
+          h += J.get(k, i) * J.get(k, j) * w * w;
+        }
+        H.set(i, j, h);
+        if (i != j) {
+          H.set(j, i, h);
+        }
+      }
+    }
+  } else {
+    H = Tr(J.matrix()) * J.matrix();
+  }
+  // Square roots of the diagonals of the covariance matrix give
+  // the standard deviations in the quadratic approximation of the chi^2.
+  GSLMatrix V(H);
+  if (!useWeighted) {
+    V *= 1. / sigma2;
+  }
+  V.invert();
+  // In a non-quadratic asymmetric case the following procedure can give a
+  // better result:
+  // Find the direction in which the chi^2 changes slowest and the positive and
+  // negative deviations in that direction. The change in a parameter at those
+  // points can be a better estimate for the standard deviation.
+  GSLVector v(nParams);
+  GSLMatrix Q(nParams, nParams);
+  // One of the eigenvectors of the hessian is the direction of the slowest
+  // change.
+  H.eigenSystem(v, Q);
+
+  // Loop over the eigenvectors
+  for (size_t i = 0; i < nParams; ++i) {
+    auto dir = Q.copyColumn(i);
+    if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+      g_log.debug() << "Direction " << i << std::endl;
+      g_log.debug() << dir << std::endl;
+    }
+    // Make a slice in that direction
+    ChiSlice slice(*m_function, dir, *domain, *values, chi0, sigma2);
+    double rBound0 = dir.dot(rBounds);
+    double lBound0 = dir.dot(lBounds);
+    if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+      g_log.debug() << "lBound " << lBound0 << std::endl;
+      g_log.debug() << "rBound " << rBound0 << std::endl;
+    }
+    double lBound = slice.findBound(lBound0);
+    double rBound = slice.findBound(rBound0);
+    std::vector<double> P, A;
+    // Use a polynomial approximation
+    bool ok = true;
+    auto base = slice.makeApprox(lBound, rBound, P, A, ok);
+    if (!ok) {
+      g_log.warning() << "Approximation failed in direction " << i << std::endl;
+    }
+    // Find the deviation points where the chi^2 = 1/2
+    A[0] -= 0.5;
+    std::vector<double> roots = base->roots(A);
+    std::sort(roots.begin(), roots.end());
+    // Sort out the roots
+    auto nRoots = roots.size();
+    if (nRoots == 0) {
+      roots.resize(2, 0.0);
+    } else if (nRoots == 1) {
+      if (roots.front() > 0.0) {
+        roots.insert(roots.begin(), 0.0);
+      } else {
+        roots.push_back(0.0);
+      }
+    } else if (nRoots > 2) {
+      roots[1] = roots.back();
+      roots.resize(2);
+    }
+    if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+      g_log.debug() << "Roots " << roots[0] << " (" << slice(roots[0]) << ") " << roots[1] << " (" << slice(roots[1]) << ") " << std::endl;
+    }
+    // Loop over the parameters and see if there deviations along
+    // this direction is greater than any previous value.
+    for (size_t ip = 0; ip < nParams; ++ip) {
+      auto lError = roots.front() * dir[ip];
+      auto rError = roots.back() * dir[ip];
+      if (lError > rError) {
+        std::swap(lError, rError);
+      }
+      if (lError < leftErrColumn->toDouble(ip)) {
+        if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+          g_log.debug() << "  left for  " << ip << ' ' << lError << ' ' << leftErrColumn->toDouble(ip) << std::endl;
+        }
+        leftErrColumn->fromDouble(ip, lError);
+      }
+      if (rError > rightErrColumn->toDouble(ip)) {
+        if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+          g_log.debug() << "  right for " << ip << ' ' << rError << ' ' << rightErrColumn->toDouble(ip) << std::endl;
+        }
+        rightErrColumn->fromDouble(ip, rError);
+      }
+    }
+    // Output the quadratic estimate for comparrison.
+    quadraticErrColumn->fromDouble(i, sqrt(V.get(i, i)));
+  }
+}
+
+/// Temporary unfix any fixed parameters.
+void CalculateChiSquared::unfixParameters() {
+  for(size_t i = 0; i < m_function->nParams(); ++i)
+  {
+    if (m_function->isFixed(i)) {
+      m_function->unfix(i);
+      m_fixedParameters.push_back(i);
+    }
+  }
+}
+
+/// Restore the "fixed" status of previously unfixed paramters.
+void CalculateChiSquared::refixParameters() {
+  for(auto i = m_fixedParameters.begin(); i != m_fixedParameters.end(); ++i) {
+    m_function->fix(*i);
+  }
 }
 
 } // namespace CurveFitting
diff --git a/Code/Mantid/Framework/CurveFitting/src/CalculateMSVesuvio.cpp b/Code/Mantid/Framework/CurveFitting/src/CalculateMSVesuvio.cpp
index bf9622098cbaab55af2b27a1720f7ece9e6c6675..1b9aea72dde7c708db9ec294cd7861830a9b50c6 100644
--- a/Code/Mantid/Framework/CurveFitting/src/CalculateMSVesuvio.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/CalculateMSVesuvio.cpp
@@ -10,6 +10,7 @@
 #include "MantidAPI/SampleShapeValidator.h"
 #include "MantidAPI/WorkspaceValidators.h"
 
+#include "MantidGeometry/Instrument/DetectorGroup.h"
 #include "MantidGeometry/Instrument/ParameterMap.h"
 #include "MantidGeometry/Objects/Track.h"
 
@@ -31,7 +32,8 @@ using Geometry::ParameterMap;
 using Geometry::Track;
 
 namespace {
-const size_t MAX_SCATTER_PT_TRIES = 25;
+/// Number of times to try generating a scatter point before giving up
+const size_t MAX_SCATTER_PT_TRIES = 500;
 /// Conversion constant
 const double MASS_TO_MEV =
     0.5 * PhysicalConstants::NeutronMass / PhysicalConstants::meV;
@@ -119,7 +121,8 @@ void CalculateMSVesuvio::init() {
       "Workspace to store the calculated total scattering counts");
   declareProperty(
       new WorkspaceProperty<>("MultipleScatteringWS", "", Direction::Output),
-      "Workspace to store the calculated total scattering counts");
+      "Workspace to store the calculated multiple scattering counts summed for "
+      "all orders");
 }
 
 /**
@@ -266,7 +269,17 @@ void CalculateMSVesuvio::cacheInputs() {
   if (!detPixel) {
     throw std::runtime_error("Failed to get detector");
   }
-  Geometry::Object_const_sptr pixelShape = detPixel->shape();
+  Geometry::Object_const_sptr pixelShape;
+  Geometry::DetectorGroup_const_sptr detPixelGroup =
+      boost::dynamic_pointer_cast<const Geometry::DetectorGroup>(detPixel);
+  if (detPixelGroup) {
+    // If is a detector group then take shape of first pixel
+    // All detectors in same bansk should be same shape anyway
+    if (detPixelGroup->nDets() > 0)
+      pixelShape = detPixelGroup->getDetectors()[0]->shape();
+  } else {
+    pixelShape = detPixel->shape();
+  }
   if (!pixelShape || !pixelShape->hasValidShape()) {
     throw std::invalid_argument("Detector pixel has no defined shape!");
   }
@@ -292,8 +305,7 @@ void CalculateMSVesuvio::cacheInputs() {
 
 /**
  * Calculate the total scattering and contributions from higher-order scattering
- * for given
- * spectrum
+ * for given spectrum
  * @param wsIndex The index on the input workspace for the chosen spectrum
  * @param totalsc A non-const reference to the spectrum that will contain the
  * total scattering calculation
@@ -340,10 +352,9 @@ void CalculateMSVesuvio::calculateMS(const size_t wsIndex,
  * @param simulCounts Simulation object used to storing the calculated number of
  * counts
  */
-void
-CalculateMSVesuvio::simulate(const DetectorParams &detpar,
-                             const ResolutionParams &respar,
-                             MSVesuvioHelper::Simulation &simulCounts) const {
+void CalculateMSVesuvio::simulate(
+    const DetectorParams &detpar, const ResolutionParams &respar,
+    MSVesuvioHelper::Simulation &simulCounts) const {
   for (size_t i = 0; i < m_nevents; ++i) {
     calculateCounts(detpar, respar, simulCounts);
   }
@@ -453,8 +464,9 @@ double CalculateMSVesuvio::calculateCounts(
       }
     } while (ntries < MAX_SCATTER_PT_TRIES);
     if (ntries == MAX_SCATTER_PT_TRIES) {
-      throw std::runtime_error(
-          "Unable to generate scatter point in sample. Check sample shape.");
+      throw std::runtime_error("Cannot generate valid trajectory from within "
+                               "the sample that intersects the sample. Does it "
+                               "have a valid shape?");
     }
 
     const double scang = newDir.angle(oldDir);
@@ -591,19 +603,20 @@ double CalculateMSVesuvio::generateTOF(const double en0, const double dtof,
  * amount the beam would be attenuted by the sample
  * @param startPos Starting position
  * @param direc Direction of travel for the neutron
- * @param weight [InOut] Multiply the incoming weight by the attenuation factor
+ * @param weight [InOut] Multiply the incoming weight by the attenuation
+ * factor
  * @param scatterPt [Out] Generated scattering point
  * @return True if the scatter event was generated, false otherwise
  */
 bool CalculateMSVesuvio::generateScatter(const Kernel::V3D &startPos,
                                          const Kernel::V3D &direc,
                                          double &weight, V3D &scatterPt) const {
-  Track particleTrack(startPos, direc);
-  if (m_sampleShape->interceptSurface(particleTrack) != 1) {
+  Track scatterTrack(startPos, direc);
+  if (m_sampleShape->interceptSurface(scatterTrack) != 1) {
     return false;
   }
   // Find distance inside object and compute probability of scattering
-  const auto &link = particleTrack.begin();
+  const auto &link = scatterTrack.begin();
   double totalObjectDist = link->distInsideObject;
   const double scatterProb = 1.0 - exp(-m_sampleProps->mu * totalObjectDist);
   // Select a random point on the track that is the actual scatter point
@@ -701,7 +714,8 @@ double CalculateMSVesuvio::partialDiffXSec(const double en0, const double en1,
  * Generate a random position within the final detector in the lab frame
  * @param nominalPos The poisiton of the centre point of the detector
  * @param energy The final energy of the neutron
- * @param scatterPt The position of the scatter event that lead to this detector
+ * @param scatterPt The position of the scatter event that lead to this
+ * detector
  * @param direcBeforeSc Directional vector that lead to scatter point that hit
  * this detector
  * @param scang [Output] The value of the scattering angle for the generated
@@ -713,12 +727,10 @@ double CalculateMSVesuvio::partialDiffXSec(const double en0, const double en1,
 V3D CalculateMSVesuvio::generateDetectorPos(
     const V3D &nominalPos, const double energy, const V3D &scatterPt,
     const V3D &direcBeforeSc, double &scang, double &distToExit) const {
-  const double mu =
-      7430.0 /
-      sqrt(energy); // Inverse attenuation length (m-1) for vesuvio det.
-  const double ps =
-      1.0 -
-      exp(-mu * m_detThick); // Probability of detection in path thickness.
+  // Inverse attenuation length (m-1) for vesuvio det.
+  const double mu = 7430.0 / sqrt(energy);
+  // Probability of detection in path thickness.
+  const double ps = 1.0 - exp(-mu * m_detThick);
   V3D detPos;
   scang = 0.0;
   distToExit = 0.0;
@@ -750,8 +762,10 @@ V3D CalculateMSVesuvio::generateDetectorPos(
     ++ntries;
   } while (ntries < MAX_SCATTER_PT_TRIES);
   if (ntries == MAX_SCATTER_PT_TRIES) {
-    throw std::runtime_error("Unable to create track from sample to detector. "
-                             "Detector shape may be too small.");
+    // Assume it is very close to the surface so that the distance travelled
+    // would
+    // be a neglible contribution
+    distToExit = 0.0;
   }
   return detPos;
 }
diff --git a/Code/Mantid/Framework/CurveFitting/src/ChebfunBase.cpp b/Code/Mantid/Framework/CurveFitting/src/ChebfunBase.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6fc2e7f10d795438d22e854f568093fe5947f3df
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/src/ChebfunBase.cpp
@@ -0,0 +1,757 @@
+#include "MantidCurveFitting/ChebfunBase.h"
+#include "MantidAPI/IFunction1D.h"
+#include "MantidAPI/FunctionDomain1D.h"
+#include "MantidAPI/FunctionValues.h"
+#include "MantidCurveFitting/HalfComplex.h"
+
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_fft_real.h>
+#include <gsl/gsl_fft_halfcomplex.h>
+#include <gsl/gsl_eigen.h>
+
+#include <cmath>
+#include <algorithm>
+#include <numeric>
+#include <limits>
+#include <functional>
+#include <assert.h>
+#include <sstream>
+
+namespace Mantid {
+namespace CurveFitting {
+
+// Set the comparison tolerance.
+const double ChebfunBase::g_tolerance = 1e-15;
+// Set the maximum number of points.
+const size_t ChebfunBase::g_maxNumberPoints = 1026;
+
+/**
+ * Constructor.
+ * @param n :: Polynomial order == number of points - 1.
+ * @param start :: The start (lower bound) of an interval on the x-axis.
+ * @param end :: The end (upper bound) of an interval on the x-axis.
+ * @param tolerance :: Tolerance in comparing the expansion coefficients.
+ *   Setting this tolerance is a way to specify the accuracy of the
+ * approximation.
+ */
+ChebfunBase::ChebfunBase(size_t n, double start, double end, double tolerance)
+    : m_tolerance(std::max(tolerance, g_tolerance)), m_n(n), m_start(start),
+      m_end(end) {
+  if (n == 0) {
+    throw std::invalid_argument("Chebfun order must be greater than 0.");
+  }
+
+  m_x.resize(n + 1);
+  m_bw.resize(n + 1, 1.0);
+  for (size_t i = 1; i <= n; i += 2) {
+    m_bw[i - 1] = 1.0;
+    m_bw[i] = -1.0;
+  }
+  m_bw.front() /= 2.0;
+  m_bw.back() /= 2.0;
+  calcX();
+}
+
+/**
+ * Copy constructor
+ * @param other :: A base to copy from.
+ */
+ChebfunBase::ChebfunBase(const ChebfunBase &other)
+    : m_tolerance(other.m_tolerance), m_n(other.m_n), m_start(other.m_start),
+      m_end(other.m_end), m_x(other.m_x), m_bw(other.m_bw),
+      m_integrationWeights(other.m_integrationWeights) {}
+
+/**
+ * Return the integration weights that can be used in function manipulations
+ * involving integration.
+ */
+const std::vector<double> &ChebfunBase::integrationWeights() const {
+  if (m_integrationWeights.size() != m_x.size()) {
+    calcIntegrationWeights();
+  }
+  return m_integrationWeights;
+}
+
+/**
+ * Calculate an integral of a function given its values at the base x-points.
+ * @param p :: Function values at the x-points.
+ * @return :: The integral.
+ */
+double ChebfunBase::integrate(const std::vector<double> &p) const {
+  if (p.size() != m_x.size()) {
+    throw std::invalid_argument(
+        "Function values have a wrong size in integration.");
+  }
+  if (m_integrationWeights.empty()) {
+    calcIntegrationWeights();
+  }
+  std::vector<double> tmp(p.size());
+  std::transform(p.begin(), p.end(), m_integrationWeights.begin(), tmp.begin(),
+                 std::multiplies<double>());
+  // NB. for some reason the commented out expression gives more accurate result
+  // (when weights
+  // are not multiplied by the same factor) than the uncommented one. But moving
+  // the factor to the
+  // weights makes formulas involving weights simpler
+  // return std::accumulate(tmp.begin(),tmp.end(),0.0) * (m_end - m_start) / 2;
+  return std::accumulate(tmp.begin(), tmp.end(), 0.0);
+}
+
+/**
+ * Calculate the x-values based on the (start,end) interval.
+ */
+void ChebfunBase::calcX() {
+  if (m_n == 0) {
+    throw std::logic_error(
+        "Cannot calculate x points of ChebfunBase: base is empty.");
+  }
+  if (m_x.size() != m_n + 1) {
+    throw std::logic_error("X array has a wrong size.");
+  }
+  const double x0 = (m_start + m_end) / 2;
+  const double b = (m_end - m_start) / 2;
+  const double pin = M_PI / double(m_n);
+  for (size_t i = 0; i <= m_n; ++i) {
+    size_t j = m_n - i;
+    m_x[i] = x0 + b * cos(double(j) * pin);
+  }
+}
+
+/**
+ * Calculate the integration weights.
+ */
+void ChebfunBase::calcIntegrationWeights() const {
+  size_t n = m_n + 1;
+  m_integrationWeights.resize(n);
+  // build an intermediate vector (these are different kind of weights)
+  std::vector<double> w(n);
+  for (size_t i = 0; i < n; ++i) {
+    if (i % 2 == 0) {
+      w[i] = 2.0 / (1.0 - static_cast<double>(i * i));
+    }
+  }
+  w[0] /= 2;
+  w[m_n] /= 2;
+  const double factor = (m_end - m_start) / 2;
+  // calculate the weights
+  for (size_t i = 0; i < n; ++i) {
+    double b = 0.0;
+    for (size_t j = 0; j < n; ++j) {
+      b += w[j] * cos(M_PI * double(i * j) / double(m_n));
+    }
+    b /= double(m_n);
+    if (i > 0 && i != m_n) {
+      b *= 2;
+    }
+    m_integrationWeights[i] = b * factor;
+  }
+}
+
+/**
+ * Test if an array of Chebyshev expansion coefficients converged to the
+ * specified tolerance.
+ * @param a :: A vector of coefficients.
+ * @param maxA :: A maximum value of the coefficients to compare against.
+ * @param tolerance :: Convergence tolerance.
+ * @param shift :: Displacement from the back of the coeffs vector (a)
+ *    from which the coefficients are considered for testing.
+ * @return :: True if converged or false otherwise.
+ */
+bool ChebfunBase::hasConverged(const std::vector<double> &a, double maxA,
+                               double tolerance, size_t shift) {
+  if (a.empty())
+    return true;
+  if (maxA == 0.0) {
+    for (auto it = a.begin(); it != a.end(); ++it) {
+      double tmp = fabs(*it);
+      if (tmp > maxA) {
+        maxA = tmp;
+      }
+    }
+  }
+  if (maxA < tolerance || a.size() < 3) {
+    return true;
+  }
+
+  if (shift > a.size() - 2)
+    return true;
+  for (auto i = a.rbegin() + shift; i != a.rend() - 1; ++i) {
+    if (*i == 0.0)
+      continue;
+    if ((fabs(*i) + fabs(*(i + 1))) / maxA / 2 < tolerance)
+      return true;
+    else
+      return false;
+  }
+  return false;
+}
+
+/**
+ * Evaluate a function
+ * @param x :: Point of evaluation.
+ * @param p :: The function y-points
+ * @return Value of the function.
+ */
+double ChebfunBase::eval(double x, const std::vector<double> &p) const {
+  if (p.size() != m_x.size()) {
+    throw std::invalid_argument("Wrong array size in ChebdunBase::eval.");
+  }
+  if (x < m_start || x > m_end)
+    return 0.0;
+  auto ix = std::find(m_x.begin(), m_x.end(), x);
+  if (ix != m_x.end()) {
+    auto i = std::distance(m_x.begin(), ix);
+    return p[i];
+  }
+  double weight = 0.0;
+  double res = 0.0;
+  auto xend = m_x.end();
+  auto ip = p.begin();
+  auto iw = m_bw.begin();
+  for (ix = m_x.begin(); ix != xend; ++ix, ++ip, ++iw) {
+    double w = *iw / (x - *ix);
+    weight += w;
+    res += w * (*ip);
+  }
+  return res / weight;
+}
+
+/**
+ * Evaluate function on a vector of x-values.
+ * @param x :: A vector of x-values.
+ * @param p :: The y-points of a function.
+ * @param res :: Output result. res.size() == x.size()
+ */
+void ChebfunBase::evalVector(const std::vector<double> &x,
+                             const std::vector<double> &p,
+                             std::vector<double> &res) const {
+  if (x.empty()) {
+    throw std::invalid_argument("Vector of x-values cannot be empty.");
+  }
+
+  res.resize(x.size(), 0.0);
+  auto ix = std::lower_bound(m_x.begin(), m_x.end(), x.front());
+  if (ix == m_x.end()) {
+    return;
+  }
+
+  auto mXBegin = m_x.begin();
+  auto mXEnd = m_x.end();
+  auto pBegin = p.begin();
+  auto bwBegin = m_bw.begin();
+
+  size_t i = 0;
+  for (; i < x.size(); ++i) {
+    if (x[i] >= m_start)
+      break;
+  }
+
+  for (; i < x.size(); ++i) {
+    double xi = x[i];
+    while (ix != mXEnd && xi > *ix)
+      ++ix;
+    if (ix == mXEnd)
+      break;
+
+    if (xi == *ix) {
+      auto j = std::distance(m_x.begin(), ix);
+      res[i] = p[j];
+    } else {
+      double weight = 0.0;
+      double value = 0.0;
+      auto kp = pBegin;
+      auto kw = bwBegin;
+      for (auto kx = mXBegin; kx != mXEnd; ++kx, ++kp, ++kw) {
+        double w = *kw / (xi - *kx);
+        weight += w;
+        value += w * (*kp);
+      }
+      res[i] = value / weight;
+    }
+  }
+}
+
+/**
+ * Evaluate function on a vector of x-values.
+ * @param x :: A vector of x-values.
+ * @param p :: The y-points of a function.
+ * @return :: Output result. res.size() == x.size()
+ */
+std::vector<double>
+ChebfunBase::evalVector(const std::vector<double> &x,
+                        const std::vector<double> &p) const {
+  std::vector<double> res;
+  evalVector(x, p, res);
+  return res;
+}
+
+/**
+ * Calculate the first derivative of a function.
+ * @param a :: Chebyshev coefficients of the diffientiated function.
+ * @param aout :: Output coeffs of the derivative.
+ */
+void ChebfunBase::derivative(const std::vector<double> &a,
+                             std::vector<double> &aout) const {
+  using namespace std::placeholders;
+  if (a.size() != m_x.size()) {
+    throw std::invalid_argument(
+        "Cannot calculate derivative: coeffs vector has wrong size.");
+  }
+  if (m_n == 0) {
+    aout.resize(2, 0.0);
+    aout[0] = 2.0 * a[1];
+    return;
+  }
+  aout.resize(m_n + 1);
+  aout.back() = 0.0;
+  aout[m_n - 1] = 2.0 * double(m_n) * a.back();
+  for (size_t k = m_n - 1; k > 1; --k) {
+    aout[k - 1] = aout[k + 1] + 2.0 * double(k) * a[k];
+  }
+  if (m_n > 2) {
+    aout.front() = aout[2] / 2 + a[1];
+  }
+  else
+  {
+    aout.front() = a[1];
+  }
+  double d = (m_end - m_start) / 2;
+  std::transform(aout.begin(), aout.end(), aout.begin(),
+                 std::bind2nd(std::divides<double>(), d));
+}
+
+/**
+ * Calculate the first integral of a function.
+ * @param a :: Chebyshev coefficients of the integrated function.
+ * @param aout :: Output coeffs of the integral.
+ * @return :: A base for the integral.
+ */
+ChebfunBase_sptr ChebfunBase::integral(const std::vector<double> &a,
+                                       std::vector<double> &aout) const {
+  using namespace std::placeholders;
+  if (a.size() != m_x.size()) {
+    throw std::invalid_argument(
+        "Cannot calculate integral: coeffs vector has wrong size.");
+  }
+  aout.resize(m_n + 2);
+  aout.front() = 0.0;
+  for (size_t k = 1; k < m_n; ++k) {
+    aout[k] = (a[k - 1] - a[k + 1]) / double(2 * k);
+  }
+  aout[m_n] = a[m_n - 1] / double(2 * m_n);
+  aout[m_n + 1] = a[m_n] / double(2 * (m_n + 1));
+  double d = (m_end - m_start) / 2;
+  std::transform(aout.begin(), aout.end(), aout.begin(),
+                 std::bind(std::multiplies<double>(), _1, d));
+  return ChebfunBase_sptr(new ChebfunBase(m_n + 1, m_start, m_end));
+}
+
+/**
+ * Fit a function until full convergence. Increases size of the base until full
+ * conversion or a size limit is reached. If size limit is reached returns an
+ * empty pointer. In this case the calling method can divide the interval and
+ * fit each part separately.
+ * @param start :: Lower limit of the x-interval.
+ * @param end :: Upper limit of the x-interval.
+ * @param f :: Function to fit.
+ * @param p :: Function values at the found x-points.
+ * @param a :: Chebyshev expansion coefficients.
+ * @param maxA :: A maximum value of the coefficients to compare against.
+ * @param tolerance :: A tolerance for comparing values. Defines the accuracy of
+ *  the approximation.
+ * @param maxSize :: A maximum size of the expansion. If a large base is required
+ *  to reach the desired accuracy returns an empty pointer.
+ * @return :: A ChebfunBase of the best fit if succeeded or empty pointer if
+ * failed.
+ */
+template <class FunctionType>
+ChebfunBase_sptr
+ChebfunBase::bestFitTempl(double start, double end, FunctionType f,
+                          std::vector<double> &p, std::vector<double> &a,
+                          double maxA, double tolerance, size_t maxSize) {
+
+  std::vector<double> p1, p2;
+  const size_t n0 = 8;
+  bool calcMaxA = maxA == 0.0;
+  if (tolerance == 0.0)
+    tolerance = g_tolerance;
+  // number of non-zero a-coefficients for checking if the function is a
+  // polynomial
+  size_t countNonZero = n0 / 2;
+  if (maxSize == 0)
+    maxSize = g_maxNumberPoints;
+  for (size_t n = n0; n < maxSize; n *= 2) {
+    // value of n must be even! or everything breaks!
+    ChebfunBase base(n, start, end);
+    if (p2.empty()) {
+      p2 = base.fit(f);
+    } else {
+      p2 = base.fitOdd(f, p1);
+    }
+    a = base.calcA(p2);
+    if (calcMaxA) {
+      maxA = 0.0;
+      for (auto it = a.begin(); it != a.end(); ++it) {
+        double tmp = fabs(*it);
+        if (tmp > maxA) {
+          maxA = tmp;
+        }
+      }
+    }
+    if (ChebfunBase::hasConverged(a, maxA, tolerance)) {
+      // cut off the trailing a-values that are below the tolerance
+
+      size_t m = n + 1;
+      size_t dm = 0;
+      while (dm < m - 2 && ChebfunBase::hasConverged(a, maxA, tolerance, dm)) {
+        ++dm;
+      }
+      // restore a to the converged state
+      if (dm > 0)
+        --dm;
+      m -= dm;
+
+      // remove possible negligible trailing coefficients left over
+      while (m > 2 && fabs(a[m - 1]) / maxA < tolerance) {
+        --m;
+      }
+
+      if (m != n + 1) {
+        auto newBase = ChebfunBase_sptr(new ChebfunBase(m - 1, start, end));
+        a.resize(m);
+        p = newBase->calcP(a);
+        return newBase;
+      } else {
+        p.assign(p2.begin(), p2.end());
+        return ChebfunBase_sptr(new ChebfunBase(base));
+      }
+    }
+    size_t nNonZero = a.size();
+    for (auto i = a.rbegin(); i != a.rend(); ++i) {
+      if (*i == 0.0) {
+        nNonZero -= 1;
+      } else {
+        break;
+      }
+    }
+    if (nNonZero == countNonZero) {
+      // it is a polynomial
+      if (countNonZero < 2)
+        countNonZero = 2;
+      auto newBase =
+          ChebfunBase_sptr(new ChebfunBase(countNonZero - 1, start, end));
+      a.resize(countNonZero);
+      p = newBase->calcP(a);
+      return newBase;
+    } else {
+      countNonZero = nNonZero;
+    }
+    std::swap(p1, p2);
+  }
+  p.clear();
+  a.clear();
+  a.push_back(maxA);
+  return ChebfunBase_sptr();
+}
+
+/// Template specialization for a generic function type.
+ChebfunBase_sptr ChebfunBase::bestFit(double start, double end,
+                                      ChebfunFunctionType f,
+                                      std::vector<double> &p,
+                                      std::vector<double> &a, double maxA,
+                                      double tolerance, size_t maxSize) {
+  return bestFitTempl(start, end, f, p, a, maxA, tolerance, maxSize);
+}
+
+/// Template specialization for IFunction
+ChebfunBase_sptr ChebfunBase::bestFit(double start, double end,
+                                      const API::IFunction &f,
+                                      std::vector<double> &p,
+                                      std::vector<double> &a, double maxA,
+                                      double tolerance, size_t maxSize) {
+  return bestFitTempl<const API::IFunction &>(start, end, f, p, a, maxA,
+                                              tolerance, maxSize);
+}
+
+/**
+ * Return a vector of linearly spaced values in the domain interval m_start <= x
+ * <= m_end
+ * @param n :: Number of points in the output vector.
+ */
+std::vector<double> ChebfunBase::linspace(size_t n) const {
+  std::vector<double> space(n);
+  double x = m_start;
+  const double dx = width() / double(n - 1);
+  for (auto s = space.begin(); s != space.end(); ++s) {
+    *s = x;
+    x += dx;
+  }
+  space.back() = m_end;
+  return space;
+}
+
+/**
+* Calculate the chebyshev expansion coefficients given function values
+* at the x-points.
+* @param p :: Function values at chebyshev points.
+*/
+std::vector<double> ChebfunBase::calcA(const std::vector<double> &p) const {
+  const size_t nn = m_n + 1;
+
+  if (p.size() != nn) {
+    throw std::invalid_argument(
+        "ChebfunBase: function vector must have same size as the base.");
+  }
+
+  std::vector<double> a(nn);
+
+  //// This is a correct and direct transform from m_p to m_a
+  //// DO NOT DELETE !!!
+  //    for(int i = 0; i < nn; ++i)
+  //    {
+  //      double t = 0.;
+  //      for(int j = 0; j <= m_n; j++)
+  //      {
+  //        double p1 = p[m_n - j];
+  //        if (j== 0 || j == m_n) p1 /= 2;
+  //        t += cos(M_PI*i*(double(j))/m_n)*p1;
+  //      }
+  //      a[i] = 2*t/m_n;
+  //      //if (i == 0) m_a[0] /= 2;
+  //    }
+  //    a[0] /= 2;
+  //    a[m_n] /= 2;
+  //    return a;
+  //// End of the correct and direct transform from m_p to m_a
+
+  if (m_n > 0) {
+    // This is a magic trick which uses real fft to do the above cosine
+    // transform
+    std::vector<double> tmp(m_n * 2);
+    std::reverse_copy(p.begin(), p.end(), tmp.begin());
+    std::copy(p.begin() + 1, p.end() - 1, tmp.begin() + m_n + 1);
+
+    gsl_fft_real_workspace *workspace = gsl_fft_real_workspace_alloc(2 * m_n);
+    gsl_fft_real_wavetable *wavetable = gsl_fft_real_wavetable_alloc(2 * m_n);
+    gsl_fft_real_transform(&tmp[0], 1, 2 * m_n, wavetable, workspace);
+    gsl_fft_real_wavetable_free(wavetable);
+    gsl_fft_real_workspace_free(workspace);
+
+    HalfComplex fc(&tmp[0], tmp.size());
+    for (size_t i = 0; i < nn; ++i) {
+      a[i] = fc.real(i) / double(m_n);
+    }
+    a[0] /= 2;
+    a[m_n] /= 2;
+    // End of the magic trick
+  } else {
+    a[0] = p[0];
+  }
+  return a;
+}
+
+/**
+ * Calculate function values at chebyshev points given chebyshev
+ * expansion coefficiens (inverse of calcA()).
+ * @param a :: Chebyshev expansion coefficients.
+ * @return Function values.
+ */
+std::vector<double> ChebfunBase::calcP(const std::vector<double> &a) const {
+  if (m_n + 1 != a.size()) {
+    std::stringstream mess;
+    mess << "chebfun: cannot calculate P from A - different sizes: " << m_n + 1
+         << " != " << a.size();
+    throw std::invalid_argument(mess.str());
+  }
+  std::vector<double> p(m_n + 1);
+
+  if (m_n > 0) {
+    size_t nn = m_n + 1;
+    std::vector<double> tmp(m_n * 2);
+    HalfComplex fc(&tmp[0], tmp.size());
+    for (size_t i = 0; i < nn; ++i) {
+      double d = a[i] / 2;
+      if (i == 0 || i == nn - 1)
+        d *= 2;
+      fc.set(i, d, 0.0);
+    }
+    gsl_fft_real_workspace *workspace = gsl_fft_real_workspace_alloc(2 * m_n);
+    gsl_fft_halfcomplex_wavetable *wavetable =
+        gsl_fft_halfcomplex_wavetable_alloc(2 * m_n);
+
+    gsl_fft_halfcomplex_transform(tmp.data(), 1, 2 * m_n, wavetable, workspace);
+
+    gsl_fft_halfcomplex_wavetable_free(wavetable);
+    gsl_fft_real_workspace_free(workspace);
+
+    std::reverse_copy(tmp.begin(), tmp.begin() + nn, p.begin());
+  } else {
+    p[0] = a[0];
+  }
+  return p;
+}
+
+/**
+ * Approximate a function using this base.
+ * @param f :: A function pointer.
+ * @return Function values at the base x-points.
+ */
+std::vector<double> ChebfunBase::fit(ChebfunFunctionType f) const {
+  std::vector<double> res(size());
+  std::transform(m_x.begin(), m_x.end(), res.begin(), f);
+  return res;
+}
+
+/**
+ * Approximate a function using this base.
+ * @param f :: A reference to an IFunction
+ * @return Function values at the base x-points.
+ */
+std::vector<double> ChebfunBase::fit(const API::IFunction &f) const {
+  //const API::IFunction1D *fun1d = dynamic_cast<const API::IFunction1D *>(&f);
+  //if (!fun1d) {
+  //  throw std::runtime_error("Function is not 1D.");
+  //}
+  //std::vector<double> res(size());
+  //fun1d->function1D(res.data(), m_x.data(), size());
+  API::FunctionDomain1DView x(m_x.data(), m_x.size());
+  API::FunctionValues y(x);
+  f.function(x,y);
+  return y.toVector();
+}
+
+/**
+ * Calculate function values at odd-valued indices of the base x-points.
+ * This method is used by bestFit to minimize the number of calls to the
+ * approximated function.
+ * @param f :: Function to calculate.
+ * @param p :: Values of function f at the even-valued indices of m_x.
+ */
+std::vector<double> ChebfunBase::fitOdd(ChebfunFunctionType f,
+                                        std::vector<double> &p) const {
+  assert(size() == p.size() * 2 - 1);
+  assert(size() % 2 == 1);
+  auto &xp = xPoints();
+  std::vector<double> res(xp.size());
+  auto it2 = res.begin();
+  auto it1 = p.begin();
+  // xp is odd-sized so the loop is ok
+  for (auto x = xp.begin() + 1; x != xp.end(); x += 2, ++it1, ++it2) {
+    *it2 = *it1; // one value from the previous iteration
+    ++it2;
+    *it2 = f(*x); // one new value
+  }
+  *(res.end() - 1) = p.back();
+  return res;
+}
+
+/**
+ * Calculate function values at odd-valued indices of the base x-points.
+ * This method is used by bestFit to minimize the number of calls to the
+ * approximated function.
+ * @param f :: Function to calculate.
+ * @param pEven :: Values of function f at the even-valued indices of m_x.
+ */
+std::vector<double> ChebfunBase::fitOdd(const API::IFunction &f,
+                                        std::vector<double> &pEven) const {
+  assert(size() == pEven.size() * 2 - 1);
+  assert(size() % 2 == 1);
+  //const API::IFunction1D *fun1d = dynamic_cast<const API::IFunction1D *>(&f);
+  //if (!fun1d) {
+  //  throw std::runtime_error("Function is not 1D.");
+  //}
+  std::vector<double> pOdd(size() - pEven.size());
+  std::vector<double> xOdd;
+  xOdd.reserve(pOdd.size());
+  // m_x is odd-sized so the loop is ok
+  for (auto x = m_x.begin() + 1; x != m_x.end(); x += 2) {
+    xOdd.push_back(*x);
+  }
+
+  //fun1d->function1D(pOdd.data(), xOdd.data(), xOdd.size());
+  API::FunctionDomain1DView x(m_x.data(), m_x.size());
+  API::FunctionValues y(x);
+  f.function(x,y);
+  pOdd = y.toVector();
+
+  std::vector<double> res(size());
+  for (size_t i = 0; i < xOdd.size(); ++i) {
+    res[2 * i] = pEven[i];
+    res[2 * i + 1] = pOdd[i];
+  }
+  res.back() = pEven.back();
+  return res;
+}
+
+/**
+  * Find all roots of this chebfun.
+  * @param a :: A vector with the Chebyshev expansion coefficients.
+  * @return A vector with root values, unordered. If empty function
+  * has no roots.
+  */
+std::vector<double> ChebfunBase::roots(const std::vector<double> &a) const {
+  std::vector<double> r;
+  // build the companion matrix
+  size_t N = order();
+  // ensure that the highest order coeff is > epsilon
+  const double epsilon = std::numeric_limits<double>::epsilon() * 100;
+  while (N > 0 && fabs(a[N]) < epsilon) {
+    --N;
+  }
+
+  if (N == 0)
+    return r; // function is a constant
+
+  const size_t N2 = 2 * N;
+  GSLMatrix C(N2, N2);
+  C.zero();
+  const double an = a[N];
+
+  const size_t lasti = N2 - 1;
+  for (size_t i = 0; i < N; ++i) {
+    if (i > 0) {
+      C.set(i, i - 1, 1.0);
+    }
+    C.set(N + i, N + i - 1, 1.0);
+    C.set(i, lasti, -a[N - i] / an);
+    double tmp = -a[i] / an;
+    if (i == 0)
+      tmp *= 2;
+    C.set(N + i, lasti, tmp);
+  }
+
+  gsl_vector_complex *eval = gsl_vector_complex_alloc(N2);
+  auto workspace = gsl_eigen_nonsymm_alloc(N2);
+  gsl_eigen_nonsymm(C.gsl(), eval, workspace);
+  gsl_eigen_nonsymm_free(workspace);
+
+  const double Dx = endX() - startX();
+  bool isFirst = true;
+  double firstIm = 0;
+  for (size_t i = 0; i < N2; ++i) {
+    auto val = gsl_vector_complex_get(eval, i);
+    double re = GSL_REAL(val);
+    double im = GSL_IMAG(val);
+    double ab = re * re + im * im;
+    if (fabs(ab - 1.0) > 1e-2) {
+      isFirst = true;
+      continue;
+    }
+    if (isFirst) {
+      isFirst = false;
+      firstIm = im;
+    } else {
+      if (im + firstIm < 1e-10) {
+        double x = startX() + (re + 1.0) / 2.0 * Dx;
+        r.push_back(x);
+      }
+      isFirst = true;
+    }
+  }
+  gsl_vector_complex_free(eval);
+
+  return r;
+}
+
+} // CurveFitting
+} // Mantid
diff --git a/Code/Mantid/Framework/CurveFitting/src/ComptonPeakProfile.cpp b/Code/Mantid/Framework/CurveFitting/src/ComptonPeakProfile.cpp
index 92328afbcff11394c44d05d9cb3a90ac3948e574..b45df855aaa90b239ce0b4b2a3d33898dee709f5 100644
--- a/Code/Mantid/Framework/CurveFitting/src/ComptonPeakProfile.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/ComptonPeakProfile.cpp
@@ -5,6 +5,8 @@
 #include "MantidCurveFitting/ConvertToYSpace.h"
 #include "MantidAPI/FunctionFactory.h"
 
+#include <cmath>
+
 namespace Mantid {
 namespace CurveFitting {
 
diff --git a/Code/Mantid/Framework/CurveFitting/src/ComptonScatteringCountRate.cpp b/Code/Mantid/Framework/CurveFitting/src/ComptonScatteringCountRate.cpp
index c0862428093ef84d7da77547440ea1447c9383d8..03fdd4a59010418f8f7ad72ddc89a3d1f21ef034 100644
--- a/Code/Mantid/Framework/CurveFitting/src/ComptonScatteringCountRate.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/ComptonScatteringCountRate.cpp
@@ -1,6 +1,7 @@
 #include "MantidCurveFitting/ComptonScatteringCountRate.h"
 #include "MantidCurveFitting/AugmentedLagrangianOptimizer.h"
 #include "MantidAPI/FunctionFactory.h"
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidKernel/Math/Optimization/SLSQPMinimizer.h"
 
 #include <boost/bind.hpp>
diff --git a/Code/Mantid/Framework/CurveFitting/src/CostFuncFitting.cpp b/Code/Mantid/Framework/CurveFitting/src/CostFuncFitting.cpp
index eb5e9a3b5c083fc977cc82ea346881a32b7c1b0b..425bdcce324e7fcf858aa95d24c5aa0bd21f2b8f 100644
--- a/Code/Mantid/Framework/CurveFitting/src/CostFuncFitting.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/CostFuncFitting.cpp
@@ -135,7 +135,6 @@ void CostFuncFitting::calCovarianceMatrix(GSLMatrix &covar, double epsrel) {
     ++ii;
   }
 
-  // std::cerr << "c=\n" << c << std::endl;
   if (isTransformationIdentity) {
     // if the transformation is identity simply copy the matrix
     covar = c;
@@ -144,10 +143,7 @@ void CostFuncFitting::calCovarianceMatrix(GSLMatrix &covar, double epsrel) {
     GSLMatrix tm;
     calTransformationMatrixNumerically(tm);
     covar = Tr(tm) * c * tm;
-    // std::cerr << "tm:\n" << tm << std::endl;
   }
-
-  // std::cerr << "Covar:\n" << covar << std::endl;
 }
 
 /**
diff --git a/Code/Mantid/Framework/CurveFitting/src/CostFuncLeastSquares.cpp b/Code/Mantid/Framework/CurveFitting/src/CostFuncLeastSquares.cpp
index d0d630bac9b7f4c9ba33e3386bcdbc7bb5e21410..dce860faa7d5cc7061f2b572d61c27fb45956625 100644
--- a/Code/Mantid/Framework/CurveFitting/src/CostFuncLeastSquares.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/CostFuncLeastSquares.cpp
@@ -32,8 +32,9 @@ CostFuncLeastSquares::CostFuncLeastSquares()
  * @return :: The value of the function
  */
 double CostFuncLeastSquares::val() const {
-  if (!m_dirtyVal)
+  if (!m_dirtyVal) {
     return m_value;
+  }
 
   checkValidity();
 
@@ -82,8 +83,6 @@ void CostFuncLeastSquares::addVal(API::FunctionDomain_sptr domain,
   std::vector<double> weights = getFitWeights(values);
 
   for (size_t i = 0; i < ny; i++) {
-    // double val = ( values->getCalculated(i) - values->getFitData(i) ) *
-    // values->getFitWeight(i);
     double val =
         (values->getCalculated(i) - values->getFitData(i)) * weights[i];
     retVal += val * val;
@@ -99,7 +98,7 @@ void CostFuncLeastSquares::addVal(API::FunctionDomain_sptr domain,
  * @param der :: Container to output the derivatives
  */
 void CostFuncLeastSquares::deriv(std::vector<double> &der) const {
-  valDerivHessian(false, true, false);
+  valDerivHessian(true, false);
 
   if (der.size() != nParams()) {
     der.resize(nParams());
@@ -114,7 +113,7 @@ void CostFuncLeastSquares::deriv(std::vector<double> &der) const {
  * @return :: The value of the function
  */
 double CostFuncLeastSquares::valAndDeriv(std::vector<double> &der) const {
-  valDerivHessian(true, true, false);
+  valDerivHessian(true, false);
 
   if (der.size() != nParams()) {
     der.resize(nParams());
@@ -127,28 +126,23 @@ double CostFuncLeastSquares::valAndDeriv(std::vector<double> &der) const {
 
 /** Calculate the value and the first and second derivatives of the cost
  * function
- *  @param evalFunction :: If false cost function isn't evaluated and returned
- * value (0.0) should be ignored.
- *    It is for efficiency reasons.
  *  @param evalDeriv :: flag for evaluation of the first derivatives
  *  @param evalHessian :: flag for evaluation of the second derivatives
  */
-double CostFuncLeastSquares::valDerivHessian(bool evalFunction, bool evalDeriv,
+double CostFuncLeastSquares::valDerivHessian(bool evalDeriv,
                                              bool evalHessian) const {
   if (m_pushed || !evalDeriv) {
     return val();
   }
 
-  if (!m_dirtyVal && !m_dirtyDeriv && !m_dirtyHessian)
+  if (!m_dirtyVal && !m_dirtyDeriv && !m_dirtyHessian){
     return m_value;
-  if (m_dirtyVal)
-    evalFunction = true;
+  }
 
   checkValidity();
 
-  if (evalFunction) {
-    m_value = 0.0;
-  }
+  m_value = 0.0;
+
   if (evalDeriv) {
     m_der.resize(nParams());
     m_der.zero();
@@ -161,29 +155,25 @@ double CostFuncLeastSquares::valDerivHessian(bool evalFunction, bool evalDeriv,
   auto seqDomain = boost::dynamic_pointer_cast<SeqDomain>(m_domain);
 
   if (seqDomain) {
-    seqDomain->leastSquaresValDerivHessian(*this, evalFunction, evalDeriv,
-                                           evalHessian);
+    seqDomain->leastSquaresValDerivHessian(*this, evalDeriv, evalHessian);
   } else {
     if (!m_values) {
       throw std::runtime_error("LeastSquares: undefined FunctionValues.");
     }
-    addValDerivHessian(m_function, m_domain, m_values, evalFunction, evalDeriv,
-                       evalHessian);
+    addValDerivHessian(m_function, m_domain, m_values, evalDeriv, evalHessian);
   }
 
   // Add constraints penalty
   size_t np = m_function->nParams();
-  if (evalFunction) {
-    if (m_includePenalty) {
-      for (size_t i = 0; i < np; ++i) {
-        API::IConstraint *c = m_function->getConstraint(i);
-        if (c) {
-          m_value += c->check();
-        }
+  if (m_includePenalty) {
+    for (size_t i = 0; i < np; ++i) {
+      API::IConstraint *c = m_function->getConstraint(i);
+      if (c) {
+        m_value += c->check();
       }
     }
-    m_dirtyVal = false;
   }
+  m_dirtyVal = false;
 
   if (evalDeriv) {
     if (m_includePenalty) {
@@ -229,38 +219,23 @@ double CostFuncLeastSquares::valDerivHessian(bool evalFunction, bool evalDeriv,
  * @param function :: Function to use to calculate the value and the derivatives
  * @param domain :: The domain.
  * @param values :: The fit function values
- * @param evalFunction :: Flag to evaluate the function
  * @param evalDeriv :: Flag to evaluate the derivatives
  * @param evalHessian :: Flag to evaluate the Hessian
  */
 void CostFuncLeastSquares::addValDerivHessian(API::IFunction_sptr function,
                                               API::FunctionDomain_sptr domain,
                                               API::FunctionValues_sptr values,
-                                              bool evalFunction, bool evalDeriv,
+                                              bool evalDeriv,
                                               bool evalHessian) const {
   UNUSED_ARG(evalDeriv);
   size_t np = function->nParams(); // number of parameters
   size_t ny = domain->size();      // number of data points
   Jacobian jacobian(ny, np);
-  if (evalFunction) {
-    function->function(*domain, *values);
-  }
+  function->function(*domain, *values);
   function->functionDeriv(*domain, jacobian);
 
   size_t iActiveP = 0;
   double fVal = 0.0;
-  if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
-    g_log.debug() << "Jacobian:\n";
-    for (size_t i = 0; i < ny; ++i) {
-      for (size_t ip = 0; ip < np; ++ip) {
-        if (!m_function->isActive(ip))
-          continue;
-        g_log.debug() << jacobian.get(i, ip) << ' ';
-      }
-      g_log.debug() << "\n";
-    }
-  }
-
   std::vector<double> weights = getFitWeights(values);
 
   for (size_t ip = 0; ip < np; ++ip) {
@@ -273,7 +248,7 @@ void CostFuncLeastSquares::addValDerivHessian(API::IFunction_sptr function,
       double w = weights[i];
       double y = (calc - obs) * w;
       d += y * jacobian.get(i, ip) * w;
-      if (iActiveP == 0 && evalFunction) {
+      if (iActiveP == 0) {
         fVal += y * y;
       }
     }
@@ -281,20 +256,15 @@ void CostFuncLeastSquares::addValDerivHessian(API::IFunction_sptr function,
       double der = m_der.get(iActiveP);
       m_der.set(iActiveP, der + d);
     }
-    // std::cerr << "der " << ip << ' ' << der[iActiveP] << std::endl;
     ++iActiveP;
   }
 
-  if (evalFunction) {
-    PARALLEL_ATOMIC
-    m_value += 0.5 * fVal;
-  }
+  PARALLEL_ATOMIC
+  m_value += 0.5 * fVal;
 
   if (!evalHessian)
     return;
 
-  // size_t na = m_der.size(); // number of active parameters
-
   size_t i1 = 0;                  // active parameter index
   for (size_t i = 0; i < np; ++i) // over parameters
   {
@@ -308,14 +278,12 @@ void CostFuncLeastSquares::addValDerivHessian(API::IFunction_sptr function,
       double d = 0.0;
       for (size_t k = 0; k < ny; ++k) // over fitting data
       {
-        // double w = values->getFitWeight(k);
         double w = weights[k];
         d += jacobian.get(k, i) * jacobian.get(k, j) * w * w;
       }
       PARALLEL_CRITICAL(hessian_set) {
         double h = m_hessian.get(i1, i2);
         m_hessian.set(i1, i2, h + d);
-        // std::cerr << "hess " << i1 << ' ' << i2 << std::endl;
         if (i1 != i2) {
           m_hessian.set(i2, i1, h + d);
         }
@@ -440,33 +408,33 @@ void CostFuncLeastSquares::calActiveCovarianceMatrix(GSLMatrix &covar,
   if (m_hessian.isEmpty()) {
     valDerivHessian();
   }
-  if (g_log.is(Kernel::Logger::Priority::PRIO_INFORMATION)) {
-    g_log.information() << "== Hessian (H) ==\n";
-    std::ios::fmtflags prevState = g_log.information().flags();
-    g_log.information() << std::left << std::fixed;
+  if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+    g_log.debug() << "== Hessian (H) ==\n";
+    std::ios::fmtflags prevState = g_log.debug().flags();
+    g_log.debug() << std::left << std::fixed;
     for (size_t i = 0; i < m_hessian.size1(); ++i) {
       for (size_t j = 0; j < m_hessian.size2(); ++j) {
-        g_log.information() << std::setw(10);
-        g_log.information() << m_hessian.get(i, j) << "  ";
+        g_log.debug() << std::setw(10);
+        g_log.debug() << m_hessian.get(i, j) << "  ";
       }
-      g_log.information() << "\n";
+      g_log.debug() << "\n";
     }
-    g_log.information().flags(prevState);
+    g_log.debug().flags(prevState);
   }
   covar = m_hessian;
   covar.invert();
-  if (g_log.is(Kernel::Logger::Priority::PRIO_INFORMATION)) {
-    g_log.information() << "== Covariance matrix (H^-1) ==\n";
-    std::ios::fmtflags prevState = g_log.information().flags();
-    g_log.information() << std::left << std::fixed;
+  if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+    g_log.debug() << "== Covariance matrix (H^-1) ==\n";
+    std::ios::fmtflags prevState = g_log.debug().flags();
+    g_log.debug() << std::left << std::fixed;
     for (size_t i = 0; i < covar.size1(); ++i) {
       for (size_t j = 0; j < covar.size2(); ++j) {
-        g_log.information() << std::setw(10);
-        g_log.information() << covar.get(i, j) << "  ";
+        g_log.debug() << std::setw(10);
+        g_log.debug() << covar.get(i, j) << "  ";
       }
-      g_log.information() << "\n";
+      g_log.debug() << "\n";
     }
-    g_log.information().flags(prevState);
+    g_log.debug().flags(prevState);
   }
 }
 
diff --git a/Code/Mantid/Framework/CurveFitting/src/CostFuncUnweightedLeastSquares.cpp b/Code/Mantid/Framework/CurveFitting/src/CostFuncUnweightedLeastSquares.cpp
index bf6bd0770dca89b13150ce6021ffd74d1af7923c..b7c610e6d0521d14e11882234c773862a0b19ada 100644
--- a/Code/Mantid/Framework/CurveFitting/src/CostFuncUnweightedLeastSquares.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/CostFuncUnweightedLeastSquares.cpp
@@ -24,20 +24,20 @@ void CostFuncUnweightedLeastSquares::calActiveCovarianceMatrix(GSLMatrix &covar,
   double variance = getResidualVariance();
   covar *= variance;
 
-  if (g_log.is(Kernel::Logger::Priority::PRIO_INFORMATION)) {
-    g_log.information() << "== Final covariance matrix (H^-1) ==" << std::endl;
+  if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+    g_log.debug() << "== Final covariance matrix (H^-1) ==" << std::endl;
 
-    std::ios::fmtflags prevState = g_log.information().flags();
-    g_log.information() << std::left << std::fixed;
+    std::ios::fmtflags prevState = g_log.debug().flags();
+    g_log.debug() << std::left << std::fixed;
 
     for (size_t i = 0; i < covar.size1(); ++i) {
       for (size_t j = 0; j < covar.size2(); ++j) {
-        g_log.information() << std::setw(10);
-        g_log.information() << covar.get(i, j) << "  ";
+        g_log.debug() << std::setw(10);
+        g_log.debug() << covar.get(i, j) << "  ";
       }
-      g_log.information() << std::endl;
+      g_log.debug() << std::endl;
     }
-    g_log.information().flags(prevState);
+    g_log.debug().flags(prevState);
   }
 }
 
@@ -62,20 +62,20 @@ double CostFuncUnweightedLeastSquares::getResidualVariance() const {
   double degreesOfFreedom = static_cast<double>(m_values->size() - nParams());
   double residualVariance = sum / degreesOfFreedom;
 
-  if (g_log.is(Kernel::Logger::Priority::PRIO_INFORMATION)) {
-    g_log.information() << "== Statistics of residuals ==" << std::endl;
-    std::ios::fmtflags prevState = g_log.information().flags();
-    g_log.information() << std::left << std::fixed << std::setw(10);
-    g_log.information() << "Residual sum of squares: " << sum << std::endl;
-    g_log.information() << "Residual variance: " << residualVariance
+  if (g_log.is(Kernel::Logger::Priority::PRIO_DEBUG)) {
+    g_log.debug() << "== Statistics of residuals ==" << std::endl;
+    std::ios::fmtflags prevState = g_log.debug().flags();
+    g_log.debug() << std::left << std::fixed << std::setw(10);
+    g_log.debug() << "Residual sum of squares: " << sum << std::endl;
+    g_log.debug() << "Residual variance: " << residualVariance
                         << std::endl;
-    g_log.information() << "Residual standard deviation: "
+    g_log.debug() << "Residual standard deviation: "
                         << sqrt(residualVariance) << std::endl;
-    g_log.information() << "Degrees of freedom: "
+    g_log.debug() << "Degrees of freedom: "
                         << static_cast<size_t>(degreesOfFreedom) << std::endl;
-    g_log.information() << "Number of observations: " << m_values->size()
+    g_log.debug() << "Number of observations: " << m_values->size()
                         << std::endl;
-    g_log.information().flags(prevState);
+    g_log.debug().flags(prevState);
   }
 
   return residualVariance;
diff --git a/Code/Mantid/Framework/CurveFitting/src/DynamicKuboToyabe.cpp b/Code/Mantid/Framework/CurveFitting/src/DynamicKuboToyabe.cpp
index 0197335b1bcbf86ceae075e38d040e5f0fae4299..fcffb415faeb344181e3bc60108e2a741e56c9fb 100644
--- a/Code/Mantid/Framework/CurveFitting/src/DynamicKuboToyabe.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/DynamicKuboToyabe.cpp
@@ -4,6 +4,7 @@
 #include "MantidCurveFitting/DynamicKuboToyabe.h"
 #include "MantidAPI/Jacobian.h"
 #include "MantidAPI/FunctionFactory.h"
+#include "MantidAPI/MatrixWorkspace.h"
 #include <vector>
 
 namespace Mantid
diff --git a/Code/Mantid/Framework/CurveFitting/src/EvaluateFunction.cpp b/Code/Mantid/Framework/CurveFitting/src/EvaluateFunction.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d6464bd45f48676b4e6babdc223fea8434143a3c
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/src/EvaluateFunction.cpp
@@ -0,0 +1,60 @@
+#include "MantidCurveFitting/EvaluateFunction.h"
+
+namespace Mantid {
+namespace CurveFitting {
+
+using namespace Mantid::Kernel;
+using namespace Mantid::API;
+
+// Register the algorithm into the AlgorithmFactory
+DECLARE_ALGORITHM(EvaluateFunction)
+
+//----------------------------------------------------------------------------------------------
+
+/// Algorithms name for identification. @see Algorithm::name
+const std::string EvaluateFunction::name() const {
+  return "EvaluateFunction";
+}
+
+/// Algorithm's version for identification. @see Algorithm::version
+int EvaluateFunction::version() const { return 1; }
+
+/// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
+const std::string EvaluateFunction::summary() const {
+  return "Evaluate a function on a workspace.";
+}
+
+//----------------------------------------------------------------------------------------------
+/// Initialize the algorithm's properties.
+void EvaluateFunction::initConcrete() {
+  declareProperty(new WorkspaceProperty<API::Workspace>("OutputWorkspace", "",
+                                                        Direction::Output),
+                  "An output workspace.");
+}
+
+//----------------------------------------------------------------------------------------------
+/// Execute the algorithm.
+void EvaluateFunction::execConcrete() {
+
+  // Function may need some preparation.
+  m_function->setUpForFit();
+
+  API::FunctionDomain_sptr domain;
+  API::FunctionValues_sptr values;
+  m_domainCreator->createDomain(domain, values);
+
+  // Do something with the function which may depend on workspace.
+  m_domainCreator->initFunction(m_function);
+  
+  // Calculate function values.
+  m_function->function(*domain, *values);
+
+  // Gnegerate the output workspace
+  auto outputWS = m_domainCreator->createOutputWorkspace("", m_function, domain, values, "");
+
+  // Store the result.
+  setProperty("OutputWorkspace", outputWS);
+}
+
+} // namespace CurveFitting
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/CurveFitting/src/Fit.cpp b/Code/Mantid/Framework/CurveFitting/src/Fit.cpp
index ef17850bcb2a655237bbac74c686a5d21ef5dd68..c37debe935c3074b8cce0224b27cff1c2ae5a4a2 100644
--- a/Code/Mantid/Framework/CurveFitting/src/Fit.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/Fit.cpp
@@ -8,6 +8,7 @@
 #include "MantidAPI/FuncMinimizerFactory.h"
 #include "MantidAPI/FunctionValues.h"
 #include "MantidAPI/IFuncMinimizer.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -31,7 +32,7 @@ void Fit::initConcrete() {
                          "the fitting function.");
   declareProperty("Constraints", "", Kernel::Direction::Input);
   getPointerToProperty("Constraints")->setDocumentation("List of constraints");
-  auto mustBePositive = boost::shared_ptr<Kernel::BoundedValidator<int> >(
+  auto mustBePositive = boost::shared_ptr<Kernel::BoundedValidator<int>>(
       new Kernel::BoundedValidator<int>());
   mustBePositive->setLower(0);
   declareProperty(
@@ -78,8 +79,12 @@ void Fit::initConcrete() {
       "CreateOutput", false,
       "Set to true to create output workspaces with the results of the fit"
       "(default is false).");
-  declareProperty("Output", "", "A base name for the output workspaces (if not "
-                                "given default names will be created).");
+  declareProperty(
+      "Output", "",
+      "A base name for the output workspaces (if not "
+      "given default names will be created). The "
+      "default is to use the name of the original data workspace as prefix "
+      "followed by suffixes _Workspace, _Parameters, etc.");
   declareProperty("CalcErrors", false,
                   "Set to true to calcuate errors when output isn't created "
                   "(default is false).");
@@ -180,11 +185,6 @@ void Fit::execConcrete() {
     }
     prog.report();
     m_function->iterationFinished();
-    if (g_log.is(Kernel::Logger::Priority::PRIO_INFORMATION)) {
-      g_log.debug() << "Iteration " << iter
-                    << ", cost function = " << minimizer->costFunctionVal()
-                    << "\n";
-    }
     ++iter;
   }
   g_log.debug() << "Number of minimizer iterations=" << iter << "\n";
@@ -285,8 +285,10 @@ void Fit::execConcrete() {
           row << 100.0;
         else {
           if (!covar.gsl()) {
-            throw std::runtime_error("There was an error while allocating the (GSL) covariance matrix "
-                                     "which is needed to produce fitting error results.");
+            throw std::runtime_error(
+                "There was an error while allocating the (GSL) covariance "
+                "matrix "
+                "which is needed to produce fitting error results.");
           }
           row << 100.0 * covar.get(ia, ja) /
                      sqrt(covar.get(ia, ia) * covar.get(ja, ja));
diff --git a/Code/Mantid/Framework/CurveFitting/src/FunctionDomain1DSpectrumCreator.cpp b/Code/Mantid/Framework/CurveFitting/src/FunctionDomain1DSpectrumCreator.cpp
index 9767933a35362ea061fd2537640decaaa87858f2..67cf46775e390e7348a0e1dde09f935560a04050 100644
--- a/Code/Mantid/Framework/CurveFitting/src/FunctionDomain1DSpectrumCreator.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/FunctionDomain1DSpectrumCreator.cpp
@@ -1,5 +1,7 @@
 #include "MantidCurveFitting/FunctionDomain1DSpectrumCreator.h"
 
+#include "MantidAPI/MatrixWorkspace.h"
+
 namespace Mantid {
 namespace CurveFitting {
 
diff --git a/Code/Mantid/Framework/CurveFitting/src/GSLMatrix.cpp b/Code/Mantid/Framework/CurveFitting/src/GSLMatrix.cpp
index 36eab7873e7bbfa9b325e2b19b7af188f70e81ae..a219704c698d6267e4a4aad3626b21d384eaae6b 100644
--- a/Code/Mantid/Framework/CurveFitting/src/GSLMatrix.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/GSLMatrix.cpp
@@ -2,10 +2,159 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidCurveFitting/GSLMatrix.h"
+#include <gsl/gsl_eigen.h>
 
 namespace Mantid {
 namespace CurveFitting {
 
+
+/// Constructor
+GSLMatrix::GSLMatrix() : m_matrix(NULL) {}
+/// Constructor
+/// @param nx :: First dimension
+/// @param ny :: Second dimension
+GSLMatrix::GSLMatrix(const size_t nx, const size_t ny) {
+  m_matrix = gsl_matrix_alloc(nx, ny);
+}
+
+/// Copy constructor
+/// @param M :: The other matrix.
+GSLMatrix::GSLMatrix(const GSLMatrix &M) {
+  m_matrix = gsl_matrix_alloc(M.size1(), M.size2());
+  gsl_matrix_memcpy(m_matrix, M.gsl());
+}
+
+/// Create a submatrix. A submatrix is a view into the parent matrix.
+/// Lifetime of a submatrix cannot exceed the lifetime of the parent.
+/// @param M :: The parent matrix.
+/// @param row :: The first row in the submatrix.
+/// @param col :: The first column in the submatrix.
+/// @param nRows :: The number of rows in the submatrix.
+/// @param nCols :: The number of columns in the submatrix.
+GSLMatrix::GSLMatrix(const GSLMatrix &M, size_t row, size_t col, size_t nRows, size_t nCols) {
+  if ( row + nRows > M.size1() || col + nCols > M.size2() )
+  {
+    throw std::runtime_error("Submatrix exceeds matrix size.");
+  }
+  auto view = gsl_matrix_const_submatrix(M.gsl(), row, col, nRows, nCols);
+  m_matrix = gsl_matrix_alloc(nRows, nCols);
+  gsl_matrix_memcpy(m_matrix, &view.matrix);
+}
+
+/// Constructor
+/// @param M :: A matrix to copy.
+GSLMatrix::GSLMatrix(const Kernel::Matrix<double>& M) {
+  m_matrix = gsl_matrix_alloc(M.numRows(), M.numCols());
+  for(size_t i = 0; i < size1(); ++i)
+  for(size_t j = 0; j < size2(); ++j){
+    set(i,j, M[i][j]);
+  }
+}
+
+/// Create this matrix from a product of two other matrices
+/// @param mult2 :: Matrix multiplication helper object.
+GSLMatrix::GSLMatrix(const GSLMatrixMult2 &mult2) : m_matrix(NULL) {*this = mult2;}
+
+/// Create this matrix from a product of three other matrices
+/// @param mult3 :: Matrix multiplication helper object.
+GSLMatrix::GSLMatrix(const GSLMatrixMult3 &mult3) : m_matrix(NULL) {*this = mult3;}
+
+/// Destructor.
+GSLMatrix::~GSLMatrix() {
+  if (m_matrix) {
+    gsl_matrix_free(m_matrix);
+  }
+}
+
+/// Copy assignment operator
+GSLMatrix &GSLMatrix::operator=(const GSLMatrix &M) {
+  resize(M.size1(), M.size2());
+  gsl_matrix_memcpy(m_matrix, M.gsl());
+  return *this;
+}
+
+/// Is matrix empty
+bool GSLMatrix::isEmpty() const { return m_matrix == NULL; }
+
+/// Resize the matrix
+/// @param nx :: New first dimension
+/// @param ny :: New second dimension
+void GSLMatrix::resize(const size_t nx, const size_t ny) {
+  if (m_matrix) {
+    gsl_matrix_free(m_matrix);
+  }
+  m_matrix = gsl_matrix_alloc(nx, ny);
+}
+
+/// First size of the matrix
+size_t GSLMatrix::size1() const { return m_matrix ? m_matrix->size1 : 0; }
+
+/// Second size of the matrix
+size_t GSLMatrix::size2() const { return m_matrix ? m_matrix->size2 : 0; }
+
+/// set an element
+/// @param i :: The row
+/// @param j :: The column
+/// @param value :: The new vaule
+void GSLMatrix::set(size_t i, size_t j, double value) {
+  if (i < m_matrix->size1 && j < m_matrix->size2)
+    gsl_matrix_set(m_matrix, i, j, value);
+  else {
+    throw std::out_of_range("GSLMatrix indices are out of range.");
+  }
+}
+
+/// get an element
+/// @param i :: The row
+/// @param j :: The column
+double GSLMatrix::get(size_t i, size_t j) const {
+  if (i < m_matrix->size1 && j < m_matrix->size2)
+    return gsl_matrix_get(m_matrix, i, j);
+  throw std::out_of_range("GSLMatrix indices are out of range.");
+}
+
+/// Set this matrix to identity matrix
+void GSLMatrix::identity() { gsl_matrix_set_identity(m_matrix); }
+
+/// Set all elements to zero
+void GSLMatrix::zero() { gsl_matrix_set_zero(m_matrix); }
+
+/// Set the matrix to be diagonal.
+/// @param d :: Values on the diagonal.
+void GSLMatrix::diag(const GSLVector& d) {
+  const auto n = d.size();
+  resize(n, n);
+  zero();
+  for(size_t i = 0; i < n; ++i) {
+    set(i, i, d.get(i));
+  }
+}
+
+/// add a matrix to this
+/// @param M :: A matrix
+GSLMatrix &GSLMatrix::operator+=(const GSLMatrix &M) {
+  gsl_matrix_add(m_matrix, M.gsl());
+  return *this;
+}
+/// add a constant to this matrix
+/// @param d :: A number
+GSLMatrix &GSLMatrix::operator+=(const double &d) {
+  gsl_matrix_add_constant(m_matrix, d);
+  return *this;
+}
+/// subtract a matrix from this
+/// @param M :: A matrix
+GSLMatrix &GSLMatrix::operator-=(const GSLMatrix &M) {
+  gsl_matrix_sub(m_matrix, M.gsl());
+  return *this;
+}
+/// multiply this matrix by a number
+/// @param d :: A number
+GSLMatrix &GSLMatrix::operator*=(const double &d) {
+  gsl_matrix_scale(m_matrix, d);
+  return *this;
+}
+
 /// Assign this matrix to a product of two other matrices
 /// @param mult2 :: Matrix multiplication helper object.
 GSLMatrix &GSLMatrix::operator=(const GSLMatrixMult2 &mult2) {
@@ -101,5 +250,41 @@ double GSLMatrix::det() {
   return res;
 }
 
+/// Calculate the eigensystem of a symmetric matrix
+/// @param eigenValues :: Output variable that receives the eigenvalues of this matrix.
+/// @param eigenVectors :: Output variable that receives the eigenvectors of this matrix.
+void GSLMatrix::eigenSystem(GSLVector& eigenValues, GSLMatrix& eigenVectors) {
+  size_t n = size1();
+  if (n != size2()) {
+    throw std::runtime_error("Matrix eigenSystem: the matrix must be square.");
+  }
+  eigenValues.resize(n);
+  eigenVectors.resize(n,n);
+  auto workspace = gsl_eigen_symmv_alloc(n);
+  gsl_eigen_symmv(gsl(), eigenValues.gsl(), eigenVectors.gsl(), workspace);
+  gsl_eigen_symmv_free(workspace);
+}
+
+/// Copy a row into a GSLVector
+/// @param i :: A row index.
+GSLVector GSLMatrix::copyRow(size_t i) const {
+  if (i >= size1()){
+    throw std::out_of_range("GSLMatrix row index is out of range.");
+  }
+  auto rowView = gsl_matrix_const_row(gsl(), i);
+  return GSLVector(&rowView.vector);
+}
+
+/// Copy a column into a GSLVector
+/// @param i :: A column index.
+GSLVector GSLMatrix::copyColumn(size_t i) const {
+  if (i >= size2()){
+    throw std::out_of_range("GSLMatrix column index is out of range.");
+  }
+  auto columnView = gsl_matrix_const_column(gsl(), i);
+  return GSLVector(&columnView.vector);
+}
+
+
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Code/Mantid/Framework/CurveFitting/src/GSLVector.cpp b/Code/Mantid/Framework/CurveFitting/src/GSLVector.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..603440a37bd10309c278325922e0e5d020c9d598
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/src/GSLVector.cpp
@@ -0,0 +1,175 @@
+//----------------------------------------------------------------------
+// Includes
+//----------------------------------------------------------------------
+#include "MantidCurveFitting/GSLVector.h"
+
+#include <gsl/gsl_blas.h>
+#include <stdexcept>
+#include <iomanip>
+#include <sstream>
+#include <cmath>
+
+namespace Mantid {
+namespace CurveFitting {
+
+/// Constructor
+GSLVector::GSLVector()
+    : m_data(1), m_view(gsl_vector_view_array(m_data.data(), 1)) {}
+
+/// Constructor
+/// @param n :: The length of the vector.
+GSLVector::GSLVector(const size_t n)
+    : m_data(n), m_view(gsl_vector_view_array(m_data.data(), n)) {}
+
+/// Construct from a std vector
+/// @param v :: A std vector.
+GSLVector::GSLVector(const std::vector<double> &v)
+    : m_data(v), m_view(gsl_vector_view_array(m_data.data(), m_data.size())) {}
+
+/// Copy constructor.
+/// @param v :: The other vector
+GSLVector::GSLVector(const GSLVector &v)
+    : m_data(v.m_data),
+      m_view(gsl_vector_view_array(m_data.data(), m_data.size())) {}
+
+/// Copy from a gsl vector
+/// @param v :: A vector to copy from.
+GSLVector::GSLVector(const gsl_vector *v)
+    : m_data(v->size),
+      m_view(gsl_vector_view_array(m_data.data(), m_data.size())) {
+  for (size_t i = 0; i < v->size; ++i) {
+    m_data[i] = gsl_vector_get(v, i);
+  }
+}
+
+/// Copy assignment operator
+/// @param v :: The other vector
+GSLVector &GSLVector::operator=(const GSLVector &v) {
+  m_data = v.m_data;
+  m_view = gsl_vector_view_array(m_data.data(), m_data.size());
+  return *this;
+}
+
+/// Get the pointer to the GSL vector
+gsl_vector *GSLVector::gsl() { return &m_view.vector; }
+
+/// Get the pointer to the GSL vector
+const gsl_vector *GSLVector::gsl() const { return &m_view.vector; }
+
+/// Resize the vector
+/// @param n :: The new length
+void GSLVector::resize(const size_t n) {
+  if (n != size()) {
+    m_data.resize(n);
+    m_view = gsl_vector_view_array(m_data.data(), m_data.size());
+  }
+}
+
+/// Size of the vector
+size_t GSLVector::size() const { return m_data.size(); }
+
+/// set an element
+/// @param i :: The element index
+/// @param value :: The new value
+void GSLVector::set(size_t i, double value) {
+  if (i < m_data.size())
+    m_data[i] = value;
+  else {
+    std::stringstream errmsg;
+    errmsg << "GSLVector index = " << i
+           << " is out of range = " << m_data.size() << " in GSLVector.set()";
+    throw std::out_of_range(errmsg.str());
+  }
+}
+/// get an element
+/// @param i :: The element index
+double GSLVector::get(size_t i) const {
+  if (i < m_data.size())
+    return m_data[i];
+
+  std::stringstream errmsg;
+  errmsg << "GSLVector index = " << i << " is out of range = " << m_data.size()
+         << " in GSLVector.get()";
+  throw std::out_of_range(errmsg.str());
+}
+
+// Set all elements to zero
+void GSLVector::zero() {
+  m_data.assign(m_data.size(), 0.0);
+}
+
+/// Add a vector
+/// @param v :: The other vector
+GSLVector &GSLVector::operator+=(const GSLVector &v) {
+  if (size() != v.size()){
+    throw std::runtime_error("GSLVectors have different sizes.");
+  }
+  gsl_vector_add(gsl(), v.gsl());
+  return *this;
+}
+
+/// Subtract a vector
+/// @param v :: The other vector
+GSLVector &GSLVector::operator-=(const GSLVector &v) {
+  if (size() != v.size()){
+    throw std::runtime_error("GSLVectors have different sizes.");
+  }
+  gsl_vector_sub(gsl(), v.gsl());
+  return *this;
+}
+
+/// Multiply by a number
+/// @param d :: The number
+GSLVector &GSLVector::operator*=(const double d) {
+  gsl_vector_scale(gsl(), d);
+  return *this;
+}
+
+/// Normalise this vector
+void GSLVector::normalize(){
+  double N = norm();
+  if (N == 0.0)
+  {
+    throw std::runtime_error("Cannot normalize null vector.");
+  }
+  *this *= 1.0 / N;
+}
+
+/// Get vector norm (length)
+double GSLVector::norm() const
+{
+  return sqrt(norm2());
+}
+
+/// Get vector's norm squared
+double GSLVector::norm2() const
+{
+  double res = 0.0;
+  for(auto el = m_data.begin(); el != m_data.end(); ++el) {
+    res += (*el) * (*el);
+  }
+  return res;
+}
+
+/// Calculate the dot product
+/// @param v :: The other vector.
+double GSLVector::dot(const GSLVector &v) const {
+  if (size() != v.size()) {
+    throw std::runtime_error("Vectors have different sizes in dot product.");
+  }
+  double res = 0.0;
+  gsl_blas_ddot(gsl(), v.gsl(), &res);
+  return res;
+}
+
+/// The << operator.
+std::ostream &operator<<(std::ostream &ostr, const GSLVector &v) {
+  ostr << std::scientific << std::setprecision(6);
+  for (size_t j = 0; j < v.size(); ++j) {
+    ostr << std::setw(13) << v[j] << ' ';
+  }
+  return ostr;
+}
+
+} // namespace CurveFitting
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/CurveFitting/src/GaussianComptonProfile.cpp b/Code/Mantid/Framework/CurveFitting/src/GaussianComptonProfile.cpp
index b77daafba109cacdcaa99a37c0f10d5291b8227a..3cc941c99647c2c51097a6c5f2f81326a2611cc0 100644
--- a/Code/Mantid/Framework/CurveFitting/src/GaussianComptonProfile.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/GaussianComptonProfile.cpp
@@ -4,6 +4,8 @@
 #include "MantidCurveFitting/GaussianComptonProfile.h"
 #include "MantidAPI/FunctionFactory.h"
 
+#include <cmath>
+
 namespace Mantid {
 namespace CurveFitting {
 DECLARE_FUNCTION(GaussianComptonProfile)
diff --git a/Code/Mantid/Framework/CurveFitting/src/GramCharlierComptonProfile.cpp b/Code/Mantid/Framework/CurveFitting/src/GramCharlierComptonProfile.cpp
index fe20a841b14106e5149e0f1609f16423d7ede2ea..2eeeaa64f63b356ba589b760fee961c0967c45bc 100644
--- a/Code/Mantid/Framework/CurveFitting/src/GramCharlierComptonProfile.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/GramCharlierComptonProfile.cpp
@@ -9,6 +9,7 @@
 #include <gsl/gsl_sf_gamma.h> // for factorial
 #include <gsl/gsl_spline.h>
 
+#include <cmath>
 #include <sstream>
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/CurveFitting/src/LatticeDomainCreator.cpp b/Code/Mantid/Framework/CurveFitting/src/LatticeDomainCreator.cpp
index 9c0d014e9a12b28ad065d54d136889e6cc2e3f88..1801cfac4fc593d30159a66ef3d1e69484568026 100644
--- a/Code/Mantid/Framework/CurveFitting/src/LatticeDomainCreator.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/LatticeDomainCreator.cpp
@@ -3,6 +3,7 @@
 #include "MantidGeometry/Crystal/IPeak.h"
 
 #include "MantidAPI/ILatticeFunction.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include "MantidAPI/LatticeDomain.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/WorkspaceFactory.h"
diff --git a/Code/Mantid/Framework/CurveFitting/src/LevenbergMarquardtMDMinimizer.cpp b/Code/Mantid/Framework/CurveFitting/src/LevenbergMarquardtMDMinimizer.cpp
index a0e821189ac44548e9d8867f0d6f995bca2cf0fc..1fc88176f797dc33a6b4a9fd5cdada0570985b7a 100644
--- a/Code/Mantid/Framework/CurveFitting/src/LevenbergMarquardtMDMinimizer.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/LevenbergMarquardtMDMinimizer.cpp
@@ -74,11 +74,10 @@ bool LevenbergMarquardtMDMinimizer::iterate(size_t) {
   }
 
   // calculate the first and second derivatives of the cost function.
-  if (m_mu == 0.0) { // first time calculate everything
+  if (m_mu == 0.0 || m_rho > 0) {
+    // calculate everything first time or 
+    // if last iteration was good
     m_F = m_leastSquares->valDerivHessian();
-  } else if (m_rho > 0) { // last iteration was good: calculate new m_der and
-                          // m_hessian, dont't recalculate m_F
-    m_leastSquares->valDerivHessian(false);
   }
   // else if m_rho < 0 last iteration was bad: reuse m_der and m_hessian
 
diff --git a/Code/Mantid/Framework/CurveFitting/src/ParDomain.cpp b/Code/Mantid/Framework/CurveFitting/src/ParDomain.cpp
index 2fa62f409bdce3b027445af9b0cf0ed13be01acb..dedcf8976d62136146e30ed952dffe78a6ac0f81 100644
--- a/Code/Mantid/Framework/CurveFitting/src/ParDomain.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/ParDomain.cpp
@@ -50,14 +50,12 @@ void ParDomain::leastSquaresVal(const CostFuncLeastSquares &leastSquares) {
  * Calculate the value, first and second derivatives of a least squares cost
  * function
  * @param leastSquares :: The least squares cost func to calculate the value for
- * @param evalFunction :: Flag to evaluate the value of the cost function
  * @param evalDeriv :: Flag to evaluate the first derivatives
  * @param evalHessian :: Flag to evaluate the Hessian (second derivatives)
  */
 void
 ParDomain::leastSquaresValDerivHessian(const CostFuncLeastSquares &leastSquares,
-                                       bool evalFunction, bool evalDeriv,
-                                       bool evalHessian) {
+                                       bool evalDeriv, bool evalHessian) {
   const int n = static_cast<int>(getNDomains());
   PARALLEL_SET_DYNAMIC(0);
   std::vector<API::IFunction_sptr> funs;
@@ -81,9 +79,8 @@ ParDomain::leastSquaresValDerivHessian(const CostFuncLeastSquares &leastSquares,
         funs[k] = leastSquares.getFittingFunction()->clone();
       }
     }
-    // std::cerr <<
-    leastSquares.addValDerivHessian(funs[k], domain, simpleValues, evalFunction,
-                                    evalDeriv, evalHessian);
+    leastSquares.addValDerivHessian(funs[k], domain, simpleValues, evalDeriv,
+                                    evalHessian);
   }
 }
 
diff --git a/Code/Mantid/Framework/CurveFitting/src/PawleyFit.cpp b/Code/Mantid/Framework/CurveFitting/src/PawleyFit.cpp
index e3291e7fb7182c029c049022884139f11368690d..acda22c66f4fbcb2359e632e874399a6db81e669 100644
--- a/Code/Mantid/Framework/CurveFitting/src/PawleyFit.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/PawleyFit.cpp
@@ -2,6 +2,7 @@
 
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidCurveFitting/PawleyFunction.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 
 #include "MantidGeometry/Crystal/UnitCell.h"
diff --git a/Code/Mantid/Framework/CurveFitting/src/PawleyFunction.cpp b/Code/Mantid/Framework/CurveFitting/src/PawleyFunction.cpp
index a64b5232ad4b094559e44e61250aae16b94f3568..b225e66178a1cb3aefa23d0baa1073ea4d50f442 100644
--- a/Code/Mantid/Framework/CurveFitting/src/PawleyFunction.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/PawleyFunction.cpp
@@ -1,6 +1,7 @@
 #include "MantidCurveFitting/PawleyFunction.h"
 
 #include "MantidAPI/FunctionFactory.h"
+#include "MantidAPI/MatrixWorkspace.h"
 
 #include "MantidCurveFitting/BoundaryConstraint.h"
 
diff --git a/Code/Mantid/Framework/CurveFitting/src/PlotPeakByLogValue.cpp b/Code/Mantid/Framework/CurveFitting/src/PlotPeakByLogValue.cpp
index 28cc8d5afa6c61d7ff0f47701ff07e8730e33405..72c78e9a0640d00b9b37ae04f22646331f814ce6 100644
--- a/Code/Mantid/Framework/CurveFitting/src/PlotPeakByLogValue.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/PlotPeakByLogValue.cpp
@@ -26,6 +26,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/BinEdgeAxis.h"
 #include "MantidKernel/ListValidator.h"
 #include "MantidKernel/MandatoryValidator.h"
 
@@ -157,9 +158,11 @@ void PlotPeakByLogValue::exec() {
     result->addColumn("str", "Source name");
     isDataName = true;
   } else if (logName.empty()) {
-    result->addColumn("double", "axis-1");
+    auto col = result->addColumn("double", "axis-1");
+    col->setPlotType(1); // X-values inplots
   } else {
-    result->addColumn("double", logName);
+    auto col = result->addColumn("double", logName);
+    col->setPlotType(1); // X-values inplots
   }
   // Create an instance of the fitting function to obtain the names of fitting
   // parameters
@@ -227,7 +230,13 @@ void PlotPeakByLogValue::exec() {
       double logValue = 0;
       if (logName.empty()) {
         API::Axis *axis = data.ws->getAxis(1);
-        logValue = (*axis)(j);
+        if(dynamic_cast<BinEdgeAxis *>(axis)) {
+          double lowerEdge((*axis)(j));
+          double upperEdge((*axis)(j+1));
+          logValue = lowerEdge + (upperEdge - lowerEdge) / 2;
+        }
+        else
+          logValue = (*axis)(j);
       } else if (logName != "SourceName") {
         Kernel::Property *prop = data.ws->run().getLogData(logName);
         if (!prop) {
diff --git a/Code/Mantid/Framework/CurveFitting/src/SeqDomain.cpp b/Code/Mantid/Framework/CurveFitting/src/SeqDomain.cpp
index 58ac1e7c922de4826c968e1a02c27cc8fed83363..9a15dc6db0438cd40931363acf5f81ba0a8eec76 100644
--- a/Code/Mantid/Framework/CurveFitting/src/SeqDomain.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/SeqDomain.cpp
@@ -105,14 +105,12 @@ void SeqDomain::rwpVal(const CostFuncRwp &rwp) {
  * Calculate the value, first and second derivatives of a least squares cost
  * function
  * @param leastSquares :: The least squares cost func to calculate the value for
- * @param evalFunction :: Flag to evaluate the value of the cost function
  * @param evalDeriv :: Flag to evaluate the first derivatives
  * @param evalHessian :: Flag to evaluate the Hessian (second derivatives)
  */
 void
 SeqDomain::leastSquaresValDerivHessian(const CostFuncLeastSquares &leastSquares,
-                                       bool evalFunction, bool evalDeriv,
-                                       bool evalHessian) {
+                                       bool evalDeriv, bool evalHessian) {
   API::FunctionDomain_sptr domain;
   API::FunctionValues_sptr values;
   const size_t n = getNDomains();
@@ -123,20 +121,18 @@ SeqDomain::leastSquaresValDerivHessian(const CostFuncLeastSquares &leastSquares,
       throw std::runtime_error("LeastSquares: undefined FunctionValues.");
     }
     leastSquares.addValDerivHessian(leastSquares.getFittingFunction(), domain,
-                                    values, evalFunction, evalDeriv,
-                                    evalHessian);
+                                    values, evalDeriv, evalHessian);
   }
 }
 
 /**
  * Calculate the value, first and second derivatives of a RWP cost function
  * @param rwp :: The rwp cost func to calculate the value for
- * @param evalFunction :: Flag to evaluate the value of the cost function
  * @param evalDeriv :: Flag to evaluate the first derivatives
  * @param evalHessian :: Flag to evaluate the Hessian (second derivatives)
  */
-void SeqDomain::rwpValDerivHessian(const CostFuncRwp &rwp, bool evalFunction,
-                                   bool evalDeriv, bool evalHessian) {
+void SeqDomain::rwpValDerivHessian(const CostFuncRwp &rwp, bool evalDeriv,
+                                   bool evalHessian) {
   API::FunctionDomain_sptr domain;
   API::FunctionValues_sptr values;
   const size_t n = getNDomains();
@@ -146,8 +142,8 @@ void SeqDomain::rwpValDerivHessian(const CostFuncRwp &rwp, bool evalFunction,
     if (!values) {
       throw std::runtime_error("Rwp: undefined FunctionValues.");
     }
-    rwp.addValDerivHessian(rwp.getFittingFunction(), domain, values,
-                           evalFunction, evalDeriv, evalHessian);
+    rwp.addValDerivHessian(rwp.getFittingFunction(), domain, values, evalDeriv,
+                           evalHessian);
   }
 }
 
diff --git a/Code/Mantid/Framework/CurveFitting/src/SplineInterpolation.cpp b/Code/Mantid/Framework/CurveFitting/src/SplineInterpolation.cpp
index 2f31b1f8e95def93b52bd53f333990e32205cda7..62381042e913b5dbaf54a7b11a250264252d0e3e 100644
--- a/Code/Mantid/Framework/CurveFitting/src/SplineInterpolation.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/SplineInterpolation.cpp
@@ -154,7 +154,7 @@ SplineInterpolation::setupOutputWorkspace(API::MatrixWorkspace_sptr mws,
       WorkspaceFactory::Instance().create(mws, numSpec);
 
   // Use the vertical axis form the workspace to interpolate on the output WS
-  Axis *vAxis = iws->getAxis(1)->clone(NULL);
+  Axis *vAxis = iws->getAxis(1)->clone(mws.get());
   outputWorkspace->replaceAxis(1, vAxis);
 
   return outputWorkspace;
diff --git a/Code/Mantid/Framework/CurveFitting/src/VesuvioResolution.cpp b/Code/Mantid/Framework/CurveFitting/src/VesuvioResolution.cpp
index fac486c744a48fe86404b42778814178c39cf36a..76660047af6be3c0d0c517a7b8838151183b2bf0 100644
--- a/Code/Mantid/Framework/CurveFitting/src/VesuvioResolution.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/VesuvioResolution.cpp
@@ -173,13 +173,13 @@ VesuvioResolution::cacheResolutionComponents(const DetectorParams &detpar,
   m_resolutionSigma = std::sqrt(std::pow(wgauss, 2) + std::pow(wtheta, 2) +
                                 std::pow(wl1, 2) + std::pow(wl2, 2));
 
-  m_log.notice() << "--------------------- Mass=" << m_mass
-                 << " -----------------------" << std::endl;
-  m_log.notice() << "w_l1 (FWHM)=" << wl2 << std::endl;
-  m_log.notice() << "w_l0 (FWHM)=" << wl1 << std::endl;
-  m_log.notice() << "w_theta (FWHM)=" << wtheta << std::endl;
-  m_log.notice() << "w_foil_lorentz (FWHM)=" << m_lorentzFWHM << std::endl;
-  m_log.notice() << "w_foil_gauss (FWHM)=" << wgauss << std::endl;
+  m_log.information() << "--------------------- Mass=" << m_mass
+                      << " -----------------------" << std::endl;
+  m_log.information() << "w_l1 (FWHM)=" << wl2 << std::endl;
+  m_log.information() << "w_l0 (FWHM)=" << wl1 << std::endl;
+  m_log.information() << "w_theta (FWHM)=" << wtheta << std::endl;
+  m_log.information() << "w_foil_lorentz (FWHM)=" << m_lorentzFWHM << std::endl;
+  m_log.information() << "w_foil_gauss (FWHM)=" << wgauss << std::endl;
 }
 
 void VesuvioResolution::function1D(double *out, const double *xValues,
diff --git a/Code/Mantid/Framework/CurveFitting/test/CalculateChiSquaredTest.h b/Code/Mantid/Framework/CurveFitting/test/CalculateChiSquaredTest.h
index 0f428ac39a871db8db5fd1aad6f39e6b953aebcb..55480f516e79eec7e1e098c2cd9ff0bfa2aad421 100644
--- a/Code/Mantid/Framework/CurveFitting/test/CalculateChiSquaredTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/CalculateChiSquaredTest.h
@@ -8,6 +8,8 @@
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/FunctionValues.h"
 #include "MantidAPI/IFunction1D.h"
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/Column.h"
 #include "MantidKernel/EmptyValues.h"
 
 #include <algorithm>
@@ -25,7 +27,10 @@ public:
   static CalculateChiSquaredTest *createSuite() {
     return new CalculateChiSquaredTest();
   }
-  static void destroySuite(CalculateChiSquaredTest *suite) { delete suite; }
+  static void destroySuite(CalculateChiSquaredTest *suite) {
+    AnalysisDataService::Instance().clear();
+    delete suite;
+  }
 
   void test_Init() {
     CalculateChiSquared alg;
@@ -156,6 +161,97 @@ public:
     TS_ASSERT_DELTA(tester.chiSquared, 7151.0, 1.0);
   }
 
+  void test_errors_Thurber() {
+    double x[] = {-3.067, -2.981, -2.921, -2.912, -2.840, -2.797, -2.702,
+                  -2.699, -2.633, -2.481, -2.363, -2.322, -1.501, -1.460,
+                  -1.274, -1.212, -1.100, -1.046, -0.915, -0.714, -0.566,
+                  -0.545,  -0.400, -0.309, -0.109, -0.103, 0.010,  0.119,
+                  0.377,  0.790,  0.963,  1.006,  1.115,  1.572,  1.841,
+                  2.047,  2.200};
+    double y[] = {80.574,   84.248,   87.264,   87.195,   89.076,   89.608,
+                  89.868,   90.101,   92.405,   95.854,   100.696,  101.060,
+                  401.672,  390.724,  567.534,  635.316,  733.054,  759.087,
+                  894.206,  990.785,  1090.109, 1080.914, 1122.643, 1178.351,
+                  1260.531, 1273.514, 1288.339, 1327.543, 1353.863, 1414.509,
+                  1425.208, 1421.384, 1442.962, 1464.350, 1468.705, 1447.894,
+                  1457.628};
+    std::string fun("name=UserFunction,Formula=(b1 + b2*x + b3*x^2 + b4*x^3) / "
+                    "(1 + b5*x + b6*x^2 + b7*x^3),"
+                    "b1=1.2881396800E+03, b2=1.4910792535E+03, "
+                    "b3=5.8323836877E+02, b4=7.5416644291E+01, "
+                    "b5=9.6629502864E-01, b6=3.9797285797E-01, "
+                    "b7=4.9727297349E-02");
+    double sigma[] = {4.6647963344E+00,3.9571156086E+01,2.8698696102E+01,5.5675370270E+00,3.1333340687E-02,1.4984928198E-02,6.5842344623E-03};
+    size_t ndata = sizeof(x) / sizeof(double);
+    Tester tester;
+    tester.setTestCaseForErrorCalculations(ndata, x, y, fun);
+    tester.runAlgorithm();
+    tester.check1DSpectrum();
+    tester.checkErrors(sigma);
+  }
+
+  void test_errors_Chwirut1() {
+    double x[] = {
+        0.5,   0.5,   0.5,  0.5,  0.5,  0.5,  0.5,  0.5,   0.5,   0.5,   0.5,
+        0.5,   0.5,   0.5,  0.5,  0.5,  0.5,  0.5,  0.625, 0.625, 0.625, 0.625,
+        0.625, 0.75,  0.75, 0.75, 0.75, 0.75, 0.75, 0.75,  0.75,  0.75,  0.75,
+        0.75,  0.75,  0.75, 0.75, 0.75, 0.75, 0.75, 0.75,  0.875, 0.875, 0.875,
+        0.875, 0.875, 1,    1,    1,    1,    1,    1,     1,     1,     1,
+        1,     1,     1.25, 1.25, 1.25, 1.25, 1.25, 1.5,   1.5,   1.5,   1.5,
+        1.5,   1.5,   1.5,  1.5,  1.5,  1.5,  1.5,  1.75,  1.75,  1.75,  1.75,
+        1.75,  1.75,  1.75, 1.75, 1.75, 1.75, 1.75, 1.75,  1.75,  1.75,  1.75,
+        1.75,  2,     2,    2,    2,    2,    2,    2,     2,     2,     2,
+        2,     2,     2.25, 2.25, 2.25, 2.25, 2.25, 2.25,  2.25,  2.25,  2.25,
+        2.25,  2.5,   2.5,  2.5,  2.5,  2.5,  2.5,  2.5,   2.5,   2.5,   2.75,
+        2.75,  2.75,  2.75, 2.75, 2.75, 2.75, 3,    3,     3,     3,     3,
+        3,     3,     3,    3,    3,    3,    3,    3,     3,     3,     3,
+        3,     3,     3,    3,    3,    3,    3,    3,     3,     3,     3,
+        3,     3,     3,    3.25, 3.25, 3.25, 3.25, 3.25,  3.75,  3.75,  3.75,
+        3.75,  3.75,  3.75, 3.75, 4,    4,    4,    4,     4,     4,     4.25,
+        4.25,  4.25,  4.25, 4.25, 4.75, 4.75, 4.75, 4.75,  4.75,  5,     5,
+        5,     5,     5,    5,    5.25, 5.25, 5.25, 5.25,  5.25,  5.75,  5.75,
+        5.75,  5.75,  5.75, 6,    6,    6,    6,    6,     6,     6,     6,
+        6,     6,     6,    6,    6};
+    double y[] = {
+        76.8,    70.5,    78,     70.8,   90.6,    78,      74.1,    81.5,
+        81.3,    92.9,    75.8,   66.7,   81,      81.7,    78,      80,
+        80.7,    76.8,    79,     66,     76.9,    78.7,    67.3,    59.2,
+        60.9,    62,      60,     63.5,   59.9,    61.6,    59.5,    61,
+        63.8,    54.7,    71.6,   62,     61.3,    64.2,    62.4,    60.8,
+        64.5,    55.5,    63.6,   57.2,   58,      64.9,    48.5,    47.8,
+        48.8,    47.7,    53.2,   57.1,   40.8,    54,      47.5,    48,
+        50.3,    39.2,    42.5,   43.3,   41,      37.8,    29,      35.5,
+        35.2,    35.8,    32.9,   32,     32.5,    33.8,    39.8,    33.2,
+        30.7,    29.3625, 29.4,   28.4,   29.175,  25.5,    31.1,    26.85,
+        25.95,   28.9,    26.8,   28.95,  29.81,   29.3,    28.69,   29.8,
+        31.05,   21.67,   21,     20.32,  20,      22.57,   22.2,    25.7,
+        24,      29.8,    29.62,  25.99,  24.56,   21.15,   20.4,    23.6,
+        22.125,  21.4,    20.4,   23.775, 21.07,   20.2,    21,      21,
+        19.31,   16.95,   18.82,  16.3,   18.67,   17.7,    23.7,    23.81,
+        16.7625, 17.5125, 17.17,  16.65,  16.4625, 17.7375, 13.87,   15.64,
+        12.75,   13.95,   13.69,  15.64,  14.62,   15.19,   12.94,   13.12,
+        12.75,   13.31,   12.56,  13.35,  13.31,   11.81,   16.24,   13.87,
+        14.62,   17.7,    12.75,  13.84,  16.12,   12.07,   11.81,   18.07,
+        25.76,   15.56,   24.19,  13.12,  12.41,   13.2,    14.25,   12.525,
+        13.8,    9.67,    10.875, 9.45,   10.05,   10.39,   11.5875, 10.5375,
+        7.76,    8.17,    10.42,  11.25,  8.62,    8.74,    11.55,   9.15,
+        9.4125,  8.5875,  5.44,   8.175,  7.9125,  7.725,   7.125,   4.87,
+        7.35,    7.31,    9,      7.2,    7.87,    12.07,   8.55,    7.35,
+        6.1125,  4.01,    5.9625, 8.475,  5.9625,  3.75,    5.625,   6.1125,
+        8.025,   7.42,    6.67,   5.06,   4.87,    5.44,    6.64,    5.63,
+        5.44,    8.51,    8.74,   3.94,   5.63,    10.12};
+    std::string fun("name=UserFunction,Formula=exp(-b1*x)/"
+                    "(b2+b3*x),b1=1.9027818370E-01,b2=6.1314004477E-03,b3=1."
+                    "0530908399E-02");
+    double sigma[] = {2.1938557035E-02, 3.4500025051E-04, 7.9281847748E-04};
+    size_t ndata = sizeof(x) / sizeof(double);
+    Tester tester;
+    tester.setTestCaseForErrorCalculations(ndata, x, y, fun);
+    tester.runAlgorithm();
+    tester.check1DSpectrum();
+    tester.checkErrors(sigma);
+  }
+
 private:
   class Tester {
     // input parameters
@@ -174,6 +270,8 @@ private:
     double StartX;
     double EndX;
     bool ignoreInvalidData;
+    std::string outputName;
+    bool Weighted;
 
     void makeXValues() {
       size_t dlt = isHisto ? 1 : 0;
@@ -216,14 +314,17 @@ private:
     double chiSquaredDividedByDOF;
     double chiSquaredWeighted;
     double chiSquaredWeightedDividedByDOF;
+    ITableWorkspace_sptr errors;
+    ITableWorkspace_sptr pdfs;
     bool isExecuted;
 
     Tester(size_t np = 3, size_t nd = 10, bool histo = true)
         : nParams(np), nData(nd), isHisto(histo), xMin(-10), xMax(10),
           workspaceIndex(0), StartX(EMPTY_DBL()), EndX(EMPTY_DBL()),
-          ignoreInvalidData(false), chiSquared(-1), chiSquaredDividedByDOF(-1),
-          chiSquaredWeighted(-1), chiSquaredWeightedDividedByDOF(-1),
-          isExecuted(false) {
+          ignoreInvalidData(false), Weighted(false),
+          // output
+          chiSquared(-1), chiSquaredDividedByDOF(-1), chiSquaredWeighted(-1),
+          chiSquaredWeightedDividedByDOF(-1), isExecuted(false) {
       makeXValues();
     }
 
@@ -239,6 +340,10 @@ private:
         TS_ASSERT_THROWS_NOTHING(alg.setProperty("StartX", StartX));
         TS_ASSERT_THROWS_NOTHING(alg.setProperty("EndX", EndX));
       }
+      if (!outputName.empty()) {
+        TS_ASSERT_THROWS_NOTHING(alg.setProperty("Output", outputName));
+        TS_ASSERT_THROWS_NOTHING(alg.setProperty("Weighted", Weighted));
+      }
       TS_ASSERT_THROWS_NOTHING(alg.execute());
       isExecuted = alg.isExecuted();
       if (isExecuted) {
@@ -246,6 +351,10 @@ private:
         chiSquaredDividedByDOF = alg.getProperty("ChiSquaredDividedByDOF");
         chiSquaredWeighted = alg.getProperty("ChiSquaredWeighted");
         chiSquaredWeightedDividedByDOF = alg.getProperty("ChiSquaredWeightedDividedByDOF");
+        if (!outputName.empty()) {
+          errors = AnalysisDataService::Instance().retrieveWS<ITableWorkspace>("out_errors");
+          pdfs = AnalysisDataService::Instance().retrieveWS<ITableWorkspace>("out_pdf");
+        }
       }
     }
 
@@ -272,13 +381,12 @@ private:
       ignoreInvalidData = true;
     }
 
-    void set1DFunction() {
-      const std::string fun =
-          "name=UserFunction,Formula=a+b*x+c*x^2,a=1,b=1,c=1";
+    void set1DFunction(const std::string &fun =
+                      "name=UserFunction,Formula=a+b*x+c*x^2,a=1,b=1,c=1") {
       function = FunctionFactory::Instance().createInitialized(fun);
       if (nParams < function->nParams()) {
         const size_t dn = function->nParams() - nParams;
-        for(size_t i = 0; i < dn; ++i) {
+        for (size_t i = 0; i < dn; ++i) {
           function->fix(i);
         }
       } else {
@@ -321,6 +429,23 @@ private:
       eValues[6] = -1;
     }
 
+
+    void setTestCaseForErrorCalculations(size_t ndata, double *xarray, double *yarray, const std::string& fun) {
+      set1DFunction(fun);
+      nData = ndata;
+      isHisto = false;
+      xMin = xarray[0];
+      xMax = xarray[ndata-1];
+      xBins.resize(ndata);
+      xBins.assign(xarray, xarray + ndata);
+      xValues = xBins;
+      set1DSpectrumEmpty();
+      auto space = boost::dynamic_pointer_cast<Mantid::API::MatrixWorkspace>(workspace);
+      space->dataY(0).assign(yarray, yarray + ndata);
+      space->dataE(0).assign(ndata, 1.0);
+      outputName = "out";
+    }
+
     void check1DSpectrum() {
       TS_ASSERT(isExecuted);
       setDefaultXRange();
@@ -356,6 +481,18 @@ private:
     void checkFailed() {
       TS_ASSERT(!isExecuted);
     }
+
+    void checkErrors(double *sigma) {
+      size_t np = function->nParams();
+      TS_ASSERT_EQUALS(np, errors->rowCount());
+      for(size_t i = 0; i < np; ++i)
+      {
+        TS_ASSERT_LESS_THAN(fabs(errors->Double(i,6)), 1e-4);
+        TS_ASSERT_DELTA(errors->Double(i,1) / errors->Double(i,2), 1.0, 1e-5);
+        TS_ASSERT_DELTA(0.5 * (errors->Double(i,4) - errors->Double(i,3)) / errors->Double(i,5), 1.0, 2.0);
+        TS_ASSERT_DELTA(errors->Double(i,5) / sigma[i], 1.0, 0.01);
+      }
+    }
   };
 };
 
diff --git a/Code/Mantid/Framework/CurveFitting/test/CalculateMSVesuvioTest.h b/Code/Mantid/Framework/CurveFitting/test/CalculateMSVesuvioTest.h
index 894786a28f3ee02dabce82eeb24f9e1898ec6a32..a5b6f26e6fe0c4a108e95c170b8e87d24465d5b0 100644
--- a/Code/Mantid/Framework/CurveFitting/test/CalculateMSVesuvioTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/CalculateMSVesuvioTest.h
@@ -7,6 +7,7 @@
 
 #include "MantidCurveFitting/CalculateMSVesuvio.h"
 #include "MantidGeometry/Instrument/Goniometer.h"
+#include "MantidGeometry/Instrument/Detector.h"
 #include "MantidGeometry/Objects/ShapeFactory.h"
 
 #include "MantidTestHelpers/ComponentCreationHelper.h"
@@ -46,6 +47,19 @@ public:
 #endif
   }
 
+  void test_exec_with_flat_plate_sample_with_grouped_detectors()
+  {
+    auto alg = createTestAlgorithm(createFlatPlateSampleWS(true, true));
+    TS_ASSERT_THROWS_NOTHING(alg->execute());
+    TS_ASSERT(alg->isExecuted());
+// seed has different effect in boost version 1.56 and newer
+#if (BOOST_VERSION / 100000) == 1 && (BOOST_VERSION / 100 % 1000) >= 56
+    checkOutputValuesAsExpected(alg, 0.0111204555, 0.0019484356);
+#else
+    checkOutputValuesAsExpected(alg, 0.0099824991, 0.0020558473);
+#endif
+  }
+
   // ------------------------ Failure Cases -----------------------------------------
 
   void test_setting_input_workspace_not_in_tof_throws_invalid_argument()
@@ -138,9 +152,9 @@ private:
     return alg;
   }
 
-  Mantid::API::MatrixWorkspace_sptr createFlatPlateSampleWS(const bool detShape = true)
+  Mantid::API::MatrixWorkspace_sptr createFlatPlateSampleWS(const bool detShape = true, const bool groupedDets = false)
   {
-    auto testWS = createTestWorkspace(detShape);
+    auto testWS = createTestWorkspace(detShape, groupedDets);
     // Sample shape
     const double halfHeight(0.05), halfWidth(0.05), halfThick(0.0025);
     std::ostringstream sampleShapeXML;
@@ -157,7 +171,7 @@ private:
   }
 
 
-  Mantid::API::MatrixWorkspace_sptr createTestWorkspace(const bool detShape = true)
+  Mantid::API::MatrixWorkspace_sptr createTestWorkspace(const bool detShape = true, const bool groupedDets = false)
   {
     using namespace Mantid::Geometry;
     using namespace Mantid::Kernel;
@@ -181,8 +195,25 @@ private:
         "<algebra val=\"shape\" />";
       const auto pos = ws2d->getDetector(0)->getPos();
       auto instrument = ComptonProfileTestHelpers::createTestInstrumentWithFoilChanger(1, pos, shapeXML);
+
+      if(groupedDets)
+      {
+        // Add another detector in the same position as the first
+        auto shape = ShapeFactory().createShape(shapeXML);
+        Mantid::Geometry::Detector *det2 = new Detector("det1", 2, shape, NULL);
+        det2->setPos(instrument->getDetector(1)->getPos());
+        instrument->add(det2);
+        instrument->markAsDetector(det2);
+
+        // Group the detectors
+        ws2d->getSpectrum(0)->addDetectorID(2);
+      }
+
       ws2d->setInstrument(instrument);
+
       ComptonProfileTestHelpers::addResolutionParameters(ws2d, 1);
+      if(groupedDets)
+        ComptonProfileTestHelpers::addResolutionParameters(ws2d, 2);
       ComptonProfileTestHelpers::addFoilResolution(ws2d, "foil-pos0");
     }
 
@@ -194,8 +225,13 @@ private:
   {
     using Mantid::API::MatrixWorkspace_sptr;
     const size_t checkIdx = 100;
+    // OS X and GCC>=5 seems to do a terrible job with keep the same precision here.
+#if defined(__APPLE__) || (__GNUC__ >= 5)
+    const double tolerance(1e-4);
+#else
     const double tolerance(1e-8);
-    
+#endif
+
     // Values for total scattering
     MatrixWorkspace_sptr totScatter = alg->getProperty("TotalScatteringWS");
     TS_ASSERT(totScatter);
diff --git a/Code/Mantid/Framework/CurveFitting/test/ChebfunBaseTest.h b/Code/Mantid/Framework/CurveFitting/test/ChebfunBaseTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..ab6c4e4ad037f44800a130249dc1644d650e31e3
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/test/ChebfunBaseTest.h
@@ -0,0 +1,250 @@
+#ifndef CHEBFUNBASETEST_H_
+#define CHEBFUNBASETEST_H_
+
+#include <cxxtest/TestSuite.h>
+
+#include "MantidCurveFitting/ChebfunBase.h"
+#include <cmath>
+
+using namespace Mantid;
+using namespace Mantid::API;
+using namespace Mantid::CurveFitting;
+
+double Sin(double x) { return sin(x); }
+double MinusSin(double x) { return -sin(x); }
+double Cos(double x) { return cos(x); }
+double SinCos(double x) { return sin(x) + cos(x); }
+double DSinCos(double x) { return -sin(x) + cos(x); }
+double Linear(double x) { return 3.3 + 2.6 * x; }
+double Quadratic(double x) { return 33 + 2.6 * x - 3 * x * x; }
+
+class ChebfunBaseTest : public CxxTest::TestSuite {
+public:
+
+  void testConstructor()
+  {
+    ChebfunBase base(10,-1.0,1.0);
+    TS_ASSERT_EQUALS(base.order(),10);
+    TS_ASSERT_EQUALS(base.size(),11);
+    TS_ASSERT_EQUALS(base.startX(),-1);
+    TS_ASSERT_EQUALS(base.endX(),1);
+    TS_ASSERT_EQUALS(base.xPoints().size(),11);
+    TS_ASSERT_EQUALS(base.width(),2);
+  }
+
+  void testFit()
+  {
+    ChebfunBase base( 10, -M_PI, M_PI );
+    auto p = base.fit(Sin);
+    for(size_t i = 0; i < p.size(); ++i)
+    {
+      TS_ASSERT_EQUALS(p[i], sin(base.xPoints()[i]));
+    }
+  }
+
+  void testEval_Sin()
+  {
+    do_test_eval( Sin, -M_PI, M_PI, 10 );
+  }
+
+  void testEval_Cos()
+  {
+    do_test_eval( Cos, -M_PI, M_PI, 10 );
+  }
+
+  void testEval_SinCos()
+  {
+    do_test_eval( SinCos, -M_PI, M_PI, 10 );
+  }
+
+  void testEvalVector_1()
+  {
+    double x[] = {-M_PI, -1.5, 0., 1.5, M_PI};
+    do_test_eval_vector(SinCos, 10, -M_PI, M_PI, x, sizeof(x)/sizeof(double));
+  }
+
+  void testEvalVector_2()
+  {
+    double x[] = {-M_PI, -M_PI, -1.5, -1.5, 0., 0., 1.5, 1.5, M_PI, M_PI};
+    do_test_eval_vector(SinCos, 10, -M_PI, M_PI, x, sizeof(x)/sizeof(double));
+  }
+
+  void testEvalVector_3() {
+    double x[] = {-3., -2.45454545, -1.90909091, -1.36363636,
+                  -0.81818182, -0.27272727, 0.27272727,  0.81818182,
+                  1.36363636,  1.90909091,  2.45454545,  3.};
+    do_test_eval_vector(SinCos, 10, -M_PI, M_PI, x, sizeof(x) / sizeof(double));
+  }
+
+  void testEvalVector_4()
+  {
+    double x[] = {-2*M_PI, -M_PI, -1.5, 0., 1.5, M_PI, 2*M_PI};
+    do_test_eval_vector(SinCos, 10, -M_PI, M_PI, x, sizeof(x)/sizeof(double));
+  }
+
+  void test_bestFit_Sin()
+  {
+    do_test_bestFit( Sin, -M_PI, M_PI, 20 );
+  }
+
+  void test_bestFit_Cos()
+  {
+    do_test_bestFit( Cos, -M_PI, M_PI, 21 );
+  }
+
+  void test_bestFit_SinCos()
+  {
+    do_test_bestFit( SinCos, -M_PI, M_PI, 21 );
+  }
+
+  void test_bestFit_Linear()
+  {
+    do_test_bestFit( Linear, -2, 10, 2 );
+  }
+
+  void test_bestFit_Quadratic()
+  {
+    do_test_bestFit( Quadratic, -4, 4, 3 );
+  }
+
+  void test_integrate_Sin()
+  {
+    do_test_integrate( Sin, -M_PI, M_PI, 0.0 );
+    do_test_integrate( Sin, 0.0, M_PI, 2.0 );
+  }
+
+  void test_integrate_Cos()
+  {
+    do_test_integrate( Cos, -M_PI, M_PI, 0.0 );
+    do_test_integrate( Cos, 0.0, M_PI, 0.0 );
+    do_test_integrate( Cos, 0.0, M_PI/2, 1.0 );
+  }
+
+  void test_derivative_Sin()
+  {
+    do_test_derivative(Sin,-M_PI, M_PI, Cos);
+  }
+
+  void test_derivative_Cos()
+  {
+    do_test_derivative(Cos,-M_PI, M_PI, MinusSin);
+  }
+
+  void test_derivative_SinCos()
+  {
+    do_test_derivative(SinCos,-M_PI, M_PI, DSinCos);
+  }
+
+  void test_roots_Linear()
+  {
+    do_test_roots(Linear,-4,4,1);
+    do_test_roots(Linear,0,4,0);
+  }
+
+  void test_roots_Quadratic()
+  {
+    do_test_roots(Quadratic,-4,4,2);
+  }
+
+  void test_roots_Sin()
+  {
+    do_test_roots(Sin,-M_PI,M_PI,3, 1e-5);
+  }
+
+  void test_roots_Cos()
+  {
+    do_test_roots(Cos,-M_PI,M_PI,2, 1e-9);
+  }
+
+  void test_roots_SinCos()
+  {
+    do_test_roots(SinCos,-M_PI,M_PI,2, 1e-5);
+  }
+
+private:
+
+  void do_test_eval(std::function<double(double)> fun, double start, double end, size_t n)
+  {
+    ChebfunBase base( n, start, end );
+    auto p = base.fit(fun);
+    auto x = base.linspace(2*n);
+    for(size_t i = 0; i < x.size(); ++i)
+    {
+      double xi = x[i];
+      TS_ASSERT_DELTA(base.eval(xi,p), fun(xi), 1e-4);
+    }
+  }
+
+  void do_test_eval_vector(std::function<double(double)> fun, size_t n, double start, double end, const double* xarr, size_t narr)
+  {
+    std::vector<double> x;
+    x.assign(xarr,xarr+narr);
+
+    ChebfunBase base( n, start, end );
+    auto p = base.fit(fun);
+    auto y = base.evalVector(x,p);
+    TS_ASSERT_EQUALS(y.size(), x.size());
+    for(size_t i = 0; i < x.size(); ++i)
+    {
+      double xi = x[i];
+      if ( xi < base.startX() || xi > base.endX() )
+      {
+        TS_ASSERT_EQUALS( y[i], 0.0 );
+      }
+      else
+      {
+        //std::cerr << xi << ' ' << y[i] << ' ' << sin(xi) + cos(xi) << std::endl;
+        TS_ASSERT_DELTA(y[i], sin(xi) + cos(xi), 1e-4);
+      }
+    }
+  }
+
+  void do_test_bestFit(std::function<double(double)> fun, double start, double end, size_t expected_n)
+  {
+    std::vector<double> p,a;
+    auto base = ChebfunBase::bestFit(start, end, fun, p, a);
+    auto x = base->linspace(2*base->size());
+    for(size_t i = 0; i < x.size(); ++i)
+    {
+      double xi = x[i];
+      TS_ASSERT_DELTA(base->eval(xi,p), fun(xi), 1e-14);
+    }
+    TS_ASSERT_EQUALS( base->size(), expected_n );
+  }
+
+  void do_test_integrate(std::function<double(double)> fun, double start, double end, double expected_integral)
+  {
+    std::vector<double> p,a;
+    auto base = ChebfunBase::bestFit(start, end, fun, p, a);
+    TS_ASSERT_DELTA( base->integrate(p), expected_integral, 1e-14 );
+  }
+
+  void do_test_derivative(std::function<double(double)> fun, double start, double end,std::function<double(double)> deriv)
+  {
+    std::vector<double> p,a,dp,da;
+    auto base = ChebfunBase::bestFit(start, end, fun, p, a);
+    base->derivative(a,da);
+    dp = base->calcP(da);
+    auto x = base->linspace(2*base->size());
+    for(size_t i = 0; i < x.size(); ++i)
+    {
+      double xi = x[i];
+      //std::cerr << xi << ' ' << base->eval(xi,dp) - Cos(xi) << std::endl;
+      TS_ASSERT_DELTA(base->eval(xi,dp), deriv(xi), 1e-13);
+    }
+  }
+
+  void do_test_roots(std::function<double(double)> fun, double start, double end, size_t n_roots, double tol = 1e-13)
+  {
+    std::vector<double> p,a;
+    auto base = ChebfunBase::bestFit(start, end, fun, p, a);
+    auto roots = base->roots(a);
+    TS_ASSERT_EQUALS( n_roots, roots.size() );
+    for(size_t i = 0; i < roots.size(); ++i)
+    {
+      TS_ASSERT_DELTA(base->eval(roots[i],p), 0.0, tol);
+    }
+  }
+};
+
+#endif /*CHEBFUNBASETEST_H_*/
diff --git a/Code/Mantid/Framework/CurveFitting/test/ComptonProfileTest.h b/Code/Mantid/Framework/CurveFitting/test/ComptonProfileTest.h
index b017b6a3d043af8b3da3cb0fe81ecdafebea77fe..dc4c6aa65d828af4f71783ffa7c3bc8a390bec58 100644
--- a/Code/Mantid/Framework/CurveFitting/test/ComptonProfileTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/ComptonProfileTest.h
@@ -4,6 +4,7 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidCurveFitting/ComptonProfile.h"
+#include <boost/make_shared.hpp>
 
 using Mantid::CurveFitting::ComptonProfile;
 
diff --git a/Code/Mantid/Framework/CurveFitting/test/EvaluateFunctionTest.h b/Code/Mantid/Framework/CurveFitting/test/EvaluateFunctionTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..6e83db7e8d7a48353b02368779116c2378f751a9
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/test/EvaluateFunctionTest.h
@@ -0,0 +1,277 @@
+#ifndef MANTID_CURVEFITTING_EVALUATEFUNCTIONTEST_H_
+#define MANTID_CURVEFITTING_EVALUATEFUNCTIONTEST_H_
+
+#include <cxxtest/TestSuite.h>
+
+#include "MantidCurveFitting/EvaluateFunction.h"
+#include "MantidAPI/AlgorithmManager.h"
+#include "MantidAPI/AnalysisDataService.h"
+#include "MantidAPI/FunctionFactory.h"
+#include "MantidAPI/FunctionDomain1D.h"
+#include "MantidAPI/FunctionValues.h"
+#include "MantidAPI/IFunction1D.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDIterator.h"
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidKernel/EmptyValues.h"
+
+using Mantid::CurveFitting::EvaluateFunction;
+using namespace Mantid;
+using namespace Mantid::API;
+
+class EvaluateFunctionTest : 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 EvaluateFunctionTest *createSuite() {
+    return new EvaluateFunctionTest();
+  }
+  static void destroySuite(EvaluateFunctionTest *suite) { delete suite; }
+
+  void test_Init() {
+    EvaluateFunction alg;
+    TS_ASSERT_THROWS_NOTHING(alg.initialize())
+    TS_ASSERT(alg.isInitialized())
+  }
+
+  void test_1D_histo() {
+    Tester1D tester;
+    tester.setHistograms();
+    tester.runAlgorithm();
+    tester.checkResult();
+  }
+
+  void test_1D_point_data() {
+    Tester1D tester;
+    tester.setPointData();
+    tester.runAlgorithm();
+    tester.checkResult();
+  }
+
+  void test_1D_point_data_range() {
+    Tester1D tester;
+    tester.setPointData();
+    tester.setRange();
+    tester.runAlgorithm();
+    tester.checkResult();
+  }
+
+  void test_1D_histo_index() {
+    Tester1D tester;
+    tester.setHistograms();
+    tester.setWorkspaceIndex();
+    tester.runAlgorithm();
+    tester.checkResult();
+  }
+
+  void test_1D_point_data_index() {
+    Tester1D tester;
+    tester.setPointData();
+    tester.setWorkspaceIndex();
+    tester.runAlgorithm();
+    tester.checkResult();
+  }
+
+  void test_1D_point_data_range_index() {
+    Tester1D tester;
+    tester.setPointData();
+    tester.setRange();
+    tester.setWorkspaceIndex();
+    tester.runAlgorithm();
+    tester.checkResult();
+  }
+
+  void test_MD_histo() {
+    int nx = 5;
+    int ny = 6;
+    std::vector<double> signal(nx*ny);
+    std::vector<double> extents(4);
+    extents[0] = -3; extents[1] = 3;
+    extents[2] = -3; extents[3] = 3;
+    std::vector<int> nBins(2);
+    nBins[0] = nx;
+    nBins[1] = ny;
+
+    auto alg = AlgorithmManager::Instance().create("CreateMDHistoWorkspace");
+    alg->initialize();
+    alg->setProperty("Dimensionality",2);
+    alg->setProperty("SignalInput",signal);
+    alg->setProperty("ErrorInput",signal);
+    alg->setProperty("Extents",extents);
+    alg->setProperty("NumberOfBins",nBins);
+    alg->setProperty("Names","x,y");
+    alg->setProperty("Units","U,V");
+    alg->setProperty("OutputWorkspace","EvaluateFunction_inWS");
+    alg->execute();
+    auto inWS = AnalysisDataService::Instance().retrieve("EvaluateFunction_inWS");
+    TS_ASSERT(inWS);
+
+    alg = AlgorithmManager::Instance().create("EvaluateFunction");
+    alg->initialize();
+    alg->setPropertyValue("Function", "name=UserFunctionMD,Formula=sin(x)*sin(y)");
+    alg->setProperty("InputWorkspace", "EvaluateFunction_inWS");
+    alg->setProperty("OutputWorkspace", "EvaluateFunction_outWS");
+    alg->execute();
+    auto outWS = AnalysisDataService::Instance().retrieve("EvaluateFunction_outWS");
+    TS_ASSERT(outWS);
+
+    auto mdws =  AnalysisDataService::Instance().retrieveWS<IMDHistoWorkspace>("EvaluateFunction_outWS");
+    TS_ASSERT(mdws);
+
+    auto iter = mdws->createIterator();
+    TS_ASSERT(iter);
+    if (!iter)
+      return;
+    do {
+      auto xy = iter->getCenter();
+      auto signal = iter->getSignal();
+      double value = sin(xy[0])*sin(xy[1]);
+      if (value == 0.0) {
+        TS_ASSERT_DELTA(signal, 0.0, 1e-14);
+      } else {
+        // Precision is lost due to the use of floats in MD workspaces.
+        TS_ASSERT_DELTA((signal-value)/value, 0.0, 1e-6);
+      }
+    } while (iter->next());
+    delete iter;
+  }
+
+private:
+
+  class Tester1D {
+    // values defining the workspace
+    size_t nSpec;
+    size_t nData;
+    bool isHisto;
+    double xMin;
+    double xMax;
+    std::vector<double> xBins;
+
+    // values for algorithm input properties
+    int workspaceIndex;
+    double StartX;
+    double EndX;
+    MatrixWorkspace_sptr workspace;
+
+  public:
+    IFunction1D_sptr function;
+    std::vector<double> xValues; // values at which the function is evaluated
+
+  private:
+    void makeXValues() {
+      size_t dlt = isHisto ? 1 : 0;
+      xBins.resize(nData + dlt);
+      double dx = (xMax - xMin) / double(xBins.size() - 1);
+      for (size_t i = 0; i < xBins.size(); ++i) {
+        xBins[i] = xMin + double(i) * dx;
+      }
+
+      if ( workspaceIndex > 0 ) {
+        std::transform(xBins.begin(), xBins.end(), xBins.begin(),
+                       std::bind2nd(std::plus<double>(), double(workspaceIndex)));
+      }
+
+      if (isHisto) {
+        xValues.resize(nData);
+        std::transform(xBins.begin(), xBins.end() - 1, xValues.begin(),
+                       std::bind2nd(std::plus<double>(), dx / 2));
+      } else {
+        xValues = xBins;
+      }
+    }
+
+    void makeWorkspace() {
+        size_t dn = isHisto ? 1 : 0;
+        workspace = WorkspaceFactory::Instance().create("Workspace2D", nSpec,
+                                                         nData + dn, nData);
+        workspace->dataX(workspaceIndex).assign(xBins.begin(), xBins.end());
+    }
+
+    void makeFunction() {
+      const std::string fun =
+          "name=ExpDecay,Height=50,Lifetime=1";
+      function = boost::dynamic_pointer_cast<IFunction1D>(FunctionFactory::Instance().createInitialized(fun));
+      if ( !function ) {
+        TS_FAIL( "A 1D function is expected." );
+      }
+    }
+
+    void setDefaultXRange() {
+      if (StartX == EMPTY_DBL())
+        StartX = xBins.front() - 0.001;
+      if (EndX == EMPTY_DBL()) {
+        EndX = xBins.back() + 0.001;
+      }
+    }
+
+  public:
+    // Outputs
+    bool isExecuted;
+    MatrixWorkspace_sptr outputWorkspace;
+
+    Tester1D() :nSpec(2), nData(100), isHisto(true),xMin(0.0),xMax(30),
+      workspaceIndex(0), StartX(EMPTY_DBL()), EndX(EMPTY_DBL())
+    {}
+
+    void setHistograms() {
+      isHisto = true;
+    }
+
+    void setPointData() {
+      isHisto = false;
+    }
+
+    void setRange() {
+      StartX = 2.3;
+      EndX = 10;
+    }
+
+    void setWorkspaceIndex() {
+      workspaceIndex = 1;
+    }
+
+    void runAlgorithm() {
+      makeXValues();
+      makeWorkspace();
+      makeFunction();
+
+      EvaluateFunction alg;
+      TS_ASSERT_THROWS_NOTHING(alg.initialize())
+      TS_ASSERT(alg.isInitialized())
+      TS_ASSERT_THROWS_NOTHING(alg.setProperty("Function", boost::dynamic_pointer_cast<IFunction>(function)));
+      TS_ASSERT_THROWS_NOTHING(alg.setProperty("InputWorkspace", workspace));
+      TS_ASSERT_THROWS_NOTHING(alg.setProperty("WorkspaceIndex", workspaceIndex));
+      TS_ASSERT_THROWS_NOTHING(alg.setProperty("StartX", StartX));
+      TS_ASSERT_THROWS_NOTHING(alg.setProperty("EndX", EndX));
+      TS_ASSERT_THROWS_NOTHING(alg.setProperty("OutputWorkspace", "EvaluateFunction_outWS"));
+      TS_ASSERT_THROWS_NOTHING(alg.execute());
+      isExecuted = alg.isExecuted();
+      if (isExecuted) {
+        outputWorkspace = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>("EvaluateFunction_outWS");
+      }
+      AnalysisDataService::Instance().clear();
+    }
+
+    void checkResult() {
+      TS_ASSERT( isExecuted );
+      if (!isExecuted) return;
+      setDefaultXRange();
+      TS_ASSERT_DIFFERS( nData, 0 );
+      auto &Y = outputWorkspace->readY(1);
+      size_t j = 0;
+      for(size_t i = 0; i < nData; ++i) {
+        if (xValues[i] <= StartX || xValues[i] >= EndX ) continue;
+        FunctionDomain1DVector x(xValues[i]);
+        FunctionValues y(x);
+        function->function(x, y);
+        TS_ASSERT_DIFFERS( y[0], 0.0 );
+        double tmp = (y[0] - Y[j])/y[0];
+        TS_ASSERT_DELTA( tmp, 0.0, 1e-14 );
+        ++j;
+      }
+    }
+
+  };
+};
+
+#endif /* MANTID_CURVEFITTING_EVALUATEFUNCTIONTEST_H_ */
diff --git a/Code/Mantid/Framework/CurveFitting/test/FitTest.h b/Code/Mantid/Framework/CurveFitting/test/FitTest.h
index bb395cbee3c01076cee4629ffc234ff7b38bff74..0c2cb89b56b5a9330fef024f4b592bf7b0b6a374 100644
--- a/Code/Mantid/Framework/CurveFitting/test/FitTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/FitTest.h
@@ -4,133 +4,257 @@
 #include <cxxtest/TestSuite.h>
 #include "MantidTestHelpers/FakeObjects.h"
 
-#include "MantidCurveFitting/Fit.h"
-
+#include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/WorkspaceProperty.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/IFuncMinimizer.h"
 #include "MantidAPI/FuncMinimizerFactory.h"
+#include "MantidCurveFitting/Fit.h"
 
 using namespace Mantid;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::API;
 
-namespace
-{
-    class TestMinimizer : public API::IFuncMinimizer
-    {
-    public:
-      /// Constructor setting a value for the relative error acceptance (default=0.01)
-      TestMinimizer()
-      {
-          declareProperty(new API::WorkspaceProperty<API::MatrixWorkspace>("SomeOutput","abc",Kernel::Direction::Output),
-              "Name of the output Workspace holding some output.");
-      }
+namespace {
+class TestMinimizer : public API::IFuncMinimizer {
+public:
+  /// Constructor setting a value for the relative error acceptance
+  /// (default=0.01)
+  TestMinimizer() {
+    declareProperty(new API::WorkspaceProperty<API::MatrixWorkspace>(
+                        "SomeOutput", "abc", Kernel::Direction::Output),
+                    "Name of the output Workspace holding some output.");
+  }
 
-      /// Overloading base class methods.
-      std::string name()const{return "TestMinimizer";}
-      /// Do one iteration.
-      bool iterate(size_t iter)
-      {
-          m_data[iter] = iter;
-
-          if ( iter >= m_data.size() - 1 )
-          {
-              API::MatrixWorkspace_sptr ws = API::WorkspaceFactory::Instance().create("Workspace2D",1,m_data.size(),m_data.size());
-              auto & Y = ws->dataY(0);
-              for(size_t i = 0; i < Y.size(); ++i)
-              {
-                Y[i] = static_cast<double>(m_data[i]);
-              }
-              setProperty("SomeOutput",ws);
-              return false;
-          }
-          return true;
-      }
+  /// Overloading base class methods.
+  std::string name() const { return "TestMinimizer"; }
+  /// Do one iteration.
+  bool iterate(size_t iter) {
+    m_data[iter] = iter;
 
-      /// Return current value of the cost function
-      double costFunctionVal() {return 0.0;}
-      /// Initialize minimizer.
-      virtual void initialize(API::ICostFunction_sptr, size_t maxIterations = 0)
-      {
-            m_data.resize(maxIterations);
+    if (iter >= m_data.size() - 1) {
+      API::MatrixWorkspace_sptr ws = API::WorkspaceFactory::Instance().create(
+          "Workspace2D", 1, m_data.size(), m_data.size());
+      auto &Y = ws->dataY(0);
+      for (size_t i = 0; i < Y.size(); ++i) {
+        Y[i] = static_cast<double>(m_data[i]);
       }
+      setProperty("SomeOutput", ws);
+      return false;
+    }
+    return true;
+  }
 
-    private:
-      std::vector<size_t> m_data;
-    };
+  /// Return current value of the cost function
+  double costFunctionVal() { return 0.0; }
+  /// Initialize minimizer.
+  virtual void initialize(API::ICostFunction_sptr, size_t maxIterations = 0) {
+    m_data.resize(maxIterations);
+  }
+
+private:
+  std::vector<size_t> m_data;
+};
 
-    DECLARE_FUNCMINIMIZER(TestMinimizer,TestMinimizer)
+DECLARE_FUNCMINIMIZER(TestMinimizer, TestMinimizer)
 }
 
-class FitTest : public CxxTest::TestSuite
-{
+class FitTest : 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 FitTest *createSuite() { return new FitTest(); }
-  static void destroySuite( FitTest *suite ) { delete suite; }
-  
-  FitTest()
-  {
+  static void destroySuite(FitTest *suite) { delete suite; }
+
+  FitTest() {
     // need to have DataObjects loaded
     FrameworkManager::Instance();
   }
 
-
   // Test that Fit copies minimizer's output properties to Fit
   // Test that minimizer's iterate(iter) method is called maxIteration times
   //  and iter passed to iterate() has values within 0 <= iter < maxIterations
-  void test_minimizer_output()
-  {
-      API::MatrixWorkspace_sptr ws = API::WorkspaceFactory::Instance().create("Workspace2D",1,1,1);
-      Fit fit;
-      fit.initialize();
-
-      fit.setProperty("Function","name=LinearBackground");
-      fit.setProperty("InputWorkspace",ws);
-      fit.setProperty("MaxIterations",99);
-      fit.setProperty("Minimizer","TestMinimizer,SomeOutput=MinimizerOutput");
-      fit.setProperty("CreateOutput",true);
-
-      fit.execute();
-      TS_ASSERT( fit.existsProperty("SomeOutput") );
-      TS_ASSERT_EQUALS( fit.getPropertyValue("SomeOutput"), "MinimizerOutput");
-      TS_ASSERT( API::AnalysisDataService::Instance().doesExist("MinimizerOutput") );
-
-      API::MatrixWorkspace_sptr outWS = API::AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>("MinimizerOutput");
-      TS_ASSERT( outWS );
-      auto &y = outWS->readY(0);
-      TS_ASSERT_EQUALS( y.size(), 99 );
-      for(size_t iter = 0; iter < 99; ++iter)
-      {
-          TS_ASSERT_EQUALS( y[iter], static_cast<double>(iter) );
-      }
+  void test_minimizer_output() {
+    API::MatrixWorkspace_sptr ws =
+        API::WorkspaceFactory::Instance().create("Workspace2D", 1, 1, 1);
+    Fit fit;
+    fit.initialize();
+
+    fit.setProperty("Function", "name=LinearBackground");
+    fit.setProperty("InputWorkspace", ws);
+    fit.setProperty("MaxIterations", 99);
+    fit.setProperty("Minimizer", "TestMinimizer,SomeOutput=MinimizerOutput");
+    fit.setProperty("CreateOutput", true);
+
+    fit.execute();
+    TS_ASSERT(fit.existsProperty("SomeOutput"));
+    TS_ASSERT_EQUALS(fit.getPropertyValue("SomeOutput"), "MinimizerOutput");
+    TS_ASSERT(
+        API::AnalysisDataService::Instance().doesExist("MinimizerOutput"));
+
+    API::MatrixWorkspace_sptr outWS =
+        API::AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+            "MinimizerOutput");
+    TS_ASSERT(outWS);
+    auto &y = outWS->readY(0);
+    TS_ASSERT_EQUALS(y.size(), 99);
+    for (size_t iter = 0; iter < 99; ++iter) {
+      TS_ASSERT_EQUALS(y[iter], static_cast<double>(iter));
+    }
 
-      API::AnalysisDataService::Instance().clear();
+    API::AnalysisDataService::Instance().clear();
   }
 
-  // Test that minimizer's output is'n passed to Fit if no other output is created.
+  // Test that minimizer's output is'n passed to Fit if no other output is
+  // created.
   // Other output are: fitting parameters table, calculated values.
-  // To create output either CreateOutput must be set to true or Output be set to non-empty string
-  void test_minimizer_output_not_passed_to_Fit()
-  {
-      API::MatrixWorkspace_sptr ws = API::WorkspaceFactory::Instance().create("Workspace2D",1,1,1);
-      Fit fit;
-      fit.initialize();
-
-      fit.setProperty("Function","name=LinearBackground");
-      fit.setProperty("InputWorkspace",ws);
-      fit.setProperty("MaxIterations",99);
-      fit.setProperty("Minimizer","TestMinimizer,SomeOutput=MinimizerOutput");
-
-      fit.execute();
-      TS_ASSERT( !fit.existsProperty("SomeOutput") );
-      TS_ASSERT( !API::AnalysisDataService::Instance().doesExist("MinimizerOutput") );
+  // To create output either CreateOutput must be set to true or Output be set
+  // to non-empty string
+  void test_minimizer_output_not_passed_to_Fit() {
+    API::MatrixWorkspace_sptr ws =
+        API::WorkspaceFactory::Instance().create("Workspace2D", 1, 1, 1);
+    Fit fit;
+    fit.initialize();
+
+    fit.setProperty("Function", "name=LinearBackground");
+    fit.setProperty("InputWorkspace", ws);
+    fit.setProperty("MaxIterations", 99);
+    fit.setProperty("Minimizer", "TestMinimizer,SomeOutput=MinimizerOutput");
+
+    fit.execute();
+    TS_ASSERT(!fit.existsProperty("SomeOutput"));
+    TS_ASSERT(
+        !API::AnalysisDataService::Instance().doesExist("MinimizerOutput"));
+  }
+};
+
+class FitTestPerformance : 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 FitTestPerformance *createSuite() { return new FitTestPerformance(); }
+  static void destroySuite(FitTestPerformance *suite) { delete suite; }
+
+  FitTestPerformance() {
+    m_smoothWS = generateSmoothCurveWorkspace();
+    m_onePeakWS = generatePeaksCurveWorkspace();
+  }
+
+  // Equivalent Python script. Fit a back-to-back exponential:
+  // Fit(InputWorkspace=pws, Function='name=BackToBackExponential')
+  void test_peaks_fit() {
+    Fit fit;
+    fit.setChild(true);
+    fit.initialize();
+
+    // example X0, S values after a good fit are 10079.0, 404.5
+    fit.setProperty("Function", "name=BackToBackExponential, X0=8500, S=800");
+    fit.setProperty("InputWorkspace", m_onePeakWS);
+    // fit.setProperty("MaxIterations", 99);
+    fit.setProperty("CreateOutput", true);
+
+    fit.execute();
+    TSM_ASSERT("The algorithm didn't execute correctly", fit.isExecuted());
+
+    const double chi2 = fit.getProperty("OutputChi2overDoF");
+    TSM_ASSERT_DELTA("The difference between data and fit is too big", chi2, 0.2,
+                     0.05);
+  }
+
+  // Equivalent Python script. Fit with a BSpline function:
+  // Fit(InputWorkspace=ws, Function='name=BSpline, Order=40')
+  void test_smooth_curve_fit() {
+    Fit fit;
+    fit.setChild(true);
+    fit.initialize();
+
+    // From a quick test, order 30 => ~2.5s; order 40 => ~6s; order 50 =>
+    // ~14s
+    fit.setProperty("Function", "name=BSpline, Order=40, StartX=0, EndX=10");
+    fit.setProperty("InputWorkspace", m_smoothWS);
+    fit.setProperty("CreateOutput", true);
+
+    fit.execute();
+    TSM_ASSERT("The algorithm didn't execute correctly", fit.isExecuted());
+
+    const double chi2 = fit.getProperty("OutputChi2overDoF");
+    TSM_ASSERT_DELTA("The difference between data and fit is too big", chi2, 0.08,
+                     0.02);
+  }
+
+private:
+  // Equivalent python script. Create data with a peak and a bit of noise:
+  // pws = CreateSampleWorkspace(Function="User Defined",
+  // UserDefinedFunction="name=BackToBackExponential, I=15000, A=1, B=1.2,
+  // X0=10000, S=400", NumBanks=1, BankPixelWidth=1, Random=True)
+  API::MatrixWorkspace_sptr generatePeaksCurveWorkspace() {
+    Mantid::API::IAlgorithm_sptr sampleAlg =
+        Mantid::API::AlgorithmManager::Instance().create(
+            "CreateSampleWorkspace");
+    sampleAlg->initialize();
+    sampleAlg->setChild(true);
+    sampleAlg->setProperty("Function", "User Defined");
+    sampleAlg->setProperty(
+        "UserDefinedFunction",
+        "name=BackToBackExponential, I=15000, A=1, B=1.2, X0=10000, S=400");
+    sampleAlg->setProperty("NumBanks", 1);
+    sampleAlg->setProperty("BankPixelWidth", 1);
+    sampleAlg->setProperty("XMin", 0.0);
+    sampleAlg->setProperty("XMax", 100.0);
+    sampleAlg->setProperty("BinWidth", 0.1);
+    sampleAlg->setProperty("Random", true);
+    sampleAlg->setPropertyValue("OutputWorkspace", "sample_peak_curve_ws");
+
+    sampleAlg->execute();
+    TSM_ASSERT("The algorithm didn't execute correctly",
+               sampleAlg->isExecuted());
+    TS_ASSERT(sampleAlg->existsProperty("OutputWorkspace"));
+
+    API::MatrixWorkspace_sptr ws = sampleAlg->getProperty("OutputWorkspace");
+    TS_ASSERT(ws);
+
+    return ws;
+  }
+
+  // Equivalent python script. Create smooth-ish data curve:
+  // ws = CreateSampleWorkspace(Function="User Defined",
+  // UserDefinedFunction="name=LinearBackground, A0=0.4, A1=0.4; name=Gaussian,
+  // PeakCentre=1.3, Height=7, Sigma=1.7; name=Gaussian, PeakCentre=5,
+  // Height=10, Sigma=0.7; name=Gaussian, PeakCentre=8, Height=9, Sigma=1.8",
+  // NumBanks=1, BankPixelWidth=1, XMin=0, XMax=10, BinWidth=0.01, Random=True)
+  API::MatrixWorkspace_sptr generateSmoothCurveWorkspace() {
+    Mantid::API::IAlgorithm_sptr sampleAlg =
+        Mantid::API::AlgorithmManager::Instance().create(
+            "CreateSampleWorkspace");
+    sampleAlg->initialize();
+    sampleAlg->setChild(true);
+    sampleAlg->setProperty("Function", "User Defined");
+    sampleAlg->setProperty(
+        "UserDefinedFunction",
+        "name=LinearBackground, A0=0.4, A1=0.4; name=Gaussian, PeakCentre=1.3, "
+        "Height=7, Sigma=1.7; name=Gaussian, PeakCentre=5, Height=10, "
+        "Sigma=0.7; name=Gaussian, PeakCentre=8, Height=9, Sigma=1.8");
+    sampleAlg->setProperty("NumBanks", 1);
+    sampleAlg->setProperty("BankPixelWidth", 1);
+    sampleAlg->setProperty("XMin", 0.0);
+    sampleAlg->setProperty("XMax", 10.0);
+    sampleAlg->setProperty("BinWidth", 0.01);
+    sampleAlg->setProperty("Random", true);
+    sampleAlg->setPropertyValue("OutputWorkspace", "sample_smooth_curve_ws");
+
+    sampleAlg->execute();
+    TSM_ASSERT("The algorithm didn't execute correctly",
+               sampleAlg->isExecuted());
+    TS_ASSERT(sampleAlg->existsProperty("OutputWorkspace"));
+    API::MatrixWorkspace_sptr ws = sampleAlg->getProperty("OutputWorkspace");
 
+    TS_ASSERT(ws);
+    return ws;
   }
 
+  API::MatrixWorkspace_sptr m_smoothWS;
+  API::MatrixWorkspace_sptr m_onePeakWS;
 };
 
 #endif /*CURVEFITTING_FITMWTEST_H_*/
diff --git a/Code/Mantid/Framework/CurveFitting/test/GSLMatrixTest.h b/Code/Mantid/Framework/CurveFitting/test/GSLMatrixTest.h
index 0d652bdeb111fdc12567fddc3508b3bf2043481a..352087a36de3d820f81e764d2ae153339f8096a7 100644
--- a/Code/Mantid/Framework/CurveFitting/test/GSLMatrixTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/GSLMatrixTest.h
@@ -200,6 +200,87 @@ public:
     GSLMatrix subm(m, 2,2,3,3 ), std::runtime_error);
   }
 
+  void test_eigenSystem_rectangular_throw()
+  {
+    GSLMatrix M(3,4);
+    GSLVector v;
+    GSLMatrix Q;
+    TS_ASSERT_THROWS(
+    M.eigenSystem(v, Q), std::runtime_error);
+  }
+
+  void test_eigenSystem()
+  {
+    const size_t n = 4;
+    GSLMatrix m(n, n);
+    m.set(0,0,0); m.set(0,1,1); m.set(0,2,2); m.set(0,3,3);
+    m.set(1,0,1);m.set(1,1,11);m.set(1,2,12);m.set(1,3,13);
+    m.set(2,0,2);m.set(2,1,12);m.set(2,2,22);m.set(2,3,23);
+    m.set(3,0,3);m.set(3,1,13);m.set(3,2,23);m.set(3,3,33);
+    GSLVector v;
+    GSLMatrix Q;
+    GSLMatrix M = m;
+    M.eigenSystem(v, Q);
+    TS_ASSERT_EQUALS(v.size(), n);
+    TS_ASSERT_EQUALS(Q.size1(), n);
+    TS_ASSERT_EQUALS(Q.size2(), n);
+    {
+      GSLMatrix D = Tr(Q) * m * Q;
+      double trace_m = 0.0;
+      double trace_D = 0.0;
+      double det = 1.0;
+      for(size_t i = 0; i < n; ++i) {
+        TS_ASSERT_DELTA(D.get(i, i), v.get(i), 1e-10);
+        trace_m += m.get(i,i);
+        trace_D += D.get(i,i);
+        det *= D.get(i,i);
+      }
+      TS_ASSERT_DELTA(trace_D, trace_m, 1e-10);
+      TS_ASSERT_DELTA(det, m.det(), 1e-10);
+    }
+    {
+      GSLMatrix D = Tr(Q) * Q;
+      for(size_t i = 0; i < n; ++i) {
+        TS_ASSERT_DELTA(D.get(i, i), 1.0, 1e-10);
+      }
+    }
+  }
+
+  void test_copyColumn() {
+
+    GSLMatrix m(4,4);
+    m.set(0,0,0); m.set(0,1,1); m.set(0,2,2); m.set(0,3,3);
+    m.set(1,0,10);m.set(1,1,11);m.set(1,2,12);m.set(1,3,13);
+    m.set(2,0,20);m.set(2,1,21);m.set(2,2,22);m.set(2,3,23);
+    m.set(3,0,30);m.set(3,1,31);m.set(3,2,32);m.set(3,3,33);
+
+    auto column = m.copyColumn(2);
+    TS_ASSERT_EQUALS(column[0], m.get(0,2));
+    TS_ASSERT_EQUALS(column[1], m.get(1,2));
+    TS_ASSERT_EQUALS(column[2], m.get(2,2));
+    TS_ASSERT_EQUALS(column[3], m.get(3,2));
+
+    column[2] = 0;
+    TS_ASSERT_EQUALS(m.get(2,2), 22);
+  }
+
+  void test_copyRow() {
+
+    GSLMatrix m(4,4);
+    m.set(0,0,0); m.set(0,1,1); m.set(0,2,2); m.set(0,3,3);
+    m.set(1,0,10);m.set(1,1,11);m.set(1,2,12);m.set(1,3,13);
+    m.set(2,0,20);m.set(2,1,21);m.set(2,2,22);m.set(2,3,23);
+    m.set(3,0,30);m.set(3,1,31);m.set(3,2,32);m.set(3,3,33);
+
+    auto row = m.copyRow(1);
+    TS_ASSERT_EQUALS(row[0], m.get(1,0));
+    TS_ASSERT_EQUALS(row[1], m.get(1,1));
+    TS_ASSERT_EQUALS(row[2], m.get(1,2));
+    TS_ASSERT_EQUALS(row[3], m.get(1,3));
+    row[2] = 0;
+    TS_ASSERT_EQUALS(m.get(1,2), 12);
+  }
+
 };
 
 #endif /*GSLMATRIXTEST_H_*/
diff --git a/Code/Mantid/Framework/CurveFitting/test/GSLVectorTest.h b/Code/Mantid/Framework/CurveFitting/test/GSLVectorTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..576382c8ac871050c7c81a50c7dfaed8276a99a9
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/test/GSLVectorTest.h
@@ -0,0 +1,216 @@
+#ifndef GSLVECTORTEST_H_
+#define GSLVECTORTEST_H_
+
+#include <cxxtest/TestSuite.h>
+
+#include "MantidCurveFitting/GSLVector.h"
+
+using namespace Mantid::CurveFitting;
+
+class GSLVectorTest : public CxxTest::TestSuite {
+public:
+  void test_create_GSLVector() {
+    {
+      GSLVector v;
+      TS_ASSERT_EQUALS(v.size(), 1);
+    }
+    {
+      GSLVector v(1);
+      TS_ASSERT_EQUALS(v.size(), 1);
+    }
+    {
+      GSLVector v(2);
+      TS_ASSERT_EQUALS(v.size(), 2);
+    }
+  }
+
+  void test_create_from_std_vector() {
+    std::vector<double> v(3);
+    v[0] = 2;
+    v[1] = 4;
+    v[2] = 6;
+    GSLVector gv(v);
+    TS_ASSERT_EQUALS(gv.size(), 3);
+    TS_ASSERT_EQUALS(gv[0], 2);
+    TS_ASSERT_EQUALS(gv[1], 4);
+    TS_ASSERT_EQUALS(gv[2], 6);
+  }
+
+  void test_copy_constructor() {
+    std::vector<double> v(3);
+    v[0] = 2;
+    v[1] = 4;
+    v[2] = 6;
+    GSLVector gv(v);
+    GSLVector gc(gv);
+    TS_ASSERT_EQUALS(gc.size(), 3);
+    TS_ASSERT_EQUALS(gc[0], 2);
+    TS_ASSERT_EQUALS(gc[1], 4);
+    TS_ASSERT_EQUALS(gc[2], 6);
+  }
+
+  void test_assignment_operator() {
+    std::vector<double> v(3);
+    v[0] = 2;
+    v[1] = 4;
+    v[2] = 6;
+    GSLVector gv(v);
+    GSLVector gc;
+    gc = gv;
+    TS_ASSERT_EQUALS(gc.size(), 3);
+    TS_ASSERT_EQUALS(gc[0], 2);
+    TS_ASSERT_EQUALS(gc[1], 4);
+    TS_ASSERT_EQUALS(gc[2], 6);
+  }
+
+  void test_zero() {
+    std::vector<double> v(3);
+    v[0] = 2;
+    v[1] = 4;
+    v[2] = 6;
+    GSLVector gv(v);
+    gv.zero();
+    TS_ASSERT_EQUALS(gv[0], 0);
+    TS_ASSERT_EQUALS(gv[1], 0);
+    TS_ASSERT_EQUALS(gv[2], 0);
+  }
+
+  void test_set_get() {
+    GSLVector gv(3);
+    gv.set(0, 9.9);
+    gv.set(1, 7.7);
+    gv.set(2, 3.3);
+    TS_ASSERT_EQUALS(gv.get(0), 9.9);
+    TS_ASSERT_EQUALS(gv.get(1), 7.7);
+    TS_ASSERT_EQUALS(gv.get(2), 3.3);
+  }
+
+  void test_square_brackets() {
+    GSLVector gv(3);
+    gv.set(0, 9.9);
+    gv.set(1, 7.7);
+    gv.set(2, 3.3);
+    TS_ASSERT_EQUALS(gv[0], 9.9);
+    TS_ASSERT_EQUALS(gv[1], 7.7);
+    TS_ASSERT_EQUALS(gv[2], 3.3);
+    gv[0] = 3.3;
+    gv[1] = 9.9;
+    gv[2] = 7.7;
+    TS_ASSERT_EQUALS(gv[1], 9.9);
+    TS_ASSERT_EQUALS(gv[2], 7.7);
+    TS_ASSERT_EQUALS(gv[0], 3.3);
+  }
+
+  void test_gsl() {
+    GSLVector gv(3);
+    gv.set(0, 9.9);
+    gv.set(1, 7.7);
+    gv.set(2, 3.3);
+
+    auto gslVec = gv.gsl();
+
+    TS_ASSERT_EQUALS(gsl_vector_get(gslVec, 0), 9.9);
+    TS_ASSERT_EQUALS(gsl_vector_get(gslVec, 1), 7.7);
+    TS_ASSERT_EQUALS(gsl_vector_get(gslVec, 2), 3.3);
+  }
+
+  void test_resize() {
+    GSLVector gv(3);
+    gv.set(0, 9.9);
+    gv.set(1, 7.7);
+    gv.set(2, 3.3);
+
+    gv.resize(5);
+    TS_ASSERT_EQUALS(gv.size(), 5);
+    TS_ASSERT_EQUALS(gv.get(0), 9.9);
+    TS_ASSERT_EQUALS(gv.get(1), 7.7);
+    TS_ASSERT_EQUALS(gv.get(2), 3.3);
+    TS_ASSERT_EQUALS(gv.get(3), 0);
+    TS_ASSERT_EQUALS(gv.get(4), 0);
+
+    gv[3] = 22;
+    gv[4] = 33;
+    TS_ASSERT_EQUALS(gv.get(3), 22);
+    TS_ASSERT_EQUALS(gv.get(4), 33);
+
+    gv.resize(2);
+    TS_ASSERT_EQUALS(gv.size(), 2);
+    TS_ASSERT_EQUALS(gv.get(0), 9.9);
+    TS_ASSERT_EQUALS(gv.get(1), 7.7);
+  }
+
+  void test_plus_operator() {
+    auto v1 = makeVector1();
+    auto v2 = makeVector2();
+    v1 += v2;
+    TS_ASSERT_EQUALS(v1.size(), 3);
+    TS_ASSERT_EQUALS(v1[0], 8);
+    TS_ASSERT_EQUALS(v1[1], 88);
+    TS_ASSERT_EQUALS(v1[2], 888);
+
+    TS_ASSERT_THROWS(v1 += makeVector3(), std::runtime_error);
+  }
+
+  void test_minus_operator() {
+    auto v1 = makeVector1();
+    auto v2 = makeVector2();
+    v1 -= v2;
+    TS_ASSERT_EQUALS(v1.size(), 3);
+    TS_ASSERT_EQUALS(v1[0], 2);
+    TS_ASSERT_EQUALS(v1[1], 22);
+    TS_ASSERT_EQUALS(v1[2], 222);
+
+    TS_ASSERT_THROWS(v1 -= makeVector3(), std::runtime_error);
+  }
+
+  void test_times_operator() {
+    auto v1 = makeVector1();
+    v1 *= 2.2;
+    TS_ASSERT_EQUALS(v1.size(), 3);
+    TS_ASSERT_EQUALS(v1[0], 11);
+    TS_ASSERT_DELTA(v1[1], 121, 1e-13);
+    TS_ASSERT_EQUALS(v1[2], 1221);
+  }
+
+  void test_norm() {
+    auto v = makeVector1();
+    TS_ASSERT_DELTA(v.norm2(), 5.0 * 5.0 + 55.0 * 55.0 + 555.0 * 555.0, 1e-10);
+    TS_ASSERT_DELTA(v.norm(), sqrt(5.0 * 5.0 + 55.0 * 55.0 + 555.0 * 555.0),
+                    1e-10);
+    v.normalize();
+    TS_ASSERT_DELTA(v.norm(), 1.0, 1e-10);
+  }
+
+  void test_dot() { 
+    auto v1 = makeVector1();
+    auto v2 = makeVector2();
+    TS_ASSERT_DELTA(v1.dot(v2), 3.0 * 5.0 + 33.0 * 55.0 + 333.0 * 555.0, 1e-10);
+    TS_ASSERT_THROWS(v1.dot(makeVector3()), std::runtime_error);
+  }
+
+private:
+  GSLVector makeVector1() {
+    GSLVector v(3);
+    v[0] = 5;
+    v[1] = 55;
+    v[2] = 555;
+    return v;
+  }
+
+  GSLVector makeVector2() {
+    GSLVector v(3);
+    v[0] = 3;
+    v[1] = 33;
+    v[2] = 333;
+    return v;
+  }
+
+  GSLVector makeVector3() {
+    GSLVector v(2);
+    v[0] = 1;
+    v[1] = 11;
+    return v;
+  }
+};
+
+#endif /*GSLVECTORTEST_H_*/
diff --git a/Code/Mantid/Framework/CurveFitting/test/LatticeFunctionTest.h b/Code/Mantid/Framework/CurveFitting/test/LatticeFunctionTest.h
index 3bf49ea7a72c9467f5ddd5eabadbf2e5a8370851..577b9bfb7f1b573338a67b173e5ab33b57c6a06d 100644
--- a/Code/Mantid/Framework/CurveFitting/test/LatticeFunctionTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/LatticeFunctionTest.h
@@ -7,6 +7,7 @@
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/LatticeDomain.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidGeometry/Crystal/UnitCell.h"
 
diff --git a/Code/Mantid/Framework/CurveFitting/test/PlotPeakByLogValueTest.h b/Code/Mantid/Framework/CurveFitting/test/PlotPeakByLogValueTest.h
index c94af2789dac1b146785a132707b9fb8acba2294..cc9be62a8b6aec56c8c2d4c3603c9be2f5208be9 100644
--- a/Code/Mantid/Framework/CurveFitting/test/PlotPeakByLogValueTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/PlotPeakByLogValueTest.h
@@ -14,6 +14,7 @@
 #include "MantidAPI/ParamFunction.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/BinEdgeAxis.h"
 #include "MantidKernel/TimeSeriesProperty.h"
 #include "MantidKernel/UnitFactory.h"
 
@@ -222,7 +223,6 @@ public:
     WorkspaceCreationHelper::removeWS("PlotPeakResult");
   }
 
-
   void testWorkspaceList_plotting_against_ws_names()
   {
     createData();
@@ -249,7 +249,32 @@ public:
 
     deleteData();
     WorkspaceCreationHelper::removeWS("PlotPeakResult");
+  }
+
+  void testSpectraList_plotting_against_bin_edge_axis()
+  {
+    auto ws = createTestWorkspace();
+    AnalysisDataService::Instance().add( "PLOTPEAKBYLOGVALUETEST_WS", ws );
+
+    PlotPeakByLogValue alg;
+    alg.initialize();
+    alg.setPropertyValue("Input","PLOTPEAKBYLOGVALUETEST_WS,i0;PLOTPEAKBYLOGVALUETEST_WS,i1");
+    alg.setPropertyValue("OutputWorkspace","PlotPeakResult");
+    alg.setPropertyValue("Function","name=LinearBackground,A0=1,A1=0.3;name=Gaussian,PeakCentre=5,Height=2,Sigma=0.1");
+    alg.execute();
+
+    TWS_type result =  WorkspaceCreationHelper::getWS<TableWorkspace>("PlotPeakResult");
+    TS_ASSERT_EQUALS(result->columnCount(),12);
 
+    std::vector<std::string> tnames = result->getColumnNames();
+    TS_ASSERT_EQUALS(tnames.size(),12);
+    TS_ASSERT_EQUALS(tnames[0],"axis-1");
+
+    TS_ASSERT_EQUALS(result->Double(0,0),0.5);
+    TS_ASSERT_EQUALS(result->Double(1,0),3.0);
+
+    WorkspaceCreationHelper::removeWS("PlotPeakResult");
+    WorkspaceCreationHelper::removeWS("PLOTPEAKBYLOGVALUETEST_WS");
   }
 
   void test_passWorkspaceIndexToFunction()
@@ -549,6 +574,14 @@ private:
     }
     testWS->setX(0, xdata);
     testWS->setX(1, xdata);
+
+    std::vector<double> edges;
+    edges.push_back(0.0);
+    edges.push_back(1.0);
+    edges.push_back(5.0);
+    BinEdgeAxis *axis = new BinEdgeAxis(edges);
+    testWS->replaceAxis(1, axis);
+
     return testWS;
   }
 
diff --git a/Code/Mantid/Framework/DataHandling/CMakeLists.txt b/Code/Mantid/Framework/DataHandling/CMakeLists.txt
index ceab2f6f9fba6b7000b8d95e8d1cf58f2fde7d0f..ecd2806202381090d05f97963fe2189766666b0b 100644
--- a/Code/Mantid/Framework/DataHandling/CMakeLists.txt
+++ b/Code/Mantid/Framework/DataHandling/CMakeLists.txt
@@ -1,6 +1,7 @@
 set ( SRC_FILES
 	src/AppendGeometryToSNSNexus.cpp
 	src/AsciiPointBase.cpp
+	src/CheckMantidVersion.cpp
 	src/CompressEvents.cpp
 	src/CreateChopperModel.cpp
 	src/CreateChunkingFromInstrument.cpp
@@ -12,6 +13,7 @@ set ( SRC_FILES
 	src/DetermineChunking.cpp
 	src/DownloadFile.cpp
 	src/DownloadInstrument.cpp
+	src/EventWorkspaceCollection.cpp
 	src/ExtractMonitorWorkspace.cpp
 	src/FilterEventsByLogValuePreNexus.cpp
 	src/FindDetectorsInShape.cpp
@@ -32,6 +34,7 @@ set ( SRC_FILES
 	src/LoadDaveGrp.cpp
 	src/LoadDetectorInfo.cpp
 	src/LoadDetectorsGroupingFile.cpp
+	src/LoadDiffCal.cpp
 	src/LoadDspacemap.cpp
 	src/LoadEmptyInstrument.cpp
 	src/LoadEventNexus.cpp
@@ -56,6 +59,7 @@ set ( SRC_FILES
 	src/LoadLLB.cpp
 	src/LoadLog.cpp
 	src/LoadLogsForSNSPulsedMagnet.cpp
+        src/LoadMLZ.cpp
 	src/LoadMappingTable.cpp
 	src/LoadMask.cpp
 	src/LoadMcStas.cpp
@@ -121,6 +125,7 @@ set ( SRC_FILES
 	src/SaveCanSAS1D2.cpp
 	src/SaveDaveGrp.cpp
 	src/SaveDetectorsGrouping.cpp
+	src/SaveDiffCal.cpp
 	src/SaveDspacemap.cpp
 	src/SaveFocusedXYE.cpp
 	src/SaveFullprofResolution.cpp
@@ -155,6 +160,7 @@ set ( SRC_FILES
 set ( INC_FILES
 	inc/MantidDataHandling/AppendGeometryToSNSNexus.h
 	inc/MantidDataHandling/AsciiPointBase.h
+	inc/MantidDataHandling/CheckMantidVersion.h
 	inc/MantidDataHandling/CompressEvents.h
 	inc/MantidDataHandling/CreateChopperModel.h
 	inc/MantidDataHandling/CreateChunkingFromInstrument.h
@@ -166,6 +172,7 @@ set ( INC_FILES
 	inc/MantidDataHandling/DetermineChunking.h
 	inc/MantidDataHandling/DownloadFile.h
 	inc/MantidDataHandling/DownloadInstrument.h
+	inc/MantidDataHandling/EventWorkspaceCollection.h
 	inc/MantidDataHandling/ExtractMonitorWorkspace.h
 	inc/MantidDataHandling/FilterEventsByLogValuePreNexus.h
 	inc/MantidDataHandling/FindDetectorsInShape.h
@@ -186,6 +193,7 @@ set ( INC_FILES
 	inc/MantidDataHandling/LoadDaveGrp.h
 	inc/MantidDataHandling/LoadDetectorInfo.h
 	inc/MantidDataHandling/LoadDetectorsGroupingFile.h
+	inc/MantidDataHandling/LoadDiffCal.h
 	inc/MantidDataHandling/LoadDspacemap.h
 	inc/MantidDataHandling/LoadEmptyInstrument.h
 	inc/MantidDataHandling/LoadEventNexus.h
@@ -210,6 +218,7 @@ set ( INC_FILES
 	inc/MantidDataHandling/LoadLLB.h
 	inc/MantidDataHandling/LoadLog.h
 	inc/MantidDataHandling/LoadLogsForSNSPulsedMagnet.h
+        inc/MantidDataHandling/LoadMLZ.h
 	inc/MantidDataHandling/LoadMappingTable.h
 	inc/MantidDataHandling/LoadMask.h
 	inc/MantidDataHandling/LoadMcStas.h
@@ -270,6 +279,7 @@ set ( INC_FILES
 	inc/MantidDataHandling/SaveCanSAS1D2.h
 	inc/MantidDataHandling/SaveDaveGrp.h
 	inc/MantidDataHandling/SaveDetectorsGrouping.h
+	inc/MantidDataHandling/SaveDiffCal.h
 	inc/MantidDataHandling/SaveDspacemap.h
 	inc/MantidDataHandling/SaveFocusedXYE.h
 	inc/MantidDataHandling/SaveFullprofResolution.h
@@ -308,6 +318,7 @@ set ( INC_FILES
 
 set ( TEST_FILES
 	AppendGeometryToSNSNexusTest.h
+	CheckMantidVersionTest.h
 	CompressEventsTest.h
 	CreateChopperModelTest.h
 	CreateChunkingFromInstrumentTest.h
@@ -319,6 +330,7 @@ set ( TEST_FILES
 	DetermineChunkingTest.h
 	DownloadFileTest.h
 	DownloadInstrumentTest.h
+	EventWorkspaceCollectionTest.h
 	ExtractMonitorWorkspaceTest.h
 	FilterEventsByLogValuePreNexusTest.h
 	FindDetectorsInShapeTest.h
@@ -336,6 +348,7 @@ set ( TEST_FILES
 	LoadDaveGrpTest.h
 	LoadDetectorInfoTest.h
 	LoadDetectorsGroupingFileTest.h
+	LoadDiffCalTest.h
 	LoadDspacemapTest.h
 	LoadEmptyInstrumentTest.h
 	LoadEventNexusTest.h
@@ -356,6 +369,7 @@ set ( TEST_FILES
 	LoadIsawDetCalTest.h
 	LoadLLBTest.h
 	LoadLogTest.h
+        LoadMLZTest.h
 	LoadMappingTableTest.h
 	LoadMaskTest.h
 	LoadMcStasNexusTest.h
@@ -415,6 +429,7 @@ set ( TEST_FILES
 	SaveCanSAS1dTest2.h
 	SaveDaveGrpTest.h
 	SaveDetectorsGroupingTest.h
+	SaveDiffCalTest.h
 	SaveDspacemapTest.h
 	SaveFocussedXYETest.h
 	SaveFullprofResolutionTest.h
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/CheckMantidVersion.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/CheckMantidVersion.h
new file mode 100644
index 0000000000000000000000000000000000000000..4f0aae1e4bf12cd146b72b818874e4ba70da9f6f
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/CheckMantidVersion.h
@@ -0,0 +1,58 @@
+#ifndef MANTID_DATAHANDLING_CHECKMANTIDVERSION_H_
+#define MANTID_DATAHANDLING_CHECKMANTIDVERSION_H_
+
+#include "MantidKernel/System.h"
+#include "MantidAPI/Algorithm.h"
+
+namespace Mantid {
+namespace DataHandling {
+
+/** CheckMantidVersion : Checks if the current version of Mantid is the most recent
+
+  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 CheckMantidVersion : public API::Algorithm {
+public:
+  CheckMantidVersion();
+  virtual ~CheckMantidVersion();
+
+  virtual const std::string name() const;
+  virtual int version() const;
+  virtual const std::string category() const;
+  virtual const std::string summary() const;
+protected:
+  virtual std::string getVersionsFromGitHub(const std::string &url);
+  virtual std::string getCurrentVersion() const;
+private:
+  void init();
+  void exec();
+
+  std::string cleanVersionTag(const std::string& versionTag) const;
+  std::vector<int> splitVersionString(const std::string& versionString) const;
+  bool isVersionMoreRecent(const std::string& localVersion, const std::string& gitHubVersion) const;
+
+};
+
+} // namespace DataHandling
+} // namespace Mantid
+
+#endif /* MANTID_DATAHANDLING_CHECKMANTIDVERSION_H_ */
\ No newline at end of file
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/DetermineChunking.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/DetermineChunking.h
index c10ece64559ef2b36455baf51f64c0c269522c9a..d49592f45ba0c433f196f80492e7ce5c4cfd8cad 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/DetermineChunking.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/DetermineChunking.h
@@ -5,7 +5,7 @@
 #include <vector>
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IEventWorkspace.h"
+#include "MantidAPI/IEventWorkspace_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/EventWorkspaceCollection.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/EventWorkspaceCollection.h
new file mode 100644
index 0000000000000000000000000000000000000000..6f5df735250ae1bf201faafbfe5b7544733bce1f
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/EventWorkspaceCollection.h
@@ -0,0 +1,113 @@
+#ifndef MANTID_DATAHANDLING_EventWorkspaceCollection_H_
+#define MANTID_DATAHANDLING_EventWorkspaceCollection_H_
+
+#include "MantidKernel/System.h"
+#include "MantidKernel/TimeSeriesProperty.h"
+#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidDataObjects/EventWorkspace.h"
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidDataHandling/DllConfig.h"
+#include <vector>
+#include <boost/shared_ptr.hpp>
+#include <boost/function.hpp>
+#include <memory>
+
+
+  
+
+namespace Mantid {
+namespace DataHandling {
+
+/** EventWorkspaceCollection : Collection of EventWorspaces to give backward-forward compatibility
+ around performing operations on groups. Behave similar to an EventWorkspace with some some additional new functionality.
+Original purpose to support LoadEventNexus for the MultiPeriod cases.
+
+  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 EventWorkspaceCollection {
+
+private:
+
+  /// Vector of EventWorkspaces
+  std::vector<DataObjects::EventWorkspace_sptr> m_WsVec;
+  /// Create Empty EventWorkspaces
+  DataObjects::EventWorkspace_sptr createEmptyEventWorkspace() const;
+  /// private copy constructor. Not implemented.
+  EventWorkspaceCollection(const EventWorkspaceCollection &other);
+  /// Private copy assignment operator. Assignment not implemented.
+  EventWorkspaceCollection &operator=(const EventWorkspaceCollection &other);
+
+public:
+
+  EventWorkspaceCollection();
+  virtual ~EventWorkspaceCollection();
+
+  void setNPeriods(size_t nPeriods,  std::unique_ptr<const Kernel::TimeSeriesProperty<int> >& periodLog);
+  void reserveEventListAt(size_t wi, size_t size);
+  size_t nPeriods() const;
+  DataObjects::EventWorkspace_sptr getSingleHeldWorkspace();
+  API::Workspace_sptr combinedWorkspace();
+  const DataObjects::EventList& getEventList(const size_t workspace_index, const size_t periodNumber) const;
+  DataObjects::EventList& getEventList(const size_t workspace_index, const size_t periodNumber);
+  void setGeometryFlag(const int flag);
+  void setThickness(const float flag);
+  void setHeight(const float flag);
+  void setWidth(const float flag);
+  void setSpectrumNumbersFromUniqueSpectra(const std::set<int> uniqueSpectra);
+  void setSpectrumNumberForAllPeriods(const size_t spectrumNumber, const specid_t specid);
+  void setDetectorIdsForAllPeriods(const size_t spectrumNumber, const detid_t id);
+
+  Geometry::Instrument_const_sptr getInstrument() const;
+  const API::Run &run() const;
+  API::Run &mutableRun();
+  API::Sample &mutableSample();
+  Mantid::API::ISpectrum* getSpectrum(const size_t index);
+  const Mantid::API::ISpectrum *getSpectrum(const size_t index) const;
+  Mantid::API::Axis* getAxis(const size_t& i) const;
+  size_t getNumberHistograms() const;
+  const DataObjects::EventList& getEventList(const size_t workspace_index) const;
+
+  DataObjects::EventList &getEventList(const std::size_t workspace_index);
+  void getSpectrumToWorkspaceIndexVector(std::vector<size_t>&out, Mantid::specid_t& offset) const;
+
+  void getDetectorIDToWorkspaceIndexVector(std::vector<size_t>&out, Mantid::specid_t& offset, bool dothrow) const;
+  Kernel::DateAndTime getFirstPulseTime() const;
+  void setAllX(Kernel::cow_ptr<MantidVec>& x);
+  size_t getNumberEvents() const;
+  void resizeTo(const size_t size);
+  void padSpectra(const std::vector<int32_t>& padding);
+  void setInstrument(const Geometry::Instrument_const_sptr& inst);
+  void setMonitorWorkspace(const boost::shared_ptr<API::MatrixWorkspace>& monitorWS);
+  void updateSpectraUsing(const API::SpectrumDetectorMapping& map);
+  DataObjects::EventList* getEventListPtr(size_t i);
+  void populateInstrumentParameters();
+  void setTitle(std::string title);
+  void applyFilter(boost::function<void (API::MatrixWorkspace_sptr)> filter);
+};
+
+typedef boost::shared_ptr<EventWorkspaceCollection> EventWorkspaceCollection_sptr;
+typedef std::unique_ptr<EventWorkspaceCollection>EventWorkspaceCollection_uptr;
+
+} // namespace DataHandling
+} // namespace Mantid
+
+#endif /* MANTID_DATAHANDLING_EventWorkspaceCollection_H_ */
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/GroupDetectors2.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/GroupDetectors2.h
index 60204375a48329c456e2331366c346298a10bc3e..31d655085404dd2d100e58e9425f4bd00f09a558 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/GroupDetectors2.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/GroupDetectors2.h
@@ -128,6 +128,9 @@ public:
   /// Algorithm's category for identification overriding a virtual method
   virtual const std::string category() const { return "Transforms\\Grouping"; }
 
+  /// Validate inputs
+  virtual std::map<std::string, std::string> validateInputs();
+
 private:
   /// provides a function that expands pairs of integers separated with a hyphen
   /// into a list of all the integers between those values
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadANSTOHelper.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadANSTOHelper.h
index 77406b3a1141bec7407325aff6db061fc15c0134..236d501170c8a382a2b3861a888e788d77a71631 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadANSTOHelper.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadANSTOHelper.h
@@ -56,11 +56,15 @@ private:
   const size_t m_stride;
   double m_tofMin;
   double m_tofMax;
+  // correction
+  const double m_period;
+  const double m_phase;
 
 public:
   // construction
   EventCounter(std::vector<size_t> &eventCounts, const std::vector<bool> &mask,
-               const std::vector<int> &offsets, size_t stride);
+               const std::vector<int> &offsets, size_t stride,
+               double periode, double phase);
 
   // properties
   double tofMin() const;
@@ -77,12 +81,15 @@ private:
   const std::vector<bool> &m_mask;
   const std::vector<int> &m_offsets;
   const size_t m_stride;
+  // correction
+  const double m_period;
+  const double m_phase;
 
 public:
   // construction
-  EventAssigner(std::vector<EventVector_pt> &eventVectors,
-                const std::vector<bool> &mask, const std::vector<int> &offsets,
-                size_t stride);
+  EventAssigner(std::vector<EventVector_pt> &eventVectors, const std::vector<bool> &mask,
+                const std::vector<int> &offsets, size_t stride,
+                double periode, double phase);
 
   // methods
   void addEvent(size_t x, size_t y, double tof);
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadAscii2.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadAscii2.h
index 1ecb0e787f9cb2a54cad626de09f7724a25d3e94..fe0cbfb27321d04a606a2d62add607d13b07dfe1 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadAscii2.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadAscii2.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/IFileLoader.h"
 #include "MantidDataObjects/Histogram1D.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadCalFile.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadCalFile.h
index 1aaba590c1c4118d94c286411b927850f5201058..5768b9268a7da06aae3d8af34fe1b7d5f894c846 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadCalFile.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadCalFile.h
@@ -3,7 +3,7 @@
 
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/IAlgorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/GroupingWorkspace.h"
 #include "MantidDataObjects/MaskWorkspace.h"
 #include "MantidDataObjects/OffsetsWorkspace.h"
@@ -43,6 +43,7 @@ public:
 
   static Geometry::Instrument_const_sptr
   getInstrument3Ways(API::Algorithm *alg);
+  static bool instrumentIsSpecified(API::Algorithm *alg);
 
   static void readCalFile(const std::string &calFileName,
                           Mantid::DataObjects::GroupingWorkspace_sptr groupWS,
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadDiffCal.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadDiffCal.h
new file mode 100644
index 0000000000000000000000000000000000000000..b87f447041e61a7922d4c7904e4ab4600691bbd9
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadDiffCal.h
@@ -0,0 +1,69 @@
+#ifndef MANTID_DATAHANDLING_LOADDIFFCAL_H_
+#define MANTID_DATAHANDLING_LOADDIFFCAL_H_
+
+#include "MantidKernel/System.h"
+#include "MantidAPI/Algorithm.h"
+
+namespace H5 {
+class H5File;
+class Group;
+}
+
+namespace Mantid {
+namespace DataHandling {
+
+/** LoadDiffCal : TODO: DESCRIPTION
+
+  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 LoadDiffCal : public API::Algorithm {
+public:
+  LoadDiffCal();
+  virtual ~LoadDiffCal();
+
+  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();
+  void getInstrument(H5::H5File &file);
+  std::vector<int32_t> readInt32Array(H5::Group &group, const std::string &name);
+  std::vector<double> readDoubleArray(H5::Group &group, const std::string &name);
+  void runLoadCalFile();
+  void makeGroupingWorkspace(const std::vector<int32_t> &detids, const std::vector<int32_t> &groups);
+  void makeMaskWorkspace(const std::vector<int32_t> &detids, const std::vector<int32_t> &use);
+  void makeCalWorkspace(const std::vector<int32_t> &detids, const std::vector<double> &difc,
+                        const std::vector<double> &difa, const std::vector<double> &tzero,
+                        const std::vector<int32_t> &dasids, const std::vector<double> &offsets);
+
+  std::string m_filename;
+  std::string m_workspaceName;
+  Geometry::Instrument_const_sptr m_instrument;
+};
+
+} // namespace DataHandling
+} // namespace Mantid
+
+#endif /* MANTID_DATAHANDLING_LOADDIFFCAL_H_ */
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadDspacemap.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadDspacemap.h
index 6ee9bbe10fc0877b6b53380332c5e25070c2209c..f78daa0423be8d28bc94051ff663442815555bc3 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadDspacemap.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadDspacemap.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/OffsetsWorkspace.h"
 #include "MantidGeometry/IDetector.h"
 
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadEventNexus.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadEventNexus.h
index 07c1e9a5df5606d6c33de4693f470cad5c907f41..538299ee7c1d93937fd9054d7695e3c4b2986783 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadEventNexus.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadEventNexus.h
@@ -9,7 +9,11 @@
 #include <nexus/NeXusFile.hpp>
 #include <nexus/NeXusException.hpp>
 #include "MantidDataObjects/Events.h"
+#include "MantidAPI/WorkspaceGroup.h"
 #include "MantidKernel/TimeSeriesProperty.h"
+#include "MantidDataHandling/EventWorkspaceCollection.h"
+#include <memory>
+#include <boost/lexical_cast.hpp>
 
 namespace Mantid {
 
@@ -21,8 +25,12 @@ namespace DataHandling {
  */
 class BankPulseTimes {
 public:
+
+  /// Starting number for assigning periods.
+  static const unsigned int FirstPeriod;
+
   /// Constructor with NeXus::File
-  BankPulseTimes(::NeXus::File &file);
+  BankPulseTimes(::NeXus::File &file, const std::vector<int>& pNumbers);
 
   /// Constructor with vector of DateAndTime
   BankPulseTimes(const std::vector<Kernel::DateAndTime> &times);
@@ -41,6 +49,9 @@ public:
 
   /// Array of the pulse times
   Kernel::DateAndTime *pulseTimes;
+
+  /// Vector of period numbers corresponding to each pulse
+  std::vector<int> periodNumbers;
 };
 
 /** @class LoadEventNexus LoadEventNexus.h Nexus/LoadEventNexus.h
@@ -86,7 +97,7 @@ public:
 
   /// Summary of algorithms purpose
   virtual const std::string summary() const {
-    return "Loads Event NeXus files (produced by the SNS) and stores it in an "
+    return "Loads an Event NeXus file and stores as an "
            "EventWorkspace. Optionally, you can filter out events falling "
            "outside a range of times-of-flight and/or a time interval.";
   }
@@ -104,36 +115,43 @@ public:
    * @param value :: true if you want to precount. */
   void setPrecount(bool value) { precount = value; }
 
-  static boost::shared_ptr<BankPulseTimes>
-  runLoadNexusLogs(const std::string &nexusfilename,
-                   API::MatrixWorkspace_sptr localWorkspace, Algorithm &alg,
-                   bool returnpulsetimes);
-
+  template<typename T>
+  static boost::shared_ptr<BankPulseTimes> runLoadNexusLogs(const std::string &nexusfilename,
+                   T localWorkspace, Algorithm &alg,
+                   bool returnpulsetimes, int& size_t, std::unique_ptr<const Kernel::TimeSeriesProperty<int> >& periodLog);
+  
+  template<typename T>
   static void loadEntryMetadata(const std::string &nexusfilename,
-                                Mantid::API::MatrixWorkspace_sptr WS,
+                                T WS,
                                 const std::string &entry_name);
 
   /// Load instrument from Nexus file if possible, else from IDF spacified by
   /// Nexus file
+  template<typename T>
   static bool loadInstrument(const std::string &nexusfilename,
-                             API::MatrixWorkspace_sptr localWorkspace,
+                             T localWorkspace,
                              const std::string &top_entry_name, Algorithm *alg);
 
+
+
+
   /// Load instrument for Nexus file
+  template<typename T>
   static bool runLoadIDFFromNexus(const std::string &nexusfilename,
-                                  API::MatrixWorkspace_sptr localWorkspace,
+                                  T localWorkspace,
                                   const std::string &top_entry_name,
                                   Algorithm *alg);
 
   /// Load instrument from IDF file specified by Nexus file
+  template<typename T>
   static bool runLoadInstrument(const std::string &nexusfilename,
-                                API::MatrixWorkspace_sptr localWorkspace,
+                                T localWorkspace,
                                 const std::string &top_entry_name,
                                 Algorithm *alg);
 
   static void
   loadSampleDataISIScompatibility(::NeXus::File &file,
-                                  Mantid::API::MatrixWorkspace_sptr WS);
+  EventWorkspaceCollection& WS);
 
   /// method used to return instrument name for some old ISIS files where it is
   /// not written properly within the instrument
@@ -144,7 +162,7 @@ public:
   std::string m_filename;
 
   /// The workspace being filled out
-  DataObjects::EventWorkspace_sptr WS;
+  boost::shared_ptr<EventWorkspaceCollection> m_ws;
 
   /// Filter by a minimum time-of-flight
   double filter_tof_min;
@@ -196,7 +214,7 @@ public:
 
   /// Vector where index = event_id; value = ptr to std::vector<TofEvent> in the
   /// event list.
-  std::vector<EventVector_pt> eventVectors;
+  std::vector<std::vector<EventVector_pt> > eventVectors;
 
   /// Mutex to protect eventVectors from each task
   Poco::Mutex m_eventVectorMutex;
@@ -233,7 +251,7 @@ public:
 
   /// Vector where index = event_id; value = ptr to std::vector<WeightedEvent>
   /// in the event list.
-  std::vector<WeightedEventVector_pt> weightedEventVectors;
+  std::vector<std::vector<WeightedEventVector_pt> > weightedEventVectors;
 
 private:
   /// Intialisation code
@@ -245,14 +263,14 @@ private:
   DataObjects::EventWorkspace_sptr createEmptyEventWorkspace();
 
   /// Map detector IDs to event lists.
-  template <class T> void makeMapToEventLists(std::vector<T> &vectors);
+  template <class T> void makeMapToEventLists(std::vector<std::vector<T> > &vectors);
 
   void createWorkspaceIndexMaps(const bool monitors, const std::vector<std::string> &bankNames);
   void loadEvents(API::Progress *const prog, const bool monitors);
   void createSpectraMapping(
       const std::string &nxsfile, const bool monitorsOnly,
       const std::vector<std::string> &bankNames = std::vector<std::string>());
-  void deleteBanks(API::MatrixWorkspace_sptr workspace,
+  void deleteBanks(EventWorkspaceCollection_sptr workspace,
                    std::vector<std::string> bankNames);
   bool hasEventMonitors();
   void runLoadMonitorsAsEvents(API::Progress *const prog);
@@ -265,16 +283,16 @@ private:
                           const std::string &entry_name);
 
   /// ISIS specific methods for dealing with wide events
-  void loadTimeOfFlight(DataObjects::EventWorkspace_sptr WS,
+  void loadTimeOfFlight(EventWorkspaceCollection_sptr WS,
                         const std::string &entry_name,
                         const std::string &classType);
 
   void loadTimeOfFlightData(::NeXus::File &file,
-                                   DataObjects::EventWorkspace_sptr WS,
+                                   EventWorkspaceCollection_sptr WS,
                                    const std::string &binsName,
                                    size_t start_wi = 0, size_t end_wi = 0);
-
-  void filterDuringPause(API::MatrixWorkspace_sptr workspace);
+  template<typename T>
+  void filterDuringPause(T workspace);
 
   // Validate the optional spectra input properties and initialize m_specList
   void createSpectraList(int32_t min, int32_t max);
@@ -282,10 +300,6 @@ private:
   /// Set the top entry field name
   void setTopEntryName();
 
-  /// to re-use (copy) logs from data workspace to monitors, etc. workspace
-  void copyLogs(const DataObjects::EventWorkspace_sptr& from,
-                    DataObjects::EventWorkspace_sptr& to);
-
   /// to open the nexus file with specific exception handling/message
   void safeOpenFile(const std::string fname);
 
@@ -301,6 +315,315 @@ private:
   bool event_id_is_spec;
 };
 
+
+//-----------------------------------------------------------------------------
+/** Load the instrument definition file specified by info in the NXS file.
+*
+*  @param nexusfilename :: Used to pick the instrument.
+*  @param localWorkspace :: Templated workspace in which to put the instrument
+*geometry
+*  @param top_entry_name :: entry name at the top of the NXS file
+*  @param alg :: Handle of the algorithm
+*  @return true if successful
+*/
+template<typename T>
+bool LoadEventNexus::runLoadInstrument(const std::string &nexusfilename,
+                                       T localWorkspace,
+                                       const std::string &top_entry_name,
+                                       Algorithm *alg) {
+  std::string instrument = "";
+
+  // Get the instrument name
+  ::NeXus::File nxfile(nexusfilename);
+  // Start with the base entry
+  nxfile.openGroup(top_entry_name, "NXentry");
+  // Open the instrument
+  nxfile.openGroup("instrument", "NXinstrument");
+  try {
+    nxfile.openData("name");
+    instrument = nxfile.getStrData();
+    alg->getLogger().debug() << "Instrument name read from NeXus file is "
+                             << instrument << std::endl;
+  } catch (::NeXus::Exception &) {
+    // Try to fall back to isis compatibility options
+    nxfile.closeGroup();
+    instrument = readInstrumentFromISIS_VMSCompat(nxfile);
+    if (instrument.empty()) {
+      // Get the instrument name from the file instead
+      size_t n = nexusfilename.rfind('/');
+      if (n != std::string::npos) {
+        std::string temp =
+            nexusfilename.substr(n + 1, nexusfilename.size() - n - 1);
+        n = temp.find('_');
+        if (n != std::string::npos && n > 0) {
+          instrument = temp.substr(0, n);
+        }
+      }
+    }
+  }
+  if (instrument.compare("POWGEN3") ==
+      0) // hack for powgen b/c of bad long name
+    instrument = "POWGEN";
+  if (instrument.compare("NOM") == 0) // hack for nomad
+    instrument = "NOMAD";
+
+  if (instrument.empty())
+    throw std::runtime_error("Could not find the instrument name in the NXS "
+                             "file or using the filename. Cannot load "
+                             "instrument!");
+
+  // Now let's close the file as we don't need it anymore to load the
+  // instrument.
+  nxfile.close();
+
+  // do the actual work
+  Mantid::API::IAlgorithm_sptr loadInst = alg->createChildAlgorithm("LoadInstrument");
+
+  // Now execute the Child Algorithm. Catch and log any error, but don't stop.
+  bool executionSuccessful(true);
+  try {
+    loadInst->setPropertyValue("InstrumentName", instrument);
+    loadInst->setProperty<Mantid::API::MatrixWorkspace_sptr>("Workspace", localWorkspace);
+    loadInst->setProperty("RewriteSpectraMap", false);
+    loadInst->execute();
+
+    // Populate the instrument parameters in this workspace - this works around
+    // a bug
+    localWorkspace->populateInstrumentParameters();
+  } catch (std::invalid_argument &e) {
+    alg->getLogger().information()
+        << "Invalid argument to LoadInstrument Child Algorithm : " << e.what()
+        << std::endl;
+    executionSuccessful = false;
+  } catch (std::runtime_error &e) {
+    alg->getLogger().information(
+        "Unable to successfully run LoadInstrument Child Algorithm");
+    alg->getLogger().information(e.what());
+    executionSuccessful = false;
+  }
+
+  // If loading instrument definition file fails
+  if (!executionSuccessful) {
+    alg->getLogger().error() << "Error loading Instrument definition file\n";
+    return false;
+  }
+
+  // Ticket #2049: Cleanup all loadinstrument members to a single instance
+  // If requested update the instrument to positions in the data file
+  const Geometry::ParameterMap &pmap = localWorkspace->instrumentParameters();
+  if (!pmap.contains(localWorkspace->getInstrument()->getComponentID(),
+                     "det-pos-source"))
+    return executionSuccessful;
+
+  boost::shared_ptr<Geometry::Parameter> updateDets = pmap.get(
+      localWorkspace->getInstrument()->getComponentID(), "det-pos-source");
+  std::string value = updateDets->value<std::string>();
+  if (value.substr(0, 8) == "datafile") {
+    Mantid::API::IAlgorithm_sptr updateInst =
+        alg->createChildAlgorithm("UpdateInstrumentFromFile");
+    updateInst->setProperty<Mantid::API::MatrixWorkspace_sptr>("Workspace", localWorkspace);
+    updateInst->setPropertyValue("Filename", nexusfilename);
+    if (value == "datafile-ignore-phi") {
+      updateInst->setProperty("IgnorePhi", true);
+      alg->getLogger().information("Detector positions in IDF updated with "
+                                   "positions in the data file except for the "
+                                   "phi values");
+    } else {
+      alg->getLogger().information(
+          "Detector positions in IDF updated with positions in the data file");
+    }
+    // We want this to throw if it fails to warn the user that the information
+    // is not correct.
+    updateInst->execute();
+  }
+
+  return executionSuccessful;
+}
+
+
+//-----------------------------------------------------------------------------
+/** Load the run number and other meta data from the given bank */
+  template<typename T>
+  void LoadEventNexus::loadEntryMetadata(const std::string &nexusfilename,
+                                         T WS,
+                                         const std::string &entry_name) {
+  // Open the file
+  ::NeXus::File file(nexusfilename);
+  file.openGroup(entry_name, "NXentry");
+
+  // get the title
+  try {
+  file.openData("title");
+  if (file.getInfo().type == ::NeXus::CHAR) {
+    std::string title = file.getStrData();
+    if (!title.empty())
+      WS->setTitle(title);
+  }
+  file.closeData();
+  } catch (std::exception&)
+  {
+    //don't set the title if the field is not loaded
+  }
+
+  // get the notes
+  try {
+    file.openData("notes");
+    if (file.getInfo().type == ::NeXus::CHAR) {
+      std::string notes = file.getStrData();
+      if (!notes.empty())
+        WS->mutableRun().addProperty("file_notes", notes);
+    }
+    file.closeData();
+  } catch (::NeXus::Exception &) {
+    // let it drop on floor
+  }
+
+  // Get the run number
+  file.openData("run_number");
+  std::string run("");
+  if (file.getInfo().type == ::NeXus::CHAR) {
+    run = file.getStrData();
+  } else if (file.isDataInt()) {
+    // inside ISIS the run_number type is int32
+    std::vector<int> value;
+    file.getData(value);
+    if (value.size() > 0)
+      run = boost::lexical_cast<std::string>(value[0]);
+  }
+  if (!run.empty()) {
+    WS->mutableRun().addProperty("run_number", run);
+  }
+  file.closeData();
+
+  // get the experiment identifier
+  try {
+    file.openData("experiment_identifier");
+    std::string expId("");
+    if (file.getInfo().type == ::NeXus::CHAR) {
+      expId = file.getStrData();
+    }
+    if (!expId.empty()) {
+      WS->mutableRun().addProperty("experiment_identifier", expId);
+    }
+    file.closeData();
+  } catch (::NeXus::Exception &) {
+    // let it drop on floor
+  }
+
+  // get the sample name
+  try {
+    file.openGroup("sample", "NXsample");
+    file.openData("name");
+    std::string name("");
+    if (file.getInfo().type == ::NeXus::CHAR) {
+      name = file.getStrData();
+    }
+    if (!name.empty()) {
+      WS->mutableSample().setName(name);
+    }
+    file.closeData();
+    file.closeGroup();
+  } catch (::NeXus::Exception &) {
+    // let it drop on floor
+  }
+
+  // get the duration
+  file.openData("duration");
+  std::vector<double> duration;
+  file.getDataCoerce(duration);
+  if (duration.size() == 1) {
+    // get the units
+    std::vector< ::NeXus::AttrInfo> infos = file.getAttrInfos();
+    std::string units("");
+    for (std::vector< ::NeXus::AttrInfo>::const_iterator it = infos.begin();
+         it != infos.end(); ++it) {
+      if (it->name.compare("units") == 0) {
+        units = file.getStrAttr(*it);
+        break;
+      }
+    }
+
+    // set the property
+    WS->mutableRun().addProperty("duration", duration[0], units);
+  }
+  file.closeData();
+
+  // close the file
+  file.close();
+}
+
+
+//-----------------------------------------------------------------------------
+/** Load the instrument from the nexus file or if not found from the IDF file
+*  specified by the info in the Nexus file
+*
+*  @param nexusfilename :: The Nexus file name
+*  @param localWorkspace :: templated workspace in which to put the instrument
+*geometry
+*  @param top_entry_name :: entry name at the top of the Nexus file
+*  @param alg :: Handle of the algorithm
+*  @return true if successful
+*/
+template<typename T>
+bool LoadEventNexus::loadInstrument(const std::string &nexusfilename,
+                                    T localWorkspace,
+                                    const std::string &top_entry_name,
+                                    Algorithm *alg) {
+  bool foundInstrument =
+      runLoadIDFFromNexus<T>(nexusfilename, localWorkspace, top_entry_name, alg);
+  if (!foundInstrument)
+    foundInstrument =
+        runLoadInstrument<T>(nexusfilename, localWorkspace, top_entry_name, alg);
+  return foundInstrument;
+}
+
+
+//-----------------------------------------------------------------------------
+/** Load the instrument from the nexus file
+*
+*  @param nexusfilename :: The name of the nexus file being loaded
+*  @param localWorkspace :: templated workspace in which to put the instrument
+*geometry
+*  @param top_entry_name :: entry name at the top of the Nexus file
+*  @param alg :: Handle of the algorithm
+*  @return true if successful
+*/
+template<typename T>
+bool LoadEventNexus::runLoadIDFFromNexus(
+    const std::string &nexusfilename, T localWorkspace,
+    const std::string &top_entry_name, Algorithm *alg) {
+  // Test if IDF exists in file, move on quickly if not
+  try {
+    ::NeXus::File nxsfile(nexusfilename);
+    nxsfile.openPath(top_entry_name + "/instrument/instrument_xml");
+  } catch (::NeXus::Exception &) {
+    alg->getLogger().information("No instrument definition found in " +
+                                 nexusfilename + " at " + top_entry_name +
+                                 "/instrument");
+    return false;
+  }
+
+  Mantid::API::IAlgorithm_sptr loadInst = alg->createChildAlgorithm("LoadIDFFromNexus");
+
+  // Now execute the Child Algorithm. Catch and log any error, but don't stop.
+  try {
+    loadInst->setPropertyValue("Filename", nexusfilename);
+    loadInst->setProperty<Mantid::API::MatrixWorkspace_sptr>("Workspace", localWorkspace);
+    loadInst->setPropertyValue("InstrumentParentPath", top_entry_name);
+    loadInst->execute();
+  } catch (std::invalid_argument &) {
+    alg->getLogger().error(
+        "Invalid argument to LoadIDFFromNexus Child Algorithm ");
+  } catch (std::runtime_error &) {
+    alg->getLogger().debug("No instrument definition found in " +
+                           nexusfilename + " at " + top_entry_name +
+                           "/instrument");
+  }
+
+  if (!loadInst->isExecuted())
+    alg->getLogger().information("No IDF loaded from Nexus file.");
+  return loadInst->isExecuted();
+}
 } // namespace DataHandling
 } // namespace Mantid
 
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadIDFFromNexus.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadIDFFromNexus.h
index e8f793f046184b14bfee9dfd0607965db77f2e6c..44ea9f8826ae20b0fc0ac48585d6264ed84e0b4c 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadIDFFromNexus.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadIDFFromNexus.h
@@ -66,6 +66,16 @@ public:
            "Nexus file";
   }
 
+  /// Get the parameter correction file, if it exists else return ""
+  std::string getParameterCorrectionFile( const std::string& instName ) ;
+
+  /// Read parameter correction file, return applicabel parameter file and whether to append
+  void readParameterCorrectionFile( const std::string& correction_file, const std::string& date, 
+    std::string& parameter_file, bool& append  );
+
+  /// Load the parameters from Nexus file if possible, else from parameter file, into workspace
+  void LoadParameters( ::NeXus::File *nxfile, const API::MatrixWorkspace_sptr localWorkspace );
+
   /// Algorithm's version for identification overriding a virtual method
   virtual int version() const { return 1; }
 
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMLZ.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMLZ.h
new file mode 100644
index 0000000000000000000000000000000000000000..71cecc70b42c38e8797a2699413d387661a0bfda
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMLZ.h
@@ -0,0 +1,118 @@
+#ifndef MANTID_DATAHANDLING_LOADMLZ_H_
+#define MANTID_DATAHANDLING_LOADMLZ_H_
+
+//---------------------------------------------------
+// Includes
+//---------------------------------------------------
+#include "MantidAPI/IFileLoader.h"
+#include "MantidNexus/NexusClasses.h"
+#include "MantidDataHandling/LoadHelper.h"
+
+namespace Mantid {
+namespace DataHandling {
+/** 
+    LoadMLZ : Loads MLZ nexus or hdf file into a Mantid workspace.
+
+    Copyright &copy; 2014 ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory
+
+    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 LoadMLZ  : public API::IFileLoader<Kernel::NexusDescriptor>
+  {
+  public:
+    LoadMLZ();
+    virtual ~LoadMLZ();
+    
+    virtual const std::string name() const;
+    virtual int version() const;
+    virtual const std::string category() const;
+
+    ///Summary of algorithms purpose
+    virtual const std::string summary() const {
+      return "Loads a nexus file from MLZ facility.";
+    }
+
+    /// Returns a confidence value that this algorithm can load a file
+    int confidence(Kernel::NexusDescriptor & descriptor) const;
+
+  private:
+    void init();
+    void exec();
+
+    //int getEPPFromVanadium(const std::string &,Mantid::API::MatrixWorkspace_sptr);
+    void loadInstrumentDetails(NeXus::NXEntry&);
+    void loadTimeDetails(NeXus::NXEntry& entry);
+
+    std::vector<std::vector<int> > getMonitorInfo(NeXus::NXEntry& firstEntry);
+
+    //void initWorkSpace(NeXus::NXEntry& entry, const std::vector<std::vector<int> >&);
+    void initWorkSpace(NeXus::NXEntry& entry);
+    void initInstrumentSpecific();
+    void loadRunDetails(NeXus::NXEntry & entry);
+    void loadExperimentDetails(NeXus::NXEntry & entry);
+    //int getDetectorElasticPeakPosition(const NeXus::NXInt &data);
+
+    NeXus::NXData loadNexusFileData(NeXus::NXEntry& entry);
+    void maskDetectors(NeXus::NXEntry& entry);
+    void loadDataIntoTheWorkSpace(NeXus::NXEntry& entry);//, int ElasticPeakPosition = -1);
+
+    void runLoadInstrument();
+
+    /// Calculate error for y
+    static double calculateError(double in) {
+        return sqrt(in);
+    }
+    //int validateVanadium(const std::string &);
+
+    API::MatrixWorkspace_sptr m_localWorkspace;
+
+//	NeXus::NXRoot m_dataRoot;
+//	NeXus::NXRoot m_vanaRoot;
+
+    std::string m_instrumentName; ///< Name of the instrument
+    std::string m_instrumentPath; ///< Name of the instrument path
+
+    // Variables describing the data in the detector
+    size_t m_numberOfTubes; // number of tubes - X
+    size_t m_numberOfPixelsPerTube; //number of pixels per tube - Y
+    size_t m_numberOfChannels; // time channels - Z
+    size_t m_numberOfHistograms;
+
+    /* Values parsed from the nexus file */
+    int m_monitorElasticPeakPosition;
+    double m_wavelength;
+    double m_channelWidth;
+    double m_timeOfFlightDelay;
+    int m_monitorCounts;
+    double m_chopper_speed;
+    int m_chopper_ratio;
+
+    double m_l1;
+    double m_l2;
+
+    std::vector<std::string> m_supportedInstruments;
+    LoadHelper m_mlzloader;
+
+  };
+
+
+} // namespace DataHandling
+} // namespace Mantid
+
+#endif  /* MANTID_DATAHANDLING_LOADMLZ_H_ */
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMask.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMask.h
index 139ba4cd2c987c15520ae0a680499a8520507d25..67641f9f37851b78e4ae1565fb6daa2ad6ae358c 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMask.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMask.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/MaskWorkspace.h"
 
 namespace Poco {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMcStas.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMcStas.h
index b4d77acc1735ef649ce970f27194a6fc85a82be6..de8ef107190c39c23c2ec5d5f07ac567796b1bda 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMcStas.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMcStas.h
@@ -5,7 +5,7 @@
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/IFileLoader.h"
 
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMuonNexus1.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMuonNexus1.h
index 7baed71cc58d3020820f5e547f72b395fa10a4ed..dff119e5cb4521ebb96e8278de3b1ff11509ee32 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMuonNexus1.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadMuonNexus1.h
@@ -107,6 +107,8 @@ private:
   void runLoadLog(DataObjects::Workspace2D_sptr);
   void loadRunDetails(DataObjects::Workspace2D_sptr localWorkspace);
   void addPeriodLog(DataObjects::Workspace2D_sptr localWorkspace, int64_t period);
+  void addGoodFrames(DataObjects::Workspace2D_sptr localWorkspace,
+                     int64_t period, int nperiods);
 
   /// Loads dead time table for the detector
   void loadDeadTimes(Mantid::NeXus::NXRoot &root);
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexus.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexus.h
index 459495e0007217abb11c1991c48dcbcd77aaada4..3289d1749209ef1814df2fc879f1a52ddfedd21d 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexus.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexus.h
@@ -5,10 +5,10 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidKernel/Property.h"
 #include <climits>
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusLogs.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusLogs.h
index 1e38b0d6eb23ef9ca1bd67855874894bc94f58da..423839ca5477644c13a12003b9b0a56d020b1eac 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusLogs.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusLogs.h
@@ -93,6 +93,8 @@ private:
                  boost::shared_ptr<API::MatrixWorkspace> workspace) const;
   void loadVetoPulses(::NeXus::File &file,
                       boost::shared_ptr<API::MatrixWorkspace> workspace) const;
+  void loadNPeriods(::NeXus::File &file,
+                    boost::shared_ptr<API::MatrixWorkspace> workspace) const;
 
   /// Create a time series property
   Kernel::Property *createTimeSeries(::NeXus::File &file,
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusMonitors.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusMonitors.h
index 4d2fb2d8cee94871611ad9febb313c67bee14009..9c6f0694ebbea6be63d4c9bfd340c444778f5617 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusMonitors.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusMonitors.h
@@ -2,7 +2,7 @@
 #define MANTID_DATAHANDLING_LOADNEXUSMONITORS_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include <boost/scoped_array.hpp>
 #include <nexus/NeXusFile.hpp>
 #include <nexus/NeXusException.hpp>
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed.h
index 076d62d044f89941819089354bd2dd064ea1b1d2..9376fa3cdf80de709c293be840cd77aaa509e40f 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed.h
@@ -5,8 +5,8 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/IFileLoader.h"
-#include "MantidAPI/ITableWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include "MantidNexus/NexusClasses.h"
 
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadPreNexus.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadPreNexus.h
index f254be3a1f890e8e11b5932ed15dd7576d7a4874..0505eaabe5bdf16d3c8ceed98a1e86bf773f5e9d 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadPreNexus.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadPreNexus.h
@@ -4,7 +4,7 @@
 #include <string>
 #include <vector>
 #include "MantidAPI/IFileLoader.h"
-#include "MantidAPI/IEventWorkspace.h"
+#include "MantidAPI/IEventWorkspace_fwd.h"
 #include "MantidKernel/System.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadPreNexusMonitors.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadPreNexusMonitors.h
index f1cef6daa73869a21b70b9c95676164806f71441..7b69dd97083615549e255a5c46a03ce6e10f526d 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadPreNexusMonitors.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadPreNexusMonitors.h
@@ -2,7 +2,7 @@
 #define LOADPRENEXUSMONITORS_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSassena.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSassena.h
index a17dbfb7bde59a1dadbc537b15ce76ef7dabdc2c..b474ec783fb21f76a789eb5344b69249d013612f 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSassena.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSassena.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/IFileLoader.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include <hdf5.h>
 
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSavuTomoConfig.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSavuTomoConfig.h
index 469369ff4d4d46e25e13ade2e34243d0ca305468..7fea846b651a8e4e9a66617c2a634090180b1c78 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSavuTomoConfig.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSavuTomoConfig.h
@@ -2,7 +2,7 @@
 #define MANTID_DATAHANDLING_LOADSAVUTOMOCONFIG_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace NeXus {
   class File;
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSpiceAscii.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSpiceAscii.h
index 5894c962bdee659c412a7da5dae569995cee21dd..916ab7dac6b1772697db65572e1b88446a99ea50 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSpiceAscii.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSpiceAscii.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 #include "MantidAPI/IFileLoader.h"
 
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSpiceXML2DDet.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSpiceXML2DDet.h
index 418c5a41954a6ad2e56d101db90b7e806b1b963c..30a123488a5ccd2cd354bef5dc25ccaad4accad3 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSpiceXML2DDet.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadSpiceXML2DDet.h
@@ -3,8 +3,8 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadVulcanCalFile.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadVulcanCalFile.h
index 33ae9d4224effc3b31e976606dbbac4df7634c37..ee8dc7ceeaba5874eb49bf0172a19c49c25dd503 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadVulcanCalFile.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/LoadVulcanCalFile.h
@@ -3,7 +3,7 @@
 
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/IAlgorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/GroupingWorkspace.h"
 #include "MantidDataObjects/MaskWorkspace.h"
 #include "MantidDataObjects/OffsetsWorkspace.h"
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveAscii2.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveAscii2.h
index bfd5fe1ec27c36c0a09548133fe12b4601f573f6..15032f39b9f67f72f91c5eebb73715f20bf2f31e 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveAscii2.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveAscii2.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveCalFile.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveCalFile.h
index 59232e019bfd9473d4086c3330c3d895e126ca04..ff69ed406812a1a36bce30677d7488a480415c87 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveCalFile.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveCalFile.h
@@ -6,7 +6,7 @@
 #include "MantidDataObjects/GroupingWorkspace.h"
 #include "MantidDataObjects/MaskWorkspace.h"
 #include "MantidDataObjects/OffsetsWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveDiffCal.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveDiffCal.h
new file mode 100644
index 0000000000000000000000000000000000000000..6e6aea29c91cac31a3c06d6519e41d8ce8d46ef3
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveDiffCal.h
@@ -0,0 +1,69 @@
+#ifndef MANTID_DATAHANDLING_SAVEDIFFCAL_H_
+#define MANTID_DATAHANDLING_SAVEDIFFCAL_H_
+
+#include "MantidKernel/System.h"
+#include "MantidAPI/Algorithm.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
+#include "MantidDataObjects/SpecialWorkspace2D.h"
+
+namespace H5 {
+class Group;
+}
+
+namespace Mantid {
+namespace DataHandling {
+
+/** SaveDiffCal : TODO: DESCRIPTION
+
+  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 SaveDiffCal : public API::Algorithm {
+public:
+  SaveDiffCal();
+  virtual ~SaveDiffCal();
+
+  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();
+  std::map<std::string, std::string> validateInputs();
+
+  void writeDoubleFieldFromTable(H5::Group &group, const std::string &name);
+  void writeIntFieldFromTable(H5::Group &group, const std::string &name);
+  void writeIntFieldFromSVWS(H5::Group &group, const std::string &name,
+                             DataObjects::SpecialWorkspace2D_const_sptr ws);
+  void generateDetidToIndex();
+  bool tableHasColumn(const std::string name) const;
+
+  std::size_t m_numValues;
+  API::ITableWorkspace_sptr m_calibrationWS;
+  std::map<detid_t, size_t> m_detidToIndex;
+};
+
+} // namespace DataHandling
+} // namespace Mantid
+
+#endif /* MANTID_DATAHANDLING_SAVEDIFFCAL_H_ */
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveILLCosmosAscii.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveILLCosmosAscii.h
index 00394194411ee406f7284427542f4c9b542469eb..67293d0071652366d3a511e1cedfcc039a905410 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveILLCosmosAscii.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveILLCosmosAscii.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataHandling/AsciiPointBase.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveIsawDetCal.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveIsawDetCal.h
index 157e2c769a11e46d89a5a0f20d533d28c7d22dc0..6c83744d972e70821d4c06a6714596416720816c 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveIsawDetCal.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveIsawDetCal.h
@@ -58,6 +58,11 @@ private:
   void init();
   /// Run the algorithm
   void exec();
+  /// find position for rectangular and non-rectangular
+  Kernel::V3D findPixelPos(std::string bankName, int col, int row);
+  void sizeBanks(std::string bankName, int &NCOLS, int &NROWS, double &xsize,
+                 double &ysize);
+  Geometry::Instrument_const_sptr inst;
 };
 
 } // namespace DataHandling
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflCustomAscii.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflCustomAscii.h
index 9fa3ca3d399f0d0f83aaabbb63670f50562f17ec..bd823921f100fcaf9d4c27503769619b99dc42ae 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflCustomAscii.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflCustomAscii.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataHandling/AsciiPointBase.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflTBL.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflTBL.h
index fd83a040024b8c01698767f57882894c090d7471..34dd307385909b947c7ddf8e71e43de02550a911 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflTBL.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflTBL.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflThreeColumnAscii.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflThreeColumnAscii.h
index 4e95c7f56c6bf1d9be09cb2c6f9ce860f7e4e2c6..8aded199c848cf5e6590daddf198b7b6b04fbad8 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflThreeColumnAscii.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveReflThreeColumnAscii.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataHandling/AsciiPointBase.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveSavuTomoConfig.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveSavuTomoConfig.h
index 20de386f2250745c6d138799b9b8d26c32f75691..668e1a0e5f2f3644e09a124e1593f81fddb19481 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveSavuTomoConfig.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveSavuTomoConfig.h
@@ -5,7 +5,7 @@
 // Includes
 //---------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveToSNSHistogramNexus.h b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveToSNSHistogramNexus.h
index 64062df2762fcf7c4ec118318f01fed58ad8bc72..b0f84c9b87f83e6271a0ee760996d307d9374081 100644
--- a/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveToSNSHistogramNexus.h
+++ b/Code/Mantid/Framework/DataHandling/inc/MantidDataHandling/SaveToSNSHistogramNexus.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
 #include <climits>
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/Sample.h"
 #include "MantidAPI/Progress.h"
 #include "MantidDataObjects/Workspace2D.h"
diff --git a/Code/Mantid/Framework/DataHandling/src/CheckMantidVersion.cpp b/Code/Mantid/Framework/DataHandling/src/CheckMantidVersion.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c415ffd92494991c4411bfd9ee8c3a0881c4323b
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/src/CheckMantidVersion.cpp
@@ -0,0 +1,234 @@
+#include "MantidDataHandling/CheckMantidVersion.h"
+#include "MantidKernel/InternetHelper.h"
+#include "MantidKernel/MantidVersion.h"
+#include "MantidKernel/Strings.h"
+
+#include <Poco/DateTimeFormatter.h>
+#include <Poco/DateTimeFormat.h>
+#include <Poco/DateTimeParser.h>
+#include <Poco/StringTokenizer.h>
+
+// jsoncpp
+#include <json/json.h>
+
+#include <boost/lexical_cast.hpp>
+
+namespace Mantid {
+namespace DataHandling {
+
+using namespace Mantid::Kernel;
+using Mantid::API::WorkspaceProperty;
+
+// Register the algorithm into the AlgorithmFactory
+DECLARE_ALGORITHM(CheckMantidVersion)
+
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+CheckMantidVersion::CheckMantidVersion() {}
+
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+CheckMantidVersion::~CheckMantidVersion() {}
+
+//----------------------------------------------------------------------------------------------
+
+/// Algorithms name for identification. @see Algorithm::name
+const std::string CheckMantidVersion::name() const {
+  return "CheckMantidVersion";
+}
+
+/// Algorithm's version for identification. @see Algorithm::version
+int CheckMantidVersion::version() const { return 1; }
+
+/// Algorithm's category for identification. @see Algorithm::category
+const std::string CheckMantidVersion::category() const {
+  return "Utility\\Development";
+}
+
+/// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
+const std::string CheckMantidVersion::summary() const {
+  return "Checks if there is a more recent version of Mantid available using "
+         "the Github API";
+}
+
+//----------------------------------------------------------------------------------------------
+/** Initialize the algorithm's properties.
+ */
+void CheckMantidVersion::init() {
+  declareProperty("CurrentVersion", "", Direction::Output);
+  declareProperty("MostRecentVersion", "", Direction::Output);
+  declareProperty("IsNewVersionAvailable", false,"True if a newer version is available, otherwise false", Direction::Output);
+}
+
+  //----------------------------------------------------------------------------------------------
+/** Execute the algorithm.
+ */
+void CheckMantidVersion::exec() {
+  std::string currentVersion = getCurrentVersion();
+  setProperty("CurrentVersion", currentVersion);
+  std::string mostRecentVersion = "";
+
+  std::string gitHubReleaseUrl = ConfigService::Instance().getString(
+      "CheckMantidVersion.GitHubReleaseURL");
+  if (gitHubReleaseUrl.empty()) {
+    gitHubReleaseUrl =
+        "https://api.github.com/repos/mantidproject/mantid/releases/latest";
+  }
+  std::string downloadUrl =
+      ConfigService::Instance().getString("CheckMantidVersion.DownloadURL");
+  if (downloadUrl.empty()) {
+    downloadUrl = "http://download.mantidproject.org";
+  }
+
+  std::string json = "";
+  try {
+    json = getVersionsFromGitHub(gitHubReleaseUrl);
+  } catch (Exception::InternetError &ex) {
+    if (ex.errorCode() == InternetHelper::HTTP_NOT_MODIFIED) {
+      // No changes since last release
+      //mostRecentVersion = getCurrentVersion();
+      mostRecentVersion = "No new versions since " + 
+        std::string(MantidVersion::releaseDate());
+    } else {
+      // any other exception just log quietly and return
+      g_log.debug("Cannot get latest version details from " + gitHubReleaseUrl);
+      g_log.debug("The address can be changed using the property CheckMantidVersion.GitHubReleaseURL");
+      g_log.debug(ex.what());
+      return;
+    }
+  }
+
+  bool isNewVersionAvailable = false;
+  if (!json.empty()) {
+    Json::Reader r;
+    Json::Value root;
+    r.parse(json, root);
+
+    std::string gitHubVersionTag = root["tag_name"].asString();
+    mostRecentVersion = cleanVersionTag(gitHubVersionTag);
+  
+    isNewVersionAvailable = isVersionMoreRecent(currentVersion, mostRecentVersion);
+    if (isNewVersionAvailable) {
+      // output a notice level log
+      g_log.notice("A new version of Mantid(" + mostRecentVersion +
+                   ") is available for download from " + downloadUrl);
+    }
+  }
+
+  g_log.information("Current Mantid Version: " + currentVersion);
+  g_log.information("Most Recent Mantid Version: " + mostRecentVersion);
+
+  setProperty("MostRecentVersion", mostRecentVersion);
+  setProperty("IsNewVersionAvailable", isNewVersionAvailable);
+}
+
+/** Cleans the tag name from github to make it similar to that from
+* MantidVersion
+* @param versionTag the version tag that needs cleaning
+* @returns a clean string
+*/
+std::string
+CheckMantidVersion::cleanVersionTag(const std::string &versionTag) const {
+  std::string retVal = versionTag;
+
+  retVal = Strings::replaceAll(retVal, "v", "");
+  retVal = Strings::replaceAll(retVal, "V", "");
+  retVal = Strings::strip(retVal);
+
+  return retVal;
+}
+
+/** splits a . separated version string into a vector of integers
+* @param versionString Something like "2.3.4"
+* @returns a vector of [2,3,4]
+*/
+std::vector<int>
+CheckMantidVersion::splitVersionString(const std::string &versionString) const {
+  std::vector<int> retVal;
+  Poco::StringTokenizer tokenizer(versionString, ".",
+                                  Poco::StringTokenizer::TOK_TRIM |
+                                      Poco::StringTokenizer::TOK_IGNORE_EMPTY);
+  Poco::StringTokenizer::Iterator h = tokenizer.begin();
+
+  for (; h != tokenizer.end(); ++h) {
+    try {
+      int part = boost::lexical_cast<int>(*h);
+      retVal.push_back(part);
+    } catch (const boost::bad_lexical_cast &) {
+      g_log.error("Failed to convert the following string to an integer '" +
+                  *h + "' as part of CheckMantidVersion::splitVersionString");
+      retVal.push_back(0);
+    }
+  }
+  return retVal;
+}
+
+/** Compare two version strings, tests if the gitHubVersion is more recent
+* @param localVersion Something like "2.3.4"
+* @param gitHubVersion Something like "2.3.4"
+* @returns True if gitHubVersion is more recent
+*/
+bool CheckMantidVersion::isVersionMoreRecent(
+    const std::string &localVersion, const std::string &gitHubVersion) const {
+  auto localVersionParts = splitVersionString(localVersion);
+  auto gitHubVersionParts = splitVersionString(gitHubVersion);
+
+  for (size_t i = 0; i < gitHubVersionParts.size(); i++) {
+    // sanity check
+    if (i >= localVersionParts.size()) {
+      // ran out of items to compare
+      break;
+    }
+
+    // the revision number needs to be handled separately
+    if (i == 2) {
+      if (localVersionParts[i] > 2000) {
+        // this is a date string, nightly build
+        // state that the local version is up to date
+        return false;
+      }
+    }
+    if (gitHubVersionParts[i] > localVersionParts[i]) {
+      return true;
+    }
+    if (gitHubVersionParts[i] < localVersionParts[i]) {
+      return false;
+    }
+  }
+  return false;
+}
+
+/** Gets the version json for the most recent release from gitHub
+
+@param url : The url to use
+@exception Mantid::Kernel::Exception::InternetError : For any unexpected
+behaviour.
+*/
+std::string CheckMantidVersion::getVersionsFromGitHub(const std::string &url) {
+
+  Kernel::InternetHelper inetHelper;
+  std::ostringstream os;
+  int tzd = 0;
+
+  inetHelper.headers().insert(std::make_pair(
+      "if-modified-since",
+      Poco::DateTimeFormatter::format(
+          Poco::DateTimeParser::parse(MantidVersion::releaseDate(), tzd),
+          Poco::DateTimeFormat::HTTP_FORMAT)));
+  inetHelper.sendRequest(url, os);
+  std::string retVal = os.str();
+
+  return retVal;
+}
+/** Gets the version of this Mantid
+@returns a string of the form "1.2.3[.4]"
+*/
+std::string CheckMantidVersion::getCurrentVersion() const
+{
+  return Mantid::Kernel::MantidVersion::version();
+}
+
+} // namespace DataHandling
+} // namespace Mantid
\ No newline at end of file
diff --git a/Code/Mantid/Framework/DataHandling/src/CreateChunkingFromInstrument.cpp b/Code/Mantid/Framework/DataHandling/src/CreateChunkingFromInstrument.cpp
index 49ef716f071d41ff1d2f6e2e7f59f2814cfb4634..f026d23dedb34055f4434bc2c8cfe8001a208566 100644
--- a/Code/Mantid/Framework/DataHandling/src/CreateChunkingFromInstrument.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/CreateChunkingFromInstrument.cpp
@@ -1,5 +1,6 @@
 #include "MantidAPI/FileProperty.h"
 #include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidDataHandling/CreateChunkingFromInstrument.h"
 #include "MantidDataObjects/Workspace2D.h"
diff --git a/Code/Mantid/Framework/DataHandling/src/EventWorkspaceCollection.cpp b/Code/Mantid/Framework/DataHandling/src/EventWorkspaceCollection.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..baa1655e5c55740503e6b8688188293b2f86d946
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/src/EventWorkspaceCollection.cpp
@@ -0,0 +1,294 @@
+#include "MantidDataHandling/EventWorkspaceCollection.h"
+#include "MantidDataObjects/EventWorkspace.h"
+#include "MantidKernel/UnitFactory.h"
+#include "MantidAPI/Run.h"
+
+#include <vector>
+#include <set>
+#include <memory>
+#include <boost/bind.hpp>
+
+namespace Mantid {
+namespace DataHandling {
+
+using namespace Mantid::DataObjects;
+using namespace Mantid::Kernel;
+using namespace Mantid::API;
+
+namespace {
+
+/**
+ * Copy all logData properties from the 'from' workspace to the 'to'
+ * workspace. Does not use CopyLogs as a child algorithm (this is a
+ * simple copy and the workspace is not yet in the ADS).
+ *
+ * @param from source of log entries
+ * @param to workspace where to add the log entries
+ */
+void copyLogs(const EventWorkspace_sptr& from,
+                                  EventWorkspace_sptr& to)
+{
+  // from the logs, get all the properties that don't overwrite any
+  // prop. already set in the sink workspace (like 'filename').
+  auto props = from->mutableRun().getLogData();
+  for (size_t j=0; j<props.size(); j++) {
+    if (!to->mutableRun().hasProperty(props[j]->name())) {
+      to->mutableRun().addLogData(props[j]->clone());
+    }
+  }
+}
+
+}
+
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+EventWorkspaceCollection::EventWorkspaceCollection(): m_WsVec(1, createEmptyEventWorkspace()) {}
+
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+EventWorkspaceCollection::~EventWorkspaceCollection() {}
+
+//-----------------------------------------------------------------------------
+/**
+* Create a blank event workspace
+* @returns A shared pointer to a new empty EventWorkspace object
+*/
+EventWorkspace_sptr EventWorkspaceCollection::createEmptyEventWorkspace() const {
+  // Create the output workspace
+  EventWorkspace_sptr eventWS(new EventWorkspace());
+  // Make sure to initialize.
+  //   We can use dummy numbers for arguments, for event workspace it doesn't
+  //   matter
+  eventWS->initialize(1, 1, 1);
+
+  // Set the units
+  eventWS->getAxis(0)->unit() = UnitFactory::Instance().create("TOF");
+  eventWS->setYUnit("Counts");
+
+  return eventWS;
+}
+
+void EventWorkspaceCollection::setNPeriods(size_t nPeriods, std::unique_ptr<const TimeSeriesProperty<int> >& periodLog) {
+
+  // Create vector where size is the number of periods and initialize workspaces in each.
+  auto temp = m_WsVec[0];
+  m_WsVec = std::vector<DataObjects::EventWorkspace_sptr>(
+      nPeriods);
+
+  std::vector<int> periodNumbers = periodLog->valuesAsVector();
+  std::set<int> uniquePeriods(periodNumbers.begin(), periodNumbers.end());
+  const bool addBoolTimeSeries = (uniquePeriods.size() == nPeriods);
+
+  for (size_t i = 0; i < m_WsVec.size(); ++i) {
+    const int periodNumber = int(i+1);
+    m_WsVec[i] =  createEmptyEventWorkspace();
+    m_WsVec[i]->copyExperimentInfoFrom(temp.get());
+    if(addBoolTimeSeries) {
+        std::stringstream buffer;
+        buffer << "period " << periodNumber;
+        auto * periodBoolLog = new Kernel::TimeSeriesProperty<bool>(buffer.str());
+        for(int j = 0; j < int(periodLog->size()); ++j){
+            periodBoolLog->addValue(periodLog->nthTime(j), periodNumber == periodLog->nthValue(j));
+        }
+        Run& mutableRun =  m_WsVec[i]->mutableRun();
+        mutableRun.addProperty(periodBoolLog);
+
+
+        Kernel::PropertyWithValue<int> *currentPeriodProperty =
+            new Kernel::PropertyWithValue<int>("current_period", periodNumber);
+        mutableRun.addProperty(currentPeriodProperty);
+    }
+
+    copyLogs(temp, m_WsVec[i]); // Copy all logs from dummy workspace to period workspaces.
+    m_WsVec[i]->setInstrument(temp->getInstrument());
+  }
+}
+
+
+void EventWorkspaceCollection::reserveEventListAt(size_t wi, size_t size){
+    for(size_t i = 0; i < m_WsVec.size(); ++i){
+         m_WsVec[i]->getEventList(wi).reserve(size);
+    }
+}
+
+size_t EventWorkspaceCollection::nPeriods() const {
+    return m_WsVec.size();
+}
+
+DataObjects::EventWorkspace_sptr EventWorkspaceCollection::getSingleHeldWorkspace(){return m_WsVec.front();}
+
+API::Workspace_sptr EventWorkspaceCollection::combinedWorkspace(){
+    API::Workspace_sptr final;
+    if( this->nPeriods() == 1 ){
+        final = getSingleHeldWorkspace();
+    }
+    else{
+         auto wsg = boost::make_shared<API::WorkspaceGroup>();
+         for(size_t i = 0; i < m_WsVec.size(); ++i){
+             wsg->addWorkspace(m_WsVec[i]);
+         }
+         final = wsg;
+    }
+    return final;
+}
+
+Geometry::Instrument_const_sptr EventWorkspaceCollection::getInstrument() const
+{
+    return m_WsVec[0]->getInstrument();
+}
+const API::Run &EventWorkspaceCollection::run() const
+{
+    return m_WsVec[0]->run();
+}
+API::Run &EventWorkspaceCollection::mutableRun() {
+    return m_WsVec[0]->mutableRun();
+}
+API::Sample &EventWorkspaceCollection::mutableSample() {
+  return m_WsVec[0]->mutableSample();
+}
+Mantid::API::ISpectrum* EventWorkspaceCollection::getSpectrum(const size_t index)  {
+    return m_WsVec[0]->getSpectrum(index);
+}
+const Mantid::API::ISpectrum *EventWorkspaceCollection::getSpectrum(const size_t index) const{
+    return m_WsVec[0]->getSpectrum(index);
+}
+void EventWorkspaceCollection::setSpectrumNumbersFromUniqueSpectra(const std::set<int> uniqueSpectra){
+  // For each workspace, update all the spectrum numbers
+  for (auto ws = m_WsVec.begin(); ws != m_WsVec.end(); ++ws) {
+    size_t counter = 0;
+    for (auto it = uniqueSpectra.begin(); it !=uniqueSpectra.end(); ++it) {
+      (*ws)->getSpectrum(counter)->setSpectrumNo(*it);
+      ++counter;
+    }
+  }
+}
+
+void EventWorkspaceCollection::setSpectrumNumberForAllPeriods(const size_t spectrumNumber, const specid_t specid) {
+  for (auto ws = m_WsVec.begin(); ws != m_WsVec.end(); ++ws) {
+    auto spec = (*ws)->getSpectrum(spectrumNumber);
+    spec->setSpectrumNo(specid);
+  }
+}
+
+void EventWorkspaceCollection::setDetectorIdsForAllPeriods(const size_t spectrumNumber, const detid_t id) {
+  for (auto ws = m_WsVec.begin(); ws != m_WsVec.end(); ++ws) {
+    auto spec = (*ws)->getSpectrum(spectrumNumber);
+    spec->setDetectorID(id);
+  }
+}
+
+Mantid::API::Axis* EventWorkspaceCollection::getAxis(const size_t& i) const {
+    return m_WsVec[0]->getAxis(i);
+}
+size_t EventWorkspaceCollection::getNumberHistograms() const  {
+    return m_WsVec[0]->getNumberHistograms();
+}
+const DataObjects::EventList& EventWorkspaceCollection::getEventList(const size_t workspace_index) const {
+    return m_WsVec[0]->getEventList(workspace_index); // TODO need to know PERIOD number TOO
+}
+
+const DataObjects::EventList& EventWorkspaceCollection::getEventList(const size_t workspace_index, const size_t periodNumber) const {
+    return m_WsVec[periodNumber]->getEventList(workspace_index);
+}
+
+DataObjects::EventList& EventWorkspaceCollection::getEventList(const size_t workspace_index, const size_t periodNumber)  {
+    return m_WsVec[periodNumber]->getEventList(workspace_index);
+}
+
+DataObjects::EventList &EventWorkspaceCollection::getEventList(const std::size_t workspace_index){
+    return m_WsVec[0]->getEventList(workspace_index); // TODO need to know PERIOD number TOO
+}
+
+void EventWorkspaceCollection::getSpectrumToWorkspaceIndexVector(std::vector<size_t>&out, Mantid::specid_t& offset) const  {
+    return m_WsVec[0]->getSpectrumToWorkspaceIndexVector(out, offset);
+}
+void EventWorkspaceCollection::getDetectorIDToWorkspaceIndexVector(std::vector<size_t>&out, Mantid::specid_t& offset, bool dothrow) const{
+    return m_WsVec[0]->getDetectorIDToWorkspaceIndexVector(out, offset, dothrow);
+}
+
+Kernel::DateAndTime EventWorkspaceCollection::getFirstPulseTime() const  {
+    return m_WsVec[0]->getFirstPulseTime();
+}
+void EventWorkspaceCollection::setAllX(Kernel::cow_ptr<MantidVec>& x)  {
+    for(size_t i = 0; i < m_WsVec.size(); ++i){
+         m_WsVec[i]->setAllX(x);
+    }
+}
+size_t EventWorkspaceCollection::getNumberEvents() const  {
+    return m_WsVec[0]->getNumberEvents(); // Should be the sum across all periods?
+}
+void EventWorkspaceCollection::resizeTo(const size_t size)  {
+    for(size_t i = 0; i < m_WsVec.size(); ++i){
+         m_WsVec[i]->resizeTo(size); // Creates the EventLists
+    }
+}
+void EventWorkspaceCollection::padSpectra(const std::vector<int32_t>& padding)  {
+    for(size_t i = 0; i < m_WsVec.size(); ++i){
+         m_WsVec[i]->padSpectra(padding); // Set detector ids and spectrum numbers
+    }
+}
+void EventWorkspaceCollection::setInstrument(const Geometry::Instrument_const_sptr& inst)  {
+    for(size_t i = 0; i < m_WsVec.size(); ++i){
+         m_WsVec[i]->setInstrument(inst);
+    }
+}
+void EventWorkspaceCollection::setMonitorWorkspace(const boost::shared_ptr<API::MatrixWorkspace>& monitorWS)  {
+    for(size_t i = 0; i < m_WsVec.size(); ++i){
+         m_WsVec[i]->setMonitorWorkspace(monitorWS); // TODO, do we really set the same monitor on all periods???
+    }
+}
+void EventWorkspaceCollection::updateSpectraUsing(const API::SpectrumDetectorMapping& map)  {
+    for(size_t i = 0; i < m_WsVec.size(); ++i){
+         m_WsVec[i]->updateSpectraUsing(map);
+    }
+
+}
+
+DataObjects::EventList* EventWorkspaceCollection::getEventListPtr(size_t i){
+    return m_WsVec[0]->getEventListPtr(i);  // TODO, just take from the first workspace
+}
+
+void EventWorkspaceCollection::populateInstrumentParameters() {
+  for (size_t i = 0; i < m_WsVec.size(); ++i) {
+    m_WsVec[i]->populateInstrumentParameters();
+  }
+}
+
+void EventWorkspaceCollection::setGeometryFlag(const int flag) {
+  for (size_t i = 0; i < m_WsVec.size(); ++i) {
+    m_WsVec[i]->mutableSample().setGeometryFlag(flag);
+  }
+}
+
+void EventWorkspaceCollection::setThickness(const float flag) {
+  for (size_t i = 0; i < m_WsVec.size(); ++i) {
+    m_WsVec[i]->mutableSample().setThickness(flag);
+  }
+}
+void EventWorkspaceCollection::setHeight(const float flag) {
+  for (size_t i = 0; i < m_WsVec.size(); ++i) {
+    m_WsVec[i]->mutableSample().setHeight(flag);
+  }
+}
+void EventWorkspaceCollection::setWidth(const float flag) {
+  for (size_t i = 0; i < m_WsVec.size(); ++i) {
+    m_WsVec[i]->mutableSample().setWidth(flag);
+  }
+}
+
+void EventWorkspaceCollection::setTitle(std::string title) {
+  for (size_t i = 0; i < m_WsVec.size(); ++i) {
+    m_WsVec[i]->setTitle(title);
+  }
+}
+
+void EventWorkspaceCollection::applyFilter(boost::function<void (MatrixWorkspace_sptr)> func) {
+  for (size_t i = 0; i < m_WsVec.size(); ++i) {
+    func(m_WsVec[i]);
+  }
+}
+
+} // namespace DataHandling
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/DataHandling/src/GroupDetectors2.cpp b/Code/Mantid/Framework/DataHandling/src/GroupDetectors2.cpp
index d492668405acc4eef3b263152fa8aba23981c977..9d5bde2db69c075ec24adb6a553504b40f73131a 100644
--- a/Code/Mantid/Framework/DataHandling/src/GroupDetectors2.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/GroupDetectors2.cpp
@@ -1308,6 +1308,100 @@ void GroupDetectors2::RangeHelper::getList(const std::string &line,
   }
 }
 
+namespace {
+
+/* The following functions are used to translate single operators into
+ * groups, just like the ones this algorithm loads from .map files.
+ *
+ * Each function takes a string, such as "3+4", or "6:10" and then adds
+ * the resulting groups of spectra to outGroups.
+ */
+
+// An add operation, i.e. "3+4" -> [3+4]
+void translateAdd(const std::string &instructions,
+                  std::vector<std::vector<int>> &outGroups) {
+  std::vector<std::string> spectra;
+  boost::split(spectra, instructions, boost::is_any_of("+"));
+
+  std::vector<int> outSpectra;
+  for (auto sIt = spectra.begin(); sIt != spectra.end(); ++sIt) {
+    std::string spectrum = *sIt;
+    // remove leading/trailing whitespace
+    boost::trim(spectrum);
+    // add this spectrum to the group we're about to add
+    outSpectra.push_back(boost::lexical_cast<int>(spectrum));
+  }
+  outGroups.push_back(outSpectra);
+}
+
+// A range summation, i.e. "3-6" -> [3+4+5+6]
+void translateSumRange(const std::string &instructions,
+                       std::vector<std::vector<int>> &outGroups) {
+  // add a group with the sum of the spectra in the range
+  std::vector<std::string> spectra;
+  boost::split(spectra, instructions, boost::is_any_of("-"));
+  if (spectra.size() != 2)
+    throw std::runtime_error("Malformed range (-) operation.");
+  // fetch the start and stop spectra
+  int first = boost::lexical_cast<int>(spectra[0]);
+  int last = boost::lexical_cast<int>(spectra[1]);
+  // swap if they're back to front
+  if (first > last)
+    std::swap(first, last);
+
+  // add all the spectra in the range to the output group
+  std::vector<int> outSpectra;
+  for (int i = first; i <= last; ++i)
+    outSpectra.push_back(i);
+  if (!outSpectra.empty())
+    outGroups.push_back(outSpectra);
+}
+
+// A range insertion, i.e. "3:6" -> [3,4,5,6]
+void translateRange(const std::string &instructions,
+                    std::vector<std::vector<int>> &outGroups) {
+  // add a group per spectra
+  std::vector<std::string> spectra;
+  boost::split(spectra, instructions, boost::is_any_of(":"));
+  if (spectra.size() != 2)
+    throw std::runtime_error("Malformed range (:) operation.");
+  // fetch the start and stop spectra
+  int first = boost::lexical_cast<int>(spectra[0]);
+  int last = boost::lexical_cast<int>(spectra[1]);
+  // swap if they're back to front
+  if (first > last)
+    std::swap(first, last);
+
+  // add all the spectra in the range to separate output groups
+  for (int i = first; i <= last; ++i) {
+    // create group of size 1 with the spectrum in it
+    std::vector<int> newGroup(1, i);
+    // and add it to output
+    outGroups.push_back(newGroup);
+  }
+}
+} // anonymous namespace
+
+/**
+ * Used to validate the inputs for GroupDetectors2
+ *
+ * @returns : A map of the invalid property names to what the problem is.
+ */
+std::map<std::string, std::string> GroupDetectors2::validateInputs() {
+  std::map<std::string, std::string> errors;
+
+  const std::string pattern = getPropertyValue("GroupingPattern");
+
+  boost::regex re(
+      "^\\s*[0-9]+\\s*$|^(\\s*,*[0-9]+(\\s*(,|:|\\+|\\-)\\s*)*[0-9]*)*$");
+  if (!pattern.empty() && !boost::regex_match(pattern, re)) {
+    errors["GroupingPattern"] =
+        "GroupingPattern is not well formed: " + pattern;
+  }
+
+  return errors;
+}
+
 /**
  * Translate the PerformIndexOperations processing instructions into a format
  * usable by GroupDetectors.
@@ -1317,20 +1411,11 @@ void GroupDetectors2::RangeHelper::getList(const std::string &line,
  */
 void GroupDetectors2::translateInstructions(const std::string &instructions,
                                             std::stringstream &commands) {
-
-  // first check that the instructions/pattern makes sense
-  boost::regex re(
-      "^\\s*[0-9]+\\s*$|^(\\s*,*[0-9]+(\\s*(,|:|\\+|\\-)\\s*)*[0-9]*)*$");
-  if (!boost::regex_match(instructions, re)) {
-    throw std::invalid_argument("GroupingPattern is not well formed: " +
-                                instructions);
-  }
-
   // vector of groups, each group being a vector of its spectra
   std::vector<std::vector<int>> outGroups;
 
   // split into comma separated groups, each group potentially containing
-  // an operation (+-:)
+  // an operation (+-:) that produces even more groups.
   std::vector<std::string> groups;
   boost::split(groups, instructions, boost::is_any_of(","));
 
@@ -1339,57 +1424,17 @@ void GroupDetectors2::translateInstructions(const std::string &instructions,
     // remove leading/trailing whitespace
     boost::trim(groupStr);
 
+    // Look for the various operators in the string. If one is found then
+    // do the necessary translation into groupings.
     if (groupStr.find("+") != std::string::npos) {
       // add a group with the given spectra
-      std::vector<std::string> spectra;
-      boost::split(spectra, groupStr, boost::is_any_of("+"));
-
-      std::vector<int> outSpectra;
-      for (auto sIt = spectra.begin(); sIt != spectra.end(); ++sIt) {
-        std::string spectrum = *sIt;
-        // remove leading/trailing whitespace
-        boost::trim(spectrum);
-        // add this spectrum to the group we're about to add
-        outSpectra.push_back(boost::lexical_cast<int>(spectrum));
-      }
-      outGroups.push_back(outSpectra);
-
+      translateAdd(groupStr, outGroups);
     } else if (groupStr.find("-") != std::string::npos) {
-      // add a group with the sum of the spectra in the range
-      std::vector<std::string> spectra;
-      boost::split(spectra, groupStr, boost::is_any_of("-"));
-      if (spectra.size() != 2)
-        throw std::runtime_error("Malformed range (-) operation.");
-      // fetch the start and stop spectra
-      int first = boost::lexical_cast<int>(spectra[0]);
-      int last = boost::lexical_cast<int>(spectra[1]);
-      // swap if they're back to front
-      if (first > last)
-        std::swap(first, last);
-
-      // add all the spectra in the range to the output group
-      std::vector<int> outSpectra;
-      for (int i = first; i <= last; ++i)
-        outSpectra.push_back(i);
-      if (!outSpectra.empty())
-        outGroups.push_back(outSpectra);
-
+      translateSumRange(groupStr, outGroups);
     } else if (groupStr.find(":") != std::string::npos) {
-      // add a group per spectra
-      std::vector<std::string> spectra;
-      boost::split(spectra, groupStr, boost::is_any_of(":"));
-
-      for (auto sIt = spectra.begin(); sIt != spectra.end(); ++sIt) {
-        std::string spectrum = *sIt;
-        // remove leading/trailing whitespace
-        boost::trim(spectrum);
-        // create group of size 1 with the spectrum in it
-        std::vector<int> newGroup(1, boost::lexical_cast<int>(spectrum));
-        // and add it to output
-        outGroups.push_back(newGroup);
-      }
+      translateRange(groupStr, outGroups);
     } else if (!groupStr.empty()) {
-      // contains no instructions, just add the spectra as a new group
+      // contains no instructions, just add this spectrum as a new group
       // create group of size 1 with the spectrum in it
       std::vector<int> newGroup(1, boost::lexical_cast<int>(groupStr));
       // and add it to output
@@ -1397,6 +1442,8 @@ void GroupDetectors2::translateInstructions(const std::string &instructions,
     }
   }
 
+  // We now have the groups as a vector of a vector of ints. Turn this into a
+  // string, just like the contents of a map file.
   commands << outGroups.size() << "\n";
   for (size_t i = 0; i < outGroups.size(); ++i) {
     const int groupId = outGroups[i][0] + 1;
diff --git a/Code/Mantid/Framework/DataHandling/src/Load.cpp b/Code/Mantid/Framework/DataHandling/src/Load.cpp
index cc23bd0ae14bec92e59e082e6d165985802265c9..5eb84e66ba570152a4a122508fe1a358aaef3986 100644
--- a/Code/Mantid/Framework/DataHandling/src/Load.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/Load.cpp
@@ -7,6 +7,7 @@
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/IEventWorkspace.h"
 #include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/IWorkspaceProperty.h"
 #include "MantidAPI/MultipleFileProperty.h"
 #include "MantidKernel/ArrayProperty.h"
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadANSTOHelper.cpp b/Code/Mantid/Framework/DataHandling/src/LoadANSTOHelper.cpp
index fbfb9d3848f380abb1432eaa3615b98831184ccd..2744d7c5612d30fc4678f9a544556c2959558da4 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadANSTOHelper.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadANSTOHelper.cpp
@@ -52,11 +52,13 @@ void ProgressTracker::complete() {
 // EventCounter
 EventCounter::EventCounter(std::vector<size_t> &eventCounts,
                            const std::vector<bool> &mask,
-                           const std::vector<int> &offsets, size_t stride)
+                           const std::vector<int> &offsets, size_t stride,
+                           double periode, double phase)
     : m_eventCounts(eventCounts), m_mask(mask),
       m_offsets(offsets), m_stride(stride),
       m_tofMin(std::numeric_limits<double>::max()),
-      m_tofMax(std::numeric_limits<double>::min()) {}
+      m_tofMax(std::numeric_limits<double>::min()),
+      m_period(periode), m_phase(phase) {}
 double EventCounter::tofMin() const {
   return m_tofMin <= m_tofMax ? m_tofMin : 0.0;
 }
@@ -64,6 +66,15 @@ double EventCounter::tofMax() const {
   return m_tofMin <= m_tofMax ? m_tofMax : 0.0;
 }
 void EventCounter::addEvent(size_t x, size_t y, double tof) {
+  // correction
+  if (m_period > 0.0) {
+    tof += m_phase;
+    while (tof > m_period)
+      tof -= m_period;
+    while (tof < 0)
+      tof += m_period;
+  }
+
   size_t yNew = y + (size_t)m_offsets[x];
   if (yNew < m_stride) {
     size_t s = m_stride * x + yNew;
@@ -82,10 +93,21 @@ void EventCounter::addEvent(size_t x, size_t y, double tof) {
 // EventAssigner
 EventAssigner::EventAssigner(std::vector<EventVector_pt> &eventVectors,
                              const std::vector<bool> &mask,
-                             const std::vector<int> &offsets, size_t stride)
+                             const std::vector<int> &offsets, size_t stride,
+                             double periode, double phase)
     : m_eventVectors(eventVectors), m_mask(mask),
-      m_offsets(offsets), m_stride(stride) {}
+      m_offsets(offsets), m_stride(stride),
+      m_period(periode), m_phase(phase) {}
 void EventAssigner::addEvent(size_t x, size_t y, double tof) {
+  // correction
+  if (m_period > 0.0) {
+    tof += m_phase;
+    while (tof > m_period)
+      tof -= m_period;
+    while (tof < 0)
+      tof += m_period;
+  }
+
   size_t yNew = y + (size_t)m_offsets[x];
   if (yNew < m_stride) {
     size_t s = m_stride * x + yNew;
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadBBY.cpp b/Code/Mantid/Framework/DataHandling/src/LoadBBY.cpp
index daddef4a35dc07e9151e09bdd0a0f243f0064e5d..440790c2e2dcb73a1ee0592f8c698695524a7269 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadBBY.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadBBY.cpp
@@ -133,12 +133,26 @@ void LoadBBY::init() {
                                             Kernel::Direction::Input),
       "Optional: To only include events before the provided stop time, in "
       "seconds (relative to the start of the run).");
+  declareProperty(new Kernel::PropertyWithValue<double>(
+                  "PeriodMaster", 0.0, Kernel::Direction::Input),
+                  "Optional:");
+  declareProperty(new Kernel::PropertyWithValue<double>(
+                  "PeriodSlave", 0.0, Kernel::Direction::Input),
+                  "Optional:");
+  declareProperty(new Kernel::PropertyWithValue<double>(
+                  "PhaseSlave", 0.0, Kernel::Direction::Input),
+                  "Optional:");
 
   std::string grpOptional = "Optional";
   setPropertyGroup("FilterByTofMin", grpOptional);
   setPropertyGroup("FilterByTofMax", grpOptional);
   setPropertyGroup("FilterByTimeStart", grpOptional);
   setPropertyGroup("FilterByTimeStop", grpOptional);
+
+  std::string grpPhaseCorrection = "Phase Correction";
+  setPropertyGroup("PeriodMaster", grpPhaseCorrection);
+  setPropertyGroup("PeriodSlave", grpPhaseCorrection);
+  setPropertyGroup("PhaseSlave", grpPhaseCorrection);
 }
 /**
  * Execute the algorithm.
@@ -176,7 +190,7 @@ void LoadBBY::exec() {
           mask[s0 + (size_t)y] = false;
       }
       else { // if (offset < 0)
-        for (size_t y = static_cast<size_t>(static_cast<int>(HISTO_BINS_Y) + offset); y != HISTO_BINS_Y; y++)
+        for (size_t y = (HISTO_BINS_Y + static_cast<size_t>(offset)); y != HISTO_BINS_Y; y++)
           mask[s0 + y] = false;
       }
     }
@@ -240,8 +254,19 @@ void LoadBBY::exec() {
   std::vector<size_t> eventCounts(numberHistograms, 0);
   std::vector<detid_t> detIDs = instrument->getDetectorIDs();
 
+  // phase correction
+  double periodMaster = getProperty("PeriodMaster");
+  double periodSlave = getProperty("PeriodSlave");
+  double phaseSlave = getProperty("PhaseSlave");
+
+  double periode = periodSlave > 0.0 ? periodSlave : periodMaster;
+  double shift = -1.0/6.0*periodMaster + periodSlave * phaseSlave / 360.0;
+
+
+
   // count total events per pixel to reserve necessary memory
-  ANSTO::EventCounter eventCounter(eventCounts, mask, offsets, HISTO_BINS_Y);
+  ANSTO::EventCounter eventCounter(eventCounts, mask, offsets, HISTO_BINS_Y,
+                                   periode, shift);
   loadEvents(prog, "loading neutron counts", file, tofMinBoundary,
              tofMaxBoundary, eventCounter);
 
@@ -266,7 +291,7 @@ void LoadBBY::exec() {
   progTracker.complete();
 
   ANSTO::EventAssigner eventAssigner(eventVectors, mask, offsets,
-                                     HISTO_BINS_Y);
+                                     HISTO_BINS_Y, periode, shift);
   loadEvents(prog, "loading neutron events", file, tofMinBoundary,
              tofMaxBoundary, eventAssigner);
 
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadCalFile.cpp b/Code/Mantid/Framework/DataHandling/src/LoadCalFile.cpp
index 86b76d5896377b36569e2a01bab0d9399025625b..78019310c0b5e1f16e201408c40c4bb7a4fc3198 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadCalFile.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadCalFile.cpp
@@ -1,6 +1,7 @@
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/FileProperty.h"
 #include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidDataHandling/LoadCalFile.h"
 #include "MantidDataObjects/GroupingWorkspace.h"
 #include "MantidDataObjects/MaskWorkspace.h"
@@ -58,6 +59,22 @@ void LoadCalFile::getInstrument3WaysInit(Algorithm *alg) {
   alg->setPropertyGroup("InstrumentFilename", grpName);
 }
 
+bool LoadCalFile::instrumentIsSpecified(API::Algorithm *alg) {
+  MatrixWorkspace_sptr inWS = alg->getProperty("InputWorkspace");
+  if (bool(inWS))
+    return true;
+
+  std::string InstrumentName = alg->getPropertyValue("InstrumentName");
+  if (!InstrumentName.empty())
+    return true;
+
+  std::string InstrumentFilename = alg->getPropertyValue("InstrumentFilename");
+  if (!InstrumentFilename.empty())
+    return true;
+
+  return false;
+}
+
 //----------------------------------------------------------------------------------------------
 /** Get a pointer to an instrument in one of 3 ways: InputWorkspace,
  * InstrumentName, InstrumentFilename
@@ -134,7 +151,7 @@ void LoadCalFile::init() {
   declareProperty(
       new PropertyWithValue<std::string>("WorkspaceName", "", Direction::Input),
       "The base of the output workspace names. Names will have '_group', "
-      "'_offsets', '_mask' appended to them.");
+      "'_cal', '_offsets', '_mask' appended to them.");
 }
 
 //----------------------------------------------------------------------------------------------
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadDiffCal.cpp b/Code/Mantid/Framework/DataHandling/src/LoadDiffCal.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..36db1c26b4fe7001fa5eba108f6a29d13f84a9a7
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/src/LoadDiffCal.cpp
@@ -0,0 +1,452 @@
+#include "MantidDataHandling/LoadDiffCal.h"
+
+#include "MantidAPI/FileProperty.h"
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/Progress.h"
+#include "MantidAPI/TableRow.h"
+#include "MantidDataHandling/LoadCalFile.h"
+#include "MantidDataObjects/GroupingWorkspace.h"
+#include "MantidDataObjects/MaskWorkspace.h"
+#include "MantidDataObjects/TableWorkspace.h"
+#include "MantidDataObjects/Workspace2D.h"
+
+#include <cmath>
+#include <H5Cpp.h>
+
+namespace Mantid {
+namespace DataHandling {
+
+using Mantid::API::FileProperty;
+using Mantid::API::MatrixWorkspace;
+using Mantid::API::MatrixWorkspace_sptr;
+using Mantid::API::Progress;
+using Mantid::API::ITableWorkspace;
+using Mantid::API::ITableWorkspace_sptr;
+using Mantid::API::WorkspaceProperty;
+using Mantid::DataObjects::GroupingWorkspace_sptr;
+using Mantid::DataObjects::MaskWorkspace_sptr;
+using Mantid::DataObjects::Workspace2D;
+using Mantid::Kernel::Direction;
+using Mantid::Kernel::PropertyWithValue;
+
+using namespace H5;
+
+// Register the algorithm into the AlgorithmFactory
+DECLARE_ALGORITHM(LoadDiffCal)
+
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+LoadDiffCal::LoadDiffCal() {}
+
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+LoadDiffCal::~LoadDiffCal() {}
+
+//----------------------------------------------------------------------------------------------
+
+/// Algorithms name for identification. @see Algorithm::name
+const std::string LoadDiffCal::name() const { return "LoadDiffCal"; }
+
+/// Algorithm's version for identification. @see Algorithm::version
+int LoadDiffCal::version() const { return 1; }
+
+/// Algorithm's category for identification. @see Algorithm::category
+const std::string LoadDiffCal::category() const {
+  return "DataHandling;Diffraction";
+}
+
+/// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
+const std::string LoadDiffCal::summary() const {
+  return "Loads a calibration file for powder diffraction";
+}
+
+//----------------------------------------------------------------------------------------------
+/** Initialize the algorithm's properties.
+ */
+void LoadDiffCal::init() {
+  // 3 properties for getting the right instrument
+  LoadCalFile::getInstrument3WaysInit(this);
+
+  std::vector<std::string> exts;
+  exts.push_back(".h5");
+  exts.push_back(".hd5");
+  exts.push_back(".hdf");
+  exts.push_back(".cal");
+  declareProperty(new FileProperty("Filename", "", FileProperty::Load, exts),
+                  "Path to the .h5 file.");
+
+  declareProperty(new PropertyWithValue<bool>("MakeGroupingWorkspace", true,
+                                              Direction::Input),
+                  "Set to true to create a GroupingWorkspace with called "
+                  "WorkspaceName_group.");
+
+  declareProperty(new PropertyWithValue<bool>("MakeCalWorkspace", true,
+                                              Direction::Input),
+                  "Set to true to create a CalibrationWorkspace with called "
+                  "WorkspaceName_cal.");
+
+  declareProperty(
+      new PropertyWithValue<bool>("MakeMaskWorkspace", true, Direction::Input),
+      "Set to true to create a MaskWorkspace with called WorkspaceName_mask.");
+
+  declareProperty(
+      new PropertyWithValue<std::string>("WorkspaceName", "", Direction::Input),
+      "The base of the output workspace names. Names will have '_group', "
+      "'_cal', '_mask' appended to them.");
+}
+namespace { // anonymous
+
+std::string readString(H5File &file, const std::string &path) {
+  try {
+    DataSet data = file.openDataSet(path);
+    std::string value;
+    data.read(value, data.getDataType(), data.getSpace());
+    return value;
+  } catch (H5::FileIException & e) {
+    UNUSED_ARG(e);
+    return "";
+  }  catch (H5::GroupIException & e) {
+    UNUSED_ARG(e);
+    return "";
+  }
+}
+
+template <typename NumT>
+std::vector<NumT> readArrayCoerce(DataSet &dataset, const DataType &desiredDataType) {
+    std::vector<NumT> result;
+    DataType dataType = dataset.getDataType();
+    DataSpace dataSpace = dataset.getSpace();
+
+    if (desiredDataType == dataType) {
+        result.resize(dataSpace.getSelectNpoints());
+        dataset.read(&result[0], dataType, dataSpace);
+    } else if (PredType::NATIVE_UINT32 == dataType) {
+        std::vector<uint32_t> temp(dataSpace.getSelectNpoints());
+        dataset.read(&temp[0], dataType, dataSpace);
+        result.assign(temp.begin(), temp.end());
+    } else if (PredType::NATIVE_FLOAT == dataType) {
+        std::vector<float> temp(dataSpace.getSelectNpoints());
+        dataset.read(&temp[0], dataType, dataSpace);
+        for( auto it = temp.begin(); it != temp.end(); ++it)
+          result.push_back(static_cast<NumT>(*it));
+    } else {
+        throw DataTypeIException();
+    }
+
+    return result;
+}
+
+bool endswith(const std::string &str, const std::string &ending) {
+  if (ending.size() > str.size()) {
+    return false;
+  }
+
+  return std::equal(str.begin() + str.size() - ending.size(), str.end(),
+                    ending.begin());
+}
+
+void setGroupWSProperty(API::Algorithm *alg, const std::string &prefix,
+                        GroupingWorkspace_sptr wksp) {
+  alg->declareProperty(
+      new WorkspaceProperty<DataObjects::GroupingWorkspace>(
+          "OutputGroupingWorkspace", prefix + "_group", Direction::Output),
+      "Set the the output GroupingWorkspace, if any.");
+  alg->setProperty("OutputGroupingWorkspace", wksp);
+}
+
+void setMaskWSProperty(API::Algorithm *alg, const std::string &prefix,
+                       MaskWorkspace_sptr wksp) {
+  alg->declareProperty(
+      new WorkspaceProperty<DataObjects::MaskWorkspace>(
+          "OutputMaskWorkspace", prefix + "_mask", Direction::Output),
+      "Set the the output MaskWorkspace, if any.");
+  alg->setProperty("OutputMaskWorkspace", wksp);
+}
+
+void setCalWSProperty(API::Algorithm *alg, const std::string &prefix,
+                      ITableWorkspace_sptr wksp) {
+  alg->declareProperty(
+      new WorkspaceProperty<ITableWorkspace>(
+          "OutputCalWorkspace", prefix + "_cal", Direction::Output),
+      "Set the output Diffraction Calibration workspace, if any.");
+  alg->setProperty("OutputCalWorkspace", wksp);
+}
+
+} // anonymous namespace
+
+std::vector<double> LoadDiffCal::readDoubleArray(Group & group, const std::string &name) {
+  std::vector<double> result;
+
+  try {
+    DataSet dataset = group.openDataSet(name);
+    result = readArrayCoerce<double>(dataset, PredType::NATIVE_DOUBLE);
+  }  catch (H5::GroupIException & e) {
+    UNUSED_ARG(e);
+    g_log.information() << "Failed to open dataset \"" << name << "\"\n";
+  } catch (H5::DataTypeIException & e) {
+    UNUSED_ARG(e);
+    g_log.information() << "DataSet \"" << name << "\" should be double" << "\n";
+  }
+
+  for (size_t i=0; i<result.size(); ++i) {
+    if (std::abs(result[i]) < 1.e-10) {
+      result[i] = 0.;
+    } else if (result[i] != result[i]) { // check for NaN
+      result[i] = 0.;
+    }
+  }
+
+
+  return result;
+}
+
+std::vector<int32_t> LoadDiffCal::readInt32Array(Group & group, const std::string &name) {
+  std::vector<int32_t> result;
+
+  try {
+    DataSet dataset = group.openDataSet(name);
+    result = readArrayCoerce<int32_t>(dataset, PredType::NATIVE_INT32);
+  }  catch (H5::GroupIException & e) {
+    UNUSED_ARG(e);
+    g_log.information() << "Failed to open dataset \"" << name << "\"\n";
+  } catch (H5::DataTypeIException & e) {
+    UNUSED_ARG(e);
+    g_log.information() << "DataSet \"" << name << "\" should be int32" << "\n";
+  }
+
+  return result;
+}
+
+void LoadDiffCal::getInstrument(H5File &file) {
+    // don't bother if there isn't a mask or grouping requested
+    bool makeMask = getProperty("MakeMaskWorkspace");
+    bool makeGrouping = getProperty("MakeGroupingWorkspace");
+    if ((!makeMask) & (!makeGrouping)) return;
+
+    // see if the user specified the instrument independently
+    if (LoadCalFile::instrumentIsSpecified(this)) {
+      m_instrument = LoadCalFile::getInstrument3Ways(this);
+      return;
+    }
+
+    std::string idf = readString(file, "/calibration/instrument/instrument_source");
+    std::string instrumentName = readString(file, "/calibration/instrument/name");
+
+    g_log.debug() << "IDF : " << idf << "\n"
+                  << "NAME: " << instrumentName << "\n";
+
+    API::Algorithm_sptr childAlg =
+        this->createChildAlgorithm("LoadInstrument", 0.0, 0.1);
+    MatrixWorkspace_sptr tempWS(new Workspace2D());
+    childAlg->setProperty<MatrixWorkspace_sptr>("Workspace", tempWS);
+    if (idf.empty()) {
+        childAlg->setPropertyValue("InstrumentName", instrumentName);
+    } else {
+        childAlg->setPropertyValue("Filename", idf);
+    }
+    childAlg->setProperty("RewriteSpectraMap", false);
+    childAlg->executeAsChildAlg();
+
+    m_instrument = tempWS->getInstrument();
+
+    g_log.information() << "Loaded instrument \"" << m_instrument->getName()
+                        << "\" from \"" << m_instrument->getFilename() << "\"\n";
+}
+
+void LoadDiffCal::makeGroupingWorkspace(const std::vector<int32_t> &detids, const std::vector<int32_t> &groups) {
+    bool makeWS = getProperty("MakeGroupingWorkspace");
+    if (!makeWS) {
+        g_log.information("Not making a GroupingWorkspace");
+        return;
+    }
+
+    size_t numDet = detids.size();
+    Progress progress(this, .4, .6, numDet);
+
+    GroupingWorkspace_sptr wksp
+            = boost::make_shared<DataObjects::GroupingWorkspace>(m_instrument);
+    wksp->setTitle(m_filename);
+    wksp->mutableRun().addProperty("Filename", m_filename);
+
+    for (size_t i=0; i<numDet; ++i) {
+        detid_t detid = static_cast<detid_t>(detids[i]);
+        wksp->setValue(detid, groups[i]);
+        progress.report();
+    }
+
+    setGroupWSProperty(this, m_workspaceName, wksp);
+}
+
+void LoadDiffCal::makeMaskWorkspace(const std::vector<int32_t> &detids, const std::vector<int32_t> &use) {
+    bool makeWS = getProperty("MakeMaskWorkspace");
+    if (!makeWS) {
+        g_log.information("Not making a MaskWorkspace");
+        return;
+    }
+
+    size_t numDet = detids.size();
+    Progress progress(this, .6, .8, numDet);
+
+    MaskWorkspace_sptr wksp
+            = boost::make_shared<DataObjects::MaskWorkspace>(m_instrument);
+    wksp->setTitle(m_filename);
+    wksp->mutableRun().addProperty("Filename", m_filename);
+
+    for (size_t i=0; i<numDet; ++i) {
+        bool shouldUse = (use[i] > 0);
+        detid_t detid = static_cast<detid_t>(detids[i]);
+        // in maskworkspace 0=use, 1=dontuse
+        wksp->setMasked(detid, !shouldUse);
+        wksp->setValue(detid, (shouldUse ? 0. : 1.));
+        progress.report();
+    }
+
+    setMaskWSProperty(this, m_workspaceName, wksp);
+}
+
+void LoadDiffCal::makeCalWorkspace(const std::vector<int32_t> &detids, const std::vector<double> &difc,
+                                   const std::vector<double> &difa, const std::vector<double> &tzero,
+                                   const std::vector<int32_t> &dasids, const std::vector<double> &offsets) {
+    bool makeWS = getProperty("MakeCalWorkspace");
+    if (!makeWS) {
+        g_log.information("Not making a calibration workspace");
+        return;
+    }
+
+    size_t numDet = detids.size();
+    Progress progress(this, .8, 1., numDet);
+
+    bool haveDasids = !dasids.empty();
+    bool haveOffsets = !offsets.empty();
+
+    ITableWorkspace_sptr wksp = boost::make_shared<DataObjects::TableWorkspace>();
+    wksp->setTitle(m_filename);
+    wksp->addColumn("int", "detid");
+    wksp->addColumn("double", "difc");
+    wksp->addColumn("double", "difa");
+    wksp->addColumn("double", "tzero");
+    // only add these columns if they have values
+    if (haveDasids) wksp->addColumn("int", "dasid");
+    if (haveOffsets) wksp->addColumn("double", "offset");
+
+
+    for (size_t i=0; i<numDet; ++i) {
+        API::TableRow newrow = wksp->appendRow();
+        newrow << detids[i];
+        newrow << difc[i];
+        newrow << difa[i];
+        newrow << tzero[i];
+        if (haveDasids) newrow << dasids[i];
+        if (haveOffsets) newrow << offsets[i];
+
+        progress.report();
+    }
+
+    setCalWSProperty(this, m_workspaceName, wksp);
+}
+
+void LoadDiffCal::runLoadCalFile() {
+  bool makeCalWS = getProperty("MakeCalWorkspace");
+  bool makeMaskWS = getProperty("MakeMaskWorkspace");
+  bool makeGroupWS = getProperty("MakeGroupingWorkspace");
+
+  auto alg = createChildAlgorithm("LoadCalFile", 0., 1.);
+  alg->setPropertyValue("CalFilename", m_filename);
+  alg->setPropertyValue("InputWorkspace", getPropertyValue("InputWorkspace"));
+  alg->setPropertyValue("InstrumentName", getPropertyValue("InstrumentName"));
+  alg->setPropertyValue("InstrumentFilename",
+                        getPropertyValue("InstrumentFilename"));
+  alg->setProperty<bool>("MakeOffsetsWorkspace", makeCalWS);
+  alg->setProperty<bool>("MakeGroupingWorkspace", makeMaskWS);
+  alg->setProperty<bool>("MakeMaskWorkspace", makeGroupWS);
+  alg->setPropertyValue("WorkspaceName", m_workspaceName);
+  alg->executeAsChildAlg();
+
+  if (makeCalWS) {
+    ITableWorkspace_sptr wksp = alg->getProperty("OutputCalWorkspace");
+    setCalWSProperty(this, m_workspaceName, wksp);
+  }
+
+  if (makeMaskWS) {
+    MatrixWorkspace_sptr wksp = alg->getProperty("OutputMaskWorkspace");
+    setMaskWSProperty(
+        this, m_workspaceName,
+        boost::dynamic_pointer_cast<DataObjects::MaskWorkspace>(wksp));
+  }
+
+  if (makeGroupWS) {
+    GroupingWorkspace_sptr wksp = alg->getProperty("OutputGroupingWorkspace");
+    setGroupWSProperty(this, m_workspaceName, wksp);
+  }
+}
+
+//----------------------------------------------------------------------------------------------
+/** Execute the algorithm.
+ */
+void LoadDiffCal::exec() {
+    m_filename = getPropertyValue("Filename");
+    m_workspaceName = getPropertyValue("WorkspaceName");
+
+    if (endswith(m_filename, ".cal")) {
+      runLoadCalFile();
+      return;
+    }
+
+    // read in everything from the file
+    H5File file(m_filename, H5F_ACC_RDONLY);
+    H5::Exception::dontPrint();
+    getInstrument(file);
+
+    Progress progress(this, 0.1, 0.4, 8);
+    Group calibrationGroup;
+    try {
+        calibrationGroup = file.openGroup("calibration");
+    } catch (FileIException &e) {
+        e.printError();
+        throw std::runtime_error("Did not find group \"/calibration\"");
+    }
+
+    progress.report("Reading detid");
+    std::vector<int32_t> detids = readInt32Array(calibrationGroup, "detid");
+    progress.report("Reading dasid");
+    std::vector<int32_t> dasids = readInt32Array(calibrationGroup, "dasid");
+    progress.report("Reading group");
+    std::vector<int32_t> groups = readInt32Array(calibrationGroup, "group");
+    progress.report("Reading use");
+    std::vector<int32_t> use = readInt32Array(calibrationGroup, "use");
+
+    progress.report("Reading difc");
+    std::vector<double> difc = readDoubleArray(calibrationGroup, "difc");
+    progress.report("Reading difa");
+    std::vector<double> difa = readDoubleArray(calibrationGroup, "difa");
+    progress.report("Reading tzero");
+    std::vector<double> tzero = readDoubleArray(calibrationGroup, "tzero");
+    progress.report("Reading offset");
+    std::vector<double> offset = readDoubleArray(calibrationGroup, "offset");
+
+    file.close();
+
+    // verify the minimum is present
+    if (detids.empty()) {
+        throw std::runtime_error("File was missing required field \"/calibraion/detid\"");
+    }
+    if (difc.empty()) {
+        throw std::runtime_error("File was missing required field \"/calibraion/difc\"");
+    }
+
+    // fix up empty arrays
+    if (groups.empty()) groups.assign(detids.size(), 1); // all go to one spectrum
+    if (use.empty()) use.assign(detids.size(), 1); // use everything
+    if (difa.empty()) difa.assign(detids.size(), 0.); // turn off difa
+    if (tzero.empty()) tzero.assign(detids.size(), 0.); // turn off tzero
+
+    // create the appropriate output workspaces
+    makeGroupingWorkspace(detids, groups);
+    makeMaskWorkspace(detids, use);
+    makeCalWorkspace(detids, difc, difa, tzero, dasids, offset);
+}
+
+} // namespace DataHandling
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadEmptyInstrument.cpp b/Code/Mantid/Framework/DataHandling/src/LoadEmptyInstrument.cpp
index dd0048791d0efa70b282b0b1e544fd724a4c9d0e..ea0be927b4d5f7d745f6bb8e49a8ccf5e5e98af3 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadEmptyInstrument.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadEmptyInstrument.cpp
@@ -5,8 +5,6 @@
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/BoundedValidator.h"
 #include "MantidAPI/RegisterFileLoader.h"
-#include <cmath>
-#include <Poco/Path.h>
 
 namespace Mantid {
 namespace DataHandling {
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadEventNexus.cpp b/Code/Mantid/Framework/DataHandling/src/LoadEventNexus.cpp
index 16e56ec9f5e7e2a614f5b250fe5d97a2f55553f0..f9e7f4bef2ad23e4b52f735921b73828378b2794 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadEventNexus.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadEventNexus.cpp
@@ -2,11 +2,14 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidDataHandling/LoadEventNexus.h"
+#include "MantidDataHandling/EventWorkspaceCollection.h"
 
 #include <boost/random/mersenne_twister.hpp>
 #include <boost/random/uniform_real.hpp>
 #include <boost/shared_ptr.hpp>
 #include <boost/shared_array.hpp>
+#include <boost/function.hpp>
+#include <functional>
 
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/ThreadPool.h"
@@ -39,16 +42,45 @@ using namespace Geometry;
 using namespace API;
 using namespace DataObjects;
 
+namespace {
+
+/**
+ * Copy all logData properties from the 'from' workspace to the 'to'
+ * workspace. Does not use CopyLogs as a child algorithm (this is a
+ * simple copy and the workspace is not yet in the ADS).
+ *
+ * @param from source of log entries
+ * @param to workspace where to add the log entries
+ */
+  void copyLogs(const Mantid::DataHandling::EventWorkspaceCollection_sptr& from,
+                                  EventWorkspace_sptr& to)
+{
+  // from the logs, get all the properties that don't overwrite any
+  // prop. already set in the sink workspace (like 'filename').
+  auto props = from->mutableRun().getLogData();
+  for (size_t j=0; j<props.size(); j++) {
+    if (!to->mutableRun().hasProperty(props[j]->name())) {
+      to->mutableRun().addLogData(props[j]->clone());
+    }
+  }
+}
+
+}
+
 //===============================================================================================
 // BankPulseTimes
 //===============================================================================================
 
+/// The first period
+const unsigned int BankPulseTimes::FirstPeriod = 1;
+
 //----------------------------------------------------------------------------------------------
 /** Constructor. Loads the pulse times from the bank entry of the file
 *
 * @param file :: nexus file open in the right bank entry
+* @param pNumbers :: Period numbers to index into. Index via frame/pulse
 */
-BankPulseTimes::BankPulseTimes(::NeXus::File &file) {
+BankPulseTimes::BankPulseTimes(::NeXus::File &file, const std::vector<int>& pNumbers) : periodNumbers(pNumbers) {
   file.openData("event_time_zero");
   // Read the offset (time zero)
   file.getAttr("offset", startTime);
@@ -61,6 +93,12 @@ BankPulseTimes::BankPulseTimes(::NeXus::File &file) {
   numPulses = seconds.size();
   if (numPulses == 0)
     throw std::runtime_error("event_time_zero field has no data!");
+
+  // Ensure that we always have a consistency between nPulses and periodNumbers containers
+  if (numPulses != pNumbers.size()){
+      periodNumbers = std::vector<int>(numPulses, FirstPeriod);;
+  }
+
   pulseTimes = new DateAndTime[numPulses];
   for (size_t i = 0; i < numPulses; i++)
     pulseTimes[i] = start + seconds[i];
@@ -75,6 +113,7 @@ BankPulseTimes::BankPulseTimes(const std::vector<Kernel::DateAndTime> &times) {
   if (numPulses == 0)
     return;
   pulseTimes = new DateAndTime[numPulses];
+  periodNumbers = std::vector<int>(numPulses, FirstPeriod); // TODO we are fixing this at 1 period for all
   for (size_t i = 0; i < numPulses; i++)
     pulseTimes[i] = times[i];
 }
@@ -156,7 +195,7 @@ public:
     prog->report(entry_name + ": precount");
 
     // ---- Pre-counting events per pixel ID ----
-    auto &outputWS = *(alg->WS);
+    auto &outputWS = *(alg->m_ws);
     if (alg->precount) {
 
       if (alg->m_specMin != EMPTY_INT() && alg->m_specMax != EMPTY_INT()) {
@@ -180,7 +219,7 @@ public:
           size_t wi = pixelID_to_wi_vector[pixID + pixelID_to_wi_offset];
           // Allocate it
           if (wi < numEventLists) {
-            outputWS.getEventList(wi).reserve(counts[pixID - m_min_id]);
+            outputWS.reserveEventListAt(wi, counts[pixID - m_min_id]);
           }
           if (alg->getCancel())
             break; // User cancellation
@@ -195,6 +234,8 @@ public:
 
     // Default pulse time (if none are found)
     Mantid::Kernel::DateAndTime pulsetime;
+    int periodNumber = 1;
+    int periodIndex = 0;
     Mantid::Kernel::DateAndTime lastpulsetime(0);
 
     bool pulsetimesincreasing = true;
@@ -242,8 +283,12 @@ public:
             break;
         }
 
+
         // Save the pulse time at this index for creating those events
         pulsetime = thisBankPulseTimes->pulseTimes[pulse_i];
+        int logPeriodNumber = thisBankPulseTimes->periodNumbers[pulse_i];
+        periodNumber = logPeriodNumber > 0 ? logPeriodNumber : periodNumber; // Some historic files have recorded their logperiod numbers as zeros!
+        periodIndex = periodNumber - 1;
 
         // Determine if pulse times continue to increase
         if (pulsetime < lastpulsetime)
@@ -268,7 +313,7 @@ public:
             double weight = static_cast<double>(event_weight[i]);
             double errorSq = weight * weight;
             LoadEventNexus::WeightedEventVector_pt eventVector =
-                alg->weightedEventVectors[detId];
+                alg->weightedEventVectors[periodIndex][detId];
             // NULL eventVector indicates a bad spectrum lookup
             if (eventVector) {
 #if !(defined(__INTEL_COMPILER)) && !(defined(__clang__))
@@ -285,7 +330,7 @@ public:
           } else {
             // We have cached the vector of events for this detector ID
             std::vector<Mantid::DataObjects::TofEvent> *eventVector =
-                alg->eventVectors[detId];
+                alg->eventVectors[periodIndex][detId];
             // NULL eventVector indicates a bad spectrum lookup
             if (eventVector) {
 #if !(defined(__INTEL_COMPILER)) && !(defined(__clang__))
@@ -427,20 +472,21 @@ public:
   * @param prog :: an optional Progress object
   * @param ioMutex :: a mutex shared for all Disk I-O tasks
   * @param scheduler :: the ThreadScheduler that runs this task.
+  * @param framePeriodNumbers :: Period numbers corresponding to each frame
   */
   LoadBankFromDiskTask(LoadEventNexus *alg, const std::string &entry_name,
                        const std::string &entry_type,
                        const std::size_t numEvents,
                        const bool oldNeXusFileNames, Progress *prog,
                        boost::shared_ptr<Mutex> ioMutex,
-                       ThreadScheduler *scheduler)
+                       ThreadScheduler *scheduler, const std::vector<int>& framePeriodNumbers)
       : Task(), alg(alg), entry_name(entry_name), entry_type(entry_type),
         // prog(prog), scheduler(scheduler), thisBankPulseTimes(NULL),
         // m_loadError(false),
         prog(prog), scheduler(scheduler), m_loadError(false),
         m_oldNexusFileNames(oldNeXusFileNames), m_loadStart(), m_loadSize(),
         m_event_id(NULL), m_event_time_of_flight(NULL), m_have_weight(false),
-        m_event_weight(NULL) {
+        m_event_weight(NULL), m_framePeriodNumbers(framePeriodNumbers) {
     setMutex(ioMutex);
     m_cost = static_cast<double>(numEvents);
     m_min_id = std::numeric_limits<uint32_t>::max();
@@ -468,6 +514,8 @@ public:
       thisNumPulses = file.getInfo().dims[0];
     file.closeData();
 
+
+
     // Now, we look through existing ones to see if it is already loaded
     // thisBankPulseTimes = NULL;
     for (size_t i = 0; i < alg->m_bankPulseTimes.size(); i++) {
@@ -478,7 +526,7 @@ public:
     }
 
     // Not found? Need to load and add it
-    thisBankPulseTimes = boost::make_shared<BankPulseTimes>(boost::ref(file));
+    thisBankPulseTimes = boost::make_shared<BankPulseTimes>(boost::ref(file), m_framePeriodNumbers);
     alg->m_bankPulseTimes.push_back(thisBankPulseTimes);
   }
 
@@ -924,6 +972,8 @@ private:
   bool m_have_weight;
   /// Event weights
   float *m_event_weight;
+  /// Frame period numbers
+  const std::vector<int> m_framePeriodNumbers;
 }; // END-DEF-CLASS LoadBankFromDiskTask
 
 //===============================================================================================
@@ -988,9 +1038,9 @@ void LoadEventNexus::init() {
       "The file name is typically of the form INST_####_event.nxs (N.B. case "
       "sensitive if running on Linux).");
 
-  this->declareProperty(new WorkspaceProperty<IEventWorkspace>(
+  this->declareProperty(new WorkspaceProperty<Workspace>(
                             "OutputWorkspace", "", Direction::Output),
-                        "The name of the output EventWorkspace in which to "
+                        "The name of the output EventWorkspace or WorkspaceGroup in which to "
                         "load the EventNexus file.");
 
   declareProperty(new PropertyWithValue<double>("FilterByTofMin", EMPTY_DBL(),
@@ -1179,6 +1229,38 @@ void LoadEventNexus::setTopEntryName() {
   }
 }
 
+template<typename T>
+void LoadEventNexus::filterDuringPause(T workspace) {
+  try {
+    if ((!ConfigService::Instance().hasProperty(
+            "loadeventnexus.keeppausedevents")) &&
+        (m_ws->run().getLogData("pause")->size() > 1)) {
+      g_log.notice("Filtering out events when the run was marked as paused. "
+                   "Set the loadeventnexus.keeppausedevents configuration "
+                   "property to override this.");
+
+      auto filter = createChildAlgorithm("FilterByLogValue");
+      filter->setProperty("InputWorkspace", workspace);
+      filter->setProperty("OutputWorkspace", workspace);
+      filter->setProperty("LogName", "pause");
+      // The log value is set to 1 when the run is paused, 0 otherwise.
+      filter->setProperty("MinimumValue", 0.0);
+      filter->setProperty("MaximumValue", 0.0);
+      filter->setProperty("LogBoundary", "Left");
+      filter->execute();
+    }
+  } catch (Exception::NotFoundError &) {
+    // No "pause" log, just carry on
+  }
+}
+
+template<>
+void LoadEventNexus::filterDuringPause<EventWorkspaceCollection_sptr>(EventWorkspaceCollection_sptr workspace) {
+  // We provide a function pointer to the filter method of the object
+  boost::function<void (MatrixWorkspace_sptr)> func = std::bind1st(std::mem_fun(&LoadEventNexus::filterDuringPause<MatrixWorkspace_sptr>), this);
+  workspace->applyFilter(func);
+}
+
 //------------------------------------------------------------------------------------------------
 /** Executes the algorithm. Reading in the file and creating and populating
 *  the output workspace
@@ -1208,7 +1290,7 @@ void LoadEventNexus::exec() {
   Progress prog(this, 0.0, 0.3, reports);
 
   // Load the detector events
-  WS = createEmptyEventWorkspace(); // Algorithm currently relies on an
+  m_ws = boost::make_shared<EventWorkspaceCollection>(); // Algorithm currently relies on an
                                     // object-level workspace ptr
   loadEvents(&prog, false);         // Do not load monitor blocks
 
@@ -1221,12 +1303,12 @@ void LoadEventNexus::exec() {
 
   // If the run was paused at any point, filter out those events (SNS only, I
   // think)
-  filterDuringPause(WS);
+  filterDuringPause(m_ws->getSingleHeldWorkspace());
 
   // add filename
-  WS->mutableRun().addProperty("Filename", m_filename);
+  m_ws->mutableRun().addProperty("Filename", m_filename);
   // Save output
-  this->setProperty<IEventWorkspace_sptr>("OutputWorkspace", WS);
+  this->setProperty("OutputWorkspace", m_ws->combinedWorkspace());
   // Load the monitors
   if (load_monitors) {
     prog.report("Loading monitors");
@@ -1240,6 +1322,9 @@ void LoadEventNexus::exec() {
     if (monitorsAsEvents) {
       // no matter whether the file has events or not, the user has requested to
       // load events from monitors
+      if(m_ws->nPeriods() > 1){
+          throw std::runtime_error("Loading multi-period monitors in event mode is not supported.");
+      }
       this->runLoadMonitorsAsEvents(&prog);
     } else {
       // this resorts to child algorithm 'LoadNexusMonitors', passing the
@@ -1260,10 +1345,11 @@ void LoadEventNexus::exec() {
 * @param vectors :: the array to create the map on
 */
 template <class T>
-void LoadEventNexus::makeMapToEventLists(std::vector<T> &vectors) {
+void LoadEventNexus::makeMapToEventLists(std::vector<std::vector<T> > &vectors) {
+  vectors.resize(m_ws->nPeriods());
   if (this->event_id_is_spec) {
     // Find max spectrum no
-    Axis *ax1 = WS->getAxis(1);
+    Axis *ax1 = m_ws->getAxis(1);
     specid_t maxSpecNo =
         -std::numeric_limits<
             specid_t>::max(); // So that any number will be greater than this
@@ -1278,12 +1364,16 @@ void LoadEventNexus::makeMapToEventLists(std::vector<T> &vectors) {
     // the maximum
     // possible spectrum number
     eventid_max = maxSpecNo;
-    vectors.resize(maxSpecNo + 1, NULL);
-    for (size_t i = 0; i < WS->getNumberHistograms(); ++i) {
-      const ISpectrum *spec = WS->getSpectrum(i);
-      if (spec) {
-        getEventsFrom(WS->getEventList(i), vectors[spec->getSpectrumNo()]);
-      }
+    for(size_t i= 0; i < vectors.size(); ++i){
+        vectors[i].resize(maxSpecNo + 1, NULL);
+    }
+    for (size_t period = 0; period < m_ws->nPeriods(); ++period) {
+        for (size_t i = 0; i < m_ws->getNumberHistograms(); ++i) {
+          const ISpectrum *spec = m_ws->getSpectrum(i);
+          if (spec) {
+            getEventsFrom(m_ws->getEventList(i, period), vectors[period][spec->getSpectrumNo()]);
+          }
+        }
     }
   } else {
     // To avoid going out of range in the vector, this is the MAX index that can
@@ -1293,14 +1383,18 @@ void LoadEventNexus::makeMapToEventLists(std::vector<T> &vectors) {
 
     // Make an array where index = pixel ID
     // Set the value to NULL by default
-    vectors.resize(eventid_max + 1, NULL);
+    for(size_t i= 0; i < vectors.size(); ++i){
+        vectors[i].resize(eventid_max + 1, NULL);
+    }
 
     for (size_t j = size_t(pixelID_to_wi_offset);
          j < pixelID_to_wi_vector.size(); j++) {
       size_t wi = pixelID_to_wi_vector[j];
       // Save a POINTER to the vector
-      if (wi < WS->getNumberHistograms()) {
-        getEventsFrom(WS->getEventList(wi), vectors[j - pixelID_to_wi_offset]);
+      if (wi < m_ws->getNumberHistograms()) {
+          for (size_t period = 0; period < m_ws->nPeriods(); ++period) {
+              getEventsFrom(m_ws->getEventList(wi, period), vectors[period][j - pixelID_to_wi_offset]);
+          }
       }
     }
   }
@@ -1360,13 +1454,128 @@ void LoadEventNexus::createWorkspaceIndexMaps(const bool monitors,
 
   // This map will be used to find the workspace index
   if (this->event_id_is_spec)
-    WS->getSpectrumToWorkspaceIndexVector(pixelID_to_wi_vector,
+    m_ws->getSpectrumToWorkspaceIndexVector(pixelID_to_wi_vector,
                                           pixelID_to_wi_offset);
   else
-    WS->getDetectorIDToWorkspaceIndexVector(pixelID_to_wi_vector,
+    m_ws->getDetectorIDToWorkspaceIndexVector(pixelID_to_wi_vector,
                                             pixelID_to_wi_offset, true);
 }
 
+
+/** Load the instrument from the nexus file
+*
+* @param nexusfilename :: The name of the nexus file being loaded
+* @param localWorkspace :: Templated workspace in which to put the instrument
+*geometry
+* @param alg :: Handle of the algorithm
+* @param returnpulsetimes :: flag to return shared pointer for BankPulseTimes,
+*otherwise NULL.
+* @param nPeriods : Number of periods (write to)
+* @param periodLog : Period logs DateAndTime to int map.
+*
+* @return Pulse times given in the DAS logs
+*/
+template<typename T>
+boost::shared_ptr<BankPulseTimes>
+LoadEventNexus::runLoadNexusLogs(const std::string &nexusfilename,
+                                 T localWorkspace,
+                                 API::Algorithm &alg, bool returnpulsetimes, int& nPeriods, std::unique_ptr<const TimeSeriesProperty<int> >& periodLog) {
+  // --------------------- Load DAS Logs -----------------
+  // The pulse times will be empty if not specified in the DAS logs.
+  // BankPulseTimes * out = NULL;
+  boost::shared_ptr<BankPulseTimes> out;
+  API::IAlgorithm_sptr loadLogs = alg.createChildAlgorithm("LoadNexusLogs");
+
+  // Now execute the Child Algorithm. Catch and log any error, but don't stop.
+  try {
+    alg.getLogger().information() << "Loading logs from NeXus file..."
+                                  << "\n";
+    loadLogs->setPropertyValue("Filename", nexusfilename);
+    loadLogs->setProperty<API::MatrixWorkspace_sptr>("Workspace",
+                                                     localWorkspace);
+    loadLogs->execute();
+
+    const Run& run = localWorkspace->run();
+    // Get the number of periods
+    if(run.hasProperty("nperiods")){
+        nPeriods  = run.getPropertyValueAsType<int>("nperiods");
+    }
+    // Get the period log. Map of DateAndTime to Period int values.
+    if(run.hasProperty("period_log")){
+        auto* temp = run.getProperty("period_log");
+        periodLog.reset(dynamic_cast<TimeSeriesProperty<int>*>(temp->clone()));
+    }
+
+    // If successful, we can try to load the pulse times
+    Kernel::TimeSeriesProperty<double> *log =
+        dynamic_cast<Kernel::TimeSeriesProperty<double> *>(
+            localWorkspace->mutableRun().getProperty("proton_charge"));
+    std::vector<Kernel::DateAndTime> temp;
+    if (log)
+      temp = log->timesAsVector();
+    // if (returnpulsetimes) out = new BankPulseTimes(temp);
+    if (returnpulsetimes)
+      out = boost::make_shared<BankPulseTimes>(temp);
+
+    // Use the first pulse as the run_start time.
+    if (!temp.empty()) {
+      if (temp[0] < Kernel::DateAndTime("1991-01-01T00:00:00"))
+        alg.getLogger().warning() << "Found entries in the proton_charge "
+                                     "sample log with invalid pulse time!\n";
+
+      Kernel::DateAndTime run_start = localWorkspace->getFirstPulseTime();
+      // add the start of the run as a ISO8601 date/time string. The start =
+      // first non-zero time.
+      // (this is used in LoadInstrument to find the right instrument file to
+      // use).
+      localWorkspace->mutableRun().addProperty(
+          "run_start", run_start.toISO8601String(), true);
+    } else {
+      alg.getLogger().warning() << "Empty proton_charge sample log. You will "
+                                   "not be able to filter by time.\n";
+    }
+    /// Attempt to make a gonoimeter from the logs
+    try {
+      Geometry::Goniometer gm;
+      gm.makeUniversalGoniometer();
+      localWorkspace->mutableRun().setGoniometer(gm, true);
+    } catch (std::runtime_error &) {
+    }
+  } catch (...) {
+    alg.getLogger().error() << "Error while loading Logs from SNS Nexus. Some "
+                               "sample logs may be missing."
+                            << "\n";
+    return out;
+  }
+  return out;
+}
+
+/** Load the instrument from the nexus file
+*
+* @param nexusfilename :: The name of the nexus file being loaded
+* @param localWorkspace :: EventWorkspaceCollection in which to put the instrument
+*geometry
+* @param alg :: Handle of the algorithm
+* @param returnpulsetimes :: flag to return shared pointer for BankPulseTimes,
+*otherwise NULL.
+* @param nPeriods : Number of periods (write to)
+* @param periodLog : Period logs DateAndTime to int map.
+*
+* @return Pulse times given in the DAS logs
+*/
+template<>
+boost::shared_ptr<BankPulseTimes>
+LoadEventNexus::runLoadNexusLogs<EventWorkspaceCollection_sptr>(const std::string &nexusfilename,
+                                 EventWorkspaceCollection_sptr localWorkspace,
+                                 API::Algorithm &alg, bool returnpulsetimes,
+                                 int& nPeriods,
+                                 std::unique_ptr<const TimeSeriesProperty<int> >& periodLog) {
+  auto ws = localWorkspace->getSingleHeldWorkspace();
+  auto ret = runLoadNexusLogs<MatrixWorkspace_sptr>(nexusfilename, ws, alg, returnpulsetimes, nPeriods, periodLog);
+  return ret;
+}
+
+
 //-----------------------------------------------------------------------------
 /**
 * Load events from the file.
@@ -1375,7 +1584,7 @@ void LoadEventNexus::createWorkspaceIndexMaps(const bool monitors,
 * main banks
 *
 * This also loads the instrument, but only if it has not been set in the workspace
-* being used as input (WS data member). Same applies to the logs.
+* being used as input (m_ws data member). Same applies to the logs.
 */
 void LoadEventNexus::loadEvents(API::Progress *const prog,
                                 const bool monitors) {
@@ -1388,12 +1597,15 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
   DateAndTime run_start(0, 0);
   // Initialize the counter of bad TOFs
   bad_tofs = 0;
-
+  int nPeriods = 1;
+  std::unique_ptr<const TimeSeriesProperty<int> > periodLog(new const TimeSeriesProperty<int>("period_log"));
   if (!m_logs_loaded_correctly) {
     if (loadlogs) {
       prog->doReport("Loading DAS logs");
-      m_allBanksPulseTimes = runLoadNexusLogs(m_filename, WS, *this, true);
-      run_start = WS->getFirstPulseTime();
+
+      m_allBanksPulseTimes = runLoadNexusLogs<EventWorkspaceCollection_sptr>(m_filename, m_ws, *this, true, nPeriods, periodLog);
+
+      run_start = m_ws->getFirstPulseTime();
       m_logs_loaded_correctly = true;
     } else {
       g_log.information() << "Skipping the loading of sample logs!\n"
@@ -1406,10 +1618,11 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
       m_file->readData("start_time", tmp);
       m_file->closeGroup();
       run_start = DateAndTime(tmp);
-      WS->mutableRun().addProperty("run_start", run_start.toISO8601String(),
+      m_ws->mutableRun().addProperty("run_start", run_start.toISO8601String(),
                                    true);
     }
   }
+  m_ws->setNPeriods(nPeriods, periodLog); // This is how many workspaces we are going to make.
 
   // Make sure you have a non-NULL m_allBanksPulseTimes
   if (m_allBanksPulseTimes == NULL) {
@@ -1418,11 +1631,11 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
     m_allBanksPulseTimes = boost::make_shared<BankPulseTimes>(temp);
   }
 
-  if (!WS->getInstrument() || !m_instrument_loaded_correctly) {
+  if (!m_ws->getInstrument() || !m_instrument_loaded_correctly) {
     // Load the instrument (if not loaded before)
     prog->report("Loading instrument");
     m_instrument_loaded_correctly =
-      loadInstrument(m_filename, WS, m_top_entry_name, this);
+      loadInstrument(m_filename, m_ws, m_top_entry_name, this);
 
     if (!m_instrument_loaded_correctly)
       throw std::runtime_error(
@@ -1471,7 +1684,7 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
     }
   }
 
-  loadSampleDataISIScompatibility(*m_file, WS);
+  loadSampleDataISIScompatibility(*m_file, *m_ws);
 
   // Close the 'top entry' group (raw_data_1 for NexusProcessed, etc.)
   m_file->closeGroup();
@@ -1485,7 +1698,7 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
   try {
     // this is a static method that is why it is passing the
     // file object and the file path
-    loadEntryMetadata(m_filename, WS, m_top_entry_name);
+    loadEntryMetadata<EventWorkspaceCollection_sptr>(m_filename, m_ws, m_top_entry_name);
   } catch (std::runtime_error &e) {
     // Missing metadata is not a fatal error. Log and go on with your life
     g_log.error() << "Error loading metadata: " << e.what() << std::endl;
@@ -1529,7 +1742,7 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
 
   if (is_time_filtered) {
     // Now filter out the run, using the DateAndTime type.
-    WS->mutableRun().filterByTime(filter_time_start, filter_time_stop);
+    m_ws->mutableRun().filterByTime(filter_time_start, filter_time_stop);
   }
 
   if (metaDataOnly) {
@@ -1541,7 +1754,7 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
               1; // Just to make sure the bins hold it all
     xRef[1] = 1;
     // Set the binning axis using this.
-    WS->setAllX(axis);
+    m_ws->setAllX(axis);
 
     createWorkspaceIndexMaps(monitors, std::vector<std::string>());
 
@@ -1588,13 +1801,13 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
 
   prog->report("Initializing all pixels");
   // Remove used banks if parameter is set
-  if (WS->getInstrument()->hasParameter("remove-unused-banks")) {
+  if (m_ws->getInstrument()->hasParameter("remove-unused-banks")) {
     std::vector<double> instrumentUnused =
-        WS->getInstrument()->getNumberParameter("remove-unused-banks", true);
+        m_ws->getInstrument()->getNumberParameter("remove-unused-banks", true);
     if (!instrumentUnused.empty()) {
       const int unused = static_cast<int>(instrumentUnused.front());
       if (unused == 1)
-        deleteBanks(WS, bankNames);
+        deleteBanks(m_ws, bankNames);
     }
   }
   //----------------- Pad Empty Pixels -------------------------------
@@ -1605,16 +1818,16 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
     this->makeMapToEventLists<EventVector_pt>(eventVectors);
   } else {
     // Convert to weighted events
-    for (size_t i = 0; i < WS->getNumberHistograms(); i++) {
-      WS->getEventList(i).switchTo(API::WEIGHTED);
+    for (size_t i = 0; i < m_ws->getNumberHistograms(); i++) {
+      m_ws->getEventList(i).switchTo(API::WEIGHTED);
     }
     this->makeMapToEventLists<WeightedEventVector_pt>(weightedEventVectors);
   }
 
   // Set all (empty) event lists as sorted by pulse time. That way, calling
   // SortEvents will not try to sort these empty lists.
-  for (size_t i = 0; i < WS->getNumberHistograms(); i++)
-    WS->getEventList(i).setSortOrder(DataObjects::PULSETIME_SORT);
+  for (size_t i = 0; i < m_ws->getNumberHistograms(); i++)
+    m_ws->getEventList(i).setSortOrder(DataObjects::PULSETIME_SORT);
 
   // Count the limits to time of flight
   shortest_tof =
@@ -1699,12 +1912,14 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
     numProg += bankNames.size() * 3; // 3 = second proc task
   Progress *prog2 = new Progress(this, 0.3, 1.0, numProg);
 
+  const std::vector<int> periodLogVec =  periodLog->valuesAsVector();
+
   for (size_t i = bank0; i < bankn; i++) {
     // We make tasks for loading
     if (bankNumEvents[i] > 0)
       pool.schedule(new LoadBankFromDiskTask(
           this, bankNames[i], classType, bankNumEvents[i], oldNeXusFileNames,
-          prog2, diskIOMutex, scheduler));
+          prog2, diskIOMutex, scheduler, periodLogVec));
   }
   // Start and end all threads
   pool.joinAll();
@@ -1712,7 +1927,7 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
   delete prog2;
 
   // Info reporting
-  const std::size_t eventsLoaded = WS->getNumberEvents();
+  const std::size_t eventsLoaded = m_ws->getNumberEvents();
   g_log.information() << "Read " << eventsLoaded << " events"
                       << ". Shortest TOF: " << shortest_tof
                       << " microsec; longest TOF: " << longest_tof
@@ -1735,205 +1950,33 @@ void LoadEventNexus::loadEvents(API::Progress *const prog,
     xRef[1] = longest_tof + 1;
   }
   // Set the binning axis using this.
-  WS->setAllX(axis);
+  m_ws->setAllX(axis);
 
   // if there is time_of_flight load it
-  loadTimeOfFlight(WS, m_top_entry_name, classType);
-}
-
-//-----------------------------------------------------------------------------
-/**
-* Create a blank event workspace
-* @returns A shared pointer to a new empty EventWorkspace object
-*/
-EventWorkspace_sptr LoadEventNexus::createEmptyEventWorkspace() {
-  // Create the output workspace
-  EventWorkspace_sptr eventWS(new EventWorkspace());
-  // Make sure to initialize.
-  //   We can use dummy numbers for arguments, for event workspace it doesn't
-  //   matter
-  eventWS->initialize(1, 1, 1);
-
-  // Set the units
-  eventWS->getAxis(0)->unit() = UnitFactory::Instance().create("TOF");
-  eventWS->setYUnit("Counts");
-
-  return eventWS;
-}
-
-//-----------------------------------------------------------------------------
-/** Load the run number and other meta data from the given bank */
-  void LoadEventNexus::loadEntryMetadata(const std::string &nexusfilename,
-                                         Mantid::API::MatrixWorkspace_sptr WS,
-                                         const std::string &entry_name) {
-  // Open the file
-  ::NeXus::File file(nexusfilename);
-  file.openGroup(entry_name, "NXentry");
-
-  // get the title
-  file.openData("title");
-  if (file.getInfo().type == ::NeXus::CHAR) {
-    string title = file.getStrData();
-    if (!title.empty())
-      WS->setTitle(title);
-  }
-  file.closeData();
-
-  // get the notes
-  try {
-    file.openData("notes");
-    if (file.getInfo().type == ::NeXus::CHAR) {
-      string notes = file.getStrData();
-      if (!notes.empty())
-        WS->mutableRun().addProperty("file_notes", notes);
-    }
-    file.closeData();
-  } catch (::NeXus::Exception &) {
-    // let it drop on floor
-  }
-
-  // Get the run number
-  file.openData("run_number");
-  string run("");
-  if (file.getInfo().type == ::NeXus::CHAR) {
-    run = file.getStrData();
-  } else if (file.isDataInt()) {
-    // inside ISIS the run_number type is int32
-    vector<int> value;
-    file.getData(value);
-    if (value.size() > 0)
-      run = boost::lexical_cast<std::string>(value[0]);
-  }
-  if (!run.empty()) {
-    WS->mutableRun().addProperty("run_number", run);
-  }
-  file.closeData();
-
-  // get the experiment identifier
-  try {
-    file.openData("experiment_identifier");
-    string expId("");
-    if (file.getInfo().type == ::NeXus::CHAR) {
-      expId = file.getStrData();
-    }
-    if (!expId.empty()) {
-      WS->mutableRun().addProperty("experiment_identifier", expId);
-    }
-    file.closeData();
-  } catch (::NeXus::Exception &) {
-    // let it drop on floor
-  }
-
-  // get the sample name
-  try {
-    file.openGroup("sample", "NXsample");
-    file.openData("name");
-    string name("");
-    if (file.getInfo().type == ::NeXus::CHAR) {
-      name = file.getStrData();
-    }
-    if (!name.empty()) {
-      WS->mutableSample().setName(name);
-    }
-    file.closeData();
-    file.closeGroup();
-  } catch (::NeXus::Exception &) {
-    // let it drop on floor
-  }
-
-  // get the duration
-  file.openData("duration");
-  std::vector<double> duration;
-  file.getDataCoerce(duration);
-  if (duration.size() == 1) {
-    // get the units
-    std::vector<AttrInfo> infos = file.getAttrInfos();
-    std::string units("");
-    for (std::vector<AttrInfo>::const_iterator it = infos.begin();
-         it != infos.end(); ++it) {
-      if (it->name.compare("units") == 0) {
-        units = file.getStrAttr(*it);
-        break;
-      }
-    }
-
-    // set the property
-    WS->mutableRun().addProperty("duration", duration[0], units);
-  }
-  file.closeData();
-
-  // close the file
-  file.close();
+  loadTimeOfFlight(m_ws, m_top_entry_name, classType);
 }
 
-//-----------------------------------------------------------------------------
-/** Load the instrument from the nexus file or if not found from the IDF file
-*  specified by the info in the Nexus file
-*
-*  @param nexusfilename :: The Nexus file name
-*  @param localWorkspace :: MatrixWorkspace in which to put the instrument
-*geometry
-*  @param top_entry_name :: entry name at the top of the Nexus file
-*  @param alg :: Handle of the algorithm
-*  @return true if successful
-*/
-bool LoadEventNexus::loadInstrument(const std::string &nexusfilename,
-                                    MatrixWorkspace_sptr localWorkspace,
-                                    const std::string &top_entry_name,
-                                    Algorithm *alg) {
-  bool foundInstrument =
-      runLoadIDFFromNexus(nexusfilename, localWorkspace, top_entry_name, alg);
-  if (!foundInstrument)
-    foundInstrument =
-        runLoadInstrument(nexusfilename, localWorkspace, top_entry_name, alg);
-  return foundInstrument;
-}
 
 //-----------------------------------------------------------------------------
 /** Load the instrument from the nexus file
 *
 *  @param nexusfilename :: The name of the nexus file being loaded
-*  @param localWorkspace :: MatrixWorkspace in which to put the instrument
+*  @param localWorkspace :: EventWorkspaceCollection in which to put the instrument
 *geometry
 *  @param top_entry_name :: entry name at the top of the Nexus file
 *  @param alg :: Handle of the algorithm
 *  @return true if successful
 */
-bool LoadEventNexus::runLoadIDFFromNexus(
-    const std::string &nexusfilename, API::MatrixWorkspace_sptr localWorkspace,
-    const std::string &top_entry_name, Algorithm *alg) {
-  // Test if IDF exists in file, move on quickly if not
-  try {
-    ::NeXus::File nxsfile(nexusfilename);
-    nxsfile.openPath(top_entry_name + "/instrument/instrument_xml");
-  } catch (::NeXus::Exception &) {
-    alg->getLogger().information("No instrument definition found in " +
-                                 nexusfilename + " at " + top_entry_name +
-                                 "/instrument");
-    return false;
-  }
-
-  IAlgorithm_sptr loadInst = alg->createChildAlgorithm("LoadIDFFromNexus");
-
-  // Now execute the Child Algorithm. Catch and log any error, but don't stop.
-  try {
-    loadInst->setPropertyValue("Filename", nexusfilename);
-    loadInst->setProperty<MatrixWorkspace_sptr>("Workspace", localWorkspace);
-    loadInst->setPropertyValue("InstrumentParentPath", top_entry_name);
-    loadInst->execute();
-  } catch (std::invalid_argument &) {
-    alg->getLogger().error(
-        "Invalid argument to LoadIDFFromNexus Child Algorithm ");
-  } catch (std::runtime_error &) {
-    alg->getLogger().debug("No instrument definition found in " +
-                           nexusfilename + " at " + top_entry_name +
-                           "/instrument");
-  }
-
-  if (!loadInst->isExecuted())
-    alg->getLogger().information("No IDF loaded from Nexus file.");
-  return loadInst->isExecuted();
+template<>
+bool LoadEventNexus::runLoadIDFFromNexus<EventWorkspaceCollection_sptr>(
+                    const std::string &nexusfilename, EventWorkspaceCollection_sptr localWorkspace,
+                    const std::string &top_entry_name, Algorithm *alg) {
+  auto ws = localWorkspace->getSingleHeldWorkspace();
+  auto hasLoaded = runLoadIDFFromNexus<MatrixWorkspace_sptr>(nexusfilename, ws, top_entry_name, alg);
+  localWorkspace->setInstrument(ws->getInstrument());
+  return hasLoaded;
 }
+
 /** method used to return instrument name for some old ISIS files where it is
 * not written properly within the instrument
 * @param hFile :: A reference to the NeXus file opened at the root entry
@@ -1960,140 +2003,35 @@ LoadEventNexus::readInstrumentFromISIS_VMSCompat(::NeXus::File &hFile) {
   return instrumentName;
 }
 
+
 //-----------------------------------------------------------------------------
-/** Load the instrument definition file specified by info in the NXS file.
+/** Load the instrument definition file specified by info in the NXS file for
+* a EventWorkspaceCollection
 *
 *  @param nexusfilename :: Used to pick the instrument.
-*  @param localWorkspace :: MatrixWorkspace in which to put the instrument
+*  @param localWorkspace :: EventWorkspaceCollection in which to put the instrument
 *geometry
 *  @param top_entry_name :: entry name at the top of the NXS file
 *  @param alg :: Handle of the algorithm
 *  @return true if successful
 */
-bool LoadEventNexus::runLoadInstrument(const std::string &nexusfilename,
-                                       MatrixWorkspace_sptr localWorkspace,
-                                       const std::string &top_entry_name,
-                                       Algorithm *alg) {
-  string instrument = "";
-
-  // Get the instrument name
-  ::NeXus::File nxfile(nexusfilename);
-  // Start with the base entry
-  nxfile.openGroup(top_entry_name, "NXentry");
-  // Open the instrument
-  nxfile.openGroup("instrument", "NXinstrument");
-  try {
-    nxfile.openData("name");
-    instrument = nxfile.getStrData();
-    alg->getLogger().debug() << "Instrument name read from NeXus file is "
-                             << instrument << std::endl;
-  } catch (::NeXus::Exception &) {
-    // Try to fall back to isis compatibility options
-    nxfile.closeGroup();
-    instrument = readInstrumentFromISIS_VMSCompat(nxfile);
-    if (instrument.empty()) {
-      // Get the instrument name from the file instead
-      size_t n = nexusfilename.rfind('/');
-      if (n != std::string::npos) {
-        std::string temp =
-            nexusfilename.substr(n + 1, nexusfilename.size() - n - 1);
-        n = temp.find('_');
-        if (n != std::string::npos && n > 0) {
-          instrument = temp.substr(0, n);
-        }
-      }
-    }
-  }
-  if (instrument.compare("POWGEN3") ==
-      0) // hack for powgen b/c of bad long name
-    instrument = "POWGEN";
-  if (instrument.compare("NOM") == 0) // hack for nomad
-    instrument = "NOMAD";
-
-  if (instrument.empty())
-    throw std::runtime_error("Could not find the instrument name in the NXS "
-                             "file or using the filename. Cannot load "
-                             "instrument!");
-
-  // Now let's close the file as we don't need it anymore to load the
-  // instrument.
-  nxfile.close();
-
-  // do the actual work
-  IAlgorithm_sptr loadInst = alg->createChildAlgorithm("LoadInstrument");
-
-  // Now execute the Child Algorithm. Catch and log any error, but don't stop.
-  bool executionSuccessful(true);
-  try {
-    loadInst->setPropertyValue("InstrumentName", instrument);
-    loadInst->setProperty<MatrixWorkspace_sptr>("Workspace", localWorkspace);
-    loadInst->setProperty("RewriteSpectraMap", false);
-    loadInst->execute();
-
-    // Populate the instrument parameters in this workspace - this works around
-    // a bug
-    localWorkspace->populateInstrumentParameters();
-  } catch (std::invalid_argument &e) {
-    alg->getLogger().information()
-        << "Invalid argument to LoadInstrument Child Algorithm : " << e.what()
-        << std::endl;
-    executionSuccessful = false;
-  } catch (std::runtime_error &e) {
-    alg->getLogger().information(
-        "Unable to successfully run LoadInstrument Child Algorithm");
-    alg->getLogger().information(e.what());
-    executionSuccessful = false;
-  }
-
-  // If loading instrument definition file fails
-  if (!executionSuccessful) {
-    alg->getLogger().error() << "Error loading Instrument definition file\n";
-    return false;
-  }
-
-  // Ticket #2049: Cleanup all loadinstrument members to a single instance
-  // If requested update the instrument to positions in the data file
-  const Geometry::ParameterMap &pmap = localWorkspace->instrumentParameters();
-  if (!pmap.contains(localWorkspace->getInstrument()->getComponentID(),
-                     "det-pos-source"))
-    return executionSuccessful;
-
-  boost::shared_ptr<Geometry::Parameter> updateDets = pmap.get(
-      localWorkspace->getInstrument()->getComponentID(), "det-pos-source");
-  std::string value = updateDets->value<std::string>();
-  if (value.substr(0, 8) == "datafile") {
-    IAlgorithm_sptr updateInst =
-        alg->createChildAlgorithm("UpdateInstrumentFromFile");
-    updateInst->setProperty<MatrixWorkspace_sptr>("Workspace", localWorkspace);
-    updateInst->setPropertyValue("Filename", nexusfilename);
-    if (value == "datafile-ignore-phi") {
-      updateInst->setProperty("IgnorePhi", true);
-      alg->getLogger().information("Detector positions in IDF updated with "
-                                   "positions in the data file except for the "
-                                   "phi values");
-    } else {
-      alg->getLogger().information(
-          "Detector positions in IDF updated with positions in the data file");
-    }
-    // We want this to throw if it fails to warn the user that the information
-    // is not correct.
-    updateInst->execute();
-  }
-
-  return executionSuccessful;
+template <>
+bool LoadEventNexus::runLoadInstrument<EventWorkspaceCollection_sptr>(
+    const std::string &nexusfilename, EventWorkspaceCollection_sptr localWorkspace,
+    const std::string &top_entry_name, Algorithm *alg) {
+  auto ws = localWorkspace->getSingleHeldWorkspace();
+  auto hasLoaded = runLoadInstrument<MatrixWorkspace_sptr>(nexusfilename, ws, top_entry_name, alg);
+  localWorkspace->setInstrument(ws->getInstrument());
+  return hasLoaded;
 }
 
 //-----------------------------------------------------------------------------
 /**
-* Create the required spectra mapping. If the file contains an isis_vms_compat
-* block then
-* the mapping is read from there, otherwise a 1:1 map with the instrument is
-* created (along
-* with the associated spectra axis)
+* Deletes banks for a workspace given the bank names.
 * @param workspace :: The workspace to contain the spectra mapping
 * @param bankNames :: Bank names that are in Nexus file
 */
-void LoadEventNexus::deleteBanks(API::MatrixWorkspace_sptr workspace,
+void LoadEventNexus::deleteBanks(EventWorkspaceCollection_sptr workspace,
                                  std::vector<std::string> bankNames) {
   Instrument_sptr inst = boost::const_pointer_cast<Instrument>(
       workspace->getInstrument()->baseInstrument());
@@ -2204,7 +2142,7 @@ void LoadEventNexus::createSpectraMapping(
     for (auto name = bankNames.begin(); name != bankNames.end(); ++name) {
       // Only build the map for the single bank
       std::vector<IDetector_const_sptr> dets;
-      WS->getInstrument()->getDetectorsInBank(dets, (*name));
+      m_ws->getInstrument()->getDetectorsInBank(dets, (*name));
       if (dets.empty())
         throw std::runtime_error("Could not find the bank named '" + (*name) +
                                  "' as a component assembly in the instrument "
@@ -2213,11 +2151,11 @@ void LoadEventNexus::createSpectraMapping(
       allDets.insert(allDets.end(), dets.begin(), dets.end());
     }
     if (!allDets.empty()) {
-      WS->resizeTo(allDets.size());
+      m_ws->resizeTo(allDets.size());
       // Make an event list for each.
       for (size_t wi = 0; wi < allDets.size(); wi++) {
         const detid_t detID = allDets[wi]->getID();
-        WS->getSpectrum(wi)->setDetectorID(detID);
+        m_ws->setDetectorIdsForAllPeriods(wi,detID);
       }
       spectramap = true;
       g_log.debug() << "Populated spectra map for select banks\n";
@@ -2234,12 +2172,12 @@ void LoadEventNexus::createSpectraMapping(
   if (!spectramap) {
     g_log.debug() << "No custom spectra mapping found, continuing with default "
                      "1:1 mapping of spectrum:detectorID\n";
-    auto specList = WS->getInstrument()->getDetectorIDs(true);
+    auto specList = m_ws->getInstrument()->getDetectorIDs(true);
     createSpectraList(*std::min_element(specList.begin(), specList.end()),
                       *std::max_element(specList.begin(), specList.end()));
     // The default 1:1 will suffice but exclude the monitors as they are always
     // in a separate workspace
-    WS->padSpectra(m_specList);
+    m_ws->padSpectra(m_specList);
     g_log.debug() << "Populated 1:1 spectra map for the whole instrument \n";
   }
 }
@@ -2287,20 +2225,20 @@ bool LoadEventNexus::hasEventMonitors() {
 */
 void LoadEventNexus::runLoadMonitorsAsEvents(API::Progress *const prog) {
   try {
-    // Note the reuse of the WS member variable below. Means I need to grab a
+    // Note the reuse of the m_ws member variable below. Means I need to grab a
     // copy of its current value.
-    auto dataWS = WS;
-    WS = createEmptyEventWorkspace(); // Algorithm currently relies on an
+    auto dataWS = m_ws;
+    m_ws = boost::make_shared<EventWorkspaceCollection>(); // Algorithm currently relies on an
                                       // object-level workspace ptr
     // add filename
-    WS->mutableRun().addProperty("Filename", m_filename);
+    m_ws->mutableRun().addProperty("Filename", m_filename);
 
     // Re-use instrument, which has probably been loaded into the data
     // workspace (this happens in the first call to loadEvents() (inside
     // LoadEventNexuss::exec()). The second call to loadEvents(), immediately
     // below, can re-use it.
     if (m_instrument_loaded_correctly) {
-      WS->setInstrument(dataWS->getInstrument());
+      m_ws->setInstrument(dataWS->getInstrument());
       g_log.information() << "Instrument data copied into monitors workspace "
         " from the data workspace." << std::endl;
     }
@@ -2315,7 +2253,9 @@ void LoadEventNexus::runLoadMonitorsAsEvents(API::Progress *const prog) {
       g_log.information() << "Copying log data into monitors workspace from the "
                           << "data workspace." << std::endl;
       try {
-        copyLogs(dataWS, WS);
+        auto to = m_ws->getSingleHeldWorkspace();
+        auto from = dataWS;
+        copyLogs(from, to);
         g_log.information() << "Log data copied." << std::endl;
       } catch(std::runtime_error&) {
         g_log.error() << "Could not copy log data into monitors workspace. Some "
@@ -2330,12 +2270,12 @@ void LoadEventNexus::runLoadMonitorsAsEvents(API::Progress *const prog) {
         new WorkspaceProperty<IEventWorkspace>("MonitorWorkspace", mon_wsname,
                                                Direction::Output),
         "Monitors from the Event NeXus file");
-    this->setProperty<IEventWorkspace_sptr>("MonitorWorkspace", WS);
+    this->setProperty<IEventWorkspace_sptr>("MonitorWorkspace", m_ws->getSingleHeldWorkspace());
     // Set the internal monitor workspace pointer as well
-    dataWS->setMonitorWorkspace(WS);
+    dataWS->setMonitorWorkspace(m_ws->getSingleHeldWorkspace());
     // If the run was paused at any point, filter out those events (SNS only, I
     // think)
-    filterDuringPause(WS);
+    filterDuringPause(m_ws);
   } catch (const std::exception &e) {
     g_log.error() << "Error while loading monitors as events from file: ";
     g_log.error() << e.what() << std::endl;
@@ -2376,7 +2316,7 @@ void LoadEventNexus::runLoadMonitors() {
     MatrixWorkspace_sptr mons = boost::dynamic_pointer_cast<MatrixWorkspace>(monsOut);
     if (mons) {
       // Set the internal monitor workspace pointer as well
-      WS->setMonitorWorkspace(mons);
+      m_ws->setMonitorWorkspace(mons);
 
       filterDuringPause(mons);
     } else {
@@ -2468,22 +2408,21 @@ void LoadEventNexus::runLoadMonitors() {
     throw std::runtime_error(os.str());
   }
   // Monitor filtering/selection
-  const std::vector<detid_t> monitors = WS->getInstrument()->getMonitors();
+  const std::vector<detid_t> monitors = m_ws->getInstrument()->getMonitors();
   const size_t nmons(monitors.size());
   if (monitorsOnly) {
     g_log.debug() << "Loading only monitor spectra from " << filename << "\n";
     // Find the det_ids in the udet array.
-    WS->resizeTo(nmons);
+    m_ws->resizeTo(nmons);
     for (size_t i = 0; i < nmons; ++i) {
       // Find the index in the udet array
       const detid_t &id = monitors[i];
       std::vector<int32_t>::const_iterator it =
           std::find(udet.begin(), udet.end(), id);
       if (it != udet.end()) {
-        auto spectrum = WS->getSpectrum(i);
         const specid_t &specNo = spec[it - udet.begin()];
-        spectrum->setSpectrumNo(specNo);
-        spectrum->setDetectorID(id);
+        m_ws->setSpectrumNumberForAllPeriods(i, specNo);
+        m_ws->setDetectorIdsForAllPeriods(i, id);
       }
     }
   } else {
@@ -2511,17 +2450,12 @@ void LoadEventNexus::runLoadMonitors() {
     }
 
     SpectrumDetectorMapping mapping(spec, udet, monitors);
-    WS->resizeTo(mapping.getMapping().size());
+    m_ws->resizeTo(mapping.getMapping().size());
     // Make sure spectrum numbers are correct
     auto uniqueSpectra = mapping.getSpectrumNumbers();
-    auto itend = uniqueSpectra.end();
-    size_t counter = 0;
-    for (auto it = uniqueSpectra.begin(); it != itend; ++it) {
-      WS->getSpectrum(counter)->setSpectrumNo(*it);
-      ++counter;
-    }
+    m_ws->setSpectrumNumbersFromUniqueSpectra(uniqueSpectra);
     // Fill detectors based on this mapping
-    WS->updateSpectraUsing(mapping);
+    m_ws->updateSpectraUsing(mapping);
   }
   return true;
 }
@@ -2560,11 +2494,11 @@ void LoadEventNexus::setTimeFilters(const bool monitors) {
 /**
 * Check if time_of_flight can be found in the file and load it
 *
-* @param WS :: The event workspace which events will be modified.
+* @param WS :: The event workspace collection which events will be modified.
 * @param entry_name :: An NXentry tag in the file
 * @param classType :: The type of the events: either detector or monitor
 */
-void LoadEventNexus::loadTimeOfFlight(DataObjects::EventWorkspace_sptr WS,
+void LoadEventNexus::loadTimeOfFlight(EventWorkspaceCollection_sptr WS,
                                       const std::string &entry_name,
                                       const std::string &classType) {
   bool done = false;
@@ -2671,13 +2605,13 @@ void LoadEventNexus::loadTimeOfFlight(DataObjects::EventWorkspace_sptr WS,
 * Load the time of flight data. file must have open the group containing
 * "time_of_flight" data set.
 * @param file :: The nexus file to read from.
-* @param WS :: The event workspace to write to.
+* @param WS :: The event workspace collection to write to.
 * @param binsName :: bins name
 * @param start_wi :: First workspace index to process
 * @param end_wi :: Last workspace index to process
 */
 void LoadEventNexus::loadTimeOfFlightData(::NeXus::File &file,
-                                          DataObjects::EventWorkspace_sptr WS,
+                                          EventWorkspaceCollection_sptr WS,
                                           const std::string &binsName,
                                           size_t start_wi, size_t end_wi) {
   // first check if the data is already randomized
@@ -2771,7 +2705,7 @@ void LoadEventNexus::loadTimeOfFlightData(::NeXus::File &file,
 * @param WS : pointer to the workspace
 */
 void LoadEventNexus::loadSampleDataISIScompatibility(
-    ::NeXus::File &file, Mantid::API::MatrixWorkspace_sptr WS) {
+  ::NeXus::File &file, EventWorkspaceCollection& WS) {
   try {
     file.openGroup("isis_vms_compat", "IXvms");
   } catch (::NeXus::Exception &) {
@@ -2786,11 +2720,12 @@ void LoadEventNexus::loadSampleDataISIScompatibility(
     file.readData("SPB", spb);
     file.readData("RSPB", rspb);
 
-    WS->mutableSample().setGeometryFlag(
+      
+    WS.setGeometryFlag(
         spb[2]); // the flag is in the third value
-    WS->mutableSample().setThickness(rspb[3]);
-    WS->mutableSample().setHeight(rspb[4]);
-    WS->mutableSample().setWidth(rspb[5]);
+    WS.setThickness(rspb[3]);
+    WS.setHeight(rspb[4]);
+    WS.setWidth(rspb[5]);
   } catch (::NeXus::Exception &ex) {
     // it means that the data was not as expected, report the problem
     std::stringstream s;
@@ -2802,104 +2737,6 @@ void LoadEventNexus::loadSampleDataISIScompatibility(
   file.closeGroup();
 }
 
-void LoadEventNexus::filterDuringPause(API::MatrixWorkspace_sptr workspace) {
-  try {
-    if ((!ConfigService::Instance().hasProperty(
-            "loadeventnexus.keeppausedevents")) &&
-        (WS->run().getLogData("pause")->size() > 1)) {
-      g_log.notice("Filtering out events when the run was marked as paused. "
-                   "Set the loadeventnexus.keeppausedevents configuration "
-                   "property to override this.");
-
-      auto filter = createChildAlgorithm("FilterByLogValue");
-      filter->setProperty("InputWorkspace", workspace);
-      filter->setProperty("OutputWorkspace", workspace);
-      filter->setProperty("LogName", "pause");
-      // The log value is set to 1 when the run is paused, 0 otherwise.
-      filter->setProperty("MinimumValue", 0.0);
-      filter->setProperty("MaximumValue", 0.0);
-      filter->setProperty("LogBoundary", "Left");
-      filter->execute();
-    }
-  } catch (Exception::NotFoundError &) {
-    // No "pause" log, just carry on
-  }
-}
-
-/** Load the instrument from the nexus file
-*
-* @param nexusfilename :: The name of the nexus file being loaded
-* @param localWorkspace :: MatrixWorkspace in which to put the instrument
-*geometry
-* @param alg :: Handle of the algorithm
-* @param returnpulsetimes :: flag to return shared pointer for BankPulseTimes,
-*otherwise NULL.
-*
-* @return Pulse times given in the DAS logs
-*/
-boost::shared_ptr<BankPulseTimes>
-LoadEventNexus::runLoadNexusLogs(const std::string &nexusfilename,
-                                 API::MatrixWorkspace_sptr localWorkspace,
-                                 API::Algorithm &alg, bool returnpulsetimes) {
-  // --------------------- Load DAS Logs -----------------
-  // The pulse times will be empty if not specified in the DAS logs.
-  // BankPulseTimes * out = NULL;
-  boost::shared_ptr<BankPulseTimes> out;
-  API::IAlgorithm_sptr loadLogs = alg.createChildAlgorithm("LoadNexusLogs");
-
-  // Now execute the Child Algorithm. Catch and log any error, but don't stop.
-  try {
-    alg.getLogger().information() << "Loading logs from NeXus file..."
-                                  << "\n";
-    loadLogs->setPropertyValue("Filename", nexusfilename);
-    loadLogs->setProperty<API::MatrixWorkspace_sptr>("Workspace",
-                                                     localWorkspace);
-    loadLogs->execute();
-
-    // If successful, we can try to load the pulse times
-    Kernel::TimeSeriesProperty<double> *log =
-        dynamic_cast<Kernel::TimeSeriesProperty<double> *>(
-            localWorkspace->mutableRun().getProperty("proton_charge"));
-    std::vector<Kernel::DateAndTime> temp;
-    if (log)
-      temp = log->timesAsVector();
-    // if (returnpulsetimes) out = new BankPulseTimes(temp);
-    if (returnpulsetimes)
-      out = boost::make_shared<BankPulseTimes>(temp);
-
-    // Use the first pulse as the run_start time.
-    if (!temp.empty()) {
-      if (temp[0] < Kernel::DateAndTime("1991-01-01T00:00:00"))
-        alg.getLogger().warning() << "Found entries in the proton_charge "
-                                     "sample log with invalid pulse time!\n";
-
-      Kernel::DateAndTime run_start = localWorkspace->getFirstPulseTime();
-      // add the start of the run as a ISO8601 date/time string. The start =
-      // first non-zero time.
-      // (this is used in LoadInstrument to find the right instrument file to
-      // use).
-      localWorkspace->mutableRun().addProperty(
-          "run_start", run_start.toISO8601String(), true);
-    } else {
-      alg.getLogger().warning() << "Empty proton_charge sample log. You will "
-                                   "not be able to filter by time.\n";
-    }
-    /// Attempt to make a gonoimeter from the logs
-    try {
-      Geometry::Goniometer gm;
-      gm.makeUniversalGoniometer();
-      localWorkspace->mutableRun().setGoniometer(gm, true);
-    } catch (std::runtime_error &) {
-    }
-  } catch (...) {
-    alg.getLogger().error() << "Error while loading Logs from SNS Nexus. Some "
-                               "sample logs may be missing."
-                            << "\n";
-    return out;
-  }
-  return out;
-}
-
 /**
 * Check the validity of the optional spectrum range/list provided and identify
 *if partial data should be loaded.
@@ -2963,7 +2800,7 @@ void LoadEventNexus::createSpectraList(int32_t min, int32_t max) {
   if (!m_specList.empty()) {
 
     // Check that spectra supplied by user do not correspond to monitors
-    auto nmonitors = WS->getInstrument()->getMonitors().size();
+    auto nmonitors = m_ws->getInstrument()->getMonitors().size();
 
     for (size_t i = 0; i < nmonitors; ++i) {
       if (std::find(m_specList.begin(), m_specList.end(), i + 1) !=
@@ -2997,26 +2834,7 @@ void LoadEventNexus::safeOpenFile(const std::string fname)
   }
 }
 
-/**
- * Copy all logData properties from the 'from' workspace to the 'to'
- * workspace. Does not use CopyLogs as a child algorithm (this is a
- * simple copy and the workspace is not yet in the ADS).
- *
- * @param from source of log entries
- * @param to workspace where to add the log entries
- */
-void LoadEventNexus::copyLogs(const EventWorkspace_sptr& from,
-                                  EventWorkspace_sptr& to)
-{
-  // from the logs, get all the properties that don't overwrite any
-  // prop. already set in the sink workspace (like 'filename').
-  auto props = from->mutableRun().getLogData();
-  for (size_t j=0; j<props.size(); j++) {
-    if (!to->mutableRun().hasProperty(props[j]->name())) {
-      to->mutableRun().addLogData(props[j]->clone());
-    }
-  }
-}
+
 
 } // namespace DataHandling
 } // namespace Mantid
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadIDFFromNexus.cpp b/Code/Mantid/Framework/DataHandling/src/LoadIDFFromNexus.cpp
index 41c64c2b9c1bbcf42a30856f036109112ea06364..3cb49bb1a53e46a0b5aa893f873e76f880a9132e 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadIDFFromNexus.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadIDFFromNexus.cpp
@@ -4,6 +4,19 @@
 #include "MantidDataHandling/LoadIDFFromNexus.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidAPI/FileProperty.h"
+#include <Poco/Path.h>
+#include <Poco/File.h>
+#include <Poco/DOM/Document.h>
+#include <Poco/DOM/DOMParser.h>
+#include <Poco/DOM/Element.h>
+#include <Poco/DOM/NodeList.h>
+#include <Poco/DOM/NodeIterator.h>
+
+using Poco::XML::DOMParser;
+using Poco::XML::Document;
+using Poco::XML::Element;
+using Poco::XML::NodeList;
+using Poco::XML::NodeIterator;
 
 namespace Mantid {
 namespace DataHandling {
@@ -64,21 +77,136 @@ void LoadIDFFromNexus::exec() {
   nxfile.openPath(instrumentParentPath);
 
   // Take instrument info from nexus file.
-  // If the nexus file also contains a instrument parameter map entry this
-  // is returned as parameterString
+  localWorkspace->loadInstrumentInfoNexus(filename, &nxfile );
+
+  // Look for parameter correction file
+  std::string parameterCorrectionFile = getParameterCorrectionFile( localWorkspace->getInstrument()->getName() );
+  g_log.notice() << "Parameter correction file: " << parameterCorrectionFile << "\n";
+
+  // Read parameter correction file, if found
+  std::string correctionParameterFile = "";
+  bool append = false;
+  if( parameterCorrectionFile != "") {
+    // Read parameter correction file 
+    // to find out which parameter file to use 
+    // and whether it is appended to default parameters.
+    readParameterCorrectionFile( parameterCorrectionFile, "2015-07-23 12:00:00", correctionParameterFile, append );
+  }
+  g_log.notice() << "Result of readParameterCorrectionFile: " << correctionParameterFile << " " << append << "\n";
+
+  LoadParameters(  &nxfile, localWorkspace );
+
+  return;
+}
+
+  /*  Gets the full pathname of the parameter correction file, if it exists
+   * @param instName :: short name of instrument as it appears in IDF filename etc.
+   * @returns  full path name of correction file if found else ""
+  */
+  std::string LoadIDFFromNexus::getParameterCorrectionFile( const std::string& instName ) {
+
+    std::vector<std::string> directoryNames =
+      ConfigService::Instance().getInstrumentDirectories();
+    for (auto instDirs_itr = directoryNames.begin();
+      instDirs_itr != directoryNames.end(); ++instDirs_itr) {
+        // This will iterate around the directories from user ->etc ->install, and
+        // find the first appropriate file
+        Poco::Path iPath( *instDirs_itr,"embedded_instrument_corrections"); // Go to correction file subfolder
+        // First see if the directory exists
+        Poco::File ipDir(iPath);
+        if( ipDir.exists() && ipDir.isDirectory() ) {
+          iPath.append(instName + "_Parameter_Corrections.xml"); // Append file name to pathname
+            Poco::File ipFile(iPath);
+            if( ipFile.exists() && ipFile.isFile())
+            {
+              return ipFile.path(); // Return first found
+            }
+        } // Directory
+    } // Loop
+    return ""; // No file found
+  }
+
+
+  /* Reads the parameter correction file and if a correction is needed output the parameterfile needed 
+  *  and whether it is to be appended.
+  * @param correction_file :: path nsame of correction file as returned by getParameterCorrectionFile()
+  * @param date :: IS8601 date string applicable: Must be full timestamp (timezone optional)
+  * @param parameter_file :: output parameter file to use or "" if none
+  * @param append :: output whether the parameters from parameter_file should be appended.
+  *
+  *  @throw FileError Thrown if unable to parse XML file
+  */
+void LoadIDFFromNexus::readParameterCorrectionFile( const std::string& correction_file, const std::string& date, 
+                                                   std::string& parameter_file, bool& append ) { 
+
+   // Set output arguments to default
+  parameter_file = "";
+  append = false;
+
+   // Get contents of correction file                                                    
+  const std::string xmlText = Kernel::Strings::loadFile(correction_file);
+
+  // Set up the DOM parser and parse xml file
+  DOMParser pParser;
+  Document* pDoc;
+  try {
+    pDoc = pParser.parseString(xmlText);
+  } catch (Poco::Exception &exc) {
+    throw Kernel::Exception::FileError(
+        exc.displayText() + ". Unable to parse parameter correction file:", correction_file);
+  } catch (...) {
+    throw Kernel::Exception::FileError("Unable to parse parameter correction file:", correction_file);
+  }
+  // Get pointer to root element
+  Element* pRootElem = pDoc->documentElement();
+  if (!pRootElem->hasChildNodes()) {
+    g_log.error("Parameter correction file: " + correction_file + "contains no XML root element.");
+    throw Kernel::Exception::InstrumentDefinitionError(
+        "No root element in XML parameter correction file", correction_file);
+  }
+
+  // Convert date to Mantid object
+  DateAndTime externalDate( date );
+
+  // Examine the XML structure obtained by parsing
+  Poco::AutoPtr<NodeList> correctionNodeList = pRootElem->getElementsByTagName("correction");
+  for( unsigned long i=0; i < correctionNodeList->length(); ++i ){
+    // For each correction element
+    Element* corr = (Element *)correctionNodeList->item(i);
+    DateAndTime start(corr->getAttribute("valid-from"));
+    DateAndTime end(corr->getAttribute("valid-to"));
+    if ( start <= externalDate && externalDate <= end ){
+      parameter_file = corr->getAttribute("file");
+      append = ( corr->getAttribute("append") == "true");
+      break;  
+    }
+  }
+  
+}
+
+
+/** Loads the parameters from the Nexus file if possible, else from a parameter file
+ *  into the specified workspace
+ * @param nxfile :: open NeXus file
+ * @param localWorkspace :: workspace into which loading occurs
+ *
+ *  @throw FileError Thrown if unable to parse XML file
+ */
+void LoadIDFFromNexus::LoadParameters( ::NeXus::File *nxfile, const MatrixWorkspace_sptr localWorkspace ) {
+
   std::string parameterString;
-  localWorkspace->loadInstrumentInfoNexus(&nxfile, parameterString);
-  // at present loadInstrumentInfoNexus does not populate any instrument params
-  // into the workspace including those that are defined in the IDF.
-  // Here populate inst params defined in IDF
+
+  // First attempt to load parameters from nexus file.                                    
+  nxfile->openGroup("instrument", "NXinstrument");
+  localWorkspace->loadInstrumentParametersNexus( nxfile, parameterString );
+  nxfile->closeGroup();
+
+  // loadInstrumentParametersNexus does not populate any instrument params
+  // so we do it here.
   localWorkspace->populateInstrumentParameters();
 
-  // if no parameter map in nexus file then attempt to load a 'fallback'
-  // parameter file from hard-disk. You may argue whether this should be
-  // done at all from an algorithm called LoadIDFFromNexus but that is
-  // for another day to possible change
   if (parameterString.empty()) {
-    // Create the 'fallback' parameter file name to look for
+    // No parameters have been found in Nexus file, so we look for them in a parameter file.
     std::vector<std::string> directoryNames =
         ConfigService::Instance().getInstrumentDirectories();
     const std::string instrumentName =
@@ -86,7 +214,7 @@ void LoadIDFFromNexus::exec() {
     for (auto instDirs_itr = directoryNames.begin();
          instDirs_itr != directoryNames.end(); ++instDirs_itr) {
       // This will iterate around the directories from user ->etc ->install, and
-      // find the first beat file
+      // find the first appropriate file
       std::string directoryName = *instDirs_itr;
       const std::string paramFile =
           directoryName + instrumentName + "_Parameters.xml";
@@ -106,7 +234,7 @@ void LoadIDFFromNexus::exec() {
                       << " not found or un-parsable. ";
       }
     }
-  } else {
+  } else { // We do have parameters from the Nexus file
     g_log.notice()
         << "Found Instrument parameter map entry in Nexus file, which is loaded"
         << std::endl;
@@ -114,7 +242,6 @@ void LoadIDFFromNexus::exec() {
     localWorkspace->readParameterMap(parameterString);
   }
 
-  return;
 }
 
 } // namespace DataHandling
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadISISNexus2.cpp b/Code/Mantid/Framework/DataHandling/src/LoadISISNexus2.cpp
index c6fc6514d216f82f189edfd15a6d9ae5ba2ee35a..4b7d550ffe285c4d2b3a067b8e837538f8e7559b 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadISISNexus2.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadISISNexus2.cpp
@@ -1182,7 +1182,8 @@ bool LoadISISNexus2::findSpectraDetRangeInFile(
     }
     if (m_monBlockInfo.spectraID_max - m_monBlockInfo.spectraID_min + 1 !=
         static_cast<int64_t>(nmons)) {
-      g_log.warning() << " non-consequent monitor ID-s in the monitor block. "
+      g_log.warning() << "When trying to find the range of monitor spectra: "
+                         "non-consequent monitor ID-s in the monitor block. "
                          "Unexpected situation for the loader\n";
     }
     // at this stage we assume that the only going to load monitors
@@ -1205,7 +1206,8 @@ bool LoadISISNexus2::findSpectraDetRangeInFile(
   m_detBlockInfo.spectraID_max = spectrum_index[ndets - 1];
   if (m_detBlockInfo.spectraID_max - m_detBlockInfo.spectraID_min + 1 !=
       static_cast<int64_t>(m_detBlockInfo.numberOfSpectra)) {
-    g_log.warning() << " non-consequent spectra ID-s in the detectors block. "
+    g_log.warning() << "When trying to find the range of monitor spectra:  "
+                       "non-consequent spectra ID-s in the detectors block. "
                        "Unexpected situation for the loader\n";
   }
 
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadInstrument.cpp b/Code/Mantid/Framework/DataHandling/src/LoadInstrument.cpp
index 673586cdad50c2699162bff71e1b55b66b14f010..48603e96d33de2d894b37507526743a511b67c0a 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadInstrument.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadInstrument.cpp
@@ -6,19 +6,8 @@
 #include "MantidAPI/Progress.h"
 #include "MantidDataHandling/LoadInstrument.h"
 #include "MantidGeometry/Instrument.h"
-#include "MantidGeometry/Instrument/Component.h"
-#include "MantidGeometry/Instrument/Detector.h"
-#include "MantidGeometry/Instrument/ObjCompAssembly.h"
-#include "MantidGeometry/Instrument/RectangularDetector.h"
-#include "MantidGeometry/Objects/ShapeFactory.h"
-#include "MantidGeometry/Rendering/vtkGeometryCacheReader.h"
-#include "MantidGeometry/Rendering/vtkGeometryCacheWriter.h"
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/ConfigService.h"
-#include "MantidKernel/DateAndTime.h"
-#include "MantidKernel/Interpolation.h"
-#include "MantidKernel/PhysicalConstants.h"
-#include "MantidKernel/UnitFactory.h"
 
 #include <Poco/DOM/DOMParser.h>
 #include <Poco/DOM/Document.h>
@@ -127,7 +116,7 @@ void LoadInstrument::exec() {
     const PropertyWithValue<std::string> *xml =
       dynamic_cast<const PropertyWithValue<std::string> *>(InstrumentXML);
     if (xml) {
-      parser.initialize(m_filename, m_instName, *xml);
+      parser = InstrumentDefinitionParser(m_filename, m_instName, *xml);
     } else {
       throw std::invalid_argument("The instrument XML passed cannot be "
                                   "casted to a standard string.");
@@ -165,7 +154,7 @@ void LoadInstrument::exec() {
     m_instName = instrumentFile.substr(0, instrumentFile.find("_Def"));
 
     // Initialize the parser with the the XML text loaded from the IDF file
-    parser.initialize(m_filename, m_instName, Strings::loadFile(m_filename));
+    parser = InstrumentDefinitionParser(m_filename, m_instName, Strings::loadFile(m_filename));
   }
 
   // Find the mangled instrument name that includes the modified date
@@ -272,10 +261,11 @@ void LoadInstrument::runLoadParameterFile() {
 /// found, else return "".
 //  directoryName must include a final '/'.
 std::string LoadInstrument::getFullPathParamIDF(std::string directoryName) {
+  Poco::Path directoryPath (directoryName);
+  directoryPath.makeDirectory();
   // Remove the path from the filename
-  const std::string::size_type stripPath = m_filename.find_last_of("\\/");
-  std::string instrumentFile =
-      m_filename.substr(stripPath + 1, m_filename.size());
+  Poco::Path filePath (m_filename);
+  std::string instrumentFile = filePath.getFileName();
 
   // First check whether there is a parameter file whose name is the same as the
   // IDF file,
@@ -295,11 +285,11 @@ std::string LoadInstrument::getFullPathParamIDF(std::string directoryName) {
 
   // Assemble parameter file name
   std::string fullPathParamIDF =
-      directoryName + prefix + "_Parameters" + suffix;
+      directoryPath.setFileName(prefix + "_Parameters" + suffix).toString();
   if (Poco::File(fullPathParamIDF).exists() ==
       false) { // No such file exists, so look for file based on instrument ID
                // given by the prefix
-    fullPathParamIDF = directoryName + "/" + prefix + "_Parameters.xml";
+    fullPathParamIDF = directoryPath.setFileName(prefix + "_Parameters.xml").toString();
   }
 
   if (Poco::File(fullPathParamIDF).exists() ==
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadIsawDetCal.cpp b/Code/Mantid/Framework/DataHandling/src/LoadIsawDetCal.cpp
index 8d1115e46ae18c4b7c2b4aa3d06d56578aa6306c..e191cd6821e7d18ed0fe595a41cb2c12efb4a2b6 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadIsawDetCal.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadIsawDetCal.cpp
@@ -150,11 +150,26 @@ void LoadIsawDetCal::exec() {
       }
     }
   }
-
+  std::set<int> uniqueBanks; // for CORELLI and WISH
+  std::string bankPart = "bank";
+  if (instname .compare("WISH") == 0) bankPart = "WISHpanel";
   if (detList.empty())
-    throw std::runtime_error("This instrument does not have any "
-                             "RectangularDetector's. LoadIsawDetCal cannot "
-                             "operate on this instrument at this time.");
+  {
+    // Get all children
+    std::vector<IComponent_const_sptr> comps;
+    inst->getChildren(comps, true);
+
+    for (size_t i = 0; i < comps.size(); i++) {
+      std::string bankName = comps[i]->getName();
+      boost::trim(bankName);
+      boost::erase_all(bankName,bankPart);
+      int bank = 0;
+      Strings::convert(bankName, bank);
+      if (bank == 0)continue;
+      // Track unique bank numbers
+      uniqueBanks.insert(bank);
+    }
+  }
 
   while (std::getline(input, line)) {
     if (line[0] == '7') {
@@ -162,7 +177,8 @@ void LoadIsawDetCal::exec() {
       std::stringstream(line) >> count >> mL1 >> mT0;
       setProperty("TimeOffset", mT0);
       // Convert from cm to m
-      center(0.0, 0.0, -0.01 * mL1, "moderator", inname);
+      if (instname .compare("WISH") == 0) center(0.0, 0.0, -0.01 * mL1, "undulator", inname);
+      else center(0.0, 0.0, -0.01 * mL1, "moderator", inname);
       // mT0 and time of flight are both in microsec
       IAlgorithm_sptr alg1 = createChildAlgorithm("ChangeBinOffset");
       alg1->setProperty<MatrixWorkspace_sptr>("InputWorkspace", inputW);
@@ -203,12 +219,12 @@ void LoadIsawDetCal::exec() {
     for (int i = 0; i < static_cast<int>(detList.size()); i++)
       if (detList[i]->getName().compare(Detbank.str()) == 0)
         idnum = i;
-    if (idnum < 0) continue;
-    det = detList[idnum];
+    if (idnum >= 0) det = detList[idnum];
     if (det) {
+      detname = det->getName();
       IAlgorithm_sptr alg1 = createChildAlgorithm("ResizeRectangularDetector");
       alg1->setProperty<MatrixWorkspace_sptr>("Workspace", inputW);
-      alg1->setProperty("ComponentName", det->getName());
+      alg1->setProperty("ComponentName", detname);
       // Convert from cm to m
       alg1->setProperty("ScaleX", 0.01 * width / det->xsize());
       alg1->setProperty("ScaleY", 0.01 * height / det->ysize());
@@ -218,7 +234,6 @@ void LoadIsawDetCal::exec() {
       x *= 0.01;
       y *= 0.01;
       z *= 0.01;
-      detname = det->getName();
       center(x, y, z, detname, inname);
 
       // These are the ISAW axes
@@ -272,6 +287,93 @@ void LoadIsawDetCal::exec() {
       // Need to get the address to the base instrument component
       Geometry::ParameterMap &pmap = inputW->instrumentParameters();
 
+      // Set or overwrite "rot" instrument parameter.
+      pmap.addQuat(comp.get(), "rot", Rot);
+    }
+    // Loop through tube detectors to match names with number from DetCal file
+    idnum = -1;
+    std::set<int>::iterator it;
+     for (it = uniqueBanks.begin(); it != uniqueBanks.end(); ++it)
+      if (*it == id) idnum = *it;
+    if (idnum < 0) continue;
+    std::ostringstream mess;
+    if (bankPart == "WISHpanel" && idnum < 10)
+        mess << bankPart << "0" << idnum;
+    else
+      mess << bankPart << idnum;
+
+    std::string bankName = mess.str();
+    // Retrieve it
+    boost::shared_ptr<const IComponent> comp =
+        inst->getComponentByName(bankName);
+    if (instname .compare("CORELLI") == 0) // for Corelli with sixteenpack under bank
+    {
+      std::vector<Geometry::IComponent_const_sptr> children;
+      boost::shared_ptr<const Geometry::ICompAssembly> asmb =
+          boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(inst->getComponentByName(bankName));
+      asmb->getChildren(children, false);
+      comp = children[0];
+    }
+    if (comp) {
+     // Omitted resizing tubes
+
+      // Convert from cm to m
+      x *= 0.01;
+      y *= 0.01;
+      z *= 0.01;
+      detname = comp->getFullName();
+      center(x, y, z, detname, inname);
+
+      // These are the ISAW axes
+      V3D rX = V3D(base_x, base_y, base_z);
+      rX.normalize();
+      V3D rY = V3D(up_x, up_y, up_z);
+      rY.normalize();
+      // V3D rZ=rX.cross_prod(rY);
+
+      // These are the original axes
+      V3D oX = V3D(1., 0., 0.);
+      V3D oY = V3D(0., 1., 0.);
+      V3D oZ = V3D(0., 0., 1.);
+
+      // Axis that rotates X
+      V3D ax1 = oX.cross_prod(rX);
+      // Rotation angle from oX to rX
+      double angle1 = oX.angle(rX);
+      angle1 *= 180.0 / M_PI;
+      //TODO: find out why this is needed for WISH
+      if (instname == "WISH") angle1 += 180.0;
+      // Create the first quaternion
+      Quat Q1(angle1, ax1);
+
+      // Now we rotate the original Y using Q1
+      V3D roY = oY;
+      Q1.rotate(roY);
+      // Find the axis that rotates oYr onto rY
+      V3D ax2 = roY.cross_prod(rY);
+      double angle2 = roY.angle(rY);
+      angle2 *= 180.0 / M_PI;
+      Quat Q2(angle2, ax2);
+
+      // Final = those two rotations in succession; Q1 is done first.
+      Quat Rot = Q2 * Q1;
+
+      boost::shared_ptr<const IComponent> parent = comp->getParent();
+      if (parent) {
+        Quat rot0 = parent->getRelativeRot();
+        rot0.inverse();
+        Rot = Rot * rot0;
+      }
+      boost::shared_ptr<const IComponent> grandparent = parent->getParent();
+      if (grandparent) {
+        Quat rot0 = grandparent->getRelativeRot();
+        rot0.inverse();
+        Rot = Rot * rot0;
+      }
+
+      // Need to get the address to the base instrument component
+      Geometry::ParameterMap &pmap = inputW->instrumentParameters();
+
       // Set or overwrite "rot" instrument parameter.
       pmap.addQuat(comp.get(), "rot", Rot);
     }
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadMLZ.cpp b/Code/Mantid/Framework/DataHandling/src/LoadMLZ.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..913477b26fdfdf634489e58778bc3ff7070388d8
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/src/LoadMLZ.cpp
@@ -0,0 +1,491 @@
+//----------------------------------------------------------------------
+// Includes
+//----------------------------------------------------------------------
+#include "MantidDataHandling/LoadMLZ.h"
+#include "MantidAPI/FileProperty.h"
+#include "MantidAPI/Progress.h"
+#include "MantidAPI/RegisterFileLoader.h"
+#include "MantidGeometry/Instrument.h"
+#include "MantidKernel/EmptyValues.h"
+#include "MantidKernel/UnitFactory.h"
+#include "MantidDataHandling/LoadHelper.h"
+
+#include <limits>
+#include <algorithm>
+#include <iostream>
+#include <vector>
+#include <cmath>
+//-----------------------------------------------------------------------
+
+namespace Mantid
+{
+namespace DataHandling
+{
+
+  using namespace Kernel;
+  using namespace API;
+  using namespace NeXus;
+
+  // Register the algorithm into the AlgorithmFactory
+  DECLARE_NEXUS_FILELOADER_ALGORITHM(LoadMLZ)
+  
+
+  //----------------------------------------------------------------------------------------------
+  /** Constructor
+   */
+  LoadMLZ::LoadMLZ() : API::IFileLoader<Kernel::NexusDescriptor>()
+  {
+     m_instrumentName = "";
+     m_wavelength = 0;
+     m_channelWidth = 0.0;
+     m_numberOfChannels = 0;
+     m_numberOfHistograms = 0;
+     m_numberOfTubes = 0;
+     m_numberOfPixelsPerTube = 0;
+     m_monitorElasticPeakPosition = 0;
+     m_monitorCounts = 0;
+     m_timeOfFlightDelay = 0;
+     m_chopper_speed = 0.0;
+     m_chopper_ratio = 0;
+     m_l1 = 0;
+     m_l2 = 0;
+     m_supportedInstruments.push_back("TOFTOF");
+     m_supportedInstruments.push_back("DNS");
+  }
+    
+  //---------------------------------------------------------------------------
+  /** Destructor
+   */
+  LoadMLZ::~LoadMLZ()
+  {
+  }
+  
+  //---------------------------------------------------------------------------
+  /// Algorithm's name for identification. @see Algorithm::name
+  const std::string LoadMLZ::name() const { return "LoadMLZ";}
+  
+  /// Algorithm's version for identification. @see Algorithm::version
+  int LoadMLZ::version() const { return 1;}
+  
+  /// Algorithm's category for identification. @see Algorithm::category
+  const std::string LoadMLZ::category() const { return "DataHandling";}
+
+
+  //---------------------------------------------------------------------------
+  /** Initialize the algorithm's properties.
+   */
+  void LoadMLZ::init()
+  {
+     std::vector<std::string> exts;
+     exts.push_back(".nxs");
+     exts.push_back(".hdf");
+     exts.push_back(".hd5");
+
+     declareProperty(
+          new FileProperty("Filename", "", FileProperty::Load, exts),
+          "File path of the Data file to load");
+
+     declareProperty(
+          new WorkspaceProperty<>("OutputWorkspace", "", Direction::Output),
+          "The name to use for the output workspace");
+
+  }
+
+
+  //---------------------------------------------------------------------------
+  /** Execute the algorithm.
+   */
+  void LoadMLZ::exec()
+  {
+     // Retrieve filename
+     std::string filenameData = getPropertyValue("Filename");
+
+     // open the root node
+     NeXus::NXRoot dataRoot(filenameData);
+     NXEntry dataFirstEntry = dataRoot.openFirstEntry();
+
+     loadInstrumentDetails(dataFirstEntry);
+     loadTimeDetails(dataFirstEntry);
+
+     initWorkSpace(dataFirstEntry);
+
+     runLoadInstrument(); // just to get IDF contents
+     initInstrumentSpecific();
+
+     loadDataIntoTheWorkSpace(dataFirstEntry);
+     loadRunDetails(dataFirstEntry);
+     loadExperimentDetails(dataFirstEntry);
+     maskDetectors(dataFirstEntry);
+
+     // load the instrument from the IDF if it exists
+     runLoadInstrument();
+     setProperty("OutputWorkspace", m_localWorkspace);
+  }
+
+  /**
+  * Return the confidence with which this algorithm can load the file
+  * @param descriptor A descriptor for the file
+  * @returns An integer specifying the confidence level. 0 indicates it will not be used
+  */
+  int LoadMLZ::confidence(Kernel::NexusDescriptor & descriptor) const
+  {
+     // fields existent only at the MLZ
+     if (descriptor.pathExists("/Scan/wavelength")
+       && descriptor.pathExists("/Scan/title")
+       && descriptor.pathExists("/Scan/mode"))
+     {
+        return 80;
+     }
+     else
+     {
+      return 0;
+     }
+  }
+
+
+  /**
+   * Loads Masked detectors from the /Scan/instrument/Detector/pixel_mask
+   */
+  void LoadMLZ::maskDetectors(NeXus::NXEntry& entry)
+  {
+     // path to the pixel_mask
+     std::string pmpath = "instrument/detector/pixel_mask";
+
+     NeXus::NXInt pmdata = entry.openNXInt(pmpath);
+     // load the counts from the file into memory
+     pmdata.load();
+     g_log.debug() << "PMdata size: " << pmdata.size() << std::endl;
+     std::vector<int> masked_detectors(pmdata(), pmdata()+pmdata.size());
+
+     g_log.debug() << "Number of masked detectors: " << masked_detectors.size() << std::endl;
+
+     for (size_t i=0; i<masked_detectors.size(); i++)
+     {
+        g_log.debug() << "List of masked detectors: ";
+        g_log.debug() << masked_detectors[i];
+        g_log.debug() << ", ";
+     }
+     g_log.debug() << std::endl;
+
+     // Need to get hold of the parameter map
+     Geometry::ParameterMap& pmap = m_localWorkspace->instrumentParameters();
+
+     // If explicitly given a list of detectors to mask, just mark those.
+     // Otherwise, mask all detectors pointing to the requested spectra in indexlist loop below
+     std::vector<detid_t>::const_iterator it;
+     Geometry::Instrument_const_sptr instrument = m_localWorkspace->getInstrument();
+     if ( ! masked_detectors.empty() )
+     {
+        for (it = masked_detectors.begin(); it != masked_detectors.end(); ++it)
+        {
+           try
+           {
+              if ( const Geometry::ComponentID det = instrument->getDetector(*it)->getComponentID() )
+              {
+                 pmap.addBool(det,"masked",true);
+              }
+           }
+           catch(Kernel::Exception::NotFoundError &e)
+           {
+              g_log.warning() << e.what() << " Found while running MaskDetectors" << std::endl;
+           }
+        }
+     }
+  }
+
+
+  /**
+   * Set the instrument name along with its path on the nexus file
+  */
+  void LoadMLZ::loadInstrumentDetails(NeXus::NXEntry& firstEntry)
+  {
+
+     m_instrumentPath = m_mlzloader.findInstrumentNexusPath(firstEntry);
+
+     if (m_instrumentPath == "")
+     {
+        throw std::runtime_error("Cannot set the instrument name from the Nexus file!");
+     }
+
+     m_instrumentName = m_mlzloader.getStringFromNexusPath(firstEntry, m_instrumentPath + "/name");
+
+     if (std::find(m_supportedInstruments.begin(), m_supportedInstruments.end(),
+             m_instrumentName) == m_supportedInstruments.end())
+     {
+          std::string message = "The instrument " + m_instrumentName + " is not valid for this loader!";
+          throw std::runtime_error(message);
+     }
+
+     g_log.debug() << "Instrument name set to: " + m_instrumentName << std::endl;
+
+   }
+
+
+  /**
+   * Creates the workspace and initialises member variables with
+   * the corresponding values
+   *
+   * @param entry :: The Nexus entry
+   *
+   */
+  void LoadMLZ::initWorkSpace(NeXus::NXEntry& entry) //, const std::vector<std::vector<int> >&monitors)
+  {
+     // read in the data
+     NXData dataGroup = entry.openNXData("data");
+     NXInt data = dataGroup.openIntData();
+
+     m_numberOfTubes = static_cast<size_t>(data.dim0());
+     m_numberOfPixelsPerTube = static_cast<size_t>(data.dim1());
+     m_numberOfChannels = static_cast<size_t>(data.dim2());
+     m_numberOfHistograms = m_numberOfTubes * m_numberOfPixelsPerTube;
+
+     g_log.debug() << "NumberOfTubes: " << m_numberOfTubes << std::endl;
+     g_log.debug() << "NumberOfPixelsPerTube: " << m_numberOfPixelsPerTube << std::endl;
+     g_log.debug() << "NumberOfChannels: " << m_numberOfChannels << std::endl;
+
+      // Now create the output workspace
+     m_localWorkspace = WorkspaceFactory::Instance().create("Workspace2D",
+              m_numberOfHistograms, m_numberOfChannels + 1, m_numberOfChannels);
+     m_localWorkspace->getAxis(0)->unit() = UnitFactory::Instance().create("TOF");
+     m_localWorkspace->setYUnitLabel("Counts");
+  }
+
+
+  /**
+   * Function to do specific instrument stuff
+   *
+   */
+  void LoadMLZ::initInstrumentSpecific()
+  {
+     // Read data from IDF: distance source-sample and distance sample-detectors
+     m_l1 = m_mlzloader.getL1(m_localWorkspace);
+     m_l2 = m_mlzloader.getL2(m_localWorkspace);
+
+     g_log.debug() << "L1: " << m_l1 << ", L2: " << m_l2 << std::endl;
+  }
+
+
+  /**
+   * Load the time details from the nexus file.
+   * @param entry :: The Nexus entry
+   */
+  void LoadMLZ::loadTimeDetails(NeXus::NXEntry& entry)
+  {
+
+     m_wavelength = entry.getFloat("wavelength");
+
+     // Monitor can be monitor or Monitor
+     std::string monitorName;
+     if (entry.containsGroup("monitor"))
+        monitorName = "monitor";
+     else if (entry.containsGroup("Monitor"))
+        monitorName = "Monitor";
+     else
+        {
+           std::string message("Cannot find monitor/Monitor in the Nexus file!");
+           g_log.error(message);
+           throw std::runtime_error(message);
+        }
+
+     m_monitorCounts = entry.getInt(monitorName + "/integral");
+
+     m_monitorElasticPeakPosition = entry.getInt(monitorName + "/elastic_peak");
+
+     NXFloat time_of_flight_data = entry.openNXFloat(monitorName + "/time_of_flight");
+     time_of_flight_data.load();
+
+     // The entry "monitor/time_of_flight", has 3 fields:
+     // channel width [microseconds], number of channels, Time of flight delay
+     m_channelWidth = time_of_flight_data[0]*50.e-3;
+     m_timeOfFlightDelay = time_of_flight_data[2]*50.e-3;
+
+     g_log.debug("Nexus Data:");
+     g_log.debug() << " MonitorCounts: " << m_monitorCounts << std::endl;
+     g_log.debug() << " ChannelWidth (microseconds): " << m_channelWidth << std::endl;
+     g_log.debug() << " Wavelength (angstroems): " << m_wavelength << std::endl;
+     g_log.debug() << " ElasticPeakPosition: " << m_monitorElasticPeakPosition << std::endl;
+     g_log.debug() << " TimeOfFlightDelay (microseconds): " <<  m_timeOfFlightDelay<< std::endl;
+
+     m_chopper_speed = entry.getFloat("instrument/chopper/rotation_speed");
+
+     m_chopper_ratio = entry.getInt("instrument/chopper/ratio");
+
+     g_log.debug() << " ChopperSpeed: " << m_chopper_speed << std::endl;
+     g_log.debug() << " ChopperRatio: " <<  m_chopper_ratio << std::endl;
+
+   }
+
+
+  /**
+  * Load information about the run.
+  * People from ISIS have this...
+  * TODO: They also have a lot of info in XML format!
+  *
+  * @param entry :: The Nexus entry
+  */
+   void LoadMLZ::loadRunDetails(NXEntry & entry)
+   {
+
+     API::Run & runDetails = m_localWorkspace->mutableRun();
+
+     std::string runNum = entry.getString("entry_identifier");//run_number");
+     std::string run_num = boost::lexical_cast<std::string>(runNum);
+     runDetails.addProperty("run_number", run_num);
+
+     std::string start_time = entry.getString("start_time");
+     runDetails.addProperty("run_start", start_time);
+
+     std::string end_time = entry.getString("end_time");
+     runDetails.addProperty("run_end", end_time);
+
+     std::string wavelength = boost::lexical_cast<std::string>(m_wavelength);
+     runDetails.addProperty("wavelength", wavelength);
+
+     double ei = m_mlzloader.calculateEnergy(m_wavelength);
+     runDetails.addProperty<double>("Ei", ei, true); //overwrite
+
+     std::string duration = boost::lexical_cast<std::string>(
+                                   entry.getInt("duration"));
+     runDetails.addProperty("duration", duration);
+
+     std::string mode = entry.getString("mode");
+     runDetails.addProperty("mode", mode);
+
+     std::string title = entry.getString("title");
+     m_localWorkspace->setTitle(title);
+
+
+     // Check if temperature is defined
+     NXClass sample = entry.openNXGroup("sample");
+     if ( sample.containsDataSet("temperature") )
+     {
+     std::string temperature = boost::lexical_cast<std::string>(
+     entry.getFloat("sample/temperature"));
+     runDetails.addProperty("temperature", temperature);
+     }
+
+     std::string monitorCounts = boost::lexical_cast<std::string>(m_monitorCounts);
+     runDetails.addProperty("monitor_counts", monitorCounts);
+
+     std::string chopper_speed = boost::lexical_cast<std::string>(m_chopper_speed);
+     runDetails.addProperty("chopper_speed", chopper_speed);
+
+     std::string chopper_ratio = boost::lexical_cast<std::string>(m_chopper_ratio);
+     runDetails.addProperty("chopper_ratio", chopper_ratio);
+
+     std::string channel_width = boost::lexical_cast<std::string>(m_channelWidth);
+     runDetails.addProperty("channel_width", channel_width);
+
+     //Calculate number of full time channels - use to crop workspace - S. Busch's method
+     double full_channels = floor(30.*m_chopper_ratio/(m_chopper_speed)*1.e6/m_channelWidth);//channelWidth in microsec.
+     runDetails.addProperty("full_channels", full_channels);
+
+     //Proposal title
+     std::string proposal_title = entry.getString("proposal");
+     runDetails.addProperty("proposal_title", proposal_title);
+
+     //proposal number
+     std::string proposal_number = entry.getString("proposal_number");
+     runDetails.addProperty("proposal_number", proposal_number);
+
+     //users
+     std::string user_name = entry.getString("user2/name");
+     runDetails.addProperty("experiment_team", user_name);
+
+     runDetails.addProperty("EPP", m_monitorElasticPeakPosition);
+
+  }
+
+
+  /**
+   * Load data about the Experiment.
+   *
+   * TODO: This is very incomplete.
+   *
+   * @param entry :: The Nexus entry
+   */
+  void LoadMLZ::loadExperimentDetails(NXEntry & entry)
+  {
+     // TODO: Do the rest
+     // Pick out the geometry information
+
+     std::string description = boost::lexical_cast<std::string>(
+        entry.getFloat("sample/description"));
+
+     m_localWorkspace->mutableSample().setName(description);
+
+  }
+
+  /**
+   * Loads all the spectra into the workspace, including that from the monitor
+   *
+   * @param entry :: The Nexus entry
+   */
+  void LoadMLZ::loadDataIntoTheWorkSpace(NeXus::NXEntry& entry)
+  {
+     // read in the data
+     NXData dataGroup = entry.openNXData("data");
+     NXInt data = dataGroup.openIntData();
+     data.load();
+
+     std::vector<double> detectorTofBins(m_numberOfChannels + 1);
+     for (size_t i = 0; i < m_numberOfChannels + 1; ++i)
+        {
+           detectorTofBins[i] = m_channelWidth
+                   * static_cast<double>(static_cast<int>(i))+ m_channelWidth / 2;
+        }
+
+     // Assign calculated bins to first X axis
+     m_localWorkspace->dataX(0).assign(detectorTofBins.begin(), detectorTofBins.end());
+
+     Progress progress(this, 0, 1, m_numberOfTubes * m_numberOfPixelsPerTube);
+     size_t spec = 0;
+     for (size_t i = 0; i < m_numberOfTubes; ++i)
+     {
+        for (size_t j = 0; j < m_numberOfPixelsPerTube; ++j)
+        {
+           if (spec > 0)
+           {
+              // just copy the time binning axis to every spectra
+              m_localWorkspace->dataX(spec) = m_localWorkspace->readX(0);
+           }
+           // Assign Y
+           int* data_p = &data(static_cast<int>(i), static_cast<int>(j), 0);
+
+
+           m_localWorkspace->dataY(spec).assign(data_p, data_p + m_numberOfChannels);
+           // Assign Error
+           MantidVec& E = m_localWorkspace->dataE(spec);
+           std::transform(data_p, data_p + m_numberOfChannels, E.begin(),LoadMLZ::calculateError);
+
+           ++spec;
+           progress.report();
+        }
+     }
+  }
+
+
+  /**
+   * Run the Child Algorithm LoadInstrument.
+   */
+  void LoadMLZ::runLoadInstrument()
+  {
+     IAlgorithm_sptr loadInst = createChildAlgorithm("LoadInstrument");
+
+     // Now execute the Child Algorithm. Catch and log any error, but don't stop.
+     try
+     {
+        loadInst->setPropertyValue("InstrumentName", m_instrumentName);
+        g_log.debug() << "InstrumentName" << m_instrumentName << std::endl;
+        loadInst->setProperty<MatrixWorkspace_sptr>("Workspace", m_localWorkspace);
+        loadInst->execute();
+     }
+     catch (...)
+     {
+        g_log.information("Cannot load the instrument definition.");
+      }
+   }
+
+
+} // namespace DataHandling
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadMcStas.cpp b/Code/Mantid/Framework/DataHandling/src/LoadMcStas.cpp
index 26c18005d8804a3aaa9ca2e9827f32ed5f407d01..0e209dc5a7948072c282e9d24ef14cdda075e4d6 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadMcStas.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadMcStas.cpp
@@ -1,21 +1,21 @@
-#include "MantidDataHandling/LoadMcStas.h"
+#include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FileProperty.h"
+#include "MantidAPI/IEventWorkspace.h"
+#include "MantidAPI/InstrumentDataService.h"
+#include "MantidAPI/NumericAxis.h"
+#include "MantidAPI/RegisterFileLoader.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidAPI/WorkspaceGroup.h"
-#include "MantidAPI/IEventWorkspace.h"
 #include "MantidKernel/Unit.h"
-#include <nexus/NeXusFile.hpp>
-#include "MantidAPI/AlgorithmManager.h"
+#include "MantidKernel/UnitFactory.h"
+#include "MantidDataHandling/LoadEventNexus.h"
+#include "MantidDataHandling/LoadMcStas.h"
 #include "MantidGeometry/Instrument.h"
 #include "MantidGeometry/Instrument/InstrumentDefinitionParser.h"
-#include "MantidAPI/InstrumentDataService.h"
-#include "MantidDataHandling/LoadEventNexus.h"
-#include "MantidKernel/UnitFactory.h"
-#include "MantidAPI/RegisterFileLoader.h"
 
-#include "MantidAPI/NumericAxis.h"
-#include <nexus/NeXusException.hpp>
 #include <boost/algorithm/string.hpp>
+#include <nexus/NeXusException.hpp>
+#include <nexus/NeXusFile.hpp>
 
 namespace Mantid {
 namespace DataHandling {
@@ -187,9 +187,8 @@ void LoadMcStas::readEventData(
 
     progInitial.report("Loading instrument");
 
-    Geometry::InstrumentDefinitionParser parser;
     std::string instrumentName = "McStas";
-    parser.initialize(filename, instrumentName, instrumentXML);
+    Geometry::InstrumentDefinitionParser parser(filename, instrumentName, instrumentXML);
     std::string instrumentNameMangled = parser.getMangledName();
 
     // Check whether the instrument is already in the InstrumentDataService
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadMuonNexus1.cpp b/Code/Mantid/Framework/DataHandling/src/LoadMuonNexus1.cpp
index 4f8020811e1623acbcc7f1fa237e088ce06c05f4..2772afa5cb594ec1dbea428700789d9773b09236 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadMuonNexus1.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadMuonNexus1.cpp
@@ -20,12 +20,15 @@
 #include "MantidKernel/UnitLabelTypes.h"
 #include "MantidNexus/MuonNexusReader.h"
 #include "MantidNexus/NexusClasses.h"
+#include <nexus/NeXusFile.hpp>
+#include <nexus/NeXusException.hpp>
 #include "MantidAPI/SpectrumDetectorMapping.h"
 
 #include <Poco/Path.h>
 #include <limits>
 #include <cmath>
 #include <boost/shared_ptr.hpp>
+#include <boost/scoped_array.hpp>
 
 namespace Mantid {
 namespace DataHandling {
@@ -235,6 +238,7 @@ void LoadMuonNexus1::exec() {
       localWorkspace->setComment(notes);
     }
     addPeriodLog(localWorkspace,period);
+    addGoodFrames(localWorkspace,period,nxload.t_nper);
 
     size_t counter = 0;
     for (int64_t i = m_spec_min; i < m_spec_max; ++i) {
@@ -648,14 +652,6 @@ LoadMuonNexus1::loadRunDetails(DataObjects::Workspace2D_sptr localWorkspace) {
     g_log.warning("run/duration is not available, dur log not added.");
   }
 
-  // Get number of good frames
-  NXEntry runInstrumentBeam = root.openEntry("run/instrument/beam");
-  NXInfo infoGoodTotalFrames = runInstrumentBeam.getDataSetInfo("frames_good");
-  if (infoGoodTotalFrames.stat != NX_ERROR) {
-    int dum = root.getInt("run/instrument/beam/frames_good");
-    runDetails.addProperty("goodfrm", dum);
-  }
-
   // Get sample parameters
   NXEntry runSample = root.openEntry("run/sample");
 
@@ -669,6 +665,9 @@ LoadMuonNexus1::loadRunDetails(DataObjects::Workspace2D_sptr localWorkspace) {
     runDetails.addProperty("sample_magn_field",
                            static_cast<double>(magn_field));
   }
+
+
+
 }
 
 /// Run the LoadLog Child Algorithm
@@ -739,6 +738,79 @@ void LoadMuonNexus1::addPeriodLog(DataObjects::Workspace2D_sptr localWorkspace,
   }
 }
 
+void LoadMuonNexus1::addGoodFrames(DataObjects::Workspace2D_sptr localWorkspace,
+                                   int64_t period, int nperiods) {
+
+  // Get handle to nexus file
+  ::NeXus::File handle(m_filename, NXACC_READ);
+
+  // For single-period datasets, read /run/instrument/beam/frames_good
+  if ( nperiods == 1 ) {
+
+    try {
+
+      handle.openPath("run/instrument/beam");
+      handle.openData("frames_good");
+
+      // read frames_period_daq
+      boost::scoped_array<int> dataVals(new int[1]);
+      handle.getData(dataVals.get());
+
+      auto &run = localWorkspace->mutableRun();
+      run.addProperty("goodfrm", dataVals[0]);
+
+    } catch (::NeXus::Exception &) {
+      g_log.warning("Could not read /run/instrument/beam/frames_good");
+    }
+
+  } else {
+    // For multi-period datasets, read entries in
+    // /run/instrument/beam/frames_period_daq
+    try {
+
+      handle.openPath("run/instrument/beam/");
+      handle.openData("frames_period_daq");
+
+      ::NeXus::Info info = handle.getInfo();
+      // Check that frames_period_daq contains values for
+      // every period
+      if (period >= info.dims[0]) {
+        std::ostringstream error;
+        error << "goodfrm not found for period " << period;
+        throw std::runtime_error(error.str());
+      }
+      if (nperiods != info.dims[0]) {
+        std::ostringstream error;
+        error << "Inconsistent number of period entries found (";
+        error << info.dims[0];
+        error << "!=" << nperiods << ")";
+        throw std::runtime_error(error.str());
+      }
+
+      // read frames_period_daq
+      boost::scoped_array<int> dataVals(new int[info.dims[0]]);
+      handle.getData(dataVals.get());
+
+      auto &run = localWorkspace->mutableRun();
+      if (period == 0) {
+        // If this is the first period
+        // localWorkspace will not contain goodfrm
+        run.addProperty("goodfrm", dataVals[0]);
+
+      } else {
+        // If period > 0, we need to remove
+        // previous goodfrm log value
+        run.removeLogData("goodfrm");
+        run.addProperty("goodfrm", dataVals[period]);
+      }
+    } catch (::NeXus::Exception &) {
+      g_log.warning("Could not read /run/instrument/beam/frames_period_daq");
+    }
+  } // else
+
+  handle.close();
+}
+
 /**
  * Return the confidence with with this algorithm can load the file
  * @param descriptor A descriptor for the file
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadNexusLogs.cpp b/Code/Mantid/Framework/DataHandling/src/LoadNexusLogs.cpp
index a2c2054368e659b6331ef4d876899e07f280c1eb..d20d6326ae8ede1f69cb78f8beb1380bf8345087 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadNexusLogs.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadNexusLogs.cpp
@@ -119,6 +119,9 @@ void LoadNexusLogs::exec() {
         group_class == "IXselog" || group_name == "framelog") {
       loadLogs(file, group_name, group_class, workspace);
     }
+    if(group_class == "IXperiods") {
+        loadNPeriods(file, workspace);
+    }
   }
 
   // Freddie Akeroyd 12/10/2011
@@ -267,6 +270,28 @@ void LoadNexusLogs::loadVetoPulses(
   file.closeGroup();
 }
 
+void LoadNexusLogs::loadNPeriods(
+    ::NeXus::File &file,
+    boost::shared_ptr<API::MatrixWorkspace> workspace) const {
+  int value = 1; // Default to 1-period unless
+  try {
+    file.openGroup("periods", "IXperiods");
+    file.openData("number");
+    file.getData(&value);
+    file.closeData();
+    file.closeGroup();
+  } catch (::NeXus::Exception &) {
+    // Likely missing IXperiods.
+      return;
+  }
+
+  API::Run& run = workspace->mutableRun();
+  const std::string nPeriodsLabel = "nperiods";
+  if(!run.hasProperty(nPeriodsLabel)){
+      run.addProperty(new PropertyWithValue<int>(nPeriodsLabel, value));
+  }
+}
+
 /**
  * Load log entries from the given group
  * @param file :: A reference to the NeXus file handle opened such that the
@@ -290,12 +315,17 @@ void LoadNexusLogs::loadLogs(
     } else if (log_class == "IXseblock") {
       loadSELog(file, itr->first, workspace);
     }
+    else if(log_class == "NXcollection"){
+        int jj = 0;
+        ++jj;
+    }
   }
   loadVetoPulses(file, workspace);
 
   file.closeGroup();
 }
 
+
 /**
  * Load an NX log entry a group type that has value and time entries.
  * @param file :: A reference to the NeXus file handle opened at the parent
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadNexusMonitors.cpp b/Code/Mantid/Framework/DataHandling/src/LoadNexusMonitors.cpp
index fe371b2416c965c6047e17266275b333b746c8c1..1bafd699e134253d8826183bdb758d73c1fc4871 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadNexusMonitors.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadNexusMonitors.cpp
@@ -31,6 +31,39 @@ class MonitorNameSorter {
 
 public:
 };
+
+void loadSampleDataISIScompatibilityInfo(
+  ::NeXus::File &file, Mantid::API::MatrixWorkspace_sptr  const WS) {
+  try {
+    file.openGroup("isis_vms_compat", "IXvms");
+  } catch (::NeXus::Exception &) {
+    // No problem, it just means that this entry does not exist
+    return;
+  }
+
+  // read the data
+  try {
+    std::vector<int32_t> spb;
+    std::vector<float> rspb;
+    file.readData("SPB", spb);
+    file.readData("RSPB", rspb);
+
+      
+    WS->mutableSample().setGeometryFlag(
+        spb[2]); // the flag is in the third value
+    WS->mutableSample().setThickness(rspb[3]);
+    WS->mutableSample().setHeight(rspb[4]);
+    WS->mutableSample().setWidth(rspb[5]);
+  } catch (::NeXus::Exception &ex) {
+    // it means that the data was not as expected, report the problem
+    std::stringstream s;
+    s << "Wrong definition found in isis_vms_compat :> " << ex.what();
+    file.closeGroup();
+    throw std::runtime_error(s.str());
+  }
+
+  file.closeGroup();
+}
 }
 
 LoadNexusMonitors::LoadNexusMonitors() : Algorithm(), nMonitors(0) {}
@@ -369,7 +402,7 @@ void LoadNexusMonitors::exec() {
   // @todo: Find out if there is a better (i.e. more generic) way to do this
   try {
     g_log.debug() << "Load Sample data isis" << std::endl;
-    LoadEventNexus::loadSampleDataISIScompatibility(file, this->WS);
+    loadSampleDataISIScompatibilityInfo(file, this->WS);
   } catch (::NeXus::Exception &) {
   }
 
@@ -419,7 +452,7 @@ void LoadNexusMonitors::exec() {
   // Load the meta data, but don't stop on errors
   g_log.debug() << "Loading metadata" << std::endl;
   try {
-    LoadEventNexus::loadEntryMetadata(this->filename, WS, m_top_entry_name);
+    LoadEventNexus::loadEntryMetadata<API::MatrixWorkspace_sptr>(this->filename, WS, m_top_entry_name);
   } catch (std::exception &e) {
     g_log.warning() << "Error while loading meta data: " << e.what()
                     << std::endl;
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadNexusProcessed.cpp b/Code/Mantid/Framework/DataHandling/src/LoadNexusProcessed.cpp
index 81c7f996dfd4a19c32966769df2313e15c770859..2d1c89864c2909de20e63524dc56e7a90163bdc7 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadNexusProcessed.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadNexusProcessed.cpp
@@ -15,8 +15,8 @@
 #include "MantidDataObjects/PeaksWorkspace.h"
 #include "MantidDataObjects/PeakNoShapeFactory.h"
 #include "MantidDataObjects/PeakShapeSphericalFactory.h"
+#include "MantidDataObjects/PeakShapeEllipsoidFactory.h"
 #include "MantidKernel/ArrayProperty.h"
-#include "MantidKernel/ConfigService.h"
 #include "MantidKernel/DateAndTime.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidKernel/BoundedValidator.h"
@@ -28,14 +28,8 @@
 #include <boost/regex.hpp>
 #include <boost/lexical_cast.hpp>
 #include <boost/shared_array.hpp>
-#include <cmath>
-#include <Poco/Path.h>
+
 #include <Poco/StringTokenizer.h>
-#include "MantidDataObjects/PeaksWorkspace.h"
-#include "MantidKernel/MultiThreaded.h"
-#include "MantidDataObjects/PeakNoShapeFactory.h"
-#include "MantidDataObjects/PeakShapeSphericalFactory.h"
-#include "MantidDataObjects/PeakShapeEllipsoidFactory.h"
 
 #include <nexus/NeXusException.hpp>
 
@@ -1033,7 +1027,7 @@ API::Workspace_sptr LoadNexusProcessed::loadPeaksEntry(NXEntry &entry) {
   m_cppFile->openPath(entry.path()); // This is
   try {
     // This loads logs, sample, and instrument.
-    peakWS->loadExperimentInfoNexus(m_cppFile, parameterStr);
+    peakWS->loadExperimentInfoNexus(getPropertyValue("Filename"), m_cppFile, parameterStr);
   } catch (std::exception &e) {
     g_log.information("Error loading Instrument section of nxs file");
     g_log.information(e.what());
@@ -1557,7 +1551,7 @@ API::Workspace_sptr LoadNexusProcessed::loadEntry(NXRoot &root,
   m_cppFile->openPath(mtd_entry.path());
   try {
     // This loads logs, sample, and instrument.
-    local_workspace->loadExperimentInfoNexus(
+    local_workspace->loadExperimentInfoNexus(getPropertyValue("Filename"), 
         m_cppFile, parameterStr); // REQUIRED PER PERIOD
   } catch (std::exception &e) {
     g_log.information("Error loading Instrument section of nxs file");
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadParameterFile.cpp b/Code/Mantid/Framework/DataHandling/src/LoadParameterFile.cpp
index 606420fb5283964a16a45f477c57530ad45e1289..a67fe8f8bb2929932fa22eb18d8bdb58f705cb17 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadParameterFile.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadParameterFile.cpp
@@ -2,14 +2,10 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidDataHandling/LoadParameterFile.h"
-#include "MantidDataHandling/LoadInstrument.h"
 #include "MantidGeometry/Instrument.h"
-#include "MantidAPI/InstrumentDataService.h"
-#include "MantidGeometry/Instrument/Detector.h"
 #include "MantidGeometry/Instrument/Component.h"
 #include "MantidAPI/Progress.h"
 #include "MantidAPI/FileProperty.h"
-#include "MantidKernel/ArrayProperty.h"
 
 #include <Poco/DOM/DOMParser.h>
 #include <Poco/DOM/Document.h>
@@ -19,7 +15,6 @@
 #include <Poco/DOM/NodeFilter.h>
 #include <Poco/DOM/AutoPtr.h>
 #include <Poco/File.h>
-#include <sstream>
 #include "MantidGeometry/Instrument/InstrumentDefinitionParser.h"
 
 using Poco::XML::DOMParser;
@@ -118,9 +113,11 @@ void LoadParameterFile::exec() {
       // First see if the file exists
       Poco::File ipfFile(filename);
       if(!ipfFile.exists()) {
-        std::string directoryName =
-            Kernel::ConfigService::Instance().getInstrumentDirectory();
-        filename = directoryName + "/" + filename;
+        Poco::Path filePath(filename);
+        filename = Poco::Path(Kernel::ConfigService::Instance().getInstrumentDirectory())
+          .makeDirectory().
+          setFileName(filePath.getFileName()).
+          toString();
       }
       g_log.information() << "Parsing from XML file: " << filename
                           << std::endl;
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadRaw3.cpp b/Code/Mantid/Framework/DataHandling/src/LoadRaw3.cpp
index 497552418704deff22aa657bd16e2c918d8cb115..dccfda2ad586d214aa616b54213f7fa9122602cc 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadRaw3.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadRaw3.cpp
@@ -4,7 +4,7 @@
 #include "MantidDataHandling/LoadRaw3.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidAPI/MemoryManager.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 #include "MantidAPI/RegisterFileLoader.h"
 #include "MantidAPI/SpectraAxis.h"
 #include "MantidKernel/UnitFactory.h"
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadRawBin0.cpp b/Code/Mantid/Framework/DataHandling/src/LoadRawBin0.cpp
index 19e26152132a35f0cb07d4071a4d8361dd0710d5..ba6cd802ac775147fc7ef61c0f04a9e3274f0145 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadRawBin0.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadRawBin0.cpp
@@ -4,7 +4,7 @@
 #include "MantidDataHandling/LoadRawBin0.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidAPI/MemoryManager.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/ArrayProperty.h"
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadRawHelper.cpp b/Code/Mantid/Framework/DataHandling/src/LoadRawHelper.cpp
index cd4c235958d145013d2f5b550cb8832fe327a62c..92748802a7d21be07038668a54d092d12d43f8ad 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadRawHelper.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadRawHelper.cpp
@@ -5,7 +5,6 @@
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidAPI/MemoryManager.h"
 #include "MantidAPI/SpectrumDetectorMapping.h"
-#include "MantidAPI/WorkspaceGroup.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/ArrayProperty.h"
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadSpiceXML2DDet.cpp b/Code/Mantid/Framework/DataHandling/src/LoadSpiceXML2DDet.cpp
index 40c1e500b241773b14d0b4c1eacfa600dc5ea63e..ef84789024e0d3648f84b4e18013427d4e56dd4a 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadSpiceXML2DDet.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadSpiceXML2DDet.cpp
@@ -3,6 +3,7 @@
 
 #include "MantidDataHandling/LoadSpiceXML2DDet.h"
 #include "MantidAPI/FileProperty.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceProperty.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidKernel/ArrayProperty.h"
@@ -265,15 +266,32 @@ void LoadSpiceXML2DDet::exec() {
   if (spicetablewsname.size() > 0) {
     setupSampleLogFromSpiceTable(outws, spicetablews, ptnumber);
   }
+  else
+  {
+    // Set up 2theta from _2theta
+    if (outws->run().hasProperty("_2theta"))
+    {
+      Kernel::DateAndTime anytime(1000);
+      double logvalue = atof(outws->run().getProperty("_2theta")->value().c_str());
+      g_log.information() << "Set 2theta from _2theta with value " << logvalue
+                          << "\n";
+      TimeSeriesProperty<double> *newlogproperty =
+          new TimeSeriesProperty<double>("2theta");
+      newlogproperty->addValue(anytime, logvalue);
+      outws->mutableRun().addProperty(newlogproperty);
+    }
+    else
+    {
+      g_log.warning("No 2theta is set up for loading instrument.");
+    }
+  }
 
   if (loadinstrument) {
     loadInstrument(outws, idffilename);
-    if (spicetablewsname.size() > 0) {
-      double wavelength;
-      bool has_wavelength = getHB3AWavelength(outws, wavelength);
-      if (has_wavelength) {
-        setXtoLabQ(outws, wavelength);
-      }
+    double wavelength;
+    bool has_wavelength = getHB3AWavelength(outws, wavelength);
+    if (has_wavelength) {
+      setXtoLabQ(outws, wavelength);
     }
   }
 
@@ -562,15 +580,27 @@ void LoadSpiceXML2DDet::setupSampleLogFromSpiceTable(
   return;
 }
 
+//----------------------------------------------------------------------------------------------
+/** Get wavelength if the instrument is HB3A
+ * @brief LoadSpiceXML2DDet::getHB3AWavelength
+ * @param dataws
+ * @param wavelength
+ * @return
+ */
 bool LoadSpiceXML2DDet::getHB3AWavelength(MatrixWorkspace_sptr dataws,
                                           double &wavelength) {
   bool haswavelength(false);
   wavelength = -1;
 
+  // FIXME - Now it only search for _m1.  In future,
+  //         it is better to searc both m1 and _m1
+
   if (dataws->run().hasProperty("_m1")) {
+    g_log.notice("[DB] Data workspace has property _m1!");
     Kernel::TimeSeriesProperty<double> *ts =
         dynamic_cast<Kernel::TimeSeriesProperty<double> *>(
             dataws->run().getProperty("_m1"));
+
     if (ts && ts->size() > 0) {
       double m1pos = ts->valuesAsVector()[0];
       if (fabs(m1pos - (-25.870000)) < 0.2) {
@@ -613,20 +643,9 @@ bool LoadSpiceXML2DDet::getHB3AWavelength(MatrixWorkspace_sptr dataws,
 
 void LoadSpiceXML2DDet::setXtoLabQ(API::MatrixWorkspace_sptr dataws,
                                    const double &wavelength) {
-  // Geometry information
-  // Kernel::V3D sourcepos = dataws->getInstrument()->getSource()->getPos();
-  // Kernel::V3D samplepos = dataws->getInstrument()->getSample()->getPos();
-  // Kernel::V3D sample_source_vector = sourcepos - samplepos;
 
   size_t numspec = dataws->getNumberHistograms();
   for (size_t iws = 0; iws < numspec; ++iws) {
-    /*
-    Kernel::V3D detpos = dataws->getDetector(iws)->getPos();
-    Kernel::V3D detpos_sample_vector = detpos - samplepos;
-    double scattering_rad = detpos_sample_vector.angle(sample_source_vector);
-    */
-
-    // double ki = 4*sin(scattering_rad*0.5)*M_PI/wavelength;
     double ki = 2. * M_PI / wavelength;
     dataws->dataX(iws)[0] = ki;
     dataws->dataX(iws)[1] = ki + 0.00001;
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadTOFRawNexus.cpp b/Code/Mantid/Framework/DataHandling/src/LoadTOFRawNexus.cpp
index 6fe1c010d7d43d3d315533ade8e17114dff6f328..684f6680c3aa3477dc90b5f5fddbde84adcdfdc7 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadTOFRawNexus.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadTOFRawNexus.cpp
@@ -518,12 +518,14 @@ void LoadTOFRawNexus::exec() {
   prog->doReport("Loading DAS logs");
   g_log.debug() << "Loading DAS logs" << std::endl;
 
-  LoadEventNexus::runLoadNexusLogs(filename, WS, *this, false);
+  int nPeriods = 1; // Unused
+  std::unique_ptr<const TimeSeriesProperty<int> > periodLog(new const TimeSeriesProperty<int>("period_log")); // Unused
+  LoadEventNexus::runLoadNexusLogs<MatrixWorkspace_sptr>(filename, WS, *this, false, nPeriods, periodLog);
 
   // Load the instrument
   prog->report("Loading instrument");
   g_log.debug() << "Loading instrument" << std::endl;
-  LoadEventNexus::runLoadInstrument(filename, WS, entry_name, this);
+  LoadEventNexus::runLoadInstrument<MatrixWorkspace_sptr>(filename, WS, entry_name, this);
 
   // Load the meta data, but don't stop on errors
   prog->report("Loading metadata");
diff --git a/Code/Mantid/Framework/DataHandling/src/PDLoadCharacterizations.cpp b/Code/Mantid/Framework/DataHandling/src/PDLoadCharacterizations.cpp
index 34b98ec08a15d88aba364ceb50b426f5ee4d9796..db8c43acf122c1874cefa04a3d6e8fcd06f8a320 100644
--- a/Code/Mantid/Framework/DataHandling/src/PDLoadCharacterizations.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/PDLoadCharacterizations.cpp
@@ -1,5 +1,6 @@
 #include "MantidDataHandling/PDLoadCharacterizations.h"
 #include "MantidAPI/FileProperty.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidKernel/ArrayProperty.h"
diff --git a/Code/Mantid/Framework/DataHandling/src/SaveDiffCal.cpp b/Code/Mantid/Framework/DataHandling/src/SaveDiffCal.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..dc05803a8c0be8d71f6b5a6cda94d362174625f9
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/src/SaveDiffCal.cpp
@@ -0,0 +1,323 @@
+#include "MantidDataHandling/SaveDiffCal.h"
+#include "MantidAPI/FileProperty.h"
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidDataObjects/GroupingWorkspace.h"
+#include "MantidDataObjects/MaskWorkspace.h"
+
+#include <H5Cpp.h>
+#include <Poco/File.h>
+#include <Poco/Path.h>
+
+namespace Mantid {
+namespace DataHandling {
+
+using Mantid::API::FileProperty;
+using Mantid::API::PropertyMode;
+using Mantid::API::WorkspaceProperty;
+using Mantid::API::ITableWorkspace;
+using Mantid::API::ITableWorkspace_const_sptr;
+using Mantid::DataObjects::GroupingWorkspace;
+using Mantid::DataObjects::GroupingWorkspace_const_sptr;
+using Mantid::DataObjects::MaskWorkspace;
+using Mantid::DataObjects::MaskWorkspace_const_sptr;
+using Mantid::Kernel::Direction;
+
+using namespace H5;
+
+// Register the algorithm into the AlgorithmFactory
+DECLARE_ALGORITHM(SaveDiffCal)
+
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+SaveDiffCal::SaveDiffCal() {}
+
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+SaveDiffCal::~SaveDiffCal() {}
+
+//----------------------------------------------------------------------------------------------
+
+/// Algorithms name for identification. @see Algorithm::name
+const std::string SaveDiffCal::name() const { return "SaveDiffCal"; }
+
+/// Algorithm's version for identification. @see Algorithm::version
+int SaveDiffCal::version() const { return 1; }
+
+/// Algorithm's category for identification. @see Algorithm::category
+const std::string SaveDiffCal::category() const {
+  return "DataHandling;Diffraction";
+}
+
+/// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
+const std::string SaveDiffCal::summary() const {
+  return "Saves a calibration file for powder diffraction";
+}
+
+//----------------------------------------------------------------------------------------------
+/** Initialize the algorithm's properties.
+ */
+void SaveDiffCal::init() {
+  declareProperty(new WorkspaceProperty<ITableWorkspace>("CalibrationWorkspace",
+                                                         "", Direction::Input),
+                  "An output workspace.");
+
+  declareProperty(
+      new WorkspaceProperty<GroupingWorkspace>(
+          "GroupingWorkspace", "", Direction::Input, PropertyMode::Optional),
+      "Optional: An GroupingWorkspace workspace giving the grouping info.");
+
+  declareProperty(
+      new WorkspaceProperty<MaskWorkspace>(
+          "MaskWorkspace", "", Direction::Input, PropertyMode::Optional),
+      "Optional: An Workspace workspace giving which detectors are masked.");
+
+  declareProperty(new FileProperty("Filename", "", FileProperty::Save, ".h5"),
+                  "Path to the .h5 file that will be created.");
+}
+
+std::map<std::string, std::string> SaveDiffCal::validateInputs() {
+    std::map<std::string, std::string> result;
+
+    ITableWorkspace_const_sptr calibrationWS = getProperty("CalibrationWorkspace");
+    if (!bool(calibrationWS)) {
+        result["CalibrationWorkspace"] = "Cannot save empty table";
+    } else {
+      size_t numRows = calibrationWS->rowCount();
+      if (numRows == 0) {
+        result["CalibrationWorkspace"] = "Cannot save empty table";
+      } else {
+        GroupingWorkspace_const_sptr groupingWS = getProperty("GroupingWorkspace");
+        if (bool(groupingWS) && numRows < groupingWS->getNumberHistograms()) {
+          result["GroupingWorkspace"] = "Must have same number of spectra as the table has rows";
+        }
+        MaskWorkspace_const_sptr maskWS = getProperty("MaskWorkspace");
+        if (bool(maskWS) && numRows < maskWS->getNumberHistograms()) {
+          result["MaskWorkspace"] = "Must have same number of spectra as the table has rows";
+        }
+      }
+    }
+
+    return result;
+}
+
+
+namespace { // anonymous
+
+DataSpace getDataSpace(const size_t length) {
+  hsize_t dims[] = {length};
+  return DataSpace(1, dims);
+}
+
+template <typename NumT> DataSpace getDataSpace(const std::vector<NumT> &data) {
+  return getDataSpace(data.size());
+}
+
+/**
+ * Sets up the chunking and compression rate.
+ * @param length
+ * @return The configured property list
+ */
+DSetCreatPropList getPropList(const std::size_t length) {
+  DSetCreatPropList propList;
+  hsize_t chunk_dims[1] = {length};
+  propList.setChunk(1, chunk_dims);
+  propList.setDeflate(6);
+  return propList;
+}
+
+void writeStrAttribute(H5::Group &location, const std::string &name,
+                       const std::string &value) {
+  StrType attrType(0, H5T_VARIABLE);
+  DataSpace attrSpace(H5S_SCALAR);
+  auto groupAttr = location.createAttribute(name, attrType, attrSpace);
+  groupAttr.write(attrType, value);
+}
+
+void writeArray(H5::Group &group, const std::string &name,
+                const std::string &value) {
+  StrType dataType(0, value.length() + 1);
+  DataSpace dataSpace = getDataSpace(1);
+  H5::DataSet data = group.createDataSet(name, dataType, dataSpace);
+  data.write(value, dataType);
+}
+
+void writeArray(H5::Group &group, const std::string &name,
+                const std::vector<double> &values) {
+  DataType dataType(PredType::NATIVE_DOUBLE);
+  DataSpace dataSpace = getDataSpace(values);
+
+  DSetCreatPropList propList = getPropList(values.size());
+
+  auto data = group.createDataSet(name, dataType, dataSpace, propList);
+  data.write(&(values[0]), dataType);
+}
+
+void writeArray(H5::Group &group, const std::string &name,
+                const std::vector<int32_t> &values) {
+  DataType dataType(PredType::NATIVE_INT32);
+  DataSpace dataSpace = getDataSpace(values);
+
+  DSetCreatPropList propList = getPropList(values.size());
+
+  auto data = group.createDataSet(name, dataType, dataSpace, propList);
+  data.write(&(values[0]), dataType);
+}
+
+} // anonymous
+
+void SaveDiffCal::writeDoubleFieldFromTable(H5::Group &group,
+                                            const std::string &name) {
+  auto column = m_calibrationWS->getColumn(name);
+  std::vector<double> data;
+  column->numeric_fill(data);
+  data.erase(data.begin()+m_numValues, data.end());
+  writeArray(group, name, std::vector<double>(data));
+}
+
+void SaveDiffCal::writeIntFieldFromTable(H5::Group &group,
+                                         const std::string &name) {
+  auto column = m_calibrationWS->getColumn(name);
+  std::vector<int32_t> data;
+  column->numeric_fill(data);
+  data.erase(data.begin()+m_numValues, data.end());
+  writeArray(group, name, std::vector<int32_t>(data));
+}
+
+// TODO should flip for mask
+void SaveDiffCal::writeIntFieldFromSVWS(
+    H5::Group &group, const std::string &name,
+    DataObjects::SpecialWorkspace2D_const_sptr ws) {
+  auto detidCol = m_calibrationWS->getColumn("detid");
+  std::vector<detid_t> detids;
+  detidCol->numeric_fill(detids);
+  bool isMask = bool(boost::dynamic_pointer_cast<const MaskWorkspace>(ws));
+
+  // output array defaults to all one (one group, use the pixel)
+  const int32_t DEFAULT_VALUE = (isMask ? 0 : 1);
+  std::vector<int32_t> values(m_numValues, DEFAULT_VALUE);
+
+  int32_t value;
+  for (size_t i = 0; i < m_numValues; ++i) {
+    auto spectrum = ws->getSpectrum(i);
+    auto ids = spectrum->getDetectorIDs();
+    auto found = m_detidToIndex.find(*(ids.begin()));
+    if (found != m_detidToIndex.end()) {
+      value = static_cast<int32_t>(ws->getValue(found->first));
+      // in maskworkspace 0=use, 1=dontuse
+      if (isMask) {
+        if (value == 0)
+          value = 1;
+        else
+          value = 0;
+      }
+      values[found->second] = value;
+    }
+  }
+
+  writeArray(group, name, values);
+}
+
+void SaveDiffCal::generateDetidToIndex() {
+  m_detidToIndex.clear();
+
+  auto detidCol = m_calibrationWS->getColumn("detid");
+  std::vector<detid_t> detids;
+  detidCol->numeric_fill(detids);
+
+  const size_t numDets = detids.size();
+  for (size_t i = 0; i < numDets; ++i) {
+    m_detidToIndex[static_cast<detid_t>(detids[i])] = i;
+  }
+}
+
+bool SaveDiffCal::tableHasColumn(const std::string name) const {
+    const std::vector<std::string> names = m_calibrationWS->getColumnNames();
+    for (auto it = names.begin(); it != names.end(); ++it) {
+      if (name == (*it)) return true;
+    }
+
+    return false;
+}
+
+//----------------------------------------------------------------------------------------------
+/** Execute the algorithm.
+ */
+void SaveDiffCal::exec() {
+  m_calibrationWS = getProperty("CalibrationWorkspace");
+  this->generateDetidToIndex();
+  GroupingWorkspace_const_sptr groupingWS = getProperty("GroupingWorkspace");
+  MaskWorkspace_const_sptr maskWS = getProperty("MaskWorkspace");
+  std::string filename = getProperty("Filename");
+
+  m_numValues = m_calibrationWS->rowCount();
+  if (bool(groupingWS) && groupingWS->getNumberHistograms() < m_numValues) {
+    m_numValues = groupingWS->getNumberHistograms();
+  }
+  if (bool(maskWS) && maskWS->getNumberHistograms() < m_numValues) {
+    m_numValues = maskWS->getNumberHistograms();
+  }
+
+  // delete the file if it already exists
+  if (Poco::File(filename).exists()) {
+    Poco::File(filename).remove();
+  }
+
+  H5File file(filename, H5F_ACC_EXCL);
+
+  auto calibrationGroup = file.createGroup("calibration");
+  writeStrAttribute(calibrationGroup, "NX_class", "NXentry");
+
+  this->writeDoubleFieldFromTable(calibrationGroup, "difc");
+  this->writeDoubleFieldFromTable(calibrationGroup, "difa");
+  this->writeDoubleFieldFromTable(calibrationGroup, "tzero");
+
+  this->writeIntFieldFromTable(calibrationGroup, "detid");
+  if (this->tableHasColumn("dasid")) // optional field
+      this->writeIntFieldFromTable(calibrationGroup, "dasid");
+  else
+      g_log.information("Not writing out values for \"dasid\"");
+
+  this->writeIntFieldFromSVWS(calibrationGroup, "group", groupingWS);
+  this->writeIntFieldFromSVWS(calibrationGroup, "use", maskWS);
+
+  if (this->tableHasColumn("offset")) // optional field
+      this->writeDoubleFieldFromTable(calibrationGroup, "offset");
+  else
+      g_log.information("Not writing out values for \"offset\"");
+
+  // get the instrument information
+  std::string instrumentName;
+  std::string instrumentSource;
+  if (bool(groupingWS)) {
+    instrumentName = groupingWS->getInstrument()->getName();
+    instrumentSource = groupingWS->getInstrument()->getFilename();
+  }
+  if (bool(maskWS)) {
+    if (instrumentName.empty()) {
+      instrumentName = maskWS->getInstrument()->getName();
+    }
+    if (instrumentSource.empty()) {
+      instrumentSource = maskWS->getInstrument()->getFilename();
+    }
+  }
+  if (!instrumentSource.empty()) {
+    instrumentSource = Poco::Path(instrumentSource).getFileName();
+  }
+
+  // add the instrument information
+  auto instrumentGroup = calibrationGroup.createGroup("instrument");
+  writeStrAttribute(instrumentGroup, "NX_class", "NXinstrument");
+  if (!instrumentName.empty()) {
+    writeArray(instrumentGroup, "name", instrumentName);
+  }
+  if (!instrumentSource.empty()) {
+    writeArray(instrumentGroup, "instrument_source", instrumentSource);
+  }
+
+  file.close();
+}
+
+} // namespace DataHandling
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/DataHandling/src/SaveIsawDetCal.cpp b/Code/Mantid/Framework/DataHandling/src/SaveIsawDetCal.cpp
index 1312e304a2c68afc6dea06421a58e1bfa4f9cb76..053e007f4b25789ccae82792cba68c8ad93aa0cf 100644
--- a/Code/Mantid/Framework/DataHandling/src/SaveIsawDetCal.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SaveIsawDetCal.cpp
@@ -76,10 +76,47 @@ void SaveIsawDetCal::exec() {
 
   std::vector<std::string> bankNames = getProperty("BankNames");
 
-  Instrument_const_sptr inst = ws->getInstrument();
+  inst = ws->getInstrument();
   if (!inst)
     throw std::runtime_error(
         "No instrument in the Workspace. Cannot save DetCal file.");
+  // We cannot assume the peaks have bank type detector modules, so we have a
+  // string to check this
+  std::string bankPart = "bank";
+  if (inst->getName() .compare("WISH") == 0) bankPart = "WISHpanel";
+
+  std::set<int> uniqueBanks;
+  if (bankNames.empty()) {
+    // Get all children
+    std::vector<IComponent_const_sptr> comps;
+    inst->getChildren(comps, true);
+
+    for (size_t i = 0; i < comps.size(); i++) {
+      std::string bankName = comps[i]->getName();
+      boost::trim(bankName);
+      boost::erase_all(bankName,bankPart);
+      int bank = 0;
+      Strings::convert(bankName, bank);
+      if (bank == 0)continue;
+      // Track unique bank numbers
+      uniqueBanks.insert(bank);
+    }
+  }
+  else {
+    for (size_t i = 0; i < bankNames.size(); i++) {
+      std::string bankName = bankNames[i];
+      boost::trim(bankName);
+      boost::erase_all(bankName,bankPart);
+      int bank = 0;
+      Strings::convert(bankName, bank);
+      if (bank == 0)continue;
+      // Track unique bank numbers
+      uniqueBanks.insert(bank);
+    }
+  }
+  if (!inst)
+    throw std::runtime_error(
+        "No instrument in PeaksWorkspace. Cannot save peaks file.");
 
   double l1;
   V3D beamline;
@@ -96,76 +133,161 @@ void SaveIsawDetCal::exec() {
   out << "#" << std::endl;
   out << "# " << DateAndTime::getCurrentTime().toISO8601String() << std::endl;
 
-  out << "6         L1    T0_SHIFT" << std::endl;
+  out << "6         L1     T0_SHIFT" << std::endl;
   out << "7 " << std::setw(10);
   out << std::setprecision(4) << std::fixed << (l1 * 100);
-  out << std::setw(12) << std::setprecision(3) << std::fixed;
-  // Time offset of 0.00 for now
-  out << std::setw(12) << std::setprecision(4) << T0 << std::endl;
-
-  out << "4 DETNUM  NROWS  NCOLS   WIDTH   HEIGHT   DEPTH   DETD   CenterX   "
-         "CenterY   CenterZ    BaseX    BaseY    BaseZ      UpX      UpY      "
-         "UpZ" << std::endl;
+  out << std::setw(13) << std::setprecision(3) << T0 << std::endl;
 
-  // Get all children
-  std::vector<IComponent_const_sptr> comps;
-  inst->getChildren(comps, true);
+  out << "4 DETNUM  NROWS  NCOLS   WIDTH   HEIGHT   DEPTH   DETD   CenterX "
+         "  CenterY   CenterZ    BaseX    BaseY    BaseZ      UpX      UpY "
+         "     UpZ" << std::endl;
+  // Here would save each detector...
+  std::set<int>::iterator it;
+  for (it = uniqueBanks.begin(); it != uniqueBanks.end(); ++it) {
+    // Build up the bank name
+    int bank = *it;
+    std::ostringstream mess;
+    if (bankPart == "WISHpanel" && bank < 10)
+        mess << bankPart << "0" << bank;
+    else
+      mess << bankPart << bank;
 
-  for (size_t i = 0; i < comps.size(); i++) {
+    std::string bankName = mess.str();
     // Retrieve it
-    RectangularDetector_const_sptr det =
-        boost::dynamic_pointer_cast<const RectangularDetector>(comps[i]);
-    if (!det)
-      continue;
-
-    // determine the name and if it should be written out to the file
-    std::string name = det->getName();
-    if (name.size() < 5)
-      continue;
-    if ((!bankNames.empty()) && (std::find(bankNames.begin(), bankNames.end(),
-                                           name) == bankNames.end()))
-      continue;
-    std::string bank = name.substr(4, name.size() - 4);
-
-    // Center of the detector
-    V3D center = det->getPos();
-    // Distance to center of detector
-    double detd = (center - inst->getSample()->getPos()).norm();
-
-    // Base unit vector (along the horizontal, X axis)
-    V3D base = det->getAtXY(det->xpixels() - 1, 0)->getPos() -
-               det->getAtXY(0, 0)->getPos();
-    base.normalize();
-    // Up unit vector (along the vertical, Y axis)
-    V3D up = det->getAtXY(0, det->ypixels() - 1)->getPos() -
-             det->getAtXY(0, 0)->getPos();
-    up.normalize();
-
-    // Write the line
-    out << "5 " << std::setw(6) << std::right << bank << " " << std::setw(6)
-        << std::right << det->xpixels() << " " << std::setw(6) << std::right
-        << det->ypixels() << " " << std::setw(7) << std::right << std::fixed
-        << std::setprecision(4) << 100.0 * det->xsize() << " " << std::setw(7)
-        << std::right << std::fixed << std::setprecision(4)
-        << 100.0 * det->ysize() << " "
-        << "  0.2000 " << std::setw(6) << std::right << std::fixed
-        << std::setprecision(2) << 100.0 * detd << " " << std::setw(9)
-        << std::right << std::fixed << std::setprecision(4)
-        << 100.0 * center.X() << " " << std::setw(9) << std::right << std::fixed
-        << std::setprecision(4) << 100.0 * center.Y() << " " << std::setw(9)
-        << std::right << std::fixed << std::setprecision(4)
-        << 100.0 * center.Z() << " " << std::setw(8) << std::right << std::fixed
-        << std::setprecision(5) << base.X() << " " << std::setw(8) << std::right
-        << std::fixed << std::setprecision(5) << base.Y() << " " << std::setw(8)
-        << std::right << std::fixed << std::setprecision(5) << base.Z() << " "
-        << std::setw(8) << std::right << std::fixed << std::setprecision(5)
-        << up.X() << " " << std::setw(8) << std::right << std::fixed
-        << std::setprecision(5) << up.Y() << " " << std::setw(8) << std::right
-        << std::fixed << std::setprecision(5) << up.Z() << " " << std::endl;
+    boost::shared_ptr<const IComponent> det =
+        inst->getComponentByName(bankName);
+    if (inst->getName() .compare("CORELLI") == 0) // for Corelli with sixteenpack under bank
+    {
+      std::vector<Geometry::IComponent_const_sptr> children;
+      boost::shared_ptr<const Geometry::ICompAssembly> asmb =
+          boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(inst->getComponentByName(bankName));
+      asmb->getChildren(children, false);
+      det = children[0];
+    }
+    if (det) {
+      // Center of the detector
+      V3D center = det->getPos();
+
+      // Distance to center of detector
+      double detd = (center - inst->getSample()->getPos()).norm();
+      int NCOLS, NROWS;
+      double xsize, ysize;
+      sizeBanks(bankName, NCOLS, NROWS, xsize, ysize);
+      // Base unit vector (along the horizontal, X axis)
+      // Since WISH banks are curved use center and increment 2 for tubedown
+      int midX = NCOLS/2;
+      int midY = NROWS/2;
+      V3D base =
+          findPixelPos(bankName, midX + 2, midY) - findPixelPos(bankName, midX, midY);
+      base.normalize();
+
+      // Up unit vector (along the vertical, Y axis)
+      V3D up = findPixelPos(bankName, midX, midY + 1) - findPixelPos(bankName, midX, midY);
+      up.normalize();
+
+      // Write the line
+      out << "5 " << std::setw(6) << std::right << bank << " "
+          << std::setw(6) << std::right << NROWS << " " << std::setw(6)
+          << std::right << NCOLS << " " << std::setw(7) << std::right
+          << std::fixed << std::setprecision(4) << 100.0 * xsize << " "
+          << std::setw(7) << std::right << std::fixed
+          << std::setprecision(4) << 100.0 * ysize << " "
+          << "  0.2000 " << std::setw(6) << std::right << std::fixed
+          << std::setprecision(2) << 100.0 * detd << " " << std::setw(9)
+          << std::right << std::fixed << std::setprecision(4)
+          << 100.0 * center.X() << " " << std::setw(9) << std::right
+          << std::fixed << std::setprecision(4) << 100.0 * center.Y() << " "
+          << std::setw(9) << std::right << std::fixed
+          << std::setprecision(4) << 100.0 * center.Z() << " "
+          << std::setw(8) << std::right << std::fixed
+          << std::setprecision(5) << base.X() << " " << std::setw(8)
+          << std::right << std::fixed << std::setprecision(5) << base.Y()
+          << " " << std::setw(8) << std::right << std::fixed
+          << std::setprecision(5) << base.Z() << " " << std::setw(8)
+          << std::right << std::fixed << std::setprecision(5) << up.X()
+          << " " << std::setw(8) << std::right << std::fixed
+          << std::setprecision(5) << up.Y() << " " << std::setw(8)
+          << std::right << std::fixed << std::setprecision(5) << up.Z()
+          << " " << std::endl;
+
+    } else
+      g_log.warning() << "Information about detector module " << bankName
+                      << " not found and recognised\n";
   }
 
   out.close();
 }
 
+V3D SaveIsawDetCal::findPixelPos(std::string bankName, int col, int row) {
+  boost::shared_ptr<const IComponent> parent =
+      inst->getComponentByName(bankName);
+  if (parent->type().compare("RectangularDetector") == 0) {
+    boost::shared_ptr<const RectangularDetector> RDet =
+        boost::dynamic_pointer_cast<const RectangularDetector>(parent);
+
+    boost::shared_ptr<Detector> pixel = RDet->getAtXY(col, row);
+    return pixel->getPos();
+  } else {
+    std::vector<Geometry::IComponent_const_sptr> children;
+    boost::shared_ptr<const Geometry::ICompAssembly> asmb =
+        boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(parent);
+    asmb->getChildren(children, false);
+    if(children[0]->getName().compare("sixteenpack") == 0){
+      asmb = boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(children[0]);
+      children.clear();
+      asmb->getChildren(children, false);
+    }
+    int col0 = col - 1;
+    //WISH detectors are in bank in this order in instrument
+    if (inst->getName() == "WISH")
+      col0 = (col % 2 == 0 ? col / 2 + 75 : (col - 1) / 2);
+    boost::shared_ptr<const Geometry::ICompAssembly> asmb2 =
+        boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(
+            children[col0]);
+    std::vector<Geometry::IComponent_const_sptr> grandchildren;
+    asmb2->getChildren(grandchildren, false);
+    Geometry::IComponent_const_sptr first = grandchildren[row-1];
+    return first->getPos();
+  }
+}
+
+void SaveIsawDetCal::sizeBanks(std::string bankName, int &NCOLS, int &NROWS,
+                              double &xsize, double &ysize) {
+  if (bankName.compare("None") == 0)
+    return;
+  boost::shared_ptr<const IComponent> parent =
+      inst->getComponentByName(bankName);
+  if (parent->type().compare("RectangularDetector") == 0) {
+    boost::shared_ptr<const RectangularDetector> RDet =
+        boost::dynamic_pointer_cast<const RectangularDetector>(parent);
+
+    NCOLS = RDet->xpixels();
+    NROWS = RDet->ypixels();
+    xsize = RDet->xsize();
+    ysize = RDet->ysize();
+  } else {
+    std::vector<Geometry::IComponent_const_sptr> children;
+    boost::shared_ptr<const Geometry::ICompAssembly> asmb =
+        boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(parent);
+    asmb->getChildren(children, false);
+    if(children[0]->getName().compare("sixteenpack") == 0){
+      asmb = boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(children[0]);
+      children.clear();
+      asmb->getChildren(children, false);
+    }
+    boost::shared_ptr<const Geometry::ICompAssembly> asmb2 =
+        boost::dynamic_pointer_cast<const Geometry::ICompAssembly>(children[0]);
+    std::vector<Geometry::IComponent_const_sptr> grandchildren;
+    asmb2->getChildren(grandchildren, false);
+    NROWS = static_cast<int>(grandchildren.size());
+    NCOLS = static_cast<int>(children.size());
+    Geometry::IComponent_const_sptr first = children[0];
+    Geometry::IComponent_const_sptr last = children[NCOLS - 1];
+    xsize = first->getDistance(*last);
+    first = grandchildren[0];
+    last = grandchildren[NROWS - 1];
+    ysize = first->getDistance(*last);
+  }
+}
 } // namespace Mantid
 } // namespace DataHandling
diff --git a/Code/Mantid/Framework/DataHandling/src/SaveNexusProcessed.cpp b/Code/Mantid/Framework/DataHandling/src/SaveNexusProcessed.cpp
index c6778b15c89d26ddd5777b780f86d93942d5e3b0..787b7556f1fea5e09cbf3e1e98be177ae3677766 100644
--- a/Code/Mantid/Framework/DataHandling/src/SaveNexusProcessed.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SaveNexusProcessed.cpp
@@ -10,15 +10,12 @@
 #include "MantidDataObjects/PeaksWorkspace.h"
 #include "MantidDataObjects/OffsetsWorkspace.h"
 #include "MantidKernel/ArrayProperty.h"
-#include "MantidKernel/ConfigService.h"
 #include "MantidKernel/BoundedValidator.h"
 #include "MantidNexus/NexusFileIO.h"
 #include <nexus/NeXusFile.hpp>
 #include <boost/regex.hpp>
 #include <boost/shared_ptr.hpp>
-#include <cmath>
 #include <Poco/File.h>
-#include <Poco/Path.h>
 
 using namespace Mantid::API;
 
diff --git a/Code/Mantid/Framework/DataHandling/src/SaveSavuTomoConfig.cpp b/Code/Mantid/Framework/DataHandling/src/SaveSavuTomoConfig.cpp
index a40405806af5b49620077b47c0a9ac42999408af..c9b744888f1b7c029bac1cde36c7cb80ee951212 100644
--- a/Code/Mantid/Framework/DataHandling/src/SaveSavuTomoConfig.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SaveSavuTomoConfig.cpp
@@ -1,4 +1,5 @@
 #include "MantidAPI/FileProperty.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidDataHandling/SaveSavuTomoConfig.h"
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/MandatoryValidator.h"
diff --git a/Code/Mantid/Framework/DataHandling/src/SetSampleMaterial.cpp b/Code/Mantid/Framework/DataHandling/src/SetSampleMaterial.cpp
index ba3e5cc35af45a7c5fa0b57c3325b2cf01987d3a..0dee22ce3060abd1f5488f3dbe1150b4cefecd65 100644
--- a/Code/Mantid/Framework/DataHandling/src/SetSampleMaterial.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SetSampleMaterial.cpp
@@ -57,7 +57,7 @@ void SetSampleMaterial::init() {
                   "formulas per cubic angstrom will be used instead of "
                   "calculated");
   declareProperty("ZParameter", EMPTY_DBL(), mustBePositive,
-                  "Number of atoms in the unit cell");
+                  "Number of formula units in unit cell");
   declareProperty("UnitCellVolume", EMPTY_DBL(), mustBePositive,
                   "Unit cell volume in Angstoms^3. Will be calculated from the "
                   "OrientedLattice if not supplied.");
@@ -202,20 +202,6 @@ void SetSampleMaterial::exec() {
   // determine the sample number density
   double rho = getProperty("SampleNumberDensity"); // in Angstroms-3
   double zParameter = getProperty("ZParameter");   // number of atoms
-  if (isEmpty(rho)) {
-    double unitCellVolume = getProperty("UnitCellVolume"); // in Angstroms^3
-
-    // get the unit cell volume from the workspace if it isn't set
-    if (isEmpty(unitCellVolume) && expInfo->sample().hasOrientedLattice()) {
-      unitCellVolume = expInfo->sample().getOrientedLattice().volume();
-      g_log.notice() << "found unit cell volume " << unitCellVolume
-                     << " Angstrom^-3\n";
-    }
-    // density is just number of atoms in the unit cell
-    // ...but only calculate it if you have both numbers
-    if ((!isEmpty(zParameter)) && (!isEmpty(unitCellVolume)))
-      rho = zParameter / unitCellVolume;
-  }
 
   // get the scattering information - this will override table values
   double coh_xs = getProperty("CoherentXSection");         // in barns
@@ -273,6 +259,21 @@ void SetSampleMaterial::exec() {
       // normalize the accumulated number by the number of atoms
       neutron = (1. / numAtoms) *
                 neutron; // funny syntax b/c of operators in neutron atom
+      if (isEmpty(rho)) {
+        double unitCellVolume = getProperty("UnitCellVolume"); // in Angstroms^3
+
+        // get the unit cell volume from the workspace if it isn't set
+        if (isEmpty(unitCellVolume) && expInfo->sample().hasOrientedLattice()) {
+          unitCellVolume = expInfo->sample().getOrientedLattice().volume();
+          g_log.notice() << "found unit cell volume " << unitCellVolume
+                         << " Angstrom^-3\n";
+        }
+        // density is just number of atoms in the unit cell
+        // ...but only calculate it if you have both numbers
+        if ((!isEmpty(zParameter)) && (!isEmpty(unitCellVolume)))
+          rho = numAtoms * zParameter / unitCellVolume;
+      }
+
       b_avg = b_avg / numAtoms;
       b_sq_avg = b_sq_avg / numAtoms;
 
@@ -289,6 +290,20 @@ void SetSampleMaterial::exec() {
     fixNeutron(neutron, coh_xs, inc_xs, sigma_atten, sigma_s);
 
     // create the material
+    if (isEmpty(rho)) {
+      double unitCellVolume = getProperty("UnitCellVolume"); // in Angstroms^3
+
+      // get the unit cell volume from the workspace if it isn't set
+      if (isEmpty(unitCellVolume) && expInfo->sample().hasOrientedLattice()) {
+        unitCellVolume = expInfo->sample().getOrientedLattice().volume();
+        g_log.notice() << "found unit cell volume " << unitCellVolume
+                       << " Angstrom^-3\n";
+      }
+      // density is just number of atoms in the unit cell
+      // ...but only calculate it if you have both numbers
+      if ((!isEmpty(zParameter)) && (!isEmpty(unitCellVolume)))
+        rho = zParameter / unitCellVolume;
+    }
     mat.reset(new Material(chemicalSymbol, neutron, rho));
   }
 
diff --git a/Code/Mantid/Framework/DataHandling/src/SortTableWorkspace.cpp b/Code/Mantid/Framework/DataHandling/src/SortTableWorkspace.cpp
index 6909250252c266fa1beccde46125ffdb2ff58c81..cb9119ca6ec786f4b093ddceffa395efa77bee75 100644
--- a/Code/Mantid/Framework/DataHandling/src/SortTableWorkspace.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SortTableWorkspace.cpp
@@ -87,7 +87,7 @@ void SortTableWorkspace::exec() {
     crt->second = (*asc) != 0;
   }
 
-  API::ITableWorkspace_sptr outputWS(ws->clone());
+  API::ITableWorkspace_sptr outputWS(ws->clone().release());
   outputWS->sort(criteria);
   setProperty("OutputWorkspace", outputWS);
 }
diff --git a/Code/Mantid/Framework/DataHandling/test/CheckMantidVersionTest.h b/Code/Mantid/Framework/DataHandling/test/CheckMantidVersionTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..f3dc6080aed47a65245024c07c8b108556362a34
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/test/CheckMantidVersionTest.h
@@ -0,0 +1,137 @@
+#ifndef MANTID_DATAHANDLING_CHECKMANTIDVERSIONTEST_H_
+#define MANTID_DATAHANDLING_CHECKMANTIDVERSIONTEST_H_
+
+#include <cxxtest/TestSuite.h>
+
+#include "MantidDataHandling/CheckMantidVersion.h"
+
+using Mantid::DataHandling::CheckMantidVersion;
+using namespace Mantid::API;
+
+namespace {
+/**
+ * Mock out the version calls of this algorithm
+ */
+class MockedCheckMantidVersion : public CheckMantidVersion {
+public:
+  MockedCheckMantidVersion(std::string currentVersion, std::string gitHubVersion) : CheckMantidVersion(), CurrentVersion(currentVersion),
+    GitHubVersion(gitHubVersion){}
+
+  std::string CurrentVersion;
+  std::string GitHubVersion;
+private:
+  virtual std::string getVersionsFromGitHub(const std::string &url) {
+    //the initial assignment of the value to url is just to suppress a compiler warning
+    std::string outputString(url);
+    outputString ="{\n"
+      "  \"url\": \"https://api.github.com/repos/mantidproject/mantid/releases/1308203\",\n"
+      "  \"assets_url\": \"https://api.github.com/repos/mantidproject/mantid/releases/1308203/assets\",\n"
+      "  \"upload_url\": \"https://uploads.github.com/repos/mantidproject/mantid/releases/1308203/assets{?name}\",\n"
+      "  \"html_url\": \"https://github.com/mantidproject/mantid/releases/tag/v3.4.0\",\n"
+      "  \"id\": 1308203,\n"
+      "  \"tag_name\": \"" + GitHubVersion + "\",\n"
+      "  \"target_commitish\": \"master\",\n"
+      "  \"name\": \"Release version 3.4.0\",\n"
+      "  \"draft\": false,\n"
+      "  \"author\": {\n"
+      "    \"login\": \"peterfpeterson\",\n"
+      "    \"id\": 404003,\n"
+      "    \"avatar_url\": \"https://avatars.githubusercontent.com/u/404003?v=3\",\n"
+      "    \"gravatar_id\": \"\",\n"
+      "    \"url\": \"https://api.github.com/users/peterfpeterson\",\n"
+      "    \"html_url\": \"https://github.com/peterfpeterson\",\n"
+      "    \"followers_url\": \"https://api.github.com/users/peterfpeterson/followers\",\n"
+      "    \"following_url\": \"https://api.github.com/users/peterfpeterson/following{/other_user}\",\n"
+      "    \"gists_url\": \"https://api.github.com/users/peterfpeterson/gists{/gist_id}\",\n"
+      "    \"starred_url\": \"https://api.github.com/users/peterfpeterson/starred{/owner}{/repo}\",\n"
+      "    \"subscriptions_url\": \"https://api.github.com/users/peterfpeterson/subscriptions\",\n"
+      "    \"organizations_url\": \"https://api.github.com/users/peterfpeterson/orgs\",\n"
+      "    \"repos_url\": \"https://api.github.com/users/peterfpeterson/repos\",\n"
+      "    \"events_url\": \"https://api.github.com/users/peterfpeterson/events{/privacy}\",\n"
+      "    \"received_events_url\": \"https://api.github.com/users/peterfpeterson/received_events\",\n"
+      "    \"type\": \"User\",\n"
+      "    \"site_admin\": false\n"
+      "  }";
+
+    return outputString;
+  }
+  virtual std::string getCurrentVersion() const {
+    return CurrentVersion;
+  }
+  
+
+};
+}
+
+class CheckMantidVersionTest : 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 CheckMantidVersionTest *createSuite() { return new CheckMantidVersionTest(); }
+  static void destroySuite( CheckMantidVersionTest *suite ) { delete suite; }
+
+
+  void test_Init()
+  {
+    CheckMantidVersion alg;
+    TS_ASSERT_THROWS_NOTHING( alg.initialize() )
+    TS_ASSERT( alg.isInitialized() )
+  }
+
+  void runTest(const std::string& localVersion, const std::string& gitHubVersion, bool expectedResult)
+  {
+    MockedCheckMantidVersion alg(localVersion,gitHubVersion);
+    TS_ASSERT_THROWS_NOTHING( alg.initialize() )
+
+    TS_ASSERT( alg.isInitialized() );
+    TS_ASSERT_THROWS_NOTHING( alg.execute(); );
+    TS_ASSERT( alg.isExecuted() );
+    
+    std::string currentVersion = alg.PropertyManagerOwner::getProperty("CurrentVersion");
+    std::string mostRecentVersion = alg.PropertyManagerOwner::getProperty("MostRecentVersion");
+    bool isNewVersionAvailable = alg.PropertyManagerOwner::getProperty("IsNewVersionAvailable");
+
+    // Check the results
+    TS_ASSERT_EQUALS(alg.CurrentVersion,currentVersion);
+    TS_ASSERT_EQUALS(expectedResult,isNewVersionAvailable);
+  }
+
+  void test_execLocalNewerRevision()
+  {
+    runTest("3.4.2","v3.4.0",false);
+  }  
+  void test_execRemoteNewerRevision()
+  {
+    runTest("3.4.0","v3.4.1",true);
+  }
+  void test_execLocaldevelopRevision()
+  {
+    runTest("3.4.20150703.1043","v3.4.0",false);
+  }
+  void test_execLocaldevelopNewerRevision()
+  {
+    runTest("3.4.20150703.1043","v3.4.1",false);
+  }
+
+  void test_execLocalNewerMinor()
+  {
+    runTest("3.5.2","v3.4.7",false);
+  }  
+  void test_execRemoteNewerMinor()
+  {
+    runTest("3.3.7","v3.4.1",true);
+  }
+  void test_execLocalNewerMajor()
+  {
+    runTest("2.0.2","v1.11.7",false);
+  }  
+  void test_execRemoteNewerMajor()
+  {
+    runTest("2.3.7","v3.0.0",true);
+  }
+
+
+};
+
+
+#endif /* MANTID_DATAHANDLING_CHECKMANTIDVERSIONTEST_H_ */
diff --git a/Code/Mantid/Framework/DataHandling/test/EventWorkspaceCollectionTest.h b/Code/Mantid/Framework/DataHandling/test/EventWorkspaceCollectionTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..ecc8cfec6527f965400d5340635f08c439aac453
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/test/EventWorkspaceCollectionTest.h
@@ -0,0 +1,145 @@
+#ifndef MANTID_DATAHANDLING_EventWorkspaceCollectionTEST_H_
+#define MANTID_DATAHANDLING_EventWorkspaceCollectionTEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include "MantidKernel/TimeSeriesProperty.h"
+
+#include <memory>
+#include <boost/make_shared.hpp>
+
+#include "MantidDataHandling/EventWorkspaceCollection.h"
+#include "MantidDataObjects/EventWorkspace.h"
+#include "MantidAPI/WorkspaceGroup.h"
+
+using namespace Mantid::DataHandling;
+using namespace Mantid::DataObjects;
+using namespace Mantid::API;
+using namespace Mantid::Kernel;
+
+namespace {
+
+EventWorkspaceCollection_uptr makeEventWorkspaceCollection(unsigned int decoratorSize) {
+
+  EventWorkspaceCollection_uptr decorator(new EventWorkspaceCollection);
+
+  std::unique_ptr<const TimeSeriesProperty<int>> periodLog(
+      new const TimeSeriesProperty<int>("period_log"));
+
+  decorator->setNPeriods(decoratorSize, periodLog);
+
+  return decorator;
+}
+}
+
+class EventWorkspaceCollectionTest : 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 EventWorkspaceCollectionTest *createSuite() {
+    return new EventWorkspaceCollectionTest();
+  }
+  static void destroySuite(EventWorkspaceCollectionTest *suite) { delete suite; }
+
+  void test_constructor() {
+    EventWorkspaceCollection decorator;
+    TSM_ASSERT_EQUALS("Always one period by default", 1, decorator.nPeriods());
+  }
+
+  void test_output_single_workspace() {
+    EventWorkspaceCollection decorator;
+    TSM_ASSERT_EQUALS("Always one period by default", 1, decorator.nPeriods());
+    TS_ASSERT_EQUALS(decorator.combinedWorkspace(),
+                     decorator.getSingleHeldWorkspace());
+  }
+
+  void test_output_multiple_workspaces() {
+    EventWorkspaceCollection decorator;
+
+    std::unique_ptr<const TimeSeriesProperty<int>> periodLog(
+        new const TimeSeriesProperty<int>("period_log"));
+    decorator.setNPeriods(3, periodLog);
+
+    WorkspaceGroup_sptr outWS = boost::dynamic_pointer_cast<WorkspaceGroup>(
+        decorator.combinedWorkspace());
+    TSM_ASSERT("Should be a WorkspaceGroup", outWS);
+    TS_ASSERT_EQUALS(3, outWS->size());
+  }
+
+  void test_set_geometryFlag() {
+
+    EventWorkspaceCollection_uptr decorator = makeEventWorkspaceCollection(3);
+
+    const int geometryFlag = 3;
+
+    decorator->setGeometryFlag(geometryFlag);
+
+    WorkspaceGroup_sptr outWS = boost::dynamic_pointer_cast<WorkspaceGroup>(
+        decorator->combinedWorkspace());
+
+    for (size_t i = 0; i < outWS->size(); ++i) {
+      auto memberWS =
+          boost::dynamic_pointer_cast<EventWorkspace>(outWS->getItem(i));
+      TSM_ASSERT_EQUALS(
+          "Child workspaces should all have the geometry flag set",
+          geometryFlag, memberWS->sample().getGeometryFlag());
+    }
+  }
+
+  void test_set_thickness() {
+
+    EventWorkspaceCollection_uptr decorator = makeEventWorkspaceCollection(3);
+
+    const float thickness = 3;
+
+    decorator->setThickness(thickness);
+
+    WorkspaceGroup_sptr outWS = boost::dynamic_pointer_cast<WorkspaceGroup>(
+        decorator->combinedWorkspace());
+
+    for (size_t i = 0; i < outWS->size(); ++i) {
+      auto memberWS =
+          boost::dynamic_pointer_cast<EventWorkspace>(outWS->getItem(i));
+      TSM_ASSERT_EQUALS("Child workspaces should all have the thickness set",
+                        thickness, memberWS->sample().getThickness());
+    }
+  }
+
+  void test_set_height() {
+    EventWorkspaceCollection_uptr decorator = makeEventWorkspaceCollection(3);
+
+    const float height = 3;
+
+    decorator->setHeight(height);
+
+    WorkspaceGroup_sptr outWS = boost::dynamic_pointer_cast<WorkspaceGroup>(
+        decorator->combinedWorkspace());
+
+    for (size_t i = 0; i < outWS->size(); ++i) {
+      auto memberWS =
+          boost::dynamic_pointer_cast<EventWorkspace>(outWS->getItem(i));
+      TSM_ASSERT_EQUALS("Child workspaces should all have the height set",
+                        height, memberWS->sample().getHeight());
+    }
+  }
+
+  void test_set_width() {
+
+    EventWorkspaceCollection_uptr decorator = makeEventWorkspaceCollection(3);
+
+    const float width = 3;
+
+    decorator->setWidth(width);
+
+    WorkspaceGroup_sptr outWS = boost::dynamic_pointer_cast<WorkspaceGroup>(
+        decorator->combinedWorkspace());
+
+    for (size_t i = 0; i < outWS->size(); ++i) {
+      auto memberWS =
+          boost::dynamic_pointer_cast<EventWorkspace>(outWS->getItem(i));
+      TSM_ASSERT_EQUALS("Child workspaces should all have the width set",
+                        width, memberWS->sample().getWidth());
+    }
+  }
+};
+
+#endif /* MANTID_DATAHANDLING_EventWorkspaceCollectionTEST_H_ */
diff --git a/Code/Mantid/Framework/DataHandling/test/FilterEventsByLogValuePreNexusTest.h b/Code/Mantid/Framework/DataHandling/test/FilterEventsByLogValuePreNexusTest.h
index 07ecd72ca180d40b6d5c05726ce60aebae61433b..19af19b7da0cc6a273844c95b4fe6f789475f6f4 100644
--- a/Code/Mantid/Framework/DataHandling/test/FilterEventsByLogValuePreNexusTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/FilterEventsByLogValuePreNexusTest.h
@@ -6,7 +6,6 @@
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/Workspace.h"
-#include "MantidAPI/WorkspaceGroup.h"
 #include "MantidAPI/WorkspaceOpOverloads.h"
 #include "MantidDataHandling/LoadInstrument.h"
 #include "MantidDataObjects/EventWorkspace.h"
diff --git a/Code/Mantid/Framework/DataHandling/test/GroupDetectors2Test.h b/Code/Mantid/Framework/DataHandling/test/GroupDetectors2Test.h
index 412f7d461ad97f98f8bf28ff39d876921aced4da..652754a430e29f0a8d91727ff15fad41678dfc3c 100644
--- a/Code/Mantid/Framework/DataHandling/test/GroupDetectors2Test.h
+++ b/Code/Mantid/Framework/DataHandling/test/GroupDetectors2Test.h
@@ -745,6 +745,20 @@ public:
     AnalysisDataService::Instance().remove(outputws);
  }
 
+  void test_invalid_grouping_patterns_throw()
+  {
+    GroupDetectors2 groupAlg;
+    groupAlg.initialize();
+    groupAlg.setRethrows(true);
+    groupAlg.setPropertyValue("InputWorkspace", inputWS);
+    groupAlg.setPropertyValue("OutputWorkspace", outputBase);
+    groupAlg.setPropertyValue("GroupingPattern", "-1, 0");
+    //Check that the GroupingPattern was recognised as invalid
+    TS_ASSERT(!groupAlg.validateInputs()["GroupingPattern"].empty());
+    //And that we're not allowed to run
+    TS_ASSERT_THROWS(groupAlg.execute(), std::runtime_error);
+  }
+
   private:
     const std::string inputWS, outputBase, inputFile;
     enum constants { NHIST = 6, NBINS = 4 };
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadDiffCalTest.h b/Code/Mantid/Framework/DataHandling/test/LoadDiffCalTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..582afed01b7d0a6661126ab25919a5a94e3781b1
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/test/LoadDiffCalTest.h
@@ -0,0 +1,87 @@
+#ifndef MANTID_DATAHANDLING_LOADDIFFCALTEST_H_
+#define MANTID_DATAHANDLING_LOADDIFFCALTEST_H_
+
+#include <cxxtest/TestSuite.h>
+
+#include "MantidAPI/FrameworkManager.h"
+#include "MantidDataHandling/LoadDiffCal.h"
+// reuse what another test has for creating dummy workspaces
+#include "SaveDiffCalTest.h"
+
+#include <Poco/File.h>
+
+using Mantid::DataHandling::LoadDiffCal;
+using Mantid::DataHandling::SaveDiffCal;
+using namespace Mantid::API;
+
+class LoadDiffCalTest : 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 LoadDiffCalTest *createSuite() { return new LoadDiffCalTest(); }
+  static void destroySuite( LoadDiffCalTest *suite ) { delete suite; }
+
+
+  void test_Init()
+  {
+    LoadDiffCal alg;
+    TS_ASSERT_THROWS_NOTHING( alg.initialize() );
+    TS_ASSERT( alg.isInitialized() );
+  }
+
+  void test_exec()
+  {
+    // this is a round-trip test
+    std::string outWSName("LoadDiffCalTest");
+    std::string filename("LoadDiffCalTest.h5");
+
+    // save a test file
+    SaveDiffCalTest saveDiffCal;
+    auto inst = saveDiffCal.createInstrument();
+    auto groupWSIn = saveDiffCal.createGrouping(inst);
+    auto maskWSIn = saveDiffCal.createMasking(inst);
+    auto calWSIn = saveDiffCal.createCalibration(5*9); // nine components per bank
+    SaveDiffCal saveAlg;
+    saveAlg.initialize();
+    saveAlg.setProperty("GroupingWorkspace", groupWSIn);
+    saveAlg.setProperty("MaskWorkspace", maskWSIn);
+    saveAlg.setProperty("Filename", filename);
+    saveAlg.setProperty("CalibrationWorkspace", calWSIn);
+    TS_ASSERT_THROWS_NOTHING( saveAlg.execute(); ); // make sure it runs
+    filename = saveAlg.getPropertyValue("Filename");
+
+    // run the algorithm of interest
+    LoadDiffCal loadAlg;
+    TS_ASSERT_THROWS_NOTHING( loadAlg.initialize() );
+    TS_ASSERT( loadAlg.isInitialized() );
+    TS_ASSERT_THROWS_NOTHING( loadAlg.setPropertyValue("Filename", filename) );
+    TS_ASSERT_THROWS_NOTHING( loadAlg.setPropertyValue("WorkspaceName", outWSName) );
+    TS_ASSERT_THROWS_NOTHING( loadAlg.setProperty("MakeGroupingWorkspace", false) );
+    TS_ASSERT_THROWS_NOTHING( loadAlg.setProperty("MakeMaskWorkspace", false) );
+    TS_ASSERT_THROWS_NOTHING( loadAlg.execute(); );
+    TS_ASSERT( loadAlg.isExecuted() );
+
+    ITableWorkspace_sptr ws;
+    TS_ASSERT_THROWS_NOTHING( ws = AnalysisDataService::Instance().retrieveWS<ITableWorkspace>(outWSName+"_cal") );
+    TS_ASSERT(ws);
+
+    if (ws) {
+        auto checkAlg = FrameworkManager::Instance().createAlgorithm("CheckWorkspacesMatch");
+        checkAlg->setProperty("Workspace1", calWSIn);
+        checkAlg->setProperty("Workspace2", ws);
+        checkAlg->execute();
+        std::string result = checkAlg->getPropertyValue("Result");
+        TS_ASSERT_EQUALS( result, "Success!");
+
+        AnalysisDataService::Instance().remove(outWSName+"_cal");
+    }
+
+    // cleanup
+    if (Poco::File(filename).exists())
+      Poco::File(filename).remove();
+  }
+
+};
+
+
+#endif /* MANTID_DATAHANDLING_LOADDIFFCALTEST_H_ */
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadEventNexusTest.h b/Code/Mantid/Framework/DataHandling/test/LoadEventNexusTest.h
index b5dccfdd468c05919e5309f708036fff3c7458e8..75384f6a88bb0b86a33890cd3a36e2b26c9e64c7 100644
--- a/Code/Mantid/Framework/DataHandling/test/LoadEventNexusTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/LoadEventNexusTest.h
@@ -6,19 +6,12 @@
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/Workspace.h"
-#include "MantidAPI/WorkspaceGroup.h"
-#include "MantidAPI/WorkspaceOpOverloads.h"
-#include "MantidDataHandling/LoadInstrument.h"
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidDataObjects/Workspace2D.h"
-#include "MantidKernel/PhysicalConstants.h"
 #include "MantidKernel/Property.h"
-#include "MantidKernel/Timer.h"
 #include "MantidKernel/TimeSeriesProperty.h"
 #include "MantidDataHandling/LoadEventNexus.h"
 #include <cxxtest/TestSuite.h>
 #include <iostream>
-#include <Poco/File.h>
 
 using namespace Mantid::Geometry;
 using namespace Mantid::API;
@@ -490,7 +483,6 @@ public:
 
     auto ws = AnalysisDataService::Instance().retrieveWS<EventWorkspace>(outws);
     auto inst = ws->getInstrument();
-    TS_ASSERT( inst->getFilename().empty() ); // This is how we know we got it from inside the nexus file
     TS_ASSERT_EQUALS( inst->getName(), "HYSPECA" );
     TS_ASSERT_EQUALS( inst->getValidFromDate(), std::string("2011-Jul-20 17:02:48.437294000") );
     TS_ASSERT_EQUALS( inst->getNumberDetectors(), 20483 );
@@ -611,6 +603,60 @@ public:
     TS_ASSERT_EQUALS(WS->getEventList(26798).getWeightedEvents()[0].tof(), 1476.0);
   }
 
+void test_extract_nperiod_data() {
+  LoadEventNexus loader;
+
+  loader.setChild(true);
+  loader.initialize();
+  loader.setPropertyValue("OutputWorkspace", "dummy");
+  loader.setPropertyValue("Filename", "LARMOR00003368.nxs");
+  loader.execute();
+  Workspace_sptr outWS = loader.getProperty("OutputWorkspace");
+  WorkspaceGroup_sptr outGroup = boost::dynamic_pointer_cast<WorkspaceGroup>(outWS);
+  TSM_ASSERT("Invalid Output Workspace Type", outGroup);
+
+  IEventWorkspace_sptr firstWS = boost::dynamic_pointer_cast<IEventWorkspace>(outGroup->getItem(0));
+  auto run = firstWS->run();
+  const int nPeriods = run.getPropertyValueAsType<int>("nperiods");
+  TSM_ASSERT_EQUALS("Wrong number of periods extracted", nPeriods, 4);
+  TSM_ASSERT_EQUALS("Groups size should be same as nperiods", outGroup->size(), nPeriods);
+
+  for(size_t i = 0; i < outGroup->size(); ++i){
+      EventWorkspace_sptr ws = boost::dynamic_pointer_cast<EventWorkspace>(outGroup->getItem(i));
+      TS_ASSERT(ws);
+      TSM_ASSERT("Non-zero events in each period", ws->getNumberEvents() > 0);
+
+      std::stringstream buffer;
+      buffer << "period " << i+1;
+      std::string periodBoolLog = buffer.str();
+
+      const int currentPeriod = ws->run().getPropertyValueAsType<int>("current_period");
+
+      TSM_ASSERT("Each period should have a boolean array for masking period numbers", ws->run().hasProperty(periodBoolLog));
+      TSM_ASSERT_EQUALS("Current period is not what was expected.", currentPeriod, i+1);
+
+  }
+  // Make sure that the spectraNo are equal for all child workspaces.
+  auto isFirstChildWorkspace = true;
+  std::vector<Mantid::specid_t> specids;
+
+  for(size_t i = 0; i < outGroup->size(); ++i) {
+    EventWorkspace_sptr ws = boost::dynamic_pointer_cast<EventWorkspace>(outGroup->getItem(i));
+    if (isFirstChildWorkspace){
+      specids.reserve(ws->getNumberHistograms());
+    }
+    for (size_t index = 0; index < ws->getNumberHistograms(); ++index) {
+      if (isFirstChildWorkspace) {
+        specids.push_back(ws->getSpectrum(index)->getSpectrumNo());
+      } else {
+        TSM_ASSERT_EQUALS("The spectrNo should be the same for all child workspaces.",specids[index], ws->getSpectrum(index)->getSpectrumNo());
+      }
+    }
+
+    isFirstChildWorkspace = false;
+  }
+}
+
 private:
   std::string wsSpecFilterAndEventMonitors;
 };
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadIDFFromNexusTest.h b/Code/Mantid/Framework/DataHandling/test/LoadIDFFromNexusTest.h
index 4e615de3508d4e95c37efc6e9a5a5334a4002f64..de3acc33e991a8e6797dfee975b9dc4a3ae9accf 100644
--- a/Code/Mantid/Framework/DataHandling/test/LoadIDFFromNexusTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/LoadIDFFromNexusTest.h
@@ -14,13 +14,16 @@
 #include "MantidAPI/Algorithm.h"
 #include "MantidGeometry/Instrument/Component.h"
 #include "MantidGeometry/Instrument/Detector.h"
+#include "MantidTestHelpers/ScopedFileHelper.h"
 #include <vector>
+#include <Poco/Path.h>
 
 using namespace Mantid::API;
 using namespace Mantid::Kernel;
 using namespace Mantid::Geometry;
 using namespace Mantid::DataHandling;
 using namespace Mantid::DataObjects;
+using ScopedFileHelper::ScopedFile;
 
 class LoadIDFFromNexusTest : public CxxTest::TestSuite
 {
@@ -42,6 +45,8 @@ public:
 
   void testExec()
   {
+    // We load a processed Nexus file with embedded parameters
+
     if ( !loader.isInitialized() ) loader.initialize();
 
     //Create a workspace with some sample data
@@ -54,7 +59,7 @@ public:
 
     // Set properties
     loader.setPropertyValue("Workspace", wsName);
-    loader.setPropertyValue("Filename", "LOQ48127.nxs");
+    loader.setPropertyValue("Filename", "LOQ48127.nxs"); 
     loader.setPropertyValue("InstrumentParentPath","mantid_workspace_1"); 
     inputFile = loader.getPropertyValue("Filename"); // get full pathname
     
@@ -120,6 +125,129 @@ public:
 	  AnalysisDataService::Instance().remove(wsName);
   }
 
+  void test_parameter_source() {
+
+    // We load a processed Nexus file with embedded parameters, one of which has been made different 
+    // from the same parameter in the file on disk (LOQ_Parameters.xml)
+
+    if ( !loader.isInitialized() ) loader.initialize();
+
+    //Create a workspace with some sample data
+    wsName = "LoadIDFFromNexusTest2";
+    Workspace_sptr ws = WorkspaceFactory::Instance().create("Workspace2D",1,1,1);
+    Workspace2D_sptr ws2D = boost::dynamic_pointer_cast<Workspace2D>(ws);
+
+    //Put this workspace in the data service
+    TS_ASSERT_THROWS_NOTHING(AnalysisDataService::Instance().add(wsName, ws2D));
+
+    // Set properties 
+    loader.setPropertyValue("Workspace", wsName);
+    loader.setPropertyValue("Filename", "LOQ48127p.nxs"); 
+    loader.setPropertyValue("InstrumentParentPath","mantid_workspace_1"); 
+    inputFile = loader.getPropertyValue("Filename"); // get full pathname
+
+    // Execute
+    TS_ASSERT_THROWS_NOTHING(loader.execute());
+    TS_ASSERT( loader.isExecuted() );
+
+    // Get back the saved workspace
+    MatrixWorkspace_sptr output;
+    TS_ASSERT_THROWS_NOTHING(output = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(wsName));
+
+    // We now check the parameter that is different in the embedded parameters
+    const ParameterMap& paramMap = output->instrumentParameters();
+    boost::shared_ptr<const Instrument> i = output->getInstrument();
+    TS_ASSERT_EQUALS(paramMap.getString(i.get(), "low-angle-detector-name"), "LAB");
+    // If this gives "main-detector-bank" instead of "LAB", 
+    // then the embedded parameters have not, been read and the parameter file has been used instead.
+
+  }
+
+   void test_parameter_file() {
+
+    // We load a processed Nexus file without embedded parameters and 
+    // check that parameters has been loaded (from file) despite that
+
+    if ( !loader.isInitialized() ) loader.initialize();
+
+    //Create a workspace with some sample data
+    wsName = "LoadIDFFromNexusTest3";
+    Workspace_sptr ws = WorkspaceFactory::Instance().create("Workspace2D",1,1,1);
+    Workspace2D_sptr ws2D = boost::dynamic_pointer_cast<Workspace2D>(ws);
+
+    //Put this workspace in the data service
+    TS_ASSERT_THROWS_NOTHING(AnalysisDataService::Instance().add(wsName, ws2D));
+
+    // Set properties 
+    loader.setPropertyValue("Workspace", wsName);
+    loader.setPropertyValue("Filename", "LOQ48127np.nxs"); 
+    loader.setPropertyValue("InstrumentParentPath","mantid_workspace_1"); 
+    inputFile = loader.getPropertyValue("Filename"); // get full pathname
+
+    // Execute
+    TS_ASSERT_THROWS_NOTHING(loader.execute());
+    TS_ASSERT( loader.isExecuted() );
+
+    // Get back the saved workspace
+    MatrixWorkspace_sptr output;
+    TS_ASSERT_THROWS_NOTHING(output = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(wsName));
+
+    // We now check a parameter
+    const ParameterMap& paramMap = output->instrumentParameters();
+    boost::shared_ptr<const Instrument> i = output->getInstrument();
+    TS_ASSERT_EQUALS(paramMap.getString(i.get(), "low-angle-detector-name"), "main-detector-bank");
+
+  }
+
+  void test_get_parameter_correction_file() {
+
+    // We test the function the looks for a parameter correction file 
+    // for a given instrument.
+
+    // TEST1 file exists
+    std::string testpath1 = loader.getParameterCorrectionFile("TEST1");
+    Poco::Path iPath( true );  // Absolute path
+    TS_ASSERT(iPath.tryParse(testpath1)); // Result has correct syntax
+    TS_ASSERT(iPath.isFile()); // Result is a file
+    TS_ASSERT(iPath.getFileName()=="TEST1_Parameter_Corrections.xml"); // Correct filename
+    TS_ASSERT(iPath.directory(iPath.depth()-1)=="embedded_instrument_corrections"); // Correct folder
+
+    // TEST0 file does not exist
+    std::string testpath0 = loader.getParameterCorrectionFile("TEST0"); 
+    TS_ASSERT(testpath0 == ""); // Nothing should be found
+  }
+
+  void test_read_parameter_correction_file() {
+    std::string contents = 
+      "<EmbeddedParameterCorrections name='XXX'>"
+      "   <correction  valid-from='2015-06-26 00:00:00'  valid-to='2015-07-21 23:59:59' file='test1.xml' append='false'/>"
+      "   <correction  valid-from='2015-07-22 00:00:00'  valid-to='2015-07-31 11:59:59' file='test2.xml' append='true'/>"
+      "</EmbeddedParameterCorrections>";
+    std::string correctionFilename = "parameter_correction_test.xml";
+    ScopedFile file( contents, correctionFilename, "." );
+    std::string parameterFile;
+    bool append;
+
+    // Date too early for correction
+    TS_ASSERT_THROWS_NOTHING(loader.readParameterCorrectionFile(correctionFilename, "2015-06-25 23:00:00", parameterFile, append ));
+    TS_ASSERT(parameterFile == ""); 
+
+    // Date for first correction
+    TS_ASSERT_THROWS_NOTHING(loader.readParameterCorrectionFile(correctionFilename, "2015-06-30 13:00:00", parameterFile, append ));
+    TS_ASSERT(parameterFile == "test1.xml");
+    TS_ASSERT(append == false);
+
+    // Date for second correction
+    TS_ASSERT_THROWS_NOTHING(loader.readParameterCorrectionFile(correctionFilename, "2015-07-30 13:00:00", parameterFile, append ));
+    TS_ASSERT(parameterFile == "test2.xml");
+    TS_ASSERT(append == true);
+
+    // Date too late for correction
+    TS_ASSERT_THROWS_NOTHING(loader.readParameterCorrectionFile(correctionFilename, "2015-07-31 12:00:00", parameterFile, append ));
+    TS_ASSERT(parameterFile == ""); 
+    
+  }
+
 
 
 private:
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadMLZTest.h b/Code/Mantid/Framework/DataHandling/test/LoadMLZTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..d3fdf940fb60c4501e1eab9ef7ee4acbedaf7034
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/test/LoadMLZTest.h
@@ -0,0 +1,89 @@
+#ifndef LOADMLZTEST_H_
+#define LOADMLZTEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include "MantidDataHandling/LoadMLZ.h"
+#include "MantidAPI/AnalysisDataService.h"
+
+using namespace Mantid::API;
+using Mantid::DataHandling::LoadMLZ;
+
+class LoadMLZTest: 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 LoadMLZTest *createSuite() { return new LoadMLZTest(); }
+  static void destroySuite( LoadMLZTest *suite ) { delete suite; }
+
+	LoadMLZTest() :
+			m_dataFile("TOFTOFTestdata.nxs") {
+	}
+
+	void testName() {
+		LoadMLZ loader;
+		TS_ASSERT_EQUALS( loader.name(), "LoadMLZ");
+	}
+
+	void testVersion() {
+		LoadMLZ loader;
+		TS_ASSERT_EQUALS( loader.version(), 1);
+	}
+
+	void testInit() {
+		LoadMLZ loader;
+		TS_ASSERT_THROWS_NOTHING( loader.initialize());
+		TS_ASSERT( loader.isInitialized());
+	}
+
+	/*
+	 * This test only loads the Sample Data
+	 */
+	void testExecJustSample() {
+		LoadMLZ loader;
+		loader.initialize();
+		loader.setPropertyValue("Filename", m_dataFile);
+
+		std::string outputSpace = "LoadMLZTest_out";
+		loader.setPropertyValue("OutputWorkspace", outputSpace);
+		TS_ASSERT_THROWS_NOTHING( loader.execute());
+
+		MatrixWorkspace_sptr output = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(outputSpace);
+		MatrixWorkspace_sptr output2D = boost::dynamic_pointer_cast<MatrixWorkspace>(output);
+
+		TS_ASSERT_EQUALS( output2D->getNumberHistograms(), 1006); //to check
+
+		AnalysisDataService::Instance().clear();
+	}
+
+
+
+private:
+	std::string m_dataFile;
+
+};
+
+//------------------------------------------------------------------------------
+// Performance test
+//------------------------------------------------------------------------------
+
+class LoadMLZTestPerformance: public CxxTest::TestSuite {
+public:
+	LoadMLZTestPerformance() :
+		m_dataFile("TOFTOFTestdata.nxs"){
+	}
+
+	void testDefaultLoad() {
+		Mantid::DataHandling::LoadMLZ loader;
+		loader.initialize();
+		loader.setPropertyValue("Filename", m_dataFile);
+		loader.setPropertyValue("OutputWorkspace", "ws");
+		TS_ASSERT(loader.execute());
+	}
+
+private:
+	std::string m_dataFile;
+
+};
+
+#endif /*LoadMLZTEST_H_*/
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadMuonNexus1Test.h b/Code/Mantid/Framework/DataHandling/test/LoadMuonNexus1Test.h
index 151ce92d66f1d439e7b1b0aa04a2025d89cdfa1d..563a7625cbfa8e2b71892d937f78e23ddd4facb3 100644
--- a/Code/Mantid/Framework/DataHandling/test/LoadMuonNexus1Test.h
+++ b/Code/Mantid/Framework/DataHandling/test/LoadMuonNexus1Test.h
@@ -745,7 +745,7 @@ public:
     TS_ASSERT_THROWS_NOTHING( alg.initialize() );
     TS_ASSERT( alg.isInitialized() );
 
-    TS_ASSERT_THROWS_NOTHING( alg.setPropertyValue("Filename", "emu00006473.nxs") );
+    TS_ASSERT_THROWS_NOTHING( alg.setPropertyValue("Filename", "emu00006475.nxs") );
     TS_ASSERT_THROWS_NOTHING( alg.setPropertyValue("OutputWorkspace", outWsEntry.name()) );
 
     TS_ASSERT_THROWS_NOTHING( alg.execute() );
@@ -757,25 +757,27 @@ public:
     if (!outWs)
       return;
 
-    auto ws = boost::dynamic_pointer_cast<MatrixWorkspace>(outWs);
-    TS_ASSERT(ws);
+    auto gws = boost::dynamic_pointer_cast<WorkspaceGroup>(outWs);
+    TS_ASSERT(gws);
 
-    if (!ws)
+    if (!gws)
       return;
 
+    auto ws = boost::dynamic_pointer_cast<MatrixWorkspace>(gws->getItem(0));
+    TS_ASSERT(ws);
     const Run& run = ws->run();
 
     // Check expected properties
-    checkProperty(run, "run_number", std::string("6473"));
-    checkProperty(run, "run_title", std::string("Cr2.7Co0.3Si T=200.0 F=5.0"));
-    checkProperty(run, "run_start", std::string("2006-11-21T07:04:30"));
-    checkProperty(run, "run_end", std::string("2006-11-21T09:29:28"));
-    checkProperty(run, "dur_secs", std::string("8697"));
+    checkProperty(run, "run_number", std::string("6475"));
+    checkProperty(run, "run_title", std::string("ptfe test T=280 F=20.0"));
+    checkProperty(run, "run_start", std::string("2006-11-21T15:36:11"));
+    checkProperty(run, "run_end", std::string("2006-11-21T17:10:18"));
+    checkProperty(run, "dur_secs", std::string("5647"));
     checkProperty(run, "nspectra", 32);
-    checkProperty(run, "goodfrm", 417485);
+    checkProperty(run, "goodfrm", 60800);
 
-    checkProperty(run, "sample_temp", 200.0);
-    checkProperty(run, "sample_magn_field", 5.0);
+    checkProperty(run, "sample_temp", 280.0);
+    checkProperty(run, "sample_magn_field", 20.0);
   }
   
 
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadNexusLogsTest.h b/Code/Mantid/Framework/DataHandling/test/LoadNexusLogsTest.h
index 9d7967c614928dfa564fc963731351d2c3f632e8..a7aef732b8fe1e5bc4673d066f971ebae6f5058f 100644
--- a/Code/Mantid/Framework/DataHandling/test/LoadNexusLogsTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/LoadNexusLogsTest.h
@@ -83,7 +83,7 @@ public:
 
     const API::Run & run = testWS->run();
     const std::vector< Property* >& logs = run.getLogData();
-    TS_ASSERT_EQUALS(logs.size(), 33);
+    TS_ASSERT_EQUALS(logs.size(), 34); //33 logs in file + 1 synthetic nperiods log
 
     TimeSeriesProperty<std::string>* slog = dynamic_cast<TimeSeriesProperty<std::string>*>(run.getLogData("icp_event"));
     TS_ASSERT(slog);
@@ -108,6 +108,55 @@ public:
     TS_ASSERT_EQUALS(dlog->size(),172);
   }
 
+  void test_extract_nperiod_log_from_event_nexus(){
+
+      auto testWS = createTestWorkspace();
+      auto run = testWS->run();
+      TSM_ASSERT("Should not have nperiods until we run LoadNexusLogs", !run.hasProperty("nperiods"));
+      LoadNexusLogs loader;
+
+      loader.setChild(true);
+      loader.initialize();
+      loader.setProperty("Workspace", testWS);
+      loader.setPropertyValue("Filename", "LARMOR00003368.nxs");
+      loader.execute();
+      run = testWS->run();
+
+      const bool hasNPeriods = run.hasProperty("nperiods");
+      TSM_ASSERT("Should have nperiods now we have run LoadNexusLogs", hasNPeriods);
+      if(hasNPeriods) {
+          const int nPeriods  = run.getPropertyValueAsType<int>("nperiods");
+          TSM_ASSERT_EQUALS("Wrong number of periods extracted", nPeriods, 4);
+      }
+
+  }
+
+  void test_extract_periods_log_from_event_nexus(){
+
+      auto testWS = createTestWorkspace();
+      auto run = testWS->run();
+      TSM_ASSERT("Should not have nperiods until we run LoadNexusLogs", !run.hasProperty("nperiods"));
+      LoadNexusLogs loader;
+
+      loader.setChild(true);
+      loader.initialize();
+      loader.setProperty("Workspace", testWS);
+      loader.setPropertyValue("Filename", "LARMOR00003368.nxs");
+      loader.execute();
+      run = testWS->run();
+
+      const bool hasPeriods = run.hasProperty("period_log");
+      TSM_ASSERT("Should have period_log now we have run LoadNexusLogs", hasPeriods);
+
+      auto* temp = run.getProperty("period_log");
+      auto * periodLog = dynamic_cast<TimeSeriesProperty<int>*>(temp);
+      TSM_ASSERT("Period log should be an int time series property", periodLog);
+
+      std::vector<int> periodValues = periodLog->valuesAsVector();
+      std::set<int> uniquePeriods(periodValues.begin(), periodValues.end());
+      TSM_ASSERT_EQUALS("Should have 4 periods in total", 4, uniquePeriods.size());
+  }
+
 private:
   
   API::MatrixWorkspace_sptr createTestWorkspace()
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadNexusProcessedTest.h b/Code/Mantid/Framework/DataHandling/test/LoadNexusProcessedTest.h
index b889f32c18ea8592c11e56c0a8c0fa62df1a70fd..6f896c882217d6040654a7dfdf9f25d8fbd62823 100644
--- a/Code/Mantid/Framework/DataHandling/test/LoadNexusProcessedTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/LoadNexusProcessedTest.h
@@ -830,8 +830,7 @@ public:
     // Loading a peaks workspace without a instrument from an IDF doesn't work ...
     const std::string filename = FileFinder::Instance().getFullPath(
           "IDFs_for_UNIT_TESTING/MINITOPAZ_Definition.xml");
-    InstrumentDefinitionParser parser;
-    parser.initialize(filename, "MINITOPAZ", Strings::loadFile(filename));
+    InstrumentDefinitionParser parser(filename, "MINITOPAZ", Strings::loadFile(filename));
     auto instrument = parser.parseXML(NULL);
     peaksTestWS->populateInstrumentParameters();
     peaksTestWS->setInstrument(instrument);
@@ -873,8 +872,7 @@ public:
     // Loading a peaks workspace without a instrument from an IDF doesn't work ...
     const std::string filename = FileFinder::Instance().getFullPath(
           "IDFs_for_UNIT_TESTING/MINITOPAZ_Definition.xml");
-    InstrumentDefinitionParser parser;
-    parser.initialize(filename, "MINITOPAZ", Strings::loadFile(filename));
+    InstrumentDefinitionParser parser(filename, "MINITOPAZ", Strings::loadFile(filename));
     auto instrument = parser.parseXML(NULL);
     peaksTestWS->populateInstrumentParameters();
     peaksTestWS->setInstrument(instrument);
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadSpiceAsciiTest.h b/Code/Mantid/Framework/DataHandling/test/LoadSpiceAsciiTest.h
index eb39481e7cd534501f61d8e1a571a54ef73fdfae..336bc5c0c1aef13cc10b5cc9970f0e41dd4a0c45 100644
--- a/Code/Mantid/Framework/DataHandling/test/LoadSpiceAsciiTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/LoadSpiceAsciiTest.h
@@ -3,6 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidDataHandling/LoadSpiceAscii.h"
 
 using Mantid::DataHandling::LoadSpiceAscii;
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadSpiceXML2DDetTest.h b/Code/Mantid/Framework/DataHandling/test/LoadSpiceXML2DDetTest.h
index 9f6a8781516de09227cdff2d1d418c21a08a0f5f..055090fee2957c7f7b79a74e01e30f0302a4451e 100644
--- a/Code/Mantid/Framework/DataHandling/test/LoadSpiceXML2DDetTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/LoadSpiceXML2DDetTest.h
@@ -359,6 +359,86 @@ public:
     AnalysisDataService::Instance().remove("Exp0335_S0038B");
     AnalysisDataService::Instance().remove("Exp0335_S0038");
   }
+
+
+  void test_LoadHB3AXMLInstrumentNoTable()
+  {
+    // Test 2theta = 15 degree
+    LoadSpiceXML2DDet loader;
+    loader.initialize();
+
+    const std::string filename("HB3A_exp355_scan0001_0522.xml");
+    TS_ASSERT_THROWS_NOTHING(loader.setProperty("Filename", filename));
+    TS_ASSERT_THROWS_NOTHING(
+          loader.setProperty("OutputWorkspace", "Exp0335_S0038"));
+    std::vector<size_t> sizelist(2);
+    sizelist[0] = 256;
+    sizelist[1] = 256;
+    loader.setProperty("DetectorGeometry", sizelist);
+    loader.setProperty("LoadInstrument", true);
+
+    loader.execute();
+    TS_ASSERT(loader.isExecuted());
+
+    // Get data
+    MatrixWorkspace_sptr outws = boost::dynamic_pointer_cast<MatrixWorkspace>(
+          AnalysisDataService::Instance().retrieve("Exp0335_S0038"));
+    TS_ASSERT(outws);
+    TS_ASSERT_EQUALS(outws->getNumberHistograms(), 256 * 256);
+
+    // Value
+    TS_ASSERT_DELTA(outws->readY(255)[0], 1.0, 0.0001);
+    TS_ASSERT_DELTA(outws->readY(253 * 256 + 9)[0], 1.0, 0.00001);
+
+    // Instrument
+    TS_ASSERT(outws->getInstrument());
+
+    Kernel::V3D source = outws->getInstrument()->getSource()->getPos();
+    Kernel::V3D sample = outws->getInstrument()->getSample()->getPos();
+    Kernel::V3D det0pos = outws->getDetector(0)->getPos();
+    Kernel::V3D det255pos = outws->getDetector(255)->getPos();
+    Kernel::V3D detlast0 = outws->getDetector(256 * 255)->getPos();
+    Kernel::V3D detlast = outws->getDetector(256 * 256 - 1)->getPos();
+    Kernel::V3D detmiddle =
+        outws->getDetector(256 / 2 * 256 + 256 / 2)->getPos();
+    Kernel::V3D detedgemiddle = outws->getDetector(256 * 256 / 2)->getPos();
+    std::cout << "\n";
+    std::cout << "Sample position: " << sample.X() << ", " << sample.Y() << ", "
+              << sample.Z() << "\n";
+    std::cout << "Source position: " << source.X() << ", " << source.Y() << ", "
+              << source.Z() << "\n";
+    std::cout << "Det Edge Middle: " << detedgemiddle.X() << ", "
+              << detedgemiddle.Y() << ", " << detedgemiddle.Z() << "\n";
+    std::cout << "Det (1, 1)     : " << det0pos.X() << ", " << det0pos.Y()
+              << ", " << det0pos.Z() << "\n";
+
+    // center of the detector must be negative
+    TS_ASSERT_LESS_THAN(detmiddle.X(), 0.0);
+
+    // detector distance
+    double dist0 = sample.distance(det0pos);
+    double dist255 = sample.distance(det255pos);
+    double distlast = sample.distance(detlast);
+    double distlast0 = sample.distance(detlast0);
+    double distmiddle = sample.distance(detmiddle);
+
+    TS_ASSERT_DELTA(dist0, dist255, 0.0001);
+    TS_ASSERT_DELTA(dist0, distlast, 0.0001);
+    TS_ASSERT_DELTA(dist0, distlast0, 0.0001);
+    TS_ASSERT_DELTA(distmiddle, 0.3518, 0.000001);
+
+    // 2theta value
+    Kernel::V3D sample_source = sample - source;
+    std::cout << "Sample - Source = " << sample_source.X() << ", "
+              << sample_source.Y() << ", " << sample_source.Z() << "\n";
+
+
+    Kernel::V3D detmid_sample = detmiddle - sample;
+    double twotheta_middle =
+        detmid_sample.angle(sample_source) * 180. / 3.1415926;
+    TS_ASSERT_DELTA(twotheta_middle, 42.70975, 0.02);
+  }
+
 };
 
 #endif /* MANTID_DATAHANDLING_LOADSPICEXML2DDETTEST_H_ */
diff --git a/Code/Mantid/Framework/DataHandling/test/PDLoadCharacterizationsTest.h b/Code/Mantid/Framework/DataHandling/test/PDLoadCharacterizationsTest.h
index 443ceafa6aeb3fe855c4b605649c9ce00a4e789c..5f31b08f280381130370c71cd097934d6527b548 100644
--- a/Code/Mantid/Framework/DataHandling/test/PDLoadCharacterizationsTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/PDLoadCharacterizationsTest.h
@@ -4,6 +4,8 @@
 #include <boost/shared_ptr.hpp>
 #include <cxxtest/TestSuite.h>
 
+#include "MantidAPI/ITableWorkspace.h"
+
 #include "MantidDataHandling/PDLoadCharacterizations.h"
 using Mantid::API::ITableWorkspace;
 using Mantid::API::ITableWorkspace_sptr;
diff --git a/Code/Mantid/Framework/DataHandling/test/SaveDiffCalTest.h b/Code/Mantid/Framework/DataHandling/test/SaveDiffCalTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..5d31f188aa2c02bbbe2c45ee18e510019607d2b9
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/test/SaveDiffCalTest.h
@@ -0,0 +1,137 @@
+#ifndef MANTID_DATAHANDLING_SAVEDIFFCALTEST_H_
+#define MANTID_DATAHANDLING_SAVEDIFFCALTEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include <Poco/File.h>
+
+#include "MantidAPI/TableRow.h"
+#include "MantidDataHandling/SaveDiffCal.h"
+#include "MantidDataObjects/MaskWorkspace.h"
+#include "MantidDataObjects/GroupingWorkspace.h"
+#include "MantidDataObjects/TableWorkspace.h"
+#include "MantidTestHelpers/ComponentCreationHelper.h"
+
+using Mantid::DataHandling::SaveDiffCal;
+using namespace Mantid::API;
+using namespace Mantid::DataObjects;
+using namespace Mantid::Geometry;
+using namespace Mantid::DataHandling;
+
+namespace {
+const size_t NUM_BANK = 5;
+const std::string FILENAME="SaveDiffCalTest.h5";
+}
+
+class SaveDiffCalTest : 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 SaveDiffCalTest *createSuite() { return new SaveDiffCalTest(); }
+  static void destroySuite( SaveDiffCalTest *suite ) { delete suite; }
+
+
+  void test_Init()
+  {
+    SaveDiffCal alg;
+    TS_ASSERT_THROWS_NOTHING( alg.initialize() );
+    TS_ASSERT( alg.isInitialized() );
+  }
+
+  Instrument_sptr createInstrument() {
+      return ComponentCreationHelper::createTestInstrumentCylindrical(NUM_BANK, false);
+  }
+
+  GroupingWorkspace_sptr createGrouping(Instrument_sptr instr) {
+      GroupingWorkspace_sptr groupWS = boost::make_shared<GroupingWorkspace>(instr);
+      groupWS->setValue(1, 12);
+      groupWS->setValue(2, 23);
+      groupWS->setValue(3, 45);
+      return groupWS;
+  }
+
+  MaskWorkspace_sptr createMasking(Instrument_sptr instr) {
+      MaskWorkspace_sptr maskWS = boost::make_shared<MaskWorkspace>(instr);
+      maskWS->maskWorkspaceIndex(0);
+      return maskWS;
+  }
+
+  TableWorkspace_sptr createCalibration(const size_t numRows) {
+      TableWorkspace_sptr wksp = boost::make_shared<TableWorkspace>();
+      wksp->addColumn("int", "detid");
+      wksp->addColumn("double", "difc");
+      wksp->addColumn("double", "difa");
+      wksp->addColumn("double", "tzero");
+
+      for (size_t i=0; i<numRows; ++i) {
+          TableRow row = wksp->appendRow();
+
+          row << static_cast<int>(i) // detid
+              << 0. // difc
+              << 0. // difa
+              << 0.; // tzero
+      }
+      return wksp;
+  }
+
+  void test_no_cal_wksp() {
+    Instrument_sptr inst = createInstrument();
+    GroupingWorkspace_sptr groupWS = createGrouping(inst);
+    MaskWorkspace_sptr maskWS = createMasking(inst);
+
+    SaveDiffCal alg;
+    TS_ASSERT_THROWS_NOTHING( alg.initialize() );
+    TS_ASSERT( alg.isInitialized() );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("GroupingWorkspace", groupWS) );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("MaskWorkspace", maskWS) );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("Filename", FILENAME) );
+    TS_ASSERT_THROWS( alg.execute(), std::runtime_error );
+    TS_ASSERT( !alg.isExecuted() );
+  }
+
+  void test_empty_cal_wksp() {
+    Instrument_sptr inst = createInstrument();
+    GroupingWorkspace_sptr groupWS = createGrouping(inst);
+    MaskWorkspace_sptr maskWS = createMasking(inst);
+    TableWorkspace_sptr calWS = createCalibration(0);
+
+    SaveDiffCal alg;
+    TS_ASSERT_THROWS_NOTHING( alg.initialize() );
+    TS_ASSERT( alg.isInitialized() );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("GroupingWorkspace", groupWS) );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("MaskWorkspace", maskWS) );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("Filename", FILENAME) );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("CalibrationWorkspace", calWS));
+    TS_ASSERT_THROWS( alg.execute(), std::runtime_error );
+    TS_ASSERT( !alg.isExecuted() );
+  }
+
+  void test_exec()
+  {
+    Instrument_sptr inst = createInstrument();
+    GroupingWorkspace_sptr groupWS = createGrouping(inst);
+    MaskWorkspace_sptr maskWS = createMasking(inst);
+    TableWorkspace_sptr calWS = createCalibration(NUM_BANK*9); // nine components per bank
+
+    SaveDiffCal alg;
+    TS_ASSERT_THROWS_NOTHING( alg.initialize() );
+    TS_ASSERT( alg.isInitialized() );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("GroupingWorkspace", groupWS) );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("MaskWorkspace", maskWS) );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("Filename", FILENAME) );
+    TS_ASSERT_THROWS_NOTHING( alg.setProperty("CalibrationWorkspace", calWS));
+    TS_ASSERT_THROWS_NOTHING( alg.execute(); );
+    TS_ASSERT( alg.isExecuted() );
+
+    // confirm that it exists
+    std::string filename = alg.getPropertyValue("Filename");
+    TS_ASSERT( Poco::File(filename).exists() );
+
+    // cleanup
+    if (Poco::File(filename).exists())
+      Poco::File(filename).remove();
+  }
+
+};
+
+
+#endif /* MANTID_DATAHANDLING_SAVEDIFFCALTEST_H_ */
diff --git a/Code/Mantid/Framework/DataHandling/test/SaveReflTBLTest.h b/Code/Mantid/Framework/DataHandling/test/SaveReflTBLTest.h
index e9f376d78cfa3782139191532501ad93120d060e..da5211180bdb57fcdcc40fd2bccf9ebfc5fc0e72 100644
--- a/Code/Mantid/Framework/DataHandling/test/SaveReflTBLTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/SaveReflTBLTest.h
@@ -6,6 +6,7 @@
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/AlgorithmManager.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include <fstream>
 #include <Poco/File.h>
diff --git a/Code/Mantid/Framework/DataHandling/test/SetSampleMaterialTest.h b/Code/Mantid/Framework/DataHandling/test/SetSampleMaterialTest.h
index 2acae0e8b23ea83b2ccfb3a04d7b14c211149126..8254569fc531afc2f9d9019a5cf7a88a33369d2a 100644
--- a/Code/Mantid/Framework/DataHandling/test/SetSampleMaterialTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/SetSampleMaterialTest.h
@@ -54,9 +54,9 @@ public:
 
 	  TS_ASSERT_THROWS_NOTHING( setmat->setPropertyValue("InputWorkspace", wsName) );
     TS_ASSERT_THROWS_NOTHING( setmat->setPropertyValue("ChemicalFormula","Al2-O3") );
-    TS_ASSERT_THROWS_NOTHING( setmat->setPropertyValue("SampleNumberDensity","0.0236649") );
-    TS_ASSERT_THROWS_NOTHING( setmat->setPropertyValue("ScatteringXSection","15.7048") );
-    TS_ASSERT_THROWS_NOTHING( setmat->setPropertyValue("AttenuationXSection","0.46257") );
+    TS_ASSERT_THROWS_NOTHING( setmat->setPropertyValue("SampleNumberDensity","0.1183245") );
+    TS_ASSERT_THROWS_NOTHING( setmat->setPropertyValue("ScatteringXSection","3.1404") );
+    TS_ASSERT_THROWS_NOTHING( setmat->setPropertyValue("AttenuationXSection","0.0925") );
     TS_ASSERT_THROWS_NOTHING( setmat->execute() );
     TS_ASSERT( setmat->isExecuted() );
 
@@ -70,9 +70,9 @@ public:
 
 	//can get away with holding pointer as it is an inout ws property
     const Material *m_sampleMaterial = &(testWS->sample().getMaterial());
-    TS_ASSERT_DELTA( m_sampleMaterial->numberDensity(), 0.0236649, 0.0001 );
-    TS_ASSERT_DELTA( m_sampleMaterial->totalScatterXSection(NeutronAtom::ReferenceLambda), 15.7048, 0.0001);
-    TS_ASSERT_DELTA( m_sampleMaterial->absorbXSection(NeutronAtom::ReferenceLambda), 0.46257, 0.0001);
+    TS_ASSERT_DELTA( m_sampleMaterial->numberDensity(), 0.1183245, 0.0001 );
+    TS_ASSERT_DELTA( m_sampleMaterial->totalScatterXSection(NeutronAtom::ReferenceLambda), 3.1404, 0.0001);
+    TS_ASSERT_DELTA( m_sampleMaterial->absorbXSection(NeutronAtom::ReferenceLambda), 0.0925, 0.0001);
 
     checkOutputProperties(setmat,m_sampleMaterial);
 
@@ -102,7 +102,7 @@ public:
     TS_ASSERT( setmat->isExecuted() );
 
     const Material *m_sampleMaterial = &(testWS->sample().getMaterial());
-    TS_ASSERT_DELTA( m_sampleMaterial->numberDensity(), 0.0236649, 0.0001 );
+    TS_ASSERT_DELTA( m_sampleMaterial->numberDensity(), 0.1183245, 0.0001 );
     TS_ASSERT_DELTA( m_sampleMaterial->totalScatterXSection(NeutronAtom::ReferenceLambda), 3.1404, 0.0001);
     TS_ASSERT_DELTA( m_sampleMaterial->absorbXSection(NeutronAtom::ReferenceLambda), 0.0925, 0.0001);
 	  
diff --git a/Code/Mantid/Framework/DataHandling/test/SortTableWorkspaceTest.h b/Code/Mantid/Framework/DataHandling/test/SortTableWorkspaceTest.h
index 168ed1394d24d5bc309b851276cb50e7348a28dc..210e035f838700f4d8aff3ab4e366783a5120d7d 100644
--- a/Code/Mantid/Framework/DataHandling/test/SortTableWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/SortTableWorkspaceTest.h
@@ -5,6 +5,7 @@
 
 #include "MantidDataHandling/SortTableWorkspace.h"
 #include "MantidAPI/WorkspaceFactory.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidDataObjects/TableColumn.h"
 
@@ -558,4 +559,4 @@ public:
 };
 
 
-#endif /* MANTID_DATAHANDLING_SORTTABLEWORKSPACETEST_H_ */
\ No newline at end of file
+#endif /* MANTID_DATAHANDLING_SORTTABLEWORKSPACETEST_H_ */
diff --git a/Code/Mantid/Framework/DataObjects/CMakeLists.txt b/Code/Mantid/Framework/DataObjects/CMakeLists.txt
index 734324adf0aaf055e8673074407ac2254a7a1eca..6477f48430ed37cc703e2e4a35204c3e13883145 100644
--- a/Code/Mantid/Framework/DataObjects/CMakeLists.txt
+++ b/Code/Mantid/Framework/DataObjects/CMakeLists.txt
@@ -13,6 +13,7 @@ set ( SRC_FILES
 	src/EventWorkspaceMRU.cpp
 	src/Events.cpp
 	src/FakeMD.cpp
+	src/FractionalRebinning.cpp
 	src/GroupingWorkspace.cpp
 	src/Histogram1D.cpp
 	src/MDBin.cpp
@@ -41,6 +42,7 @@ set ( SRC_FILES
 	src/PeakShapeSphericalFactory.cpp
 	src/PeaksWorkspace.cpp
 	src/RebinnedOutput.cpp
+	src/ReflectometryTransform.cpp
 	src/SpecialWorkspace2D.cpp
 	src/SplittersWorkspace.cpp
 	src/TableColumn.cpp
@@ -60,6 +62,8 @@ set ( INC_FILES
 	inc/MantidDataObjects/AffineMatrixParameter.h
 	inc/MantidDataObjects/AffineMatrixParameterParser.h
 	inc/MantidDataObjects/BoxControllerNeXusIO.h
+	inc/MantidDataObjects/CalculateReflectometry.h
+	inc/MantidDataObjects/CalculateReflectometryQxQz.h
 	inc/MantidDataObjects/CoordTransformAffine.h
 	inc/MantidDataObjects/CoordTransformAffineParser.h
 	inc/MantidDataObjects/CoordTransformAligned.h
@@ -72,6 +76,7 @@ set ( INC_FILES
 	inc/MantidDataObjects/EventWorkspaceMRU.h
 	inc/MantidDataObjects/Events.h
 	inc/MantidDataObjects/FakeMD.h
+	inc/MantidDataObjects/FractionalRebinning.h
 	inc/MantidDataObjects/GroupingWorkspace.h
 	inc/MantidDataObjects/Histogram1D.h
 	inc/MantidDataObjects/MDBin.h
@@ -103,6 +108,7 @@ set ( INC_FILES
 	inc/MantidDataObjects/PeakShapeSphericalFactory.h
 	inc/MantidDataObjects/PeaksWorkspace.h
 	inc/MantidDataObjects/RebinnedOutput.h
+	inc/MantidDataObjects/ReflectometryTransform.h
 	inc/MantidDataObjects/SpecialWorkspace2D.h
 	inc/MantidDataObjects/SplittersWorkspace.h
 	inc/MantidDataObjects/TableColumn.h
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/CalculateReflectometry.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/CalculateReflectometry.h
new file mode 100644
index 0000000000000000000000000000000000000000..ab8e22e7f318c59d57607d6ac02ef1e9dd5ed168
--- /dev/null
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/CalculateReflectometry.h
@@ -0,0 +1,52 @@
+#ifndef MANTID_DATAOBJECTS_CALCULATEREFLECTOMETRY_H_
+#define MANTID_DATAOBJECTS_CALCULATEREFLECTOMETRY_H_
+
+#include <cmath>
+
+namespace Mantid {
+namespace DataObjects {
+
+/**
+ * Provides a common interface to Reflectometry Transform calculators.
+ */
+class CalculateReflectometry {
+
+protected:
+  const double to_radians_factor;
+
+public:
+  /**
+   Constructor
+   */
+  CalculateReflectometry() : to_radians_factor(M_PI / 180.0) {}
+
+  virtual ~CalculateReflectometry() {}
+
+  /**
+   Setter for the final theta value require for the calculation.
+   @param thetaIncident: final theta value in degrees
+   */
+  virtual void setThetaIncident(double thetaIncident) = 0;
+
+  /**
+   Setter for the final theta value require for the calculation.
+   @param thetaFinal: final theta value in degrees
+   */
+  virtual void setThetaFinal(double thetaFinal) = 0;
+
+  /**
+   Executes the calculation on dimension 0
+   @param wavelength : wavelength in Angstroms
+   */
+  virtual double calculateDim0(double wavelength) const = 0;
+
+  /**
+   Executes the calculation on dimension 1
+   @param wavelength : wavelength in Angstroms
+   */
+  virtual double calculateDim1(double wavelength) const = 0;
+};
+}
+}
+
+#endif
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/CalculateReflectometryQxQz.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/CalculateReflectometryQxQz.h
new file mode 100644
index 0000000000000000000000000000000000000000..917515fc4dc84671cfffc0d6ebd1bd76b1567572
--- /dev/null
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/CalculateReflectometryQxQz.h
@@ -0,0 +1,71 @@
+#ifndef MANTID_DATAOBJECTS_CALCULATEREFLECTOMETRYQXQZ_H_
+#define MANTID_DATAOBJECTS_CALCULATEREFLECTOMETRYQXQZ_H_
+
+#include "MantidDataObjects/CalculateReflectometry.h"
+
+#include <cmath>
+
+namespace Mantid {
+namespace DataObjects {
+
+/**
+ Converts from inputs of wavelength, incident theta and final theta to Qx and Qz
+ for reflectometry experiments
+ */
+class CalculateReflectometryQxQz : public CalculateReflectometry {
+private:
+  double m_cos_theta_i;
+  double m_sin_theta_i;
+  double m_dirQx;
+  double m_dirQz;
+
+public:
+  /**
+   Constructor
+   */
+  CalculateReflectometryQxQz() : m_dirQx(0.0), m_dirQz(0.0) {}
+
+  /**
+   Setter for the incident theta value require for the calculation. Internally
+   pre-calculates and caches to cos theta for speed.
+   @param thetaIncident: incident theta value in degrees
+   */
+  void setThetaIncident(double thetaIncident) {
+    m_cos_theta_i = cos(thetaIncident * to_radians_factor);
+    m_sin_theta_i = sin(thetaIncident * to_radians_factor);
+  }
+
+  /**
+   Setter for the final theta value require for the calculation. Internally
+   pre-calculates and caches to cos theta for speed.
+   @param thetaFinal: final theta value in degrees
+   */
+  void setThetaFinal(double thetaFinal) {
+    const double c_cos_theta_f = cos(thetaFinal * to_radians_factor);
+    m_dirQx = (c_cos_theta_f - m_cos_theta_i);
+    const double c_sin_theta_f = sin(thetaFinal * to_radians_factor);
+    m_dirQz = (c_sin_theta_f + m_sin_theta_i);
+  }
+
+  /**
+   Executes the calculation to determine Qx
+   @param wavelength : wavelenght in Anstroms
+   */
+  double calculateDim0(double wavelength) const {
+    double wavenumber = 2 * M_PI / wavelength;
+    return wavenumber * m_dirQx;
+  }
+
+  /**
+   Executes the calculation to determine Qz
+   @param wavelength : wavelenght in Anstroms
+   */
+  double calculateDim1(double wavelength) const {
+    double wavenumber = 2 * M_PI / wavelength;
+    return wavenumber * m_dirQz;
+  }
+};
+}
+}
+
+#endif
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventList.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventList.h
index 0c16806908022819d49dfd48c11bc886c14f1136..cf9dc85395dad619c619db78512435595d2a238b 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventList.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventList.h
@@ -5,14 +5,13 @@
 #include <time.h>
 #endif
 #include "MantidAPI/IEventList.h"
-#include "MantidAPI/IEventWorkspace.h" // get EventType declaration
-#include "MantidAPI/MatrixWorkspace.h" // get MantidVec declaration
 #include "MantidDataObjects/Events.h"
 #include "MantidDataObjects/EventWorkspaceMRU.h"
 #include "MantidKernel/cow_ptr.h"
 #include "MantidKernel/DateAndTime.h"
 #include "MantidKernel/System.h"
 #include "MantidKernel/TimeSplitter.h"
+#include "MantidKernel/Unit.h"
 #include <cstddef>
 #include <iosfwd>
 #include <set>
@@ -274,6 +273,8 @@ public:
   double integrate(const double minX, const double maxX,
                    const bool entireRange) const;
 
+  void convertTof(std::function<double(double)> func, const int sorting = 0);
+
   void convertTof(const double factor, const double offset = 0.);
 
   void scaleTof(const double factor);
@@ -431,6 +432,9 @@ private:
   template <class T>
   static double integrateHelper(std::vector<T> &events, const double minX,
                                 const double maxX, const bool entireRange);
+  template <class T>
+  void convertTofHelper(std::vector<T> &events, std::function<double(double)> func);
+
   template <class T>
   void convertTofHelper(std::vector<T> &events, const double factor,
                         const double offset);
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventWorkspace.h
index 03af3873e45b389d6634eb447d26c934a1c07f0c..b11042b30c7e95d9d780134f93a8b9c23d365d7c 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventWorkspace.h
@@ -47,6 +47,11 @@ public:
   // Destructor
   virtual ~EventWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<EventWorkspace> clone() const {
+    return std::unique_ptr<EventWorkspace>(doClone());
+  }
+
   // Initialize the pixels
   void init(const std::size_t &, const std::size_t &, const std::size_t &);
 
@@ -67,7 +72,7 @@ public:
   size_t getMemorySize() const;
 
   // Get the number of histograms. aka the number of pixels or detectors.
-  std::size_t getNumberHistograms() const;
+  virtual std::size_t getNumberHistograms() const;
 
   //------------------------------------------------------------
   // Return the underlying ISpectrum ptr at the given workspace index.
@@ -135,33 +140,33 @@ public:
 
   //------------------------------------------------------------
   // Set the x-axis data (histogram bins) for all pixels
-  void setAllX(Kernel::cow_ptr<MantidVec> &x);
+  virtual void setAllX(Kernel::cow_ptr<MantidVec> &x);
 
   // Get an EventList object at the given workspace index number
-  EventList &getEventList(const std::size_t workspace_index);
+  virtual EventList &getEventList(const std::size_t workspace_index);
 
   // Get a const EventList object at the given workspace index number
-  const EventList &getEventList(const std::size_t workspace_index) const;
+  virtual const EventList &getEventList(const std::size_t workspace_index) const;
 
   // Get an EventList pointer at the given workspace index number
-  EventList *getEventListPtr(const std::size_t workspace_index);
+  virtual EventList *getEventListPtr(const std::size_t workspace_index);
 
   // Get or add an EventList
   EventList &getOrAddEventList(const std::size_t workspace_index);
 
   // Resizes the workspace to contain the number of spectra/event lists given
-  void resizeTo(const std::size_t numSpectra);
+  virtual void resizeTo(const std::size_t numSpectra);
   // Pad pixels in the workspace using the loaded spectra. Requires a non-empty
   // spectra-detector map
   void padSpectra();
   // Pad pixels in the workspace using specList. Requires a non-empty vector
-  void padSpectra(const std::vector<int32_t> &specList);
+  virtual void padSpectra(const std::vector<int32_t> &specList);
   // Remove pixels in the workspace that do not contain events.
   void deleteEmptyLists();
 
   //------------------------------------------------------------
   // The total number of events across all of the spectra.
-  std::size_t getNumberEvents() const;
+  virtual std::size_t getNumberEvents() const;
 
   // Type of the events
   Mantid::API::EventType getEventType() const;
@@ -189,11 +194,14 @@ public:
                                     const double maxX,
                                     const bool entireRange) const;
 
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  EventWorkspace(const EventWorkspace &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  EventWorkspace &operator=(const EventWorkspace &other);
+
 private:
-  /// NO COPY ALLOWED
-  EventWorkspace(const EventWorkspace &);
-  /// NO ASSIGNMENT ALLOWED
-  EventWorkspace &operator=(const EventWorkspace &);
+  virtual EventWorkspace *doClone() const { return new EventWorkspace(*this); }
 
   /** A vector that holds the event list for each spectrum; the key is
    * the workspace index, which is not necessarily the pixelid.
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventWorkspaceHelpers.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventWorkspaceHelpers.h
index b20941c954415700352396f7cd557821a4b8e671..2cf17e6130eb2d4c90518f262b5c87985cd463cb 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventWorkspaceHelpers.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/EventWorkspaceHelpers.h
@@ -2,7 +2,7 @@
 #define EVENTWORKSPACEHELPERS_H_
 
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace DataObjects {
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/Events.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/Events.h
index 452714f0ea55af03f4610cc09305ab15543c82a0..2a5135bce25547912d020c14f1b42984a2e95a79 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/Events.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/Events.h
@@ -7,7 +7,7 @@
 #include <cstddef>
 #include <iosfwd>
 #include <vector>
-#include "MantidAPI/MatrixWorkspace.h" // get MantidVec declaration
+#include "MantidAPI/MatrixWorkspace_fwd.h" // get MantidVec declaration
 #include "MantidKernel/cow_ptr.h"
 #include "MantidKernel/System.h"
 #include "MantidKernel/DateAndTime.h"
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/FractionalRebinning.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/FractionalRebinning.h
new file mode 100644
index 0000000000000000000000000000000000000000..be326ee294465e3113f20b734197a8edabae07e4
--- /dev/null
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/FractionalRebinning.h
@@ -0,0 +1,87 @@
+#ifndef MANTID_DATAOBJECTS_FRACTIONALREBINNING_
+#define MANTID_DATAOBJECTS_FRACTIONALREBINNING_
+
+//------------------------------------------------------------------------------
+// Includes
+//------------------------------------------------------------------------------
+#include "MantidDataObjects/DllConfig.h"
+#include "MantidGeometry/Math/Quadrilateral.h"
+#include "MantidDataObjects/RebinnedOutput.h"
+
+namespace Mantid {
+//------------------------------------------------------------------------------
+// Forward declarations
+//------------------------------------------------------------------------------
+namespace API {
+class Progress;
+}
+namespace Geometry {
+class ConvexPolygon;
+}
+
+namespace DataObjects {
+
+/**
+FractionalRebinning helper functionality, used by the Rebin2D algorithm.
+
+@author Harry Jeffery
+
+Copyright &copy; 2011 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>
+*/
+
+namespace FractionalRebinning {
+
+/// Find the intersect region on the output grid
+MANTID_DATAOBJECTS_DLL bool
+getIntersectionRegion(API::MatrixWorkspace_const_sptr outputWS,
+                      const std::vector<double> &verticalAxis,
+                      const Geometry::Quadrilateral &inputQ, size_t &qstart,
+                      size_t &qend, size_t &en_start, size_t &en_end);
+
+/// Compute sqrt of errors and put back in bin width division if necessary
+MANTID_DATAOBJECTS_DLL void
+normaliseOutput(API::MatrixWorkspace_sptr outputWS,
+                API::MatrixWorkspace_const_sptr inputWS,
+                boost::shared_ptr<API::Progress> progress =
+                    boost::shared_ptr<API::Progress>());
+
+/// Rebin the input quadrilateral to to output grid
+MANTID_DATAOBJECTS_DLL void
+rebinToOutput(const Geometry::Quadrilateral &inputQ,
+              API::MatrixWorkspace_const_sptr inputWS, const size_t i,
+              const size_t j, API::MatrixWorkspace_sptr outputWS,
+              const std::vector<double> &verticalAxis);
+
+/// Rebin the input quadrilateral to to output grid
+MANTID_DATAOBJECTS_DLL void
+rebinToFractionalOutput(const Geometry::Quadrilateral &inputQ,
+                        API::MatrixWorkspace_const_sptr inputWS, const size_t i,
+                        const size_t j,
+                        DataObjects::RebinnedOutput_sptr outputWS,
+                        const std::vector<double> &verticalAxis);
+
+} // namespace FractionalRebinning
+
+} // namespace DataObjects
+} // namespace Mantid
+
+#endif
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/GroupingWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/GroupingWorkspace.h
index 3e141168942a02c099b63f54a1de6655c571711a..968cf37b320bf308165fd0611cdba2eb643def67 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/GroupingWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/GroupingWorkspace.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_DATAOBJECTS_GROUPINGWORKSPACE_H_
 #define MANTID_DATAOBJECTS_GROUPINGWORKSPACE_H_
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/SpecialWorkspace2D.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidKernel/System.h"
@@ -25,6 +25,11 @@ public:
   GroupingWorkspace(size_t numvectors);
   ~GroupingWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<GroupingWorkspace> clone() const {
+    return std::unique_ptr<GroupingWorkspace>(doClone());
+  }
+
   /** Gets the name of the workspace type
   @return Standard string name  */
   virtual const std::string id() const { return "GroupingWorkspace"; }
@@ -34,11 +39,17 @@ public:
   void makeDetectorIDToGroupVector(std::vector<int> &detIDToGroup,
                                    int64_t &ngroups) const;
 
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  GroupingWorkspace(const GroupingWorkspace &other)
+      : SpecialWorkspace2D(other) {}
+  /// Protected copy assignment operator. Assignment not implemented.
+  GroupingWorkspace &operator=(const GroupingWorkspace &other);
+
 private:
-  /// Private copy constructor. NO COPY ALLOWED
-  GroupingWorkspace(const GroupingWorkspace &);
-  /// Private copy assignment operator. NO ASSIGNMENT ALLOWED
-  GroupingWorkspace &operator=(const GroupingWorkspace &);
+  virtual GroupingWorkspace *doClone() const {
+    return new GroupingWorkspace(*this);
+  }
 };
 
 /// shared pointer to the GroupingWorkspace class
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDBox.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDBox.h
index b0e9731b1786dca5e0f6879654cda2d2e5f10b7c..c4cd76d7e5544ca572aca3224c15ec3304a4594b 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDBox.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDBox.h
@@ -169,6 +169,7 @@ public:
    * coordinates */
   void refreshCache(Kernel::ThreadScheduler * /*ts*/ = NULL);
   void calculateCentroid(coord_t *centroid) const;
+  void calculateCentroid(coord_t *centroid, const int runindex) const;
   coord_t *getCentroid() const;
   void calculateDimensionStats(MDDimensionStats *stats) const;
   void integrateSphere(Mantid::API::CoordTransform &radiusTransform,
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDEventFactory.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDEventFactory.h
index 0b1e1af51f4af3e9182428701ecf5c426929d8b6..ed449357da9320dcf3a5fdb3bd7ae34460720d3f 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDEventFactory.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDEventFactory.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_DATAOBJECTS_MDEVENTFACTORY_H_
 #define MANTID_DATAOBJECTS_MDEVENTFACTORY_H_
 
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 
 #include "MantidDataObjects/MDBin.h"
 #include "MantidDataObjects/MDEvent.h"
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDEventWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDEventWorkspace.h
index 7aa12bd47f0dcda39112e843c59c6e928fb3cd80..50adc6e03b80e802bec95cb242673a33de7bdc03 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDEventWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDEventWorkspace.h
@@ -11,7 +11,7 @@
 #include "MantidDataObjects/MDLeanEvent.h"
 #include "MantidDataObjects/MDGridBox.h"
 #include "MantidDataObjects/MDHistoWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidAPI/IMDIterator.h"
 
 namespace Mantid {
@@ -40,9 +40,13 @@ public:
   typedef MDE MDEventType;
 
   MDEventWorkspace();
-  MDEventWorkspace(const MDEventWorkspace<MDE, nd> &other);
   virtual ~MDEventWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<MDEventWorkspace> clone() const {
+    return std::unique_ptr<MDEventWorkspace>(doClone());
+  }
+
   /// Perform initialization after dimensions (and others) have been set.
   virtual void initialize();
 
@@ -166,6 +170,19 @@ public:
   virtual Mantid::API::MDNormalization displayNormalization() const;
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  MDEventWorkspace(const MDEventWorkspace<MDE, nd> &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  /// Windows Visual Studio 2012 has trouble with declaration without definition
+  /// so we provide one that throws an error. This seems template related.
+  /// TODO: clean this up.
+  MDEventWorkspace<MDE, nd> &operator=(const MDEventWorkspace<MDE, nd> &other) {
+    throw std::runtime_error("MDEventWorkspace::operator= not implemented.");
+    // this codepath should never be reached, prevent unused parameter warning:
+    setTitle(other.getTitle());
+    return *this;
+  }
+
   /** MDBox containing all of the events in the workspace. */
   MDBoxBase<MDE, nd> *data;
 
@@ -173,6 +190,10 @@ protected:
   API::BoxController_sptr m_BoxController;
   // boost::shared_ptr<BoxCtrlChangesList > m_BoxController;
 private:
+  virtual MDEventWorkspace *doClone() const {
+    return new MDEventWorkspace(*this);
+  }
+
   Kernel::SpecialCoordinateSystem m_coordSystem;
 };
 
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDGridBox.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDGridBox.h
index a96da012e77dda87bc4aba639aa112763b9f24f9..22d3eb6296d7869ab2365fb8824f5e502eb9cf84 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDGridBox.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDGridBox.h
@@ -186,6 +186,13 @@ public:
                              "(as its meaning for MDbox is dubious too)"));
   }
   //-------------------------------------------------------------------------
+  /** The function used to satisfy IMDNode interface but the physical meaning is
+   * unclear */
+  void calculateCentroid(coord_t * /*centroid*/, const int /*runindex*/) const {
+    throw(std::runtime_error("This function should not be called on MDGridBox "
+                             "(as its meaning for MDbox is dubious too)"));
+  }
+  //-------------------------------------------------------------------------
   /** The function used to satisfy IMDNode interface but the physical meaning is
    * unclear */
   coord_t *getCentroid() const {
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDHistoWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDHistoWorkspace.h
index d990b398465bdbfaa08bc6d849901a04c5811a7b..567c10f6b009b1df0f485e376a91607be42a43b4 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDHistoWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MDHistoWorkspace.h
@@ -47,10 +47,13 @@ public:
   MDHistoWorkspace(
       std::vector<Mantid::Geometry::IMDDimension_sptr> &dimensions);
 
-  MDHistoWorkspace(const MDHistoWorkspace &other);
-
   virtual ~MDHistoWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<MDHistoWorkspace> clone() const {
+    return std::unique_ptr<MDHistoWorkspace>(doClone());
+  }
+
   void init(std::vector<Mantid::Geometry::MDHistoDimension_sptr> &dimensions);
   void init(std::vector<Mantid::Geometry::IMDDimension_sptr> &dimensions);
 
@@ -378,13 +381,14 @@ public:
   /// Get the size of an element in the HistoWorkspace.
   static size_t sizeOfElement();
 
-  /// Virutal constructor.
-  boost::shared_ptr<IMDHistoWorkspace> clone() const;
-
   /// Preferred visual normalization method.
   virtual Mantid::API::MDNormalization displayNormalization() const;
 
 private:
+  virtual MDHistoWorkspace *doClone() const {
+    return new MDHistoWorkspace(*this);
+  }
+
   void initVertexesArray();
 
   /// Number of dimensions in this workspace
@@ -427,6 +431,11 @@ private:
   Kernel::SpecialCoordinateSystem m_coordSystem;
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  MDHistoWorkspace(const MDHistoWorkspace &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  MDHistoWorkspace &operator=(const MDHistoWorkspace &other);
+
   /// Linear array of masks for each bin
   bool *m_masks;
 };
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MaskWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MaskWorkspace.h
index 1f41dd8757e1e79a4bc359266e6284d2952d897d..b118982fdd98d0016683e4cfd6d8a81f570771ff 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MaskWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MaskWorkspace.h
@@ -2,7 +2,7 @@
 #define MANTID_DATAOBJECTS_MASKWORKSPACE_H
 
 #include "MantidAPI/IMaskWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/SpecialWorkspace2D.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidKernel/System.h"
@@ -20,6 +20,11 @@ public:
   MaskWorkspace(const API::MatrixWorkspace_const_sptr parent);
   ~MaskWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<MaskWorkspace> clone() const {
+    return std::unique_ptr<MaskWorkspace>(doClone());
+  }
+
   bool isMasked(const detid_t detectorID) const;
   bool isMasked(const std::set<detid_t> &detectorIDs) const;
   bool isMaskedIndex(const std::size_t wkspIndex) const;
@@ -36,15 +41,17 @@ public:
   virtual void copyFrom(boost::shared_ptr<const SpecialWorkspace2D> sourcews);
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  MaskWorkspace(const MaskWorkspace &other);
+
+  /// Protected copy assignment operator. Assignment not implemented.
+  MaskWorkspace &operator=(const MaskWorkspace &other);
+
   /// Return human-readable string
   virtual const std::string toString() const;
 
 private:
-  /// Private copy constructor. NO COPY ALLOWED
-  MaskWorkspace(const MaskWorkspace &);
-
-  /// Private copy assignment operator. NO ASSIGNMENT ALLOWED
-  MaskWorkspace &operator=(const MaskWorkspace &);
+  virtual MaskWorkspace *doClone() const { return new MaskWorkspace(*this); }
 
   /// Clear original incorrect mask
   void clearMask();
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MementoTableWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MementoTableWorkspace.h
index 883733ad9b9ea8ad6e80ada59f8614f31d122263..1c16ada485bb8a2427860d03149539bf13e39057 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MementoTableWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MementoTableWorkspace.h
@@ -40,7 +40,23 @@ public:
   MementoTableWorkspace(int nRows = 0);
   ~MementoTableWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<MementoTableWorkspace> clone() const {
+    return std::unique_ptr<MementoTableWorkspace>(doClone());
+  }
+
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  MementoTableWorkspace(const MementoTableWorkspace &other)
+      : TableWorkspace(other) {}
+  /// Protected copy assignment operator. Assignment not implemented.
+  MementoTableWorkspace &operator=(const MementoTableWorkspace &other);
+
 private:
+  virtual MementoTableWorkspace *doClone() const {
+    return new MementoTableWorkspace(*this);
+  }
+
   static bool expectedColumn(Mantid::API::Column_const_sptr expected,
                              Mantid::API::Column_const_sptr candidate);
 };
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/OffsetsWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/OffsetsWorkspace.h
index 36a3de45ee0275c6b69039de630811f5d457fd30..d1c7dd96eec20b4acd2378c9577fd264525ce796 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/OffsetsWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/OffsetsWorkspace.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_DATAOBJECTS_OFFSETSWORKSPACE_H_
 #define MANTID_DATAOBJECTS_OFFSETSWORKSPACE_H_
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/SpecialWorkspace2D.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidKernel/System.h"
@@ -22,15 +22,25 @@ public:
   OffsetsWorkspace(Geometry::Instrument_const_sptr inst);
   ~OffsetsWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<OffsetsWorkspace> clone() const {
+    return std::unique_ptr<OffsetsWorkspace>(doClone());
+  }
+
   /** Gets the name of the workspace type
   @return Standard string name  */
   virtual const std::string id() const { return "OffsetsWorkspace"; }
 
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  OffsetsWorkspace(const OffsetsWorkspace &other) : SpecialWorkspace2D(other) {}
+  /// Protected copy assignment operator. Assignment not implemented.
+  OffsetsWorkspace &operator=(const OffsetsWorkspace &other);
+
 private:
-  /// Private copy constructor. NO COPY ALLOWED
-  OffsetsWorkspace(const OffsetsWorkspace &);
-  /// Private copy assignment operator. NO ASSIGNMENT ALLOWED
-  OffsetsWorkspace &operator=(const OffsetsWorkspace &);
+  virtual OffsetsWorkspace *doClone() const {
+    return new OffsetsWorkspace(*this);
+  }
 };
 
 /// shared pointer to the OffsetsWorkspace class
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeakShapeBase.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeakShapeBase.h
index 74a52048775960e1069155e52a3b2e8f4593ed8c..4ca2a6d79f837a2566b7daa5e1ffaeb6bb9dcf92 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeakShapeBase.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeakShapeBase.h
@@ -52,6 +52,8 @@ public:
   std::string algorithmName() const;
   /// Get the version of the algorithm used to make this shape
   int algorithmVersion() const;
+  /// Radius
+  virtual double radius() const = 0;
 
 protected:
   /// Copy constructor
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeakShapeEllipsoid.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeakShapeEllipsoid.h
index 67c05c5c1ab64e1a02b121ead5e3e2c5edf65b09..1b097d46fcc19d728d1ca92dbaf6b0d281c9d64d 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeakShapeEllipsoid.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeakShapeEllipsoid.h
@@ -67,6 +67,9 @@ namespace DataObjects
     /// Get the peak shape
     std::string shapeName() const;
 
+    /// PeakBase interface
+    double radius() const;
+
     static const std::string ellipsoidShapeName();
 
   private:
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h
index 3714a44838e90616fe56fe7e84b5a97f765b5b6e..367adf120d48f6aa4a3321541b506290691fdfde 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/PeaksWorkspace.h
@@ -67,10 +67,6 @@ public:
 
   PeaksWorkspace();
 
-  PeaksWorkspace(const PeaksWorkspace &other);
-
-  PeaksWorkspace *clone() const;
-
   /** Get access to shared pointer containing workspace porperties. This
    function is there to provide common interface of iTableWorkspace
     * Despite it is non-constant method, one should be very carefull using it to
@@ -92,7 +88,10 @@ public:
 
   virtual ~PeaksWorkspace();
 
-  boost::shared_ptr<PeaksWorkspace> clone();
+  /// Returns a clone of the workspace
+  std::unique_ptr<PeaksWorkspace> clone() const {
+    return std::unique_ptr<PeaksWorkspace>(doClone());
+  }
 
   void appendFile(std::string filename, Geometry::Instrument_sptr inst);
 
@@ -181,7 +180,17 @@ public:
   // Save to Nexus
   void saveNexus(::NeXus::File *file) const;
 
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  PeaksWorkspace(const PeaksWorkspace &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  PeaksWorkspace &operator=(const PeaksWorkspace &other);
+
 private:
+  virtual PeaksWorkspace *doClone() const {
+    return new PeaksWorkspace(*this);
+  }
+
   /// Initialize the table structure
   void initColumns();
   /// Adds a new PeakColumn of the given type
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/RebinnedOutput.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/RebinnedOutput.h
index d6e23755dd8ed3cc1070bee8126b458f4b28da89..6982530711d0c954cb901d17c63b5da1329a6d03 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/RebinnedOutput.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/RebinnedOutput.h
@@ -45,6 +45,11 @@ public:
   /// Class destructor.
   virtual ~RebinnedOutput();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<RebinnedOutput> clone() const {
+    return std::unique_ptr<RebinnedOutput>(doClone());
+  }
+
   /// Get the workspace ID.
   virtual const std::string id() const;
 
@@ -64,6 +69,11 @@ public:
   void setF(const std::size_t index, const MantidVecPtr &F);
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  RebinnedOutput(const RebinnedOutput &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  RebinnedOutput &operator=(const RebinnedOutput &other);
+
   /// Called by initialize() in MatrixWorkspace
   virtual void init(const std::size_t &NVectors, const std::size_t &XLength,
                     const std::size_t &YLength);
@@ -72,10 +82,7 @@ protected:
   std::vector<MantidVec> fracArea;
 
 private:
-  /// Private copy constructor. NO COPY ALLOWED
-  RebinnedOutput(const RebinnedOutput &);
-  /// Private copy assignment operator. NO ASSIGNMENT ALLOWED
-  RebinnedOutput &operator=(const RebinnedOutput &);
+  virtual RebinnedOutput *doClone() const { return new RebinnedOutput(*this); }
 };
 
 /// shared pointer to the RebinnedOutput class
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/ReflectometryTransform.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/ReflectometryTransform.h
new file mode 100644
index 0000000000000000000000000000000000000000..7b725f9cd8e1b1fab2ab0c29ce50097088668138
--- /dev/null
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/ReflectometryTransform.h
@@ -0,0 +1,112 @@
+#ifndef MANTID_DATAOBJECTS_REFLECTOMETRYMDTRANFORM_H_
+#define MANTID_DATAOBJECTS_REFLECTOMETRYMDTRANFORM_H_
+
+#include "MantidDataObjects/DllConfig.h"
+#include "MantidAPI/BoxController.h"
+#include "MantidAPI/IEventWorkspace_fwd.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
+
+#include "MantidDataObjects/MDEventFactory.h"
+
+namespace Mantid {
+namespace API {
+class MatrixWorkspace;
+}
+namespace DataObjects {
+
+class CalculateReflectometry;
+
+/** ReflectometryMDTransform : Abstract type for reflectometry transforms to
+ MDWorkspaces. This is a Strategy Design Pattern.
+
+ @date 2012-05-29
+
+ Copyright &copy; 2012 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 ReflectometryTransform {
+
+protected:
+  const size_t m_d0NumBins;
+  const size_t m_d1NumBins;
+  const double m_d0Min;
+  const double m_d1Min;
+  const double m_d0Max;
+  const double m_d1Max;
+  const std::string m_d0Label;
+  const std::string m_d1Label;
+  const std::string m_d0ID;
+  const std::string m_d1ID;
+  boost::shared_ptr<CalculateReflectometry> m_calculator;
+
+  /// Two theta angles cache
+  mutable std::vector<double> m_theta;
+  /// Two theta widths cache
+  mutable std::vector<double> m_thetaWidths;
+
+  boost::shared_ptr<DataObjects::MDEventWorkspace2Lean>
+  createMDWorkspace(Geometry::IMDDimension_sptr, Geometry::IMDDimension_sptr,
+                    API::BoxController_sptr boxController) const;
+
+  void
+  initAngularCaches(const API::MatrixWorkspace_const_sptr &workspace) const;
+
+public:
+  // Execute the strategy to produce a transformed, output MDWorkspace
+  Mantid::API::IMDEventWorkspace_sptr
+  executeMD(Mantid::API::MatrixWorkspace_const_sptr inputWs,
+            Mantid::API::BoxController_sptr boxController) const;
+
+  // Execute the strategy to produce a transformed, output group of Matrix (2D)
+  // Workspaces
+  Mantid::API::MatrixWorkspace_sptr
+  execute(Mantid::API::MatrixWorkspace_const_sptr inputWs) const;
+
+  /// Execuate transformation using normalised polynomial binning
+  Mantid::API::MatrixWorkspace_sptr
+  executeNormPoly(Mantid::API::MatrixWorkspace_const_sptr inputWs) const;
+
+  virtual ~ReflectometryTransform();
+  ReflectometryTransform(const std::string &d0Label, const std::string &d0ID,
+                         double d0Min, double d0Max, const std::string &d1Label,
+                         const std::string &d1ID, double d1Min, double d1Max,
+                         size_t d0NumBins, size_t d1NumBins,
+                         CalculateReflectometry *calc);
+};
+
+/// Create a new x-axis for the output workspace
+MANTID_DATAOBJECTS_DLL MantidVec
+    createXAxis(Mantid::API::MatrixWorkspace *const ws, const double gradQx,
+                const double cxToUnit, const size_t nBins,
+                const std::string &caption, const std::string &units);
+
+/// Create a new y(vertical)-axis for the output workspace
+MANTID_DATAOBJECTS_DLL void
+createVerticalAxis(Mantid::API::MatrixWorkspace *const ws,
+                   const MantidVec &xAxisVec, const double gradQz,
+                   const double cyToUnit, const size_t nBins,
+                   const std::string &caption, const std::string &units);
+
+// Helper typedef for scoped pointer of this type.
+typedef boost::shared_ptr<ReflectometryTransform> ReflectometryTransform_sptr;
+}
+}
+#endif
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/SpecialWorkspace2D.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/SpecialWorkspace2D.h
index 513756231abb5ab69db2bdf670e1266e6aac682d..95fd8b6781ff54771e99e1b08b7621f3e6ca9e9f 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/SpecialWorkspace2D.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/SpecialWorkspace2D.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_DATAOBJECTS_SPECIALWORKSPACE2D_H_
 #define MANTID_DATAOBJECTS_SPECIALWORKSPACE2D_H_
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidGeometry/Instrument.h"
 
@@ -31,6 +31,11 @@ public:
   SpecialWorkspace2D(API::MatrixWorkspace_const_sptr parent);
   ~SpecialWorkspace2D();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<SpecialWorkspace2D> clone() const {
+    return std::unique_ptr<SpecialWorkspace2D>(doClone());
+  }
+
   /** Gets the name of the workspace type
   @return Standard string name  */
   virtual const std::string id() const { return "SpecialWorkspace2D"; }
@@ -52,14 +57,17 @@ public:
   virtual void copyFrom(boost::shared_ptr<const SpecialWorkspace2D> sourcews);
 
 private:
-  /// Private copy constructor. NO COPY ALLOWED
-  SpecialWorkspace2D(const SpecialWorkspace2D &);
-  /// Private copy assignment operator. NO ASSIGNMENT ALLOWED
-  SpecialWorkspace2D &operator=(const SpecialWorkspace2D &);
-
+  virtual SpecialWorkspace2D *doClone() const {
+    return new SpecialWorkspace2D(*this);
+  }
   bool isCompatible(boost::shared_ptr<const SpecialWorkspace2D> ws);
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  SpecialWorkspace2D(const SpecialWorkspace2D &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  SpecialWorkspace2D &operator=(const SpecialWorkspace2D &other);
+
   virtual void init(const size_t &NVectors, const size_t &XLength,
                     const size_t &YLength);
 
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/SplittersWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/SplittersWorkspace.h
index 4d0e7be99fa84273a28761d1eaeee0b1964827c0..c606520d0173d7e6792e4a2c0009bd09cdac6f13 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/SplittersWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/SplittersWorkspace.h
@@ -44,12 +44,17 @@ namespace DataObjects {
   File change history is stored at: <https://github.com/mantidproject/mantid>
   Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class DLLExport SplittersWorkspace : virtual public DataObjects::TableWorkspace,
-                                     virtual public API::ISplittersWorkspace {
+class DLLExport SplittersWorkspace : public DataObjects::TableWorkspace,
+                                     public API::ISplittersWorkspace {
 public:
   SplittersWorkspace();
   virtual ~SplittersWorkspace();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<SplittersWorkspace> clone() const {
+    return std::unique_ptr<SplittersWorkspace>(doClone());
+  }
+
   void addSplitter(Kernel::SplittingInterval splitter);
 
   Kernel::SplittingInterval getSplitter(size_t index);
@@ -57,6 +62,18 @@ public:
   size_t getNumberSplitters() const;
 
   bool removeSplitter(size_t);
+
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  SplittersWorkspace(const SplittersWorkspace &other)
+      : TableWorkspace(other), ISplittersWorkspace(other) {}
+  /// Protected copy assignment operator. Assignment not implemented.
+  SplittersWorkspace &operator=(const SplittersWorkspace &other);
+
+private:
+  virtual SplittersWorkspace *doClone() const {
+    return new SplittersWorkspace(*this);
+  }
 };
 
 typedef boost::shared_ptr<SplittersWorkspace> SplittersWorkspace_sptr;
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/TableWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/TableWorkspace.h
index 534f26632bee7ee95b51b2035992643c015e63c4..89c1910b52614f6db8495f091a18b4af7db41259 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/TableWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/TableWorkspace.h
@@ -8,6 +8,7 @@
 #include "MantidDataObjects/DllConfig.h"
 #include "MantidDataObjects/TableColumn.h"
 #include "MantidKernel/PropertyManager.h"
+#include "MantidKernel/V3D.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include <boost/shared_ptr.hpp>
 #include <boost/tuple/tuple.hpp>
@@ -76,12 +77,16 @@ namespace DataObjects {
 */
 
 class MANTID_DATAOBJECTS_DLL TableWorkspace
-    : virtual public API::ITableWorkspace {
+    : public API::ITableWorkspace {
 public:
   /// Constructor.
   TableWorkspace(size_t nrows = 0);
   /// Virtual destructor.
   virtual ~TableWorkspace();
+  /// Returns a clone of the workspace
+  std::unique_ptr<TableWorkspace> clone() const {
+    return std::unique_ptr<TableWorkspace>(doClone());
+  }
   /// Return the workspace typeID
   virtual const std::string id() const { return "TableWorkspace"; }
   /// Get the footprint in memory in KB.
@@ -212,8 +217,6 @@ public:
   size_t insertRow(size_t index);
   /// Delets a row if it exists.
   void removeRow(size_t index);
-  /// Clone table workspace instance.
-  TableWorkspace *clone() const;
 
   /** This method finds the row and column index of an integer cell value in a
    * table workspace
@@ -286,7 +289,17 @@ public:
   /// Sort this table. @see ITableWorkspace::sort
   void sort(std::vector<std::pair<std::string, bool>> &criteria);
 
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  TableWorkspace(const TableWorkspace &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  TableWorkspace &operator=(const TableWorkspace &other);
+
 private:
+  virtual TableWorkspace *doClone() const {
+    return new TableWorkspace(*this);
+  }
+
   /// template method to find a given value in a table.
   template <typename Type>
   void findValue(const Type value, size_t &row, const size_t &colIndex) {
@@ -397,11 +410,6 @@ private:
   /// shared pointer to the logManager, responsible for the workspace
   /// properties.
   API::LogManager_sptr m_LogManager;
-
-  // not asignable, not copy constructable, clonable
-  /// Copy constructor
-  TableWorkspace(const TableWorkspace &other);
-  TableWorkspace &operator=(const TableWorkspace &rhs);
 };
 
 /// Typedef for a shared pointer to \c TableWorkspace
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/Workspace2D.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/Workspace2D.h
index a3dcad884de14165e09d825677f53f270904272d..0d180a1d7ee119b1e7b04b1d4e3e9f6abca793c9 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/Workspace2D.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/Workspace2D.h
@@ -52,6 +52,11 @@ public:
   Workspace2D();
   virtual ~Workspace2D();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<Workspace2D> clone() const {
+    return std::unique_ptr<Workspace2D>(doClone());
+  }
+
   /// Returns the histogram number
   std::size_t getNumberHistograms() const;
 
@@ -90,6 +95,11 @@ public:
                      bool parallelExecution = true);
 
 protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  Workspace2D(const Workspace2D &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  Workspace2D &operator=(const Workspace2D &other);
+
   /// Called by initialize()
   virtual void init(const std::size_t &NVectors, const std::size_t &XLength,
                     const std::size_t &YLength);
@@ -104,10 +114,7 @@ protected:
   std::vector<Mantid::API::ISpectrum *> data;
 
 private:
-  /// Private copy constructor. NO COPY ALLOWED
-  Workspace2D(const Workspace2D &);
-  /// Private copy assignment operator. NO ASSIGNMENT ALLOWED
-  Workspace2D &operator=(const Workspace2D &);
+  virtual Workspace2D *doClone() const { return new Workspace2D(*this); }
 
   virtual std::size_t getHistogramNumberHelper() const;
 };
diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/WorkspaceSingleValue.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/WorkspaceSingleValue.h
index 1be09a1c75ac0e900de8412802da2e775c712422..c1108a48da663c41a71afa04a5b68b9b0b14e1c1 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/WorkspaceSingleValue.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/WorkspaceSingleValue.h
@@ -45,6 +45,11 @@ public:
 
   virtual ~WorkspaceSingleValue();
 
+  /// Returns a clone of the workspace
+  std::unique_ptr<WorkspaceSingleValue> clone() const {
+    return std::unique_ptr<WorkspaceSingleValue>(doClone());
+  }
+
   /// Returns the number of single indexable items in the workspace
   virtual std::size_t size() const { return 1; }
 
@@ -66,11 +71,19 @@ public:
                          MantidVec &Y, MantidVec &E,
                          bool skipError = false) const;
 
+  /// Returns the number of dimensions, 0 in this case.
+  virtual size_t getNumDims() const;
+
+protected:
+  /// Protected copy constructor. May be used by childs for cloning.
+  WorkspaceSingleValue(const WorkspaceSingleValue &other);
+  /// Protected copy assignment operator. Assignment not implemented.
+  WorkspaceSingleValue &operator=(const WorkspaceSingleValue &other);
+
 private:
-  /// Private copy constructor. NO COPY ALLOWED
-  WorkspaceSingleValue(const WorkspaceSingleValue &);
-  /// Private copy assignment operator. NO ASSIGNMENT ALLOWED
-  WorkspaceSingleValue &operator=(const WorkspaceSingleValue &);
+  virtual WorkspaceSingleValue *doClone() const {
+    return new WorkspaceSingleValue(*this);
+  }
 
   // allocates space in a new workspace - does nothing in this case
   virtual void init(const std::size_t &NVectors, const std::size_t &XLength,
diff --git a/Code/Mantid/Framework/DataObjects/src/BoxControllerNeXusIO.cpp b/Code/Mantid/Framework/DataObjects/src/BoxControllerNeXusIO.cpp
index 4d8bbd0a4030c7a7ac1a177866bcec5b64533611..0fedd4af4622949b17d6253c5fb8c015233dd67d 100644
--- a/Code/Mantid/Framework/DataObjects/src/BoxControllerNeXusIO.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/BoxControllerNeXusIO.cpp
@@ -1,4 +1,7 @@
 #include "MantidDataObjects/BoxControllerNeXusIO.h"
+
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidDataObjects/MDBoxFlatTree.h"
 #include "MantidKernel/Exception.h"
 #include "MantidAPI/FileFinder.h"
diff --git a/Code/Mantid/Framework/DataObjects/src/EventList.cpp b/Code/Mantid/Framework/DataObjects/src/EventList.cpp
index 0d42b327570b72b8b65a0015306fec79e0edb7de..c32b09f70aa0c74ca9c0869ff2dcf5247d5bdfc6 100644
--- a/Code/Mantid/Framework/DataObjects/src/EventList.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/EventList.cpp
@@ -1,3 +1,4 @@
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/MemoryManager.h"
 #include "MantidDataObjects/EventList.h"
 #include "MantidDataObjects/EventWorkspaceMRU.h"
@@ -2516,6 +2517,53 @@ void EventList::integrate(const double minX, const double maxX,
 // ---------------------------------------
 // ==============================================================================================
 
+/**
+ * @param func Function to do the conversion.
+ * @param sorting How the events are sorted after the operation. 0 = unsorted (default),
+ * positive = unchanged, negative = reverse.
+ */
+void EventList::convertTof(std::function<double(double)> func, const int sorting) {
+    // fix the histogram parameter
+    MantidVec &x = this->refX.access();
+    transform(x.begin(), x.end(), x.begin(), func);
+
+    // do nothing if sorting > 0
+    if (sorting == 0) {
+        this->setSortOrder(UNSORTED);
+    } else if ((sorting < 0) && (this->getSortType() == TOF_SORT)) {
+        this->reverse();
+    }
+
+    if (this->getNumberEvents() <= 0)
+      return;
+
+    // Convert the list
+    switch (eventType) {
+    case TOF:
+      this->convertTofHelper(this->events, func);
+      break;
+    case WEIGHTED:
+      this->convertTofHelper(this->weightedEvents, func);
+      break;
+    case WEIGHTED_NOTIME:
+      this->convertTofHelper(this->weightedEventsNoTime, func);
+      break;
+    }
+}
+
+/**
+ * @param events
+ * @param func
+ */
+template <class T>
+void EventList::convertTofHelper(std::vector<T> &events, std::function<double(double)> func) {
+    // iterate through all events
+    typename std::vector<T>::iterator itev;
+    typename std::vector<T>::iterator itev_end = events.end(); // cache for speed
+    for (itev = events.begin(); itev != itev_end; itev++)
+      itev->m_tof = func(itev->m_tof);
+}
+
 // --------------------------------------------------------------------------
 /**
  * Convert the time of flight by tof'=tof*factor+offset
diff --git a/Code/Mantid/Framework/DataObjects/src/EventWorkspace.cpp b/Code/Mantid/Framework/DataObjects/src/EventWorkspace.cpp
index bec4ade53280fe0b5c147e712da290e4ddb21668..f5b79daff31496a7e8db9a8f05054dd798d229ec 100644
--- a/Code/Mantid/Framework/DataObjects/src/EventWorkspace.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/EventWorkspace.cpp
@@ -39,6 +39,11 @@ EventWorkspace::EventWorkspace() : data(), m_noVectors(),
   mru(new EventWorkspaceMRU) {
 }
 
+EventWorkspace::EventWorkspace(const EventWorkspace &other)
+    : IEventWorkspace(other), mru(new EventWorkspaceMRU) {
+    copyDataFrom(other);
+}
+
 EventWorkspace::~EventWorkspace() {
   delete mru;
 
diff --git a/Code/Mantid/Framework/DataObjects/src/Events.cpp b/Code/Mantid/Framework/DataObjects/src/Events.cpp
index fe5d3f13c990dc67a015713edb13b13fe095c375..ffb9e0c32be66444983897ff87f1e350885b8f32 100644
--- a/Code/Mantid/Framework/DataObjects/src/Events.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/Events.cpp
@@ -1,4 +1,5 @@
 #include <stdexcept>
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidDataObjects/EventList.h"
 #include "MantidDataObjects/Events.h"
 #include "MantidKernel/Exception.h"
diff --git a/Code/Mantid/Framework/DataObjects/src/FakeMD.cpp b/Code/Mantid/Framework/DataObjects/src/FakeMD.cpp
index 67b3d6ec84af23811da0cfbaa27733c2056ef2f7..2f707c8ea88fb554ef668c7429b22e3e143aca41 100644
--- a/Code/Mantid/Framework/DataObjects/src/FakeMD.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/FakeMD.cpp
@@ -2,6 +2,8 @@
 // Includes
 //--------------------------------------------------------------------------------------------------
 #include "MantidDataObjects/FakeMD.h"
+
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidDataObjects/MDEventFactory.h"
 #include "MantidDataObjects/MDEventInserter.h"
 #include "MantidKernel/ThreadPool.h"
diff --git a/Code/Mantid/Framework/DataObjects/src/FractionalRebinning.cpp b/Code/Mantid/Framework/DataObjects/src/FractionalRebinning.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..00bf7466983cfdb4003f5284fa5bdb91b20446d9
--- /dev/null
+++ b/Code/Mantid/Framework/DataObjects/src/FractionalRebinning.cpp
@@ -0,0 +1,237 @@
+#include "MantidDataObjects/FractionalRebinning.h"
+
+#include "MantidAPI/Progress.h"
+#include "MantidGeometry/Math/ConvexPolygon.h"
+#include "MantidGeometry/Math/Quadrilateral.h"
+#include "MantidGeometry/Math/PolygonIntersection.h"
+#include "MantidKernel/V2D.h"
+
+#include <boost/math/special_functions/fpclassify.hpp>
+
+namespace Mantid {
+
+using namespace API;
+using namespace Geometry;
+using namespace Kernel;
+
+namespace DataObjects {
+
+namespace FractionalRebinning {
+
+/**
+ * Find the possible region of intersection on the output workspace for the
+ * given polygon
+ * @param outputWS A pointer to the output workspace
+ * @param verticalAxis A vector containing the output vertical axis edges
+ * @param inputQ The input polygon
+ * @param qstart An output giving the starting index in the Q direction
+ * @param qend An output giving the end index in the Q direction
+ * @param en_start An output giving the start index in the dE direction
+ * @param en_end An output giving the end index in the dE direction
+ * @return True if an intersecition is possible
+ */
+bool getIntersectionRegion(MatrixWorkspace_const_sptr outputWS,
+                           const std::vector<double> &verticalAxis,
+                           const Quadrilateral &inputQ, size_t &qstart,
+                           size_t &qend, size_t &en_start, size_t &en_end) {
+  const MantidVec &xAxis = outputWS->readX(0);
+  const double xn_lo(inputQ.minX()), xn_hi(inputQ.maxX());
+  const double yn_lo(inputQ.minY()), yn_hi(inputQ.maxY());
+
+  if (xn_hi < xAxis.front() || xn_lo > xAxis.back() ||
+      yn_hi < verticalAxis.front() || yn_lo > verticalAxis.back())
+    return false;
+
+  MantidVec::const_iterator start_it =
+      std::upper_bound(xAxis.begin(), xAxis.end(), xn_lo);
+  MantidVec::const_iterator end_it =
+      std::upper_bound(xAxis.begin(), xAxis.end(), xn_hi);
+  en_start = 0;
+  en_end = xAxis.size() - 1;
+  if (start_it != xAxis.begin()) {
+    en_start = (start_it - xAxis.begin() - 1);
+  }
+  if (end_it != xAxis.end()) {
+    en_end = end_it - xAxis.begin();
+  }
+
+  // Q region
+  start_it = std::upper_bound(verticalAxis.begin(), verticalAxis.end(), yn_lo);
+  end_it = std::upper_bound(verticalAxis.begin(), verticalAxis.end(), yn_hi);
+  qstart = 0;
+  qend = verticalAxis.size() - 1;
+  if (start_it != verticalAxis.begin()) {
+    qstart = (start_it - verticalAxis.begin() - 1);
+  }
+  if (end_it != verticalAxis.end()) {
+    qend = end_it - verticalAxis.begin();
+  }
+
+  return true;
+}
+
+/**
+ * Computes the square root of the errors and if the input was a distribution
+ * this divides by the new bin-width
+ * @param outputWS The workspace containing the output data
+ * @param inputWS The input workspace used for testing distribution state
+ * @param progress An optional progress object. Reported to once per bin.
+ */
+void normaliseOutput(MatrixWorkspace_sptr outputWS,
+                     MatrixWorkspace_const_sptr inputWS,
+                     boost::shared_ptr<Progress> progress) {
+  for (int64_t i = 0; i < static_cast<int64_t>(outputWS->getNumberHistograms());
+       ++i) {
+    MantidVec &outputY = outputWS->dataY(i);
+    MantidVec &outputE = outputWS->dataE(i);
+    for (size_t j = 0; j < outputWS->blocksize(); ++j) {
+      if (progress)
+        progress->report("Calculating errors");
+      const double binWidth =
+          (outputWS->readX(i)[j + 1] - outputWS->readX(i)[j]);
+      double eValue = std::sqrt(outputE[j]);
+      // Don't do this for a RebinnedOutput workspace. The fractions
+      // take care of such things.
+      if (inputWS->isDistribution() && inputWS->id() != "RebinnedOutput") {
+        outputY[j] /= binWidth;
+        eValue /= binWidth;
+      }
+      outputE[j] = eValue;
+    }
+  }
+  outputWS->isDistribution(inputWS->isDistribution());
+}
+
+/**
+ * Rebin the input quadrilateral to the output grid
+ * @param inputQ The input polygon
+ * @param inputWS The input workspace containing the input intensity values
+ * @param i The index in the vertical axis direction that inputQ references
+ * @param j The index in the horizontal axis direction that inputQ references
+ * @param outputWS A pointer to the output workspace that accumulates the data
+ * @param verticalAxis A vector containing the output vertical axis bin
+ * boundaries
+ */
+void rebinToOutput(const Quadrilateral &inputQ,
+                   MatrixWorkspace_const_sptr inputWS, const size_t i,
+                   const size_t j, MatrixWorkspace_sptr outputWS,
+                   const std::vector<double> &verticalAxis) {
+  const MantidVec &X = outputWS->readX(0);
+  size_t qstart(0), qend(verticalAxis.size() - 1), en_start(0),
+      en_end(X.size() - 1);
+  if (!getIntersectionRegion(outputWS, verticalAxis, inputQ, qstart, qend,
+                             en_start, en_end))
+    return;
+
+  const auto &inY = inputWS->readY(i);
+  const auto &inE = inputWS->readE(i);
+  // It seems to be more efficient to construct this once and clear it before
+  // each calculation
+  // in the loop
+  ConvexPolygon intersectOverlap;
+  for (size_t qi = qstart; qi < qend; ++qi) {
+    const double vlo = verticalAxis[qi];
+    const double vhi = verticalAxis[qi + 1];
+    for (size_t ei = en_start; ei < en_end; ++ei) {
+      const V2D ll(X[ei], vlo);
+      const V2D lr(X[ei + 1], vlo);
+      const V2D ur(X[ei + 1], vhi);
+      const V2D ul(X[ei], vhi);
+      const Quadrilateral outputQ(ll, lr, ur, ul);
+
+      double yValue = inY[j];
+      if (boost::math::isnan(yValue)) {
+        continue;
+      }
+      intersectOverlap.clear();
+      if (intersection(outputQ, inputQ, intersectOverlap)) {
+        const double weight = intersectOverlap.area() / inputQ.area();
+        yValue *= weight;
+        double eValue = inE[j] * weight;
+        if (inputWS->isDistribution()) {
+          const double overlapWidth =
+              intersectOverlap.maxX() - intersectOverlap.minX();
+          yValue *= overlapWidth;
+          eValue *= overlapWidth;
+        }
+        eValue = eValue * eValue;
+        PARALLEL_CRITICAL(overlap_sum) {
+          outputWS->dataY(qi)[ei] += yValue;
+          outputWS->dataE(qi)[ei] += eValue;
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Rebin the input quadrilateral to the output grid
+ * @param inputQ The input polygon
+ * @param inputWS The input workspace containing the input intensity values
+ * @param i The index in the vertical axis direction that inputQ references
+ * @param j The index in the horizontal axis direction that inputQ references
+ * @param outputWS A pointer to the output workspace that accumulates the data
+ * @param verticalAxis A vector containing the output vertical axis bin
+ * boundaries
+ */
+void rebinToFractionalOutput(const Quadrilateral &inputQ,
+                             MatrixWorkspace_const_sptr inputWS, const size_t i,
+                             const size_t j, RebinnedOutput_sptr outputWS,
+                             const std::vector<double> &verticalAxis) {
+  const MantidVec &X = outputWS->readX(0);
+  size_t qstart(0), qend(verticalAxis.size() - 1), en_start(0),
+      en_end(X.size() - 1);
+  if (!getIntersectionRegion(outputWS, verticalAxis, inputQ, qstart, qend,
+                             en_start, en_end))
+    return;
+
+  const auto &inY = inputWS->readY(i);
+  const auto &inE = inputWS->readE(i);
+  // Don't do the overlap removal if already RebinnedOutput.
+  // This wreaks havoc on the data.
+  const bool removeOverlap(inputWS->isDistribution() &&
+                           inputWS->id() != "RebinnedOutput");
+  // It seems to be more efficient to construct this once and clear it before
+  // each calculation
+  // in the loop
+  ConvexPolygon intersectOverlap;
+  for (size_t qi = qstart; qi < qend; ++qi) {
+    const double vlo = verticalAxis[qi];
+    const double vhi = verticalAxis[qi + 1];
+    for (size_t ei = en_start; ei < en_end; ++ei) {
+      const V2D ll(X[ei], vlo);
+      const V2D lr(X[ei + 1], vlo);
+      const V2D ur(X[ei + 1], vhi);
+      const V2D ul(X[ei], vhi);
+      const Quadrilateral outputQ(ll, lr, ur, ul);
+
+      double yValue = inY[j];
+      if (boost::math::isnan(yValue)) {
+        continue;
+      }
+      intersectOverlap.clear();
+      if (intersection(outputQ, inputQ, intersectOverlap)) {
+        const double weight = intersectOverlap.area() / inputQ.area();
+        yValue *= weight;
+        double eValue = inE[j] * weight;
+        if (removeOverlap) {
+          const double overlapWidth =
+              intersectOverlap.maxX() - intersectOverlap.minX();
+          yValue *= overlapWidth;
+          eValue *= overlapWidth;
+        }
+        eValue *= eValue;
+        PARALLEL_CRITICAL(overlap) {
+          outputWS->dataY(qi)[ei] += yValue;
+          outputWS->dataE(qi)[ei] += eValue;
+          outputWS->dataF(qi)[ei] += weight;
+        }
+      }
+    }
+  }
+}
+
+} // namespace FractionalRebinning
+
+} // namespace DataObjects
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/DataObjects/src/MDBox.cpp b/Code/Mantid/Framework/DataObjects/src/MDBox.cpp
index efbc6f64817ab43682aadd0718b2dbddf5ce60ec..8a61316f82859189b6a60aa53d1bc99ea32a16ca 100644
--- a/Code/Mantid/Framework/DataObjects/src/MDBox.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/MDBox.cpp
@@ -413,6 +413,43 @@ TMDE(void MDBox)::calculateCentroid(coord_t *centroid) const {
   }
 }
 
+//-----------------------------------------------------------------------------------------------
+/** Calculate the centroid of this box.
+ * @param centroid [out] :: nd-sized array that will be set to the centroid.
+ * @param runindex [in] :: run index used to filter the events.
+ */
+TMDE(void MDBox)::calculateCentroid(coord_t *centroid,
+                                    const int runindex) const {
+  for (size_t d = 0; d < nd; d++)
+    centroid[d] = 0;
+
+  // Signal was calculated before (when adding)
+  // Keep 0.0 if the signal is null. This avoids dividing by 0.0
+  if (this->m_signal == 0)
+    return;
+
+  typename std::vector<MDE>::const_iterator it_end = data.end();
+  for (typename std::vector<MDE>::const_iterator it = data.begin();
+       it != it_end; ++it) {
+    const MDE &Evnt = *it;
+    double signal = Evnt.getSignal();
+    int thisrun = Evnt.getRunIndex();
+    if (thisrun != runindex) {
+      // skip
+      continue;
+    }
+    for (size_t d = 0; d < nd; d++) {
+      // Total up the coordinate weighted by the signal.
+      centroid[d] += Evnt.getCenter(d) * static_cast<coord_t>(signal);
+    }
+  }
+
+  // Normalize by the total signal
+  for (size_t d = 0; d < nd; d++) {
+    centroid[d] /= coord_t(this->m_signal);
+  }
+}
+
 //-----------------------------------------------------------------------------------------------
 /** Calculate the statistics for each dimension of this MDBox, using
  * all the contained events
diff --git a/Code/Mantid/Framework/DataObjects/src/MDBoxFlatTree.cpp b/Code/Mantid/Framework/DataObjects/src/MDBoxFlatTree.cpp
index 4bbb537e1cd78f44d495132e0aac1a576c5cdef9..19117d593b5817e345a0a7107f260db74161a485 100644
--- a/Code/Mantid/Framework/DataObjects/src/MDBoxFlatTree.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/MDBoxFlatTree.cpp
@@ -1,7 +1,5 @@
 #include "MantidKernel/Strings.h"
 #include "MantidDataObjects/MDBoxFlatTree.h"
-#include "MantidDataObjects/MDEvent.h"
-#include "MantidDataObjects/MDLeanEvent.h"
 #include "MantidAPI/BoxController.h"
 #include "MantidAPI/FileBackedExperimentInfo.h"
 #include "MantidDataObjects/MDEventFactory.h"
@@ -461,7 +459,7 @@ void MDBoxFlatTree::loadExperimentInfos(::NeXus::File *const file, const std::st
       std::string parameterStr;
       try {
         // Get the sample, logs, instrument
-        ei->loadExperimentInfoNexus(file, parameterStr);
+        ei->loadExperimentInfoNexus(filename, file, parameterStr);
         // Now do the parameter map
         ei->readParameterMap(parameterStr);
         // And add it to the mutliple experiment info.
diff --git a/Code/Mantid/Framework/DataObjects/src/MDHistoWorkspace.cpp b/Code/Mantid/Framework/DataObjects/src/MDHistoWorkspace.cpp
index 2382517f7dbe77c0c6cbd1e1aa010814da1e9b7f..f5264363224903ad911355fe21108c6960d95b05 100644
--- a/Code/Mantid/Framework/DataObjects/src/MDHistoWorkspace.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/MDHistoWorkspace.cpp
@@ -1216,14 +1216,6 @@ size_t MDHistoWorkspace::sizeOfElement() {
   return (3 * sizeof(signal_t)) + sizeof(bool);
 }
 
-/**
- * Clone the workspace.
- * @return Deep copy of existing workspace.
- */
-boost::shared_ptr<IMDHistoWorkspace> MDHistoWorkspace::clone() const {
-  return boost::shared_ptr<IMDHistoWorkspace>(new MDHistoWorkspace(*this));
-}
-
 /**
 Preferred normalization to use for visual purposes.
 */
diff --git a/Code/Mantid/Framework/DataObjects/src/MaskWorkspace.cpp b/Code/Mantid/Framework/DataObjects/src/MaskWorkspace.cpp
index 6b52d980c5041714248457d339f27dadddad3a8e..2dc39e51cc297e498d649ab6fd9c60a7ebceeb73 100644
--- a/Code/Mantid/Framework/DataObjects/src/MaskWorkspace.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/MaskWorkspace.cpp
@@ -32,6 +32,9 @@ const double ERROR_VALUE = 0.;
  */
 MaskWorkspace::MaskWorkspace() {}
 
+MaskWorkspace::MaskWorkspace(const MaskWorkspace &other)
+    : SpecialWorkspace2D(other), IMaskWorkspace(other) {}
+
 /**
  * Constructor - with a given dimension.
  * @param[in] numvectors Number of vectors/histograms for this workspace.
diff --git a/Code/Mantid/Framework/DataObjects/src/MementoTableWorkspace.cpp b/Code/Mantid/Framework/DataObjects/src/MementoTableWorkspace.cpp
index 27f1382d0efe50c8adb060eba7fb2112bf32b081..90a863de1d0ce55d9c3ec81356691968bedb945d 100644
--- a/Code/Mantid/Framework/DataObjects/src/MementoTableWorkspace.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/MementoTableWorkspace.cpp
@@ -1,6 +1,7 @@
 #include "MantidDataObjects/MementoTableWorkspace.h"
 
 #include "MantidKernel/Logger.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceFactory.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/DataObjects/src/Peak.cpp b/Code/Mantid/Framework/DataObjects/src/Peak.cpp
index 939d9107fe4abdd742bd1cc8a7c2ef4cf7dc5319..56b1d8eab491a565fae1c21cff01abd00f9be3e3 100644
--- a/Code/Mantid/Framework/DataObjects/src/Peak.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/Peak.cpp
@@ -287,6 +287,12 @@ void Peak::setDetectorID(int id) {
     return;
   // Use the grand-parent whenever possible
   m_bankName = parent->getName();
+  // For CORELLI, one level above sixteenpack
+  if(m_bankName.compare("sixteenpack") == 0){
+    parent = parent->getParent();
+    m_bankName = parent->getName();
+  }
+
 
   // Special for rectangular detectors: find the row and column.
   RectangularDetector_const_sptr retDet =
diff --git a/Code/Mantid/Framework/DataObjects/src/PeakShapeEllipsoid.cpp b/Code/Mantid/Framework/DataObjects/src/PeakShapeEllipsoid.cpp
index c3e0a131080c6fc17678ceddc1ad63deb7738ae3..dab828a13b89acc491ce0f24c802a0c95edd963e 100644
--- a/Code/Mantid/Framework/DataObjects/src/PeakShapeEllipsoid.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/PeakShapeEllipsoid.cpp
@@ -117,6 +117,15 @@ PeakShapeEllipsoid* PeakShapeEllipsoid::clone() const {
 
 std::string PeakShapeEllipsoid::shapeName() const { return PeakShapeEllipsoid::ellipsoidShapeName(); }
 
+double PeakShapeEllipsoid::radius() const
+{
+    double radius = m_abc_radii[0];
+    for(int8_t i = 1; i < 3; ++i) {
+        radius = std::max(radius, m_abc_radii[i]);
+    }
+    return radius;
+}
+
 const std::string PeakShapeEllipsoid::ellipsoidShapeName()
 {
     return "ellipsoid";
diff --git a/Code/Mantid/Framework/DataObjects/src/PeaksWorkspace.cpp b/Code/Mantid/Framework/DataObjects/src/PeaksWorkspace.cpp
index 99cc51356700fb12a4b402358d139c893a333c53..382f19e296fd37a518b012be8de3236e7d9a372d 100644
--- a/Code/Mantid/Framework/DataObjects/src/PeaksWorkspace.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/PeaksWorkspace.cpp
@@ -49,16 +49,6 @@ PeaksWorkspace::PeaksWorkspace()
   initColumns();
 }
 
-//---------------------------------------------------------------------------------------------
-/** Virtual constructor. Clone method to duplicate the peaks workspace.
- *
- * @return PeaksWorkspace object
- */
-PeaksWorkspace *PeaksWorkspace::clone() const {
-  // Deep copy via copy construtor.
-  return new PeaksWorkspace(*this);
-}
-
 //---------------------------------------------------------------------------------------------
 /** Copy constructor
  *
@@ -71,16 +61,6 @@ PeaksWorkspace::PeaksWorkspace(const PeaksWorkspace &other)
   initColumns();
 }
 
-//---------------------------------------------------------------------------------------------
-/** Clone a shared pointer
- *
- * @return copy of the peaksworkspace
- */
-boost::shared_ptr<PeaksWorkspace> PeaksWorkspace::clone() {
-  // Copy construct and return
-  return boost::shared_ptr<PeaksWorkspace>(new PeaksWorkspace(*this));
-}
-
 //=====================================================================================
 //=====================================================================================
 /** Comparator class for sorting peaks by one or more criteria
diff --git a/Code/Mantid/Framework/DataObjects/src/RebinnedOutput.cpp b/Code/Mantid/Framework/DataObjects/src/RebinnedOutput.cpp
index c61b311878ec1b5a63a1ce3cdc1b7e25bba6e489..b6addfb0c0e60cff56d8f6025f82bcaed57d0ed0 100644
--- a/Code/Mantid/Framework/DataObjects/src/RebinnedOutput.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/RebinnedOutput.cpp
@@ -16,6 +16,9 @@ DECLARE_WORKSPACE(RebinnedOutput)
 
 RebinnedOutput::RebinnedOutput() : Workspace2D() {}
 
+RebinnedOutput::RebinnedOutput(const RebinnedOutput &other)
+    : Workspace2D(other), fracArea(other.fracArea) {}
+
 RebinnedOutput::~RebinnedOutput() {}
 
 /**
diff --git a/Code/Mantid/Framework/DataObjects/src/ReflectometryTransform.cpp b/Code/Mantid/Framework/DataObjects/src/ReflectometryTransform.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..14677dc7f6140450390c6a649d6503d8e8b06df1
--- /dev/null
+++ b/Code/Mantid/Framework/DataObjects/src/ReflectometryTransform.cpp
@@ -0,0 +1,389 @@
+#include "MantidDataObjects/ReflectometryTransform.h"
+
+#include "MantidAPI/BinEdgeAxis.h"
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/SpectrumDetectorMapping.h"
+#include "MantidAPI/WorkspaceFactory.h"
+#include "MantidDataObjects/CalculateReflectometry.h"
+#include "MantidDataObjects/FractionalRebinning.h"
+#include "MantidDataObjects/RebinnedOutput.h"
+#include "MantidDataObjects/Workspace2D.h"
+#include "MantidGeometry/Instrument/DetectorGroup.h"
+#include "MantidGeometry/Instrument/ReferenceFrame.h"
+#include "MantidGeometry/MDGeometry/MDHistoDimension.h"
+#include "MantidKernel/UnitFactory.h"
+#include "MantidKernel/V2D.h"
+#include "MantidKernel/VectorHelper.h"
+
+#include <boost/assign.hpp>
+#include <boost/shared_ptr.hpp>
+
+using namespace Mantid::API;
+using namespace Mantid::Geometry;
+using namespace Mantid::Kernel;
+
+namespace Mantid {
+namespace DataObjects {
+
+ReflectometryTransform::ReflectometryTransform(
+    const std::string &d0Label, const std::string &d0ID, double d0Min,
+    double d0Max, const std::string &d1Label, const std::string &d1ID,
+    double d1Min, double d1Max, size_t d0NumBins, size_t d1NumBins,
+    CalculateReflectometry *calc)
+    : m_d0NumBins(d0NumBins), m_d1NumBins(d1NumBins), m_d0Min(d0Min),
+      m_d1Min(d1Min), m_d0Max(d0Max), m_d1Max(d1Max), m_d0Label(d0Label),
+      m_d1Label(d1Label), m_d0ID(d0ID), m_d1ID(d1ID), m_calculator(calc) {
+  if (d0Min >= d0Max || d1Min >= d1Max)
+    throw std::invalid_argument(
+        "The supplied minimum values must be less than the maximum values.");
+}
+
+ReflectometryTransform::~ReflectometryTransform() {}
+
+boost::shared_ptr<MDEventWorkspace2Lean>
+ReflectometryTransform::createMDWorkspace(
+    Mantid::Geometry::IMDDimension_sptr a,
+    Mantid::Geometry::IMDDimension_sptr b,
+    BoxController_sptr boxController) const {
+  auto ws = boost::make_shared<MDEventWorkspace2Lean>();
+
+  ws->addDimension(a);
+  ws->addDimension(b);
+
+  BoxController_sptr wsbc = ws->getBoxController(); // Get the box controller
+  wsbc->setSplitInto(boxController->getSplitInto(0));
+  wsbc->setMaxDepth(boxController->getMaxDepth());
+  wsbc->setSplitThreshold(boxController->getSplitThreshold());
+
+  // Initialize the workspace.
+  ws->initialize();
+
+  // Start with a MDGridBox.
+  ws->splitBox();
+  return ws;
+}
+
+/**
+ * Create a new X-Axis for the output workspace
+ * @param ws : Workspace to attach the axis to
+ * @param gradX : Gradient used in the linear transform from index to X-scale
+ * @param cxToUnit : C-offset used in the linear transform
+ * @param nBins : Number of bins along this axis
+ * @param caption : Caption for the axis
+ * @param units : Units label for the axis
+ * @return Vector containing increments along the axis.
+ */
+MantidVec createXAxis(MatrixWorkspace *const ws, const double gradX,
+                      const double cxToUnit, const size_t nBins,
+                      const std::string &caption, const std::string &units) {
+  // Create an X - Axis.
+  auto *const xAxis = new BinEdgeAxis(nBins);
+  ws->replaceAxis(0, xAxis);
+  auto unitXBasePtr = UnitFactory::Instance().create("Label");
+  boost::shared_ptr<Mantid::Kernel::Units::Label> xUnit =
+      boost::dynamic_pointer_cast<Mantid::Kernel::Units::Label>(unitXBasePtr);
+  xUnit->setLabel(caption, units);
+  xAxis->unit() = xUnit;
+  xAxis->title() = caption;
+  MantidVec xAxisVec(nBins);
+  for (size_t i = 0; i < nBins; ++i) {
+    double qxIncrement = ((1 / gradX) * ((double)i + 1) + cxToUnit);
+    xAxis->setValue(i, qxIncrement);
+    xAxisVec[i] = qxIncrement;
+  }
+  return xAxisVec;
+}
+
+/**
+ * Create a new Y, or Vertical Axis for the output workspace
+ * @param ws : Workspace to attache the vertical axis to
+ * @param xAxisVec : Vector of x axis increments
+ * @param gradY : Gradient used in linear transform from index to Y-scale
+ * @param cyToUnit : C-offset used in the linear transform
+ * @param nBins : Number of bins along the axis
+ * @param caption : Caption for the axis
+ * @param units : Units label for the axis
+ */
+void createVerticalAxis(MatrixWorkspace *const ws, const MantidVec &xAxisVec,
+                        const double gradY, const double cyToUnit,
+                        const size_t nBins, const std::string &caption,
+                        const std::string &units) {
+  // Create a Y (vertical) Axis
+  auto *const verticalAxis = new BinEdgeAxis(nBins);
+  ws->replaceAxis(1, verticalAxis);
+  auto unitZBasePtr = UnitFactory::Instance().create("Label");
+  boost::shared_ptr<Mantid::Kernel::Units::Label> verticalUnit =
+      boost::dynamic_pointer_cast<Mantid::Kernel::Units::Label>(unitZBasePtr);
+  verticalAxis->unit() = verticalUnit;
+  verticalUnit->setLabel(caption, units);
+  verticalAxis->title() = caption;
+  for (size_t i = 0; i < nBins; ++i) {
+    ws->setX(i, xAxisVec);
+    double qzIncrement = ((1 / gradY) * ((double)i + 1) + cyToUnit);
+    verticalAxis->setValue(i, qzIncrement);
+  }
+}
+
+Mantid::API::IMDEventWorkspace_sptr ReflectometryTransform::executeMD(
+    Mantid::API::MatrixWorkspace_const_sptr inputWs,
+    BoxController_sptr boxController) const {
+  MDHistoDimension_sptr dim0 = MDHistoDimension_sptr(new MDHistoDimension(
+      m_d0Label, m_d0ID, "(Ang^-1)", static_cast<Mantid::coord_t>(m_d0Min),
+      static_cast<Mantid::coord_t>(m_d0Max), m_d0NumBins));
+  MDHistoDimension_sptr dim1 = MDHistoDimension_sptr(new MDHistoDimension(
+      m_d1Label, m_d1ID, "(Ang^-1)", static_cast<Mantid::coord_t>(m_d1Min),
+      static_cast<Mantid::coord_t>(m_d1Max), m_d1NumBins));
+
+  auto ws = createMDWorkspace(dim0, dim1, boxController);
+
+  auto spectraAxis = inputWs->getAxis(1);
+  for (size_t index = 0; index < inputWs->getNumberHistograms(); ++index) {
+    auto counts = inputWs->readY(index);
+    auto wavelengths = inputWs->readX(index);
+    auto errors = inputWs->readE(index);
+    const size_t nInputBins = wavelengths.size() - 1;
+    const double theta_final = spectraAxis->getValue(index);
+    m_calculator->setThetaFinal(theta_final);
+    // Loop over all bins in spectra
+    for (size_t binIndex = 0; binIndex < nInputBins; ++binIndex) {
+      const double &wavelength =
+          0.5 * (wavelengths[binIndex] + wavelengths[binIndex + 1]);
+      double _d0 = m_calculator->calculateDim0(wavelength);
+      double _d1 = m_calculator->calculateDim1(wavelength);
+      double centers[2] = {_d0, _d1};
+
+      ws->addEvent(MDLeanEvent<2>(float(counts[binIndex]),
+                                  float(errors[binIndex] * errors[binIndex]),
+                                  centers));
+    }
+  }
+  ws->splitAllIfNeeded(NULL);
+  ws->refreshCache();
+  return ws;
+}
+
+/**
+ * Convert to the output dimensions
+ * @param inputWs : Input Matrix workspace
+ * @return workspace group containing output matrix workspaces of ki and kf
+ */
+Mantid::API::MatrixWorkspace_sptr ReflectometryTransform::execute(
+    Mantid::API::MatrixWorkspace_const_sptr inputWs) const {
+  auto ws = boost::make_shared<Mantid::DataObjects::Workspace2D>();
+
+  ws->initialize(m_d1NumBins, m_d0NumBins,
+                 m_d0NumBins); // Create the output workspace as a distribution
+
+  // Mapping so that d0 and d1 values calculated can be added to the matrix
+  // workspace at the correct index.
+  const double gradD0 =
+      double(m_d0NumBins) / (m_d0Max - m_d0Min); // The x - axis
+  const double gradD1 =
+      double(m_d1NumBins) / (m_d1Max - m_d1Min); // Actually the y-axis
+  const double cxToIndex = -gradD0 * m_d0Min;
+  const double cyToIndex = -gradD1 * m_d1Min;
+  const double cxToD0 = m_d0Min - (1 / gradD0);
+  const double cyToD1 = m_d1Min - (1 / gradD1);
+
+  // Create an X - Axis.
+  MantidVec xAxisVec = createXAxis(ws.get(), gradD0, cxToD0, m_d0NumBins,
+                                   m_d0Label, "1/Angstroms");
+  // Create a Y (vertical) Axis
+  createVerticalAxis(ws.get(), xAxisVec, gradD1, cyToD1, m_d1NumBins, m_d1Label,
+                     "1/Angstroms");
+
+  // Loop over all entries in the input workspace and calculate d0 and d1
+  // for each.
+  auto spectraAxis = inputWs->getAxis(1);
+  for (size_t index = 0; index < inputWs->getNumberHistograms(); ++index) {
+    auto counts = inputWs->readY(index);
+    auto wavelengths = inputWs->readX(index);
+    auto errors = inputWs->readE(index);
+    const size_t nInputBins = wavelengths.size() - 1;
+    const double theta_final = spectraAxis->getValue(index);
+    m_calculator->setThetaFinal(theta_final);
+    // Loop over all bins in spectra
+    for (size_t binIndex = 0; binIndex < nInputBins; ++binIndex) {
+      const double wavelength =
+          0.5 * (wavelengths[binIndex] + wavelengths[binIndex + 1]);
+      double _d0 = m_calculator->calculateDim0(wavelength);
+      double _d1 = m_calculator->calculateDim1(wavelength);
+
+      if (_d0 >= m_d0Min && _d0 <= m_d0Max && _d1 >= m_d1Min &&
+          _d1 <= m_d1Max) // Check that the calculated ki and kf are in range
+      {
+        const int outIndexX = (int)((gradD0 * _d0) + cxToIndex);
+        const int outIndexZ = (int)((gradD1 * _d1) + cyToIndex);
+
+        ws->dataY(outIndexZ)[outIndexX] += counts[binIndex];
+        ws->dataE(outIndexZ)[outIndexX] += errors[binIndex];
+      }
+    }
+  }
+  return ws;
+}
+
+MatrixWorkspace_sptr ReflectometryTransform::executeNormPoly(
+    MatrixWorkspace_const_sptr inputWS) const {
+
+  MatrixWorkspace_sptr temp = WorkspaceFactory::Instance().create(
+      "RebinnedOutput", m_d1NumBins, m_d0NumBins, m_d0NumBins);
+  RebinnedOutput_sptr outWS = boost::static_pointer_cast<RebinnedOutput>(temp);
+
+  const double widthD0 = (m_d0Max - m_d0Min) / double(m_d0NumBins);
+  const double widthD1 = (m_d1Max - m_d1Min) / double(m_d1NumBins);
+
+  std::vector<double> xBinsVec;
+  std::vector<double> zBinsVec;
+  VectorHelper::createAxisFromRebinParams(
+      boost::assign::list_of(m_d1Min)(widthD1)(m_d1Max), zBinsVec);
+  VectorHelper::createAxisFromRebinParams(
+      boost::assign::list_of(m_d0Min)(widthD0)(m_d0Max), xBinsVec);
+
+  // Put the correct bin boundaries into the workspace
+  auto verticalAxis = new BinEdgeAxis(zBinsVec);
+  outWS->replaceAxis(1, verticalAxis);
+  for (size_t i = 0; i < zBinsVec.size() - 1; ++i)
+    outWS->setX(i, xBinsVec);
+
+  verticalAxis->title() = m_d1Label;
+
+  // Prepare the required theta values
+  initAngularCaches(inputWS);
+
+  const size_t nHistos = inputWS->getNumberHistograms();
+  const size_t nBins = inputWS->blocksize();
+
+  // Holds the spectrum-detector mapping
+  std::vector<specid_t> specNumberMapping;
+  std::vector<detid_t> detIDMapping;
+
+  for (size_t i = 0; i < nHistos; ++i) {
+    IDetector_const_sptr detector = inputWS->getDetector(i);
+    if (!detector || detector->isMasked() || detector->isMonitor()) {
+      continue;
+    }
+
+    // Compute polygon points
+    const double theta = m_theta[i];
+    const double thetaWidth = m_thetaWidths[i];
+    const double thetaHalfWidth = 0.5 * thetaWidth;
+    const double thetaLower = theta - thetaHalfWidth;
+    const double thetaUpper = theta + thetaHalfWidth;
+
+    const MantidVec &X = inputWS->readX(0);
+
+    for (size_t j = 0; j < nBins; ++j) {
+      const double lamLower = X[j];
+      const double lamUpper = X[j + 1];
+
+      // fractional rebin
+      m_calculator->setThetaFinal(thetaLower);
+      const V2D ll(m_calculator->calculateDim0(lamLower),
+                   m_calculator->calculateDim1(lamLower));
+      const V2D lr(m_calculator->calculateDim0(lamUpper),
+                   m_calculator->calculateDim1(lamUpper));
+      m_calculator->setThetaFinal(thetaUpper);
+      const V2D ul(m_calculator->calculateDim0(lamLower),
+                   m_calculator->calculateDim1(lamLower));
+      const V2D ur(m_calculator->calculateDim0(lamUpper),
+                   m_calculator->calculateDim1(lamUpper));
+
+      Quadrilateral inputQ(ll, lr, ur, ul);
+      FractionalRebinning::rebinToFractionalOutput(inputQ, inputWS, i, j, outWS,
+                                                   zBinsVec);
+
+      // Find which qy bin this point lies in
+      const auto qIndex =
+          std::upper_bound(zBinsVec.begin(), zBinsVec.end(), ll.Y()) -
+          zBinsVec.begin();
+      if (qIndex != 0 && qIndex < static_cast<int>(zBinsVec.size())) {
+        // Add this spectra-detector pair to the mapping
+        specNumberMapping.push_back(
+            outWS->getSpectrum(qIndex - 1)->getSpectrumNo());
+        detIDMapping.push_back(detector->getID());
+      }
+    }
+  }
+  outWS->finalize();
+  FractionalRebinning::normaliseOutput(outWS, inputWS);
+
+  // Set the output spectrum-detector mapping
+  SpectrumDetectorMapping outputDetectorMap(specNumberMapping, detIDMapping);
+  outWS->updateSpectraUsing(outputDetectorMap);
+
+  outWS->getAxis(0)->title() = m_d0Label;
+  outWS->setYUnit("");
+  outWS->setYUnitLabel("Intensity");
+
+  return outWS;
+}
+
+/**
+ * A map detector ID and Q ranges
+ * This method looks unnecessary as it could be calculated on the fly but
+ * the parallelization means that lazy instantation slows it down due to the
+ * necessary CRITICAL sections required to update the cache. The Q range
+ * values are required very frequently so the total time is more than
+ * offset by this precaching step
+ */
+void ReflectometryTransform::initAngularCaches(
+    const API::MatrixWorkspace_const_sptr &workspace) const {
+  const size_t nhist = workspace->getNumberHistograms();
+  m_theta = std::vector<double>(nhist);
+  m_thetaWidths = std::vector<double>(nhist);
+
+  auto inst = workspace->getInstrument();
+  const auto samplePos = inst->getSample()->getPos();
+  const PointingAlong upDir = inst->getReferenceFrame()->pointingUp();
+
+  for (size_t i = 0; i < nhist; ++i) // signed for OpenMP
+  {
+    IDetector_const_sptr det;
+    try {
+      det = workspace->getDetector(i);
+    } catch (Kernel::Exception::NotFoundError &) {
+      // Catch if no detector. Next line tests whether this happened - test
+      // placed
+      // outside here because Mac Intel compiler doesn't like 'continue' in a
+      // catch
+      // in an openmp block.
+    }
+    // If no detector found, skip onto the next spectrum
+    if (!det || det->isMonitor()) {
+      m_theta[i] = -1.0; // Indicates a detector to skip
+      m_thetaWidths[i] = -1.0;
+      continue;
+    }
+    // We have to convert theta from radians to degrees
+    const double theta = workspace->detectorTwoTheta(det) * 180.0 / M_PI;
+    m_theta[i] = theta;
+
+    /**
+     * Determine width from shape geometry. A group is assumed to contain
+     * detectors with the same shape & r, theta value, i.e. a ring mapped-group
+     * The shape is retrieved and rotated to match the rotation of the detector.
+     * The angular width is computed using the l2 distance from the sample
+     */
+    if (auto group = boost::dynamic_pointer_cast<const DetectorGroup>(det)) {
+      // assume they all have same shape and same r,theta
+      auto dets = group->getDetectors();
+      det = dets[0];
+    }
+    const auto pos = det->getPos();
+    double l2(0.0), t(0.0), p(0.0);
+    pos.getSpherical(l2, t, p);
+    // Get the shape
+    auto shape =
+        det->shape(); // Defined in its own reference frame with centre at 0,0,0
+    auto rot = det->getRotation();
+    BoundingBox bbox = shape->getBoundingBox();
+    auto maxPoint(bbox.maxPoint());
+    rot.rotate(maxPoint);
+    double boxWidth = maxPoint[upDir];
+
+    m_thetaWidths[i] = std::fabs(2.0 * std::atan(boxWidth / l2)) * 180.0 / M_PI;
+  }
+}
+}
+}
diff --git a/Code/Mantid/Framework/DataObjects/src/SpecialWorkspace2D.cpp b/Code/Mantid/Framework/DataObjects/src/SpecialWorkspace2D.cpp
index 38abdb584af26e6b563ec016db79551491f08e26..3dbd363228bb49c76d67fdc5816c81d2f1ed352c 100644
--- a/Code/Mantid/Framework/DataObjects/src/SpecialWorkspace2D.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/SpecialWorkspace2D.cpp
@@ -72,6 +72,9 @@ SpecialWorkspace2D::SpecialWorkspace2D(API::MatrixWorkspace_const_sptr parent) {
   }
 }
 
+SpecialWorkspace2D::SpecialWorkspace2D(const SpecialWorkspace2D &other)
+    : Workspace2D(other), detID_to_WI(other.detID_to_WI) {}
+
 //----------------------------------------------------------------------------------------------
 /** Destructor
  */
diff --git a/Code/Mantid/Framework/DataObjects/src/TableWorkspace.cpp b/Code/Mantid/Framework/DataObjects/src/TableWorkspace.cpp
index d2eac12677952e2456f05e6a57f03a5735562a3d..80290952df3b2ed7f6dd530f2b46e329dd357764 100644
--- a/Code/Mantid/Framework/DataObjects/src/TableWorkspace.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/TableWorkspace.cpp
@@ -31,6 +31,19 @@ TableWorkspace::TableWorkspace(size_t nrows)
   setRowCount(nrows);
 }
 
+TableWorkspace::TableWorkspace(const TableWorkspace &other)
+    : ITableWorkspace(other), m_rowCount(0), m_LogManager(new API::LogManager) {
+  setRowCount(other.m_rowCount);
+
+  column_const_it it = other.m_columns.begin();
+  while (it != other.m_columns.end()) {
+    addColumn(boost::shared_ptr<API::Column>((*it)->clone()));
+    it++;
+  }
+  // copy logs/properties.
+  m_LogManager = boost::make_shared<API::LogManager>(*(other.m_LogManager));
+}
+
 /// Destructor
 TableWorkspace::~TableWorkspace() {}
 
@@ -194,18 +207,6 @@ bool TableWorkspace::addColumn(boost::shared_ptr<API::Column> column) {
   return true;
 }
 
-TableWorkspace *TableWorkspace::clone() const {
-  TableWorkspace *copy = new TableWorkspace(this->m_rowCount);
-  column_const_it it = m_columns.begin();
-  while (it != m_columns.end()) {
-    copy->addColumn(boost::shared_ptr<API::Column>((*it)->clone()));
-    it++;
-  }
-  // copy logs/properties.
-  copy->m_LogManager = boost::make_shared<API::LogManager>(*this->m_LogManager);
-  return copy;
-}
-
 /**
  * Sort.
  * @param criteria : a vector with a list of pairs: column name, bool;
diff --git a/Code/Mantid/Framework/DataObjects/src/Workspace2D.cpp b/Code/Mantid/Framework/DataObjects/src/Workspace2D.cpp
index 7b2482c782e8202b078746c1d845ade29d9ede78..983ce24c3764e28b54d47567f33205b9c640f9a0 100644
--- a/Code/Mantid/Framework/DataObjects/src/Workspace2D.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/Workspace2D.cpp
@@ -19,6 +19,19 @@ DECLARE_WORKSPACE(Workspace2D)
 /// Constructor
 Workspace2D::Workspace2D(): m_noVectors(0) {}
 
+Workspace2D::Workspace2D(const Workspace2D &other)
+    : MatrixWorkspace(other), m_noVectors(other.m_noVectors),
+      m_monitorList(other.m_monitorList) {
+  data.resize(m_noVectors);
+
+  for (size_t i = 0; i < m_noVectors; ++i) {
+    // Careful: data holds pointers to ISpectrum, but they point to Histogram1D.
+    // There are copy constructors, but we would need a clone() function that is
+    // aware of the polymorphism. Use cast + copy constructor for now.
+    data[i] = new Histogram1D(*static_cast<Histogram1D *>(other.data[i]));
+  }
+}
+
 /// Destructor
 Workspace2D::~Workspace2D() {
 // Clear out the memory
diff --git a/Code/Mantid/Framework/DataObjects/src/WorkspaceSingleValue.cpp b/Code/Mantid/Framework/DataObjects/src/WorkspaceSingleValue.cpp
index 099042d00171c2aaf71d84e8debf9aca261c2034..10c05ee50335cde3e374f3fa4785dd4143e7caa5 100644
--- a/Code/Mantid/Framework/DataObjects/src/WorkspaceSingleValue.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/WorkspaceSingleValue.cpp
@@ -21,6 +21,11 @@ WorkspaceSingleValue::WorkspaceSingleValue(double value, double error)
   isDistribution(true);
 }
 
+WorkspaceSingleValue::WorkspaceSingleValue(const WorkspaceSingleValue &other)
+    : MatrixWorkspace(other), data(other.data) {
+  isDistribution(true);
+}
+
 /// Destructor
 WorkspaceSingleValue::~WorkspaceSingleValue() {}
 
@@ -65,6 +70,9 @@ void WorkspaceSingleValue::generateHistogram(const std::size_t index,
       "generateHistogram() not implemented for WorkspaceSingleValue.");
 }
 
+/// Our parent MatrixWorkspace has hardcoded 2, but we need 0.
+size_t WorkspaceSingleValue::getNumDims() const { return 0; }
+
 } // namespace DataObjects
 } // namespace Mantid
 
diff --git a/Code/Mantid/Framework/DataObjects/test/EventListTest.h b/Code/Mantid/Framework/DataObjects/test/EventListTest.h
index 0d35a7448331ca34e3cc20aeb3a5296aa045c5b9..eaac6ad80338e4d024661c26327888b116c3a27f 100644
--- a/Code/Mantid/Framework/DataObjects/test/EventListTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/EventListTest.h
@@ -1333,7 +1333,7 @@ public:
       TS_ASSERT_DELTA( this->el.readX()[1], MAX_TOF, 1e-4);
 
       //Do convert
-      this->el.convertTof(2.5, 1);
+      this->el.convertTof(2.5, 1.);
       //Unchanged size
       TS_ASSERT_EQUALS(old_num, this->el.getNumberEvents());
       //Original tofs were 100, 5100, 10100, etc.)
diff --git a/Code/Mantid/Framework/DataObjects/test/GroupingWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/GroupingWorkspaceTest.h
index e2d50414f9bb16fde14aea5568fa564dad4e924a..7e06e3fe308d7da38c1d6fc9a5b9f8a1f1d4a818 100644
--- a/Code/Mantid/Framework/DataObjects/test/GroupingWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/GroupingWorkspaceTest.h
@@ -60,6 +60,39 @@ public:
     TS_ASSERT_EQUALS( map[45], 5 );
   }
 
+  void testClone() {
+    // As test_constructor_from_Instrument(), set on ws, get on clone.
+    // Fake instrument with 5*9 pixels with ID starting at 1
+    Instrument_sptr inst = ComponentCreationHelper::createTestInstrumentCylindrical(5);
+
+    GroupingWorkspace_sptr ws(new GroupingWorkspace(inst));
+    auto cloned = ws->clone();
+
+    TS_ASSERT_EQUALS( cloned->getNumberHistograms(), 45);
+    TS_ASSERT_EQUALS( cloned->blocksize(), 1);
+    TS_ASSERT_EQUALS( cloned->getInstrument()->getName(), "basic"); // Name of the test instrument
+    std::set<detid_t> dets = cloned->getSpectrum(0)->getDetectorIDs();
+    TS_ASSERT_EQUALS(dets.size(), 1);
+
+    // Set the group numbers
+    for (int group=0; group<5; group++)
+      for (int i=0; i<9; i++)
+        ws->dataY(group*9+i)[0] = double(group+1);
+    cloned = ws->clone();
+
+    // Get the map
+    std::map<detid_t,int> map;
+    int64_t ngroups;
+    cloned->makeDetectorIDToGroupMap(map, ngroups);
+
+    TS_ASSERT_EQUALS(ngroups, 5);
+
+    TS_ASSERT_EQUALS( map[1], 1 );
+    TS_ASSERT_EQUALS( map[9], 1 );
+    TS_ASSERT_EQUALS( map[10], 2 );
+    TS_ASSERT_EQUALS( map[45], 5 );
+  }
+
 
 };
 
diff --git a/Code/Mantid/Framework/DataObjects/test/MDBoxBaseTest.h b/Code/Mantid/Framework/DataObjects/test/MDBoxBaseTest.h
index c0efc3014edda7d1992f099f4726094afa2dae0b..97f4915718ba01d8488855ea8bc79cf7011dfe33 100644
--- a/Code/Mantid/Framework/DataObjects/test/MDBoxBaseTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/MDBoxBaseTest.h
@@ -121,6 +121,8 @@ public:
   virtual void refreshCache(Kernel::ThreadScheduler * /*ts*/ = NULL){};
   //virtual void refreshCentroid(Kernel::ThreadScheduler * /*ts*/ = NULL){};
   virtual void calculateCentroid(coord_t * /*centroid*/) const{};
+  virtual void calculateCentroid(coord_t * /*centroid*/,
+                                 const int /*runindex*/) const {};
   virtual coord_t * getCentroid() const{return 0;};
   virtual void integrateSphere(Mantid::API::CoordTransform & /*radiusTransform*/, const coord_t /*radiusSquared*/, signal_t & /*signal*/, signal_t & /*errorSquared*/) const {};
   virtual void centroidSphere(Mantid::API::CoordTransform & /*radiusTransform*/, const coord_t /*radiusSquared*/, coord_t *, signal_t & ) const {};
diff --git a/Code/Mantid/Framework/DataObjects/test/MDEventWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/MDEventWorkspaceTest.h
index 02a1faa6b52b48140325fa4aab142dac3938d80e..8586712472e44129a4330aa94d35e1a75685f7e4 100644
--- a/Code/Mantid/Framework/DataObjects/test/MDEventWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/MDEventWorkspaceTest.h
@@ -87,6 +87,12 @@ public:
     delete ew3;
   }
 
+  class TestableMDEventWorkspace : public MDEventWorkspace<MDLeanEvent<3>, 3> {
+  public:
+    TestableMDEventWorkspace(const MDEventWorkspace<MDLeanEvent<3>, 3> &other)
+        : MDEventWorkspace<MDLeanEvent<3>, 3>(other) {}
+  };
+
   void test_copy_constructor()
   {
     MDEventWorkspace<MDLeanEvent<3>, 3> ew3;
@@ -105,7 +111,7 @@ public:
     ExperimentInfo_sptr ei(new ExperimentInfo);
     TS_ASSERT_EQUALS( ew3.addExperimentInfo(ei), 0);
 
-    MDEventWorkspace<MDLeanEvent<3>, 3> copy(ew3);
+    TestableMDEventWorkspace copy(ew3);
     TS_ASSERT_EQUALS( copy.getNumDims(), 3);
     TS_ASSERT_EQUALS( copy.getDimension(0)->getName(), "x");
     TS_ASSERT_EQUALS( copy.getNumExperimentInfo(), 1);
diff --git a/Code/Mantid/Framework/DataObjects/test/MDHistoWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/MDHistoWorkspaceTest.h
index d15c48a8ec45056739476d54d289b813060ab08e..6cd73109c4afca048a148c2fd8ccb174f1ef71a8 100644
--- a/Code/Mantid/Framework/DataObjects/test/MDHistoWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/MDHistoWorkspaceTest.h
@@ -207,6 +207,11 @@ public:
     TS_ASSERT_DELTA( data[5], 2.3456, 1e-5);
   }
 
+  class TestableMDHistoWorkspace : public MDHistoWorkspace {
+  public:
+    TestableMDHistoWorkspace(const MDHistoWorkspace &other)
+        : MDHistoWorkspace(other) {}
+  };
 
   //--------------------------------------------------------------------------------------
   void test_copy_constructor()
@@ -215,7 +220,7 @@ public:
     a->addExperimentInfo( ExperimentInfo_sptr(new ExperimentInfo()) );
     for (size_t i=0; i<a->getNPoints(); i++)
       a->setNumEventsAt(i, 123.);
-    MDHistoWorkspace_sptr b( new MDHistoWorkspace(*a));
+    MDHistoWorkspace_sptr b( new TestableMDHistoWorkspace(*a));
     TS_ASSERT_EQUALS( b->getNumDims(), a->getNumDims() );
     TS_ASSERT_EQUALS( b->getNPoints(), a->getNPoints() );
     TS_ASSERT_EQUALS( b->getNumExperimentInfo(), a->getNumExperimentInfo() );
diff --git a/Code/Mantid/Framework/DataObjects/test/MaskWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/MaskWorkspaceTest.h
index 9e1fadd78790415ae8f271e6c28e6b07b7f7318e..c612857cf22f4c85d0ed7793fea32978b412f322 100644
--- a/Code/Mantid/Framework/DataObjects/test/MaskWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/MaskWorkspaceTest.h
@@ -46,6 +46,41 @@ public:
         TS_ASSERT(maskWS.isMasked(0));
     }
 
+    void testClone() {
+        // As test_mask_accessors(), set on ws, get on clone.
+        int pixels = 10;
+        int maskpixels = 25;
+
+        Mantid::Geometry::Instrument_sptr inst =
+                ComponentCreationHelper::createTestInstrumentRectangular2(1,pixels);
+        inst->setName("MaskWorkspaceTest_Instrument");
+
+        Mantid::DataObjects::MaskWorkspace maskWS(inst, false);
+        for (int i = 0; i < maskpixels; i++)
+          maskWS.setMasked(i); // mask the pixel
+
+        auto cloned = maskWS.clone();
+        TS_ASSERT_EQUALS(cloned->getNumberHistograms(), pixels*pixels);
+        TS_ASSERT_EQUALS(cloned->getNumberMasked(), maskpixels);
+        TS_ASSERT(cloned->isMasked(0));
+        TS_ASSERT_EQUALS(cloned->isMasked(maskpixels), false); // one past the masked ones
+
+        // unmask a pixel and check it
+        maskWS.setMasked(0, false);
+        cloned = maskWS.clone();
+        TS_ASSERT_EQUALS(cloned->isMasked(0), false);
+
+        // check of a group of pixels
+        std::set<Mantid::detid_t> detIds;
+        detIds.insert(0); // isn't masked
+        TS_ASSERT_EQUALS(cloned->isMasked(detIds), false);
+        detIds.insert(1); // is masked
+        TS_ASSERT_EQUALS(cloned->isMasked(detIds), false);
+        detIds.erase(0);
+        detIds.insert(2);
+        TS_ASSERT_EQUALS(cloned->isMasked(detIds), true);
+    }
+
     void test_mask_accessors()
     {
         int pixels = 10;
diff --git a/Code/Mantid/Framework/DataObjects/test/MementoTableWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/MementoTableWorkspaceTest.h
index cad24bb6bf2d94375c25281c17f3675bd9636d34..343980ad6a1ac9b697020f7abb11296bfd5b92f2 100644
--- a/Code/Mantid/Framework/DataObjects/test/MementoTableWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/MementoTableWorkspaceTest.h
@@ -29,6 +29,40 @@ public:
     TSM_ASSERT_EQUALS("Wrong number of columns constructed", 11, pWs->columnCount());
   }
 
+  void testClone()
+  {
+    MementoTableWorkspace tw(1);
+
+    tw.getColumn(0)->cell<std::string>(0) = "a";
+    tw.getColumn(1)->cell<std::string>(0) = "b";
+    tw.getColumn(2)->cell<int>(0) = 421;
+    tw.getColumn(3)->cell<std::string>(0) = "c";
+    tw.getColumn(4)->cell<double>(0) = 1.1;
+    tw.getColumn(5)->cell<double>(0) = 2.1;
+    tw.getColumn(6)->cell<double>(0) = 3.1;
+    tw.getColumn(7)->cell<double>(0) = 4.1;
+    tw.getColumn(8)->cell<double>(0) = 5.1;
+    tw.getColumn(9)->cell<double>(0) = 6.1;
+    tw.getColumn(10)->cell<std::string>(0) = "d";
+
+    auto cloned = tw.clone();
+
+    // Check clone is same as original.
+    TS_ASSERT_EQUALS(tw.columnCount(), cloned->columnCount());
+    TS_ASSERT_EQUALS(tw.rowCount(), cloned->rowCount());
+    TS_ASSERT_EQUALS("a", cloned->getColumn(0)->cell<std::string>(0));
+    TS_ASSERT_EQUALS("b", cloned->getColumn(1)->cell<std::string>(0));
+    TS_ASSERT_EQUALS(421, cloned->getColumn(2)->cell<int>(0));
+    TS_ASSERT_EQUALS("c", cloned->getColumn(3)->cell<std::string>(0));
+    TS_ASSERT_EQUALS(1.1, cloned->getColumn(4)->cell<double>(0));
+    TS_ASSERT_EQUALS(2.1, cloned->getColumn(5)->cell<double>(0));
+    TS_ASSERT_EQUALS(3.1, cloned->getColumn(6)->cell<double>(0));
+    TS_ASSERT_EQUALS(4.1, cloned->getColumn(7)->cell<double>(0));
+    TS_ASSERT_EQUALS(5.1, cloned->getColumn(8)->cell<double>(0));
+    TS_ASSERT_EQUALS(6.1, cloned->getColumn(9)->cell<double>(0));
+    TS_ASSERT_EQUALS("d", cloned->getColumn(10)->cell<std::string>(0));
+  }
+
   void testCompareWithWrongNColumns()
   {
     //Create a table workspace with too few columns.
diff --git a/Code/Mantid/Framework/DataObjects/test/OffsetsWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/OffsetsWorkspaceTest.h
index f6faaa94d18af10e17db1c6a4b33df3b934cffbd..96fe36a68b4f94671039220f8c6d123acb042fe3 100644
--- a/Code/Mantid/Framework/DataObjects/test/OffsetsWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/OffsetsWorkspaceTest.h
@@ -8,6 +8,7 @@
 #include <iomanip>
 
 #include "MantidDataObjects/OffsetsWorkspace.h"
+#include "MantidTestHelpers/ComponentCreationHelper.h"
 
 using namespace Mantid::DataObjects;
 using namespace Mantid::API;
@@ -20,7 +21,12 @@ public:
   {
   }
 
+  void testClone() {
+    auto inst = ComponentCreationHelper::createTestInstrumentCylindrical(5);
 
+    OffsetsWorkspace ws(inst);
+    TS_ASSERT_THROWS_NOTHING(ws.clone());
+  }
 };
 
 
diff --git a/Code/Mantid/Framework/DataObjects/test/PeakShapeEllipsoidTest.h b/Code/Mantid/Framework/DataObjects/test/PeakShapeEllipsoidTest.h
index 74438548220d15fc4571f497ea4e1ab05565d6ff..c67bc7c1b049c7daf86372aabe4a224c8e3aca78 100644
--- a/Code/Mantid/Framework/DataObjects/test/PeakShapeEllipsoidTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/PeakShapeEllipsoidTest.h
@@ -127,6 +127,19 @@ public:
     TS_ASSERT_EQUALS(a.algorithmVersion(), b.algorithmVersion());
   }
 
+  void test_radius() {
+
+      std::vector<double> radius = list_of(1)(2)(3);
+
+
+      PeakShapeEllipsoid shape(list_of(V3D(1, 0, 0))(V3D(0, 1, 0))(V3D(0, 0, 1))
+                                   .convert_to_container<std::vector<V3D>>(),
+                               radius, radius, radius, Mantid::Kernel::HKL);
+
+      TSM_ASSERT_EQUALS("Radius should be taken to be the max of the ABC radii", 3.0, shape.radius());
+
+  }
+
   void test_shape_name() {
 
     // Construct it.
diff --git a/Code/Mantid/Framework/DataObjects/test/PeaksWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/PeaksWorkspaceTest.h
index e3a6d2fe3eedfe0077ed698283b93ea73f2b1abf..f5b77d42558be9ab970b14507b48c0dbb455f7db 100644
--- a/Code/Mantid/Framework/DataObjects/test/PeaksWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/PeaksWorkspaceTest.h
@@ -73,10 +73,16 @@ public:
     checkPW(*pw);
   }
 
+  class TestablePeaksWorkspace : public PeaksWorkspace {
+  public:
+    TestablePeaksWorkspace(const PeaksWorkspace &other)
+        : PeaksWorkspace(other) {}
+  };
+
   void test_copyConstructor()
   {
     auto pw = buildPW();
-    auto pw2 = PeaksWorkspace_sptr(new PeaksWorkspace(*pw));
+    auto pw2 = PeaksWorkspace_sptr(new TestablePeaksWorkspace(*pw));
     checkPW(*pw2);
   }
 
diff --git a/Code/Mantid/Framework/DataObjects/test/RebinnedOutputTest.h b/Code/Mantid/Framework/DataObjects/test/RebinnedOutputTest.h
index ed2cf9cbe8c3501cae5f46655e5070f6baf81811..3ab8ad1114e740cebee4ed320da13230acd6b9d8 100644
--- a/Code/Mantid/Framework/DataObjects/test/RebinnedOutputTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/RebinnedOutputTest.h
@@ -31,6 +31,21 @@ public:
     ws = WorkspaceCreationHelper::CreateRebinnedOutputWorkspace();
   }
 
+  void testClone() {
+    RebinnedOutput_sptr cloned(ws->clone().release());
+
+    // Swap ws with cloned pointer, such that we can reuse existing tests.
+    ws.swap(cloned);
+
+    // Run all other tests on ws.
+    testId();
+    testRepresentation();
+    testSetF();
+
+    // Undo swap, to avoid possible interferences.
+    ws.swap(cloned);
+  }
+
   void testId()
   {
     TS_ASSERT_EQUALS( ws->id(), "RebinnedOutput" );
diff --git a/Code/Mantid/Framework/DataObjects/test/SpecialWorkspace2DTest.h b/Code/Mantid/Framework/DataObjects/test/SpecialWorkspace2DTest.h
index aa80a7caa2cae63a8d6cda036ab50d6a14322dbd..9a9076ef04bc696385acbda97e7157bd10889157 100644
--- a/Code/Mantid/Framework/DataObjects/test/SpecialWorkspace2DTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/SpecialWorkspace2DTest.h
@@ -32,6 +32,32 @@ public:
     TS_ASSERT_EQUALS( ws->blocksize(), 1);
   }
 
+  void testClone() {
+    // As test_setValue_getValue, set on ws, get on clone.
+    Instrument_sptr inst =
+        ComponentCreationHelper::createTestInstrumentCylindrical(5);
+    SpecialWorkspace2D_sptr ws(new SpecialWorkspace2D(inst));
+
+    auto cloned = ws->clone();
+    TS_ASSERT_DIFFERS(cloned->getValue(1), 12.3);
+    TS_ASSERT_THROWS_NOTHING(ws->setValue(1, 12.3));
+    cloned = ws->clone();
+    TS_ASSERT_DELTA(cloned->getValue(1), 12.3, 1e-6);
+    TS_ASSERT_THROWS_ANYTHING(ws->setValue(46, 789));
+    TS_ASSERT_THROWS_ANYTHING(ws->setValue(-1, 789));
+    cloned = ws->clone();
+    TS_ASSERT_THROWS_ANYTHING(cloned->getValue(47));
+    TS_ASSERT_THROWS_ANYTHING(cloned->getValue(-34));
+    TS_ASSERT_EQUALS(cloned->getValue(47, 5.0), 5.0);
+    TS_ASSERT_EQUALS(cloned->getValue(147, -12.0), -12.0);
+
+    // Some extra tests: 1. clone ws, 2. set on ws, 3. clone should differ.
+    cloned = ws->clone();
+    TS_ASSERT_DELTA(cloned->getValue(1), 12.3, 1e-6);
+    TS_ASSERT_THROWS_NOTHING(ws->setValue(1, 1.1));
+    TS_ASSERT_DIFFERS(cloned->getValue(1), 1.1);
+  }
+
   void test_constructor_from_Instrument()
   {
     // Fake instrument with 5*9 pixels with ID starting at 1
diff --git a/Code/Mantid/Framework/DataObjects/test/SplittersWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/SplittersWorkspaceTest.h
index 18fe880633ce63d62445a5c21b60d1f8c551199b..72f862be4e23a6e7a263f07cd8461f04af27cc03 100644
--- a/Code/Mantid/Framework/DataObjects/test/SplittersWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/SplittersWorkspaceTest.h
@@ -23,6 +23,26 @@ public:
   static void destroySuite( SplittersWorkspaceTest *suite ) { delete suite; }
 
 
+  void testClone()
+  {
+    SplittersWorkspace splitterws;
+
+    Kernel::SplittingInterval s1(Kernel::DateAndTime(10000), Kernel::DateAndTime(15000), 1);
+    Kernel::SplittingInterval s2(Kernel::DateAndTime(20000), Kernel::DateAndTime(30000), 3);
+    Kernel::SplittingInterval s3(Kernel::DateAndTime(40000), Kernel::DateAndTime(50000), 2);
+
+    splitterws.addSplitter(s1);
+    splitterws.addSplitter(s2);
+    splitterws.addSplitter(s3);
+
+    auto cloned = splitterws.clone();
+
+    // Check clone is same as original.
+    TS_ASSERT_EQUALS(splitterws.columnCount(), cloned->columnCount());
+    TS_ASSERT_EQUALS(splitterws.rowCount(), cloned->rowCount());
+    TS_ASSERT_EQUALS(splitterws.getNumberSplitters(), 3);
+  }
+
   void test_Add()
   {
     DataObjects::SplittersWorkspace splitterws;
diff --git a/Code/Mantid/Framework/DataObjects/test/TableWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/TableWorkspaceTest.h
index efff716365fb4608846bea415d4823729415b3d0..033cc65352b6db1c4556dc9fef9e41f70b3c8cfc 100644
--- a/Code/Mantid/Framework/DataObjects/test/TableWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/TableWorkspaceTest.h
@@ -311,7 +311,7 @@ public:
     tw.getColumn(1)->cell<std::string>(0) = "b";
     tw.getColumn(2)->cell<std::string>(0) = "c";
 
-    boost::scoped_ptr<TableWorkspace> cloned(tw.clone());
+    boost::scoped_ptr<TableWorkspace> cloned(tw.clone().release());
 
     //Check clone is same as original.
     TS_ASSERT_EQUALS(tw.columnCount(), cloned->columnCount());
diff --git a/Code/Mantid/Framework/DataObjects/test/Workspace2DTest.h b/Code/Mantid/Framework/DataObjects/test/Workspace2DTest.h
index e336b88a67bd03a11891ac313f9e990ba7531993..fceebf456a1714ef9f0dc4af8a273433eb2fe4a9 100644
--- a/Code/Mantid/Framework/DataObjects/test/Workspace2DTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/Workspace2DTest.h
@@ -56,6 +56,20 @@ public:
     return retVal;
   }
 
+  void testClone() {
+    Workspace2D_sptr cloned(ws->clone().release());
+
+    // Swap ws with cloned pointer, such that we can reuse existing tests.
+    ws.swap(cloned);
+
+    // Run all other (non-destructive) tests on ws.
+    testInit();
+    testId();
+    testDataDx();
+
+    // Undo swap, to avoid possible interferences.
+    ws.swap(cloned);
+  }
 
   void testInit()
   {
diff --git a/Code/Mantid/Framework/DataObjects/test/WorkspaceSingleValueTest.h b/Code/Mantid/Framework/DataObjects/test/WorkspaceSingleValueTest.h
index c2fc97e82839d4143395acaef93f4f7944830571..342fb2466c0bdcf152af1985325af42f44694a7a 100644
--- a/Code/Mantid/Framework/DataObjects/test/WorkspaceSingleValueTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/WorkspaceSingleValueTest.h
@@ -29,6 +29,16 @@ public:
     TS_ASSERT_DELTA(2,ws.dataE(0)[0],1e-6);
   }
 
+  void testClone()
+  {
+    WorkspaceSingleValue ws(2.0, 0.1);
+    auto cloned = ws.clone();
+
+    TS_ASSERT_EQUALS(ws.dataX(0)[0], cloned->dataX(0)[0]);
+    TS_ASSERT_EQUALS(ws.dataY(0)[0], cloned->dataY(0)[0]);
+    TS_ASSERT_EQUALS(ws.dataE(0)[0], cloned->dataE(0)[0]);
+  }
+
   void testsetgetXvector()
   {
     WorkspaceSingleValue ws;
@@ -52,5 +62,11 @@ public:
     TS_ASSERT_EQUALS(v1,ws.dataE(0));
   }
 
+  void testgetNumDims()
+  {
+    WorkspaceSingleValue ws;
+    TS_ASSERT_EQUALS(0, ws.getNumDims());
+  }
+
 };
 #endif /*TESTWORKSPACESINGLEVALUE_*/
diff --git a/Code/Mantid/Framework/Geometry/CMakeLists.txt b/Code/Mantid/Framework/Geometry/CMakeLists.txt
index 1cf4c6c0f83f92f21c7241404296d28034ea2ef8..c429aa2a83b419896394e92a183a73359e22d06f 100644
--- a/Code/Mantid/Framework/Geometry/CMakeLists.txt
+++ b/Code/Mantid/Framework/Geometry/CMakeLists.txt
@@ -9,16 +9,16 @@ set ( SRC_FILES
 	src/Crystal/CrystalStructure.cpp
 	src/Crystal/CyclicGroup.cpp
 	src/Crystal/Group.cpp
-        src/Crystal/IPeak.cpp
+	src/Crystal/IPeak.cpp
 	src/Crystal/IndexingUtils.cpp
 	src/Crystal/IsotropicAtomBraggScatterer.cpp
 	src/Crystal/NiggliCell.cpp
 	src/Crystal/OrientedLattice.cpp
-        src/Crystal/PeakTransform.cpp
-        src/Crystal/PeakTransformHKL.cpp
-        src/Crystal/PeakTransformQLab.cpp
-        src/Crystal/PeakTransformQSample.cpp
-        src/Crystal/PeakTransformSelector.cpp
+	src/Crystal/PeakTransform.cpp
+	src/Crystal/PeakTransformHKL.cpp
+	src/Crystal/PeakTransformQLab.cpp
+	src/Crystal/PeakTransformQSample.cpp
+	src/Crystal/PeakTransformSelector.cpp
 	src/Crystal/PointGroup.cpp
 	src/Crystal/PointGroupFactory.cpp
 	src/Crystal/ProductOfCyclicGroups.cpp
@@ -72,14 +72,13 @@ set ( SRC_FILES
 	src/Math/Algebra.cpp
 	src/Math/BnId.cpp
 	src/Math/ConvexPolygon.cpp
-	src/Math/LaszloIntersection.cpp
+	src/Math/ConvexPolygonIterator.cpp
 	src/Math/PolyBase.cpp
 	src/Math/PolygonEdge.cpp
+	src/Math/PolygonIntersection.cpp
 	src/Math/Quadrilateral.cpp
 	src/Math/RotCounter.cpp
 	src/Math/Triple.cpp
-	src/Math/Vertex2D.cpp
-	src/Math/Vertex2DList.cpp
 	src/Math/mathSupport.cpp
 	src/Objects/BoundingBox.cpp
 	src/Objects/InstrumentRayTracer.cpp
@@ -117,11 +116,11 @@ set ( OPENCASCADE_SRC
 )
 
 set ( SRC_UNITY_IGNORE_FILES src/Instrument/CompAssembly.cpp
-  src/Instrument/ObjCompAssembly.cpp 
+  src/Instrument/ObjCompAssembly.cpp
   src/Rendering/OCGeometryHandler.cpp
   src/Rendering/OCGeometryRenderer.cpp
 )
-        
+
 set ( INC_FILES
 	inc/MantidGeometry/ComponentParser.h
 	inc/MantidGeometry/Crystal/BraggScatterer.h
@@ -129,24 +128,24 @@ set ( INC_FILES
 	inc/MantidGeometry/Crystal/BraggScattererInCrystalStructure.h
 	inc/MantidGeometry/Crystal/CenteringGroup.h
 	inc/MantidGeometry/Crystal/CompositeBraggScatterer.h
-        inc/MantidGeometry/Crystal/ConcretePeakTransformFactory.h
+	inc/MantidGeometry/Crystal/ConcretePeakTransformFactory.h
 	inc/MantidGeometry/Crystal/ConventionalCell.h
 	inc/MantidGeometry/Crystal/CrystalStructure.h
 	inc/MantidGeometry/Crystal/CyclicGroup.h
 	inc/MantidGeometry/Crystal/Group.h
-        inc/MantidGeometry/Crystal/IPeak.h
+	inc/MantidGeometry/Crystal/IPeak.h
 	inc/MantidGeometry/Crystal/IndexingUtils.h
 	inc/MantidGeometry/Crystal/IsotropicAtomBraggScatterer.h
 	inc/MantidGeometry/Crystal/NiggliCell.h
 	inc/MantidGeometry/Crystal/OrientedLattice.h
 	inc/MantidGeometry/Crystal/PeakShape.h
 	inc/MantidGeometry/Crystal/PeakTransform.h
-        inc/MantidGeometry/Crystal/PeakTransformFactory.h
-        inc/MantidGeometry/Crystal/PeakTransformHKL.h
-        inc/MantidGeometry/Crystal/PeakTransformQLab.h
-        inc/MantidGeometry/Crystal/PeakTransformQSample.h
-        inc/MantidGeometry/Crystal/PeakTransformSelector.h
-        inc/MantidGeometry/Crystal/PointGroup.h
+	inc/MantidGeometry/Crystal/PeakTransformFactory.h
+	inc/MantidGeometry/Crystal/PeakTransformHKL.h
+	inc/MantidGeometry/Crystal/PeakTransformQLab.h
+	inc/MantidGeometry/Crystal/PeakTransformQSample.h
+	inc/MantidGeometry/Crystal/PeakTransformSelector.h
+	inc/MantidGeometry/Crystal/PointGroup.h
 	inc/MantidGeometry/Crystal/PointGroupFactory.h
 	inc/MantidGeometry/Crystal/ProductOfCyclicGroups.h
 	inc/MantidGeometry/Crystal/ReducedCell.h
@@ -210,15 +209,13 @@ set ( INC_FILES
 	inc/MantidGeometry/Math/Algebra.h
 	inc/MantidGeometry/Math/BnId.h
 	inc/MantidGeometry/Math/ConvexPolygon.h
-	inc/MantidGeometry/Math/LaszloIntersection.h
 	inc/MantidGeometry/Math/MapSupport.h
 	inc/MantidGeometry/Math/PolyBase.h
 	inc/MantidGeometry/Math/PolygonEdge.h
+	inc/MantidGeometry/Math/PolygonIntersection.h
 	inc/MantidGeometry/Math/Quadrilateral.h
 	inc/MantidGeometry/Math/RotCounter.h
 	inc/MantidGeometry/Math/Triple.h
-	inc/MantidGeometry/Math/Vertex2D.h
-	inc/MantidGeometry/Math/Vertex2DList.h
 	inc/MantidGeometry/Math/mathSupport.h
 	inc/MantidGeometry/Objects/BoundingBox.h
 	inc/MantidGeometry/Objects/InstrumentRayTracer.h
@@ -260,6 +257,7 @@ set ( TEST_FILES
 	ConeTest.h
 	ConventionalCellTest.h
 	ConvexPolygonTest.h
+	ConvexPolygonIteratorTest.h
 	CrystalStructureTest.h
 	CyclicGroupTest.h
 	CylinderTest.h
@@ -277,7 +275,6 @@ set ( TEST_FILES
 	InstrumentRayTracerTest.h
 	InstrumentTest.h
 	IsotropicAtomBraggScattererTest.h
-	LaszloIntersectionTest.h
 	LineIntersectVisitTest.h
 	LineTest.h
 	MDBoxImplicitFunctionTest.h
@@ -305,14 +302,15 @@ set ( TEST_FILES
 	ParObjComponentTest.h
 	ParameterMapTest.h
 	ParametrizedComponentTest.h
-        PeakTransformHKLTest.h
-        PeakTransformQLabTest.h
-        PeakTransformQSampleTest.h
-        PeakTransformSelectorTest.h	
-        PlaneTest.h
+	PeakTransformHKLTest.h
+	PeakTransformQLabTest.h
+	PeakTransformQSampleTest.h
+	PeakTransformSelectorTest.h
+	PlaneTest.h
 	PointGroupFactoryTest.h
 	PointGroupTest.h
 	PolygonEdgeTest.h
+	PolygonIntersectionTest.h
 	ProductOfCyclicGroupsTest.h
 	QuadrilateralTest.h
 	RectangularDetectorPixelTest.h
@@ -345,8 +343,6 @@ set ( TEST_FILES
 	TripleTest.h
 	UnitCellTest.h
 	V3RTest.h
-	Vertex2DListTest.h
-	Vertex2DTest.h
 	XMLInstrumentParameterTest.h
 )
 
@@ -387,12 +383,12 @@ enable_precompiled_headers( inc/MantidGeometry/PrecompiledHeader.h SRC_FILES )
 # Add the target for this directory
 add_library ( Geometry ${SRC_FILES} ${INC_FILES} )
 # Set the name of the generated library
-set_target_properties ( Geometry PROPERTIES OUTPUT_NAME MantidGeometry 
+set_target_properties ( Geometry PROPERTIES OUTPUT_NAME MantidGeometry
                                             COMPILE_DEFINITIONS IN_MANTID_GEOMETRY )
 
 if (OSX_VERSION VERSION_GREATER 10.8)
   set_target_properties ( Geometry PROPERTIES INSTALL_RPATH "@loader_path/../MacOS")
-endif () 
+endif ()
 
 # Add to the 'Framework' group in VS
 set_property ( TARGET Geometry PROPERTY FOLDER "MantidFramework" )
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroup.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroup.h
index 173250ca70bfef696de6946fdc98b4aa4a83f5ab..bb82c73e0ec79cdf90054914e6792ecc45e1abf6 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroup.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroup.h
@@ -3,6 +3,7 @@
 
 #include "MantidGeometry/DllConfig.h"
 #include "MantidGeometry/Crystal/Group.h"
+#include "MantidGeometry/Crystal/PointGroup.h"
 #include "MantidGeometry/Crystal/SymmetryOperation.h"
 #include "MantidKernel/V3D.h"
 
@@ -87,6 +88,11 @@ public:
     return equivalents;
   }
 
+  bool isAllowedReflection(const Kernel::V3D &hkl) const;
+
+  PointGroup_sptr getPointGroup() const;
+  Group_const_sptr getSiteSymmetryGroup(const Kernel::V3D &position) const;
+
 protected:
   size_t m_number;
   std::string m_hmSymbol;
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroupFactory.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroupFactory.h
index df07af3307d5327d92f02c486a8206a1e7d3adaa..51c2840f8976a6aa2e8aac978f7583301b78bc6c 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroupFactory.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroupFactory.h
@@ -12,7 +12,7 @@ namespace Mantid {
 namespace Geometry {
 
 bool MANTID_GEOMETRY_DLL
-    isValidGeneratorString(const std::string &generatorString);
+isValidGeneratorString(const std::string &generatorString);
 
 /**
  * @class AbstractSpaceGroupGenerator
@@ -58,7 +58,7 @@ private:
 };
 
 typedef boost::shared_ptr<AbstractSpaceGroupGenerator>
-    AbstractSpaceGroupGenerator_sptr;
+AbstractSpaceGroupGenerator_sptr;
 
 /// Concrete space group generator that uses space group generators as given in
 /// ITA.
@@ -142,6 +142,9 @@ public:
   std::vector<std::string> subscribedSpaceGroupSymbols(size_t number) const;
   std::vector<size_t> subscribedSpaceGroupNumbers() const;
 
+  std::vector<std::string>
+  subscribedSpaceGroupSymbols(const PointGroup_sptr &pointGroup);
+
   void unsubscribeSpaceGroup(const std::string &hmSymbol);
 
   void subscribeGeneratedSpaceGroup(size_t number, const std::string &hmSymbol,
@@ -171,8 +174,11 @@ protected:
   SpaceGroup_const_sptr
   constructFromPrototype(const SpaceGroup_const_sptr prototype) const;
 
+  void fillPointGroupMap();
+
   std::multimap<size_t, std::string> m_numberMap;
   std::map<std::string, AbstractSpaceGroupGenerator_sptr> m_generatorMap;
+  std::multimap<std::string, std::string> m_pointGroupMap;
 
   SpaceGroupFactoryImpl();
 
@@ -183,11 +189,11 @@ private:
 // This is taken from FuncMinimizerFactory
 #ifdef _WIN32
 template class MANTID_GEOMETRY_DLL
-    Mantid::Kernel::SingletonHolder<SpaceGroupFactoryImpl>;
+Mantid::Kernel::SingletonHolder<SpaceGroupFactoryImpl>;
 #endif
 
 typedef Mantid::Kernel::SingletonHolder<SpaceGroupFactoryImpl>
-    SpaceGroupFactory;
+SpaceGroupFactory;
 
 } // namespace Geometry
 } // namespace Mantid
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SymmetryElement.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SymmetryElement.h
index 41a878d6016e42feb07af8ca03c6f1b080ba2647..d8b9801c3ea64eb7e387aa93bde9daebe20d9b83 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SymmetryElement.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SymmetryElement.h
@@ -175,7 +175,8 @@ class MANTID_GEOMETRY_DLL SymmetryElementRotation
 public:
   enum RotationSense {
     Positive,
-    Negative
+    Negative,
+    None
   };
 
   SymmetryElementRotation(const std::string &symbol, const V3R &axis,
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SymmetryOperation.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SymmetryOperation.h
index aeef5601af896342ea6e9a66244743004c6fe7ae..fdb10b8f6c03afc9ac9164d535901aff8a658283 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SymmetryOperation.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Crystal/SymmetryOperation.h
@@ -129,6 +129,7 @@ public:
 
   const Kernel::IntMatrix &matrix() const;
   const V3R &vector() const;
+  const V3R &reducedVector() const;
 
   size_t order() const;
   std::string identifier() const;
@@ -162,11 +163,14 @@ protected:
   void init(const Kernel::IntMatrix &matrix, const V3R &vector);
 
   size_t getOrderFromMatrix(const Kernel::IntMatrix &matrix) const;
+  V3R getReducedVector(const Kernel::IntMatrix &matrix,
+                       const V3R &vector) const;
 
   size_t m_order;
   Kernel::IntMatrix m_matrix;
   Kernel::IntMatrix m_inverseMatrix;
   V3R m_vector;
+  V3R m_reducedVector;
   std::string m_identifier;
 };
 
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/ComponentHelper.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/ComponentHelper.h
index 94ef2c4bc85a9356bb060cc0368518aa41acae1c..07a799352e7eb768ec33d47e839894c9d6604c0f 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/ComponentHelper.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/ComponentHelper.h
@@ -2,6 +2,7 @@
 #define MANTID_GEOMETRY_COMPONENTHELPERS_H_
 
 #include "MantidGeometry/DllConfig.h"
+#include "MantidGeometry/Instrument.h"
 
 namespace Mantid {
 namespace Kernel {
@@ -61,6 +62,22 @@ MANTID_GEOMETRY_DLL void rotateComponent(const IComponent &comp,
                                          ParameterMap &pmap,
                                          const Kernel::Quat &rot,
                                          const TransformType positionType);
+
+MANTID_GEOMETRY_DLL Geometry::Instrument_sptr createMinimalInstrument(const Mantid::Kernel::V3D& sourcePos,
+                                                                      const Mantid::Kernel::V3D& samplePos,
+                                                                      const Mantid::Kernel::V3D& detectorPos );
+
+MANTID_GEOMETRY_DLL Geometry::Instrument_sptr
+createVirtualInstrument(Kernel::V3D sourcePos, Kernel::V3D samplePos,
+                        const std::vector<Kernel::V3D> &vecdetpos,
+                        const std::vector<detid_t> &vecdetid);
+
+MANTID_GEOMETRY_DLL Object_sptr createSphere(double radius, const Kernel::V3D &centre,
+                                             const std::string &id);
+
+MANTID_GEOMETRY_DLL std::string sphereXML(double radius, const Kernel::V3D &centre, const std::string &id) ;
+
+
 }
 } // namespace Geometry
 } // namespace Mantid
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/IDFObject.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/IDFObject.h
index c50fb3e9503501167682b49b329dae77a954ba1d..e44f6b07c75fbc5af71835ccb37c790fa85cbb6c 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/IDFObject.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/IDFObject.h
@@ -5,7 +5,6 @@
 #ifndef Q_MOC_RUN
 #include <boost/shared_ptr.hpp>
 #endif
-#include <Poco/Timestamp.h>
 #include <Poco/File.h>
 #include <Poco/Path.h>
 #include <stdexcept>
@@ -49,13 +48,11 @@ class DLLExport AbstractIDFObject {
 public:
   AbstractIDFObject() {}
   static const std::string expectedExtension();
-  virtual const Poco::Path &getParentDirectory() const = 0;
+  virtual const Poco::Path getParentDirectory() const = 0;
   virtual const Poco::Path &getFileFullPath() const = 0;
   virtual const std::string &getFileFullPathStr() const = 0;
   virtual std::string getFileNameOnly() const = 0;
   virtual std::string getExtension() const = 0;
-  virtual Poco::Timestamp getLastModified() const = 0;
-  virtual std::string getFormattedLastModified() const = 0;
   virtual std::string getMangledName() const = 0;
   virtual bool exists() const = 0;
   virtual ~AbstractIDFObject(){};
@@ -71,13 +68,11 @@ private:
 class DLLExport IDFObject : public AbstractIDFObject {
 public:
   IDFObject(const std::string &fileName);
-  virtual const Poco::Path &getParentDirectory() const;
+  virtual const Poco::Path getParentDirectory() const;
   virtual const Poco::Path &getFileFullPath() const;
   virtual const std::string &getFileFullPathStr() const;
   virtual std::string getFileNameOnly() const;
   virtual std::string getExtension() const;
-  virtual Poco::Timestamp getLastModified() const;
-  virtual std::string getFormattedLastModified() const;
   virtual std::string getMangledName() const;
   virtual bool exists() const;
   virtual ~IDFObject();
@@ -101,7 +96,7 @@ private:
 
 public:
   NullIDFObject() : m_emptyResponse("") {}
-  virtual const Poco::Path &getParentDirectory() const {
+  virtual const Poco::Path getParentDirectory() const {
     throw std::runtime_error("Not implemented on NullIDFObject");
   }
   virtual const Poco::Path &getFileFullPath() const {
@@ -112,12 +107,6 @@ public:
   }
   virtual std::string getFileNameOnly() const { return m_emptyResponse; }
   virtual std::string getExtension() const { return m_emptyResponse; }
-  virtual Poco::Timestamp getLastModified() const {
-    throw std::runtime_error("Not implemented on NullIDFObject");
-  }
-  virtual std::string getFormattedLastModified() const {
-    throw std::runtime_error("Not implemented on NullIDFObject");
-  }
   virtual std::string getMangledName() const {
     throw std::runtime_error("Not implemented on NullIDFObject");
   }
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/InstrumentDefinitionParser.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/InstrumentDefinitionParser.h
index 3a6a4edb1445cdd5d654caafbdd1e64b405580c4..5ef97432f790e025105683ccfa6f7b93afd873cd 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/InstrumentDefinitionParser.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Instrument/InstrumentDefinitionParser.h
@@ -58,26 +58,22 @@ class Object;
 class DLLExport InstrumentDefinitionParser {
 public:
   InstrumentDefinitionParser();
+  InstrumentDefinitionParser(const std::string &filename, const std::string &instName,
+                  const std::string &xmlText);
+  InstrumentDefinitionParser(const IDFObject_const_sptr xmlFile, 
+                  const IDFObject_const_sptr expectedCacheFile, 
+                  const std::string& instName, const std::string& xmlText);
   ~InstrumentDefinitionParser();
 
   /// Caching
   enum CachingOption {
     NoneApplied,
-    ReadAdjacent,
+    ReadGeomCache,
     ReadFallBack,
-    WroteCacheAdjacent,
+    WroteGeomCache,
     WroteCacheTemp
   };
 
-  /// Set up parser
-  void initialize(const std::string &filename, const std::string &instName,
-                  const std::string &xmlText);
-
-  /// Set up parser.
-  void initialize(IDFObject_const_sptr xmlFile,
-                  IDFObject_const_sptr expectedCacheFile,
-                  const std::string &instName, const std::string &xmlText);
-
   /// Parse XML contents
   boost::shared_ptr<Instrument> parseXML(Kernel::ProgressBase *prog);
 
@@ -104,7 +100,19 @@ public:
   /// Getter the the applied caching option.
   CachingOption getAppliedCachingOption() const;
 
+  ///creates a vtp filename from a given xml filename
+  const std::string createVTPFileName();
+
 private:
+  ///shared Constructor logic
+  void initialise(const std::string &filename, 
+                  const std::string &instName,
+                  const std::string &xmlText,
+                  const std::string &vtpFilename);
+
+  ///lazy loads the document and returns a pointer
+  Poco::AutoPtr<Poco::XML::Document> getDocument();
+
   /// Set location (position) of comp as specified in XML location element
   void setLocation(Geometry::IComponent *comp, const Poco::XML::Element *pElem,
                    const double angleConvertConst,
@@ -209,8 +217,8 @@ private:
   /// Take as input a \<locations\> element. Such an element is a short-hand
   /// notation for a sequence of \<location\> elements.
   /// This method return this sequence as a xml string
-  std::string convertLocationsElement(const Poco::XML::Element *pElem);
-
+  Poco::AutoPtr<Poco::XML::Document>
+  convertLocationsElement(const Poco::XML::Element *pElem);
 public: // for testing
   /// return absolute position of point which is set relative to the
   /// coordinate system of the input component
@@ -218,14 +226,12 @@ public: // for testing
                                               Kernel::V3D);
 
 private:
-  /// Checks if the proposed cache file can be read from.
-  bool canUseProposedCacheFile(IDFObject_const_sptr cache) const;
-
   /// Reads from a cache file.
   void applyCache(IDFObject_const_sptr cacheToApply);
 
   /// Write out a cache file.
-  CachingOption writeAndApplyCache(IDFObject_const_sptr usedCache);
+  CachingOption writeAndApplyCache(IDFObject_const_sptr firstChoiceCache,
+    IDFObject_const_sptr usedCache);
 
   /// This method returns the parent appended which its child components and
   /// also name of type of the last child component
@@ -259,10 +265,8 @@ private:
   /// Name of the instrument
   std::string m_instName;
 
-  /// XML document loaded
-  Poco::AutoPtr<Poco::XML::Document> pDoc;
-  /// Root element of the parsed XML
-  Poco::XML::Element *pRootElem;
+  /// XML document is lazy loaded
+  Poco::AutoPtr<Poco::XML::Document> m_pDoc;
 
   /** Holds all the xml elements that have a \<parameter\> child element.
    *  Added purely for the purpose of computing speed and is used in
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/ConvexPolygon.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/ConvexPolygon.h
index 86e24cc56a3c25e90ab64a1f2f1a70cfb015dcc7..de669d7c4a27ff0a80c95c21a1b7168a415eda00 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/ConvexPolygon.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/ConvexPolygon.h
@@ -5,24 +5,21 @@
 // Includes
 //-----------------------------------------------------------------------------
 #include "MantidGeometry/DllConfig.h"
-#include "MantidGeometry/Math/PolygonEdge.h"
-#include <vector>
+#include "MantidKernel/V2D.h"
+#include <deque>
+#include <iosfwd>
 
 namespace Mantid {
 namespace Geometry {
 //---------------------------------------------------------------------------
 // Forward declarations
 //---------------------------------------------------------------------------
-class Vertex2D;
-
-//---------------------------------------------------------------------------
-// Typedefs
-//---------------------------------------------------------------------------
+class PolygonEdge;
 
 /**
 An implementation of a convex polygon. It contains a list of vertices that
-make up a convex polygon and the list is assumed to be ordered in an
-anti-clockwise manner.
+make up a convex polygon and the list is assumed to be ordered in a
+clockwise manner and the polygon is assumed to be closed.
 
 A polygon is convex if:
 <UL>
@@ -31,8 +28,6 @@ A polygon is convex if:
 the polygon.</LI>
 </UL>
 
-@author Martyn Gigg, Tessella plc
-
 Copyright &copy; 2011 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge
 National Laboratory & European Spallation Source
 
@@ -57,21 +52,62 @@ Code Documentation is available at: <http://doxygen.mantidproject.org>
 class MANTID_GEOMETRY_DLL ConvexPolygon {
 
 public:
-  /// Construct a polygon with a head vertex
-  ConvexPolygon(Vertex2D *head);
-  /// Construct a rectangle as these will be quite common
-  ConvexPolygon(const double x_lower, const double x_upper,
-                const double y_lower, const double y_upper);
+  /// Type of the point list
+  typedef std::deque<Kernel::V2D> Vertices;
+
+  //-----------------------------------------------------------------
+  // Forward directional iterator inner class
+  //-----------------------------------------------------------------
+  class MANTID_GEOMETRY_DLL Iterator {
+  public:
+    /// Constructor
+    Iterator(const ConvexPolygon &polygon);
+
+    /// Dereference operator
+    const Kernel::V2D &operator*() const;
+    /// Prefix increment operator
+    void operator++();
+    /// Create a directed edge between this and the next point
+    PolygonEdge edge() const;
+
+  private:
+    /// Compute the next index
+    size_t nextIndex() const;
+
+    const ConvexPolygon &m_polygon;
+    size_t m_index;
+  };
+
+  //-----------------------------------------------------------------
+  // ConvexPolygon class
+  //-----------------------------------------------------------------
+
+  /// Default constructor
+  ConvexPolygon();
+  /// Construct a polygon from a collection of points
+  ConvexPolygon(const Vertices &vertices);
   /// Copy constructor
   ConvexPolygon(const ConvexPolygon &rhs);
+  /// Copy-assignment operator
+  ConvexPolygon &operator=(const ConvexPolygon &rhs);
   /// Destructor
   virtual ~ConvexPolygon();
-  /// Return a pointer to the head vertex
-  virtual inline const Vertex2D *head() const { return m_head; }
+
+  /// Check if polygon is valid
+  bool isValid() const;
+  /// Clears all points
+  void clear();
+  /// Insert a new vertex. The point is assumed that it forms the next point in
+  /// a clockwise-sense around the shape
+  void insert(const Kernel::V2D &pt);
+  /// Insert a new vertex based on x,y values
+  void insert(double x, double y);
   /// Index access.
   virtual const Kernel::V2D &operator[](const size_t index) const;
+  /// Bounds-checked index access
+  virtual const Kernel::V2D &at(const size_t index) const;
   /// Return the number of vertices
-  inline size_t numVertices() const { return m_numVertices; }
+  virtual size_t npoints() const;
   /// Is a point inside this polygon
   virtual bool contains(const Kernel::V2D &point) const;
   /// Is a the given polygon completely encosed by this one
@@ -81,38 +117,33 @@ public:
   /// Compute the 'determinant' of the points
   virtual double determinant() const;
   /// Return the lowest X value in the polygon
-  double smallestX() const;
+  virtual double minX() const;
   /// Return the largest X value in the polygon
-  double largestX() const;
+  virtual double maxX() const;
   /// Return the lowest Y value in the polygon
-  double smallestY() const;
+  virtual double minY() const;
   /// Return the largest Y value in the polygon
-  double largestY() const;
+  virtual double maxY() const;
+  /// Return a new Polygon based on the current type
+  virtual ConvexPolygon toPoly() const;
 
-protected:
-  /// Default constructor
-  ConvexPolygon();
+private:
   /// Setup the meta-data
   void setup();
-  /// The size of the polygon
-  size_t m_numVertices;
-  /// Head vertex
-  Vertex2D *m_head;
+  /// Compute the area of a triangle given by 3 points
+  double triangleArea(const Kernel::V2D &a, const Kernel::V2D &b,
+                      const Kernel::V2D &c) const;
+
+  // Points of the polygon
+  Vertices m_vertices;
   /// Lowest X value
-  double m_lowestX;
+  double m_minX;
   /// Highest X value
-  double m_highestX;
+  double m_maxX;
   /// Lowest Y value
-  double m_lowestY;
+  double m_minY;
   /// Highest Y value
-  double m_highestY;
-
-private:
-  /// Test if a list of vertices is valid
-  void validate(const Vertex2D *head) const;
-  /// Compute the area of a triangle given by 3 points
-  double triangleArea(const Kernel::V2D &a, const Kernel::V2D &b,
-                      const Kernel::V2D &c) const;
+  double m_maxY;
 };
 
 /// Print a polygon to a stream
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/LaszloIntersection.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/LaszloIntersection.h
deleted file mode 100644
index 6778c40dfe10e00570fb20193570cb2ab32054c3..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/LaszloIntersection.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef MANTID_GEOMETRY_LASZLOINTERSECTION_H_
-#define MANTID_GEOMETRY_LASZLOINTERSECTION_H_
-
-//-----------------------------------------------------------------------------
-// Includes
-//-----------------------------------------------------------------------------
-#include "MantidGeometry/DllConfig.h"
-#include "MantidGeometry/Math/ConvexPolygon.h"
-#include <stdexcept>
-
-namespace Mantid {
-namespace Geometry {
-/**
-This header defines an implementation of the convex polygon intersection method
-by Michael Laszlo
-
-@author Martyn Gigg
-@date 2011-07-12
-
-Copyright &copy; 2011 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 MANTID_GEOMETRY_DLL NoIntersectionException : public std::runtime_error {
-public:
-  NoIntersectionException()
-      : std::runtime_error(
-            "No intersections found that form a complete convex polygon.") {}
-};
-
-/// Compute the intersection of two ConvexPolygons
-MANTID_GEOMETRY_DLL
-ConvexPolygon intersectionByLaszlo(const ConvexPolygon &P,
-                                   const ConvexPolygon &Q);
-
-} // namespace Geometry
-} // namespace Mantid
-
-#endif /* MANTID_GEOMETRY_LASZLOINTERSECTION_H_ */
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/ORourkeIntersection.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/ORourkeIntersection.h
deleted file mode 100644
index c5468992966a41262b34b5a678ebbe266029a727..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/ORourkeIntersection.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef MANTID_GEOMETRY_OROURKEINTERSECTION_H_
-#define MANTID_GEOMETRY_OROURKEINTERSECTION_H_
-
-//-----------------------------------------------------------------------------
-// Includes
-//-----------------------------------------------------------------------------
-#include "MantidGeometry/DllConfig.h"
-#include "MantidGeometry/Math/ConvexPolygon.h"
-
-namespace Mantid {
-namespace Geometry {
-/**
-This header defines an implementation of the convex polygon intersection method
-from "Computational Geometry in C" by Joseph O'Rourke.
-
-@author Martyn Gigg
-@date 2011-07-08
-
-Copyright &copy; 2011 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>
-*/
-/// Compute the intersection of two ConvexPolygons
-MANTID_GEOMETRY_DLL
-ConvexPolygon intersectionByORourke(const ConvexPolygon &p,
-                                    const ConvexPolygon &q);
-
-} // namespace Geometry
-} // namespace Mantid
-
-#endif /* MANTID_GEOMETRY_OROURKEINTERSECTION_H_ */
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/PolygonEdge.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/PolygonEdge.h
index c22ef7bf666fdaabb55c3608bb86d78e3387b77b..b95778379eb837e77522aa55a76429ff7a2d4680 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/PolygonEdge.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/PolygonEdge.h
@@ -54,7 +54,7 @@ public:
   /// Access the end point
   inline const Kernel::V2D &end() const { return m_end; }
   /// Return the direction
-  inline Kernel::V2D direction() const { return m_end - m_start; }
+  inline const Kernel::V2D &direction() const { return m_dir; }
   /// Create a point a given fraction along this edge
   Kernel::V2D point(const double fraction) const;
 
@@ -66,6 +66,8 @@ private:
   const Kernel::V2D m_start;
   /// Destination point
   const Kernel::V2D m_end;
+  /// Direction vector
+  const Kernel::V2D m_dir;
 };
 
 /// Enumeration for point type w.r.t an edge
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/PolygonIntersection.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/PolygonIntersection.h
new file mode 100644
index 0000000000000000000000000000000000000000..ad268f4a6b2ed487243f2eca859870c0a1672fd9
--- /dev/null
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/PolygonIntersection.h
@@ -0,0 +1,44 @@
+#ifndef MANTID_GEOMETRY_POLYGONINTERSECTION_H_
+#define MANTID_GEOMETRY_POLYGONINTERSECTION_H_
+/**
+  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>
+*/
+//------------------------------------------------------------------------------
+// Includes
+//------------------------------------------------------------------------------
+#include "MantidGeometry/DllConfig.h"
+
+namespace Mantid {
+namespace Geometry {
+//------------------------------------------------------------------------------
+// Forward declarations
+//------------------------------------------------------------------------------
+class ConvexPolygon;
+
+/// Compute the instersection of two convex polygons.
+bool MANTID_GEOMETRY_DLL intersection(const ConvexPolygon &P, const ConvexPolygon &Q,
+                                      ConvexPolygon &out);
+
+} // namespace Geometry
+} // namespace Mantid
+
+#endif /* MANTID_GEOMETRY_POLYGONINTERSECTION_H_ */
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Quadrilateral.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Quadrilateral.h
index a1f1205cf13d32a0131a0de06ea290098b15e9a4..27d966ec6fad076ed69da51a59d869bc50d895d6 100644
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Quadrilateral.h
+++ b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Quadrilateral.h
@@ -5,7 +5,7 @@
 // Includes
 //------------------------------------------------------------------------------
 #include "MantidGeometry/Math/ConvexPolygon.h"
-#include "MantidGeometry/Math/Vertex2D.h"
+#include "MantidKernel/V2D.h"
 
 namespace Mantid {
 namespace Geometry {
@@ -15,9 +15,6 @@ namespace Geometry {
     A ConvexPolygon with only 4 vertices. Better performance as no dynamic
    allocation
 
-    @author Martyn Gigg
-    @date 2011-07-22
-
     Copyright &copy; 2011 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge
    National Laboratory & European Spallation Source
 
@@ -45,35 +42,47 @@ public:
   Quadrilateral(const Kernel::V2D &lowerLeft, const Kernel::V2D &lowerRight,
                 const Kernel::V2D &upperRight, const Kernel::V2D &upperLeft);
   /// Special constructor for a rectangle
-  Quadrilateral(const double lowerX, const double upperX, const double lowerY,
-                const double upperY);
+  Quadrilateral(const double lowerX, const double upperX,
+                const double lowerY, const double upperY);
   /// Copy constructor
   Quadrilateral(const Quadrilateral &other);
   /// Copy-assignment operator
   Quadrilateral &operator=(const Quadrilateral &rhs);
 
-  /// Destructor
-  ~Quadrilateral();
   /// Index access.
   virtual const Kernel::V2D &operator[](const size_t index) const;
-  /// Compute the area of the quadrilateral
+  /// Bounds-checked index access
+  virtual const Kernel::V2D &at(const size_t index) const;
+  /// Return the number of vertices
+  virtual size_t npoints() const { return 4; }
+  /// Is a point inside this polygon
+  virtual bool contains(const Kernel::V2D &point) const;
+  /// Is a the given polygon completely encosed by this one
+  virtual bool contains(const ConvexPolygon &poly) const;
+  /// Compute the area of the polygon using triangulation
   virtual double area() const;
   /// Compute the 'determinant' of the points
   virtual double determinant() const;
+  /// Return the lowest X value in the polygon
+  virtual double minX() const;
+  /// Return the max X value in the polygon
+  virtual double maxX() const;
+  /// Return the lowest Y value in the polygon
+  virtual double minY() const;
+  /// Return the max Y value in the polygon
+  virtual double maxY() const;
+  /// Return a new Polygon based on the current Quadrilateral
+  virtual ConvexPolygon toPoly() const;
 
 private:
-  /// Default constructor
-  Quadrilateral();
-  /// Initalize the object
-  void initialize();
   /// Lower left
-  Vertex2D m_lowerLeft;
+  Kernel::V2D m_lowerLeft;
   /// Lower right
-  Vertex2D m_lowerRight;
+  Kernel::V2D m_lowerRight;
   /// Upper right
-  Vertex2D m_upperRight;
+  Kernel::V2D m_upperRight;
   /// Upper left
-  Vertex2D m_upperLeft;
+  Kernel::V2D m_upperLeft;
 };
 
 } // namespace Geometry
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Vertex2D.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Vertex2D.h
deleted file mode 100644
index 31468d86b01be3ffd5d1a18409e25df9bd2a7e98..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Vertex2D.h
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef MANTID_GEOMETRY_VERTEX2D_H_
-#define MANTID_GEOMETRY_VERTEX2D_H_
-
-//-----------------------------------------------------------------------------
-// Includes
-//-----------------------------------------------------------------------------
-#include "MantidGeometry/DllConfig.h"
-#include "MantidGeometry/Math/PolygonEdge.h"
-#include "MantidKernel/V2D.h"
-
-namespace Mantid {
-namespace Geometry {
-
-/**
-Implements a vertex in two-dimensional space
-
-@author Martyn Gigg
-@date 2011-07-12
-
-Copyright &copy; 2011 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 MANTID_GEOMETRY_DLL Vertex2D : public Kernel::V2D {
-public:
-  /// Helper to delete a chain of vertices
-  static void deleteChain(Vertex2D *startNode);
-
-  /// Default constructor (a point at the origin)
-  Vertex2D();
-  /// Constructor with X and Y values
-  Vertex2D(const double x, const double y);
-  /// Constructor with a point
-  Vertex2D(const Kernel::V2D &point);
-  /// Copy constructor
-  Vertex2D(const Vertex2D &other);
-  /// Copy-assignment operator
-  Vertex2D &operator=(const Vertex2D &rhs);
-
-  /// Return the vertex as a point
-  inline const Kernel::V2D &point() const { return *this; }
-  /// Insert a vertex so that it is next
-  Vertex2D *insert(Vertex2D *vertex);
-  /// Remove this node from the chain
-  Vertex2D *remove();
-
-  /**
-   * Returns the next in the chain (non-const version)
-   * @returns The next vertex
-   */
-  inline Vertex2D *next() { return m_next; }
-  /**
-    * Returns the previous in the chain (non-const version)
-    * @returns The previous vertex
-    */
-  inline Vertex2D *previous() { return m_prev; }
-
-  /**
-   * Returns the next in the chain (const version)
-   * @returns The next vertex
-   */
-  inline const Vertex2D *next() const { return m_next; }
-  /**
-    * Returns the previous in the chain (const version)
-    * @returns The previous vertex
-    */
-  inline const Vertex2D *previous() const { return m_prev; }
-
-private:
-  /// Initialize the neighbour pointers
-  void initNeighbours();
-
-  /// Pointer to the "next" in the chain
-  Vertex2D *m_next;
-  /// Pointer to the "previous" in the chain
-  Vertex2D *m_prev;
-};
-
-/**
- * A small iterator type structure
- */
-class Vertex2DIterator {
-public:
-  /// Constructor
-  Vertex2DIterator(const Vertex2D *start) : m_vertex(start) {}
-  /// Advance the iterator
-  void advance() { m_vertex = m_vertex->next(); }
-  /// Get the point
-  const Kernel::V2D &point() { return m_vertex->point(); }
-  /// Get an edge between this and the next
-  PolygonEdge edge() { return PolygonEdge(*m_vertex, *(m_vertex->next())); }
-
-private:
-  /// A pointer to the current vertex
-  Vertex2D const *m_vertex;
-};
-
-} // namespace Geometry
-} // namespace Mantid
-
-#endif /* MANTID_GEOMETRY_VERTEX2D_H_ */
diff --git a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Vertex2DList.h b/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Vertex2DList.h
deleted file mode 100644
index 1e397d65e66d6db9c6de8b28043453daf2f70a1c..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Vertex2DList.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef MANTID_GEOMETRY_VERTEX2DLIST_H_
-#define MANTID_GEOMETRY_VERTEX2DLIST_H_
-
-//------------------------------------------------------------------------------
-// Includes
-//------------------------------------------------------------------------------
-#include "MantidGeometry/DllConfig.h"
-#include "MantidKernel/V2D.h"
-#include <vector>
-
-namespace Mantid {
-namespace Geometry {
-
-/**
-A Vertex2DList holds a unique list of Vertex2D objects and allows access via
-the vertex index. The list order is never mutated
-
-@author Martyn Gigg, Tessella plc
-
-Copyright &copy; 2011 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 MANTID_GEOMETRY_DLL Vertex2DList {
-public:
-  /// Constructor
-  Vertex2DList() : m_vertices(0) {}
-  /**
-   * The list is constructed to the given size with each point at the origin
-   * @param npoints :: The list size
-   */
-  Vertex2DList(const size_t npoints) : m_vertices(npoints, Kernel::V2D()) {}
-
-  /**
-   * Returns the number of vertices in the list
-   * @returns The number of vertices stored
-   */
-  inline size_t size() const { return m_vertices.size(); }
-  /// Operator access non-const version
-  Kernel::V2D &operator[](const size_t index);
-  /// Operator access const version
-  const Kernel::V2D &operator[](const size_t index) const;
-  /// Access the first element
-  const Kernel::V2D &front() const;
-  /// Access the last element
-  const Kernel::V2D &back() const;
-  /// Append a point to the list and return its index or return an existing
-  /// points index
-  unsigned int insert(const Kernel::V2D &point);
-
-private:
-  /// Is the point already in the list.
-  int indexOf(const Kernel::V2D &point) const;
-
-  /// The actual list
-  std::vector<Kernel::V2D> m_vertices;
-};
-
-} // namespace Geometry
-} // namespace Mantid
-
-#endif /* MANTID_GEOMETRY_VERTEX2DLIST_H_ */
diff --git a/Code/Mantid/Framework/Geometry/src/Crystal/PointGroupFactory.cpp b/Code/Mantid/Framework/Geometry/src/Crystal/PointGroupFactory.cpp
index 09ecd5d7fb2bfb41c72ff9fd174f94b9494e0685..993754c4b6761245861ec53cbd2689cc872afb00 100644
--- a/Code/Mantid/Framework/Geometry/src/Crystal/PointGroupFactory.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Crystal/PointGroupFactory.cpp
@@ -105,7 +105,7 @@ PointGroupFactoryImpl::subscribePointGroup(const std::string &hmSymbol,
  * space groups. Point groups don't have translational symmetry, which
  * is reflected in the symbol as well. To get the symbol of the point group
  * a certain space group belongs to, some simple string replacements are enough:
- *  1. Replace screw axes ( (2|3|4|6)[1|2|3|5] ) with rotations (first number).
+ *  1. Replace screw axes ( (2|3|4|6)[1|2|3|4|5] ) with rotations (first number).
  *  2. Replace glide planes (a|b|c|d|e|g|n) with mirror planes (m)
  *  3. Remove centering symbol.
  *  4. Remove origin choice ( :(1|2) )
@@ -126,7 +126,7 @@ std::string PointGroupFactoryImpl::pointGroupSymbolFromSpaceGroupSymbol(
 
   std::string noSpaces = boost::algorithm::erase_all_copy(noCentering, " ");
 
-  if (noSpaces.substr(0, 1) == "1" &&
+  if (noSpaces.substr(0, 1) == "1" && noSpaces.size() > 2 &&
       noSpaces.substr(noSpaces.size() - 1, 1) == "1") {
     noSpaces = noSpaces.substr(1, noSpaces.size() - 2);
   }
@@ -162,7 +162,7 @@ PointGroup_sptr PointGroupFactoryImpl::constructFromPrototype(
 /// Private default constructor.
 PointGroupFactoryImpl::PointGroupFactoryImpl()
     : m_generatorMap(), m_crystalSystemMap(),
-      m_screwAxisRegex("(2|3|4|6)[1|2|3|5]"),
+      m_screwAxisRegex("(2|3|4|6)[1|2|3|4|5]"),
       m_glidePlaneRegex("a|b|c|d|e|g|n"), m_centeringRegex("[A-Z]"),
       m_originChoiceRegex(":(1|2)") {
   Kernel::LibraryManager::Instance();
diff --git a/Code/Mantid/Framework/Geometry/src/Crystal/SpaceGroup.cpp b/Code/Mantid/Framework/Geometry/src/Crystal/SpaceGroup.cpp
index aa1b30cf9792a922e15afa62c6d0747e0db4027a..2a8f15ee24e012cf43d1ff7157edaabb784811a1 100644
--- a/Code/Mantid/Framework/Geometry/src/Crystal/SpaceGroup.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Crystal/SpaceGroup.cpp
@@ -1,8 +1,11 @@
 #include "MantidGeometry/Crystal/SpaceGroup.h"
+#include "MantidGeometry/Crystal/PointGroupFactory.h"
 
 namespace Mantid {
 namespace Geometry {
 
+using namespace Kernel;
+
 /**
  * Constructor
  *
@@ -38,5 +41,79 @@ size_t SpaceGroup::number() const { return m_number; }
 /// Returns the stored Hermann-Mauguin symbol
 std::string SpaceGroup::hmSymbol() const { return m_hmSymbol; }
 
+/**
+ * Returns whether the given reflection is allowed or not in this space group
+ *
+ * Space groups that contain translational symmetry cause certain reflections
+ * to be absent due to the contributions of symmetry equivalent atoms to the
+ * structure factor cancelling out. This method implements the procedure
+ * described in ITA [1] to check whether a reflection is allowed or not
+ * according to the symmetry operations in the space group. Please note that
+ * certain arrangements of atoms can lead to additional conditions that can not
+ * be determined using a space group's symmetry operations alone. For these
+ * situations, Geometry::CrystalStructure can help.
+ *
+ * [1] International Tables for Crystallography (2006). Vol. A, ch. 12.3, p. 832
+ *
+ * @param hkl :: HKL to be checked.
+ * @return :: true if the reflection is allowed, false otherwise.
+ */
+bool SpaceGroup::isAllowedReflection(const Kernel::V3D &hkl) const {
+  for (auto op = m_allOperations.begin(); op != m_allOperations.end(); ++op) {
+    if ((*op).hasTranslation()) {
+      /* Floating point precision problem:
+       *    (H . v) % 1.0 is not always exactly 0, so instead:
+       *    | [(H . v) + delta] % 1.0 | > 1e-14 is checked
+       * The transformation is only performed if necessary.
+       */
+      if ((fabs(fmod(fabs(hkl.scalar_prod((*op).reducedVector())) + 1e-15,
+                     1.0)) > 1e-14) &&
+          ((*op).transformHKL(hkl) == hkl)) {
+        return false;
+      }
+    }
+  }
+
+  return true;
+}
+
+/**
+ * Returns the point group of the space group
+ *
+ * This method uses PointGroupFactory to create the point group of the space-
+ * group. Becausethe factory is used for construction, a new object is returned
+ * each time this method is called.
+ *
+ * @return :: PointGroup-object.
+ */
+PointGroup_sptr SpaceGroup::getPointGroup() const {
+  return PointGroupFactory::Instance().createPointGroupFromSpaceGroup(*this);
+}
+
+/**
+ * Returns the site symmetry group
+ *
+ * The site symmetry group contains all symmetry operations of a space group
+ * that leave a point unchanged. This method probes the symmetry operations
+ * of the space group and constructs a Group-object using them.
+ *
+ * @param position :: Coordinates of the site.
+ * @return :: Site symmetry group.
+ */
+Group_const_sptr SpaceGroup::getSiteSymmetryGroup(const V3D &position) const {
+  V3D wrappedPosition = Geometry::getWrappedVector(position);
+
+  std::vector<SymmetryOperation> siteSymmetryOps;
+
+  for (auto op = m_allOperations.begin(); op != m_allOperations.end(); ++op) {
+    if (Geometry::getWrappedVector((*op) * wrappedPosition) ==
+        wrappedPosition) {
+      siteSymmetryOps.push_back(*op);
+    }
+  }
+
+  return GroupFactory::create<Group>(siteSymmetryOps);
+}
+
 } // namespace Geometry
 } // namespace Mantid
diff --git a/Code/Mantid/Framework/Geometry/src/Crystal/SpaceGroupFactory.cpp b/Code/Mantid/Framework/Geometry/src/Crystal/SpaceGroupFactory.cpp
index 325f8f321f415e4c4e3cc72e8132e19cb3a0e8bf..cae02496cf190f94396740d75eaaa632f277fb41 100644
--- a/Code/Mantid/Framework/Geometry/src/Crystal/SpaceGroupFactory.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Crystal/SpaceGroupFactory.cpp
@@ -22,7 +22,8 @@ bool isValidGeneratorString(const std::string &generatorString) {
   for (auto it = generatorStrings.begin(); it != generatorStrings.end(); ++it) {
     try {
       SymmetryOperationSymbolParser::parseIdentifier(*it);
-    } catch (Kernel::Exception::ParseError) {
+    }
+    catch (Kernel::Exception::ParseError) {
       return false;
     }
   }
@@ -180,6 +181,24 @@ std::vector<size_t> SpaceGroupFactoryImpl::subscribedSpaceGroupNumbers() const {
   return numbers;
 }
 
+std::vector<std::string> SpaceGroupFactoryImpl::subscribedSpaceGroupSymbols(
+    const PointGroup_sptr &pointGroup) {
+  if (m_pointGroupMap.empty()) {
+    fillPointGroupMap();
+  }
+
+  std::string pointGroupSymbol = pointGroup->getSymbol();
+
+  std::vector<std::string> symbols;
+  auto keyPair = m_pointGroupMap.equal_range(pointGroupSymbol);
+
+  for (auto it = keyPair.first; it != keyPair.second; ++it) {
+    symbols.push_back(it->second);
+  }
+
+  return symbols;
+}
+
 /// Unsubscribes the space group with the given Hermann-Mauguin symbol, but
 /// throws std::invalid_argument if symbol is not registered.
 void SpaceGroupFactoryImpl::unsubscribeSpaceGroup(const std::string &hmSymbol) {
@@ -237,6 +256,19 @@ SpaceGroup_const_sptr SpaceGroupFactoryImpl::constructFromPrototype(
   return boost::make_shared<const SpaceGroup>(*prototype);
 }
 
+/// Fills the internal multimap that maintains the mapping between space and
+/// point groups.
+void SpaceGroupFactoryImpl::fillPointGroupMap() {
+  m_pointGroupMap.clear();
+
+  for (auto it = m_generatorMap.begin(); it != m_generatorMap.end(); ++it) {
+    SpaceGroup_const_sptr spaceGroup = getPrototype(it->first);
+
+    m_pointGroupMap.insert(
+        std::make_pair(spaceGroup->getPointGroup()->getSymbol(), it->first));
+  }
+}
+
 /// Returns a prototype object for the requested space group.
 SpaceGroup_const_sptr
 SpaceGroupFactoryImpl::getPrototype(const std::string &hmSymbol) {
@@ -260,11 +292,14 @@ void SpaceGroupFactoryImpl::subscribe(
   m_numberMap.insert(
       std::make_pair(generator->getNumber(), generator->getHMSymbol()));
   m_generatorMap.insert(std::make_pair(generator->getHMSymbol(), generator));
+
+  // Clear the point group map
+  m_pointGroupMap.clear();
 }
 
 /// Constructor cannot be called, since SingletonHolder is used.
 SpaceGroupFactoryImpl::SpaceGroupFactoryImpl()
-    : m_numberMap(), m_generatorMap() {
+    : m_numberMap(), m_generatorMap(), m_pointGroupMap() {
   Kernel::LibraryManager::Instance();
 }
 
diff --git a/Code/Mantid/Framework/Geometry/src/Crystal/SymmetryElementFactory.cpp b/Code/Mantid/Framework/Geometry/src/Crystal/SymmetryElementFactory.cpp
index cdf42076ca548f067a1222773ab16a2499d99b68..6c98097cca3110ee8ad5c1a7256b01fbd9965025 100644
--- a/Code/Mantid/Framework/Geometry/src/Crystal/SymmetryElementFactory.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Crystal/SymmetryElementFactory.cpp
@@ -56,41 +56,10 @@ bool SymmetryElementInversionGenerator::canProcess(
   return operation.matrix() == inversionMatrix;
 }
 
-/**
- * @brief SymmetryElementWithAxisGenerator::determineTranslation
- *
- * According to ITA, 11.2, the translation component of a symmetry operation
- * can be termined with the following algorithm. First, a matrix \f$W\f$ is
- * calculated using the symmetry operation \f$S\f$ and its powers up to its
- * order \f$k\f$, adding the matrices of the resulting operations:
- *
- * \f[
- *  W = W_1(S^0) + W_2(S^1) + \dots + W_k(S^{k-1})
- * \f]
- *
- * The translation vector is then calculation from the vector \f$w\f$ of the
- * operation:
- *
- * \f[
- *  t = \frac{1}{k}\cdot (W \times w)
- * \f]
- *
- * For operations which do not have translation components, this algorithm
- * returns a 0-vector.
- *
- * @param operation :: Symmetry operation, possibly with translation vector.
- * @return Translation vector.
- */
+/// Returns the reduced vector of the operation.
 V3R SymmetryElementWithAxisGenerator::determineTranslation(
     const SymmetryOperation &operation) const {
-  Kernel::IntMatrix translationMatrix(3, 3, false);
-
-  for (size_t i = 0; i < operation.order(); ++i) {
-    translationMatrix += (operation ^ i).matrix();
-  }
-
-  return (translationMatrix * operation.vector()) *
-         RationalNumber(1, static_cast<int>(operation.order()));
+  return operation.reducedVector();
 }
 
 /**
@@ -182,8 +151,8 @@ V3R SymmetryElementWithAxisGenerator::determineAxis(
 
   double sumOfElements = eigenVector.X() + eigenVector.Y() + eigenVector.Z();
 
-  if(sumOfElements < 0) {
-      eigenVector *= -1.0;
+  if (sumOfElements < 0) {
+    eigenVector *= -1.0;
   }
 
   gsl_matrix_free(eigenMatrix);
diff --git a/Code/Mantid/Framework/Geometry/src/Crystal/SymmetryOperation.cpp b/Code/Mantid/Framework/Geometry/src/Crystal/SymmetryOperation.cpp
index 96fcbaf8c8151ae43d31063606034f1144307cdb..86b49b05879d9d30e42d3d5c2a0c4794857f07d8 100644
--- a/Code/Mantid/Framework/Geometry/src/Crystal/SymmetryOperation.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Crystal/SymmetryOperation.cpp
@@ -11,7 +11,7 @@ namespace Geometry {
 SymmetryOperation::SymmetryOperation()
     : m_order(1), m_matrix(Kernel::IntMatrix(3, 3, true)),
       m_inverseMatrix(Kernel::IntMatrix(3, 3, true)), m_vector(),
-      m_identifier() {
+      m_reducedVector(), m_identifier() {
   m_identifier = SymmetryOperationSymbolParser::getNormalizedIdentifier(
       m_matrix, m_vector);
 }
@@ -44,7 +44,8 @@ SymmetryOperation::SymmetryOperation(const Kernel::IntMatrix &matrix,
 SymmetryOperation::SymmetryOperation(const SymmetryOperation &other)
     : m_order(other.m_order), m_matrix(other.m_matrix),
       m_inverseMatrix(other.m_inverseMatrix), m_vector(other.m_vector),
-      m_identifier(other.m_identifier) {}
+      m_reducedVector(other.m_reducedVector), m_identifier(other.m_identifier) {
+}
 
 /// Assignment operator
 SymmetryOperation &SymmetryOperation::
@@ -53,6 +54,7 @@ operator=(const SymmetryOperation &other) {
   m_matrix = other.m_matrix;
   m_inverseMatrix = other.m_inverseMatrix;
   m_vector = other.m_vector;
+  m_reducedVector = other.m_reducedVector;
   m_identifier = other.m_identifier;
 
   return *this;
@@ -69,10 +71,11 @@ void SymmetryOperation::init(const Kernel::IntMatrix &matrix,
   m_inverseMatrix = m_inverseMatrix.Transpose();
 
   m_vector = getWrappedVector(vector);
-
   m_order = getOrderFromMatrix(m_matrix);
   m_identifier = SymmetryOperationSymbolParser::getNormalizedIdentifier(
       m_matrix, m_vector);
+
+  m_reducedVector = getReducedVector(m_matrix, m_vector);
 }
 
 /// Returns a const reference to the internally stored matrix
@@ -81,6 +84,32 @@ const Kernel::IntMatrix &SymmetryOperation::matrix() const { return m_matrix; }
 /// Returns a const reference to the internall stored vector
 const V3R &SymmetryOperation::vector() const { return m_vector; }
 
+/**
+ * @brief SymmetryOperation::reducedVector
+ *
+ * According to ITA, 11.2, the translation component of a symmetry operation
+ * can be termined with the following algorithm. First, a matrix \f$W\f$ is
+ * calculated using the symmetry operation \f$S\f$ and its powers up to its
+ * order \f$k\f$, adding the matrices of the resulting operations:
+ *
+ * \f[
+ *  W = W_1(S^0) + W_2(S^1) + \dots + W_k(S^{k-1})
+ * \f]
+ *
+ * The translation vector is then calculation from the vector \f$w\f$ of the
+ * operation:
+ *
+ * \f[
+ *  t = \frac{1}{k}\cdot (W \times w)
+ * \f]
+ *
+ * For operations which do not have translation components, this algorithm
+ * returns a 0-vector.
+ *
+ * @return Translation vector.
+ */
+const V3R &SymmetryOperation::reducedVector() const { return m_reducedVector; }
+
 /**
  * Returns the order of the symmetry operation
  *
@@ -231,6 +260,24 @@ SymmetryOperation::getOrderFromMatrix(const Kernel::IntMatrix &matrix) const {
   throw std::runtime_error("There is something wrong with supplied matrix.");
 }
 
+V3R SymmetryOperation::getReducedVector(const Kernel::IntMatrix &matrix,
+                                        const V3R &vector) const {
+  Kernel::IntMatrix translationMatrix(3, 3, false);
+
+  for (size_t i = 0; i < order(); ++i) {
+    Kernel::IntMatrix tempMatrix(3, 3, true);
+
+    for (size_t j = 0; j < i; ++j) {
+      tempMatrix *= matrix;
+    }
+
+    translationMatrix += tempMatrix;
+  }
+
+  return (translationMatrix * vector) *
+         RationalNumber(1, static_cast<int>(order()));
+}
+
 /**
  * Wraps a V3R to the interval (0, 1]
  *
diff --git a/Code/Mantid/Framework/Geometry/src/Crystal/UnitCell.cpp b/Code/Mantid/Framework/Geometry/src/Crystal/UnitCell.cpp
index d94cd9ad9a21fc92ac9c298c5d2c706fd284160e..ed6f2b9b3fa66514c4b9c56dc3841864ddb760a1 100644
--- a/Code/Mantid/Framework/Geometry/src/Crystal/UnitCell.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Crystal/UnitCell.cpp
@@ -569,26 +569,26 @@ void UnitCell::recalculateFromGstar(const DblMatrix &NewGstar) {
 
 std::ostream &operator<<(std::ostream &out, const UnitCell &unitCell) {
   // always show the lattice constants
-  out << "Lattice Parameters:" << std::fixed << std::setprecision(3)
-      << std::setw(9) << unitCell.a() << std::fixed << std::setprecision(3)
-      << std::setw(9) << unitCell.b() << std::fixed << std::setprecision(3)
-      << std::setw(9) << unitCell.c() << std::fixed << std::setprecision(3)
-      << std::setw(9) << unitCell.alpha() << std::fixed << std::setprecision(3)
-      << std::setw(9) << unitCell.beta() << std::fixed << std::setprecision(3)
-      << std::setw(9) << unitCell.gamma();
+  out << "Lattice Parameters:" << std::fixed << std::setprecision(6)
+      << std::setw(12) << unitCell.a() << std::fixed << std::setprecision(6)
+      << std::setw(12) << unitCell.b() << std::fixed << std::setprecision(6)
+      << std::setw(12) << unitCell.c() << std::fixed << std::setprecision(6)
+      << std::setw(12) << unitCell.alpha() << std::fixed << std::setprecision(6)
+      << std::setw(12) << unitCell.beta() << std::fixed << std::setprecision(6)
+      << std::setw(12) << unitCell.gamma();
 
   // write out the uncertainty if there is a positive one somewhere
   if ((unitCell.errora() > 0) || (unitCell.errorb() > 0) ||
       (unitCell.errorc() > 0) || (unitCell.erroralpha() > 0) ||
       (unitCell.errorbeta() > 0) || (unitCell.errorgamma() > 0))
-    out << "\nParameter Errors  :" << std::fixed << std::setprecision(3)
-        << std::setw(9) << unitCell.errora() << std::fixed
-        << std::setprecision(3) << std::setw(9) << unitCell.errorb()
-        << std::fixed << std::setprecision(3) << std::setw(9)
-        << unitCell.errorc() << std::fixed << std::setprecision(3)
-        << std::setw(9) << unitCell.erroralpha() << std::fixed
-        << std::setprecision(3) << std::setw(9) << unitCell.errorbeta()
-        << std::fixed << std::setprecision(3) << std::setw(9)
+    out << "\nParameter Errors  :" << std::fixed << std::setprecision(6)
+        << std::setw(12) << unitCell.errora() << std::fixed
+        << std::setprecision(6) << std::setw(12) << unitCell.errorb()
+        << std::fixed << std::setprecision(6) << std::setw(12)
+        << unitCell.errorc() << std::fixed << std::setprecision(6)
+        << std::setw(12) << unitCell.erroralpha() << std::fixed
+        << std::setprecision(6) << std::setw(12) << unitCell.errorbeta()
+        << std::fixed << std::setprecision(6) << std::setw(12)
         << unitCell.errorgamma();
 
   return out;
diff --git a/Code/Mantid/Framework/Geometry/src/Instrument.cpp b/Code/Mantid/Framework/Geometry/src/Instrument.cpp
index 368d093b6b600577b98a9e57c1c832ccdb803718..5607adc721d52e0e9b93863c92a1e10b828ba0d9 100644
--- a/Code/Mantid/Framework/Geometry/src/Instrument.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Instrument.cpp
@@ -4,7 +4,6 @@
 #include "MantidGeometry/Instrument/ReferenceFrame.h"
 #include "MantidGeometry/Instrument/RectangularDetector.h"
 
-#include <Poco/Path.h>
 #include <queue>
 
 using namespace Mantid::Kernel;
@@ -1071,8 +1070,6 @@ void Instrument::saveNexus(::NeXus::File *file,
   file->writeData("description", "XML contents of the instrument IDF file.");
   file->closeGroup();
 
-  file->writeData("instrument_source", Poco::Path(getFilename()).getFileName());
-
   // Now the parameter map, as a NXnote via its saveNexus method
   if (isParametrized()) {
     const Geometry::ParameterMap &params = *getParameterMap();
diff --git a/Code/Mantid/Framework/Geometry/src/Instrument/ComponentHelper.cpp b/Code/Mantid/Framework/Geometry/src/Instrument/ComponentHelper.cpp
index 0b197b81ffc9f200112e294b598a8831e1c65c06..5fa56f15db0f6920d93c5fe8196d50490636e63c 100644
--- a/Code/Mantid/Framework/Geometry/src/Instrument/ComponentHelper.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Instrument/ComponentHelper.cpp
@@ -4,8 +4,12 @@
 #include "MantidGeometry/Instrument/ComponentHelper.h"
 #include "MantidGeometry/Instrument/ParameterMap.h"
 #include "MantidGeometry/IComponent.h"
+#include "MantidGeometry/Instrument/ReferenceFrame.h"
+#include "MantidGeometry/Objects/ShapeFactory.h"
+#include "MantidGeometry/Instrument/Detector.h"
 
 #include <boost/lexical_cast.hpp>
+#include <boost/make_shared.hpp>
 
 namespace Mantid {
 namespace Geometry {
@@ -92,6 +96,109 @@ void rotateComponent(const IComponent &comp, ParameterMap &pmap,
   pmap.addQuat(comp.getComponentID(), "rot", newRot);
 }
 
+
+/**
+ * createOneDetectorInstrument, creates the most simple possible definition of an instrument in which we can extract a valid L1 and L2 distance for unit calculations.
+ *
+ * Beam direction is along X,
+ * Up direction is Y
+ *
+ * @param sourcePos : V3D position
+ * @param samplePos : V3D sample position
+ * @param detectorPos : V3D detector position
+ * @return Instrument generated.
+ */
+Geometry::Instrument_sptr createMinimalInstrument(const Mantid::Kernel::V3D& sourcePos, const Mantid::Kernel::V3D& samplePos, const Mantid::Kernel::V3D& detectorPos )
+{
+    Instrument_sptr instrument = boost::make_shared<Instrument>();
+    instrument->setReferenceFrame(
+        boost::make_shared<ReferenceFrame>(Mantid::Geometry::Y /*up*/, Mantid::Geometry::X /*along*/, Left, "0,0,0"));
+
+    // A source
+    ObjComponent *source = new ObjComponent("source");
+    source->setPos(sourcePos);
+    source->setShape(createSphere(0.01 /*1cm*/, V3D(0,0,0), "1"));
+    instrument->add(source);
+    instrument->markAsSource(source);
+
+    // A sample
+    ObjComponent *sample = new ObjComponent("some-surface-holder");
+    sample->setPos(samplePos);
+    sample->setShape(createSphere(0.01 /*1cm*/, V3D(0,0,0), "1"));
+    instrument->add(sample);
+    instrument->markAsSamplePos(sample);
+
+    // A detector
+    Detector *det = new Detector("point-detector", 1 /*detector id*/, NULL);
+    det->setPos(detectorPos);
+    det->setShape(createSphere(0.01 /*1cm*/, V3D(0,0,0), "1"));
+    instrument->add(det);
+    instrument->markAsDetector(det);
+
+    return instrument;
+}
+
+Geometry::Instrument_sptr
+createVirtualInstrument(Kernel::V3D sourcePos, Kernel::V3D samplePos,
+                        const std::vector<Kernel::V3D> &vecdetpos,
+                        const std::vector<detid_t> &vecdetid) {
+  Instrument_sptr instrument = boost::make_shared<Instrument>();
+  instrument->setReferenceFrame(
+      boost::make_shared<ReferenceFrame>(Mantid::Geometry::Y /*up*/, Mantid::Geometry::Z /*along*/, Right, "0,0,0"));
+
+  // A source
+  ObjComponent *source = new ObjComponent("source");
+  source->setPos(sourcePos);
+  source->setShape(createSphere(0.01 /*1cm*/, V3D(0,0,0), "1"));
+  instrument->add(source);
+  instrument->markAsSource(source);
+
+  // A sample
+  ObjComponent *sample = new ObjComponent("some-surface-holder");
+  sample->setPos(samplePos);
+  sample->setShape(createSphere(0.01 /*1cm*/, V3D(0,0,0), "1"));
+  instrument->add(sample);
+  instrument->markAsSamplePos(sample);
+
+  // A detector
+  size_t numdets = vecdetpos.size();
+  for (size_t i = 0; i < numdets; ++i)
+  {
+    Detector *det = new Detector("point-detector", vecdetid[i] /*detector id*/, NULL);
+    det->setPos(vecdetpos[i]);
+    // FIXME - should be cubi... pixel
+    det->setShape(createSphere(0.01 /*1cm*/, V3D(0,0,0), "1"));
+    instrument->add(det);
+    instrument->markAsDetector(det);
+  }
+
+  return instrument;
+
+}
+
+
+/**
+ * Create a sphere object
+ */
+Object_sptr createSphere(double radius, const V3D &centre,
+                         const std::string &id) {
+  ShapeFactory shapeMaker;
+  return shapeMaker.createShape(sphereXML(radius, centre, id));
+}
+
+/**
+ * Return the XML for a sphere.
+ */
+std::string sphereXML(double radius, const Kernel::V3D &centre, const std::string &id) {
+  std::ostringstream xml;
+  xml << "<sphere id=\"" << id << "\">"
+      << "<centre x=\"" << centre.X() << "\"  y=\"" << centre.Y() << "\" z=\""
+      << centre.Z() << "\" />"
+      << "<radius val=\"" << radius << "\" />"
+      << "</sphere>";
+  return xml.str();
+}
+
 } // namespace ComponentHelper
 }
 } // namespace Mantid::Geometry
diff --git a/Code/Mantid/Framework/Geometry/src/Instrument/IDFObject.cpp b/Code/Mantid/Framework/Geometry/src/Instrument/IDFObject.cpp
index 35e8dd10d470dd820076b929ce8337965b9bd00f..b12a725e8612fab46392aed42cf3378335dd75d7 100644
--- a/Code/Mantid/Framework/Geometry/src/Instrument/IDFObject.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Instrument/IDFObject.cpp
@@ -1,6 +1,5 @@
 #include "MantidGeometry/Instrument/IDFObject.h"
 #include "MantidKernel/ChecksumHelper.h"
-#include <Poco/DateTimeFormatter.h>
 #include <Poco/String.h>
 
 namespace Mantid {
@@ -33,7 +32,7 @@ IDFObject::~IDFObject() {}
 Gets the parent directory of the file.
 @return Parent directory path.
 */
-const Poco::Path &IDFObject::getParentDirectory() const {
+const Poco::Path IDFObject::getParentDirectory() const {
   return m_cacheParentDirectory;
 }
 
@@ -67,23 +66,6 @@ std::string IDFObject::getExtension() const {
     return "." + ext;
 }
 
-/**
-Gets the last modified timestamp of the file.
-@return last modified timestamp.
-*/
-Poco::Timestamp IDFObject::getLastModified() const {
-  return m_defFile.getLastModified();
-}
-
-/**
-Gets a formatted string of the last modified timestamp.
-@return timestamp as a formatted string.
-*/
-std::string IDFObject::getFormattedLastModified() const {
-  return Poco::DateTimeFormatter::format(this->getLastModified(),
-                                         "%Y-%d-%mT%H:%M:%S");
-}
-
 /**
 Gets the idf file as a mangled name.
 @return the idf file as a mangled name.
diff --git a/Code/Mantid/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp b/Code/Mantid/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp
index 3e87df04a7ecef1fbcd3c983f27b87b20185814d..d0747ffd0b011b8d2bf1f2de9a648cdadee47f4c 100644
--- a/Code/Mantid/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp
@@ -17,6 +17,7 @@
 #include "MantidKernel/UnitFactory.h"
 #include "MantidKernel/Strings.h"
 
+#include <Poco/Path.h>
 #include <Poco/String.h>
 #include <Poco/DOM/Document.h>
 #include <Poco/DOM/DOMParser.h>
@@ -29,7 +30,6 @@
 
 #include <boost/make_shared.hpp>
 #include <boost/assign/list_of.hpp>
-#include <MantidKernel/ChecksumHelper.h>
 
 using namespace Mantid;
 using namespace Mantid::Kernel;
@@ -47,126 +47,162 @@ namespace {
 // initialize the static logger
 Kernel::Logger g_log("InstrumentDefinitionParser");
 }
-
-//----------------------------------------------------------------------------------------------
-/** Constructor
+  //----------------------------------------------------------------------------------------------
+/** Default Constructor - not very functional in this state
  */
-InstrumentDefinitionParser::InstrumentDefinitionParser()
-    : m_xmlFile(boost::make_shared<NullIDFObject>()),
-      m_cacheFile(boost::make_shared<NullIDFObject>()), pDoc(NULL),
-      pRootElem(NULL), m_hasParameterElement_beenSet(false),
+  InstrumentDefinitionParser::InstrumentDefinitionParser():
+      m_xmlFile(boost::make_shared<NullIDFObject>()),
+      m_cacheFile(boost::make_shared<NullIDFObject>()), m_pDoc(NULL),
+      m_hasParameterElement_beenSet(false),
       m_haveDefaultFacing(false), m_deltaOffsets(false),
       m_angleConvertConst(1.0), m_indirectPositions(false),
-      m_cachingOption(NoneApplied) {}
-
-//----------------------------------------------------------------------------------------------
-/** Destructor
- */
-InstrumentDefinitionParser::~InstrumentDefinitionParser() {}
-
+      m_cachingOption(NoneApplied)
+  {
+    initialise("","","","");
+  }
 //----------------------------------------------------------------------------------------------
-/** Initialize the XML parser based on an IDF xml file path.
- *
- *  Note that this convenience initialize method actually translates the inputs
- *into the other initialize method.
- *
+/** Constructor
  * @param filename :: IDF .xml path (full). This is needed mostly to find the
  *instrument geometry cache.
  * @param instName :: name of the instrument
  * @param xmlText :: XML contents of IDF
  */
-void InstrumentDefinitionParser::initialize(const std::string &filename,
-                                            const std::string &instName,
-                                            const std::string &xmlText) {
-  IDFObject_const_sptr xmlFile = boost::make_shared<const IDFObject>(filename);
-  // Use the filename to construct the cachefile name so that there is a 1:1 map
-  // between a definition file & cache
-  std::string idfExt = xmlFile->getExtension();
-  std::string vtpFilename = filename;
-  static const char *vtpExt = ".vtp";
-  if (idfExt.empty()) {
-    vtpFilename += vtpExt;
-  } else {
-    boost::replace_last(vtpFilename, idfExt, vtpExt);
-  }
-  IDFObject_const_sptr vtpFile =
-      boost::make_shared<const IDFObject>(vtpFilename);
-
-  this->initialize(xmlFile, vtpFile, instName, xmlText);
+InstrumentDefinitionParser::InstrumentDefinitionParser(const std::string &filename, 
+                                                       const std::string &instName,
+                                                       const std::string &xmlText)
+    : m_xmlFile(boost::make_shared<NullIDFObject>()),
+      m_cacheFile(boost::make_shared<NullIDFObject>()), m_pDoc(NULL),
+      m_hasParameterElement_beenSet(false),
+      m_haveDefaultFacing(false), m_deltaOffsets(false),
+      m_angleConvertConst(1.0), m_indirectPositions(false),
+      m_cachingOption(NoneApplied)
+{
+  initialise(filename,instName,xmlText,"");
 }
 
 //----------------------------------------------------------------------------------------------
-/** Initialize the XML parser based on an IDF xml and cached vtp file objects.
+/** Construct the XML parser based on an IDF xml and cached vtp file objects.
  *
  * @param xmlFile :: The xml file, here wrapped in a IDFObject
  * @param expectedCacheFile :: Expected vtp cache file
  * @param instName :: Instrument name
  * @param xmlText :: XML contents of IDF
  */
-void InstrumentDefinitionParser::initialize(
+InstrumentDefinitionParser::InstrumentDefinitionParser (
     const IDFObject_const_sptr xmlFile,
-    const IDFObject_const_sptr expectedCacheFile, const std::string &instName,
-    const std::string &xmlText) {
+    const IDFObject_const_sptr expectedCacheFile, 
+    const std::string &instName,
+    const std::string &xmlText) 
+    : m_xmlFile(boost::make_shared<NullIDFObject>()),
+      m_cacheFile(boost::make_shared<NullIDFObject>()), m_pDoc(NULL),
+      m_hasParameterElement_beenSet(false),
+      m_haveDefaultFacing(false), m_deltaOffsets(false),
+      m_angleConvertConst(1.0), m_indirectPositions(false),
+      m_cachingOption(NoneApplied) 
+{
+  initialise(xmlFile->getFileFullPathStr(),instName,xmlText,expectedCacheFile->getFileFullPathStr());
+
+  m_cacheFile = expectedCacheFile;
+}
 
+  //----------------------------------------------------------------------------------------------
+/** Initialise method used in Constructor
+ * @param filename :: IDF .xml path (full). This is needed mostly to find the
+ *instrument geometry cache.
+ * @param instName :: name of the instrument
+ * @param xmlText :: XML contents of IDF
+ * @param vtpFilename :: the path to the vtp file if you want to override the default
+ */
+void InstrumentDefinitionParser::initialise(const std::string &filename, 
+                                                       const std::string &instName,
+                                                       const std::string &xmlText,
+                                                       const std::string &vtpFilename) 
+{
+  
+  IDFObject_const_sptr xmlFile = boost::make_shared<const IDFObject>(filename);
+  
   // Handle the parameters
-  const std::string filename = xmlFile->getFileFullPathStr();
   m_instName = instName;
   m_xmlFile = xmlFile;
-  m_cacheFile = expectedCacheFile;
-
-  // Set up the DOM parser and parse xml file
-  DOMParser pParser;
-  try {
-    pDoc = pParser.parseString(xmlText);
-  } catch (Poco::Exception &exc) {
-    throw Kernel::Exception::FileError(
-        exc.displayText() + ". Unable to parse XML", filename);
-  } catch (...) {
-    throw Kernel::Exception::FileError("Unable to parse XML", filename);
-  }
-  // Get pointer to root element
-  pRootElem = pDoc->documentElement();
-  if (!pRootElem->hasChildNodes()) {
-    g_log.error("XML file: " + filename + "contains no root element.");
-    throw Kernel::Exception::InstrumentDefinitionError(
-        "No root element in XML instrument file", filename);
-  }
-
+  
   // Create our new instrument
   // We don't want the instrument name taken out of the XML file itself, it
   // should come from the filename (or the property)
   m_instrument = boost::make_shared<Instrument>(m_instName);
-
+  
   // Save the XML file path and contents
   m_instrument->setFilename(filename);
   m_instrument->setXmlText(xmlText);
+
+  // Use the filename to construct the cachefile name so that there is a 1:1 map
+  // between a definition file & cache
+  if (vtpFilename.empty()) {
+    m_cacheFile = boost::make_shared<const IDFObject>(createVTPFileName());
+  }
+  else
+  {
+    m_cacheFile = boost::make_shared<const IDFObject>(vtpFilename);
+  }
+
 }
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+InstrumentDefinitionParser::~InstrumentDefinitionParser() {}
 
 //----------------------------------------------------------------------------------------------
 /**
  * Handle used in the singleton constructor for instrument file should append
  *the value
- * of the last-modified tag inside the file to determine if it is already in
+ * file sha-1 checksum to determine if it is already in
  *memory so that
  * changes to the instrument file will cause file to be reloaded.
  *
- * @return a mangled name combining the filename and the "last-modified"
+ * @return a mangled name combining the filename and the checksum
  *attribute of the XML contents
  * */
 std::string InstrumentDefinitionParser::getMangledName() {
   
-  // Use the file in preference if possible.
-  if (this->m_xmlFile->exists()) {
-    return m_xmlFile->getMangledName();
-  } 
+  std::string retVal = "";
+  //use the xml in preference if available
   auto xml = Poco::trim(m_instrument->getXmlText());
   if (!(xml.empty())) {
     std::string checksum = Kernel::ChecksumHelper::sha1FromString(xml);
-    return m_instName + checksum;
-  } else  {
-    throw std::runtime_error(
-        "Call InstrumentDefinitionParser::initialize() before getMangledName.");
+    retVal = m_instName + checksum; 
+  } 
+  else if (this->m_xmlFile->exists()) {// Use the file
+    retVal =  m_xmlFile->getMangledName();
+  } 
+
+  return retVal;
+
+}
+
+//----------------------------------------------------------------------------------------------
+/** Lazy loads the document and returns a autopointer
+ *
+ * @return an autopointer to the xml document
+ */
+Poco::AutoPtr<Poco::XML::Document> InstrumentDefinitionParser::getDocument()
+{
+  if (!m_pDoc) {
+    //instantiate if not created
+    if (m_instrument->getXmlText().empty())
+    {
+      throw std::invalid_argument("Instrument XML string is empty");
+    }
+    // Set up the DOM parser and parse xml file
+    DOMParser pParser;
+    try {
+      m_pDoc = pParser.parseString(m_instrument->getXmlText());
+    } catch (Poco::Exception &exc) {
+      throw std::invalid_argument(
+          exc.displayText() + ". Unable to parse XML");
+    } catch (...) {
+      throw std::invalid_argument("Unable to parse XML");
+    }
   }
+  return m_pDoc;
 }
 
 //----------------------------------------------------------------------------------------------
@@ -178,9 +214,16 @@ std::string InstrumentDefinitionParser::getMangledName() {
  */
 Instrument_sptr
 InstrumentDefinitionParser::parseXML(Kernel::ProgressBase *prog) {
-  if (!pDoc)
-    throw std::runtime_error(
-        "Call InstrumentDefinitionParser::initialize() before parseXML.");
+  auto pDoc = getDocument();
+
+  // Get pointer to root element
+  Poco::XML::Element * pRootElem = pDoc->documentElement();
+  
+  if (!pRootElem->hasChildNodes()) {
+    g_log.error("Instrument XML contains no root element.");
+    throw Kernel::Exception::InstrumentDefinitionError(
+        "No root element in XML instrument");
+  }
 
   setValidityRange(pRootElem);
   readDefaults(pRootElem->getChildElement("defaults"));
@@ -189,8 +232,21 @@ InstrumentDefinitionParser::parseXML(Kernel::ProgressBase *prog) {
 
   const std::string filename = m_xmlFile->getFileFullPathStr();
 
-  Poco::AutoPtr<NodeList> pNL_type = pRootElem->getElementsByTagName("type");
-  if (pNL_type->length() == 0) {
+  // Get all the type and component element pointers.
+  std::vector<Element*> typeElems;
+  std::vector<Element*> compElems;
+  for (Node *pNode = pRootElem->firstChild(); pNode != 0;
+       pNode = pNode->nextSibling()) {
+    auto pElem = dynamic_cast<Element*>(pNode);
+    if(pElem) {
+      if (pElem->tagName() == "type")
+        typeElems.push_back(pElem);
+      else if (pElem->tagName() == "component")
+        compElems.push_back(pElem);
+    }
+  }
+
+  if (typeElems.empty()) {
     g_log.error("XML file: " + filename + "contains no type elements.");
     throw Kernel::Exception::InstrumentDefinitionError(
         "No type elements in XML instrument file", filename);
@@ -204,9 +260,9 @@ InstrumentDefinitionParser::parseXML(Kernel::ProgressBase *prog) {
   //  * If 'Outline' attribute set for assembly add attribute object_created=no
   //  to tell
   //  create shape for such assembly also later
-  unsigned long numberTypes = pNL_type->length();
-  for (unsigned long iType = 0; iType < numberTypes; iType++) {
-    Element *pTypeElem = static_cast<Element *>(pNL_type->item(iType));
+  const size_t numberTypes = typeElems.size();
+  for (size_t iType = 0; iType < numberTypes; ++iType) {
+    Element *pTypeElem = typeElems[iType];
     std::string typeName = pTypeElem->getAttribute("name");
 
     // check if contain <combine-components-into-one-shape>. If this then such
@@ -249,8 +305,8 @@ InstrumentDefinitionParser::parseXML(Kernel::ProgressBase *prog) {
   }
 
   // Deal with adjusting types containing <combine-components-into-one-shape>
-  for (unsigned long iType = 0; iType < numberTypes; iType++) {
-    Element *pTypeElem = static_cast<Element *>(pNL_type->item(iType));
+  for (size_t iType = 0; iType < numberTypes; ++iType) {
+    Element *pTypeElem = typeElems[iType];
     std::string typeName = pTypeElem->getAttribute("name");
 
     // In this loop only interested in types containing
@@ -312,22 +368,15 @@ InstrumentDefinitionParser::parseXML(Kernel::ProgressBase *prog) {
   //
   // do analysis for each top level component element
   //
-  Poco::AutoPtr<NodeList> pNL_comp =
-      pRootElem->childNodes(); // here get all child nodes
-  unsigned long pNL_comp_length = pNL_comp->length();
-
   if (prog)
-    prog->resetNumSteps(pNL_comp_length, 0.0, 1.0);
-  for (unsigned long i = 0; i < pNL_comp_length; i++) {
+    prog->resetNumSteps(compElems.size(), 0.0, 1.0);
+
+  for (size_t i = 0; i < compElems.size(); ++i) {
     if (prog)
       prog->report("Loading instrument Definition");
 
-    // we are only interest in the top level component elements hence
-    // the reason for the if statement below
-    if ((pNL_comp->item(i))->nodeType() == Node::ELEMENT_NODE &&
-        ((pNL_comp->item(i))->nodeName()).compare("component") == 0) {
-      const Element *pElem = static_cast<Element *>(pNL_comp->item(i));
-
+    const Element *pElem = compElems[i];
+    {
       IdList idList; // structure to possibly be populated with detector IDs
 
       // Get all <location> and <locations> elements contained in component
@@ -360,36 +409,22 @@ InstrumentDefinitionParser::parseXML(Kernel::ProgressBase *prog) {
       // order they are listed in the IDF. The latter needed to get detector IDs
       // assigned
       // as expected
-      Poco::AutoPtr<NodeList> pNL_childs =
-          pElem->childNodes(); // here get all child nodes
-      unsigned long pNL_childs_length = pNL_childs->length();
-      for (unsigned long iLoc = 0; iLoc < pNL_childs_length; iLoc++) {
-        if ((pNL_childs->item(iLoc))->nodeType() == Node::ELEMENT_NODE &&
-            (((pNL_childs->item(iLoc))->nodeName()).compare("location") == 0 ||
-             ((pNL_childs->item(iLoc))->nodeName()).compare("locations") ==
-                 0)) {
-          // if a <location> element
-          if (((pNL_childs->item(iLoc))->nodeName()).compare("location") == 0) {
-            const Element *pLocElem =
-                static_cast<Element *>(pNL_childs->item(iLoc));
-            // process differently depending on whether component is and
-            // assembly or leaf
-            if (isAssembly(pElem->getAttribute("type"))) {
-              appendAssembly(m_instrument.get(), pLocElem, pElem, idList);
-            } else {
-              appendLeaf(m_instrument.get(), pLocElem, pElem, idList);
-            }
-          }
-
-          // if a <locations> element
-          if (((pNL_childs->item(iLoc))->nodeName()).compare("locations") ==
-              0) {
-            const Element *pLocElems =
-                static_cast<Element *>(pNL_childs->item(iLoc));
-
-            // append <locations> elements in <locations>
-            appendLocations(m_instrument.get(), pLocElems, pElem, idList);
+      for (Node *pNode = pElem->firstChild(); pNode != 0;
+          pNode = pNode->nextSibling()) {
+        auto pChildElem = dynamic_cast<Element*>(pNode);
+        if (!pChildElem)
+          continue;
+        if (pChildElem->tagName() == "location") {
+          // process differently depending on whether component is and
+          // assembly or leaf
+          if (isAssembly(pElem->getAttribute("type"))) {
+            appendAssembly(m_instrument.get(), pChildElem, pElem, idList);
+          } else {
+            appendLeaf(m_instrument.get(), pChildElem, pElem, idList);
           }
+        } else if (pChildElem->tagName() == "locations") {
+          // append <locations> elements in <locations>
+          appendLocations(m_instrument.get(), pChildElem, pElem, idList);
         }
       } // finished looping over all childs of this component
 
@@ -461,36 +496,28 @@ void InstrumentDefinitionParser::appendLocations(
     Geometry::ICompAssembly *parent, const Poco::XML::Element *pLocElems,
     const Poco::XML::Element *pCompElem, IdList &idList) {
   // create detached <location> elements from <locations> element
-  const std::string xmlLocation = convertLocationsElement(pLocElems);
-
-  // parse converted <locations> output
-  DOMParser pLocationsParser;
-  Poco::AutoPtr<Document> pLocationsDoc;
-  try {
-    pLocationsDoc = pLocationsParser.parseString(xmlLocation);
-  } catch (...) {
-    throw Kernel::Exception::InstrumentDefinitionError(
-        "Unable to parse XML string", xmlLocation);
-  }
+  Poco::AutoPtr<Document> pLocationsDoc = convertLocationsElement(pLocElems);
 
   // Get pointer to root element
   const Element *pRootLocationsElem = pLocationsDoc->documentElement();
-  if (!pRootLocationsElem->hasChildNodes()) {
-    throw Kernel::Exception::InstrumentDefinitionError(
-        "No root element in XML string", xmlLocation);
-  }
+  const bool assembly = isAssembly(pCompElem->getAttribute("type"));
+
+  Poco::XML::Element *pElem =
+    dynamic_cast<Poco::XML::Element*>(pRootLocationsElem->firstChild());
 
-  Poco::AutoPtr<NodeList> pNL_locInLocs =
-      pRootLocationsElem->getElementsByTagName("location");
-  unsigned long pNL_locInLocs_length = pNL_locInLocs->length();
-  for (unsigned long iInLocs = 0; iInLocs < pNL_locInLocs_length; iInLocs++) {
-    const Element *pLocInLocsElem =
-        static_cast<Element *>(pNL_locInLocs->item(iInLocs));
-    if (isAssembly(pCompElem->getAttribute("type"))) {
-      appendAssembly(parent, pLocInLocsElem, pCompElem, idList);
+  while (pElem) {
+    if (pElem->tagName() != "location") {
+      pElem = dynamic_cast<Poco::XML::Element*>(pElem->nextSibling());
+      continue;
+    }
+
+    if (assembly) {
+      appendAssembly(parent, pElem, pCompElem, idList);
     } else {
-      appendLeaf(parent, pLocInLocsElem, pCompElem, idList);
+      appendLeaf(parent, pElem, pCompElem, idList);
     }
+
+    pElem = dynamic_cast<Poco::XML::Element*>(pElem->nextSibling());
   }
 }
 
@@ -508,7 +535,8 @@ void InstrumentDefinitionParser::saveDOM_Tree(std::string &outFilename) {
   Poco::XML::DOMWriter writer;
   writer.setNewLine("\n");
   writer.setOptions(Poco::XML::XMLWriter::PRETTY_PRINT);
-
+  
+  auto pDoc = getDocument();
   std::ofstream outFile(outFilename.c_str());
   writer.writeNode(outFile, pDoc);
   outFile.close();
@@ -951,8 +979,7 @@ void InstrumentDefinitionParser::readDefaults(Poco::XML::Element *defaults) {
     Handedness handedness = s_handedness.compare("right") == 0 ? Right : Left;
 
     // Overwrite the default reference frame.
-    m_instrument->setReferenceFrame(boost::shared_ptr<ReferenceFrame>(
-        new ReferenceFrame(pointingUp, alongBeam, handedness, s_origin)));
+    m_instrument->setReferenceFrame(boost::make_shared<ReferenceFrame>(pointingUp, alongBeam, handedness, s_origin));
   }
 }
 
@@ -1298,7 +1325,7 @@ void InstrumentDefinitionParser::appendLeaf(Geometry::ICompAssembly *parent,
               boost::dynamic_pointer_cast<Geometry::Detector>((*xColumn)[y]);
           if (detector) {
             // Make default facing for the pixel
-            Geometry::IComponent *comp = (Geometry::IComponent *)detector.get();
+            Geometry::IComponent *comp = static_cast<IComponent *>(detector.get());
             if (m_haveDefaultFacing)
               makeXYplaneFaceComponent(comp, m_defaultFacing);
             // Mark it as a detector (add to the instrument cache)
@@ -2087,7 +2114,7 @@ void InstrumentDefinitionParser::setComponentLinks(
   unsigned long numberLinks = pNL_link->length();
 
   if (progress)
-    progress->resetNumSteps((int64_t)numberLinks, 0.0, 0.95);
+    progress->resetNumSteps(static_cast<int64_t>(numberLinks), 0.0, 0.95);
 
   Node *curNode = pRootElem->firstChild();
   while (curNode) {
@@ -2110,7 +2137,7 @@ void InstrumentDefinitionParser::setComponentLinks(
         int detid;
         std::stringstream(id) >> detid;
         boost::shared_ptr<const Geometry::IComponent> detector =
-            instrument->getDetector((detid_t)detid);
+            instrument->getDetector(static_cast<detid_t>(detid));
 
         // If we didn't find anything with the detector id, explain why to the
         // user, and throw an exception.
@@ -2178,17 +2205,6 @@ void InstrumentDefinitionParser::setComponentLinks(
   }
 }
 
-/**
-Check that the cache file does actually exist and that it was modified last
-after the last modification to the xml def file. i.e. the vtp file contains the
-most recent set of changes.
-@param cacheCandiate : candidate cache file object to use the geometries.
-*/
-bool InstrumentDefinitionParser::canUseProposedCacheFile(
-    IDFObject_const_sptr cacheCandiate) const {
-  return m_xmlFile->exists() && cacheCandiate->exists() &&
-         (m_xmlFile->getLastModified() < cacheCandiate->getLastModified());
-}
 
 /**
 Apply the cache.
@@ -2209,22 +2225,22 @@ void InstrumentDefinitionParser::applyCache(IDFObject_const_sptr cacheToApply) {
 
 /**
 Write the cache file from the IDF file and apply it.
-@param fallBackCache : File location for a fallback cache if required.
+@param firstChoiceCache : File location for a first choice cache.
+@param fallBackCache : File location for a fallback cache if required. 
 */
 InstrumentDefinitionParser::CachingOption
-InstrumentDefinitionParser::writeAndApplyCache(
+InstrumentDefinitionParser::writeAndApplyCache(IDFObject_const_sptr firstChoiceCache,
     IDFObject_const_sptr fallBackCache) {
-  IDFObject_const_sptr usedCache = m_cacheFile;
-  InstrumentDefinitionParser::CachingOption cachingOption = WroteCacheAdjacent;
+  IDFObject_const_sptr usedCache = firstChoiceCache;
+  auto cachingOption = WroteGeomCache;
 
   g_log.information("Geometry cache is not available");
   try {
-    Poco::File dir = m_xmlFile->getParentDirectory();
-    if (!m_xmlFile->exists() || dir.path().empty() || !dir.exists() ||
-        !dir.canWrite()) {
+    Poco::File dir = usedCache->getParentDirectory();
+    if (dir.path().empty() || !dir.exists() || !dir.canWrite()) {
       usedCache = fallBackCache;
       cachingOption = WroteCacheTemp;
-      g_log.information() << "Instrument directory is read only, writing cache "
+      g_log.information() << "Geometrycache directory is read only, writing cache "
                              "to system temp.\n";
     }
   } catch (Poco::FileNotFoundException &) {
@@ -2257,17 +2273,17 @@ InstrumentDefinitionParser::setupGeometryCache() {
   // directory.
   IDFObject_const_sptr fallBackCache = boost::make_shared<const IDFObject>(
       Poco::Path(ConfigService::Instance().getTempDir())
-          .append(m_instName + ".vtp")
+          .append(this->getMangledName()+".vtp")
           .toString());
   CachingOption cachingOption = NoneApplied;
-  if (canUseProposedCacheFile(m_cacheFile)) {
+  if (m_cacheFile->exists()) {
     applyCache(m_cacheFile);
-    cachingOption = ReadAdjacent;
-  } else if (canUseProposedCacheFile(fallBackCache)) {
+    cachingOption = ReadGeomCache;
+  } else if (fallBackCache->exists()) {
     applyCache(fallBackCache);
     cachingOption = ReadFallBack;
   } else {
-    cachingOption = writeAndApplyCache(fallBackCache);
+    cachingOption = writeAndApplyCache(m_cacheFile,fallBackCache);
   }
   return cachingOption;
 }
@@ -2570,10 +2586,11 @@ std::string InstrumentDefinitionParser::translateRotateXMLcuboid(
 /// notation for a sequence of \<location\> elements.
 /// This method return this sequence as a xml string
 /// @param pElem Input \<locations\> element
-/// @return XML string
+/// @return XML document containing \<location\> elements
 /// @throw InstrumentDefinitionError Thrown if issues with the content of XML
 /// instrument file
-std::string InstrumentDefinitionParser::convertLocationsElement(
+Poco::AutoPtr<Poco::XML::Document>
+InstrumentDefinitionParser::convertLocationsElement(
     const Poco::XML::Element *pElem) {
   // Number of <location> this <locations> element is shorthand for
   size_t nElements(0);
@@ -2650,25 +2667,22 @@ std::string InstrumentDefinitionParser::convertLocationsElement(
     }
   }
 
-  std::ostringstream xml;
-
-  Poco::XML::XMLWriter writer(xml, Poco::XML::XMLWriter::CANONICAL);
-  writer.startDocument();
-  writer.startElement("", "", "expansion-of-locations-element");
+  Poco::AutoPtr<Document> pDoc = new Document;
+  Poco::AutoPtr<Element> pRoot = pDoc->createElement("expansion-of-locations-element");
+  pDoc->appendChild(pRoot);
 
   for (size_t i = 0; i < nElements; ++i) {
-    Poco::XML::AttributesImpl attr;
+    Poco::AutoPtr<Element> pLoc = pDoc->createElement("location");
 
     if (!name.empty()) {
       // Add name with appropriate numeric postfix
-      attr.addAttribute(
-          "", "", "name", "",
+      pLoc->setAttribute("name",
           name + boost::lexical_cast<std::string>(nameCountStart + i));
     }
 
     // Copy values of all the attributes set
     for (auto it = attrValues.begin(); it != attrValues.end(); ++it) {
-      attr.addAttribute("", "", it->first, "",
+      pLoc->setAttribute(it->first,
                         boost::lexical_cast<std::string>(it->second));
 
       // If attribute has a step, increase the value by the step
@@ -2677,13 +2691,28 @@ std::string InstrumentDefinitionParser::convertLocationsElement(
       }
     }
 
-    writer.emptyElement("", "", "location", attr);
+    pRoot->appendChild(pLoc);
   }
 
-  writer.endElement("", "", "expansion-of-locations-element");
-  writer.endDocument();
+  return pDoc;
+}
 
-  return xml.str();
+ /** Generates a vtp filename from a xml filename
+ *
+ *  @return The vtp filename
+ *
+ */
+const std::string InstrumentDefinitionParser::createVTPFileName()
+{
+  std::string retVal;
+  std::string filename = getMangledName();
+  if (!filename.empty())  {
+    Poco::Path path(ConfigService::Instance().getVTPFileDirectory());
+    path.makeDirectory();
+    path.append(filename + ".vtp");
+    retVal = path.toString();
+  }
+  return retVal;
 }
 
 /** Return a subelement of an XML element, but also checks that there exist
diff --git a/Code/Mantid/Framework/Geometry/src/Math/ConvexPolygon.cpp b/Code/Mantid/Framework/Geometry/src/Math/ConvexPolygon.cpp
index 73aa1fc1c9b647be95c460a7c9cac810daa37661..4fd3c33eb3588759703c1e33950903c63445f1e2 100644
--- a/Code/Mantid/Framework/Geometry/src/Math/ConvexPolygon.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Math/ConvexPolygon.cpp
@@ -2,10 +2,11 @@
 // Includes
 //-----------------------------------------------------------------------------
 #include "MantidGeometry/Math/ConvexPolygon.h"
-#include "MantidGeometry/Math/Vertex2D.h"
+#include "MantidGeometry/Math/PolygonEdge.h"
 #include "MantidKernel/Exception.h"
+#include "MantidKernel/V2D.h"
+#include <cfloat>
 #include <sstream>
-#include <iostream>
 
 namespace Mantid {
 namespace Geometry {
@@ -13,110 +14,124 @@ namespace Geometry {
 using Kernel::V2D;
 
 //-----------------------------------------------------------------------------
-// Public functions
+// Public member functions
 //-----------------------------------------------------------------------------
 /**
- * Constructor with a head vertex.
- * @param head :: A pointer the head vertex
- * @throws std::invalid_argument If the vertex list is invalid
- */
-ConvexPolygon::ConvexPolygon(Vertex2D *head) {
-  validate(head);
-  m_head = head;
-  setup();
-}
+  * Constructs a 'null' polygon with no points
+  */
+ConvexPolygon::ConvexPolygon()
+    : m_vertices(), m_minX(DBL_MAX), m_maxX(-DBL_MAX), m_minY(DBL_MAX),
+      m_maxY(-DBL_MAX) {}
 
 /**
- * Construct a rectange
- * @param x_lower :: Lower x coordinate
- * @param x_upper :: Upper x coordinate
- * @param y_lower :: Lower y coordinate
- * @param y_upper :: Upper y coordinate
+ * @param vertices A list of points that form the polygon
  */
-ConvexPolygon::ConvexPolygon(const double x_lower, const double x_upper,
-                             const double y_lower, const double y_upper)
-    : m_numVertices(4), m_head(new Vertex2D(x_lower, y_lower)) {
-  // Iterating from the head now produces a clockwise pattern
-  m_head->insert(new Vertex2D(x_upper, y_lower)); // Bottom right
-  m_head->insert(new Vertex2D(x_upper, y_upper)); // Top right
-  m_head->insert(new Vertex2D(x_lower, y_upper)); // Top left
-
-  m_lowestX = x_lower;
-  m_highestX = x_upper;
-  m_lowestY = y_lower;
-  m_highestY = y_upper;
+ConvexPolygon::ConvexPolygon(const Vertices &vertices) : m_vertices(vertices) {
+  setup();
 }
 
 /**
  * Copy constructor
  * @param rhs :: The object to copy from
  */
-ConvexPolygon::ConvexPolygon(const ConvexPolygon &rhs) {
+ConvexPolygon::ConvexPolygon(const ConvexPolygon &rhs) { *this = rhs; }
+
+/**
+ * Copy-assignment operator
+ * @param rhs Source object to copy from
+ */
+ConvexPolygon &ConvexPolygon::operator=(const ConvexPolygon &rhs) {
   if (this != &rhs) {
-    m_head = new Vertex2D(rhs.m_head->X(), rhs.m_head->Y());
-    /// Iterating next() around the other polygon produces the points in
-    /// clockwise order
-    /// so we need to go backwards here to ensure that they remain in the same
-    /// order
-    Vertex2D *rhsVertex = rhs.m_head->previous();
-    // Count the vertices
-    while (rhsVertex != rhs.m_head) {
-      m_head->insert(new Vertex2D(rhsVertex->X(), rhsVertex->Y()));
-      rhsVertex = rhsVertex->previous();
-    }
+    m_vertices = rhs.m_vertices;
     setup();
   }
+  return *this;
 }
 
 /**
- * Default (no parameters) constructor
+ * Destructor
  */
-ConvexPolygon::ConvexPolygon()
-    : m_numVertices(0), m_head(NULL), m_lowestX(0.), m_highestX(0.),
-      m_lowestY(0.), m_highestY(0.) {}
+ConvexPolygon::~ConvexPolygon() {}
+
+/// @return True if polygon has 3 or more points
+bool ConvexPolygon::isValid() const { return (npoints() > 2); }
+
+/// Clears all points
+void ConvexPolygon::clear() {
+  m_vertices.clear();
+  m_minX = DBL_MAX;
+  m_maxX = -DBL_MAX;
+  m_minY = DBL_MAX;
+  m_maxY = -DBL_MAX;
+}
 
 /**
- * Destructor
+ * Insert a new vertex. It is assumed this point is the next
+ * point in anti-clockwise manner
+ * @param pt A new point for the shape
  */
-ConvexPolygon::~ConvexPolygon() {
-  if (m_head)
-    Vertex2D::deleteChain(m_head);
+void ConvexPolygon::insert(const V2D &pt) {
+  m_vertices.push_back(pt);
+  // Update extrema
+  if (pt.X() < m_minX)
+    m_minX = pt.X();
+  else if (pt.X() > m_maxX)
+    m_maxX = pt.X();
+
+  if (pt.Y() < m_minY)
+    m_minY = pt.Y();
+  else if (pt.Y() > m_maxY)
+    m_maxY = pt.Y();
 }
 
 /**
- * Return the vertex at the given index
+ * @param x X coordinate
+ * @param y Y coordinate
+ */
+void ConvexPolygon::insert(double x, double y) { insert(V2D(x, y)); }
+
+/**
+ * Return the vertex at the given index. The index is assumed to be valid. See
+ * at() for a
+ * bounds-checking version. Out-of-bounds access is undefined
  * @param index :: An index, starting at 0
  * @returns A reference to the polygon at that index
  * @throws Exception::IndexError if the index is out of range
  */
 const V2D &ConvexPolygon::operator[](const size_t index) const {
-  if (index < numVertices()) {
-    size_t count(0);
-    Vertex2D *p = m_head;
-    while (count != index) {
-      ++count;
-      p = p->next();
-    }
-    return static_cast<const V2D &>(*p);
+  return m_vertices[index];
+}
+
+/**
+ * Return the vertex at the given index. The index is checked for validity
+ * @param index :: An index, starting at 0
+ * @returns A reference to the polygon at that index
+ * @throws Exception::IndexError if the index is out of range
+ */
+const Kernel::V2D &ConvexPolygon::at(const size_t index) const {
+  if (index < npoints()) {
+    return m_vertices[index];
+  } else {
+    throw Kernel::Exception::IndexError(index, npoints(),
+                                        "ConvexPolygon::at()");
   }
-  throw Kernel::Exception::IndexError(index, numVertices(),
-                                      "ConvexPolygon::operator[]");
 }
 
+/// @return the number of vertices
+size_t ConvexPolygon::npoints() const { return m_vertices.size(); }
+
 /**
  * Is a point inside this polygon
  * @param point :: The point to test
  * @returns True if the point is inside the polygon
  */
 bool ConvexPolygon::contains(const Kernel::V2D &point) const {
-  Vertex2D *v = m_head;
-  do {
-    PolygonEdge edge(v->point(), v->next()->point());
-    if (classify(point, edge) == OnLeft)
+  for (size_t i = 0; i < npoints(); ++i) {
+    PolygonEdge edge(m_vertices[i], m_vertices[(i + 1) % npoints()]);
+    if (classify(point, edge) == OnLeft) {
       return false;
-    v = v->next();
-  } while (v != m_head);
-
+    }
+  }
   return true;
 }
 
@@ -129,11 +144,9 @@ bool ConvexPolygon::contains(const Kernel::V2D &point) const {
 bool ConvexPolygon::contains(const ConvexPolygon &poly) const {
   // Basically just have to test if each point is inside us, this could be
   // slow
-  const Vertex2D *current = poly.head();
-  for (size_t i = 0; i < poly.numVertices(); ++i) {
-    if (!this->contains(*current))
+  for (size_t i = 0; i < poly.npoints(); ++i) {
+    if (!this->contains(poly[i]))
       return false;
-    current = current->next();
   }
   return true;
 }
@@ -154,9 +167,9 @@ double ConvexPolygon::area() const { return 0.5 * this->determinant(); }
  * @returns The determinant of the set of points
  */
 double ConvexPolygon::determinant() const {
-  // Arrange the points in a NX2 matrix where N = numVertices+1
+  // Arrange the points in a Nx2 matrix where N = npoints+1
   // and each row is a vertex point with the last row equal to the first.
-  // Calculate the "determinant". The matrix class needs and NXN matrix
+  // Calculate the "determinant". The matrix class needs and NxN matrix
   // as the correct definition of a determinant only exists for
   // square matrices. We could fool it by putting extra zeroes but this
   // would increase the workload for no gain
@@ -165,14 +178,14 @@ double ConvexPolygon::determinant() const {
   // that calling next() on the vertex takes us clockwise within
   // the polygon.
   double lhs(0.0), rhs(0.0);
-  Vertex2D *v_i = m_head;
-  Vertex2D *v_ip1 = v_i->next();
-  do {
+  const V2D *v_i(NULL), *v_ip1(NULL);
+  for (size_t i = 0; i < npoints(); ++i) {
+    v_i = &(m_vertices[i]);
+    v_ip1 = &(m_vertices[(i + 1) % npoints()]);
+
     lhs += v_ip1->X() * v_i->Y();
     rhs += v_i->X() * v_ip1->Y();
-    v_i = v_i->next();
-    v_ip1 = v_i->next();
-  } while (v_i != m_head);
+  }
   return lhs - rhs;
 }
 
@@ -180,74 +193,52 @@ double ConvexPolygon::determinant() const {
  * Return the lowest X value in the polygon
  * @returns A double indicating the smallest X value in the polygon
  */
-double ConvexPolygon::smallestX() const { return m_lowestX; }
+double ConvexPolygon::minX() const { return m_minX; }
 
 /**
  * Return the largest X value in the polygon
  * @returns A double indicating the smallest X value in the polygon
  */
-double ConvexPolygon::largestX() const { return m_highestX; }
+double ConvexPolygon::maxX() const { return m_maxX; }
 
 /**
  * Return the lowest X value in the polygon
  * @returns A double indicating the smallest Y value in the polygon
  */
-double ConvexPolygon::smallestY() const { return m_lowestY; }
+double ConvexPolygon::minY() const { return m_minY; }
 
 /**
  * Return the largest Y value in the polygon
  * @returns A double indicating the smallest Y value in the polygon
  */
-double ConvexPolygon::largestY() const { return m_highestY; }
+double ConvexPolygon::maxY() const { return m_maxY; }
 
 /**
- * Setup the meta-data: no of vertices, high/low points
+ * @return A copy of the current polygon
  */
-void ConvexPolygon::setup() {
-  m_numVertices = 0;
-
-  m_lowestX = m_head->X();
-  m_highestX = m_head->X();
-  m_lowestY = m_head->Y();
-  m_highestY = m_head->Y();
-
-  // Count the vertices
-  Vertex2D *current = m_head;
-  do {
-    ++m_numVertices;
-    if (current->X() < m_lowestX)
-      m_lowestX = current->X();
-    else if (current->X() > m_highestX)
-      m_highestX = current->X();
-
-    if (current->Y() < m_lowestY)
-      m_lowestY = current->Y();
-    else if (current->Y() > m_highestY)
-      m_highestY = current->Y();
-    current = current->next();
-  } while (current != m_head);
-}
+ConvexPolygon ConvexPolygon::toPoly() const { return *this; }
 
 /**
- * Check this is a valid polygon
- * @param head :: A pointer to the head vertex
- * @throws std::invalid_argument if it is not
+ * Setup the meta-data: no of vertices, high/low points
  */
-void ConvexPolygon::validate(const Vertex2D *head) const {
-  if (!head) {
-    throw std::invalid_argument("ConvexPolygon::validate - NULL pointer is an "
-                                "invalid head for a convex polygon");
-  }
-  // Must have at least two neighbours
-  if (head->next() == head->previous()) {
-    std::ostringstream os;
-    os << "ConvexPolygon::validate - Expected 3 or more vertices when "
-          "constructing a convex polygon, found ";
-    if (head->next() == head)
-      os << "1";
-    else
-      os << "2";
-    throw std::invalid_argument(os.str());
+void ConvexPolygon::setup() {
+  m_minX = DBL_MAX;
+  m_maxX = -DBL_MAX;
+  m_minY = DBL_MAX;
+  m_maxY = -DBL_MAX;
+
+  auto iend = m_vertices.end();
+  for (auto iter = m_vertices.begin(); iter != iend; ++iter) {
+    double x(iter->X()), y(iter->Y());
+    if (x < m_minX)
+      m_minX = x;
+    else if (x > m_maxX)
+      m_maxX = x;
+
+    if (y < m_minY)
+      m_minY = y;
+    else if (y > m_maxY)
+      m_maxY = y;
   }
 }
 
@@ -276,13 +267,11 @@ double ConvexPolygon::triangleArea(const V2D &a, const V2D &b,
  */
 std::ostream &operator<<(std::ostream &os, const ConvexPolygon &polygon) {
   os << "ConvexPolygon(";
-  const size_t numVertices(polygon.numVertices());
-  Vertex2DIterator pIter(polygon.head());
-  for (size_t i = 0; i < numVertices; ++i) {
-    os << pIter.point();
-    if (i < numVertices - 1)
+  const size_t npoints(polygon.npoints());
+  for (size_t i = 0; i < npoints; ++i) {
+    os << polygon[i];
+    if (i < npoints - 1)
       os << ",";
-    pIter.advance();
   }
   os << ")";
   return os;
diff --git a/Code/Mantid/Framework/Geometry/src/Math/ConvexPolygonIterator.cpp b/Code/Mantid/Framework/Geometry/src/Math/ConvexPolygonIterator.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1fc6ac63787db034b61b3885a2d0ac934e536fe7
--- /dev/null
+++ b/Code/Mantid/Framework/Geometry/src/Math/ConvexPolygonIterator.cpp
@@ -0,0 +1,55 @@
+//-----------------------------------------------------------------------------
+// Includes
+//-----------------------------------------------------------------------------
+#include "MantidGeometry/Math/ConvexPolygon.h"
+#include "MantidGeometry/Math/PolygonEdge.h"
+#include "MantidKernel/Exception.h"
+
+namespace Mantid {
+namespace Geometry {
+
+//-----------------------------------------------------------------------------
+// Public member functions
+//-----------------------------------------------------------------------------
+/**
+ * @param polygon A reference to the initializing polygon
+ */
+ConvexPolygon::Iterator::Iterator(const ConvexPolygon &polygon)
+    : m_polygon(polygon), m_index(0) {
+  if (!polygon.isValid()) {
+    throw std::invalid_argument("Cannot create iterator for invalid polygon.");
+  }
+}
+
+/**
+  * @return Dereference the iterator and return the current value
+  */
+const Kernel::V2D &ConvexPolygon::Iterator::operator*() const {
+  return m_polygon[m_index];
+}
+
+/**
+  * Advance the iterator to the next point. When the iterator points to the
+  * last point the next increment will take it back to the "first" point.
+  */
+void ConvexPolygon::Iterator::operator++() {
+  m_index = nextIndex();
+}
+
+/**
+ * @return A PolygonEdge defining the edge with the current point and the next
+ */
+PolygonEdge ConvexPolygon::Iterator::edge() const {
+  return PolygonEdge(**this, m_polygon[nextIndex()]);
+}
+
+//-----------------------------------------------------------------------------
+// Private member functions
+//-----------------------------------------------------------------------------
+/// @return The next index, taking into account cycling back after npoints()
+size_t ConvexPolygon::Iterator::nextIndex() const {
+  return (m_index + 1) % m_polygon.npoints();
+}
+
+} // namespace Geometry
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/Geometry/src/Math/LaszloIntersection.cpp b/Code/Mantid/Framework/Geometry/src/Math/LaszloIntersection.cpp
deleted file mode 100644
index 3e0fdbc09207efc0f2f8191be4cf0261442c2c7d..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/src/Math/LaszloIntersection.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-//-----------------------------------------------------------------------------
-// Includes
-//-----------------------------------------------------------------------------
-#include "MantidGeometry/Math/LaszloIntersection.h"
-#include "MantidGeometry/Math/Vertex2D.h"
-#include "MantidKernel/Exception.h"
-#include <iostream>
-
-namespace Mantid {
-namespace Geometry {
-using Kernel::V2D;
-
-namespace {
-
-enum eEdgeIn {
-  Unknown,   /**< Which edge is inside the other is not known */
-  PIsInside, /**< Edge P is inside of edge Q */
-  QIsInside  /**< Edge Q is inside of edge P */
-};
-
-/**
- * Advance the current vertex on the given polygon. If the inside flag is set
- * record a point of intersection on the given vertex
- * @param iter :: An iterator on the current polygon
- * @param lastIntersect :: A pointer to the last vertex in the intersection list
- * @param inside :: True if the current polygon point is inside another
- */
-void advanceVertex(Vertex2DIterator &iter, Vertex2D *&lastIntersect,
-                   const bool inside) {
-  iter.advance();
-  const Kernel::V2D &curPolyPt = iter.point();
-  if (inside && (lastIntersect->point() != curPolyPt)) {
-    // Add an intersection as the point is inside the polygon
-    lastIntersect = lastIntersect->insert(new Vertex2D(curPolyPt));
-#ifdef VERBOSE
-    std::cout << "Advance adds cross pt: (" << curPolyPt.X() << ","
-              << curPolyPt.Y() << ")" << std::endl;
-#endif
-  }
-}
-} // Anonymous namespace
-
-/**
-* Compute the polygon that defines the intersection between two
-* other concex polygons using the method of chasing edges implemented by Laszlo
-* @param P :: A reference to the first polygon
-* @param Q :: A reference to the second polygon
-* @returns A new polygon defining the region of intersection
-*/
-ConvexPolygon intersectionByLaszlo(const ConvexPolygon &P,
-                                   const ConvexPolygon &Q) {
-  // The algorithm requires that the polygon with the greatest unsigned area
-  // be on the "Left"
-  if (P.determinant() < Q.determinant())
-    return intersectionByLaszlo(Q, P);
-
-  Vertex2D *curIntersection(NULL);
-  V2D iPnt, startPnt;
-  Vertex2DIterator pIter(P.head()), qIter(Q.head());
-  eEdgeIn inflag = Unknown;
-  int phase = 1;
-  size_t maxItns = 2 * (P.numVertices() + Q.numVertices());
-  for (size_t i = 1; i <= maxItns; ++i) {
-#ifdef VERBOSE
-    std::cout << "Iteration " << i << " Phase = " << phase << std::endl;
-#endif
-    const PolygonEdge edgeP = pIter.edge();
-    const PolygonEdge edgeQ = qIter.edge();
-    PointClassification pclass = classify(edgeP.end(), edgeQ);
-#ifdef VERBOSE
-    std::cout << "Class P Pt" << std::endl;
-    std::cout << "Class Pt: (" << edgeP.end().X() << "," << edgeP.end().Y()
-              << ")";
-    std::cout << std::endl;
-    std::cout << "Edge Orig Pt (" << edgeQ.start().X() << ","
-              << edgeQ.start().Y() << ")";
-    std::cout << std::endl;
-    std::cout << "Edge Dest Pt (" << edgeQ.end().X() << "," << edgeQ.end().Y()
-              << ")";
-    std::cout << std::endl;
-    std::cout << "P pt class: " << pclass << std::endl;
-#endif
-    PointClassification qclass = classify(edgeQ.end(), edgeP);
-#ifdef VERBOSE
-    std::cout << "Class Q Pt" << std::endl;
-    std::cout << "Class Pt: (" << edgeQ.end().X() << "," << edgeQ.end().Y()
-              << ")";
-    std::cout << std::endl;
-    std::cout << "Edge Orig Pt (" << edgeP.start().X() << ","
-              << edgeP.start().Y() << ")";
-    std::cout << std::endl;
-    std::cout << "Edge Dest Pt (" << edgeP.end().X() << "," << edgeP.end().Y()
-              << ")";
-    std::cout << std::endl;
-    std::cout << "Q pt class: " << qclass << std::endl;
-#endif
-    PolygonEdge::Orientation crossType = crossingPoint(edgeP, edgeQ, iPnt);
-#ifdef VERBOSE
-    std::cout << "PQ Orient: " << crossType << std::endl;
-#endif
-    if (crossType == PolygonEdge::SkewCross) {
-      if (phase == 1) {
-        phase = 2;
-#ifdef VERBOSE
-        std::cout << "Found a crossing pt: (" << iPnt.X() << ",";
-        std::cout << iPnt.Y() << ")" << std::endl;
-#endif
-
-        curIntersection = new Vertex2D(iPnt);
-        startPnt = iPnt;
-      } else if (iPnt != *curIntersection) {
-#ifdef VERBOSE
-        std::cout << "Found a crossing pt: (" << iPnt.X() << ",";
-        std::cout << iPnt.Y() << ")" << std::endl;
-#endif
-        if (iPnt != startPnt) {
-          curIntersection = curIntersection->insert(new Vertex2D(iPnt));
-        } else // Back to the start, we're done
-        {
-          try {
-            // Make the head vertex of the polygon the first one we found
-            return ConvexPolygon(curIntersection->next());
-          } catch (std::invalid_argument &) {
-            Vertex2D::deleteChain(curIntersection);
-            throw NoIntersectionException();
-          }
-        }
-      }
-      if (pclass == OnRight) {
-        inflag = PIsInside;
-      } else if (qclass == OnRight) {
-        inflag = QIsInside;
-      } else {
-        inflag = Unknown;
-      }
-    } else if ((crossType == PolygonEdge::Collinear) && (pclass != Behind) &&
-               (qclass != Behind)) {
-      inflag = Unknown;
-    }
-#ifdef VERBOSE
-    std::cout << "Current in flag: " << inflag << std::endl;
-#endif
-
-    bool pAIMSq = edgeAimsAt(edgeP, edgeQ, pclass, crossType);
-    bool qAIMSp = edgeAimsAt(edgeQ, edgeP, qclass, crossType);
-#ifdef VERBOSE
-    std::cout << "P aims at Q:" << pAIMSq << std::endl;
-    std::cout << "Q aims at P:" << qAIMSp << std::endl;
-#endif
-    if (pAIMSq && qAIMSp) {
-      if ((inflag == QIsInside) ||
-          ((inflag == Unknown) && (pclass == OnLeft))) {
-#ifdef VERBOSE
-        std::cout << "Move edge on P" << std::endl;
-#endif
-        advanceVertex(pIter, curIntersection, false);
-      } else {
-#ifdef VERBOSE
-        std::cout << "Move edge on Q" << std::endl;
-#endif
-        advanceVertex(qIter, curIntersection, false);
-      }
-    } else if (pAIMSq) {
-#ifdef VERBOSE
-      std::cout << "Move edge on P" << std::endl;
-#endif
-      advanceVertex(pIter, curIntersection, inflag == PIsInside);
-    } else if (qAIMSp) {
-#ifdef VERBOSE
-      std::cout << "Move edge on Q" << std::endl;
-#endif
-      advanceVertex(qIter, curIntersection, inflag == QIsInside);
-    } else {
-      if ((inflag == QIsInside) ||
-          ((inflag == Unknown) && (pclass == OnLeft))) {
-#ifdef VERBOSE
-        std::cout << "Move edge on P" << std::endl;
-#endif
-        advanceVertex(pIter, curIntersection, false);
-      } else {
-#ifdef VERBOSE
-        std::cout << "Move edge on Q" << std::endl;
-#endif
-        advanceVertex(qIter, curIntersection, false);
-      }
-    }
-  } // end-for
-
-  // Reaching this point means we have no intersections
-  // of the polygon edges. There is the possiblity that
-  // the larger polygon completely encloses the smaller
-  // in which case no edge intersections would be found
-  if (P.contains(Q)) {
-    return Q;
-  }
-
-  throw NoIntersectionException();
-}
-
-} // namespace Geometry
-} // namespace Mantid
diff --git a/Code/Mantid/Framework/Geometry/src/Math/ORourkeIntersection.cpp b/Code/Mantid/Framework/Geometry/src/Math/ORourkeIntersection.cpp
deleted file mode 100644
index 1904c6f565ec64a80a0597b72f9a4ba05fb5b9eb..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/src/Math/ORourkeIntersection.cpp
+++ /dev/null
@@ -1,264 +0,0 @@
-//-----------------------------------------------------------------------------
-// Includes
-//-----------------------------------------------------------------------------
-#include "MantidGeometry/Math/ORourkeIntersection.h"
-#include "MantidKernel/V2D.h"
-#include "MantidKernel/Exception.h"
-#include <iostream>
-
-namespace Mantid {
-namespace Geometry {
-using Kernel::V2D;
-
-namespace {
-//---------------------------------------------------------
-// Utility function declarations
-//---------------------------------------------------------
-///@cond
-enum InFlag { Pin, Qin, Unknown };
-/// Calculate the intersection type for the line segments
-unsigned int intersection(const V2D &a, const V2D &b, const V2D &c,
-                          const V2D &d, Kernel::V2D &crossPoint);
-/// Calculate intersection type for parallel lines
-unsigned int parallelIntersect(const V2D &a, const V2D &b, const V2D &c,
-                               const V2D &d, Kernel::V2D &crossPoint);
-/// Are the 3 points collinear
-bool collinear(const V2D &a, const V2D &b, const V2D &c);
-/// Is point C between point A and point B
-bool isBetween(const V2D &a, const V2D &b, const V2D &c);
-/// Advance the vertex index
-size_t advanceVertex(const size_t vi, size_t &vertex_count, const size_t nverts,
-                     const bool inside, const V2D &currentVertex,
-                     Vertex2DList &intersections);
-///@endcond
-}
-
-/**
-* Compute the polygon that defines the intersection between two
-* other concex polygons using the method of chasing edges
-* @param P :: A reference to the first polygon
-* @param Q :: A reference to the second polygon
-* @returns A new polygon defining the region of intersection
-*/
-ConvexPolygon intersectionByORourke(const ConvexPolygon &P,
-                                    const ConvexPolygon &Q) {
-  const size_t nverts_p(P.numVertices()), nverts_q(Q.numVertices());
-  const V2D origin(0.0, 0.0);
-
-  size_t count_p(0), count_q(0); // Number of vertices visited
-  unsigned int inflag(Unknown);
-  bool firstPoint(true);
-  // Avoid vertex list reallocations
-  Vertex2DList originAB(3);
-  originAB[0] = origin;
-  Vertex2DList aHB(3);
-  Vertex2DList bHA(3);
-
-  // Final list
-  Vertex2DList intersectList;
-  do {
-    size_t pi(0), pim1(0), qi(0), qim1(0);
-
-    // Compute a vector between the previous point in the direction of the next
-    pim1 = (pi + nverts_p - 1) % nverts_p;
-    qim1 = (qi + nverts_q - 1) % nverts_q;
-    V2D edge_p = P[pi] - P[pim1];
-    V2D edge_q = Q[qi] - Q[qim1];
-
-    // Orientations
-    originAB[1] = edge_p;
-    originAB[2] = edge_q;
-    int cross = ConvexPolygon(originAB).orientation();
-    aHB[0] = Q[qim1];
-    aHB[1] = Q[qi];
-    aHB[2] = P[pi];
-    int aHB_dir = ConvexPolygon(aHB).orientation();
-    bHA[0] = P[pim1];
-    bHA[1] = P[pi];
-    bHA[2] = Q[qi];
-    int bHA_dir = ConvexPolygon(bHA).orientation();
-    // Test for line intersection
-    V2D intersect;
-    unsigned int type = intersection(P[pim1], P[pi], Q[qim1], Q[qi], intersect);
-    if (type == 1 || type == 2) {
-      if (inflag == Unknown && firstPoint) {
-        count_p = count_q = 0;
-        firstPoint = false;
-      }
-      if (aHB_dir > 0)
-        inflag = Pin;
-      else if (bHA_dir > 0)
-        inflag = Qin;
-      else {
-      };
-      intersectList.insert(intersect);
-    }
-
-    // Deal with advance of indices
-    /* Special case: A & B overlap and oppositely oriented. */
-    if (type == 3 && edge_p.scalar_prod(edge_q) < 0.0) {
-      throw std::runtime_error("Single segment intersection");
-    }
-    /* Special case: A & B parallel and separated. */
-    else if (cross == 0 && (aHB_dir < 0) && (bHA_dir < 0)) {
-      throw std::runtime_error(
-          "AxB=0 and both are left-hand oriented so no intersection");
-    }
-    /* Special case: A & B collinear. */
-    else if (cross == 0 && (aHB_dir == 0) && (bHA_dir == 0)) {
-      /* Advance but do not output point. */
-      if (inflag == Pin)
-        qi = advanceVertex(qi, count_q, nverts_q, false, Q[qi], intersectList);
-      else
-        pi = advanceVertex(pi, count_p, nverts_p, false, P[pi], intersectList);
-    }
-    /* Generic cases. */
-    else if (cross >= 0) {
-      if (bHA_dir > 0)
-        pi = advanceVertex(pi, count_p, nverts_p, inflag == Pin, P[pi],
-                           intersectList);
-      else
-        qi = advanceVertex(qi, count_q, nverts_q, inflag == Qin, Q[qi],
-                           intersectList);
-    } else /* if ( cross < 0 ) */
-    {
-      if (aHB_dir > 0)
-        qi = advanceVertex(qi, count_q, nverts_q, inflag == Qin, Q[qi],
-                           intersectList);
-      else
-        pi = advanceVertex(pi, count_p, nverts_p, inflag == Pin, P[pi],
-                           intersectList);
-    }
-  } while ((count_p < nverts_p || count_q < nverts_q) &&
-           (count_p < 2 * nverts_p) && (count_q < 2 * nverts_q));
-
-  if (intersectList.size() < 3) {
-    throw std::runtime_error(
-        "Intersection points do not form a bounded polygon.");
-  }
-
-  return ConvexPolygon(intersectList);
-}
-
-//--------------------------------------------------------------------------
-// Utility functions for this algorithm
-//--------------------------------------------------------------------------
-namespace {
-/**
-* Calculate the point of intersection for the given line segments, ab-cd
-* @param a :: Starting point of the first segment
-* @param b :: Starting point of the first segment
-* @param c :: Starting point of the second segment
-* @param d :: Starting point of the second segment
-* @param crossPoint :: Output the crossing point
-* @returns An flag marking the type of intersection
-* see http://mathworld.wolfram.com/Line-LineIntersection.html
-*/
-unsigned int intersection(const V2D &a, const V2D &b, const V2D &c,
-                          const V2D &d, V2D &crossPoint) {
-  double denominator = (a[0] * (d[1] - c[1]) + b[0] * (c[1] - d[1]) +
-                        d[0] * (b[1] - a[1]) + c[0] * (a[1] - b[1]));
-  // Denominator=0.0, parallel lines
-  if (denominator == 0.0) {
-    return parallelIntersect(a, b, c, d, crossPoint);
-  }
-  double numerator =
-      (a[0] * (d[1] - c[1]) + c[0] * (a[1] - d[1]) + d[0] * (c[1] - a[1]));
-  unsigned int code(0);
-  if (numerator == 0.0 || numerator == denominator)
-    code = 2;
-  double s = numerator / denominator;
-  numerator =
-      -(a[0] * (c[1] - b[1]) + b[0] * (a[1] - c[1]) + c[0] * (b[1] - a[1]));
-  if (numerator == 0.0 || numerator == denominator)
-    code = 2;
-  double t = numerator / denominator;
-  if ((s > 0.0) && (s < 1.0) && (t > 0.0) && (t < 1.0)) {
-    code = 1;
-  } else if ((s < 0.0) || (s > 1.0) || (t < 0.0) || (t > 1.0)) {
-    code = 0;
-  } else {
-  }
-  crossPoint = V2D(a[0] + s * (b[0] - a[0]), a[1] + s * (b[1] - a[1]));
-  return code;
-}
-
-/**
-* Calculate the point of intersection for the given parallel line segments,
-* ab-cd
-* @param a :: Starting point of the first segment
-* @param b :: Starting point of the first segment
-* @param c :: Starting point of the second segment
-* @param d :: Starting point of the second segment
-* @param crossPoint :: Output the crossing point
-* @returns An flag marking the type of intersection
-* see http://mathworld.wolfram.com/Line-LineIntersection.html
-*/
-unsigned int parallelIntersect(const V2D &a, const V2D &b, const V2D &c,
-                               const V2D &d, V2D &crossPoint) {
-  unsigned int type(0);
-  if (!collinear(a, b, c))
-    type = 0;
-  else {
-    type = 3;
-    if (isBetween(a, b, c) && isBetween(a, b, d)) {
-      crossPoint = c;
-    } else if (isBetween(c, d, a) && isBetween(c, d, b)) {
-      crossPoint = a;
-    } else if (isBetween(a, b, c) && isBetween(c, d, b)) {
-      crossPoint = c;
-    } else if (isBetween(a, b, c) && isBetween(c, d, a)) {
-      crossPoint = c;
-    } else if (isBetween(a, b, d) && isBetween(c, d, b)) {
-      crossPoint = d;
-    } else if (isBetween(a, b, d) && isBetween(c, d, a)) {
-      crossPoint = d;
-    } else
-      type = 0;
-  }
-  return type;
-}
-
-/**
-* Are the 3 points collinear
-* @param a :: Point A
-* @param b :: Point B
-* @param c :: Point C
-*/
-bool collinear(const V2D &a, const V2D &b, const V2D &c) {
-  Vertex2DList vertices(3);
-  vertices[0] = a;
-  vertices[1] = b;
-  vertices[2] = c;
-  return (ConvexPolygon(vertices).determinant() == 0.0);
-}
-
-/// Is point C between point A and point B
-bool isBetween(const V2D &a, const V2D &b, const V2D &c) {
-  if (a[0] != b[0])
-    return ((a[0] <= c[0]) && (c[0] <= b[0])) ||
-           ((a[0] >= c[0]) && (c[0] >= b[0]));
-  else
-    return ((a[1] <= c[1]) && (c[1] <= b[1])) ||
-           ((a[1] >= c[1]) && (c[1] >= b[1]));
-}
-
-/**
-* Advance the given vertex index while keeping a count of the number used
-* @param vi :: Index to be cycled
-* @param vertex_count :: Keep track of the total number visited
-* @param nverts :: The total number of vertices
-*/
-size_t advanceVertex(const size_t vi, size_t &vertex_count, const size_t nverts,
-                     const bool inside, const V2D &currentVertex,
-                     Vertex2DList &intersections) {
-  if (inside) {
-    intersections.insert(currentVertex);
-  }
-  ++vertex_count;
-  return (vi + 1) % nverts;
-}
-}
-
-} // namespace Geometry
-} // namespace Mantid
diff --git a/Code/Mantid/Framework/Geometry/src/Math/PolygonEdge.cpp b/Code/Mantid/Framework/Geometry/src/Math/PolygonEdge.cpp
index 0569ecb017bd702ef04166cfef9cf6fbcaa27d4c..a7e04cb94801dddd177915f4aaf9a4d2f2964b3f 100644
--- a/Code/Mantid/Framework/Geometry/src/Math/PolygonEdge.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Math/PolygonEdge.cpp
@@ -9,6 +9,12 @@ namespace Mantid {
 namespace Geometry {
 using Kernel::V2D;
 
+namespace
+{
+  // Smallest possible double value
+  const double EPSILON = std::numeric_limits<double>::epsilon();
+}
+
 //-----------------------------------------------------------------------------
 // Public methods
 //-----------------------------------------------------------------------------
@@ -16,7 +22,7 @@ using Kernel::V2D;
  * Contructor taking two points, start and end
  */
 PolygonEdge::PolygonEdge(const Kernel::V2D &start, const Kernel::V2D &end)
-    : m_start(start), m_end(end) {}
+    : m_start(start), m_end(end), m_dir(m_end-m_start) {}
 
 /**
  * Create a point a given fraction along this edge
@@ -24,8 +30,7 @@ PolygonEdge::PolygonEdge(const Kernel::V2D &start, const Kernel::V2D &end)
  * @returns A point on the edge
  */
 Kernel::V2D PolygonEdge::point(const double fraction) const {
-  const V2D dir = (end() - start());
-  return V2D(start() + dir * fraction);
+  return start() + m_dir * fraction;
 }
 
 //-------------------------------------------------------------------------
@@ -39,7 +44,7 @@ Kernel::V2D PolygonEdge::point(const double fraction) const {
  */
 PointClassification classify(const V2D &pt, const PolygonEdge &edge) {
   V2D p2 = pt;
-  V2D a = edge.end() - edge.start();
+  const V2D &a = edge.direction();
   V2D b = p2 - edge.start();
   double sa = a.X() * b.Y() - b.X() * a.Y();
   if (sa > 0.0) {
@@ -75,8 +80,7 @@ PolygonEdge::Orientation orientation(const PolygonEdge &focusEdge,
                                      const PolygonEdge &refEdge, double &t) {
   V2D normalToRef((refEdge.end().Y() - refEdge.start().Y()),
                   (refEdge.start().X() - refEdge.end().X()));
-  V2D focusDir = focusEdge.end() - focusEdge.start();
-  double denom = normalToRef.scalar_prod(focusDir);
+  double denom = normalToRef.scalar_prod(focusEdge.direction());
   if (Kernel::equals(denom, 0.0)) {
     PointClassification edgeClass = classify(focusEdge.start(), refEdge);
     if (edgeClass == OnLeft || edgeClass == OnRight) {
@@ -108,22 +112,21 @@ PolygonEdge::Orientation crossingPoint(const PolygonEdge &edgeOne,
   if (classe == PolygonEdge::Collinear || classe == PolygonEdge::Parallel) {
     return classe;
   }
-  const double epsilon(std::numeric_limits<double>::epsilon());
-  double lene = (edgeOne.end() - edgeOne.start()).norm();
-  if ((s < -epsilon * lene) || (s > 1.0 + epsilon * lene)) {
+  double lene = edgeOne.direction().norm();
+  if ((s < -EPSILON * lene) || (s > 1.0 + EPSILON * lene)) {
     return PolygonEdge::SkewNoCross;
   }
   double t(0.0);
   orientation(edgeTwo, edgeOne, t);
-  double lenf = (edgeTwo.start() - edgeTwo.end()).norm();
-  if (ltEquals(-epsilon * lenf, t) && ltEquals(t, 1.0 + epsilon * lenf)) {
-    if (ltEquals(t, epsilon * lenf)) {
+  double lenf = edgeTwo.direction().norm();
+  if (ltEquals(-EPSILON * lenf, t) && ltEquals(t, 1.0 + EPSILON * lenf)) {
+    if (ltEquals(t, EPSILON * lenf)) {
       crossPoint = edgeTwo.start();
-    } else if (gtEquals(t, 1.0 - epsilon * lenf)) {
+    } else if (gtEquals(t, 1.0 - EPSILON * lenf)) {
       crossPoint = edgeTwo.end();
-    } else if (ltEquals(s, epsilon * lene)) {
+    } else if (ltEquals(s, EPSILON * lene)) {
       crossPoint = edgeOne.start();
-    } else if (gtEquals(s, 1.0 - epsilon * lene)) {
+    } else if (gtEquals(s, 1.0 - EPSILON * lene)) {
       crossPoint = edgeOne.end();
     } else {
       crossPoint = edgeTwo.point(t);
@@ -144,8 +147,8 @@ PolygonEdge::Orientation crossingPoint(const PolygonEdge &edgeOne,
 bool edgeAimsAt(const PolygonEdge &a, const PolygonEdge &b,
                 PointClassification aclass,
                 PolygonEdge::Orientation crossType) {
-  V2D va = a.direction();
-  V2D vb = b.direction();
+  const auto & va = a.direction();
+  const auto & vb = b.direction();
   if (crossType != PolygonEdge::Collinear) {
     double ca = va.X() * vb.Y();
     double cb = vb.X() * va.Y();
diff --git a/Code/Mantid/Framework/Geometry/src/Math/PolygonIntersection.cpp b/Code/Mantid/Framework/Geometry/src/Math/PolygonIntersection.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..42c5eb4285da28f1328f4cacd59eaa1ba3b803c3
--- /dev/null
+++ b/Code/Mantid/Framework/Geometry/src/Math/PolygonIntersection.cpp
@@ -0,0 +1,218 @@
+//------------------------------------------------------------------------------
+// Includes
+//------------------------------------------------------------------------------
+#include "MantidGeometry/Math/PolygonIntersection.h"
+#include "MantidGeometry/Math/ConvexPolygon.h"
+#include "MantidGeometry/Math/PolygonEdge.h"
+#include "MantidKernel/Logger.h"
+#include "MantidKernel/V2D.h"
+
+#include <iostream>
+
+using namespace Mantid::Kernel;
+
+namespace Mantid {
+namespace Geometry {
+
+namespace {
+
+//------------------------------------------------------------------------------
+// Anonymous helpers
+//------------------------------------------------------------------------------
+
+/// Static logger
+Kernel::Logger g_log("PolygonIntersection");
+
+// Uncomment this to get detailed statements of the exact progress of the intersection
+// calculation
+//#define DEBUG_INTERSECTION
+
+/// Define a macro to include the logging statements if requested. They hamper performance if
+/// always included
+#ifdef DEBUG_INTERSECTION
+#define VERBOSE(X) X
+#else
+#define VERBOSE(X)
+#endif
+
+enum eEdgeIn {
+  Unknown,   /**< Which edge is inside the other is not known */
+  PIsInside, /**< Edge P is inside of edge Q */
+  QIsInside  /**< Edge Q is inside of edge P */
+};
+
+/**
+ * Advance the current vertex on the given polygon. If the inside flag is set
+ * record a point of intersection on the given vertex
+ * @param iter :: An iterator on the current polygon
+ * @param out :: A reference to the overlap polygon being built
+ * @param lastIntersect :: A reference to the last intersection
+ * @param inside :: True if the current polygon point is inside another
+ */
+void advanceVertex(ConvexPolygon::Iterator &iter, ConvexPolygon &out,
+                   const V2D &lastIntersect, const bool inside) {
+  ++iter;
+  const auto &curPolyPt = *iter;
+  if (inside && (lastIntersect != curPolyPt)) {
+    // Add an intersection as the point is inside the polygon
+    out.insert(curPolyPt);
+    VERBOSE(std::cout << "Advance adds cross pt: (" << curPolyPt.X() << ","
+                          << curPolyPt.Y() << ")" << std::endl);
+  }
+}
+
+} // Anonymous namespace
+
+//------------------------------------------------------------------------------
+// Public functions
+//------------------------------------------------------------------------------
+/**
+ * The intersection is computed using the method described by Michael Laszlo in
+ * "Computational Geometry and Computer Graphics in C++" by Michael J. Laszlo.
+ * It assumes that each polygon is closed and has no holes.
+ * @param P First polygon
+ * @param Q Second polygon
+ * @param out A reference to the object to fill with the intersections. The
+ * object
+ * is not touched with the exception of appending vertices for the calculated
+ * overlap. If the same object is reused with multiple calculations this must be
+ * handled by the user.
+ * @return True if a valid intersection was found, false otherwise
+ */
+bool MANTID_GEOMETRY_DLL intersection(const ConvexPolygon &P,
+                                      const ConvexPolygon &Q,
+                                      ConvexPolygon &out) {
+
+  // The algorithm requires that the polygon with the greatest unsigned area
+  // be on the "Left"
+  VERBOSE(std::cout << "Area of P (" << P.area() << "). Area of Q ("
+                        << Q.area() << ")\n");
+  if (P.area() < Q.area()) {
+    VERBOSE(std::cout << "Area of P < Area of Q. Swapping order."
+                          << std::endl);
+    return intersection(Q, P, out);
+  }
+
+  V2D iPnt, startPnt, curIntersection;
+  ConvexPolygon::Iterator pIter(P), qIter(Q);
+  eEdgeIn inflag = Unknown;
+  int phase = 1;
+  size_t maxItns = 2 * (P.npoints() + Q.npoints());
+  for (size_t i = 1; i <= maxItns; ++i) {
+    VERBOSE(std::cout << "Iteration " << i << " Phase = " << phase
+                          << std::endl);
+    const PolygonEdge edgeP = pIter.edge();
+    const PolygonEdge edgeQ = qIter.edge();
+    PointClassification pclass = classify(edgeP.end(), edgeQ);
+
+    VERBOSE(std::cout << "Class P Pt" << std::endl);
+    VERBOSE(std::cout << "Class Pt: (" << edgeP.end().X() << ","
+                          << edgeP.end().Y() << ")");
+    VERBOSE(std::cout << std::endl);
+    VERBOSE(std::cout << "Edge Orig Pt (" << edgeQ.start().X() << ","
+                          << edgeQ.start().Y() << ")");
+    VERBOSE(std::cout << std::endl);
+    VERBOSE(std::cout << "Edge Dest Pt (" << edgeQ.end().X() << ","
+                          << edgeQ.end().Y() << ")");
+    VERBOSE(std::cout << std::endl);
+    VERBOSE(std::cout << "P pt class: " << pclass << std::endl);
+
+    PointClassification qclass = classify(edgeQ.end(), edgeP);
+    VERBOSE(std::cout << "Class Q Pt" << std::endl);
+    VERBOSE(std::cout << "Class Pt: (" << edgeQ.end().X() << "," << edgeQ.end().Y()
+                  << ")");
+    VERBOSE(std::cout << std::endl);
+    VERBOSE(std::cout << "Edge Orig Pt (" << edgeP.start().X() << ","
+                  << edgeP.start().Y() << ")");
+    VERBOSE(std::cout << std::endl);
+    VERBOSE(std::cout << "Edge Dest Pt (" << edgeP.end().X() << ","
+                  << edgeP.end().Y() << ")");
+    VERBOSE(std::cout << std::endl);
+    VERBOSE(std::cout << "Q pt class: " << qclass << std::endl);
+
+    PolygonEdge::Orientation crossType = crossingPoint(edgeP, edgeQ, iPnt);
+    VERBOSE(std::cout << "PQ Orient: " << crossType << std::endl);
+
+    if (crossType == PolygonEdge::SkewCross) {
+      if (phase == 1) {
+        phase = 2;
+        VERBOSE(std::cout << "Found a crossing pt: (" << iPnt.X() << ",");
+        VERBOSE(std::cout << iPnt.Y() << ")" << std::endl);
+
+        curIntersection = iPnt;
+        out.insert(iPnt);
+        startPnt = iPnt;
+      } else if (iPnt != curIntersection) {
+        VERBOSE(std::cout << "Found a crossing pt: (" << iPnt.X() << ",");
+        VERBOSE(std::cout << iPnt.Y() << ")" << std::endl);
+        if (iPnt != startPnt) {
+          curIntersection = iPnt;
+          out.insert(iPnt);
+        } else // Back to the start, we're done
+        {
+          // Return the head if it is a valid polygon
+          return out.isValid();
+        }
+      }
+      if (pclass == OnRight) {
+        inflag = PIsInside;
+      } else if (qclass == OnRight) {
+        inflag = QIsInside;
+      } else {
+        inflag = Unknown;
+      }
+    } else if ((crossType == PolygonEdge::Collinear) && (pclass != Behind) &&
+               (qclass != Behind)) {
+      inflag = Unknown;
+    }
+    VERBOSE(std::cout << "Current in flag: " << inflag << std::endl);
+
+    bool pAIMSq = edgeAimsAt(edgeP, edgeQ, pclass, crossType);
+    bool qAIMSp = edgeAimsAt(edgeQ, edgeP, qclass, crossType);
+
+    VERBOSE(std::cout << "P aims at Q:" << pAIMSq << std::endl);
+    VERBOSE(std::cout << "Q aims at P:" << qAIMSp << std::endl);
+    if (pAIMSq && qAIMSp) {
+      if ((inflag == QIsInside) ||
+          ((inflag == Unknown) && (pclass == OnLeft))) {
+        VERBOSE(std::cout << "Move edge on P" << std::endl);
+        advanceVertex(pIter, out, curIntersection, false);
+      } else {
+        VERBOSE(std::cout << "Move edge on Q" << std::endl);
+        advanceVertex(qIter, out, curIntersection, false);
+      }
+    } else if (pAIMSq) {
+      VERBOSE(std::cout << "Move edge on P" << std::endl);
+      advanceVertex(pIter, out, curIntersection, inflag == PIsInside);
+    } else if (qAIMSp) {
+      VERBOSE(std::cout << "Move edge on Q" << std::endl);
+      advanceVertex(qIter, out, curIntersection, inflag == QIsInside);
+    } else {
+      if ((inflag == QIsInside) ||
+          ((inflag == Unknown) && (pclass == OnLeft))) {
+        VERBOSE(std::cout << "Move edge on P" << std::endl);
+        advanceVertex(pIter, out, curIntersection, false);
+      } else {
+        VERBOSE(std::cout << "Move edge on Q" << std::endl);
+        advanceVertex(qIter, out, curIntersection, false);
+      }
+    }
+  } // end-for
+
+  // Reaching this point means we have no intersections
+  // of the polygon edges. There is the possiblity that
+  // the larger polygon completely encloses the smaller
+  // in which case no edge intersections would be found
+  // but there is an overlap
+  if (P.contains(Q)) {
+    // standard assignment won't work as the object is a reference
+    // and we don't know the exact type
+    out = Q.toPoly();
+    return true;
+  }
+
+  return false;
+}
+
+} // namespace Geometry
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/Geometry/src/Math/Quadrilateral.cpp b/Code/Mantid/Framework/Geometry/src/Math/Quadrilateral.cpp
index ca3ebb88dc14fd8d024035589ab9049c77f588ab..9e73f9c55a5d5c10268b4d41f556df2ae99a084e 100644
--- a/Code/Mantid/Framework/Geometry/src/Math/Quadrilateral.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Math/Quadrilateral.cpp
@@ -14,9 +14,7 @@ using Kernel::V2D;
 Quadrilateral::Quadrilateral(const V2D &lowerLeft, const V2D &lowerRight,
                              const V2D &upperRight, const V2D &upperLeft)
     : ConvexPolygon(), m_lowerLeft(lowerLeft), m_lowerRight(lowerRight),
-      m_upperRight(upperRight), m_upperLeft(upperLeft) {
-  initialize();
-}
+      m_upperRight(upperRight), m_upperLeft(upperLeft) {}
 
 /**
  *  Special constructor for a rectangle
@@ -27,9 +25,7 @@ Quadrilateral::Quadrilateral(const double lowerX, const double upperX,
       m_lowerRight(upperX, lowerY), m_upperRight(upperX, upperY),
       m_upperLeft(lowerX, upperY)
 
-{
-  initialize();
-}
+{}
 
 /**
  * Copy constructor
@@ -38,10 +34,7 @@ Quadrilateral::Quadrilateral(const double lowerX, const double upperX,
 Quadrilateral::Quadrilateral(const Quadrilateral &other)
     : ConvexPolygon(), m_lowerLeft(other.m_lowerLeft),
       m_lowerRight(other.m_lowerRight), m_upperRight(other.m_upperRight),
-      m_upperLeft(other.m_upperLeft) {
-  // Base class does the work
-  initialize();
-}
+      m_upperLeft(other.m_upperLeft) {}
 
 /**
  * @param rhs The source object to copy from
@@ -52,16 +45,10 @@ Quadrilateral &Quadrilateral::operator=(const Quadrilateral &rhs) {
     m_lowerRight = rhs.m_lowerRight;
     m_upperRight = rhs.m_upperRight;
     m_upperLeft = rhs.m_upperLeft;
-    initialize();
   }
   return *this;
 }
 
-/// Destructor
-Quadrilateral::~Quadrilateral() {
-  m_head = NULL; // Important as the base class assumes a heap allocated object
-}
-
 /**
  * Return the vertex at the given index
  * @param index :: An index, starting at 0
@@ -69,7 +56,6 @@ Quadrilateral::~Quadrilateral() {
  * @throws Exception::IndexError if the index is out of range
  */
 const V2D &Quadrilateral::operator[](const size_t index) const {
-  if (index < numVertices()) {
     switch (index) {
     case 0:
       return m_lowerLeft;
@@ -79,10 +65,36 @@ const V2D &Quadrilateral::operator[](const size_t index) const {
       return m_upperRight;
     case 3:
       return m_lowerRight;
-    }
+    default: throw Kernel::Exception::IndexError(index, npoints(),
+                                                 "Quadrilateral::operator[]");
   }
-  throw Kernel::Exception::IndexError(index, numVertices(),
-                                      "Quadrilateral::operator[]");
+}
+
+/**
+ * Return the vertex at the given index
+ * @param index :: An index, starting at 0
+ * @returns A reference to the polygon at that index
+ * @throws Exception::IndexError if the index is out of range
+ */
+const Kernel::V2D &Quadrilateral::at(const size_t index) const
+{
+  return (*this)[index];
+}
+
+/**
+ * @return True if the point is inside the polygon or on the edge
+ */
+bool Quadrilateral::contains(const Kernel::V2D &point) const {
+  return (minX() <= point.X() && point.X() <= maxX() && minY() <= point.Y() &&
+          point.Y() <= maxY());
+}
+
+/**
+ * @return True if the given polygon is completely encosed by this one
+ */
+bool Quadrilateral::contains(const ConvexPolygon &poly) const {
+  return (minX() <= poly.minX() && poly.maxX() <= maxX() &&
+          minY() <= poly.minY() && poly.maxY() <= maxY());
 }
 
 /**
@@ -110,20 +122,38 @@ double Quadrilateral::area() const {
  */
 double Quadrilateral::determinant() const { return 2.0 * area(); }
 
-//-----------------------------------------------------------------------------
-// Private member functions
-//-----------------------------------------------------------------------------
-/**
- * Initalize the object
- */
-void Quadrilateral::initialize() {
+/// @return The smallest X value for all points
+double Quadrilateral::minX() const {
+  return (m_lowerLeft.X() < m_upperLeft.X()) ? m_lowerLeft.X()
+                                             : m_upperLeft.X();
+}
+
+/// @return The largest X value for all points
+double Quadrilateral::maxX() const {
+  return (m_lowerRight.X() > m_upperRight.X()) ? m_lowerRight.X()
+                                               : m_upperRight.X();
+}
+
+/// @return The smallest Y value for all points
+double Quadrilateral::minY() const {
+  return (m_lowerLeft.Y() < m_lowerRight.Y()) ? m_lowerLeft.Y()
+                                              : m_lowerRight.Y();
+}
 
-  m_head = &(m_lowerLeft);
-  m_head->insert(&m_lowerRight);
-  m_head->insert(&m_upperRight);
-  m_head->insert(&m_upperLeft);
+/// @return The largest Y value for all points
+double Quadrilateral::maxY() const {
+  return (m_upperLeft.Y() > m_upperRight.Y()) ? m_upperLeft.Y()
+                                              : m_upperRight.Y();
+}
 
-  ConvexPolygon::setup();
+/// @return A new polygon based on the current Quadrilateral
+ConvexPolygon Quadrilateral::toPoly() const {
+  ConvexPolygon::Vertices points(4);
+  points[0] = m_lowerLeft;
+  points[1] = m_upperLeft;
+  points[2] = m_upperRight;
+  points[3] = m_lowerRight;
+  return ConvexPolygon(points);
 }
 
 } // namespace Mantid
diff --git a/Code/Mantid/Framework/Geometry/src/Math/Vertex2D.cpp b/Code/Mantid/Framework/Geometry/src/Math/Vertex2D.cpp
deleted file mode 100644
index f7d05ed564e90c1fa08135cd061a346c6a3e58d3..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/src/Math/Vertex2D.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//-----------------------------------------------------------------------------
-// Includes
-//-----------------------------------------------------------------------------
-#include "MantidGeometry/Math/Vertex2D.h"
-
-namespace Mantid {
-namespace Geometry {
-// Drag in V2D
-using Kernel::V2D;
-
-//-----------------------------------------------------------------------------
-// Public static member functions
-//-----------------------------------------------------------------------------
-
-/**
- * Deletes all nodes in a chain
- * @param node A node in the chain. If NULL then nothing happens
- */
-void Vertex2D::deleteChain(Vertex2D *node) {
-  if (!node)
-    return;
-
-  Vertex2D *head = node;
-  Vertex2D *next = node->next();
-  while (next != head) {
-    delete next->remove();
-    next = head->next();
-  }
-  delete head;
-}
-
-//-----------------------------------------------------------------------------
-// Public member functions
-//-----------------------------------------------------------------------------
-
-/**
-* Constructor puts a point at the origin
-*/
-Vertex2D::Vertex2D() : Kernel::V2D() { initNeighbours(); }
-
-/**
- * Constructor taking a point
- * @param point :: A point for the vertex
- */
-Vertex2D::Vertex2D(const Kernel::V2D &point)
-    : Kernel::V2D(point), m_next(NULL) {
-  initNeighbours();
-}
-
-/**
- * Constructor taking X and Y values
- * @param x :: The value of X
- * @param y :: The value of Y
- */
-Vertex2D::Vertex2D(const double x, const double y)
-    : Kernel::V2D(x, y), m_next(NULL) {
-  initNeighbours();
-}
-
-/**
- * @param other Object to initialize this from
- */
-Vertex2D::Vertex2D(const Vertex2D &other) : Kernel::V2D(other) {
-  initNeighbours();
-}
-
-/**
- * @param rhs The object to copy the state from
- */
-Vertex2D &Vertex2D::operator=(const Vertex2D &rhs) {
-  if (this != &rhs) {
-    V2D::operator=(rhs);
-    initNeighbours();
-  }
-  return *this;
-}
-
-/**
- * Insert a vertex in at the next point in the chain
- * @param vertex :: A pointer to the vertex to insert
- * @returns A pointer to the inserted vertex
- */
-Vertex2D *Vertex2D::insert(Vertex2D *vertex) {
-  Vertex2D *curNext = m_next;
-  vertex->m_next = m_next;
-  vertex->m_prev = this;
-  m_next = vertex;
-  curNext->m_prev = vertex;
-  return vertex;
-}
-
-/**
- * Remove this node from the chain and return it
- * @returns This node
- */
-Vertex2D *Vertex2D::remove() {
-  m_prev->m_next = m_next;
-  m_next->m_prev = m_prev;
-  // Isolate myself
-  m_next = m_prev = this;
-  return this;
-}
-
-//-----------------------------------------------------------------------------
-// Private member functions
-//-----------------------------------------------------------------------------
-/**
- * Initialize the next and previous pointers
- */
-void Vertex2D::initNeighbours() {
-  m_next = this;
-  m_prev = this;
-}
-
-} // namespace Mantid
-} // namespace Geometry
diff --git a/Code/Mantid/Framework/Geometry/src/Math/Vertex2DList.cpp b/Code/Mantid/Framework/Geometry/src/Math/Vertex2DList.cpp
deleted file mode 100644
index 7eb5b8b2d165fe80d64ca1e734d795d29b915e91..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/src/Math/Vertex2DList.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//------------------------------------------------------------------------------
-// Includes
-//------------------------------------------------------------------------------
-#include "MantidGeometry/Math/Vertex2DList.h"
-#include "MantidKernel/Exception.h"
-
-namespace Mantid {
-namespace Geometry {
-using Kernel::V2D;
-
-//--------------------------------------------------------------------------
-// Public methods
-//--------------------------------------------------------------------------
-
-/**
- * Operator access, non-const version
- * @param index :: The vertex index to return
- * @returns The vertex at the given index
- * @throws Exception::IndexError if the index does not exist
- */
-Kernel::V2D &Vertex2DList::operator[](const size_t index) {
-  // Same code as const-version, so use it to avoid code duplication
-  // First get a const this object with static_cast and then const_cast
-  // away the const on the returned object
-  return const_cast<V2D &>(static_cast<const Vertex2DList &>(*this)[index]);
-}
-
-/**
- * Operator access, const version
- * @param index :: The vertex index to return
- * @returns The vertex at the given index
- * @throws Exception::IndexError if the index does not exist
- */
-const Kernel::V2D &Vertex2DList::operator[](const size_t index) const {
-  if (index < m_vertices.size())
-    return m_vertices[index];
-  throw Kernel::Exception::IndexError(index, m_vertices.size(),
-                                      "Vertex2DList::operator[]");
-}
-
-/**
- * Access the first element
- * @returns A const reference to the first element
- * @throws Exception::IndexError if the list is empty
- */
-const Kernel::V2D &Vertex2DList::front() const { return this->operator[](0); }
-
-/**
- * Access the last element
- * @returns A const reference to the first element
- * @throws Exception::IndexError if the list is empty
- */
-const Kernel::V2D &Vertex2DList::back() const {
-  return this->operator[](this->size() - 1);
-}
-
-/**
- * First searches for the point io the list, if it exists the index
- * of that point is returned. If it does not exist the point is appended
- * to the end.
- * @param point :: A new point to add
- * @returns True if the addition was successful, false otherwise
- */
-unsigned int Vertex2DList::insert(const Kernel::V2D &point) {
-  int index = indexOf(point);
-  if (index < 0) {
-    index = static_cast<unsigned int>(this->size());
-    m_vertices.push_back(point);
-  }
-  return static_cast<unsigned int>(index);
-}
-
-//--------------------------------------------------------------------------
-// Private methods
-//--------------------------------------------------------------------------
-/**
- * Index of a point
- * @param point :: The point to check
- * @returns The index value of the point in the list of -1 if it is not in
- * the list
- */
-int Vertex2DList::indexOf(const Kernel::V2D &point) const {
-  size_t index(0);
-  const size_t npoints(this->size());
-  for (; index < npoints; ++index) {
-    if (m_vertices[index] == point)
-      return static_cast<int>(index);
-  }
-  return -1;
-}
-
-} // namespace Mantid
-} // namespace Geometry
diff --git a/Code/Mantid/Framework/Geometry/test/ConvexPolygonIteratorTest.h b/Code/Mantid/Framework/Geometry/test/ConvexPolygonIteratorTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..2ea00de235f2056a20e36af156d294a0d3f39174
--- /dev/null
+++ b/Code/Mantid/Framework/Geometry/test/ConvexPolygonIteratorTest.h
@@ -0,0 +1,89 @@
+#ifndef MANTID_GEOMETRY_POLYGONPOINTITERATORTEST_H_
+#define MANTID_GEOMETRY_POLYGONPOINTITERATORTEST_H_
+
+#include <cxxtest/TestSuite.h>
+
+#include "MantidGeometry/Math/ConvexPolygon.h"
+#include "MantidGeometry/Math/PolygonEdge.h"
+#include "MantidKernel/V2D.h"
+
+using Mantid::Geometry::ConvexPolygon;
+using Mantid::Kernel::V2D;
+
+class ConvexPolygonIteratorTest : 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 ConvexPolygonIteratorTest *createSuite() {
+    return new ConvexPolygonIteratorTest();
+  }
+  static void destroySuite(ConvexPolygonIteratorTest *suite) { delete suite; }
+
+  // --------------------- Success cases --------------------------------------
+
+  void test_Iterator_Initially_Points_At_Index_Zero() {
+    auto poly = makeRectangle();
+    ConvexPolygon::Iterator iter(poly);
+    TS_ASSERT_EQUALS(V2D(), *iter);
+  }
+
+  void test_Increment_Moves_On_One_Point() {
+    auto poly = makeRectangle();
+    ConvexPolygon::Iterator iter(poly);
+    ++iter;
+    TS_ASSERT_EQUALS(V2D(0.0, 1.0), *iter);
+  }
+
+  void test_Incrementing_By_Number_Of_Points_Produces_First_Point() {
+    auto poly = makeRectangle();
+    ConvexPolygon::Iterator iter(poly);
+    for (size_t i = 0; i < poly.npoints(); ++i) {
+      ++iter;
+    }
+    TS_ASSERT_EQUALS(V2D(), *iter);
+  }
+
+  void test_edge_points_from_current_to_next() {
+    auto poly = makeRectangle();
+    ConvexPolygon::Iterator iter(poly);
+    auto p01 = iter.edge();
+    TS_ASSERT_EQUALS(V2D(), p01.start());
+    TS_ASSERT_EQUALS(V2D(0.0,1.0), p01.end());
+
+    ++iter;
+    auto p12 = iter.edge();
+    TS_ASSERT_EQUALS(V2D(0.0,1.0), p12.start());
+    TS_ASSERT_EQUALS(V2D(2.0,1.0), p12.end());
+    
+    // Check final has first as end point
+    ++iter;
+    ++iter;
+    auto p40 = iter.edge();
+    TS_ASSERT_EQUALS(V2D(2.0,0.0), p40.start());
+    TS_ASSERT_EQUALS(V2D(), p40.end());
+  }
+  
+  // --------------------- Failure cases --------------------------------------
+
+  void test_Invalid_Polygon_Theows_Error_On_Construction() {
+    ConvexPolygon invalid;
+    // TS_ASSERT_THROWS cannot be used if there is no default constructor
+    // so use a pointer instead
+    ConvexPolygon::Iterator *iter(NULL);
+    TS_ASSERT_THROWS(iter = new ConvexPolygon::Iterator(invalid),
+                     std::invalid_argument);
+    delete iter;
+  }
+
+private:
+  ConvexPolygon makeRectangle() {
+    ConvexPolygon rectangle;
+    rectangle.insert(0.0, 0.0);
+    rectangle.insert(0.0, 1.0);
+    rectangle.insert(2.0, 1.0);
+    rectangle.insert(2.0, 0.0);
+    return rectangle;
+  }
+};
+
+#endif /* MANTID_GEOMETRY_POLYGONPOINTITERATORTEST_H_ */
diff --git a/Code/Mantid/Framework/Geometry/test/ConvexPolygonTest.h b/Code/Mantid/Framework/Geometry/test/ConvexPolygonTest.h
index dacf44c1421271822fef98bd62c191177fbe6de0..c1d164fd3ff0cfbb526a9a6cdc10420f3dfaf8c9 100644
--- a/Code/Mantid/Framework/Geometry/test/ConvexPolygonTest.h
+++ b/Code/Mantid/Framework/Geometry/test/ConvexPolygonTest.h
@@ -2,107 +2,55 @@
 #define CONVEXPOLYGONTEST_H_
 
 #include "MantidGeometry/Math/ConvexPolygon.h"
-#include "MantidGeometry/Math/Vertex2D.h"
 #include "MantidKernel/Exception.h"
+#include "MantidKernel/V2D.h"
 #include <cxxtest/TestSuite.h>
 #include <cmath>
 #include <cfloat>
 
 using Mantid::Kernel::V2D;
 using Mantid::Geometry::ConvexPolygon;
-using Mantid::Geometry::Vertex2D;
-using Mantid::Geometry::PolygonEdge;
 
 class ConvexPolygonTest : public CxxTest::TestSuite
 {
 public:
 
-  void test_Building_With_A_Minimal_Valid_Set_Does_Not_Throw()
+  void test_Default_Constructor_Produces_Invalid_Polygon()
   {
-    TS_ASSERT_THROWS_NOTHING(makeEquilateralTriangle());
+    ConvexPolygon poly;
+    TS_ASSERT(!poly.isValid());
   }
 
-  void test_Building_With_An_Isolated_Vertex_Throws_Invalid_Arg()
+  void test_Clear_Produces_Invalid_Polygon()
   {
-    Vertex2D *vertex = new Vertex2D();
-    doExceptionCheck<std::invalid_argument>(vertex);
-    delete vertex;
-  }
-
-   void test_Building_With_A_Line_Throws_Invalid_Arg()
-  {
-    Vertex2D *vertex = new Vertex2D();
-    Vertex2D *second = vertex->insert(new Vertex2D(1.0,1.0));
-    doExceptionCheck<std::invalid_argument>(vertex);
-    delete vertex;
-    delete second;
-  }
-
-  void test_Building_With_Head_Vertex_With_Two_Other_Points_Doesnt_Not_Throw()
-  {
-    Vertex2D *origin = new Vertex2D;
-    origin = origin->insert(new Vertex2D(1.0,1.0));
-    origin = origin->insert(new Vertex2D(0.0,1.0));
-
-    TS_ASSERT_THROWS_NOTHING(ConvexPolygon poly(origin));
-  }
-
-  void test_Building_With_Head_Vertex_Gives_Correct_Number_Of_Vertices()
-  {
-    Vertex2D *origin = new Vertex2D;
-    origin = origin->insert(new Vertex2D(1.0,1.0));
-    origin = origin->insert(new Vertex2D(0.0,1.0));
-    ConvexPolygon poly(origin);
-    TS_ASSERT_EQUALS(poly.numVertices(), 3);
-  }
-
-  void test_Buildling_With_Head_Vertex_With_Less_Than_Two_Other_Points_Throws()
-  {
-    Vertex2D *origin = new Vertex2D;
-    TS_ASSERT_THROWS(new ConvexPolygon(origin), std::invalid_argument);
-    Vertex2D *second = new Vertex2D(1.0,1.0);
-    origin->insert(second);
-    TS_ASSERT_THROWS(new ConvexPolygon(origin), std::invalid_argument);
-    delete second;
-    delete origin;
+    ConvexPolygon rect = makeRectangle();
+    TS_ASSERT(rect.isValid());
+    rect.clear();
+    TS_ASSERT(!rect.isValid());
   }
 
   void test_Copying_Preserves_Polygon()
   {
-    // Returns by value but with some optimizations may not copy the object
     ConvexPolygon rect = makeRectangle();
-    TS_ASSERT_EQUALS(rect.numVertices(), 4);
-    TS_ASSERT_EQUALS(rect[0], V2D());
-    TS_ASSERT_EQUALS(rect[1], V2D(0.0, 1.0));
-    TS_ASSERT_EQUALS(rect[2], V2D(2.0, 1.0));
-    TS_ASSERT_EQUALS(rect[3], V2D(2.0, 0.0));
-
     ConvexPolygon copy(rect);
+    TS_ASSERT_EQUALS(copy.npoints(), 4);
     TS_ASSERT_EQUALS(copy[0], V2D());
     TS_ASSERT_EQUALS(copy[1], V2D(0.0, 1.0));
     TS_ASSERT_EQUALS(copy[2], V2D(2.0, 1.0));
     TS_ASSERT_EQUALS(copy[3], V2D(2.0, 0.0));
   }
 
-  void test_Head_Returns_Correct_Vertex()
+  void test_Valid_Index_Returns_Expected_Point()
   {
-    ConvexPolygon poly = makeRectangle();
-    TS_ASSERT_EQUALS(poly.head()->point(), V2D(0.0, 0.0));
-  }
+    ConvexPolygon rect = makeRectangle();
+    TS_ASSERT_EQUALS(rect.npoints(), 4);
+    TS_ASSERT_EQUALS(rect[0], V2D());
+    TS_ASSERT_EQUALS(rect[2], V2D(2.0, 1.0));
+    TS_ASSERT_EQUALS(rect[3], V2D(2.0, 0.0));
 
-  void test_Index_Access_Returns_Correct_Object_For_Valid_Index()
-  {
-    ConvexPolygon triangle = makeEquilateralTriangle();
-    const V2D & apex = triangle[1];
-    TS_ASSERT_EQUALS(apex, V2D(1.0, std::sqrt(3.0)));
-  }
-  
-  void test_Invalid_Index_Access_Throws()
-  {
-    using Mantid::Kernel::Exception::IndexError;
-    ConvexPolygon triangle = makeEquilateralTriangle();
-    TS_ASSERT_THROWS(triangle[3], IndexError);
-    TS_ASSERT_THROWS(triangle[-1], IndexError);
+    TS_ASSERT_EQUALS(rect.at(0), V2D());
+    TS_ASSERT_EQUALS(rect.at(2), V2D(2.0, 1.0));
+    TS_ASSERT_EQUALS(rect.at(3), V2D(2.0, 0.0));
   }
 
   void test_Point_Inside_Polygon_Returns_True()
@@ -110,7 +58,6 @@ public:
     ConvexPolygon poly = makeRectangle();
     TS_ASSERT(poly.contains(V2D(1.0, 0.25)));
     TS_ASSERT(poly.contains(V2D(1.0, 0.0)));
-    TS_ASSERT(poly.contains(poly.head()->point()));
   }
 
   void test_The_Determinant_For_A_Triangle()
@@ -131,83 +78,83 @@ public:
     ConvexPolygon rectangle = makeRectangle();
     TS_ASSERT_DELTA(rectangle.area(), 2.0, DBL_EPSILON);
   }
-  
+
   void test_Area_Of_A_Parallelogram()
   {
     ConvexPolygon parallelogram = makeParallelogram();
     TS_ASSERT_DELTA(parallelogram.area(), std::sqrt(2.0), DBL_EPSILON);
   }
-  
+
   void test_Extreme_Points_Are_Correct()
   {
     ConvexPolygon parallelogram = makeParallelogram();
-    TS_ASSERT_DELTA(parallelogram.smallestX(), 0.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(parallelogram.largestX(), 2.0 + 0.5*std::sqrt(2.0), DBL_EPSILON);
-    TS_ASSERT_DELTA(parallelogram.smallestY(), 0.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(parallelogram.largestY(), 0.5*std::sqrt(2.0), DBL_EPSILON);
+    TS_ASSERT_DELTA(parallelogram.minX(), 0.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(parallelogram.maxX(), 2.0 + 0.5*std::sqrt(2.0), DBL_EPSILON);
+    TS_ASSERT_DELTA(parallelogram.minY(), 0.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(parallelogram.maxY(), 0.5*std::sqrt(2.0), DBL_EPSILON);
   }
 
   void test_Polygon_Contains_Polygon()
   {
-    Vertex2D *head = new Vertex2D(0.0,0.1);
-    head->insert(new Vertex2D(2.0,0.1));
-    head->insert(new Vertex2D(1.0,0.1 + std::sqrt(3.0)));
-    ConvexPolygon smallTriangle(head);
+    // base 2
+    ConvexPolygon smallTriangle;
+    smallTriangle.insert(0.0, 0.0);
+    smallTriangle.insert(1.0, std::sqrt(3.0));
+    smallTriangle.insert(2.0, 0.0);
 
-    head = new Vertex2D(-1.0,0.0);
-    head->insert(new Vertex2D(3.0,0.0));
-    head->insert(new Vertex2D(2.0,2.0*std::sqrt(3.0)));
-    ConvexPolygon largeTriangle(head);
+    // base 4
+    ConvexPolygon largeTriangle;
+    largeTriangle.insert(0.0, 0.0);
+    largeTriangle.insert(2.0, 2.0*std::sqrt(3.0));
+    largeTriangle.insert(4.0, 0.0);
 
     TS_ASSERT_EQUALS(largeTriangle.contains(smallTriangle), true);
     TS_ASSERT_EQUALS(smallTriangle.contains(largeTriangle), false);
   }
+  
+  // ------------------------ Failure cases --------------------------------
+
+  void test_Invalid_Index_Access_Throws_For_At()
+  {
+    using Mantid::Kernel::Exception::IndexError;
+    ConvexPolygon triangle = makeEquilateralTriangle();
+    TS_ASSERT_THROWS(triangle.at(3), IndexError);
+    TS_ASSERT_THROWS(triangle.at(-1), IndexError);
+  }
 
 private:
   /// Side length 2
   ConvexPolygon makeEquilateralTriangle()
   {
-    Vertex2D *head = new Vertex2D();
-    head->insert(new Vertex2D(2.0,0.0));
-    head->insert(new Vertex2D(1.0,std::sqrt(3.0)));
-    return ConvexPolygon(head);
+    ConvexPolygon triangle;
+    triangle.insert(0.0, 0.0);
+    triangle.insert(1.0, std::sqrt(3.0));
+    triangle.insert(2.0, 0.0);
+
+    return triangle;
   }
 
   /// Short side 1, long side 2
   ConvexPolygon makeRectangle()
   {
-    return ConvexPolygon(0.0, 2.0, 0.0, 1.0);
+    ConvexPolygon rectangle;
+    rectangle.insert(0.0, 0.0);
+    rectangle.insert(0.0, 1.0);
+    rectangle.insert(2.0, 1.0);
+    rectangle.insert(2.0, 0.0);
+
+    return rectangle;
   }
 
   /// Short side 2-1-2-1
   ConvexPolygon makeParallelogram()
   {
-    Vertex2D *head = new Vertex2D();
-    head->insert(new Vertex2D(2.0,0.0));
-    head->insert(new Vertex2D(2.0 + 0.5*std::sqrt(2.0), 0.5*std::sqrt(2.0)));
-    head->insert(new Vertex2D(0.5*std::sqrt(2.0), 0.5*std::sqrt(2.0)));
-    return ConvexPolygon(head);
-  }
-
-  // If a class has no accessible default constructor we cannot use
-  // TS_ASSERT_THROWS()
-  template <typename ExceptionType>
-  void doExceptionCheck(Vertex2D * vertex)
-  {
-    try
-    {
-      ConvexPolygon p(vertex);
-    }
-    catch(ExceptionType &)
-    {
-      return;
-    }
-    catch(...)
-    {
-      TS_FAIL("Unexpected exception type thrown");
-      return;
-    }
-    TS_FAIL("Expecting an exception but non was thrown.");
+    ConvexPolygon parallelogram;
+    parallelogram.insert(0.0, 0.0);
+    parallelogram.insert(0.5*std::sqrt(2.0), 0.5*std::sqrt(2.0));
+    parallelogram.insert(2.0 + 0.5*std::sqrt(2.0), 0.5*std::sqrt(2.0));
+    parallelogram.insert(2.0, 0.0);
+    return parallelogram;
   }
 };
 
@@ -217,7 +164,7 @@ private:
 class ConvexPolygonTestPerformance : public CxxTest::TestSuite
 {
 public:
-  
+
   void test_Area_Calls()
   {
     const size_t ntests(50000000);
@@ -225,10 +172,15 @@ public:
     double totalArea(0.0);
     for( size_t i = 0; i < ntests; ++i)
     {
-      ConvexPolygon test(0.0, 2.0, 0.0, 1.0);
+      ConvexPolygon test;
+      test.insert(0.0, 0.0);
+      test.insert(0.0, 1.0);
+      test.insert(2.0, 1.0);
+      test.insert(2.0, 0.0);
+
       totalArea += test.area();
     }
-    
+
   }
 
 };
diff --git a/Code/Mantid/Framework/Geometry/test/IDFObjectTest.h b/Code/Mantid/Framework/Geometry/test/IDFObjectTest.h
index ff93226299f6413ec5d612071c4cf47a78e99a79..2070ba2183c0bb01bf798ed3fd009acb8821bcd5 100644
--- a/Code/Mantid/Framework/Geometry/test/IDFObjectTest.h
+++ b/Code/Mantid/Framework/Geometry/test/IDFObjectTest.h
@@ -80,24 +80,6 @@ public:
     TS_ASSERT_EQUALS(filenameonly, obj.getFileNameOnly());
   }
 
-  void testGetModifiedTimestamp()
-  {
-    const std::string filename = ConfigService::Instance().getInstrumentDirectory() + "/IDFs_for_UNIT_TESTING/IDF_for_UNIT_TESTING.xml";
-    Poco::File file(filename);
-
-    IDFObject obj(filename);
-    TS_ASSERT_EQUALS(file.getLastModified(), obj.getLastModified());
-  }
-
-  void testGetFormattedModifiedTimestamp()
-  {
-    const std::string filename = ConfigService::Instance().getInstrumentDirectory() + "/IDFs_for_UNIT_TESTING/IDF_for_UNIT_TESTING.xml";
-    Poco::File file(filename);
-
-    IDFObject obj(filename);
-    TS_ASSERT_EQUALS(Poco::DateTimeFormatter::format(file.getLastModified(), "%Y-%d-%mT%H:%M:%S"), obj.getFormattedLastModified());
-  }
-
   void testGetMangledName()
   {
     const std::string filename = ConfigService::Instance().getInstrumentDirectory() + "/IDFs_for_UNIT_TESTING/IDF_for_UNIT_TESTING.xml";
diff --git a/Code/Mantid/Framework/Geometry/test/InstrumentDefinitionParserTest.h b/Code/Mantid/Framework/Geometry/test/InstrumentDefinitionParserTest.h
index 9843dd3963f53b3942545d2de1a27c214867606f..f64975fdb46e3e716261952d695592a0fe80ca99 100644
--- a/Code/Mantid/Framework/Geometry/test/InstrumentDefinitionParserTest.h
+++ b/Code/Mantid/Framework/Geometry/test/InstrumentDefinitionParserTest.h
@@ -3,6 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 #include "MantidGeometry/Instrument/InstrumentDefinitionParser.h"
+#include "MantidKernel/ChecksumHelper.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/Strings.h"
 #include "MantidGeometry/Instrument/RectangularDetector.h"
@@ -10,7 +11,6 @@
 #include "MantidTestHelpers/ScopedFileHelper.h"
 
 #include <gmock/gmock.h>
-#include <boost/tuple/tuple.hpp>
 #include <boost/algorithm/string/replace.hpp>
 
 using namespace Mantid;
@@ -29,10 +29,18 @@ private:
   {
   public:
     MockIDFObject(const std::string fileName) : Mantid::Geometry::IDFObject(fileName){}
-    MOCK_CONST_METHOD0(getLastModified, Poco::Timestamp());
     MOCK_CONST_METHOD0(exists, bool());
   };
 
+  /// Mock Type to act as IDF files.
+  class MockIDFObjectWithParentDirectory : public Mantid::Geometry::IDFObject
+  {
+  public:
+    MockIDFObjectWithParentDirectory(const std::string fileName) : Mantid::Geometry::IDFObject(fileName){}
+    MOCK_CONST_METHOD0(exists, bool());
+    MOCK_CONST_METHOD0(getParentDirectory, const Poco::Path());
+  };
+
   /**
   Helper type to pass around related IDF environment information in a collection.
   */
@@ -42,7 +50,7 @@ private:
     _idf(idf), _vtp(vtp), _xmlText(xmlText), _instName(instName)
     {
     };
-    
+
     ScopedFile _idf;
     ScopedFile _vtp;
     std::string _xmlText;
@@ -56,7 +64,6 @@ private:
   {
     const std::string instrument_name = "MinimalForTesting";
     const std::string idf_filename = instrument_name + "_Definition.xml";
-    const std::string vtp_filename= instrument_name + ".vtp";
     const std::string idf_file_contents = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
     "<instrument name=\"MinimalForTesting\" valid-from   =\"1900-01-31 23:59:59\" valid-to=\"2100-01-31 23:59:59\" last-modified=\"2012-10-05 11:00:00\">"
     "<defaults/>"
@@ -66,33 +73,33 @@ private:
     "<type name=\"cylinder-right\" is=\"detector\">"
     "<cylinder id=\"some-shape\">"
     "  <centre-of-bottom-base r=\"0.0\" t=\"0.0\" p=\"0.0\" />"
-    "  <axis x=\"0.0\" y=\"0.0\" z=\"1.0\" />" 
+    "  <axis x=\"0.0\" y=\"0.0\" z=\"1.0\" />"
     "  <radius val=\"0.01\" />"
     "  <height val=\"0.03\" />"
-    "</cylinder>"    
+    "</cylinder>"
     "</type>"
     "<idlist idname=\"cylinder-right\">"
       "<id val=\"1\" />"
      "</idlist>"
     "</instrument>";
 
+    //expected name
+    const std::string vtp_filename = instrument_name + ChecksumHelper::sha1FromString(Strings::strip(idf_file_contents)) + ".vtp";
     const std::string vtp_file_contents="<VTKFile byte_order=\"LittleEndian\" type=\"PolyData\" version=\"1.0\"><PolyData/></VTKFile>";
 
     const std::string instrument_dir = ConfigService::Instance().getInstrumentDirectory() + "/IDFs_for_UNIT_TESTING/";
-
-    ScopedFile idf(idf_file_contents, idf_filename, instrument_dir);
-    ScopedFile vtp(vtp_file_contents, vtp_filename, instrument_dir); // Put the vtp file adjacent to the idf.
-
-    if(!put_vtp_next_to_IDF)
-    {
-      vtp = ScopedFile(vtp_file_contents, vtp_filename); // Overwrite to put vtp file in the temp dir
+    std::string vtp_dir = ConfigService::Instance().getVTPFileDirectory();
+    if (!put_vtp_next_to_IDF) {
+      vtp_dir= ConfigService::Instance().getTempDir();
     }
+    ScopedFile idf(idf_file_contents, idf_filename, instrument_dir);
+    ScopedFile vtp(vtp_file_contents, vtp_filename, vtp_dir);
 
-    return IDFEnvironment(idf, vtp, idf_file_contents, instrument_name); 
+    return IDFEnvironment(idf, vtp, idf_file_contents, instrument_name);
 
   }
 
-  // Helper method to create the IDF File.  
+  // Helper method to create the IDF File.
   ScopedFile createIDFFileObject(const std::string& idf_filename, const std::string& idf_file_contents)
   {
     const std::string instrument_dir = ConfigService::Instance().getInstrumentDirectory() + "/IDFs_for_UNIT_TESTING/";
@@ -107,15 +114,14 @@ public:
   static InstrumentDefinitionParserTest *createSuite() { return new InstrumentDefinitionParserTest(); }
   static void destroySuite( InstrumentDefinitionParserTest *suite ) { delete suite; }
 
-  void test_extract_ref_info() 
+  void test_extract_ref_info()
   {
     std::string filename = ConfigService::Instance().getInstrumentDirectory() + "/IDFs_for_UNIT_TESTING/IDF_for_UNIT_TESTING.xml";
     std::string xmlText = Strings::loadFile(filename);
     boost::shared_ptr<const Instrument> i;
 
     // Parse the XML
-    InstrumentDefinitionParser parser;
-    TS_ASSERT_THROWS_NOTHING( parser.initialize(filename, "For Unit Testing", xmlText); );
+    InstrumentDefinitionParser parser(filename, "For Unit Testing", xmlText);
     TS_ASSERT_THROWS_NOTHING( i = parser.parseXML(NULL); );
 
     // Extract the reference frame object
@@ -136,8 +142,10 @@ public:
     std::string xmlText = Strings::loadFile(filename);
     boost::shared_ptr<const Instrument> i;
 
+    InstrumentDefinitionParser parser(filename, "For Unit Testing", xmlText);
+
     // Parse the XML (remove old vtp file if it exists)
-    std::string vtpFilename = filenameNoExt + ".vtp";
+    std::string vtpFilename = parser.createVTPFileName();
     try
     {
       Poco::File vtpFile(vtpFilename);
@@ -145,10 +153,7 @@ public:
     }
     catch(Poco::FileNotFoundException&) {}
 
-    InstrumentDefinitionParser parser;
-    TS_ASSERT_THROWS_NOTHING( parser.initialize(filename, "For Unit Testing", xmlText); );
     TS_ASSERT_THROWS_NOTHING( i = parser.parseXML(NULL); );
-
     try
     {
       Poco::File vtpFile(vtpFilename);
@@ -433,8 +438,7 @@ public:
     boost::shared_ptr<const Instrument> i;
 
     // Parse the XML
-    InstrumentDefinitionParser parser;
-    TS_ASSERT_THROWS_NOTHING( parser.initialize(filename, "For Unit Testing2", xmlText); );
+    InstrumentDefinitionParser parser(filename, "For Unit Testing2", xmlText);
     TS_ASSERT_THROWS_NOTHING( i = parser.parseXML(NULL); );
 
     boost::shared_ptr<const IDetector> ptrDetShape = i->getDetector(1100);
@@ -478,8 +482,7 @@ public:
     boost::shared_ptr<const Instrument> i;
 
     // Parse the XML
-    InstrumentDefinitionParser parser;
-    TS_ASSERT_THROWS_NOTHING( parser.initialize(filename, "RectangularUnitTest", xmlText); );
+    InstrumentDefinitionParser parser(filename, "RectangularUnitTest", xmlText);
     TS_ASSERT_THROWS_NOTHING( i = parser.parseXML(NULL); );
 
     // Now the XY detector in bank1
@@ -533,8 +536,7 @@ public:
     boost::shared_ptr<const Instrument> i;
 
     // Parse the XML
-    InstrumentDefinitionParser parser;
-    TS_ASSERT_THROWS_NOTHING( parser.initialize(filename, "AdjustTest", xmlText); );
+    InstrumentDefinitionParser parser(filename, "AdjustTest", xmlText);
     TS_ASSERT_THROWS_NOTHING( i = parser.parseXML(NULL); );
 
     // None rotated cuboid
@@ -576,7 +578,7 @@ public:
     TS_ASSERT( ptrRot->isValid(V3D(0.5,20.0,0.0)) );
     TS_ASSERT( ptrRot->isValid(V3D(-0.5,20.0,0.0)) );
 
-    // nested rotated cuboids which shape position moved 
+    // nested rotated cuboids which shape position moved
     ptrRot = i->getDetector(1360);
     TS_ASSERT( ptrRot->isValid(V3D(1.0,0.0,0.0)) );
     TS_ASSERT( !ptrRot->isValid(V3D(1.0,0.0,3.0)) );
@@ -592,7 +594,7 @@ public:
     TS_ASSERT( ptrRot->isValid(V3D(0.5,20.0,0.0)) );
 
     // nested rotated cuboids which shape position moved by the
-    // opposite amount as the location of its parent 
+    // opposite amount as the location of its parent
     ptrRot = i->getDetector(1370);
     TS_ASSERT( ptrRot->isValid(V3D(0.0,0.0,0.0)) );
     TS_ASSERT( !ptrRot->isValid(V3D(0.0,0.0,3.0)) );
@@ -614,43 +616,22 @@ public:
     TS_ASSERT_EQUALS(InstrumentDefinitionParser::NoneApplied, parser.getAppliedCachingOption());
   }
 
-  void testUseAdjacentCacheFile()
+  void testCreateVTPFilename()
   {
     IDFEnvironment instrumentEnv = create_idf_and_vtp_pair();
-    
     const std::string idfFileName = instrumentEnv._idf.getFileName();
-    const std::string cacheFileName = instrumentEnv._vtp.getFileName();
-
-    MockIDFObject* mockIDF = new MockIDFObject(idfFileName);
-    MockIDFObject* mockCache = new MockIDFObject(cacheFileName);
-
-    EXPECT_CALL(*mockIDF, exists()).WillRepeatedly(Return(true));
-    EXPECT_CALL(*mockCache, exists()).WillRepeatedly(Return(true));
-
-    const Poco::Timestamp smallerTime = 0;
-    const Poco::Timestamp largerTime = smallerTime + 1;
-
-    EXPECT_CALL(*mockIDF, getLastModified()).WillOnce(Return(smallerTime)); 
-    EXPECT_CALL(*mockCache, getLastModified()).WillOnce(Return(largerTime)); // Mock expectation set such that Cache file modified created most recently, so SHOULD be used.
-
-    IDFObject_const_sptr idf(mockIDF);
-    IDFObject_const_sptr cache(mockCache);
-
-    InstrumentDefinitionParser parser;
+    const std::string instrumentName = instrumentEnv._instName;
     const std::string xmlText = Strings::loadFile(idfFileName);
-    const std::string instrumentName = "UseAjacentCache";
-    parser.initialize(idf, cache, instrumentEnv._instName, instrumentEnv._xmlText);
-    TS_ASSERT_THROWS_NOTHING(parser.parseXML(NULL));
+    InstrumentDefinitionParser parser(idfFileName,instrumentName,xmlText);
 
-    TS_ASSERT_EQUALS(InstrumentDefinitionParser::ReadAdjacent, parser.getAppliedCachingOption()); // Check that the adjacent cache file was used.
-    TS_ASSERT(Mock::VerifyAndClearExpectations(mockIDF));
-    TS_ASSERT(Mock::VerifyAndClearExpectations(mockCache));
+    TS_ASSERT_EQUALS(instrumentEnv._vtp.getFileName(), parser.createVTPFileName());
   }
 
-  void testWriteAdjacentCacheFileIfCacheIsOutOfDate()
+  void testReadFromCacheInTempDirectory()
   {
-    IDFEnvironment instrumentEnv = create_idf_and_vtp_pair();
-    
+    const bool put_vtp_in_instrument_directory = false;
+    IDFEnvironment instrumentEnv = create_idf_and_vtp_pair(put_vtp_in_instrument_directory);
+
     const std::string idfFileName = instrumentEnv._idf.getFileName();
     const std::string cacheFileName = instrumentEnv._vtp.getFileName();
 
@@ -658,65 +639,46 @@ public:
     MockIDFObject* mockCache = new MockIDFObject(cacheFileName);
 
     EXPECT_CALL(*mockIDF, exists()).WillRepeatedly(Return(true));
-    EXPECT_CALL(*mockCache, exists()).WillRepeatedly(Return(true));
+    EXPECT_CALL(*mockCache, exists()).WillRepeatedly(Return(false)); // Mock expectation set such that geometry Cache file does not exist, so should not be used.
 
-    const Poco::Timestamp smallerTime = 0;
-    const Poco::Timestamp largerTime = smallerTime + 1;
-
-    EXPECT_CALL(*mockIDF, getLastModified()).WillRepeatedly(Return(largerTime)); // Mock expectation set up so that IDF will appear newer than cache file.
-    EXPECT_CALL(*mockCache, getLastModified()).WillRepeatedly(Return(smallerTime)); 
 
     IDFObject_const_sptr idf(mockIDF);
     IDFObject_const_sptr cache(mockCache);
 
-    InstrumentDefinitionParser parser;
-    parser.initialize(idf, cache, instrumentEnv._instName, instrumentEnv._xmlText);
+    InstrumentDefinitionParser parser(idf, cache, instrumentEnv._instName, instrumentEnv._xmlText);
+
     TS_ASSERT_THROWS_NOTHING(parser.parseXML(NULL));
 
-    TS_ASSERT_EQUALS(InstrumentDefinitionParser::WroteCacheAdjacent, parser.getAppliedCachingOption()); // Check that the adjacent cache file was used.
+    TS_ASSERT_EQUALS(InstrumentDefinitionParser::ReadFallBack, parser.getAppliedCachingOption()); // Check that the geometry cache file was used.
     TS_ASSERT(Mock::VerifyAndClearExpectations(mockIDF));
     TS_ASSERT(Mock::VerifyAndClearExpectations(mockCache));
   }
 
-  void testReadFromCacheInTempDirectory()
+  void RemoveFallbackVTPFile(InstrumentDefinitionParser& parser)
   {
-    const time_t tAtStart = 0; // create an early timestamp for use later.
-    const bool put_vtp_in_instrument_directory = false;
-    IDFEnvironment instrumentEnv = create_idf_and_vtp_pair(put_vtp_in_instrument_directory);
-    
-    const std::string idfFileName = instrumentEnv._idf.getFileName();
-    const std::string cacheFileName = instrumentEnv._vtp.getFileName();
-    
-    MockIDFObject* mockIDF = new MockIDFObject(idfFileName);
-    MockIDFObject* mockCache = new MockIDFObject(cacheFileName); 
-
-    EXPECT_CALL(*mockIDF, exists()).WillRepeatedly(Return(true));
-    EXPECT_CALL(*mockCache, exists()).WillRepeatedly(Return(false)); // Mock expectation set such that adjacent Cache file does not exist, so should not be used.
-
-    EXPECT_CALL(*mockIDF, getLastModified()).WillOnce(Return(tAtStart)); 
-
-    IDFObject_const_sptr idf(mockIDF);
-    IDFObject_const_sptr cache(mockCache);
-
-    InstrumentDefinitionParser parser;
-
-    parser.initialize(idf, cache, instrumentEnv._instName, instrumentEnv._xmlText);
-    TS_ASSERT_THROWS_NOTHING(parser.parseXML(NULL));
-
-    TS_ASSERT_EQUALS(InstrumentDefinitionParser::ReadFallBack, parser.getAppliedCachingOption()); // Check that the adjacent cache file was used.
-    TS_ASSERT(Mock::VerifyAndClearExpectations(mockIDF));
-    TS_ASSERT(Mock::VerifyAndClearExpectations(mockCache));
+    Poco::Path vtpPath(parser.createVTPFileName());
+    Poco::Path fallbackPath(ConfigService::Instance().getTempDir());
+    fallbackPath.makeDirectory();
+    fallbackPath.setFileName(vtpPath.getFileName());
+    std::string fp = fallbackPath.toString();
+    Poco::File fallbackFile(fallbackPath.toString());
+    if (fallbackFile.exists()) {
+      fallbackFile.remove();
+    }
   }
 
-  void testWriteAdjacentCacheFileIfCacheDoestExist()
+  void testWriteCacheFileIfCacheDoestExist()
   {
     IDFEnvironment instrumentEnv = create_idf_and_vtp_pair();
-    
+
     const std::string idfFileName = instrumentEnv._idf.getFileName();
     const std::string cacheFileName = "";
-    
+
     MockIDFObject* mockIDF = new MockIDFObject(idfFileName);
-    MockIDFObject* mockCache = new MockIDFObject(cacheFileName); 
+    MockIDFObject* mockCache = new MockIDFObject(cacheFileName);
+
+    //make sure the fallback location for the geometry file is deleted
+
 
     EXPECT_CALL(*mockIDF, exists()).WillRepeatedly(Return(true));
     EXPECT_CALL(*mockCache, exists()).WillRepeatedly(Return(false)); // Mock expectation set such that Cache file does not exist, so should not be used.
@@ -724,12 +686,13 @@ public:
     IDFObject_const_sptr idf(mockIDF);
     IDFObject_const_sptr cache(mockCache);
 
-    InstrumentDefinitionParser parser;
-    
-    parser.initialize(idf, cache, instrumentEnv._instName, instrumentEnv._xmlText);
+    //remove the fallback file if it exists
+    InstrumentDefinitionParser parser(idf, cache, instrumentEnv._instName, instrumentEnv._xmlText);
+    RemoveFallbackVTPFile(parser);
+
     TS_ASSERT_THROWS_NOTHING(parser.parseXML(NULL));
 
-    TS_ASSERT_EQUALS(InstrumentDefinitionParser::WroteCacheAdjacent, parser.getAppliedCachingOption()); // Check that the adjacent cache file was used.
+    TS_ASSERT_EQUALS(InstrumentDefinitionParser::WroteGeomCache, parser.getAppliedCachingOption()); // Check that the geometry cache file was used.
     TS_ASSERT(Mock::VerifyAndClearExpectations(mockIDF));
     TS_ASSERT(Mock::VerifyAndClearExpectations(mockCache));
   }
@@ -746,16 +709,17 @@ public:
     const std::string cacheFileName = instrumentEnv._vtp.getFileName(); // We do provide a cache file, but this shouldn't be used.
 
     MockIDFObject* mockIDF = new MockIDFObject(idfFileName);
-    MockIDFObject* mockCache = new MockIDFObject(cacheFileName); 
+    MockIDFObjectWithParentDirectory* mockCache = new MockIDFObjectWithParentDirectory(cacheFileName);
 
     EXPECT_CALL(*mockIDF, exists()).WillRepeatedly(Return(false)); // IDF set not to exist.
-    EXPECT_CALL(*mockCache, exists()).WillRepeatedly(Return(true)); // Mock expectation set such that Cache file does exist, but should not be used..
+    EXPECT_CALL(*mockCache, exists()).WillRepeatedly(Return(false)); // Mock expectation set such that Cache file does not exist, and location is inaccessible.
+    EXPECT_CALL(*mockCache, getParentDirectory()).WillRepeatedly(Return(Poco::Path("this does not exist")));
 
     IDFObject_const_sptr idf(mockIDF);
     IDFObject_const_sptr cache(mockCache);
 
-    InstrumentDefinitionParser parser;
-    parser.initialize(idf, cache, instrumentEnv._instName, instrumentEnv._xmlText);
+    InstrumentDefinitionParser parser(idf, cache, instrumentEnv._instName, instrumentEnv._xmlText);
+
     TS_ASSERT_THROWS_NOTHING(parser.parseXML(NULL));
 
     TS_ASSERT_EQUALS(InstrumentDefinitionParser::WroteCacheTemp, parser.getAppliedCachingOption()); // Check that the TEMP cache file was used.
@@ -785,10 +749,10 @@ public:
       "<type name=\"cylinder-right\" is=\"detector\">"
       "<cylinder id=\"some-shape\">"
       "  <centre-of-bottom-base r=\"0.0\" t=\"0.0\" p=\"0.0\" />"
-      "  <axis x=\"0.0\" y=\"0.0\" z=\"1.0\" />" 
+      "  <axis x=\"0.0\" y=\"0.0\" z=\"1.0\" />"
       "  <radius val=\"0.01\" />"
       "  <height val=\"0.03\" />"
-      "</cylinder>"    
+      "</cylinder>"
       "</type>"
       "<idlist idname=\"cylinder-right\">"
       "<id val=\"1\" />"
@@ -797,8 +761,7 @@ public:
 
     ScopedFile idfFile = createIDFFileObject(idfFilename, idfFileContents);
 
-    InstrumentDefinitionParser parser;
-    TS_ASSERT_THROWS_NOTHING( parser.initialize(idfFilename, "For Unit Testing", idfFileContents); );
+    InstrumentDefinitionParser parser(idfFilename, "For Unit Testing", idfFileContents);
 
     std::string errorMsg("");
     try
@@ -827,8 +790,7 @@ public:
     boost::replace_first(contents, "%LOCATIONS%", locations);
     boost::replace_first(contents, "%NUM_DETECTORS%", boost::lexical_cast<std::string>(numDetectors));
 
-    InstrumentDefinitionParser parser;
-    parser.initialize(filename, "LocationsTestInstrument", contents);
+    InstrumentDefinitionParser parser(filename, "LocationsTestInstrument", contents);
 
     Instrument_sptr instr;
 
@@ -982,38 +944,21 @@ public:
 
 void testLoadingAndParsing()
 {
-    std::string filenameNoExt = ConfigService::Instance().getInstrumentDirectory() + "/IDFs_for_UNIT_TESTING/IDF_for_UNIT_TESTING";
-    std::string filename = filenameNoExt + ".xml";
-    std::string xmlText = Strings::loadFile(filename);
-    boost::shared_ptr<const Instrument> i;
-
-    // Parse the XML (remove old vtp file if it exists)
-    std::string vtpFilename = filenameNoExt + ".vtp";
-    try
-    {
-      Poco::File vtpFile(vtpFilename);
-      vtpFile.remove();
-    }
-    catch(Poco::FileNotFoundException&) {}
+    const std::string filename = ConfigService::Instance().getInstrumentDirectory() + "/IDFs_for_UNIT_TESTING/IDF_for_UNIT_TESTING.xml";
+    const std::string xmlText = Strings::loadFile(filename);
 
-    InstrumentDefinitionParser parser;
-    TS_ASSERT_THROWS_NOTHING( parser.initialize(filename, "For Unit Testing", xmlText); );
-    TS_ASSERT_THROWS_NOTHING( i = parser.parseXML(NULL); );
+    boost::shared_ptr<const Instrument> instrument;
+    InstrumentDefinitionParser parser(filename, "For Unit Testing", xmlText);
+    TS_ASSERT_THROWS_NOTHING( instrument = parser.parseXML(NULL) );
 
-    // Remove it for clean test
-    try
-    {
-      Poco::File vtpFile(vtpFilename);
-      vtpFile.remove();
-    }
-    catch(Poco::FileNotFoundException&)
-    {
-      TS_FAIL("Cannot find expected .vtp file next to " + filename);
+    // Clean up VTP file
+    const std::string vtpFilename = parser.createVTPFileName();
+    if ( !vtpFilename.empty() ) {
+      Poco::File(vtpFilename).remove();
     }
 }
 
-}; 
+};
 
 
 #endif /* MANTID_GEOMETRY_INSTRUMENTDEFINITIONPARSERTEST_H_ */
-
diff --git a/Code/Mantid/Framework/Geometry/test/LaszloIntersectionTest.h b/Code/Mantid/Framework/Geometry/test/LaszloIntersectionTest.h
deleted file mode 100644
index 9be50dd898ea272ba10923d9c108d6323be2fe3a..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/test/LaszloIntersectionTest.h
+++ /dev/null
@@ -1,198 +0,0 @@
-#ifndef MANTID_GEOMETRY_LASZLOINTERSECTIONTEST_H_
-#define MANTID_GEOMETRY_LASZLOINTERSECTIONTEST_H_
-
-//-----------------------------------------------------------------------------
-// Includes
-//-----------------------------------------------------------------------------
-#include "MantidGeometry/Math/LaszloIntersection.h"
-#include "MantidGeometry/Math/ConvexPolygon.h"
-#include "MantidGeometry/Math/Vertex2D.h"
-#include <cfloat>
-#include <cxxtest/TestSuite.h>
-
-using Mantid::Kernel::V2D;
-using Mantid::Geometry::Vertex2D;
-using Mantid::Geometry::ConvexPolygon;
-
-class LaszloIntersectionTest : public CxxTest::TestSuite
-{
-public:
-  
-  void test_Intersection_Of_Axis_Aligned_Squares()
-  {
-    // Define two squares that partially overlap
-    ConvexPolygon squareOne(0.0, 2.0, 0.0, 2.0); //2x2, bottom left-hand corner at origin
-    ConvexPolygon squareTwo(1.0, 3.0, 1.0, 3.0); //2x2, bottom left-hand corner at centre of first
-
-    ConvexPolygon overlap = intersectionByLaszlo(squareOne,squareTwo);
-    TS_ASSERT_EQUALS(overlap.numVertices(), 4);
-    // Are they correct
-    TS_ASSERT_EQUALS(overlap[0], V2D(1,2));
-    TS_ASSERT_EQUALS(overlap[1], V2D(2,2));
-    TS_ASSERT_EQUALS(overlap[2], V2D(2,1));
-    TS_ASSERT_EQUALS(overlap[3], V2D(1,1));
-    
-    // Symmetry
-    ConvexPolygon overlapRev = intersectionByLaszlo(squareTwo,squareOne);
-    TS_ASSERT_EQUALS(overlapRev.numVertices(), 4);
-    // Are they correct
-    TS_ASSERT_EQUALS(overlapRev[0], V2D(1,2));
-    TS_ASSERT_EQUALS(overlapRev[1], V2D(2,2));
-    TS_ASSERT_EQUALS(overlapRev[2], V2D(2,1));
-    TS_ASSERT_EQUALS(overlapRev[3], V2D(1,1));
-
-  }
-
-  void test_House()
-  {
-    Vertex2D *head = new Vertex2D();
-    head->insert(new Vertex2D(200,0));
-    head->insert(new Vertex2D(200,100));
-    head->insert(new Vertex2D(100,200));
-    head->insert(new Vertex2D(0,100));
-    ConvexPolygon house(head);
-
-    head = new Vertex2D(100,100);
-    head->insert(new Vertex2D(300,100));
-    head->insert(new Vertex2D(300,200));
-    head->insert(new Vertex2D(100,200));
-    ConvexPolygon rectangle(head);
-    
-    ConvexPolygon overlap = intersectionByLaszlo(house,rectangle);
-    TS_ASSERT_EQUALS(overlap.numVertices(), 3);
-    TS_ASSERT_EQUALS(overlap[0], V2D(100,200));
-    TS_ASSERT_EQUALS(overlap[1], V2D(200,100));
-    TS_ASSERT_EQUALS(overlap[2], V2D(100,100));
-
-    ConvexPolygon overlapRev = intersectionByLaszlo(rectangle, house);
-    TS_ASSERT_EQUALS(overlapRev.numVertices(), 3);
-    TS_ASSERT_EQUALS(overlapRev[0], V2D(100,200));
-    TS_ASSERT_EQUALS(overlapRev[1], V2D(200,100));
-    TS_ASSERT_EQUALS(overlapRev[2], V2D(100,100));
-  }
-
-  void test_Intersection_Of_Parallelogram_And_Square()
-  {
-    Vertex2D *head = new Vertex2D(100,50);
-    head->insert(new Vertex2D(175,50));
-    head->insert(new Vertex2D(175,125));
-    head->insert(new Vertex2D(100,125));
-    ConvexPolygon square(head);
-
-    head = new Vertex2D();
-    head->insert(new Vertex2D(200,0));
-    head->insert(new Vertex2D(300,100));
-    head->insert(new Vertex2D(100,100));
-    ConvexPolygon parallelogram(head);
-
-    ConvexPolygon overlap = intersectionByLaszlo(square,parallelogram);
-    TS_ASSERT_EQUALS(overlap.numVertices(), 4);
-    // Are they correct
-    TS_ASSERT_EQUALS(overlap[0], V2D(100,100));
-    TS_ASSERT_EQUALS(overlap[1], V2D(175,100));
-    TS_ASSERT_EQUALS(overlap[2], V2D(175,50));
-    TS_ASSERT_EQUALS(overlap[3], V2D(100,50));
-
-    //Symmetry
-    ConvexPolygon overlapRev = intersectionByLaszlo(parallelogram, square);
-    TS_ASSERT_EQUALS(overlapRev.numVertices(), 4);
-    // Are they correct
-    TS_ASSERT_EQUALS(overlapRev[0], V2D(100,100));
-    TS_ASSERT_EQUALS(overlapRev[1], V2D(175,100));
-    TS_ASSERT_EQUALS(overlapRev[2], V2D(175,50));
-    TS_ASSERT_EQUALS(overlapRev[3], V2D(100,50));
-  }
-
-  void test_Intersection_With_Self()
-  {
-    ConvexPolygon squareOne(0.0, 2.0, 0.0, 2.0); //2x2, bottom left-hand corner at origin
-    ConvexPolygon overlap = intersectionByLaszlo(squareOne, squareOne);
-    TS_ASSERT_EQUALS(overlap.numVertices(), 4);
-
-    // Are they correct
-    TS_ASSERT_EQUALS(overlap[0], V2D(0.0, 2.0));
-    TS_ASSERT_EQUALS(overlap[1], V2D(2.0, 2.0));
-    TS_ASSERT_EQUALS(overlap[2], V2D(2.0, 0.0));
-    TS_ASSERT_EQUALS(overlap[3], V2D());
-  }
-
-  void test_Shapes_Sharing_A_Line_Throws()
-  {
-    Vertex2D *plist = new Vertex2D(-3.0, -3.0);
-    plist->insert(new Vertex2D(-0.5, -3.0));
-    plist->insert(new Vertex2D(0.5, -1.0));
-    plist->insert(new Vertex2D(-2.0, -1.0));
-    ConvexPolygon parallelogram(plist);
-
-    Vertex2D *s2list = new Vertex2D(1.0, -1.0);
-    s2list->insert(new Vertex2D(1.0, 3.0));
-    s2list->insert(new Vertex2D(-4.0, 3.0));
-    s2list->insert(new Vertex2D(-4.0, -1.0));
-    ConvexPolygon rect2(s2list);
-
-    /**
-     * The overlap here is a line-segment [-3,-1]->[0.5,-1] which is not 
-     * valid polygon so this should throw
-     */
-    TS_ASSERT_THROWS(intersectionByLaszlo(rect2, parallelogram), Mantid::Geometry::NoIntersectionException);
-    TS_ASSERT_THROWS(intersectionByLaszlo(parallelogram, rect2), Mantid::Geometry::NoIntersectionException);
-  }
-
-  void test_First_Shape_Engulfing_Second_Gives_Overlap_Of_Smaller()
-  {
-    ConvexPolygon smallRectangle = ConvexPolygon(7.0, 8.0,0.5, 1.5);
-    ConvexPolygon largeRectange(6.8, 8.6, -0.5, 2.0);
-
-    ConvexPolygon overlap = intersectionByLaszlo(smallRectangle,largeRectange);
-    TS_ASSERT_EQUALS(overlap.numVertices(), 4);
-    // Are they correct
-    TS_ASSERT_EQUALS(overlap[0], smallRectangle[0]);
-    TS_ASSERT_EQUALS(overlap[1], smallRectangle[1]);
-    TS_ASSERT_EQUALS(overlap[2], smallRectangle[2]);
-    TS_ASSERT_EQUALS(overlap[3], smallRectangle[3]);
-
-  }
-
-  void test_No_Overlap_At_All_Throws_NoIntersectionException()
-  {
-    // Define two squares that do not overlap
-    ConvexPolygon squareOne(0.0, 2.0, 0.0, 2.0); //2x2, bottom left-hand corner at origin
-    ConvexPolygon squareTwo(3.0, 5.0, 3.0, 5.0); //2x2, bottom left-hand corner at (3,3)
-
-    TS_ASSERT_THROWS(intersectionByLaszlo(squareOne, squareTwo), Mantid::Geometry::NoIntersectionException);
-    TS_ASSERT_THROWS(intersectionByLaszlo(squareTwo, squareOne), Mantid::Geometry::NoIntersectionException);
-  }
-
-};
-
-//------------------------------------------------------------------------
-// Performance Tests
-//------------------------------------------------------------------------
-
-class LaszloIntersectionTestPerformance : public CxxTest::TestSuite
-{
-public:
-  void test_Intersection_Of_Large_Number()
-  {
-    const size_t niters(100000);
-    for( size_t i = 0; i < niters; ++i )
-    {
-      // These are created each loop iteration to simulate a more real-life case
-      // of constructing polygons inside a loop and then testing their intersection
-      ConvexPolygon squareOne(0.0, 2.0, 0.0, 2.0); //2x2, bottom left-hand corner at origin
-      ConvexPolygon squareTwo(1.0, 3.0, 1.0, 3.0); //2x2, bottom left-hand corner at centre of first
-      try
-      {
-        intersectionByLaszlo(squareOne, squareTwo);
-      }
-      catch(Mantid::Geometry::NoIntersectionException&)
-      {
-      }
-    }
-
-  }
-};
-
-
-#endif /* MANTID_GEOMETRY_LASZLOINTERSECTIONTEST_H_ */
-
diff --git a/Code/Mantid/Framework/Geometry/test/ORourkeIntersectionTest.h b/Code/Mantid/Framework/Geometry/test/ORourkeIntersectionTest.h
deleted file mode 100644
index f869484919c96338f14528d76fc83421987d6067..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/test/ORourkeIntersectionTest.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef MANTID_GEOMETRY_OROURKEINTERSECTIONTEST_H_
-#define MANTID_GEOMETRY_OROURKEINTERSECTIONTEST_H_
-
-//-----------------------------------------------------------------------------
-// Includes
-//-----------------------------------------------------------------------------
-#include "MantidGeometry/Math/ORourkeIntersection.h"
-#include "MantidGeometry/Math/ConvexPolygon.h"
-#include <cfloat>
-#include <cxxtest/TestSuite.h>
-
-using Mantid::Kernel::V2D;
-using Mantid::Geometry::Vertex2DList;
-using Mantid::Geometry::ConvexPolygon;
-
-class ORourkeIntersectionTest : public CxxTest::TestSuite
-{
-public:
-  
-  void test_Intersection_Of_Axis_Aligned_Squares()
-  {
-    // Define two squares that partially overlap
-    ConvexPolygon squareOne(0.0, 2.0, 0.0, 2.0); //2x2, bottom left-hand corner at origin
-    ConvexPolygon squareTwo(1.0, 3.0, 1.0, 3.0); //2x2, bottom left-hand corner at centre of first
-
-    ConvexPolygon overlap = intersectionByORourke(squareOne,squareTwo);
-    TS_ASSERT_EQUALS(overlap.numVertices(), 4);
-    // Are they correct
-    TS_ASSERT_EQUALS(overlap[0], V2D(2,1));
-    TS_ASSERT_EQUALS(overlap[1], V2D(2,2));
-    TS_ASSERT_EQUALS(overlap[2], V2D(1,2));
-    TS_ASSERT_EQUALS(overlap[3], V2D(1,1));
-  }
-
-  void test_House()
-  {
-    Vertex2DList vertices;
-    vertices.insert(V2D());
-    vertices.insert(V2D(200,0));
-    vertices.insert(V2D(200,100));
-    vertices.insert(V2D(100,200));
-    vertices.insert(V2D(0,100));
-    ConvexPolygon house(vertices);
-
-    vertices = Vertex2DList();
-    vertices.insert(V2D(100,100));
-    vertices.insert(V2D(300,100));
-    vertices.insert(V2D(300,200));
-    vertices.insert(V2D(100,200));
-    ConvexPolygon rectangle(vertices);
-    
-    ConvexPolygon overlap = intersectionByORourke(house,rectangle);
-    TS_ASSERT_EQUALS(overlap.numVertices(), 3);
-  }
-
-
-  void test_Intersection_Of_Parallelogram_And_Square()
-  {
-    Vertex2DList vertices;
-    vertices.insert(V2D(100,50));
-    vertices.insert(V2D(175,50));
-    vertices.insert(V2D(175,125));
-    vertices.insert(V2D(100,125));
-    ConvexPolygon square(vertices);
-
-    vertices = Vertex2DList();
-    vertices.insert(V2D());
-    vertices.insert(V2D(200,0));
-    vertices.insert(V2D(300,100));
-    vertices.insert(V2D(100,100));
-    ConvexPolygon parallelogram(vertices);
-
-    ConvexPolygon overlap = intersectionByORourke(square,parallelogram);
-    TS_ASSERT_EQUALS(overlap.numVertices(), 4);
-    // Are they correct
-    TS_ASSERT_EQUALS(overlap[0], V2D(100,100));
-    TS_ASSERT_EQUALS(overlap[1], V2D(100,50));
-    TS_ASSERT_EQUALS(overlap[2], V2D(175,50));
-    TS_ASSERT_EQUALS(overlap[3], V2D(175,100));
-  }
-
-};
-
-#endif /* MANTID_GEOMETRY_OROURKEINTERSECTIONTEST_H_ */
-
diff --git a/Code/Mantid/Framework/Geometry/test/PolygonIntersectionTest.h b/Code/Mantid/Framework/Geometry/test/PolygonIntersectionTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..72ad76366b6f7aef0d2c0932a3549df14968ae6d
--- /dev/null
+++ b/Code/Mantid/Framework/Geometry/test/PolygonIntersectionTest.h
@@ -0,0 +1,225 @@
+#ifndef MANTID_GEOMETRY_POLYGONINTERSECTIONTEST_H_
+#define MANTID_GEOMETRY_POLYGONINTERSECTIONTEST_H_
+#include "MantidGeometry/Math/ConvexPolygon.h"
+#include "MantidGeometry/Math/PolygonIntersection.h"
+#include "MantidGeometry/Math/Quadrilateral.h"
+
+#include <cxxtest/TestSuite.h>
+
+using Mantid::Geometry::ConvexPolygon;
+using Mantid::Geometry::intersection;
+using Mantid::Geometry::Quadrilateral;
+using Mantid::Kernel::V2D;
+
+class PolygonIntersectionTest : 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 PolygonIntersectionTest *createSuite() {
+    return new PolygonIntersectionTest();
+  }
+  static void destroySuite(PolygonIntersectionTest *suite) { delete suite; }
+
+  void test_Intersection_Of_Axis_Aligned_Squares()
+  {
+    // Define two squares that partially overlap
+    Quadrilateral squareOne(0.0, 2.0, 0.0, 2.0); //2x2, bottom left-hand corner at origin
+    Quadrilateral squareTwo(1.0, 3.0, 1.0, 3.0); //2x2, bottom left-hand corner at centre of first
+
+    ConvexPolygon overlap;
+    TS_ASSERT(intersection(squareOne, squareTwo, overlap));
+    TS_ASSERT(overlap.isValid());
+    TS_ASSERT_EQUALS(overlap.npoints(), 4);
+    // Are they correct
+    TS_ASSERT_EQUALS(overlap[0], V2D(1,2));
+    TS_ASSERT_EQUALS(overlap[1], V2D(2,2));
+    TS_ASSERT_EQUALS(overlap[2], V2D(2,1));
+    TS_ASSERT_EQUALS(overlap[3], V2D(1,1));
+
+    // Symmetry
+    ConvexPolygon reverseOverlap;
+    TS_ASSERT(intersection(squareTwo, squareOne, reverseOverlap));
+    TS_ASSERT(reverseOverlap.isValid());
+    TS_ASSERT_EQUALS(reverseOverlap.npoints(), 4);
+    // Are they correct
+    TS_ASSERT_EQUALS(reverseOverlap[0], V2D(1,2));
+    TS_ASSERT_EQUALS(reverseOverlap[1], V2D(2,2));
+    TS_ASSERT_EQUALS(reverseOverlap[2], V2D(2,1));
+    TS_ASSERT_EQUALS(reverseOverlap[3], V2D(1,1));
+  }
+
+  void test_House()
+  {
+    ConvexPolygon house;
+    house.insert(0, 0);
+    house.insert(0, 100);
+    house.insert(100, 200);
+    house.insert(200, 100);
+    house.insert(200, 0);
+
+    ConvexPolygon rectangle;
+    rectangle.insert(100,100);
+    rectangle.insert(100,200);
+    rectangle.insert(300,200);
+    rectangle.insert(300,100);
+
+    ConvexPolygon overlap;
+    TS_ASSERT(intersection(house,rectangle, overlap));
+
+    TS_ASSERT(overlap.isValid());
+    TS_ASSERT_EQUALS(overlap.npoints(), 3);
+    TS_ASSERT_EQUALS(overlap[0], V2D(100,200));
+    TS_ASSERT_EQUALS(overlap[1], V2D(200,100));
+    TS_ASSERT_EQUALS(overlap[2], V2D(100,100));
+
+    ConvexPolygon overlapRev;
+    TS_ASSERT(intersection(rectangle, house, overlapRev));
+    TS_ASSERT(overlapRev.isValid());
+    TS_ASSERT_EQUALS(overlapRev.npoints(), 3);
+    TS_ASSERT_EQUALS(overlapRev[0], V2D(100,200));
+    TS_ASSERT_EQUALS(overlapRev[1], V2D(200,100));
+    TS_ASSERT_EQUALS(overlapRev[2], V2D(100,100));
+  }
+
+  void test_Intersection_Of_Parallelogram_And_Square()
+  {
+    ConvexPolygon square;
+    square.insert(100,50);
+    square.insert(100,125);
+    square.insert(175,125);
+    square.insert(175,50);
+
+    ConvexPolygon parallelogram;
+    parallelogram.insert(0,0);
+    parallelogram.insert(100,100);
+    parallelogram.insert(300,100);
+    parallelogram.insert(200,0);
+
+    ConvexPolygon overlap;
+    TS_ASSERT(intersection(square, parallelogram, overlap));
+
+    TS_ASSERT(overlap.isValid());
+    TS_ASSERT_EQUALS(overlap.npoints(), 4);
+    // Are they correct
+    TS_ASSERT_EQUALS(overlap[0], V2D(100,100));
+    TS_ASSERT_EQUALS(overlap[1], V2D(175,100));
+    TS_ASSERT_EQUALS(overlap[2], V2D(175,50));
+    TS_ASSERT_EQUALS(overlap[3], V2D(100,50));
+
+    //Symmetry
+    ConvexPolygon overlapRev;
+    TS_ASSERT(intersection(parallelogram, square, overlapRev));
+
+    TS_ASSERT(overlapRev.isValid());
+    TS_ASSERT_EQUALS(overlapRev.npoints(), 4);
+    // Are they correct
+    TS_ASSERT_EQUALS(overlapRev[0], V2D(100,100));
+    TS_ASSERT_EQUALS(overlapRev[1], V2D(175,100));
+    TS_ASSERT_EQUALS(overlapRev[2], V2D(175,50));
+    TS_ASSERT_EQUALS(overlapRev[3], V2D(100,50));
+  }
+
+  void test_Intersection_With_Self()
+  {
+    Quadrilateral squareOne(0.0, 2.0, 0.0, 2.0); //2x2, bottom left-hand corner at origin
+    ConvexPolygon overlap;
+    TS_ASSERT(intersection(squareOne, squareOne, overlap));
+
+    TS_ASSERT(overlap.isValid());
+    TS_ASSERT_EQUALS(overlap.npoints(), 4);
+    TS_ASSERT_EQUALS(overlap[0], V2D(0.0, 2.0));
+    TS_ASSERT_EQUALS(overlap[1], V2D(2.0, 2.0));
+    TS_ASSERT_EQUALS(overlap[2], V2D(2.0, 0.0));
+    TS_ASSERT_EQUALS(overlap[3], V2D());
+  }
+
+  void test_First_Shape_Engulfing_Second_Gives_Overlap_Of_Smaller()
+  {
+    Quadrilateral smallRectangle(7.0, 8.0, 0.5, 1.5);
+    Quadrilateral largeRectange(6.8, 8.6, -0.5, 2.0);
+
+    ConvexPolygon overlap;
+    TS_ASSERT(intersection(smallRectangle, largeRectange, overlap));
+    TS_ASSERT(overlap.isValid());
+    TS_ASSERT_EQUALS(overlap.npoints(), 4);
+    // Are they correct
+    TS_ASSERT_EQUALS(overlap[0], smallRectangle[0]);
+    TS_ASSERT_EQUALS(overlap[1], smallRectangle[1]);
+    TS_ASSERT_EQUALS(overlap[2], smallRectangle[2]);
+    TS_ASSERT_EQUALS(overlap[3], smallRectangle[3]);
+
+  }
+
+  //---------------------------------------- Failure tests --------------------------------
+  
+  void test_Shapes_Sharing_Return_No_Intersection()
+  {
+    ConvexPolygon parallelogram;
+    parallelogram.insert(-3.0, -3.0);
+    parallelogram.insert(-2.0, -1.0);
+    parallelogram.insert(0.5, -1.0);
+    parallelogram.insert(-0.5, -3.0);
+
+    ConvexPolygon rect2;
+    rect2.insert(1.0, -1.0);
+    rect2.insert(-4.0, -1.0);
+    rect2.insert(-4.0, 3.0);
+    rect2.insert(1.0, 3.0);
+
+    /**
+     * The overlap here is a line-segment [-3,-1]->[0.5,-1] which is not
+     * valid polygon
+     */
+    ConvexPolygon overlap;
+    TS_ASSERT(!intersection(rect2, parallelogram, overlap));
+    TS_ASSERT(!overlap.isValid());
+
+    overlap = ConvexPolygon();
+    TS_ASSERT(!intersection(parallelogram, rect2, overlap));
+    TS_ASSERT(!overlap.isValid());
+  }
+
+
+  void test_No_Overlap_At_All_Returns_No_Intersection()
+  {
+    // Define two squares that do not overlap
+    Quadrilateral squareOne(0.0, 2.0, 0.0, 2.0); //2x2, bottom left-hand corner at origin
+    Quadrilateral squareTwo(3.0, 5.0, 3.0, 5.0); //2x2, bottom left-hand corner at (3,3)
+
+    ConvexPolygon overlap;
+    TS_ASSERT(!intersection(squareOne, squareTwo, overlap));
+    TS_ASSERT(!overlap.isValid());
+
+    overlap = ConvexPolygon();
+    TS_ASSERT(!intersection(squareTwo, squareOne, overlap));
+    TS_ASSERT(!overlap.isValid());
+  }
+
+};
+
+//------------------------------------------------------------------------
+// Performance Tests
+//------------------------------------------------------------------------
+
+class PolygonIntersectionTestPerformance : public CxxTest::TestSuite
+{
+public:
+  void test_Intersection_Of_Large_Number()
+  {
+    const size_t niters(100000);
+    for( size_t i = 0; i < niters; ++i )
+    {
+      // These are created each loop iteration to simulate a more real-life case
+      // of constructing polygons inside a loop and then testing their intersection
+      Quadrilateral squareOne(0.0, 2.0, 0.0, 2.0); //2x2, bottom left-hand corner at origin
+      Quadrilateral squareTwo(1.0, 3.0, 1.0, 3.0); //2x2, bottom left-hand corner at centre of first
+      ConvexPolygon overlap;
+      intersection(squareOne, squareTwo, overlap);
+    }
+
+  }
+};
+
+
+
+#endif /* MANTID_GEOMETRY_POLYGONINTERSECTIONTEST_H_ */
diff --git a/Code/Mantid/Framework/Geometry/test/QuadrilateralTest.h b/Code/Mantid/Framework/Geometry/test/QuadrilateralTest.h
index cd4d31ff3fe8efa7599b07108ea36daab9abd4d9..dd8ddd31c22332fcec0cdf64bb2c4c5b02828a67 100644
--- a/Code/Mantid/Framework/Geometry/test/QuadrilateralTest.h
+++ b/Code/Mantid/Framework/Geometry/test/QuadrilateralTest.h
@@ -7,7 +7,6 @@
 
 using namespace Mantid::Geometry;
 using Mantid::Kernel::V2D;
-using Mantid::Geometry::Vertex2D;
 
 class QuadrilateralTest : public CxxTest::TestSuite
 {
@@ -21,17 +20,10 @@ public:
     TS_ASSERT_EQUALS(rect[2], V2D(2.0,1.5));
     TS_ASSERT_EQUALS(rect[3], V2D(2.0,0.0));
 
-    TS_ASSERT_DELTA(rect.smallestX(), 0.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(rect.largestX(), 2.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(rect.smallestY(), 0.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(rect.largestY(), 1.5, DBL_EPSILON);
-  }
-
-  void test_Head_Retrieval()
-  {
-    Quadrilateral rectangle = makeRectangle();
-    const Vertex2D *head = rectangle.head();
-    TS_ASSERT_EQUALS(*head, Vertex2D(0.0,0.0));
+    TS_ASSERT_DELTA(rect.minX(), 0.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(rect.maxX(), 2.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(rect.minY(), 0.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(rect.maxY(), 1.5, DBL_EPSILON);
   }
 
   void test_Area()
@@ -55,10 +47,10 @@ public:
     TS_ASSERT_EQUALS(copied[2], V2D(2.0,1.5));
     TS_ASSERT_EQUALS(copied[3], V2D(2.0,0.0));
 
-    TS_ASSERT_DELTA(copied.smallestX(), 0.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(copied.largestX(), 2.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(copied.smallestY(), 0.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(copied.largestY(), 1.5, DBL_EPSILON);
+    TS_ASSERT_DELTA(copied.minX(), 0.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(copied.maxX(), 2.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(copied.minY(), 0.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(copied.maxY(), 1.5, DBL_EPSILON);
   }
 
   void test_Assignment()
@@ -71,12 +63,36 @@ public:
     TS_ASSERT_EQUALS(assign[2], V2D(2.0,1.5));
     TS_ASSERT_EQUALS(assign[3], V2D(2.0,0.0));
 
-    TS_ASSERT_DELTA(assign.smallestX(), 0.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(assign.largestX(), 2.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(assign.smallestY(), 0.0, DBL_EPSILON);
-    TS_ASSERT_DELTA(assign.largestY(), 1.5, DBL_EPSILON);
+    TS_ASSERT_DELTA(assign.minX(), 0.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(assign.maxX(), 2.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(assign.minY(), 0.0, DBL_EPSILON);
+    TS_ASSERT_DELTA(assign.maxY(), 1.5, DBL_EPSILON);
+  }
+
+  void test_contains_single_point()
+  {
+    Quadrilateral rect = makeRectangle();
+    
+    TS_ASSERT(rect.contains(V2D(1.0, 0.25)));
+    // On edge
+    TS_ASSERT(rect.contains(V2D(1.0, 0.0)));
+    // Outside
+    TS_ASSERT(!rect.contains(V2D(-3.0, 1.5)));
+    TS_ASSERT(!rect.contains(V2D(3.0, 1.5)));
+    TS_ASSERT(!rect.contains(V2D(1.0, 2.0)));
+    TS_ASSERT(!rect.contains(V2D(1.0, -2.0)));
+  }
+
+  void test_contains_polygon()
+  {
+    Quadrilateral smallRectangle = makeRectangle();
+    Quadrilateral largeRectangle(V2D(), V2D(3.0,0.0), V2D(3.0,2.0), V2D(0.0,2.0));
+
+    TS_ASSERT(largeRectangle.contains(smallRectangle));
+    TS_ASSERT(!smallRectangle.contains(largeRectangle));
   }
   
+
 private:
   Quadrilateral makeRectangle()
   {
@@ -92,7 +108,7 @@ private:
 class QuadrilateralTestPerformance : public CxxTest::TestSuite
 {
 public:
-  
+
   void test_Area_Calls()
   {
     const size_t ntests(50000000);
@@ -103,10 +119,9 @@ public:
       Quadrilateral test(V2D(), V2D(2.0,0.0), V2D(2.0,1.5), V2D(0.0,1.5));
       totalArea += test.area();
     }
-    
+
   }
 
 };
 
 #endif /* MANTID_GEOMETRY_QUADRILATERALTEST_H_ */
-
diff --git a/Code/Mantid/Framework/Geometry/test/SpaceGroupFactoryTest.h b/Code/Mantid/Framework/Geometry/test/SpaceGroupFactoryTest.h
index 51d275067021939e0cc356d2efdcf6ac7a1312ff..7ffa884c03df54925eaf32454535f3cb07ac8881 100644
--- a/Code/Mantid/Framework/Geometry/test/SpaceGroupFactoryTest.h
+++ b/Code/Mantid/Framework/Geometry/test/SpaceGroupFactoryTest.h
@@ -8,6 +8,7 @@
 using ::testing::Return;
 
 #include "MantidGeometry/Crystal/SpaceGroupFactory.h"
+#include "MantidGeometry/Crystal/PointGroupFactory.h"
 #include "MantidGeometry/Crystal/CyclicGroup.h"
 
 using namespace  Mantid::Geometry;
@@ -161,6 +162,24 @@ public:
         TS_ASSERT_EQUALS(symbols.size(), 2);
     }
 
+    void testSubscribedSpaceGroupSymbolsForPointGroup() {
+        PointGroup_sptr pg = PointGroupFactory::Instance().createPointGroup("-1");
+
+        TestableSpaceGroupFactory factory;
+
+        TS_ASSERT_EQUALS(factory.subscribedSpaceGroupSymbols(pg).size(), 0);
+        TS_ASSERT(factory.m_pointGroupMap.empty());
+
+        factory.subscribeTabulatedSpaceGroup(2, "P-1", "x,y,z; -x,-y,-z");
+        TS_ASSERT_EQUALS(factory.subscribedSpaceGroupSymbols(pg).size(), 1);
+        TS_ASSERT(!factory.m_pointGroupMap.empty());
+
+        factory.subscribeTabulatedSpaceGroup(2, "F-1", "x,y,z; -x,-y,-z");
+        TS_ASSERT(factory.m_pointGroupMap.empty());
+        TS_ASSERT_EQUALS(factory.subscribedSpaceGroupSymbols(pg).size(), 2);
+        TS_ASSERT(!factory.m_pointGroupMap.empty());
+    }
+
     void testUnsubscribeSymbol()
     {
         TestableSpaceGroupFactory factory;
diff --git a/Code/Mantid/Framework/Geometry/test/SpaceGroupTest.h b/Code/Mantid/Framework/Geometry/test/SpaceGroupTest.h
index ad97bf38b82c9966f793dd618d0738cbba38edfd..5d13357bc02ebf92866fba18f63ede10b28fd10a 100644
--- a/Code/Mantid/Framework/Geometry/test/SpaceGroupTest.h
+++ b/Code/Mantid/Framework/Geometry/test/SpaceGroupTest.h
@@ -87,7 +87,7 @@ public:
         "-y,x-y,z; y,x,-z; -x,-y,-z");
     Group_const_sptr centering = GroupFactory::create<CenteringGroup>("R");
 
-    SpaceGroup spaceGroup(167, "R-3m", *(group * centering));
+    SpaceGroup spaceGroup(166, "R-3m", *(group * centering));
 
     std::vector<V3D> byOperator = spaceGroup * V3D(0.5, 0.0, 0.0);
     for (size_t i = 0; i < byOperator.size(); ++i) {
@@ -106,7 +106,131 @@ public:
     }
   }
 
+  void testIsAllowedReflectionR3m() {
+    /* This is just a check that isAllowedReflection behaves correctly,
+     * there is a system test in place that checks more examples.
+     *
+     * This test uses space group 166, R-3m, like above.
+     */
+    Group_const_sptr group = GroupFactory::create<ProductOfCyclicGroups>(
+        "-y,x-y,z; y,x,-z; -x,-y,-z");
+    Group_const_sptr centering = GroupFactory::create<CenteringGroup>("R");
+
+    SpaceGroup spaceGroup(166, "R-3m", *(group * centering));
+
+    // Reflections hkl: -h + k + l = 3n
+    V3D goodHKL(1, 4, 3); // -1 + 4 + 3 = 6 = 3 * 2
+    V3D badHKL(2, 4, 3);  // -2 + 4 + 3 = 5
+    TS_ASSERT(spaceGroup.isAllowedReflection(goodHKL));
+    TS_ASSERT(!spaceGroup.isAllowedReflection(badHKL));
+
+    // Reflections hk0: -h + k = 3n
+    V3D goodHK0(3, 9, 0); // -3 + 9 = 6 = 3 * 2
+    V3D badHK0(4, 9, 0);  // -4 + 9 = 5
+    TS_ASSERT(spaceGroup.isAllowedReflection(goodHK0));
+    TS_ASSERT(!spaceGroup.isAllowedReflection(badHK0));
+
+    // Reflections hhl: l = 3n
+    V3D goodHHL(1, 1, 6); // 6 = 3 * 2
+    V3D badHHL(1, 1, 7);
+    TS_ASSERT(spaceGroup.isAllowedReflection(goodHHL));
+    TS_ASSERT(!spaceGroup.isAllowedReflection(badHHL));
+
+    // Reflections h-hl: h + l = 3n
+    V3D goodHmHL(3, -3, 6); // 3 + 9 = 9 = 3 * 3
+    V3D badHmHL(3, -3, 7);  // 3 + 7 = 10
+    TS_ASSERT(spaceGroup.isAllowedReflection(goodHmHL));
+    TS_ASSERT(!spaceGroup.isAllowedReflection(badHmHL));
+
+    // Reflections 000l: l = 3n
+    V3D good00L(0, 0, 6); // 6 = 3 * 2
+    V3D bad00L(0, 0, 7);
+    TS_ASSERT(spaceGroup.isAllowedReflection(good00L));
+    TS_ASSERT(!spaceGroup.isAllowedReflection(bad00L));
+
+    // Reflections h-h0: h = 3n
+    V3D goodHH0(3, -3, 0); // 3 = 3 * 1
+    V3D badHH0(4, -4, 0);
+    TS_ASSERT(spaceGroup.isAllowedReflection(goodHH0));
+    TS_ASSERT(!spaceGroup.isAllowedReflection(badHH0));
+  }
+
+  void testSiteSymmetryGroupR3c() {
+    /* Like the test above, this test checks that getSiteSymmetryGroup works
+     * correctly. A system test checks different space groups and different
+     * positions.
+     *
+     * This test uses space group 167, R-3c. Reference data from
+     *
+     * The Bilbao Crystallographic Server
+     * (http://www.cryst.ehu.es/cgi-bin/cryst/programs//find_comp_op)
+     *
+     * M. I. Aroyo et al, "Crystallography online: Bilbao Crystallographic
+     * Server" Bulg. Chem. Commun. 43(2) 183-197 (2011).
+     *
+     * M. I. Aroyo et al, "Bilbao Crystallographic Server I: Databases and
+     * crystallographic computing programs" Z. Krist. 221, 1, 15-27 (2006)
+     *
+     * M. I. Aroyo et al, "Bilbao Crystallographic Server II: Representations
+     * of crystallographic point groups and space groups"
+     * Acta Cryst. A62, 115-128 (2006)
+     */
+    Group_const_sptr group = GroupFactory::create<ProductOfCyclicGroups>(
+        "-y,x-y,z; y,x,-z+1/2; -x,-y,-z");
+    Group_const_sptr centering = GroupFactory::create<CenteringGroup>("R");
+
+    SpaceGroup spaceGroup(167, "R-3c", *(group * centering));
+    size_t sgOrder = spaceGroup.order();
+
+    // Position 6a
+    V3D w6a(0, 0, 1. / 4.);
+    Group_const_sptr siteSymmGrp6a = spaceGroup.getSiteSymmetryGroup(w6a);
+    checkSiteSymmetryGroupPositions(w6a, siteSymmGrp6a, "6a", sgOrder / 6);
+
+    // 6b
+    V3D w6b(0, 0, 0);
+    Group_const_sptr siteSymmGrp6b = spaceGroup.getSiteSymmetryGroup(w6b);
+    checkSiteSymmetryGroupPositions(w6b, siteSymmGrp6b, "6b", sgOrder / 6);
+
+    // 12c
+    V3D w12c(0, 0, 0.342352);
+    Group_const_sptr siteSymmGrp12c = spaceGroup.getSiteSymmetryGroup(w12c);
+    checkSiteSymmetryGroupPositions(w12c, siteSymmGrp12c, "12c", sgOrder / 12);
+
+    // 18d
+    V3D w18d(1. / 2., 0, 0);
+    Group_const_sptr siteSymmGrp18d = spaceGroup.getSiteSymmetryGroup(w18d);
+    checkSiteSymmetryGroupPositions(w18d, siteSymmGrp18d, "18d", sgOrder / 18);
+
+    // 18e
+    V3D w18e(0.32411, 0, 1. / 4.);
+    Group_const_sptr siteSymmGrp18e = spaceGroup.getSiteSymmetryGroup(w18e);
+    checkSiteSymmetryGroupPositions(w18e, siteSymmGrp18e, "18e", sgOrder / 18);
+
+    // 36f
+    V3D w36f(0.32411, 0.73232, 0.5232);
+    Group_const_sptr siteSymmGrp36f = spaceGroup.getSiteSymmetryGroup(w36f);
+    checkSiteSymmetryGroupPositions(w36f, siteSymmGrp36f, "36f", sgOrder / 36);
+  }
+
 private:
+  void checkSiteSymmetryGroupPositions(const V3D &position,
+                                       const Group_const_sptr &siteSymmGroup,
+                                       const std::string &wPosName,
+                                       size_t siteSymmGroupOrder) {
+    std::vector<V3D> equivalents = (*siteSymmGroup) * position;
+    for (auto eq = equivalents.begin(); eq != equivalents.end(); ++eq) {
+      TSM_ASSERT_EQUALS("Problem with Wyckoff-position " + wPosName +
+                            ". Expected " + position.toString() + ", got " +
+                            (*eq).toString() + ".",
+                        *eq, position);
+    }
+
+    TSM_ASSERT_EQUALS("Problem with Wyckoff-position " + wPosName +
+                          ", order of site symmetry group is incorrect.",
+                      siteSymmGroup->order(), siteSymmGroupOrder);
+  }
+
   class TestableSpaceGroup : public SpaceGroup {
     friend class SpaceGroupTest;
 
diff --git a/Code/Mantid/Framework/Geometry/test/SymmetryElementFactoryTest.h b/Code/Mantid/Framework/Geometry/test/SymmetryElementFactoryTest.h
index 35991f81e7058ffa9a0dd23b63ba7a691d34eae7..74a8017f8329752d9eb9f6ab9cd490a50453a178 100644
--- a/Code/Mantid/Framework/Geometry/test/SymmetryElementFactoryTest.h
+++ b/Code/Mantid/Framework/Geometry/test/SymmetryElementFactoryTest.h
@@ -199,6 +199,11 @@ public:
     V3R glideVectorC = V3R(0, 0, 1) / 2;
     SymmetryOperation glidePlaneC("x,-y,z+1/2");
     TS_ASSERT_EQUALS(generator.determineTranslation(glidePlaneC), glideVectorC);
+
+    V3R screwVectorThreeFourth = V3R(3, 0, 0) / 4;
+    SymmetryOperation fourThreeScrewAxis("x+3/4,-z+3/4,y+1/4");
+    TS_ASSERT_EQUALS(generator.determineTranslation(fourThreeScrewAxis),
+                     screwVectorThreeFourth);
   }
 
   void testSymmetryElementRotationDetermineRotationSense() {
diff --git a/Code/Mantid/Framework/Geometry/test/SymmetryOperationTest.h b/Code/Mantid/Framework/Geometry/test/SymmetryOperationTest.h
index 6eb759f2bea15be875837d487714a67da3df0b60..79c338cd527efdc5a78a997944e7e35694a4e10d 100644
--- a/Code/Mantid/Framework/Geometry/test/SymmetryOperationTest.h
+++ b/Code/Mantid/Framework/Geometry/test/SymmetryOperationTest.h
@@ -260,6 +260,21 @@ public:
 
     }
 
+    void testReducedVector()
+    {
+        SymmetryOperation fourThreeScrewAxis("x+3/4,-z+3/4,y+1/4");
+        TS_ASSERT_EQUALS(fourThreeScrewAxis.reducedVector(),  V3R(3, 0, 0) / 4);
+
+        SymmetryOperation glidePlaneC("x,-y,z+1/2");
+        TS_ASSERT_EQUALS(glidePlaneC.reducedVector(), V3R(0, 0, 1) / 2);
+
+        SymmetryOperation noTranslation("-x,-y,-z");
+        TS_ASSERT_EQUALS(noTranslation.reducedVector(), V3R(0, 0, 0));
+
+        SymmetryOperation noTranslationShifted("-x+1/8,-y+1/8,-z+1/8");
+        TS_ASSERT_EQUALS(noTranslationShifted.reducedVector(), V3R(0, 0, 0));
+    }
+
     void testPower()
     {
         SymmetryOperation mirror("x,-y,z");
diff --git a/Code/Mantid/Framework/Geometry/test/UnitCellTest.h b/Code/Mantid/Framework/Geometry/test/UnitCellTest.h
index 4dc36d03ee071175e592b832f4a551859ec3999e..2048b31e80c8d9a8738d2d9307aba077c27b8be9 100644
--- a/Code/Mantid/Framework/Geometry/test/UnitCellTest.h
+++ b/Code/Mantid/Framework/Geometry/test/UnitCellTest.h
@@ -133,7 +133,7 @@ public:
       std::stringstream msg;
       msg << cell;
       TS_ASSERT_EQUALS(msg.str(),
-                       "Lattice Parameters:    2.000    3.000    4.000   80.000   90.000  100.000");
+                       "Lattice Parameters:    2.000000    3.000000    4.000000   80.000000   90.000000  100.000000");
     }
 
     // w/ uncertainties
@@ -142,7 +142,7 @@ public:
       std::stringstream msg;
       msg << cell;
       TS_ASSERT_EQUALS(msg.str(),
-                       "Lattice Parameters:    2.000    3.000    4.000   80.000   90.000  100.000\nParameter Errors  :    1.000    2.000    3.000    4.000    5.000    6.000");
+                       "Lattice Parameters:    2.000000    3.000000    4.000000   80.000000   90.000000  100.000000\nParameter Errors  :    1.000000    2.000000    3.000000    4.000000    5.000000    6.000000");
     }
   }
 
diff --git a/Code/Mantid/Framework/Geometry/test/Vertex2DListTest.h b/Code/Mantid/Framework/Geometry/test/Vertex2DListTest.h
deleted file mode 100644
index 48a2c86902bde3642f3e6fb66ccf89e8fa8ccfc4..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/test/Vertex2DListTest.h
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef MANTID_GEOMETRY_VERTEX2DLISTTEST_H_
-#define MANTID_GEOMETRY_VERTEX2DLISTTEST_H_
-
-#include <cxxtest/TestSuite.h>
-#include "MantidGeometry/Math/Vertex2DList.h"
-#include "MantidKernel/Exception.h"
-
-using Mantid::Geometry::Vertex2DList;
-using Mantid::Kernel::V2D;
-
-class Vertex2DListTest : public CxxTest::TestSuite
-{
-public:
-
-  void test_Constructing_Does_Not_Throw()
-  {
-    TS_ASSERT_THROWS_NOTHING(Vertex2DList());
-  }
-
-  void test_Constructing_With_Size_Gives_N_Points_At_Origin()
-  {
-    Vertex2DList vertices(3);
-    for(size_t i = 0; i < 3; ++i)
-    {
-      TS_ASSERT_EQUALS(vertices[i], V2D());
-    }
-  }
-
-  void test_A_Non_Existing_Point_Can_Be_Added_To_The_List()
-  {
-    Vertex2DList vertices;
-    TS_ASSERT_THROWS_NOTHING(vertices.insert(V2D(1.0,0.0)));
-    TS_ASSERT_EQUALS(vertices.size(), 1);
-    TS_ASSERT_THROWS_NOTHING(vertices.insert(V2D(1.0,2.0)));
-    TS_ASSERT_EQUALS(vertices.size(), 2);
-  }
-  
-  void test_Adding_Existing_Point_Returns_Index_Of_Existing_Point()
-  {
-    Vertex2DList vertices;
-    TS_ASSERT_THROWS_NOTHING(vertices.insert(V2D(1.0,0.0)));
-    TS_ASSERT_THROWS_NOTHING(vertices.insert(V2D(1.0,1.0)));
-    
-    TS_ASSERT_EQUALS(vertices.insert(V2D(1.0,0.0)), 0);
-  }
-
-  void test_Operator_Access_For_Invalid_Throws()
-  {
-    Vertex2DList vertices;
-    TS_ASSERT_THROWS(vertices[0], Mantid::Kernel::Exception::IndexError);
-    vertices.insert(V2D(1.0,0.0));
-    TS_ASSERT_THROWS(vertices[1], Mantid::Kernel::Exception::IndexError);
-  }
-
-  void test_Operator_Access_Returns_Correct_Value_When_In_Range()
-  {
-    Vertex2DList vertices;
-    vertices.insert(V2D(1.0,0.0));
-    TS_ASSERT_EQUALS(vertices[0], V2D(1.0,0.0));
-    vertices.insert(V2D(2.0,3.0));
-    TS_ASSERT_EQUALS(vertices[1], V2D(2.0,3.0));
-  }
-    
-  void test_Operator_Can_Mutate_Given_Index()
-  {
-    Vertex2DList vertices(2);
-    vertices[1] = V2D(2.0,3.0);
-    TS_ASSERT_EQUALS(vertices[0], V2D());
-    TS_ASSERT_EQUALS(vertices[1], V2D(2.0,3.0));
-  }
-
-};
-
-
-#endif /* MANTID_GEOMETRY_VERTEX2DLISTTEST_H_ */
-
diff --git a/Code/Mantid/Framework/Geometry/test/Vertex2DTest.h b/Code/Mantid/Framework/Geometry/test/Vertex2DTest.h
deleted file mode 100644
index ec13ec0263a4b274872336195ecf721c0f13e903..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/Geometry/test/Vertex2DTest.h
+++ /dev/null
@@ -1,169 +0,0 @@
-#ifndef MANTID_GEOMETRY_VERTEX2DTEST_H_
-#define MANTID_GEOMETRY_VERTEX2DTEST_H_
-
-#include <cxxtest/TestSuite.h>
-#include "MantidGeometry/Math/Vertex2D.h"
-
-using Mantid::Geometry::Vertex2D;
-using Mantid::Geometry::Vertex2DIterator;
-using Mantid::Kernel::V2D;
-
-class Vertex2DTest : public CxxTest::TestSuite
-{
-public:
-
-  void test_Default_Construction()
-  {
-    Vertex2D origin;
-    TS_ASSERT_EQUALS(origin.X(), 0.0);
-    TS_ASSERT_EQUALS(origin.Y(), 0.0);
-  }
-
-  void test_Construction_With_Pt_Yields_Correct_Values()
-  {
-    Vertex2D vertex(V2D(5.1, 10.9));
-    TS_ASSERT_EQUALS(vertex.X(), 5.1);
-    TS_ASSERT_EQUALS(vertex.Y(), 10.9);
-  }
-
-  void test_Construction_With_XY_Values_Yields_Correct_Values()
-  {
-    Vertex2D vertex(5.1, 10.9);
-    TS_ASSERT_EQUALS(vertex.X(), 5.1);
-    TS_ASSERT_EQUALS(vertex.Y(), 10.9);
-  }
-
-  void test_Construction_Yields_Self_As_Next_And_Prev()
-  {
-    Vertex2D origin;
-    TS_ASSERT_EQUALS(origin.next(), &origin);
-    TS_ASSERT_EQUALS(origin.previous(), &origin);
-
-    Vertex2D vertex(5.1, 10.9);
-    TS_ASSERT_EQUALS(vertex.next(), &vertex);
-    TS_ASSERT_EQUALS(vertex.previous(), &vertex);
-
-    Vertex2D vertexPt(V2D(5.1, 10.9));
-    TS_ASSERT_EQUALS(vertexPt.next(), &vertexPt);
-    TS_ASSERT_EQUALS(vertexPt.previous(), &vertexPt);
-  }
-
-  void test_Copy_Gives_Correct_Values_In_Constructed_Object()
-  {
-    Vertex2D vertex(5.1, 10.9);
-    Vertex2D copy(vertex);
-    TS_ASSERT_EQUALS(copy.X(), 5.1);
-    TS_ASSERT_EQUALS(copy.Y(), 10.9);
-    TS_ASSERT_EQUALS(copy.next(), &copy);
-    TS_ASSERT_EQUALS(copy.previous(), &copy);   
-  }
-
-  void test_Assign_Gives_Correct_Values_On_LHS()
-  {
-    Vertex2D vertex(5.1, 10.9);
-    Vertex2D assigned;
-    assigned = vertex;
-    TS_ASSERT_EQUALS(assigned.X(), 5.1);
-    TS_ASSERT_EQUALS(assigned.Y(), 10.9);
-    TS_ASSERT_EQUALS(assigned.next(), &assigned);
-    TS_ASSERT_EQUALS(assigned.previous(), &assigned);   
-  }
-
-  void test_Vertex_As_Pt_Returns_Correct_Value()
-  {
-    Vertex2D vertex(5.1, 10.9);
-    TS_ASSERT_EQUALS(vertex.point(), V2D(5.1,10.9));
-    Vertex2D *vertex2 = new Vertex2D(5.1, 10.9);
-    TS_ASSERT_EQUALS(vertex2->point(), V2D(5.1,10.9));
-    delete vertex2;
-  }
-
-  void test_Insert_Yields_Next_As_Inserted_Vertex()
-  {
-    auto v2d = makeThreeVertexChain(true, false);
-    delete v2d->next()->next();
-    delete v2d->next();
-    delete v2d;
-  }
-
-   void test_Remove_Returns_An_Isolated_Vertex()
-   {
-     makeThreeVertexChain(false, true);
-   }
-
-   void test_Iteration_Advances_Correctly()
-   {
-     Vertex2D * start = makeThreeVertexChain(false,false);
-     Vertex2DIterator pIter(start);
-     TS_ASSERT_EQUALS(pIter.point(), V2D());
-     pIter.advance();
-     TS_ASSERT_EQUALS(pIter.point(), V2D(0.0,1.0));
-     pIter.advance();
-     TS_ASSERT_EQUALS(pIter.point(), V2D(1.0,1.0));
-     pIter.advance(); //Back to the start
-     TS_ASSERT_EQUALS(pIter.point(), V2D());
-     delete start->next()->next();
-     delete start->next();
-     delete start;
-   }
-
-private:
-  Vertex2D * makeThreeVertexChain(const bool doInsertTests, const bool doRemoveTests)
-  {
-    Vertex2D *origin = new Vertex2D;
-    Vertex2D *two = new Vertex2D(0.0,1.0);
-    Vertex2D *vertexTwo = origin->insert(two);
-    if( doInsertTests )
-    {
-      TS_ASSERT_EQUALS(vertexTwo, two);
-
-      TS_ASSERT_EQUALS(origin->next(), two);
-      TS_ASSERT_EQUALS(origin->previous(), two);
-      TS_ASSERT_EQUALS(vertexTwo->previous(), origin);
-      TS_ASSERT_EQUALS(vertexTwo->next(), origin);
-    }
-    //and a third
-    Vertex2D *third = new Vertex2D(1.0, 1.0);
-    Vertex2D *vertexThree = two->insert(third);
-    if( doInsertTests )
-    {
-      TS_ASSERT_EQUALS(vertexThree, third);
-
-      TS_ASSERT_EQUALS(origin->next(), two);
-      TS_ASSERT_EQUALS(origin->previous(), third);
-      TS_ASSERT_EQUALS(vertexTwo->previous(), origin);
-      TS_ASSERT_EQUALS(vertexTwo->next(), third);
-      TS_ASSERT_EQUALS(vertexThree->previous(), two);
-      TS_ASSERT_EQUALS(vertexThree->next(), origin);
-    }
-
-    if( doRemoveTests )
-    {
-      Vertex2D *removedOne = vertexThree->remove();
-      TS_ASSERT_EQUALS(removedOne, vertexThree);
-      TS_ASSERT_EQUALS(origin->next(), two);
-      TS_ASSERT_EQUALS(origin->previous(), two);
-      TS_ASSERT_EQUALS(vertexTwo->previous(), origin);
-      TS_ASSERT_EQUALS(vertexTwo->next(), origin);
-
-      Vertex2D *removedTwo = vertexTwo->remove();
-      UNUSED_ARG(removedTwo);
-      TS_ASSERT_EQUALS(origin->next(), origin);
-      TS_ASSERT_EQUALS(origin->previous(), origin);
-      delete origin;
-      delete third;
-      delete two;
-      return NULL;
-    }
-    else
-    {
-      return origin;
-    }
-
-  }
-
-};
-
-
-#endif /* MANTID_GEOMETRY_VERTEX2DTEST_H_ */
-
diff --git a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogGetDataFiles.h b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogGetDataFiles.h
index 500d03578921beaff68b59ae83619e6d6837a1ae..8fc4d484ba2c1f1107af0354ed4b51a5cc2ef189 100644
--- a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogGetDataFiles.h
+++ b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogGetDataFiles.h
@@ -2,7 +2,7 @@
 #define MANTID_ICAT_CATALOGGETDATAFILES_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidICat/DllConfig.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogGetDataSets.h b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogGetDataSets.h
index 96432a64f098d38e4651f9f34ba8e1bb9b37958a..081591d0a8877dd27e754edfe3c40039c6725461 100644
--- a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogGetDataSets.h
+++ b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogGetDataSets.h
@@ -2,7 +2,7 @@
 #define MANTID_ICAT_CATALOGGETDATASETS_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidICat/DllConfig.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogListInstruments.h b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogListInstruments.h
index 295812a8652dcbb7951348fef95fc9d7134874c7..e6ca4d1a376389e8bdd1d5dac8263f3418cea58a 100644
--- a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogListInstruments.h
+++ b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogListInstruments.h
@@ -2,7 +2,7 @@
 #define MANTID_ICAT_CATALOGLISTINSTRUMENTS_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidICat/DllConfig.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogMyDataSearch.h b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogMyDataSearch.h
index d7aab301086c2dc330fcd67b9a529d1a77bd4942..e5aba93869515099df2580488d5f01266c96c568 100644
--- a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogMyDataSearch.h
+++ b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogMyDataSearch.h
@@ -2,7 +2,7 @@
 #define MANTID_ICAT_CATALOGMYDATASEARCH_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidICat/DllConfig.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogSearch.h b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogSearch.h
index cd7032a4b6207b04fc655245c1cef3d1c100b5bb..6f113c32088b20619e5319801f3a76f945c3136e 100644
--- a/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogSearch.h
+++ b/Code/Mantid/Framework/ICat/inc/MantidICat/CatalogSearch.h
@@ -2,7 +2,7 @@
 #define MANTID_ICAT_CATALOGSEARCH_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidICat/CatalogSearchParam.h"
 #include "MantidICat/DllConfig.h"
 
diff --git a/Code/Mantid/Framework/ICat/inc/MantidICat/ICat3/ICat3Helper.h b/Code/Mantid/Framework/ICat/inc/MantidICat/ICat3/ICat3Helper.h
index f58b247ebaf4907c42bd69fa11f31c9808dd93b5..9b117233b784fa594c4aad7725699468798cca74 100644
--- a/Code/Mantid/Framework/ICat/inc/MantidICat/ICat3/ICat3Helper.h
+++ b/Code/Mantid/Framework/ICat/inc/MantidICat/ICat3/ICat3Helper.h
@@ -4,7 +4,7 @@
 #include "MantidICat/ICat3/GSoapGenerated/ICat3ICATPortBindingProxy.h"
 #include "MantidICat/CatalogSearchParam.h"
 #include "MantidAPI/CatalogSession.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidAPI/TableRow.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/ICat/src/CatalogGetDataFiles.cpp b/Code/Mantid/Framework/ICat/src/CatalogGetDataFiles.cpp
index 088c6840d8b4c88bacc717620c628aa0d648858b..6b43c660b5d46a7d61d96adce9eb117ac4336af9 100644
--- a/Code/Mantid/Framework/ICat/src/CatalogGetDataFiles.cpp
+++ b/Code/Mantid/Framework/ICat/src/CatalogGetDataFiles.cpp
@@ -1,6 +1,7 @@
 #include "MantidICat/CatalogGetDataFiles.h"
 #include "MantidKernel/MandatoryValidator.h"
 #include "MantidAPI/CatalogManager.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceProperty.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/ICat/src/CatalogGetDataSets.cpp b/Code/Mantid/Framework/ICat/src/CatalogGetDataSets.cpp
index 69a6fe7a2bd9de04117709d839443efb76b1e7b8..51afdfa29b9d073717944cf18a51cc23577a5244 100644
--- a/Code/Mantid/Framework/ICat/src/CatalogGetDataSets.cpp
+++ b/Code/Mantid/Framework/ICat/src/CatalogGetDataSets.cpp
@@ -1,6 +1,7 @@
 #include "MantidICat/CatalogGetDataSets.h"
 #include "MantidKernel/MandatoryValidator.h"
 #include "MantidAPI/CatalogManager.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceProperty.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/ICat/src/CatalogMyDataSearch.cpp b/Code/Mantid/Framework/ICat/src/CatalogMyDataSearch.cpp
index 083b718c56756216b95707db91a41bf6405c664f..7e0d2331ce14f3a42a77e2a518b1bc8f99159962 100644
--- a/Code/Mantid/Framework/ICat/src/CatalogMyDataSearch.cpp
+++ b/Code/Mantid/Framework/ICat/src/CatalogMyDataSearch.cpp
@@ -1,5 +1,6 @@
 #include "MantidICat/CatalogMyDataSearch.h"
 #include "MantidAPI/CatalogManager.h"
+#include "MantidAPI/ITableWorkspace.h"
 
 namespace Mantid {
 namespace ICat {
diff --git a/Code/Mantid/Framework/ICat/src/CatalogSearch.cpp b/Code/Mantid/Framework/ICat/src/CatalogSearch.cpp
index 75852a2a32f3b8ba7bcc08b4e58d583f6f3fcc31..b33fb5734010e366868a09653109e1c4bd4a66b8 100644
--- a/Code/Mantid/Framework/ICat/src/CatalogSearch.cpp
+++ b/Code/Mantid/Framework/ICat/src/CatalogSearch.cpp
@@ -11,6 +11,7 @@ GCC_DIAG_ON(literal-suffix)
 #endif
 
 #include "MantidAPI/CatalogManager.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceProperty.h"
 #include "MantidKernel/BoundedValidator.h"
 #include "MantidKernel/DateValidator.h"
diff --git a/Code/Mantid/Framework/ICat/src/ICat3/ICat3Helper.cpp b/Code/Mantid/Framework/ICat/src/ICat3/ICat3Helper.cpp
index fd06ff81d408fbfb64645c20f6e91b7064c6136c..aa84be9890a908748010c585f5cf1c920e6dbb5a 100644
--- a/Code/Mantid/Framework/ICat/src/ICat3/ICat3Helper.cpp
+++ b/Code/Mantid/Framework/ICat/src/ICat3/ICat3Helper.cpp
@@ -8,6 +8,7 @@ GCC_DIAG_OFF(literal-suffix)
 #endif
 #include "MantidICat/ICat3/ICat3Helper.h"
 #include "MantidICat/ICat3/ICat3ErrorHandling.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidKernel/Logger.h"
 #include <iomanip>
 #include <time.h>
diff --git a/Code/Mantid/Framework/ICat/src/ICat4/ICat4Catalog.cpp b/Code/Mantid/Framework/ICat/src/ICat4/ICat4Catalog.cpp
index f4d1cb43619a8f47247bbe4796af8fc4709f8dbb..fbca654a7492b7816fa954cbe9c79ca66950e29e 100644
--- a/Code/Mantid/Framework/ICat/src/ICat4/ICat4Catalog.cpp
+++ b/Code/Mantid/Framework/ICat/src/ICat4/ICat4Catalog.cpp
@@ -1,3 +1,4 @@
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/CatalogFactory.h"
 #include "MantidAPI/Progress.h"
 #include "MantidAPI/WorkspaceFactory.h"
diff --git a/Code/Mantid/Framework/ICat/test/CompositeCatalogTest.h b/Code/Mantid/Framework/ICat/test/CompositeCatalogTest.h
index e46eeed6c99dc2b592832ef48aa6c9e2aa72ef65..bfba14dd460c230d8cac42b4881bad2868591978 100644
--- a/Code/Mantid/Framework/ICat/test/CompositeCatalogTest.h
+++ b/Code/Mantid/Framework/ICat/test/CompositeCatalogTest.h
@@ -4,6 +4,7 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidAPI/CompositeCatalog.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidICat/CatalogSearchParam.h"
 
diff --git a/Code/Mantid/Framework/Kernel/CMakeLists.txt b/Code/Mantid/Framework/Kernel/CMakeLists.txt
index 277ca71f2b05cd685c8754dd910c04f07349f8a5..cf14f7859a9a3293ff60e2bcb60bd852b4828374 100644
--- a/Code/Mantid/Framework/Kernel/CMakeLists.txt
+++ b/Code/Mantid/Framework/Kernel/CMakeLists.txt
@@ -465,6 +465,7 @@ endif ()
 set ( IGNORE_PARAVIEW "0" )
 set ( QTPLUGINS "." )
 set ( UPDATE_INSTRUMENT_DEFINTITIONS "0" )
+set ( CHECK_FOR_NEW_MANTID_VERSION "0" )
 set ( ENABLE_USAGE_REPORTS "0" )
 set ( PYTHONPLUGIN_DIRS "${MANTID_ROOT}/Framework/PythonInterface/plugins" )
 set ( DATADIRS ${ExternalData_BINARY_ROOT}/Testing/Data/UnitTest;${ExternalData_BINARY_ROOT}/Testing/Data/DocTest;${MANTID_ROOT}/instrument )
@@ -543,6 +544,7 @@ endif ()
 set ( PLUGINS ${MANTID_ROOT}/plugins )
 set ( PYTHONPLUGIN_DIRS "${PLUGINS}/python" )
 set ( UPDATE_INSTRUMENT_DEFINTITIONS "1" )
+set ( CHECK_FOR_NEW_MANTID_VERSION "1" )
 set ( ENABLE_USAGE_REPORTS "1" )
 set ( DATADIRS "" )
 set ( MANTIDPUBLISHER "http://upload.mantidproject.org/scriptrepository/payload/publish" )
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/ArrayProperty.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/ArrayProperty.h
index 61dec5ca7a0435ac4c4993eb2316d83c1243eff6..c24cdc880f56fd825e46c57878b06a9eb28351c3 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/ArrayProperty.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/ArrayProperty.h
@@ -78,6 +78,11 @@ public:
                                           IValidator_sptr(new NullValidator),
                                           direction) {}
   /** Constructor from which you can set the property's values through a string
+   * 
+   * The constructor of the base class is called with an empty vector for the default values
+   * The values are set directly from the string. Since the default values are never initialized, isDefault
+   * will return false for any non-empty string input.
+   * 
    *  @param name ::      The name to assign to the property
    *  @param values ::    A comma-separated string containing the values to
    * store in the property
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/ConfigService.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/ConfigService.h
index 85f5fb9e7ba40e1887b0aeacea5c9013a94beccf..a4ad893d6b20f738b20979d2482c17870317905e 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/ConfigService.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/ConfigService.h
@@ -20,6 +20,7 @@
 //----------------------------------------------------------------------
 /// @cond Exclude from doxygen documentation
 namespace Poco {
+class Channel;
 namespace Util {
 class PropertyFileConfiguration;
 class SystemConfiguration;
@@ -206,6 +207,8 @@ public:
   const std::vector<std::string> &getInstrumentDirectories() const;
   /// Get instrument search directory
   const std::string getInstrumentDirectory() const;
+  ///get the vtp file directory
+  const std::string getVTPFileDirectory();
   //@}
 
   /// Load facility information from instrumentDir/Facilities.xml file
@@ -221,6 +224,14 @@ public:
   /// Set the default facility
   void setFacility(const std::string &facilityName);
 
+  
+  ///Sets the log level priority for the File log channel
+  void setFileLogLevel(int logLevel);
+  ///Sets the log level priority for the Console log channel
+  void setConsoleLogLevel(int logLevel);
+  ///Sets the log level priority for the selected Filter log channel
+  void setFilterChannelLogLevel(const std::string& filterChannelName, int logLevel);
+
   /// Look for an instrument
   const InstrumentInfo &
   getInstrument(const std::string &instrumentName = "") const;
@@ -260,7 +271,7 @@ private:
   void loadConfig(const std::string &filename, const bool append = false);
   /// Read a file and place its contents into the given string
   bool readFile(const std::string &filename, std::string &contents) const;
-  /// Provies a string of a default configuration
+  /// Provides a string of a default configuration
   std::string defaultConfig() const;
   /// Writes out a fresh user properties file
   void createUserPropertiesFile() const;
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/DateTimeValidator.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/DateTimeValidator.h
index a56d9e65a0f79cc25ecf1ee238bd87dfd38c0572..63b07945f74badffcde5db0364de799974d9e924 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/DateTimeValidator.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/DateTimeValidator.h
@@ -32,12 +32,19 @@ namespace Kernel {
 */
 class MANTID_KERNEL_DLL DateTimeValidator : public TypedValidator<std::string> {
 public:
+  DateTimeValidator();
+
   /// Clone the current state
   IValidator_sptr clone() const;
 
+  void allowEmpty(const bool &);
+
 private:
   /// Checks the value is valid
   std::string checkValidity(const std::string &value) const;
+
+  /// Allows for an empty string to be accepted as input
+  bool m_allowedEmpty;
 };
 }
 }
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/FilterChannel.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/FilterChannel.h
index 52bed99e49306c4cd0b23113376bf4b918071b87..caaf4c2fc930103b5353652e36eee209fe424ab7 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/FilterChannel.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/FilterChannel.h
@@ -59,8 +59,10 @@ public:
 
   /// Returns the channel pointer.
   Channel *getChannel() { return _channel; }
-
-  /// Attaches a channel, which may not be null.
+  
+  /// set the priority cutoff by integer.
+  const FilterChannel &setPriority(const int &priority);
+  /// Set the priority cutoff by string.
   const FilterChannel &setPriority(const std::string &priority);
 
   /// Returns the integer representation of the priority
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/ListValidator.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/ListValidator.h
index e0cb6a15674580eee5a75d95eb886df5fadcff35..57e9585b0de930b1fa2e8f187ce47dfa2d51ebd4 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/ListValidator.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/ListValidator.h
@@ -9,6 +9,7 @@
 #include <boost/lexical_cast.hpp>
 #endif
 #include <vector>
+#include <set>
 #include <map>
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/Logger.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/Logger.h
index 5c408d6a4d5198ed2ef8e96d64a3ba5ae2fd7eb2..e6285ff800fe4a84b1ec6402f26d76d011c276db 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/Logger.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/Logger.h
@@ -9,7 +9,7 @@
 #include <Poco/Message.h>
 
 #include <iosfwd>
-#include <set>
+
 #include <string>
 
 //----------------------------------------------------------------------
@@ -71,6 +71,8 @@ public:
   // Our logger's priority types are the same as POCO's Message's types.
   typedef Poco::Message::Priority Priority;
 
+  static const std::string* PriorityNames;
+
   /// Constructor giving the logger name
   Logger(const std::string &name);
   /// Destructor
@@ -104,6 +106,12 @@ public:
   /// Logs at debug level
   std::ostream &debug();
 
+  /// Log a message at a given priority
+  void log(const std::string &message, Logger::Priority priority);
+
+  /// gets the correct log stream for a priority
+  std::ostream &getLogStream(Logger::Priority priority);
+
   /// Logs the given message at debug level, followed by the data in buffer.
   void dump(const std::string &msg, const void *buffer, std::size_t length);
 
@@ -146,10 +154,6 @@ private:
   /// Disable assignment
   Logger &operator=(const Logger &);
 
-  /// Log a message at a given priority
-  void log(const std::string &message, Logger::Priority priority);
-  /// gets the correct log stream for a priority
-  std::ostream &getLogStream(Logger::Priority priority);
   /// Return a log stream set with the given priority
   Priority applyLevelOffset(Priority proposedLevel);
 
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/Memory.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/Memory.h
index ad94db51ce2ccfa56e5339f2923922faceef4d01..4bb7be30c529e99f0366b7b8e84ad4d1d095ad02 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/Memory.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/Memory.h
@@ -57,6 +57,8 @@ public:
   std::size_t residentMem() const;
   std::size_t virtualMem() const;
   std::size_t reservedMem() const;
+  std::size_t getCurrentRSS() const;
+  std::size_t getPeakRSS() const;
   double getFreeRatio() const;
 
 private:
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/PropertyManagerOwner.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/PropertyManagerOwner.h
index 5716ad9c57f0c0843ececbca0ac9efa53882b240..7a095862e9ce2aad426bcb01da21b7910b545aa2 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/PropertyManagerOwner.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/PropertyManagerOwner.h
@@ -71,15 +71,17 @@ public:
   bool validateProperties() const;
   size_t propertyCount() const;
 
-  std::string getPropertyValue(const std::string &name) const;
+  virtual std::string getPropertyValue(const std::string &name) const;
   const std::vector<Property *> &getProperties() const;
 
   /// Get the value of a property
-  TypedValue getProperty(const std::string &name) const;
+  virtual TypedValue getProperty(const std::string &name) const;
   /// Return the property manager serialized as a string.
   virtual std::string asString(bool withDefaultValues = false,
                                char separator = ',') const;
 
+  bool isDefault(const std::string &name) const;
+
   /// Removes the property from management
   void removeProperty(const std::string &name, const bool delproperty = true);
   /// Clears all properties under management
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/V2D.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/V2D.h
index fda164331ed94b0c7c2e06354b23694cd18c44db..38307c56f8e99d574e7779852b3990399f3f8b59 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/V2D.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/V2D.h
@@ -5,7 +5,7 @@
 // Includes
 //-----------------------------------------------------------------------------
 #include "MantidKernel/DllConfig.h"
-#include <ostream>
+#include <iosfwd>
 
 namespace Mantid {
 namespace Kernel {
@@ -48,7 +48,7 @@ public:
   /**
    * Constructor taking an x and y value.
    */
-  inline V2D(const double x, const double y) : m_x(x), m_y(y) {}
+  inline V2D(double x, double y) : m_x(x), m_y(y) {}
   /**
    * X position
    * @returns The X position
diff --git a/Code/Mantid/Framework/Kernel/src/ConfigService.cpp b/Code/Mantid/Framework/Kernel/src/ConfigService.cpp
index 31a1e27689a917fe938b1f93de5305d195672a5f..925866b71b79ff490c64a0ad266848e4cf04cf26 100644
--- a/Code/Mantid/Framework/Kernel/src/ConfigService.cpp
+++ b/Code/Mantid/Framework/Kernel/src/ConfigService.cpp
@@ -4,7 +4,6 @@
 
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/MantidVersion.h"
-#include "MantidKernel/ParaViewVersion.h"
 #include "MantidKernel/Strings.h"
 #include "MantidKernel/Logger.h"
 #include "MantidKernel/FilterChannel.h"
@@ -29,6 +28,10 @@
 #ifdef _WIN32
 #pragma warning(disable : 4250)
 #endif
+#include <Poco/Logger.h>
+#include <Poco/Channel.h>
+#include <Poco/SplitterChannel.h>
+#include <Poco/LoggingRegistry.h>
 #include <Poco/PipeStream.h>
 #include <Poco/StreamCopier.h>
 
@@ -187,14 +190,6 @@ ConfigServiceImpl::ConfigServiceImpl()
     }
   }
 
-  // Assert that the appdata and the instrument subdirectory exists
-  std::string appDataDir = getAppDataDir();
-  Poco::Path path(appDataDir);
-  path.pushDirectory("instrument");
-  Poco::File file(path);
-  // createdirectories will fail gracefully if it is already present
-  file.createDirectories();
-
   // Fill the list of possible relative path keys that may require conversion to
   // absolute paths
   m_ConfigPaths.insert(
@@ -203,6 +198,7 @@ ConfigServiceImpl::ConfigServiceImpl()
   m_ConfigPaths.insert(std::make_pair("pvplugins.directory", true));
   m_ConfigPaths.insert(std::make_pair("mantidqt.plugins.directory", true));
   m_ConfigPaths.insert(std::make_pair("instrumentDefinition.directory", true));
+  m_ConfigPaths.insert(std::make_pair("instrumentDefinition.vtpDirectory", true));
   m_ConfigPaths.insert(std::make_pair("groupingFiles.directory", true));
   m_ConfigPaths.insert(std::make_pair("maskFiles.directory", true));
   m_ConfigPaths.insert(std::make_pair("colormaps.directory", true));
@@ -253,6 +249,16 @@ ConfigServiceImpl::ConfigServiceImpl()
 #ifndef MPI_BUILD // There is no logging to file by default in MPI build
   g_log.information() << "Logging to: " << m_logFilePath << std::endl;
 #endif
+
+  // Assert that the appdata and the instrument subdirectory exists
+  std::string appDataDir = getAppDataDir();
+  Poco::Path path(appDataDir);
+  path.pushDirectory("instrument");
+  Poco::File file(path);
+  // createdirectories will fail gracefully if it is already present
+  file.createDirectories();
+  Poco::File vtpDir(getVTPFileDirectory());
+  vtpDir.createDirectories();
 }
 
 /** Private Destructor
@@ -992,7 +998,7 @@ void ConfigServiceImpl::getKeysRecursive(const std::string &root,
   }
 }
 
-/**
+  /**
  * Recursively gets a list of all config options.
  *
  * This function is needed as Boost Python does not like calling function with
@@ -1634,7 +1640,24 @@ ConfigServiceImpl::getInstrumentDirectories() const {
 const std::string ConfigServiceImpl::getInstrumentDirectory() const {
   return m_InstrumentDirs[m_InstrumentDirs.size() - 1];
 }
-
+/**
+ * Return the search directory for vtp files
+ * @returns a path
+ */
+const std::string ConfigServiceImpl::getVTPFileDirectory() {
+  // Determine the search directory for XML instrument definition files (IDFs)
+  std::string directoryName = getString("instrumentDefinition.vtpDirectory");
+  
+  if (directoryName.empty())
+  {
+    Poco::Path path(getAppDataDir());
+    path.makeDirectory();
+    path.pushDirectory("instrument");
+    path.pushDirectory("geometryCache");
+    directoryName = path.toString();
+  }
+  return directoryName;
+}
 /**
  * Fills the internal cache of instrument definition directories
  */
@@ -1927,6 +1950,59 @@ Kernel::ProxyInfo &ConfigServiceImpl::getProxy(const std::string &url) {
   return m_proxyInfo;
 }
 
+/** Sets the log level priority for the File log channel
+* @param logLevel the integer value of the log level to set, 1=Critical, 7=Debug
+*/
+void ConfigServiceImpl::setFileLogLevel(int logLevel)
+{
+  setFilterChannelLogLevel("fileFilterChannel",logLevel);
+}
+/** Sets the log level priority for the Console log channel
+* @param logLevel the integer value of the log level to set, 1=Critical, 7=Debug
+*/
+void ConfigServiceImpl::setConsoleLogLevel(int logLevel)
+{
+  setFilterChannelLogLevel("consoleFilterChannel",logLevel);
+}
+
+
+/** Sets the Log level for a filter channel
+* @param filterChannelName the channel name of the filter channel to change
+* @param logLevel the integer value of the log level to set, 1=Critical, 7=Debug
+* @throws std::invalid_argument if the channel name is incorrect or it is not a filterChannel
+*/
+void ConfigServiceImpl::setFilterChannelLogLevel(const std::string& filterChannelName, int logLevel)
+{
+  Poco::Channel* channel = NULL;
+  try
+  {
+    channel = Poco::LoggingRegistry::defaultRegistry().channelForName(filterChannelName);
+  }
+  catch(Poco::NotFoundException&)
+  {
+    throw std::invalid_argument(filterChannelName + " not found in the Logging Registry");
+  }
+
+  auto *filterChannel = dynamic_cast<Poco::FilterChannel*>(channel);
+  if (filterChannel)
+  {
+    filterChannel->setPriority(logLevel);      
+    //set root level if required
+    int rootLevel = Poco::Logger::root().getLevel();
+    if (rootLevel < logLevel)
+    {
+        Mantid::Kernel::Logger::setLevelForAll(logLevel);
+    }
+    g_log.log(filterChannelName + " log channel set to " + Logger::PriorityNames[logLevel] + " priority",static_cast<Logger::Priority>(logLevel));
+  }
+  else
+  {
+    throw std::invalid_argument(filterChannelName + " was not a filter channel");
+  }
+}
+
+
+
 /// \cond TEMPLATE
 template DLLExport int ConfigServiceImpl::getValue(const std::string &,
                                                    double &);
diff --git a/Code/Mantid/Framework/Kernel/src/DateAndTime.cpp b/Code/Mantid/Framework/Kernel/src/DateAndTime.cpp
index 546dd9294e202eff489d1510e03e64342a821986..6a3189f807723f5ae9013bbb9c075d527c5e057f 100644
--- a/Code/Mantid/Framework/Kernel/src/DateAndTime.cpp
+++ b/Code/Mantid/Framework/Kernel/src/DateAndTime.cpp
@@ -12,16 +12,19 @@ namespace {
 Logger g_log("DateAndTime");
 
 /// Max allowed nanoseconds in the time; 2^62-1
-int64_t MAX_NANOSECONDS = 4611686018427387903LL;
+const int64_t MAX_NANOSECONDS = 4611686018427387903LL;
 
 /// Max allowed seconds in the time
-int64_t MAX_SECONDS = 4611686017LL;
+const int64_t MAX_SECONDS = 4611686017LL;
 
 /// Min allowed nanoseconds in the time; -2^62+1
-int64_t MIN_NANOSECONDS = -4611686018427387903LL;
+const int64_t MIN_NANOSECONDS = -4611686018427387903LL;
 
 /// Min allowed seconds in the time
-int64_t MIN_SECONDS = -4611686017LL;
+const int64_t MIN_SECONDS = -4611686017LL;
+
+/// Number of nanoseconds in one second
+const int64_t NANO_PER_SEC = 1000000000LL;
 }
 
 namespace DateAndTimeHelpers {
@@ -188,7 +191,7 @@ DateAndTime::DateAndTime(const int64_t seconds, const int64_t nanoseconds) {
   else if (seconds <= MIN_SECONDS)
     _nanoseconds = MIN_NANOSECONDS;
   else
-    _nanoseconds = static_cast<int64_t>(seconds * 1000000000LL + nanoseconds);
+    _nanoseconds = seconds * NANO_PER_SEC + nanoseconds;
 }
 
 //------------------------------------------------------------------------------------------------
@@ -199,12 +202,15 @@ DateAndTime::DateAndTime(const int64_t seconds, const int64_t nanoseconds) {
  * @param nanoseconds :: nanoseconds to add to the number of seconds
  */
 DateAndTime::DateAndTime(const int32_t seconds, const int32_t nanoseconds) {
-  if (seconds >= MAX_SECONDS)
+  const int64_t seconds_64bit = static_cast<int64_t>(seconds);
+
+  if (seconds_64bit >= MAX_SECONDS)
     _nanoseconds = MAX_NANOSECONDS;
-  else if (seconds <= MIN_SECONDS)
+  else if (seconds_64bit <= MIN_SECONDS)
     _nanoseconds = MIN_NANOSECONDS;
   else
-    _nanoseconds = static_cast<int64_t>(seconds * 1000000000LL + nanoseconds);
+    _nanoseconds = seconds_64bit * NANO_PER_SEC +
+                   static_cast<int64_t>(nanoseconds);
 }
 
 //===========================================================================================
@@ -532,7 +538,7 @@ int DateAndTime::second() const { return to_ptime().time_of_day().seconds(); }
  * @return the nanoseconds
  */
 int DateAndTime::nanoseconds() const {
-  return static_cast<int>(_nanoseconds % 1000000000);
+  return static_cast<int>(_nanoseconds % NANO_PER_SEC);
 }
 
 //------------------------------------------------------------------------------------------------
diff --git a/Code/Mantid/Framework/Kernel/src/DateTimeValidator.cpp b/Code/Mantid/Framework/Kernel/src/DateTimeValidator.cpp
index 28737dad34bb05c0b42e6bc03409d2ccd085f640..70e0d6f1a7eacc3f597f3e72479e52e72fa3b7d6 100644
--- a/Code/Mantid/Framework/Kernel/src/DateTimeValidator.cpp
+++ b/Code/Mantid/Framework/Kernel/src/DateTimeValidator.cpp
@@ -14,6 +14,16 @@ IValidator_sptr DateTimeValidator::clone() const {
   return boost::make_shared<DateTimeValidator>(*this);
 }
 
+DateTimeValidator::DateTimeValidator() { m_allowedEmpty = false; }
+
+/**
+ * Sets the value of the m_allowEmpty variable
+ * @param allow The new value of m_allowEmpty
+ */
+void DateTimeValidator::allowEmpty(const bool &allow) {
+  m_allowedEmpty = allow;
+}
+
 /**
  *  @param value A string to check for an ISO formatted timestamp
  *  @return An empty string if the value is valid or an string containing
@@ -23,14 +33,18 @@ std::string DateTimeValidator::checkValidity(const std::string &value) const {
   // simply pass off the work DateAndTime constructor
   // the DateAndTime::stringIsISO8601 does not seem strict enough, it accepts
   // empty strings & strings of letters!
-  std::string error("");
-  try {
-    DateAndTime timestamp(value);
-    UNUSED_ARG(timestamp);
-  } catch (std::invalid_argument &exc) {
-    error = exc.what();
+  if (m_allowedEmpty && value.empty()) {
+    return "";
+  } else {
+    std::string error("");
+    try {
+      DateAndTime timestamp(value);
+      UNUSED_ARG(timestamp);
+    } catch (std::invalid_argument &exc) {
+      error = exc.what();
+    }
+    return error;
   }
-  return error;
 }
 }
 }
diff --git a/Code/Mantid/Framework/Kernel/src/FilterChannel.cpp b/Code/Mantid/Framework/Kernel/src/FilterChannel.cpp
index 947df5427e9826aa3d93cb9d89987efbc770de00..8b5331f0d4166a09b2d4fee4b661d58d14117971 100644
--- a/Code/Mantid/Framework/Kernel/src/FilterChannel.cpp
+++ b/Code/Mantid/Framework/Kernel/src/FilterChannel.cpp
@@ -50,6 +50,12 @@ void FilterChannel::close() {
   }
 }
 
+const FilterChannel &FilterChannel::setPriority(const int &priority) {
+  _priority = priority;
+  
+  return *this;
+}
+
 const FilterChannel &FilterChannel::setPriority(const std::string &priority) {
   // take a local copy of the input
   std::string workPriority = priority;
diff --git a/Code/Mantid/Framework/Kernel/src/Logger.cpp b/Code/Mantid/Framework/Kernel/src/Logger.cpp
index 9f576555e68e18be2e5e20226d23ea4132f637b8..79898446305f199d419b5dbee0eb96094582e30f 100644
--- a/Code/Mantid/Framework/Kernel/src/Logger.cpp
+++ b/Code/Mantid/Framework/Kernel/src/Logger.cpp
@@ -24,6 +24,19 @@ namespace {
 Poco::NullOutputStream NULL_STREAM;
 }
 
+static const std::string PriorityNames_data[] = {
+    "PRIO_FATAL",
+    "PRIO_CRITICAL",
+    "PRIO_ERROR",
+    "PRIO_WARNING",
+    "PRIO_NOTICE",
+    "PRIO_INFORMATION",
+    "PRIO_DEBUG",
+    "PRIO_TRACE"
+};
+const std::string* Logger::PriorityNames = PriorityNames_data;
+
+
 /** Constructor
  * @param name :: The class name invoking this logger
  */
diff --git a/Code/Mantid/Framework/Kernel/src/Memory.cpp b/Code/Mantid/Framework/Kernel/src/Memory.cpp
index ad360465db7b7217055e2c18b2b1854d3e5061f1..a1f11272d0ac8ca2f642115b8bd1e441366ca495 100644
--- a/Code/Mantid/Framework/Kernel/src/Memory.cpp
+++ b/Code/Mantid/Framework/Kernel/src/Memory.cpp
@@ -9,10 +9,13 @@
 #include <unistd.h>
 #include <fstream>
 #include <malloc.h>
+#include <stdio.h>
+#include <sys/resource.h>
 #endif
 #ifdef __APPLE__
 #include <malloc/malloc.h>
 #include <sys/sysctl.h>
+#include <mach/mach.h>
 #include <mach/mach_host.h>
 #include <mach/task.h>
 #endif
@@ -130,13 +133,13 @@ void process_mem_usage(size_t &vm_usage, size_t &resident_set) {
  */
 bool read_mem_info(size_t &sys_avail, size_t &sys_total) {
   std::ifstream file("/proc/meminfo");
-  std::string line;
+  string line;
   int values_found(0);
   // Need to set this to zero
   sys_avail = 0;
   while (getline(file, line)) {
     std::istringstream is(line);
-    std::string tag;
+    string tag;
     long value(0);
     is >> tag >> value;
     if (!is)
@@ -411,7 +414,7 @@ size_t MemoryStats::availMem() const { return this->avail_memory; }
  * Returns the memory usage of the current process in kiB
  * @returns An unsigned containing the memory used by the current process in kiB
  */
-std::size_t MemoryStats::residentMem() const { return this->res_usage; }
+size_t MemoryStats::residentMem() const { return this->res_usage; }
 
 /**
  * Returns the virtual memory usage of the current process in kiB
@@ -419,7 +422,7 @@ std::size_t MemoryStats::residentMem() const { return this->res_usage; }
  * process in kiB
  */
 
-std::size_t MemoryStats::virtualMem() const { return this->vm_usage; }
+size_t MemoryStats::virtualMem() const { return this->vm_usage; }
 
 /**
  * Returns the reserved memory that has not been factored into the available
@@ -432,7 +435,7 @@ std::size_t MemoryStats::virtualMem() const { return this->vm_usage; }
  * memory calculation
  * @returns An extra area of memory that can still be allocated.
  */
-std::size_t MemoryStats::reservedMem() const {
+size_t MemoryStats::reservedMem() const {
 #ifdef _WIN32
   MEMORY_BASIC_INFORMATION info; // Windows structure
   char *addr = NULL;
@@ -486,6 +489,96 @@ std::ostream &operator<<(std::ostream &out, const MemoryStats &stats) {
   return out;
 }
 
+/**
+ * @returns the peak (maximum so far) resident set size (physical
+ * memory use) measured in bytes, or zero if the value cannot be
+ * determined on this OS.
+ *
+ * This was adopted from
+ *http://nadeausoftware.com/articles/2012/07/c_c_tip_how_get_process_resident_set_size_physical_memory_use
+ */
+size_t MemoryStats::getPeakRSS() const {
+#if defined(_WIN32)
+  /* Windows -------------------------------------------------- */
+  PROCESS_MEMORY_COUNTERS info;
+  GetProcessMemoryInfo(GetCurrentProcess(), &info, sizeof(info));
+  return (size_t)info.PeakWorkingSetSize;
+
+#elif(defined(_AIX) || defined(__TOS__AIX__)) ||                               \
+    (defined(__sun__) || defined(__sun) ||                                     \
+     defined(sun) && (defined(__SVR4) || defined(__svr4__)))
+  /* AIX and Solaris ------------------------------------------ */
+  struct psinfo psinfo;
+  int fd = -1;
+  if ((fd = open("/proc/self/psinfo", O_RDONLY)) == -1)
+    return (size_t)0L; /* Can't open? */
+  if (read(fd, &psinfo, sizeof(psinfo)) != sizeof(psinfo)) {
+    close(fd);
+    return (size_t)0L; /* Can't read? */
+  }
+  close(fd);
+  return (size_t)(psinfo.pr_rssize * 1024L);
+
+#elif defined(__unix__) || defined(__unix) || defined(unix) ||                 \
+    (defined(__APPLE__) && defined(__MACH__))
+  /* BSD, Linux, and OSX -------------------------------------- */
+  struct rusage rusage;
+  getrusage(RUSAGE_SELF, &rusage);
+#if defined(__APPLE__) && defined(__MACH__)
+  return (size_t)rusage.ru_maxrss;
+#else
+  return (size_t)(rusage.ru_maxrss * 1024L);
+#endif
+
+#else
+  /* Unknown OS ----------------------------------------------- */
+  return (size_t)0L; /* Unsupported. */
+#endif
+}
+
+/**
+ * @returns the current resident set size (physical memory use) measured
+ * in bytes, or zero if the value cannot be determined on this OS.
+ *
+ * This was adopted from
+ *http://nadeausoftware.com/articles/2012/07/c_c_tip_how_get_process_resident_set_size_physical_memory_use
+ */
+size_t MemoryStats::getCurrentRSS() const {
+#if defined(_WIN32)
+  /* Windows -------------------------------------------------- */
+  PROCESS_MEMORY_COUNTERS info;
+  GetProcessMemoryInfo(GetCurrentProcess(), &info, sizeof(info));
+  return (size_t)info.WorkingSetSize;
+
+#elif defined(__APPLE__) && defined(__MACH__)
+  /* OSX ------------------------------------------------------ */
+  struct mach_task_basic_info info;
+  mach_msg_type_number_t infoCount = MACH_TASK_BASIC_INFO_COUNT;
+  if (task_info(mach_task_self(), MACH_TASK_BASIC_INFO, (task_info_t)&info,
+                &infoCount) != KERN_SUCCESS)
+    return (size_t)0L; /* Can't access? */
+  return (size_t)info.resident_size;
+
+#elif defined(__linux__) || defined(__linux) || defined(linux) ||              \
+    defined(__gnu_linux__)
+  /* Linux ---------------------------------------------------- */
+  long rss = 0L;
+  FILE *fp = NULL;
+  if ((fp = fopen("/proc/self/statm", "r")) == NULL)
+    return (size_t)0L; /* Can't open? */
+  if (fscanf(fp, "%*s%20ld", &rss) != 1) {
+    fclose(fp);
+    return (size_t)0L; /* Can't read? */
+  }
+  fclose(fp);
+  return (size_t)rss * (size_t)sysconf(_SC_PAGESIZE);
+
+#else
+  /* AIX, BSD, Solaris, and Unknown OS ------------------------ */
+  return (size_t)0L; /* Unsupported. */
+#endif
+}
+
 // -------------------------- concrete instantiations
 template DLLExport string memToString<uint32_t>(const uint32_t);
 template DLLExport string memToString<uint64_t>(const uint64_t);
diff --git a/Code/Mantid/Framework/Kernel/src/PropertyManagerOwner.cpp b/Code/Mantid/Framework/Kernel/src/PropertyManagerOwner.cpp
index 3bf120830249e62a3bc1a2e0ad10f78b6ab8fe92..c440d449bd288679ffdd79efb8b0281f4e6498b8 100644
--- a/Code/Mantid/Framework/Kernel/src/PropertyManagerOwner.cpp
+++ b/Code/Mantid/Framework/Kernel/src/PropertyManagerOwner.cpp
@@ -158,6 +158,15 @@ PropertyManagerOwner::getProperty(const std::string &name) const {
   return m_properties->getProperty(name);
 }
 
+/**
+ * @param name
+ * @return True if the property is its default value.
+ */
+bool PropertyManagerOwner::isDefault(const std::string &name) const {
+  return m_properties->getPointerToProperty(name)->isDefault();
+}
+
+
 /**
 * Return the property manager serialized as a string.
 * The format is propName=value,propName=value,propName=value
diff --git a/Code/Mantid/Framework/Kernel/src/V2D.cpp b/Code/Mantid/Framework/Kernel/src/V2D.cpp
index 350daad046c5d46c910ff449e32dad24b961ff61..aa0c3e4dc83b687607dc01708fe419195fcfb5d7 100644
--- a/Code/Mantid/Framework/Kernel/src/V2D.cpp
+++ b/Code/Mantid/Framework/Kernel/src/V2D.cpp
@@ -6,6 +6,8 @@
 #include "MantidKernel/Tolerance.h"
 #include "MantidKernel/Exception.h"
 
+#include <ostream>
+
 namespace Mantid {
 namespace Kernel {
 //-----------------------------------------------------------------------------
diff --git a/Code/Mantid/Framework/Kernel/src/VectorHelper.cpp b/Code/Mantid/Framework/Kernel/src/VectorHelper.cpp
index cb08b58efed92266595a719e9424ac1109e6b17f..71a917e2628e76750d6f9e67d0b0ee217bc6fe55 100644
--- a/Code/Mantid/Framework/Kernel/src/VectorHelper.cpp
+++ b/Code/Mantid/Framework/Kernel/src/VectorHelper.cpp
@@ -366,7 +366,9 @@ void convertToBinCentre(const std::vector<double> &bin_edges,
  * that the first and last bin centers are in the center of the
  * first and last bins, respectively. For a particular set of
  * bin centers, this may not be correct, but it is the best that
- * can be done, lacking any other information.
+ * can be done, lacking any other information. For an empty input vector, an
+ * empty output is returned. For an input vector of size 1, i.e., a single bin,
+ * there is no information about a proper bin size, so it is set to 1.0.
  *
  * @param bin_centers :: A vector of values specifying bin centers.
  * @param bin_edges   :: An output vector of values specifying bin
@@ -376,8 +378,21 @@ void convertToBinCentre(const std::vector<double> &bin_edges,
 void convertToBinBoundary(const std::vector<double> &bin_centers,
                           std::vector<double> &bin_edges) {
   const std::vector<double>::size_type n = bin_centers.size();
-  if (bin_edges.size() != (n + 1)) {
-    bin_edges.resize(n + 1);
+
+  // Special case empty input: output is also empty
+  if (n == 0) {
+    bin_edges.resize(0);
+    return;
+  }
+
+  bin_edges.resize(n + 1);
+
+  // Special case input of size one: we have no means of guessing the bin size,
+  // set it to 1.
+  if (n == 1) {
+    bin_edges[0] = bin_centers[0] - 0.5;
+    bin_edges[1] = bin_centers[0] + 0.5;
+    return;
   }
 
   for (size_t i = 0; i < n - 1; ++i) {
diff --git a/Code/Mantid/Framework/Kernel/test/ConfigServiceTest.h b/Code/Mantid/Framework/Kernel/test/ConfigServiceTest.h
index d1347dbab9ce84c362c91a952263002e7d2d808a..3d6a9ccf293488b15fbd16c0d328142a751ac4e4 100644
--- a/Code/Mantid/Framework/Kernel/test/ConfigServiceTest.h
+++ b/Code/Mantid/Framework/Kernel/test/ConfigServiceTest.h
@@ -102,6 +102,16 @@ public:
     TS_ASSERT_THROWS_NOTHING(log1.debug("a debug string with offset 999 should be trace"));
   }
 
+  void testLogLevelFiltering()
+  {
+    TS_ASSERT_THROWS_NOTHING(ConfigService::Instance().setConsoleLogLevel(4));
+    TS_ASSERT_THROWS_NOTHING(ConfigService::Instance().setFileLogLevel(4));
+    TSM_ASSERT_THROWS("A false channel name for setFilterChannelLogLevel did not throw",
+      ConfigService::Instance().setFilterChannelLogLevel("AnIncorrectChannelName",4),std::invalid_argument);
+    TSM_ASSERT_THROWS("A correct channel name, but not a filterChannel for setFilterChannelLogLevel did not throw",
+      ConfigService::Instance().setFilterChannelLogLevel("consoleChannel",4),std::invalid_argument);
+  }
+
   void testDefaultFacility()
   {
     TS_ASSERT_THROWS_NOTHING(ConfigService::Instance().getFacility() );
diff --git a/Code/Mantid/Framework/Kernel/test/DateTimeValidatorTest.h b/Code/Mantid/Framework/Kernel/test/DateTimeValidatorTest.h
index 0accbdb2f0f9652188a7fe8f0acbf53590fa15b0..d7cca51e53fef5266ac21d7d3d4733caa15603de 100644
--- a/Code/Mantid/Framework/Kernel/test/DateTimeValidatorTest.h
+++ b/Code/Mantid/Framework/Kernel/test/DateTimeValidatorTest.h
@@ -34,12 +34,19 @@ public:
 
   //---------------------------- Failure cases --------------------------------------
 
-  void test_empty_string_is_invalid()
+  void test_empty_string_is_invalid_when_allowed_is_false()
   {
     DateTimeValidator validator;
+	validator.allowEmpty(false);
     TS_ASSERT_EQUALS("Error interpreting string '' as a date/time.", validator.isValid(""));
   }
 
+  void test_empty_string_is_valid_when_allowed_is_true(){
+    DateTimeValidator validator;
+	validator.allowEmpty(true);
+    TS_ASSERT_EQUALS("", validator.isValid(""));
+  }
+
   void test_text_string_is_invalid()
   {
     DateTimeValidator validator;
diff --git a/Code/Mantid/Framework/Kernel/test/FilterChannelTest.h b/Code/Mantid/Framework/Kernel/test/FilterChannelTest.h
index c41ceebea5970e11e2e4141f6b188f61affedd1e..8190fa85cdac827f1df289540916affe23b4c839 100644
--- a/Code/Mantid/Framework/Kernel/test/FilterChannelTest.h
+++ b/Code/Mantid/Framework/Kernel/test/FilterChannelTest.h
@@ -19,15 +19,11 @@ using Mantid::TestChannel;
 
 class FilterChannelTest : public CxxTest::TestSuite
 {
-public: 
-
+public:
   void testContructor()
   {
-    TS_ASSERT_THROWS_NOTHING
-      (
-	Poco::FilterChannel a;
-	)
-      }
+    TS_ASSERT_THROWS_NOTHING(Poco::FilterChannel a;)
+  }
 
   void testContructorDefaults()
   {
@@ -127,7 +123,24 @@ public:
     a.log(msg);
     TS_ASSERT_EQUALS(tChannel->list().size(),1);
   }
-
+  void testSimpleLogMessagesByPriority()
+  {
+    //initialise the channel
+    boost::shared_ptr<TestChannel> tChannel(new TestChannel);
+    Poco::FilterChannel a;
+    a.addChannel(tChannel.get());
+    Poco::Message msg;
+    a.setPriority(Poco::Message::Priority::PRIO_INFORMATION);
+    msg.setPriority(Poco::Message::Priority::PRIO_NOTICE);
+    a.log(msg);
+    TSM_ASSERT_EQUALS("Message of greater priority failed to get through",tChannel->list().size(),1);
+    msg.setPriority(Poco::Message::Priority::PRIO_INFORMATION);
+    a.log(msg);
+    TSM_ASSERT_EQUALS("Message of equal priority failed to get through",tChannel->list().size(),2);
+    msg.setPriority(Poco::Message::Priority::PRIO_DEBUG);
+    a.log(msg);
+    TSM_ASSERT_EQUALS("Message of lesser priority managed to get through",tChannel->list().size(),2);
+  }
   void testLogMessagesByPriority()
   {
     //initialise the channel
@@ -163,7 +176,7 @@ public:
         msg.setPriority(static_cast<Poco::Message::Priority>(msgPriority));
 
         size_t previousMessageCount = tChannel->list().size();
-	a.log(msg);
+	      a.log(msg);
         size_t addedMessageCount = tChannel->list().size() - previousMessageCount;
 
         if ((channelPriority >= msgPriority)&&(addedMessageCount==1))
diff --git a/Code/Mantid/Framework/Kernel/test/VectorHelperTest.h b/Code/Mantid/Framework/Kernel/test/VectorHelperTest.h
index b5502438b7e1d23a7f318d6c2879881ff81a84bf..cd5800a6f23a66d32a73be0db9f2914da41b8ec2 100644
--- a/Code/Mantid/Framework/Kernel/test/VectorHelperTest.h
+++ b/Code/Mantid/Framework/Kernel/test/VectorHelperTest.h
@@ -111,6 +111,37 @@ public:
     TS_ASSERT_EQUALS(axis, expectedAxis);
   }
 
+  void test_ConvertToBinBoundary_EmptyInputVector() {
+    std::vector<double> bin_centers;
+    std::vector<double> bin_edges;
+    VectorHelper::convertToBinBoundary(bin_centers, bin_edges);
+
+    TS_ASSERT_EQUALS(bin_edges.size(), 0);
+  }
+
+  void test_ConvertToBinBoundary_Size1InputVector() {
+    std::vector<double> bin_centers = boost::assign::list_of(0.4);
+    std::vector<double> bin_edges;
+    VectorHelper::convertToBinBoundary(bin_centers, bin_edges);
+
+    TS_ASSERT_EQUALS(bin_edges.size(), 2);
+    // In lack of a better guess for the bin width it is set to 1.0.
+    TS_ASSERT_DELTA(bin_edges[0], -0.1, 1e-12);
+    TS_ASSERT_DELTA(bin_edges[1], 0.9, 1e-12);
+  }
+
+  void test_ConvertToBinBoundary_Size2InputVector() {
+    std::vector<double> bin_centers = boost::assign::list_of(0.5)(1.5);
+    std::vector<double> bin_edges;
+
+    VectorHelper::convertToBinBoundary(bin_centers, bin_edges);
+
+    TS_ASSERT_EQUALS(bin_edges.size(), 3);
+    TS_ASSERT_DELTA(bin_edges[0], 0.0, 1e-12);
+    TS_ASSERT_DELTA(bin_edges[1], 1.0, 1e-12);
+    TS_ASSERT_DELTA(bin_edges[2], 2.0, 1e-12);
+  }
+
   // TODO: More tests of other methods
 
   void test_splitStringIntoVector()
diff --git a/Code/Mantid/Framework/LiveData/inc/MantidLiveData/LoadLiveData.h b/Code/Mantid/Framework/LiveData/inc/MantidLiveData/LoadLiveData.h
index 3dfc97f3bffd036560a2195e8615cd563cbcd845..90df78e104f44bd44f60c5fb4b4cd5b886b54ed2 100644
--- a/Code/Mantid/Framework/LiveData/inc/MantidLiveData/LoadLiveData.h
+++ b/Code/Mantid/Framework/LiveData/inc/MantidLiveData/LoadLiveData.h
@@ -4,7 +4,7 @@
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
 #include "MantidLiveData/LiveDataAlgorithm.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 namespace Mantid {
 namespace LiveData {
diff --git a/Code/Mantid/Framework/MDAlgorithms/CMakeLists.txt b/Code/Mantid/Framework/MDAlgorithms/CMakeLists.txt
index 713d54044439989426f8c4ebee92aecccf08fd62..dfc67920a50be4bf4263c6f2bd8703f57dd3d57f 100644
--- a/Code/Mantid/Framework/MDAlgorithms/CMakeLists.txt
+++ b/Code/Mantid/Framework/MDAlgorithms/CMakeLists.txt
@@ -9,7 +9,6 @@ set ( SRC_FILES
 	src/BooleanBinaryOperationMD.cpp
 	src/BoxControllerSettingsAlgorithm.cpp
 	src/CalculateCoverageDGS.cpp
-	src/CalculateReflectometryQBase.cpp
 	src/CentroidPeaksMD.cpp
 	src/CentroidPeaksMD2.cpp
 	src/CloneMDWorkspace.cpp
@@ -19,6 +18,7 @@ set ( SRC_FILES
 	src/ConvToMDHistoWS.cpp
 	src/ConvToMDSelector.cpp
 	src/ConvertCWPDMDToSpectra.cpp
+	src/ConvertCWSDExpToMomentum.cpp
 	src/ConvertMDHistoToMatrixWorkspace.cpp
 	src/ConvertSpiceDataToRealSpace.cpp
 	src/ConvertToDetectorFaceMD.cpp
@@ -96,7 +96,6 @@ set ( SRC_FILES
 	src/Quantification/ResolutionConvolvedCrossSection.cpp
 	src/Quantification/SimulateResolutionConvolvedModel.cpp
 	src/QueryMDWorkspace.cpp
-	src/ReflectometryTransform.cpp
 	src/ReflectometryTransformKiKf.cpp
 	src/ReflectometryTransformP.cpp
 	src/ReflectometryTransformQxQz.cpp
@@ -129,13 +128,13 @@ set ( INC_FILES
 	inc/MantidMDAlgorithms/BooleanBinaryOperationMD.h
 	inc/MantidMDAlgorithms/BoxControllerSettingsAlgorithm.h
 	inc/MantidMDAlgorithms/CalculateCoverageDGS.h
-	inc/MantidMDAlgorithms/CalculateReflectometryQBase.h
 	inc/MantidMDAlgorithms/CentroidPeaksMD.h
 	inc/MantidMDAlgorithms/CentroidPeaksMD2.h
 	inc/MantidMDAlgorithms/CloneMDWorkspace.h
 	inc/MantidMDAlgorithms/CompareMDWorkspaces.h
 	inc/MantidMDAlgorithms/ConvToMDBase.h
 	inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h
+	inc/MantidMDAlgorithms/ConvertCWSDExpToMomentum.h
 	inc/MantidMDAlgorithms/ConvertMDHistoToMatrixWorkspace.h
 	inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
 	inc/MantidMDAlgorithms/ConvertToDetectorFaceMD.h
@@ -215,7 +214,6 @@ set ( INC_FILES
 	inc/MantidMDAlgorithms/Quantification/ResolutionConvolvedCrossSection.h
 	inc/MantidMDAlgorithms/Quantification/SimulateResolutionConvolvedModel.h
 	inc/MantidMDAlgorithms/QueryMDWorkspace.h
-	inc/MantidMDAlgorithms/ReflectometryTransform.h
 	inc/MantidMDAlgorithms/ReflectometryTransformKiKf.h
 	inc/MantidMDAlgorithms/ReflectometryTransformP.h
 	inc/MantidMDAlgorithms/ReflectometryTransformQxQz.h
@@ -252,6 +250,7 @@ set ( TEST_FILES
 	CloneMDWorkspaceTest.h
 	CompareMDWorkspacesTest.h
 	ConvertCWPDMDToSpectraTest.h
+	ConvertCWSDExpToMomentumTest.h
 	ConvertEventsToMDTest.h
 	ConvertMDHistoToMatrixWorkspaceTest.h
 	ConvertSpiceDataToRealSpaceTest.h
@@ -321,8 +320,8 @@ set ( TEST_FILES
 	ReflectometryTransformQxQzTest.h
 	ResolutionConvolvedCrossSectionTest.h
 	SaveIsawQvectorTest.h
-	SaveMDTest.h
 	SaveMD2Test.h
+	SaveMDTest.h
 	SaveZODSTest.h
 	SetMDUsingMaskTest.h
 	SimulateResolutionConvolvedModelTest.h
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/BinMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/BinMD.h
index 74d7c1809a94dc3cfe22908650982e84d3e3ec75..ed2e93e86f6df44b944712e16bc52da10a357635 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/BinMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/BinMD.h
@@ -3,7 +3,7 @@
 
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/CoordTransform.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 #include "MantidGeometry/MDGeometry/MDImplicitFunction.h"
 #include "MantidKernel/System.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/BinaryOperationMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/BinaryOperationMD.h
index 574408c9b7f0f4e4936f5f8294cbc47ea856c7a6..53ef93539efcffa03d9870463aca4159e9afde6e 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/BinaryOperationMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/BinaryOperationMD.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_BINARYOPERATIONMD_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 #include "MantidDataObjects/MDHistoWorkspace.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CalculateReflectometryQBase.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CalculateReflectometryQBase.h
deleted file mode 100644
index 88e876b73da75cb438d1e67c67187a27dc418c2d..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CalculateReflectometryQBase.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef MANTID_MDALGORITHMS_CALCULATE_REFLECTOMETRYQ_BASE_H_
-#define MANTID_MDALGORITHMS_CALCULATE_REFLECTOMETRYQ_BASE_H_
-
-#include "MantidKernel/System.h"
-
-namespace Mantid {
-namespace Geometry {
-namespace MDGeometry {
-class IMDDimension;
-}
-}
-
-namespace MDAlgorithms {
-/**
-Base class for reflectometry Q transformations
-*/
-class DLLExport CalculateReflectometryQBase {
-protected:
-  const double to_radians_factor;
-  CalculateReflectometryQBase();
-
-protected:
-  ~CalculateReflectometryQBase();
-};
-}
-}
-
-#endif
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CentroidPeaksMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CentroidPeaksMD.h
index fa73a0247052dacc6ed7e2959a8a94508bc46cc5..1ef651492930db3e3ea33af552dedab1cc47df86 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CentroidPeaksMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CentroidPeaksMD.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/PeaksWorkspace.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CentroidPeaksMD2.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CentroidPeaksMD2.h
index c5fbb8920faec0cbc3dcfc98476de15b72d48d5b..dd873e6ff1a15a3b5550784624fb5f9915a2dd24 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CentroidPeaksMD2.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CentroidPeaksMD2.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/PeaksWorkspace.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvToMDBase.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvToMDBase.h
index b9d2dff43b2f2d52940a9579fc9f28b0fd0d1129..531a857eef5444cbbabbb67253792c3f7995206f 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvToMDBase.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvToMDBase.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_CONVERTMD_BASE_H
 
 #include "MantidAPI/ExperimentInfo.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/NumericAxis.h"
 #include "MantidAPI/Progress.h"
 #include "MantidKernel/Logger.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h
index e4597c2cab4f8adc1ae97340a1b1783fb65e26d8..5dd6f15313415e93cf605093baa1bce5e52f764e 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 
 namespace Mantid {
 namespace MDAlgorithms {
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDExpToMomentum.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDExpToMomentum.h
new file mode 100644
index 0000000000000000000000000000000000000000..e64581677f0ea3ee1e0f444a814cba7efd9d7161
--- /dev/null
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDExpToMomentum.h
@@ -0,0 +1,112 @@
+#ifndef MANTID_MDALGORITHMS_CONVERTCWSDEXPTOMOMENTUM_H_
+#define MANTID_MDALGORITHMS_CONVERTCWSDEXPTOMOMENTUM_H_
+
+#include "MantidKernel/System.h"
+#include "MantidAPI/Algorithm.h"
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidDataObjects/MDEventInserter.h"
+#include "MantidKernel/Matrix.h"
+
+namespace Mantid {
+namespace MDAlgorithms {
+
+/** ConvertCWSDExpToMomentum : TODO: DESCRIPTION
+
+  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 ConvertCWSDExpToMomentum : public API::Algorithm {
+public:
+  ConvertCWSDExpToMomentum();
+  virtual ~ConvertCWSDExpToMomentum();
+
+  /// Algorithm's name
+  virtual const std::string name() const { return "ConvertCWSDExpToMomentum"; }
+
+  /// Summary of algorithms purpose
+  virtual const std::string summary() const {
+    return "Load and convert a set of files in an HB3A experiment.";
+  }
+
+  /// Algorithm's version
+  virtual int version() const { return (1); }
+
+  /// Algorithm's category for identification
+  virtual const std::string category() const {
+    return "Diffraction;DataHandling\\Text";
+  }
+
+private:
+  void init();
+  void exec();
+
+  void addMDEvents();
+
+  void convertSpiceMatrixToMomentumMDEvents(API::MatrixWorkspace_sptr dataws,
+                                            const detid_t &startdetid,
+                                            const int runnumber);
+
+  /// Convert |Q| with detector position to Q_sample
+  Kernel::V3D convertToQSample(const Kernel::V3D &samplePos,
+                               const Kernel::V3D &ki, const Kernel::V3D &detPos,
+                               const double &momentum,
+                               std::vector<Mantid::coord_t> &qSample,
+                               const Kernel::DblMatrix &rotationMatrix);
+
+  API::IMDEventWorkspace_sptr createExperimentMDWorkspace();
+
+  bool getInputs(std::string &errmsg);
+
+  API::MatrixWorkspace_sptr loadSpiceData(const std::string &filename,
+                                          bool &loaded, std::string &errmsg);
+
+  void parseDetectorTable(std::vector<Kernel::V3D> &vec_detpos,
+                          std::vector<detid_t> &vec_detid);
+
+  void setupTransferMatrix(API::MatrixWorkspace_sptr dataws,
+                           Kernel::DblMatrix &rotationMatrix);
+
+  API::ITableWorkspace_sptr m_expDataTableWS;
+  API::ITableWorkspace_sptr m_detectorListTableWS;
+  API::IMDEventWorkspace_sptr m_outputWS;
+  Geometry::Instrument_sptr m_virtualInstrument;
+
+  Kernel::V3D m_samplePos;
+  Kernel::V3D m_sourcePos;
+
+  size_t m_iColFilename;
+  size_t m_iColStartDetID;
+
+  std::vector<double> m_extentMins;
+  std::vector<double> m_extentMaxs;
+  std::vector<size_t> m_numBins;
+
+  /// Data directory
+  std::string m_dataDir;
+  /// Flag to use m_dataDir
+  bool m_isBaseName;
+};
+
+} // namespace MDAlgorithms
+} // namespace Mantid
+
+#endif /* MANTID_MDALGORITHMS_CONVERTCWSDEXPTOMOMENTUM_H_ */
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
index d66d5f11de9e68774d1188cc48000c1e73fed904..d0410105bfabdf41b09fe1b51908a7e646e7a6fa 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
@@ -5,7 +5,7 @@
 #include "MantidAPI/Algorithm.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidKernel/FileDescriptor.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 
 namespace Mantid {
 namespace MDAlgorithms {
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertToDiffractionMDWorkspace.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertToDiffractionMDWorkspace.h
index 13a0aa98ca1709b211eb086f4e012066a1375cd1..52788ff64c84f8382c9e9d851ae317814b1583e7 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertToDiffractionMDWorkspace.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertToDiffractionMDWorkspace.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_CONVERTTODIFFRACTIONMDWORKSPACE_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidDataObjects/MDEventFactory.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/EvaluateMDFunction.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/EvaluateMDFunction.h
index 0b5bdca43790e84b1c36e7d7c91fbd9d5f25f099..ca5362f10eca4ed397921f21538199b32a8d97af 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/EvaluateMDFunction.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/EvaluateMDFunction.h
@@ -3,6 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
+#include "MantidAPI/DeprecatedAlgorithm.h"
 
 namespace Mantid {
 namespace MDAlgorithms {
@@ -30,7 +31,8 @@ namespace MDAlgorithms {
   File change history is stored at: <https://github.com/mantidproject/mantid>
   Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class DLLExport EvaluateMDFunction : public API::Algorithm {
+class DLLExport EvaluateMDFunction : public API::Algorithm,
+                                     public API::DeprecatedAlgorithm {
 public:
   EvaluateMDFunction();
   virtual ~EvaluateMDFunction();
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/FindPeaksMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/FindPeaksMD.h
index 5e776882c26e5d4e94d55747c611dbbc317fe53d..fbfdfd958bb86bda2cc11bc1dcbc3b2a393ea92d 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/FindPeaksMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/FindPeaksMD.h
@@ -3,7 +3,7 @@
 
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/ExperimentInfo.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/Progress.h"
 #include "MantidDataObjects/PeaksWorkspace.h"
 #include "MantidKernel/System.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h
index ebabf6f48f046b14b2c8aec08efe9c56358f2c30..3ac327232c38381b28fbc334489650ac7b4dcf97 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h
@@ -3,8 +3,8 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid
 {
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegrateEllipsoids.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegrateEllipsoids.h
index 07fede619029299275132b776484ee14e07f2050..e391ac2a93906cd0509a535d0b95df17723bb736 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegrateEllipsoids.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegrateEllipsoids.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_INTEGRATE_ELLIPSOIDS_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidMDAlgorithms/MDWSDescription.h"
 #include "MantidMDAlgorithms/Integrate3DEvents.h"
 #include "MantidMDAlgorithms/UnitsConversionHelper.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegratePeaksMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegratePeaksMD.h
index f7b8c249fc70f2a2948d8501a82049df57a1d595..507922aa79e954703f5e3f435a7aefe472831453 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegratePeaksMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegratePeaksMD.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_INTEGRATEPEAKSMD_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/PeaksWorkspace.h"
 #include "MantidKernel/System.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegratePeaksMD2.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegratePeaksMD2.h
index bc851103b597ad58255b8034efdb568e6b7950b3..9372f07f83adee2a6c950c358bf9ecc012d1b688 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegratePeaksMD2.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/IntegratePeaksMD2.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_INTEGRATEPEAKSMD_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/PeaksWorkspace.h"
 #include "MantidKernel/System.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadILLAscii.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadILLAscii.h
index a9e3e59367c08eb05b07f88d139e28286a10f7d6..1dc316f1b983314d9dcca11747b77ebdb3f391bf 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadILLAscii.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadILLAscii.h
@@ -6,7 +6,7 @@
 
 #include "MantidMDAlgorithms/LoadILLAsciiHelper.h"
 #include "MantidAPI/IFileLoader.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 
 namespace Mantid {
 namespace MDAlgorithms {
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadMD.h
index 488f0dfce2faadecbc54f8dda94e74d060e93895..67b0fe24edc4d639121d17b7b0108754a6e4be19 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadMD.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_LOADMD_H_
 
 #include "MantidAPI/IFileLoader.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidKernel/System.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 #include <boost/scoped_ptr.hpp>
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfInterface.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfInterface.h
index 624caad868dee5f8d46c801efb57198fe692534b..e06c8936695df7b024d4e52c5c9dfcbbc178d7d4 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfInterface.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfInterface.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_MDALGORITHMS_IMD_TRANSFORMATION_H
 #define MANTID_MDALGORITHMS_IMD_TRANSFORMATION_H
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include "MantidGeometry/MDGeometry/MDTypes.h"
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDWSDescription.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDWSDescription.h
index 884b90cb8445275fb14d96b1b36d39c071dfe59c..0f38390bbebb6a645731660a7901e4b66676ca09 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDWSDescription.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDWSDescription.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_WS_DESCRIPTION_H
 
 #include "MantidAPI/LogManager.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/MatrixWorkspace.h"
 
 #include "MantidGeometry/Crystal/OrientedLattice.h"
@@ -10,6 +10,7 @@
 #include "MantidKernel/Logger.h"
 #include "MantidKernel/PhysicalConstants.h"
 #include "MantidKernel/PropertyManager.h"
+#include "MantidKernel/SpecialCoordinateSystem.h"
 
 #include "MantidDataObjects/MDEvent.h"
 #include "MantidDataObjects/TableWorkspace.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MergeMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MergeMD.h
index 07818057fa82d5d12661f81ea18fe3232dd47654..a16ad86b1ca8ca4c59c71b003ee9f9acbe08bc20 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MergeMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MergeMD.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_MERGEMD_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 #include "MantidMDAlgorithms/BoxControllerSettingsAlgorithm.h"
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MergeMDFiles.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MergeMDFiles.h
index e168b75547861aec11a49c752debe681cbfec58b..9eec45e81adf0945eae1bb9b5d71c3be5ef63793 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MergeMDFiles.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MergeMDFiles.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 #include "MantidDataObjects/MDBoxFlatTree.h"
 #include <nexus/NeXusFile.hpp>
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/PlusMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/PlusMD.h
index bd4207f2396e82aad2b79d55f25141fe3df476a8..4afdf64a78fa386c87dc30fa69c4cd57c5cb2525 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/PlusMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/PlusMD.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 #include "MantidMDAlgorithms/BinaryOperationMD.h"
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/MDResolutionConvolution.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/MDResolutionConvolution.h
index 3be84661565fd8ac0f3fc307d23f19cff6c0de35..12514badb705ac48be13de17ec13eba7640458ff 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/MDResolutionConvolution.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/MDResolutionConvolution.h
@@ -25,7 +25,7 @@
 #include "MantidKernel/System.h"
 #include "MantidKernel/ClassMacros.h"
 #include "MantidAPI/ParamFunction.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/IMDIterator.h"
 #include "MantidAPI/ExperimentInfo.h"
 #include "MantidMDAlgorithms/Quantification/ForegroundModel.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ResolutionConvolvedCrossSection.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ResolutionConvolvedCrossSection.h
index 6282a173f261f8cbacd3d8d7ff6cac78bf33008d..f9637071b826f5e87550bbb5960c6a92d3a8201a 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ResolutionConvolvedCrossSection.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ResolutionConvolvedCrossSection.h
@@ -23,7 +23,7 @@
   Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
 #include "MantidAPI/IFunctionMD.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/ParamFunction.h"
 #include "MantidDataObjects/MDEvent.h"
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransform.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransform.h
deleted file mode 100644
index e2a46f13001712cb67fba5167f8176ae681d34d0..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransform.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef MANTID_MDALGORITHMS_REFLECTOMETRYMDTRANFORM_H_
-#define MANTID_MDALGORITHMS_REFLECTOMETRYMDTRANFORM_H_
-
-#include "MantidAPI/BoxController.h"
-#include "MantidAPI/IEventWorkspace.h"
-#include "MantidAPI/IMDEventWorkspace.h"
-
-#include "MantidDataObjects/MDEventFactory.h"
-
-namespace Mantid {
-namespace API {
-class MatrixWorkspace;
-}
-namespace MDAlgorithms {
-
-/** ReflectometryMDTransform : Abstract type for reflectometry transforms to
- MDWorkspaces. This is a Strategy Design Pattern.
-
- @date 2012-05-29
-
- Copyright &copy; 2012 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 ReflectometryTransform {
-
-protected:
-  const size_t m_nbinsx;
-  const size_t m_nbinsz;
-
-  boost::shared_ptr<DataObjects::MDEventWorkspace2Lean>
-  createMDWorkspace(Geometry::IMDDimension_sptr,
-                    Geometry::IMDDimension_sptr,
-                    API::BoxController_sptr boxController) const;
-
-public:
-  // Execute the strategy to produce a transformed, output MDWorkspace
-  virtual Mantid::API::IMDEventWorkspace_sptr
-  executeMD(Mantid::API::MatrixWorkspace_const_sptr inputWs,
-            Mantid::API::BoxController_sptr boxController) const = 0;
-
-  // Execute the strategy to produce a transformed, output group of Matrix (2D)
-  // Workspaces
-  virtual Mantid::API::MatrixWorkspace_sptr
-  execute(Mantid::API::MatrixWorkspace_const_sptr inputWs) const = 0;
-
-  virtual ~ReflectometryTransform();
-  ReflectometryTransform(int numberOfBinsQx, int numberOfBinsQz);
-};
-
-/// Create a new x-axis for the output workspace
-MantidVec createXAxis(Mantid::API::MatrixWorkspace *const ws,
-                      const double gradQx, const double cxToUnit,
-                      const size_t nBins, const std::string &caption,
-                      const std::string &units);
-
-/// Create a new y(vertical)-axis for the output workspace
-void createVerticalAxis(Mantid::API::MatrixWorkspace *const ws,
-                        const MantidVec &xAxisVec, const double gradQz,
-                        const double cyToUnit, const size_t nBins,
-                        const std::string &caption, const std::string &units);
-
-// Helper typedef for scoped pointer of this type.
-typedef boost::shared_ptr<ReflectometryTransform> ReflectometryTransform_sptr;
-}
-}
-#endif
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformKiKf.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformKiKf.h
index 7377059cb3937ca13705461c0bf3d534974e35f6..97e05e56583dd8955d8283c669b27667be4868b4 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformKiKf.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformKiKf.h
@@ -5,10 +5,11 @@
 
 #include "MantidKernel/ClassMacros.h"
 
-#include "MantidAPI/IMDEventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
-#include "MantidMDAlgorithms/ReflectometryTransform.h"
+#include "MantidDataObjects/CalculateReflectometry.h"
+#include "MantidDataObjects/ReflectometryTransform.h"
 
 namespace Mantid {
 namespace MDAlgorithms {
@@ -16,17 +17,56 @@ namespace MDAlgorithms {
 class CalculateReflectometryK: Calculation type for converting to ki or kf given
 a theta value (in degrees) and a wavelength
 */
-class CalculateReflectometryK {
+class CalculateReflectometryK : public DataObjects::CalculateReflectometry {
 private:
-  double m_theta;
+  double m_sin_theta_i;
+  double m_sin_theta_f;
 
 public:
-  CalculateReflectometryK(double theta)
-      : m_theta(theta) {}
+  /**
+   Constructor
+   */
+  CalculateReflectometryK() : m_sin_theta_i(0.0), m_sin_theta_f(0.0) {}
+
+  /**
+   Destructor
+   */
   ~CalculateReflectometryK(){};
-  double execute(const double &wavelength) {
+
+  /**
+   Setter for the incident theta value require for the calculation. Internally
+   pre-calculates and caches to cos theta for speed.
+   @param thetaIncident: incident theta value in degrees
+   */
+  void setThetaIncident(double thetaIncident) {
+    m_sin_theta_i = sin(to_radians_factor * thetaIncident);
+  }
+
+  /**
+    Setter for the final theta value require for the calculation. Internally
+    pre-calculates and caches to cos theta for speed.
+    @param thetaFinal: final theta value in degrees
+    */
+  void setThetaFinal(double thetaFinal) {
+    m_sin_theta_f = sin(to_radians_factor * thetaFinal);
+  }
+
+  /**
+   Executes the calculation to determine Ki
+   @param wavelength : wavelength in Angstroms
+   */
+  double calculateDim0(double wavelength) const {
     double wavenumber = 2 * M_PI / wavelength;
-    return wavenumber * sin(M_PI / 180.0 * m_theta);
+    return wavenumber * m_sin_theta_i;
+  }
+
+  /**
+   Executes the calculation to determine Kf
+   @param wavelength : wavelength in Angstroms
+   */
+  double calculateDim1(double wavelength) const {
+    double wavenumber = 2 * M_PI / wavelength;
+    return wavenumber * m_sin_theta_f;
   }
 };
 
@@ -56,31 +96,14 @@ public:
   File change history is stored at: <https://github.com/mantidproject/mantid>
   Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class DLLExport ReflectometryTransformKiKf : public ReflectometryTransform {
-private:
-  const double m_kiMin;
-  const double m_kiMax;
-  const double m_kfMin;
-  const double m_kfMax;
-  /// Object performing raw caclcation to determine Ki
-  mutable CalculateReflectometryK m_KiCalculation;
-
+class DLLExport ReflectometryTransformKiKf
+    : public DataObjects::ReflectometryTransform {
 public:
   ReflectometryTransformKiKf(double kiMin, double kiMax, double kfMin,
                              double kfMax, double incidentTheta,
                              int numberOfBinsQx = 100,
                              int numberOfBinsQz = 100);
   virtual ~ReflectometryTransformKiKf();
-
-  /// Execute transformation
-  virtual Mantid::API::MatrixWorkspace_sptr
-  execute(Mantid::API::MatrixWorkspace_const_sptr inputWs) const;
-
-  /// Execute transformation
-  virtual Mantid::API::IMDEventWorkspace_sptr
-  executeMD(Mantid::API::MatrixWorkspace_const_sptr inputWs,
-            Mantid::API::BoxController_sptr boxController) const;
-
 private:
   DISABLE_DEFAULT_CONSTRUCT(ReflectometryTransformKiKf)
   DISABLE_COPY_AND_ASSIGN(ReflectometryTransformKiKf)
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformP.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformP.h
index 3320ddd37a2fd4a6912a5d99b2b8554c2039f93b..3c9423c508da8ef639b8cf836c3ed41973f6f62a 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformP.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformP.h
@@ -3,60 +3,70 @@
 
 #include <cmath>
 
-#include "MantidMDAlgorithms/ReflectometryTransform.h"
+#include "MantidDataObjects/CalculateReflectometry.h"
+#include "MantidDataObjects/ReflectometryTransform.h"
 
 namespace Mantid {
 namespace MDAlgorithms {
 
 /**
-class CalculateReflectometryPBase: Base class for p-type transforms.
+class CalculateReflectometryP: p-type transformation calculator
 */
-class CalculateReflectometryPBase {
-protected:
-  double m_sinThetaInitial;
-  double m_sinThetaFinal;
-
-  CalculateReflectometryPBase(const double &thetaIncident) {
-    m_sinThetaInitial = sin(M_PI / 180.0 * thetaIncident);
-    m_sinThetaFinal = -DBL_MAX;
-  }
-  ~CalculateReflectometryPBase() {}
+class CalculateReflectometryP : public DataObjects::CalculateReflectometry {
+private:
+  double m_sin_theta_i;
+  double m_sin_theta_f;
 
 public:
-  void setThetaFinal(const double &thetaFinal) {
-    m_sinThetaFinal = sin(M_PI / 180.0 * thetaFinal);
+  /**
+   * Constructor
+   */
+  CalculateReflectometryP() : m_sin_theta_i(0.0), m_sin_theta_f(0.0) {}
+
+  /**
+   * Destructor
+   */
+  ~CalculateReflectometryP(){};
+
+  /**
+   Setter for the incident theta value require for the calculation. Internally
+   pre-calculates and caches to cos theta for speed.
+   @param thetaIncident: incident theta value in degrees
+   */
+  void setThetaIncident(double thetaIncident) {
+    m_sin_theta_i = sin(to_radians_factor * thetaIncident);
   }
-};
 
-/**
-class CalculateReflectometryDiffP: Calculates difference between ki and kf.
-*/
-class CalculateReflectometryDiffP : public CalculateReflectometryPBase {
-public:
-  CalculateReflectometryDiffP(const double &thetaInitial)
-      : CalculateReflectometryPBase(thetaInitial) {}
-  double execute(const double &wavelength) {
-    double wavenumber = 2 * M_PI / wavelength;
-    double ki = wavenumber * m_sinThetaInitial;
-    double kf = wavenumber * m_sinThetaFinal;
-    return ki - kf;
+  /**
+   Setter for the final theta value require for the calculation. Internally
+   pre-calculates and caches to cos theta for speed.
+   @param thetaFinal: final theta value in degrees
+   */
+  void setThetaFinal(double thetaFinal) {
+    m_sin_theta_f = sin(to_radians_factor * thetaFinal);
   }
-};
 
-/**
-class CalculateReflectometrySumP: Calculates sum of ki and kf.
-*/
-class CalculateReflectometrySumP : public CalculateReflectometryPBase {
-public:
-  CalculateReflectometrySumP(const double &thetaInitial)
-      : CalculateReflectometryPBase(thetaInitial) {}
-  ~CalculateReflectometrySumP(){};
-  double execute(const double &wavelength) {
+  /**
+   Executes the calculation to determine PSum
+   @param wavelength : wavelength in Angstroms
+   */
+  double calculateDim0(double wavelength) const {
     double wavenumber = 2 * M_PI / wavelength;
-    double ki = wavenumber * m_sinThetaInitial;
-    double kf = wavenumber * m_sinThetaFinal;
+    double ki = wavenumber * m_sin_theta_i;
+    double kf = wavenumber * m_sin_theta_f;
     return ki + kf;
   }
+
+  /**
+   Executes the calculation to determine PDiff
+   @param wavelength : wavelength in Angstroms
+   */
+  double calculateDim1(double wavelength) const {
+    double wavenumber = 2 * M_PI / wavelength;
+    double ki = wavenumber * m_sin_theta_i;
+    double kf = wavenumber * m_sin_theta_f;
+    return ki - kf;
+  }
 };
 
 /** ReflectometryTransformP : Calculates workspace(s) of Pi and Pf based on the
@@ -85,28 +95,13 @@ public:
   File change history is stored at: <https://github.com/mantidproject/mantid>
   Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class DLLExport ReflectometryTransformP : public ReflectometryTransform {
-private:
-  const double m_pSumMin;
-  const double m_pSumMax;
-  const double m_pDiffMin;
-  const double m_pDiffMax;
-  /// Object performing raw calculation to determine pzi + pzf
-  mutable CalculateReflectometrySumP m_pSumCalculation;
-  /// Object performing raw calculation to determine pzi - pzf
-  mutable CalculateReflectometryDiffP m_pDiffCalculation;
-
+class DLLExport ReflectometryTransformP
+    : public DataObjects::ReflectometryTransform {
 public:
   ReflectometryTransformP(double pSumMin, double pSumMax, double pDiffMin,
                           double pDiffMax, double incidentTheta,
                           int numberOfBinsQx = 100, int numberOfBinsQz = 100);
   virtual ~ReflectometryTransformP();
-  virtual Mantid::API::IMDEventWorkspace_sptr
-  executeMD(Mantid::API::MatrixWorkspace_const_sptr inputWs,
-            Mantid::API::BoxController_sptr boxController) const;
-  /// Execute transformation
-  virtual Mantid::API::MatrixWorkspace_sptr
-  execute(Mantid::API::MatrixWorkspace_const_sptr inputWs) const;
 };
 
 } // namespace MDAlgorithms
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformQxQz.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformQxQz.h
index 773047b0ac38f73c83e949bc1075baebb58d1dca..4e55bbdf610d8c7270b17fcdd00b80388de2d03d 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformQxQz.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ReflectometryTransformQxQz.h
@@ -1,84 +1,15 @@
 #ifndef MANTID_MDALGORITHMS_REFLECTOMETRYTRANFORMQXQZ_H_
 #define MANTID_MDALGORITHMS_REFLECTOMETRYTRANFORMQXQZ_H_
 
-#include "MantidMDAlgorithms/ReflectometryTransform.h"
-#include "MantidMDAlgorithms/CalculateReflectometryQBase.h"
+#include "MantidDataObjects/RebinnedOutput.h"
+#include "MantidDataObjects/ReflectometryTransform.h"
+#include "MantidDataObjects/CalculateReflectometryQxQz.h"
 #include "MantidKernel/ClassMacros.h"
 
 namespace Mantid {
 
 namespace MDAlgorithms {
 
-/**
- Converts from inputs of wavelength, incident theta and final theta to Qx for
- reflectometry experiments
- */
-class CalculateReflectometryQx : public CalculateReflectometryQBase {
-private:
-  double m_cos_theta_i;
-  double m_dirQx;
-
-public:
-  /**
-   Constructor
-   @param thetaIncident: incident theta value in degrees
-   */
-  CalculateReflectometryQx(const double &thetaIncident)
-    : m_cos_theta_i(cos(thetaIncident * to_radians_factor)), m_dirQx(0.) {}
-  /**
-   Setter for the final theta value require for the calculation. Internally
-   pre-calculates and caches to cos theta for speed.
-   @param thetaFinal: final theta value in degrees
-   */
-  void setThetaFinal(const double &thetaFinal) {
-    const double c_cos_theta_f = cos(thetaFinal * to_radians_factor);
-    m_dirQx = (c_cos_theta_f - m_cos_theta_i);
-  }
-  /**
-   Executes the calculation to determine Qz
-   @param wavelength : wavelenght in Anstroms
-   */
-  double execute(const double &wavelength) const {
-    double wavenumber = 2 * M_PI / wavelength;
-    return wavenumber * m_dirQx;
-  }
-};
-
-/**
- Converts from inputs of wavelength, incident theta and final theta to Qz for
- reflectometry experiments
- */
-class CalculateReflectometryQz : public CalculateReflectometryQBase {
-private:
-  double m_sin_theta_i;
-  double m_dirQz;
-
-public:
-  /**
-   Constructor
-   @param thetaIncident: incident theta value in degrees
-   */
-  CalculateReflectometryQz(const double &thetaIncident)
-      : m_sin_theta_i(sin(thetaIncident * to_radians_factor)), m_dirQz(0.) {}
-  /**
-   Setter for the final theta value require for the calculation. Internally
-   pre-calculates and caches to sine theta for speed.
-   @param thetaFinal: final theta value in degrees
-   */
-  void setThetaFinal(const double &thetaFinal) {
-    const double c_sin_theta_f = sin(thetaFinal * to_radians_factor);
-    m_dirQz = (c_sin_theta_f + m_sin_theta_i);
-  }
-  /**
-   Executes the calculation to determine Qz
-   @param wavelength : wavelenght in Anstroms
-   */
-  double execute(const double &wavelength) const {
-    double wavenumber = 2 * M_PI / wavelength;
-    return wavenumber * m_dirQz;
-  }
-};
-
 /** ReflectometryTranformQxQz : Type of ReflectometyTransform. Used to convert
  from an input R vs Wavelength workspace to a 2D MDEvent workspace with
  dimensions of QxQy.
@@ -107,17 +38,8 @@ public:
  File change history is stored at: <https://github.com/mantidproject/mantid>
  Code Documentation is available at: <http://doxygen.mantidproject.org>
  */
-class DLLExport ReflectometryTransformQxQz : public ReflectometryTransform {
-private:
-  const double m_qxMin;
-  const double m_qxMax;
-  const double m_qzMin;
-  const double m_qzMax;
-  /// Object performing raw calculation to determine Qx
-  mutable CalculateReflectometryQx m_QxCalculation;
-  /// Object performing raw calculation to determine Qx
-  mutable CalculateReflectometryQz m_QzCalculation;
-
+class DLLExport ReflectometryTransformQxQz
+    : public DataObjects::ReflectometryTransform {
 public:
   /// Constructor
   ReflectometryTransformQxQz(double qxMin, double qxMax, double qzMin,
@@ -126,14 +48,6 @@ public:
                              int numberOfBinsQz = 100);
   /// Destructor
   virtual ~ReflectometryTransformQxQz();
-  /// Execute transformation
-  virtual Mantid::API::MatrixWorkspace_sptr
-  execute(Mantid::API::MatrixWorkspace_const_sptr inputWs) const;
-  /// Execute MD transformation
-  virtual Mantid::API::IMDEventWorkspace_sptr
-  executeMD(Mantid::API::MatrixWorkspace_const_sptr inputWs,
-            Mantid::API::BoxController_sptr boxController) const;
-
 private:
   DISABLE_DEFAULT_CONSTRUCT(ReflectometryTransformQxQz)
   DISABLE_COPY_AND_ASSIGN(ReflectometryTransformQxQz)
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/SlicingAlgorithm.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/SlicingAlgorithm.h
index dbcb8fd542d0e08e1b223cdd018fb362afaaa898..a92af395b656f645902fea48169c7dd1ac083003 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/SlicingAlgorithm.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/SlicingAlgorithm.h
@@ -3,7 +3,7 @@
 
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/CoordTransform.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 #include "MantidGeometry/MDGeometry/MDImplicitFunction.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/UnaryOperationMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/UnaryOperationMD.h
index 4ccb41c67d42ab153dac132f8c4e16b381c437b1..b04ddc8503a574504007eabd38d380c152e3c25f 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/UnaryOperationMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/UnaryOperationMD.h
@@ -2,7 +2,7 @@
 #define MANTID_MDALGORITHMS_UNARYOPERATIONMD_H_
 
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidKernel/System.h"
 #include "MantidDataObjects/MDHistoWorkspace.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/UnitsConversionHelper.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/UnitsConversionHelper.h
index aa2e48093ffcfeed81ed7ee7e94183f84fa23e09..424cd5bbfe1958deee16f97d576bdd2135029d10 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/UnitsConversionHelper.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/UnitsConversionHelper.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidKernel/Unit.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidMDAlgorithms/MDWSDescription.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/WeightedMeanMD.h b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/WeightedMeanMD.h
index 8fd1965ef6e24d46af985f2eb69c7a63a96a193d..1e2bca3ebda7b1b3ff596b604c3050c98158be79 100644
--- a/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/WeightedMeanMD.h
+++ b/Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/WeightedMeanMD.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_MDALGORITHMS_WEIGHTEDMEANMD_H_
 #define MANTID_MDALGORITHMS_WEIGHTEDMEANMD_H_
 
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 #include "MantidMDAlgorithms/BinaryOperationMD.h"
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/CalculateReflectometryQBase.cpp b/Code/Mantid/Framework/MDAlgorithms/src/CalculateReflectometryQBase.cpp
deleted file mode 100644
index 260802305abd036d28f22d16a66138ca05865955..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/MDAlgorithms/src/CalculateReflectometryQBase.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "MantidMDAlgorithms/CalculateReflectometryQBase.h"
-#include <cmath>
-
-namespace Mantid {
-namespace MDAlgorithms {
-
-CalculateReflectometryQBase::CalculateReflectometryQBase()
-    : to_radians_factor(M_PI / 180) {}
-
-CalculateReflectometryQBase::~CalculateReflectometryQBase() {}
-}
-}
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/CentroidPeaksMD.cpp b/Code/Mantid/Framework/MDAlgorithms/src/CentroidPeaksMD.cpp
index ebca0a474b7a2d11b50ff6a6c8907b411ada50a8..e15d904559d2879d663b4f6d2ac9f1ac84d2f5e6 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/CentroidPeaksMD.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/CentroidPeaksMD.cpp
@@ -84,7 +84,7 @@ void CentroidPeaksMD::integrate(typename MDEventWorkspace<MDE, nd>::sptr ws) {
   Mantid::DataObjects::PeaksWorkspace_sptr peakWS =
       getProperty("OutputWorkspace");
   if (peakWS != inPeakWS)
-    peakWS = inPeakWS->clone();
+    peakWS.reset(inPeakWS->clone().release());
 
   std::string CoordinatesToUseStr = getPropertyValue("CoordinatesToUse");
   int CoordinatesToUse = ws->getSpecialCoordinateSystem();
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/CentroidPeaksMD2.cpp b/Code/Mantid/Framework/MDAlgorithms/src/CentroidPeaksMD2.cpp
index f152fd9c55ae11d684077b9a76c908e7024b719e..365a854be1583a4a0573bb0295c719a806091843 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/CentroidPeaksMD2.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/CentroidPeaksMD2.cpp
@@ -81,7 +81,7 @@ void CentroidPeaksMD2::integrate(typename MDEventWorkspace<MDE, nd>::sptr ws) {
   Mantid::DataObjects::PeaksWorkspace_sptr peakWS =
       getProperty("OutputWorkspace");
   if (peakWS != inPeakWS)
-    peakWS = inPeakWS->clone();
+    peakWS.reset(inPeakWS->clone().release());
 
   int CoordinatesToUse = ws->getSpecialCoordinateSystem();
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/CloneMDWorkspace.cpp b/Code/Mantid/Framework/MDAlgorithms/src/CloneMDWorkspace.cpp
index 31f8607da61b0ac35487801e2518588c2808e8ef..22e2a7fb0c9d95f9c60610a4ba876a7239ab90f1 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/CloneMDWorkspace.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/CloneMDWorkspace.cpp
@@ -108,10 +108,8 @@ CloneMDWorkspace::doClone(const typename MDEventWorkspace<MDE, nd>::sptr ws) {
                       boost::dynamic_pointer_cast<IMDWorkspace>(outWS));
   } else {
     // Perform the clone in memory.
-    boost::shared_ptr<MDEventWorkspace<MDE, nd>> outWS(
-        new MDEventWorkspace<MDE, nd>(*ws));
-    this->setProperty("OutputWorkspace",
-                      boost::dynamic_pointer_cast<IMDWorkspace>(outWS));
+    IMDWorkspace_sptr outWS(ws->clone().release());
+    setProperty("OutputWorkspace", outWS);
   }
 }
 
@@ -128,11 +126,10 @@ void CloneMDWorkspace::exec() {
   if (inWS) {
     CALL_MDEVENT_FUNCTION(this->doClone, inWS);
   } else if (inHistoWS) {
-    // Clone using the copy constructor
-    MDHistoWorkspace_sptr outWS(new MDHistoWorkspace(*inHistoWS));
+    // Polymorphic clone().
+    IMDWorkspace_sptr outWS(inHistoWS->clone().release());
     // And set to the output. Easy.
-    this->setProperty("OutputWorkspace",
-                      boost::dynamic_pointer_cast<IMDWorkspace>(outWS));
+    this->setProperty("OutputWorkspace", outWS);
   } else {
     // Call CloneWorkspace as a fall-back?
     throw std::runtime_error("CloneMDWorkspace can only clone a "
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/ConvToMDBase.cpp b/Code/Mantid/Framework/MDAlgorithms/src/ConvToMDBase.cpp
index 133cdb99934cf54d248bddcec69426d7de8afcb9..5f4ac5f5cab5109906328dc1b8673b79b2303e81 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/ConvToMDBase.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/ConvToMDBase.cpp
@@ -1,4 +1,5 @@
 #include "MantidMDAlgorithms/ConvToMDBase.h"
+#include "MantidAPI/MatrixWorkspace.h"
 
 namespace Mantid {
 namespace MDAlgorithms {
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/ConvToMDSelector.cpp b/Code/Mantid/Framework/MDAlgorithms/src/ConvToMDSelector.cpp
index 56a3d70e62a062d9b65e9e8072ebee67af82aa59..e694ec4343db2dd998fc04b5cde43f056c1dbf83 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/ConvToMDSelector.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/ConvToMDSelector.cpp
@@ -1,5 +1,6 @@
 #include "MantidMDAlgorithms/ConvToMDSelector.h"
 
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidMDAlgorithms/ConvToMDEventsWS.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/ConvertCWPDMDToSpectra.cpp b/Code/Mantid/Framework/MDAlgorithms/src/ConvertCWPDMDToSpectra.cpp
index 3515ba215c767866a2a73ab521a12a93b6eeec12..d6554599a7c9e387b0bc98c79b05b67cf4a45f1a 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/ConvertCWPDMDToSpectra.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/ConvertCWPDMDToSpectra.cpp
@@ -1,6 +1,7 @@
 #include "MantidMDAlgorithms/ConvertCWPDMDToSpectra.h"
 
 #include "MantidAPI/WorkspaceProperty.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/ListValidator.h"
 #include "MantidAPI/IMDIterator.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/ConvertCWSDExpToMomentum.cpp b/Code/Mantid/Framework/MDAlgorithms/src/ConvertCWSDExpToMomentum.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d6118cbd3af838a0d4ab365ae832078b7b720c60
--- /dev/null
+++ b/Code/Mantid/Framework/MDAlgorithms/src/ConvertCWSDExpToMomentum.cpp
@@ -0,0 +1,543 @@
+#include "MantidMDAlgorithms/ConvertCWSDExpToMomentum.h"
+#include "MantidAPI/WorkspaceProperty.h"
+#include "MantidKernel/ArrayProperty.h"
+#include "MantidGeometry/Instrument.h"
+#include "MantidDataObjects/MDEventFactory.h"
+#include "MantidAPI/ExperimentInfo.h"
+#include "MantidGeometry/Instrument/ComponentHelper.h"
+#include "MantidMDAlgorithms/MDWSDescription.h"
+#include "MantidMDAlgorithms/MDWSTransform.h"
+#include "MantidAPI/FileProperty.h"
+#include "MantidDataObjects/MDBoxBase.h"
+
+using namespace Mantid::API;
+using namespace Mantid::Kernel;
+using namespace Mantid::DataObjects;
+using namespace Mantid::Geometry;
+
+namespace Mantid {
+namespace MDAlgorithms {
+
+DECLARE_ALGORITHM(ConvertCWSDExpToMomentum)
+
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+ConvertCWSDExpToMomentum::ConvertCWSDExpToMomentum()
+    : m_iColFilename(2), m_iColStartDetID(3) {}
+
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+ConvertCWSDExpToMomentum::~ConvertCWSDExpToMomentum() {}
+
+//----------------------------------------------------------------------------------------------
+/** Init to declare property
+ */
+void ConvertCWSDExpToMomentum::init() {
+  declareProperty(
+      new WorkspaceProperty<ITableWorkspace>("InputWorkspace", "",
+                                             Direction::Input),
+      "Name of table workspace for data file names in the experiment.");
+
+  declareProperty(new WorkspaceProperty<ITableWorkspace>(
+                      "DetectorTableWorkspace", "", Direction::Input),
+                  "Name of table workspace containing all the detectors.");
+
+  declareProperty(new WorkspaceProperty<IMDEventWorkspace>(
+                      "OutputWorkspace", "", Direction::Output),
+                  "Name of MDEventWorkspace containing all experimental data.");
+
+  declareProperty(new ArrayProperty<double>("SourcePosition"),
+                  "A vector of 3 doubles for position of source.");
+
+  declareProperty(new ArrayProperty<double>("SamplePosition"),
+                  "A vector of 3 doubles for position of sample.");
+
+  declareProperty(new ArrayProperty<double>("PixelDimension"),
+                  "A vector of 8 doubles to determine a cubic pixel's size.");
+
+  declareProperty("IsBaseName", true, "It is specified as true if the data "
+                                      "file names listed in InputWorkspace are "
+                                      "base name without directory.");
+
+  declareProperty(
+      new FileProperty("Directory", "", FileProperty::OptionalDirectory),
+      "Directory where data files are if InputWorkspace gives data file name "
+      "as the base file name as indicated by 'IsBaseName'.");
+}
+
+//----------------------------------------------------------------------------------------------
+/** Main exec
+ * @brief ConvertCWSDExpToMomentum::exec
+ */
+void ConvertCWSDExpToMomentum::exec() {
+  // Parse inputs
+  std::string errmsg("");
+  bool inputvalid = getInputs(errmsg);
+  if (!inputvalid)
+    throw std::runtime_error(errmsg);
+
+  g_log.notice("[DB] Inputs are examined.");
+
+  // Create output MDEventWorkspace
+  m_outputWS = createExperimentMDWorkspace();
+
+  // Add MDEventWorkspace
+  addMDEvents();
+
+  setProperty("OutputWorkspace", m_outputWS);
+
+  return;
+}
+
+//----------------------------------------------------------------------------------------------
+/** Create output workspace
+ * @brief ConvertCWSDExpToMomentum::createExperimentMDWorkspace
+ * @return
+ */
+API::IMDEventWorkspace_sptr
+ConvertCWSDExpToMomentum::createExperimentMDWorkspace() {
+  // Get detector list from input table workspace
+  std::vector<Kernel::V3D> vec_detpos;
+  std::vector<detid_t> vec_detid;
+  g_log.information("Start to parse detector parameter tables.");
+  parseDetectorTable(vec_detpos, vec_detid);
+
+  // Create a virtual instrument
+  g_log.information("Start to create virtual instrument.");
+  m_virtualInstrument = Geometry::ComponentHelper::createVirtualInstrument(
+      m_sourcePos, m_samplePos, vec_detpos, vec_detid);
+  if (!m_virtualInstrument)
+    throw std::runtime_error("Failed to create virtual instrument.");
+  g_log.information() << "Virtual Instrument has "
+                      << m_virtualInstrument->getDetectorIDs().size()
+                      << "Detectors\n";
+
+  // Create workspace in Q_sample with dimenion as 3
+  size_t nDimension = 3;
+  IMDEventWorkspace_sptr mdws =
+      MDEventFactory::CreateMDWorkspace(nDimension, "MDEvent");
+
+  // Extract Dimensions and add to the output workspace.
+  std::vector<std::string> vec_ID(3);
+  vec_ID[0] = "Q_sample_x";
+  vec_ID[1] = "Q_sample_y";
+  vec_ID[2] = "Q_sample_z";
+
+  std::vector<std::string> dimensionNames(3);
+  dimensionNames[0] = "Q_sample_x";
+  dimensionNames[1] = "Q_sample_y";
+  dimensionNames[2] = "Q_sample_z";
+
+  Mantid::Kernel::SpecialCoordinateSystem coordinateSystem =
+      Mantid::Kernel::QSample;
+
+  // Add dimensions
+  // FIXME - Should I give out a better value???
+  if (m_extentMins.size() != 3 || m_extentMaxs.size() != 3 ||
+      m_numBins.size() != 3) {
+    // Default dimenion
+    m_extentMins.resize(3, -10.0);
+    m_extentMaxs.resize(3, 10.0);
+    m_numBins.resize(3, 100);
+  }
+  for (size_t d = 0; d < 3; ++d)
+    g_log.debug() << "Direction " << d << ", Range = " << m_extentMins[d]
+                  << ", " << m_extentMaxs[d] << "\n";
+
+  for (size_t i = 0; i < nDimension; ++i) {
+    std::string id = vec_ID[i];
+    std::string name = dimensionNames[i];
+    std::string units = "A^-1";
+    mdws->addDimension(
+        Geometry::MDHistoDimension_sptr(new Geometry::MDHistoDimension(
+            id, name, units, static_cast<coord_t>(m_extentMins[i]),
+            static_cast<coord_t>(m_extentMaxs[i]), m_numBins[i])));
+  }
+
+  // Set coordinate system
+  mdws->setCoordinateSystem(coordinateSystem);
+
+  return mdws;
+}
+
+//----------------------------------------------------------------------------------------------
+/** Add MDEvents to MDEventWorkspace from data set in the experiment
+ *  Run number is determined by the row of the file in the input table workspace
+ * @brief ConvertCWSDExpToMomentum::addMDEvents
+ */
+void ConvertCWSDExpToMomentum::addMDEvents() {
+  MatrixWorkspace_sptr spicews;
+
+  // Check whether to add / or \ to m_dataDir
+  std::string sep("");
+  if (m_dataDir.size() > 0) {
+    // Determine system
+    bool isWindows(false);
+#if _WIN64
+    isWindows = true;
+#elif _WIND32
+    isWindows = true;
+#endif
+    if (isWindows && *m_dataDir.rbegin() != '\\') {
+      sep = "\\";
+    } else if (!isWindows && *m_dataDir.rbegin() != '/')
+      sep = "/";
+  }
+
+  // Init some variables
+  size_t numrows = m_expDataTableWS->rowCount();
+  size_t numFileNotLoaded(0);
+
+  // Loop through all data files in the experiment
+  for (size_t ir = 0; ir < numrows; ++ir) {
+    std::string rawfilename =
+        m_expDataTableWS->cell<std::string>(ir, m_iColFilename);
+    detid_t start_detid = m_expDataTableWS->cell<detid_t>(ir, m_iColStartDetID);
+
+    // Load data
+    bool loaded;
+    std::string errmsg;
+
+    std::stringstream filess;
+    if (m_isBaseName) {
+      filess << m_dataDir << sep;
+    }
+    filess << rawfilename;
+    std::string filename(filess.str());
+
+    spicews = loadSpiceData(filename, loaded, errmsg);
+    if (!loaded) {
+      g_log.error(errmsg);
+      ++numFileNotLoaded;
+      continue;
+    }
+
+    // Convert from MatrixWorkspace to MDEvents and add events to
+    int runid = static_cast<int>(ir) + 1;
+    convertSpiceMatrixToMomentumMDEvents(spicews, start_detid, runid);
+  }
+
+  // Set box extentes
+  // typename std::vector<API::IMDNode *> boxes;
+  std::vector<API::IMDNode *> boxes;
+
+  // Set extents for all MDBoxes
+  progress(0.90, "Set up MDBoxes' dimensions. ");
+  m_outputWS->getBoxes(boxes, 1000, true);
+  auto it1 = boxes.begin();
+  auto it1_end = boxes.end();
+  for (; it1 != it1_end; it1++) {
+    auto box = *it1;
+    for (size_t dim = 0; dim < 3; ++dim) {
+      MDBox<MDEvent<3>, 3> *mdbox =
+          dynamic_cast<DataObjects::MDBox<MDEvent<3>, 3> *>(box);
+      if (!mdbox)
+        throw std::runtime_error("Unable to cast to MDBox");
+      mdbox->setExtents(dim, -10, 10);
+      mdbox->calcVolume();
+      mdbox->refreshCache(NULL);
+    }
+  }
+
+  return;
+}
+
+//----------------------------------------------------------------------------------------------
+/** Set goniometer to matrix workspace and get its rotation matrix R (from
+ * Q-sample to Q-lab
+ * and output 1/R
+ * @brief ConvertCWSDExpToMomentum::setupTransferMatrix
+ * @param dataws :: matrix workspace containing sample rotation angles
+ * @param rotationMatrix :: output as matrix 1/R to convert from Q-lab to
+ * Q-sample
+ */
+void ConvertCWSDExpToMomentum::setupTransferMatrix(
+    API::MatrixWorkspace_sptr dataws, Kernel::DblMatrix &rotationMatrix) {
+  // Check sample logs
+  if (!dataws->run().hasProperty("_omega") ||
+      !dataws->run().hasProperty("_chi") || !dataws->run().hasProperty("_phi"))
+    throw std::runtime_error(
+        "Data workspace does not have sample log _phi, _chi or _omega. "
+        "Unable to set goniometer and calcualte roation matrix R.");
+
+  // Call algorithm SetGoniometer
+  IAlgorithm_sptr setalg = createChildAlgorithm("SetGoniometer");
+  setalg->initialize();
+  setalg->setProperty("Workspace", dataws);
+  setalg->setProperty("Axis0", "_omega,0,1,0,-1");
+  setalg->setProperty("Axis1", "_chi,0,0,1,-1");
+  setalg->setProperty("Axis2", "_phi,0,1,0,-1");
+  setalg->execute();
+
+  if (setalg->isExecuted()) {
+    rotationMatrix = dataws->run().getGoniometer().getR();
+    g_log.debug() << "Ratation matrix: " << rotationMatrix.str() << "\n";
+    rotationMatrix.Invert();
+    g_log.debug() << "Ratation matrix: " << rotationMatrix.str() << "\n";
+  } else
+    throw std::runtime_error("Unable to set Goniometer.");
+
+  return;
+}
+
+//----------------------------------------------------------------------------------------------
+/** Convert a SPICE 2D Det MatrixWorkspace to MDEvents and append to an
+ * MDEventWorkspace
+ * @brief ConvertCWSDExpToMomentum::convertSpiceMatrixToMomentumMDEvents
+ * @param dataws :: data matrix workspace
+ * @param startdetid :: starting detid for detectors from this workspace mapping
+ * to virtual instrument in MDEventWorkspace
+ * @param runnumber :: run number for all MDEvents created from this matrix
+ * workspace
+ */
+void ConvertCWSDExpToMomentum::convertSpiceMatrixToMomentumMDEvents(
+    MatrixWorkspace_sptr dataws, const detid_t &startdetid,
+    const int runnumber) {
+  // Create transformation matrix from which the transformation is
+  Kernel::DblMatrix rotationMatrix;
+  setupTransferMatrix(dataws, rotationMatrix);
+
+  g_log.information() << "Before insert new event, output workspace has "
+                      << m_outputWS->getNEvents() << "Events.\n";
+
+  // Creates a new instance of the MDEventInserte to output workspace
+  MDEventWorkspace<MDEvent<3>, 3>::sptr mdws_mdevt_3 =
+      boost::dynamic_pointer_cast<MDEventWorkspace<MDEvent<3>, 3> >(m_outputWS);
+  MDEventInserter<MDEventWorkspace<MDEvent<3>, 3>::sptr> inserter(mdws_mdevt_3);
+
+  // Calcualte k_i: it is assumed that all k_i are same for one Pt.
+  // number, i.e., one 2D XML file
+  Kernel::V3D sourcePos = dataws->getInstrument()->getSource()->getPos();
+  Kernel::V3D samplePos = dataws->getInstrument()->getSample()->getPos();
+  if (dataws->readX(0).size() != 2)
+    throw std::runtime_error(
+        "Input matrix workspace has wrong dimension in X-axis.");
+  double momentum = 0.5 * (dataws->readX(0)[0] + dataws->readX(0)[1]);
+  Kernel::V3D ki = (samplePos - sourcePos) * (momentum / sourcePos.norm());
+
+  g_log.debug() << "Source at " << sourcePos.toString()
+                << ", Norm = " << sourcePos.norm()
+                << ", momentum = " << momentum << "\n"
+                << "k_i = " << ki.toString() << "\n";
+
+  // Go though each spectrum to conver to MDEvent
+  size_t numspec = dataws->getNumberHistograms();
+  double maxsignal = 0;
+  size_t nummdevents = 0;
+  for (size_t iws = 0; iws < numspec; ++iws) {
+    // Get detector positions and signal
+    double signal = dataws->readY(iws)[0];
+    // Skip event with 0 signal
+    if (signal < 0.001)
+      continue;
+    double error = dataws->readE(iws)[0];
+    Kernel::V3D detpos = dataws->getDetector(iws)->getPos();
+    std::vector<Mantid::coord_t> q_sample(3);
+
+    // Calculate Q-sample and new detector ID in virtual instrument.
+    Kernel::V3D qlab = convertToQSample(samplePos, ki, detpos, momentum,
+                                        q_sample, rotationMatrix);
+    detid_t native_detid = dataws->getDetector(iws)->getID();
+    detid_t detid = native_detid + startdetid;
+
+    // Insert
+    inserter.insertMDEvent(
+        static_cast<float>(signal), static_cast<float>(error * error),
+        static_cast<uint16_t>(runnumber), detid, q_sample.data());
+
+    g_log.debug() << "Q-lab = " << qlab.toString() << "\n";
+    g_log.debug() << "Insert DetID " << detid << ", signal = " << signal
+                  << ", with q_sample = " << q_sample[0] << ", " << q_sample[1]
+                  << ", " << q_sample[2] << "\n";
+
+    // Update some statistical inforamtion
+    if (signal > maxsignal)
+      maxsignal = signal;
+    ++nummdevents;
+  }
+
+  g_log.notice() << "[DB] New Matrixworkspace: Max. Signal = " << maxsignal
+                 << ", Add " << nummdevents << " MDEvents "
+                 << "\n";
+
+  // Add experiment info including instrument, goniometer and run number
+  ExperimentInfo_sptr expinfo = boost::make_shared<ExperimentInfo>();
+  expinfo->setInstrument(m_virtualInstrument);
+  expinfo->mutableRun().setGoniometer(dataws->run().getGoniometer(), false);
+  expinfo->mutableRun().addProperty("run_number", runnumber);
+  m_outputWS->addExperimentInfo(expinfo);
+
+  return;
+}
+
+//----------------------------------------------------------------------------------------------
+/** Examine input
+ * @brief ConvertCWSDExpToMomentum::getInputs
+ * @param errmsg
+ * @return
+ */
+bool ConvertCWSDExpToMomentum::getInputs(std::string &errmsg) {
+  std::stringstream errss;
+
+  // Table workspace for data file names and starting detector IDs (for virtual
+  // instrument)
+  m_expDataTableWS = getProperty("InputWorkspace");
+  const std::vector<std::string> datacolnames =
+      m_expDataTableWS->getColumnNames();
+  if (datacolnames.size() != 4) {
+    errss << "InputWorkspace must have 4 columns.  But now it has "
+          << datacolnames.size() << " columns. \n";
+  } else {
+    if (datacolnames[m_iColFilename].compare("File Name") != 0)
+      errss << "Data file name Table (InputWorkspace)'s Column "
+            << m_iColFilename << " must be 'File Name'"
+            << "\n";
+    if (datacolnames[m_iColStartDetID].compare("Starting DetID") != 0)
+      errss << "Data file name Table (InputWorkspace)'s Column "
+            << m_iColStartDetID << " must be 'Staring DetID'"
+            << "\n";
+  }
+
+  // Table workspace for detector positions
+  m_detectorListTableWS = getProperty("DetectorTableWorkspace");
+  const std::vector<std::string> detcolnames =
+      m_detectorListTableWS->getColumnNames();
+  if (detcolnames.size() != 5) {
+    errss << "Detector table (DetectorTableWorkspace) must have 5 columns"
+          << "\n";
+  }
+
+  // Sample and source position
+  std::vector<double> sourcepos = getProperty("SourcePosition");
+  if (sourcepos.size() != 3)
+    errss << "SourcePosition must have 3 items.  Input has " << sourcepos.size()
+          << " instead.\n";
+  else {
+    m_sourcePos.setX(sourcepos[0]);
+    m_sourcePos.setY(sourcepos[1]);
+    m_sourcePos.setZ(sourcepos[2]);
+  }
+
+  std::vector<double> samplepos = getProperty("SamplePosition");
+  if (samplepos.size() != 3) {
+    errss << "SamplePosition must have 3 items.  Input has " << samplepos.size()
+          << " instead.\n";
+  } else {
+    m_samplePos.setX(samplepos[0]);
+    m_samplePos.setY(samplepos[1]);
+    m_samplePos.setZ(samplepos[2]);
+  }
+
+  m_isBaseName = getProperty("IsBaseName");
+  if (m_isBaseName)
+    m_dataDir = getPropertyValue("Directory");
+
+  errmsg = errss.str();
+  return (errmsg.size() > 0);
+}
+
+//----------------------------------------------------------------------------------------------
+/** Convert to Q-sample from detector position and momentum
+ * @brief ConvertCWSDExpToMomentum::convertToMomentum
+ * @param samplePos :: sample position for Kf
+ * @param ki :: Ki
+ * @param detPos :: detector position
+ * @param momentum :: q = 2pi/lambda
+ * @param qSample :: output Q-sample
+ * @param rotationMatrix :: Invert R matrix
+ * @return
+ */
+Kernel::V3D ConvertCWSDExpToMomentum::convertToQSample(
+    const Kernel::V3D &samplePos, const Kernel::V3D &ki,
+    const Kernel::V3D &detPos, const double &momentum,
+    std::vector<coord_t> &qSample, const Kernel::DblMatrix &rotationMatrix) {
+
+  // Use detector position and wavelength/Q to calcualte Q_lab
+  Kernel::V3D kf;
+  kf = (detPos - samplePos) * (momentum / (detPos - samplePos).norm());
+  Kernel::V3D q_lab = ki - kf;
+
+  // Calculate q_sample from qlab and R matrix
+  Kernel::V3D q_sample = rotationMatrix * q_lab;
+  qSample.resize(3);
+  qSample[0] = static_cast<float>(q_sample.X());
+  qSample[1] = static_cast<float>(q_sample.Y());
+  qSample[2] = static_cast<float>(q_sample.Z());
+
+  return q_lab;
+}
+
+//----------------------------------------------------------------------------------------------
+/** Load SPICE data to Matrix workspace
+ * @brief ConvertCWSDExpToMomentum::loadSpiceData
+ * @param filename
+ * @param loaded
+ * @param errmsg
+ * @return
+ */
+API::MatrixWorkspace_sptr
+ConvertCWSDExpToMomentum::loadSpiceData(const std::string &filename,
+                                        bool &loaded, std::string &errmsg) {
+  // Init output
+  API::MatrixWorkspace_sptr dataws;
+  errmsg = "";
+
+  // Load SPICE file
+  try {
+    IAlgorithm_sptr loader = createChildAlgorithm("LoadSpiceXML2DDet");
+    loader->initialize();
+    loader->setProperty("Filename", filename);
+    std::vector<size_t> sizelist(2);
+    sizelist[0] = 256;
+    sizelist[1] = 256;
+    loader->setProperty("DetectorGeometry", sizelist);
+    loader->setProperty("LoadInstrument", true);
+
+    loader->execute();
+
+    dataws = loader->getProperty("OutputWorkspace");
+    if (dataws)
+      loaded = true;
+    else
+      loaded = false;
+  }
+  catch (std::runtime_error &runerror) {
+    loaded = false;
+    errmsg = runerror.what();
+  }
+
+  return dataws;
+}
+
+//----------------------------------------------------------------------------------------------
+/** Parase detetor table workspace to vector of detector positions
+ * @brief ConvertCWSDExpToMomentum::parseDetectorTable
+ * @param vec_detpos
+ * @param vec_detid
+ */
+void ConvertCWSDExpToMomentum::parseDetectorTable(
+    std::vector<Kernel::V3D> &vec_detpos, std::vector<detid_t> &vec_detid) {
+  // Set vectors' sizes
+  size_t numrows = m_detectorListTableWS->rowCount();
+  vec_detpos.resize(numrows);
+  vec_detid.resize(numrows);
+
+  // Parse table
+  for (size_t i = 0; i < numrows; ++i) {
+    detid_t detid = m_detectorListTableWS->cell<int>(i, 0);
+    vec_detid[i] = detid;
+
+    double x = m_detectorListTableWS->cell<double>(i, 1);
+    double y = m_detectorListTableWS->cell<double>(i, 2);
+    double z = m_detectorListTableWS->cell<double>(i, 3);
+    Kernel::V3D detpos(x, y, z);
+    vec_detpos[i] = detpos;
+  }
+
+  return;
+}
+
+} // namespace MDAlgorithms
+} // namespace Mantid
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/ConvertToReflectometryQ.cpp b/Code/Mantid/Framework/MDAlgorithms/src/ConvertToReflectometryQ.cpp
index 4f2a271454ed5187e5f2a80ca25371a42bfe98a0..de57ca5b7d325262145b0dd247bb79741cdd0d7e 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/ConvertToReflectometryQ.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/ConvertToReflectometryQ.cpp
@@ -46,6 +46,18 @@ Transform to k-space label:
 */
 std::string kSpaceTransform() { return "K (incident, final)"; }
 
+/*
+Center point rebinning
+@return: associated id/label
+*/
+std::string centerTransform() { return "Centre"; }
+
+/*
+Normalised polygon rebinning
+@return: associated id/label
+*/
+std::string normPolyTransform() { return "NormalisedPolygon"; }
+
 /*
 Check that the input workspace is of the correct type.
 @param: inputWS: The input workspace.
@@ -179,6 +191,17 @@ void ConvertToReflectometryQ::init() {
       "  P (lab frame): Momentum in the sample frame.\n"
       "  K initial and final vectors in the z plane.");
 
+  std::vector<std::string> transOptions;
+  transOptions.push_back(centerTransform());
+  transOptions.push_back(normPolyTransform());
+
+  declareProperty(
+      "Method", centerTransform(),
+      boost::make_shared<StringListValidator>(transOptions),
+      "What method should be used for the axis transformation?\n"
+      "  Centre: Use center point rebinning.\n"
+      "  NormalisedPolygon: Use normalised polygon rebinning.");
+
   declareProperty(
       new Kernel::PropertyWithValue<bool>("OverrideIncidentTheta", false),
       "Use the provided incident theta value.");
@@ -248,6 +271,7 @@ void ConvertToReflectometryQ::exec() {
   const std::vector<double> extents = getProperty("Extents");
   double incidentTheta = getProperty("IncidentTheta");
   const std::string outputDimensions = getPropertyValue("OutputDimensions");
+  const std::string transMethod = getPropertyValue("Method");
   const bool outputAsMDWorkspace = getProperty("OutputAsMDWorkspace");
   const int numberOfBinsQx = getProperty("NumberBinsQx");
   const int numberOfBinsQz = getProperty("NumberBinsQz");
@@ -315,16 +339,29 @@ void ConvertToReflectometryQ::exec() {
   IMDWorkspace_sptr outputWS;
 
   if (outputAsMDWorkspace) {
-    auto outputMDWS = transform->executeMD(inputWs, bc);
-
-    // Copy ExperimentInfo (instrument, run, sample) to the output WS
-    ExperimentInfo_sptr ei(inputWs->cloneExperimentInfo());
-    outputMDWS->addExperimentInfo(ei);
-    outputWS = outputMDWS;
+    if (transMethod == centerTransform()) {
+      auto outputMDWS = transform->executeMD(inputWs, bc);
+      // Copy ExperimentInfo (instrument, run, sample) to the output WS
+      ExperimentInfo_sptr ei(inputWs->cloneExperimentInfo());
+      outputMDWS->addExperimentInfo(ei);
+      outputWS = outputMDWS;
+    } else if (transMethod == normPolyTransform()) {
+      throw std::runtime_error("Normalised Polynomial rebinning not supported for multidimensional output.");
+    } else {
+      throw std::runtime_error("Unknown rebinning method: " + transMethod);
+    }
   } else {
-    auto outputWS2D = transform->execute(inputWs);
-    outputWS2D->copyExperimentInfoFrom(inputWs.get());
-    outputWS = outputWS2D;
+    if (transMethod == centerTransform()) {
+      auto outputWS2D = transform->execute(inputWs);
+      outputWS2D->copyExperimentInfoFrom(inputWs.get());
+      outputWS = outputWS2D;
+    } else if (transMethod == normPolyTransform()) {
+      auto outputWSRB = transform->executeNormPoly(inputWs);
+      outputWSRB->copyExperimentInfoFrom(inputWs.get());
+      outputWS = outputWSRB;
+    } else {
+      throw std::runtime_error("Unknown rebinning method: " + transMethod);
+    }
   }
 
   // Execute the transform and bind to the output.
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/CutMD.cpp b/Code/Mantid/Framework/MDAlgorithms/src/CutMD.cpp
index c74e52602e582e2954fbdb4fb7c45e169a56e6ad..7adda42f367fe2cd8fa8705f71fd5f80adb2e6a7 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/CutMD.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/CutMD.cpp
@@ -1,6 +1,7 @@
 #include "MantidMDAlgorithms/CutMD.h"
 #include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/Projection.h"
 #include "MantidGeometry/Crystal/OrientedLattice.h"
 #include "MantidKernel/ArrayProperty.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/EvaluateMDFunction.cpp b/Code/Mantid/Framework/MDAlgorithms/src/EvaluateMDFunction.cpp
index 10f64648dac48e419b604e4d4ccf328f30a3c3ad..e54395aac74fe31b75f60b847d5deb18db7d78df 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/EvaluateMDFunction.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/EvaluateMDFunction.cpp
@@ -18,7 +18,9 @@ DECLARE_ALGORITHM(EvaluateMDFunction)
 //----------------------------------------------------------------------------------------------
 /** Constructor
  */
-EvaluateMDFunction::EvaluateMDFunction() {}
+EvaluateMDFunction::EvaluateMDFunction() {
+  useAlgorithm("EvaluateFunction");
+}
 
 //----------------------------------------------------------------------------------------------
 /** Destructor
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/GetSpiceDataRawCountsFromMD.cpp b/Code/Mantid/Framework/MDAlgorithms/src/GetSpiceDataRawCountsFromMD.cpp
index 7438493cd80b7394dfb194703244b8c3427d0242..e4192a6ac750c4f8df4a5860e610515331d85bcf 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/GetSpiceDataRawCountsFromMD.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/GetSpiceDataRawCountsFromMD.cpp
@@ -1,5 +1,6 @@
 #include "MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h"
 
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/WorkspaceProperty.h"
 #include "MantidKernel/ListValidator.h"
 #include "MantidAPI/IMDIterator.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/IntegrateEllipsoids.cpp b/Code/Mantid/Framework/MDAlgorithms/src/IntegrateEllipsoids.cpp
index dbedf58b21ee342ef937987df6a760c665cb68ae..2b93b9dd1bbf12f5c9b703021e89f42867cf922a 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/IntegrateEllipsoids.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/IntegrateEllipsoids.cpp
@@ -306,7 +306,7 @@ void IntegrateEllipsoids::exec() {
   Mantid::DataObjects::PeaksWorkspace_sptr peak_ws =
       getProperty("OutputWorkspace");
   if (peak_ws != in_peak_ws) {
-    peak_ws = in_peak_ws->clone();
+    peak_ws.reset(in_peak_ws->clone().release());
   }
   double radius = getProperty("RegionRadius");
   int numSigmas = getProperty("NumSigmas");
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/IntegrateMDHistoWorkspace.cpp b/Code/Mantid/Framework/MDAlgorithms/src/IntegrateMDHistoWorkspace.cpp
index 76f4e71943e3081eecdffa3bca9f2eaa1a138518..d8b7faabba3636648d640aa24fbca08801e4e0fa 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/IntegrateMDHistoWorkspace.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/IntegrateMDHistoWorkspace.cpp
@@ -245,7 +245,8 @@ void IntegrateMDHistoWorkspace::exec() {
   if (emptyCount == pbins.size()) {
     // No work to do.
     g_log.information(this->name() + " Direct clone of input.");
-    this->setProperty("OutputWorkspace", inWS->clone());
+    this->setProperty("OutputWorkspace", boost::shared_ptr<IMDHistoWorkspace>(
+                                             inWS->clone().release()));
   } else {
 
     /* Create the output workspace in the right shape. This allows us to iterate
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/IntegratePeaksMD.cpp b/Code/Mantid/Framework/MDAlgorithms/src/IntegratePeaksMD.cpp
index 419c202c660a3808d994f0f31ef8573ff81f3936..cb15022cd2365ae3949829902ed4ab23c1e12ad1 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/IntegratePeaksMD.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/IntegratePeaksMD.cpp
@@ -164,7 +164,7 @@ void IntegratePeaksMD::integrate(typename MDEventWorkspace<MDE, nd>::sptr ws) {
   Mantid::DataObjects::PeaksWorkspace_sptr peakWS =
       getProperty("OutputWorkspace");
   if (peakWS != inPeakWS)
-    peakWS = inPeakWS->clone();
+    peakWS.reset(inPeakWS->clone().release());
 
   /// Value of the CoordinatesToUse property.
   std::string CoordinatesToUseStr = getPropertyValue("CoordinatesToUse");
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/IntegratePeaksMD2.cpp b/Code/Mantid/Framework/MDAlgorithms/src/IntegratePeaksMD2.cpp
index 25b2ddfa4bdffb1993a7f8cbbb3a13b929668876..dbec0acdaa3a30ea3d43d8814a453f29bd1b7f40 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/IntegratePeaksMD2.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/IntegratePeaksMD2.cpp
@@ -171,7 +171,7 @@ void IntegratePeaksMD2::integrate(typename MDEventWorkspace<MDE, nd>::sptr ws) {
   Mantid::DataObjects::PeaksWorkspace_sptr peakWS =
       getProperty("OutputWorkspace");
   if (peakWS != inPeakWS)
-    peakWS = inPeakWS->clone();
+    peakWS.reset(inPeakWS->clone().release());
   // This only fails in the unit tests which say that MaskBTP is not registered
   try {
     runMaskDetectors(inPeakWS, "Tube", "edges");
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/LoadMD.cpp b/Code/Mantid/Framework/MDAlgorithms/src/LoadMD.cpp
index 819e600a812c07c39d35a9875721922b64d85925..4a2654c756d13a4c4763bffda1778285aef1dc23 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/LoadMD.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/LoadMD.cpp
@@ -363,16 +363,23 @@ void LoadMD::doLoad(typename MDEventWorkspace<MDE, nd>::sptr ws) {
   bool fileBackEnd = getProperty("FileBackEnd");
 
   if (fileBackEnd && m_BoxStructureAndMethadata)
-    throw std::invalid_argument("Both BoxStructureOnly and fileBackEnd were "
-                                "set to TRUE: this is not possible.");
+    throw std::invalid_argument("Combination of BoxStructureOnly or "
+                                "MetaDataOnly were set to TRUE with "
+                                "fileBackEnd "
+                                ": this is not possible.");
 
   CPUTimer tim;
   Progress *prog = new Progress(this, 0.0, 1.0, 100);
 
   prog->report("Opening file.");
   std::string title;
-  m_file->getAttr("title", title);
-  ws->setTitle("title");
+  try{
+    m_file->getAttr("title", title);
+  } catch (std::exception&)
+  {
+    //Leave the title blank if error on loading
+  }
+  ws->setTitle(title);
 
   // Load the WorkspaceHistory "process"
   ws->history().loadNexus(m_file.get());
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/MDNormDirectSC.cpp b/Code/Mantid/Framework/MDAlgorithms/src/MDNormDirectSC.cpp
index f8e90b16805caf3ba0615f534c96f5e17a3061fe..df1dcf13a34e8cef3773929f16f3cb0eeac7ef88 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/MDNormDirectSC.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/MDNormDirectSC.cpp
@@ -245,7 +245,7 @@ MDHistoWorkspace_sptr MDNormDirectSC::binInputWS() {
  */
 void MDNormDirectSC::createNormalizationWS(const MDHistoWorkspace &dataWS) {
   // Copy the MDHisto workspace, and change signals and errors to 0.
-  m_normWS = boost::make_shared<MDHistoWorkspace>(dataWS);
+  m_normWS.reset(dataWS.clone().release());
   m_normWS->setTo(0., 0., 0.);
 }
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/MDNormSCD.cpp b/Code/Mantid/Framework/MDAlgorithms/src/MDNormSCD.cpp
index b66b356678205fa96750e35fd8f98c26a0e03bcf..6379ef072898f709cfdecc7bc193738ef7007e49 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/MDNormSCD.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/MDNormSCD.cpp
@@ -218,7 +218,7 @@ MDHistoWorkspace_sptr MDNormSCD::binInputWS() {
  */
 void MDNormSCD::createNormalizationWS(const MDHistoWorkspace &dataWS) {
   // Copy the MDHisto workspace, and change signals and errors to 0.
-  m_normWS = boost::make_shared<MDHistoWorkspace>(dataWS);
+  m_normWS.reset(dataWS.clone().release());
   m_normWS->setTo(0., 0., 0.);
 }
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/MDWSDescription.cpp b/Code/Mantid/Framework/MDAlgorithms/src/MDWSDescription.cpp
index 7985101f5e4305e941dae9eb02881d6e0dcf2886..96a904a245f7000be5617cf937b54fedae345ea8 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/MDWSDescription.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/MDWSDescription.cpp
@@ -1,5 +1,7 @@
 #include "MantidMDAlgorithms/MDWSDescription.h"
 
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/NumericAxis.h"
 
 #include "MantidKernel/TimeSeriesProperty.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/OneStepMDEW.cpp b/Code/Mantid/Framework/MDAlgorithms/src/OneStepMDEW.cpp
index 17b83b7f4df496c4ee1d5f3e0186a3a2be7dc636..3c2104d6cb3389a8ac895b7e3398fa35fe617531 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/OneStepMDEW.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/OneStepMDEW.cpp
@@ -57,7 +57,8 @@ void OneStepMDEW::exec() {
   loadAlg->setPropertyValue("Filename", getPropertyValue("Filename"));
   loadAlg->setPropertyValue("OutputWorkspace", tempWsName);
   loadAlg->executeAsChildAlg();
-  IEventWorkspace_sptr tempWS = loadAlg->getProperty("OutputWorkspace");
+  Workspace_sptr temp = loadAlg->getProperty("OutputWorkspace");
+  IEventWorkspace_sptr tempWS = boost::dynamic_pointer_cast<IEventWorkspace>(temp);
 
   // --------- Now Convert -------------------------------
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/Quantification/FitResolutionConvolvedModel.cpp b/Code/Mantid/Framework/MDAlgorithms/src/Quantification/FitResolutionConvolvedModel.cpp
index da845673529edfc948570c4d80e9b8f069538fed..57d515f35d6dcf1e43fce528c31521d193503a1a 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/Quantification/FitResolutionConvolvedModel.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/Quantification/FitResolutionConvolvedModel.cpp
@@ -1,6 +1,7 @@
 #include "MantidMDAlgorithms/Quantification/FitResolutionConvolvedModel.h"
 
 #include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidKernel/ListValidator.h"
 #include "MantidKernel/MandatoryValidator.h"
 #include "MantidMDAlgorithms/Quantification/ResolutionConvolvedCrossSection.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/Quantification/Resolution/TobyFitResolutionModel.cpp b/Code/Mantid/Framework/MDAlgorithms/src/Quantification/Resolution/TobyFitResolutionModel.cpp
index 3ac60433469ce308e37a7b12a96c77ba0420501e..24ebd954876c624867273dffc45a68d9b5522048 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/Quantification/Resolution/TobyFitResolutionModel.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/Quantification/Resolution/TobyFitResolutionModel.cpp
@@ -4,6 +4,7 @@
 #include "MantidMDAlgorithms/Quantification/CachedExperimentInfo.h"
 
 #include "MantidAPI/FrameworkManager.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidGeometry/Instrument/ReferenceFrame.h"
 #include "MantidGeometry/Crystal/OrientedLattice.h"
 #include "MantidKernel/MersenneTwister.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransform.cpp b/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransform.cpp
deleted file mode 100644
index 01124de040d00b21ad11a0da6cf5d9ddf16847cc..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransform.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-#include "MantidMDAlgorithms/ReflectometryTransform.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/BinEdgeAxis.h"
-#include "MantidKernel/UnitFactory.h"
-#include <boost/shared_ptr.hpp>
-
-using namespace Mantid::API;
-using namespace Mantid::DataObjects;
-using namespace Mantid::Kernel;
-
-namespace Mantid {
-namespace MDAlgorithms {
-
-ReflectometryTransform::ReflectometryTransform(int numberOfBinsQx,
-                                               int numberOfBinsQz)
-    : m_nbinsx(numberOfBinsQx), m_nbinsz(numberOfBinsQz) {}
-
-ReflectometryTransform::~ReflectometryTransform() {}
-
-boost::shared_ptr<MDEventWorkspace2Lean>
-ReflectometryTransform::createMDWorkspace(
-    Mantid::Geometry::IMDDimension_sptr a,
-    Mantid::Geometry::IMDDimension_sptr b,
-    BoxController_sptr boxController) const {
-  auto ws = boost::make_shared<MDEventWorkspace2Lean>();
-
-  ws->addDimension(a);
-  ws->addDimension(b);
-
-  BoxController_sptr wsbc = ws->getBoxController(); // Get the box controller
-  wsbc->setSplitInto(boxController->getSplitInto(0));
-  wsbc->setMaxDepth(boxController->getMaxDepth());
-  wsbc->setSplitThreshold(boxController->getSplitThreshold());
-
-  // Initialize the workspace.
-  ws->initialize();
-
-  // Start with a MDGridBox.
-  ws->splitBox();
-  return ws;
-}
-
-/**
- * Create a new X-Axis for the output workspace
- * @param ws : Workspace to attach the axis to
- * @param gradX : Gradient used in the linear transform from index to X-scale
- * @param cxToUnit : C-offset used in the linear transform
- * @param nBins : Number of bins along this axis
- * @param caption : Caption for the axis
- * @param units : Units label for the axis
- * @return Vector containing increments along the axis.
- */
-MantidVec createXAxis(MatrixWorkspace *const ws, const double gradX,
-                      const double cxToUnit, const size_t nBins,
-                      const std::string &caption, const std::string &units) {
-  // Create an X - Axis.
-  auto *const xAxis = new BinEdgeAxis(nBins);
-  ws->replaceAxis(0, xAxis);
-  auto unitXBasePtr = UnitFactory::Instance().create("Label");
-  boost::shared_ptr<Mantid::Kernel::Units::Label> xUnit =
-      boost::dynamic_pointer_cast<Mantid::Kernel::Units::Label>(unitXBasePtr);
-  xUnit->setLabel(caption, units);
-  xAxis->unit() = xUnit;
-  xAxis->title() = caption;
-  MantidVec xAxisVec(nBins);
-  for (size_t i = 0; i < nBins; ++i) {
-    double qxIncrement = ((1 / gradX) * ((double)i + 1) + cxToUnit);
-    xAxis->setValue(i, qxIncrement);
-    xAxisVec[i] = qxIncrement;
-  }
-  return xAxisVec;
-}
-
-/**
- * Create a new Y, or Vertical Axis for the output workspace
- * @param ws : Workspace to attache the vertical axis to
- * @param xAxisVec : Vector of x axis increments
- * @param gradY : Gradient used in linear transform from index to Y-scale
- * @param cyToUnit : C-offset used in the linear transform
- * @param nBins : Number of bins along the axis
- * @param caption : Caption for the axis
- * @param units : Units label for the axis
- */
-void createVerticalAxis(MatrixWorkspace *const ws, const MantidVec &xAxisVec,
-                        const double gradY, const double cyToUnit,
-                        const size_t nBins, const std::string &caption,
-                        const std::string &units) {
-  // Create a Y (vertical) Axis
-  auto *const verticalAxis = new BinEdgeAxis(nBins);
-  ws->replaceAxis(1, verticalAxis);
-  auto unitZBasePtr = UnitFactory::Instance().create("Label");
-  boost::shared_ptr<Mantid::Kernel::Units::Label> verticalUnit =
-      boost::dynamic_pointer_cast<Mantid::Kernel::Units::Label>(unitZBasePtr);
-  verticalAxis->unit() = verticalUnit;
-  verticalUnit->setLabel(caption, units);
-  verticalAxis->title() = caption;
-  for (size_t i = 0; i < nBins; ++i) {
-    ws->setX(i, xAxisVec);
-    double qzIncrement = ((1 / gradY) * ((double)i + 1) + cyToUnit);
-    verticalAxis->setValue(i, qzIncrement);
-  }
-}
-}
-}
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformKiKf.cpp b/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformKiKf.cpp
index b69e5a91294ca0142b2fa75433b9bc8b91e4a6ca..013df983702457572c6c3da5cda0d32c6e54b2f3 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformKiKf.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformKiKf.cpp
@@ -1,13 +1,6 @@
 #include "MantidMDAlgorithms/ReflectometryTransformKiKf.h"
-#include "MantidDataObjects/MDEventWorkspace.h"
-#include "MantidGeometry/MDGeometry/MDHistoDimension.h"
-#include "MantidDataObjects/Workspace2D.h"
-#include <stdexcept>
 
-using namespace Mantid::API;
 using namespace Mantid::DataObjects;
-using namespace Mantid::Kernel;
-using namespace Mantid::Geometry;
 
 namespace Mantid {
 namespace MDAlgorithms {
@@ -25,18 +18,13 @@ namespace MDAlgorithms {
 ReflectometryTransformKiKf::ReflectometryTransformKiKf(
     double kiMin, double kiMax, double kfMin, double kfMax,
     double incidentTheta, int numberOfBinsQx, int numberOfBinsQz)
-    : ReflectometryTransform(numberOfBinsQx, numberOfBinsQz), m_kiMin(kiMin),
-      m_kiMax(kiMax), m_kfMin(kfMin), m_kfMax(kfMax),
-      m_KiCalculation(incidentTheta) {
-  if (kiMin >= kiMax) {
-    throw std::invalid_argument("min ki bounds must be < max ki bounds");
-  }
-  if (kfMin >= kfMax) {
-    throw std::invalid_argument("min kf bounds must be < max kf bounds");
-  }
+    : ReflectometryTransform("Ki", "ki", kiMin, kiMax, "Kf", "kf", kfMin, kfMax,
+                             numberOfBinsQx, numberOfBinsQz,
+                             new CalculateReflectometryK()) {
   if (incidentTheta < 0 || incidentTheta > 90) {
     throw std::out_of_range("incident theta angle must be > 0 and < 90");
   }
+  m_calculator->setThetaIncident(incidentTheta);
 }
 
 //----------------------------------------------------------------------------------------------
@@ -44,109 +32,5 @@ ReflectometryTransformKiKf::ReflectometryTransformKiKf(
  */
 ReflectometryTransformKiKf::~ReflectometryTransformKiKf() {}
 
-/*
-  Execute the transformtion. Generates an output IMDEventWorkspace.
-  @return the constructed IMDEventWorkspace following the transformation.
-  @param ws: Input MatrixWorkspace const shared pointer
-  @param boxController: box controller to apply on output workspace.
-*/
-Mantid::API::IMDEventWorkspace_sptr ReflectometryTransformKiKf::executeMD(
-    Mantid::API::MatrixWorkspace_const_sptr inputWs,
-    BoxController_sptr boxController) const {
-  MDHistoDimension_sptr kiDim = MDHistoDimension_sptr(new MDHistoDimension(
-      "Ki", "ki", "(Ang^-1)", static_cast<Mantid::coord_t>(m_kiMin),
-      static_cast<Mantid::coord_t>(m_kiMax), m_nbinsx));
-  MDHistoDimension_sptr kfDim = MDHistoDimension_sptr(new MDHistoDimension(
-      "Kf", "kf", "(Ang^-1)", static_cast<Mantid::coord_t>(m_kfMin),
-      static_cast<Mantid::coord_t>(m_kfMax), m_nbinsz));
-
-  auto ws = createMDWorkspace(kiDim, kfDim, boxController);
-
-  auto spectraAxis = inputWs->getAxis(1);
-  for (size_t index = 0; index < inputWs->getNumberHistograms(); ++index) {
-    auto counts = inputWs->readY(index);
-    auto wavelengths = inputWs->readX(index);
-    auto errors = inputWs->readE(index);
-    const size_t nInputBins = wavelengths.size() - 1;
-    const double theta_final = spectraAxis->getValue(index);
-    CalculateReflectometryK kfCalculation(theta_final);
-    // Loop over all bins in spectra
-    for (size_t binIndex = 0; binIndex < nInputBins; ++binIndex) {
-      const double &wavelength =
-          0.5 * (wavelengths[binIndex] + wavelengths[binIndex + 1]);
-      double _ki = m_KiCalculation.execute(wavelength);
-      double _kf = kfCalculation.execute(wavelength);
-      double centers[2] = {_ki, _kf};
-
-      ws->addEvent(MDLeanEvent<2>(float(counts[binIndex]),
-                                  float(errors[binIndex] * errors[binIndex]),
-                                  centers));
-    }
-  }
-  ws->splitAllIfNeeded(NULL);
-  ws->refreshCache();
-  return ws;
-}
-
-/**
- *
- * @param inputWs : Input Matrix workspace
- * @return workspace group containing output matrix workspaces of ki and kf
- */
-Mantid::API::MatrixWorkspace_sptr ReflectometryTransformKiKf::execute(
-    Mantid::API::MatrixWorkspace_const_sptr inputWs) const {
-  auto ws = boost::make_shared<Mantid::DataObjects::Workspace2D>();
-
-  ws->initialize(m_nbinsz, m_nbinsx,
-                 m_nbinsx); // Create the output workspace as a distribution
-
-  // Mapping so that ki and kf values calculated can be added to the matrix
-  // workspace at the correct index.
-  const double gradKi = double(m_nbinsx) / (m_kiMax - m_kiMin); // The x - axis
-  const double gradKf =
-      double(m_nbinsz) / (m_kfMax - m_kfMin); // Actually the y-axis
-  const double cxToIndex = -gradKi * m_kiMin;
-  const double czToIndex = -gradKf * m_kfMin;
-  const double cxToKi = m_kiMin - (1 / gradKi);
-  const double czToKf = m_kfMin - (1 / gradKf);
-
-  // Create an X - Axis.
-  MantidVec xAxisVec =
-      createXAxis(ws.get(), gradKi, cxToKi, m_nbinsx, "ki", "1/Angstroms");
-  // Create a Y (vertical) Axis
-  createVerticalAxis(ws.get(), xAxisVec, gradKf, czToKf, m_nbinsz, "kf",
-                     "1/Angstroms");
-
-  // Loop over all entries in the input workspace and calculate ki and kf for
-  // each.
-  auto spectraAxis = inputWs->getAxis(1);
-  for (size_t index = 0; index < inputWs->getNumberHistograms(); ++index) {
-    auto counts = inputWs->readY(index);
-    auto wavelengths = inputWs->readX(index);
-    auto errors = inputWs->readE(index);
-    const size_t nInputBins = wavelengths.size() - 1;
-    const double theta_final = spectraAxis->getValue(index);
-    CalculateReflectometryK kfCalculation(theta_final);
-    // Loop over all bins in spectra
-    for (size_t binIndex = 0; binIndex < nInputBins; ++binIndex) {
-      const double wavelength =
-          0.5 * (wavelengths[binIndex] + wavelengths[binIndex + 1]);
-      double _ki = m_KiCalculation.execute(wavelength);
-      double _kf = kfCalculation.execute(wavelength);
-
-      if (_ki >= m_kiMin && _ki <= m_kiMax && _kf >= m_kfMin &&
-          _kf <= m_kfMax) // Check that the calculated ki and kf are in range
-      {
-        const int outIndexX = (int)((gradKi * _ki) + cxToIndex);
-        const int outIndexZ = (int)((gradKf * _kf) + czToIndex);
-
-        ws->dataY(outIndexZ)[outIndexX] += counts[binIndex];
-        ws->dataE(outIndexZ)[outIndexX] += errors[binIndex];
-      }
-    }
-  }
-  return ws;
-}
-
 } // namespace Mantid
 } // namespace MDAlgorithms
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformP.cpp b/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformP.cpp
index f0b777a6e985985d77a95e4ffbe0903d3650e935..cdf946616bfbabbcc51a5ded2de2dc32a72e057c 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformP.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformP.cpp
@@ -1,15 +1,6 @@
 #include "MantidMDAlgorithms/ReflectometryTransformP.h"
 
-#include "MantidDataObjects/MDEventFactory.h"
-#include "MantidDataObjects/MDEventWorkspace.h"
-#include "MantidDataObjects/Workspace2D.h"
-#include "MantidGeometry/MDGeometry/MDHistoDimension.h"
-#include "MantidKernel/Exception.h"
-
-using namespace Mantid::API;
 using namespace Mantid::DataObjects;
-using namespace Mantid::Geometry;
-using namespace Mantid::Kernel;
 
 namespace Mantid {
 namespace MDAlgorithms {
@@ -26,20 +17,14 @@ Constructor
 ReflectometryTransformP::ReflectometryTransformP(
     double pSumMin, double pSumMax, double pDiffMin, double pDiffMax,
     double incidentTheta, int numberOfBinsQx, int numberOfBinsQz)
-    : ReflectometryTransform(numberOfBinsQx, numberOfBinsQz),
-      m_pSumMin(pSumMin), m_pSumMax(pSumMax), m_pDiffMin(pDiffMin),
-      m_pDiffMax(pDiffMax), m_pSumCalculation(incidentTheta),
-      m_pDiffCalculation(incidentTheta) {
-  if (pSumMin >= m_pSumMax) {
-    throw std::invalid_argument("min sum p bounds must be < max sum p bounds");
-  }
-  if (pDiffMin >= pDiffMax) {
-    throw std::invalid_argument(
-        "min diff p bounds must be < max diff p bounds");
-  }
+    : ReflectometryTransform("Pz_i + Pz_f", "sum_pz", pSumMin, pSumMax,
+                             "Pz_i - Pz_f", "diff_pz", pDiffMin, pDiffMax,
+                             numberOfBinsQx, numberOfBinsQz,
+                             new CalculateReflectometryP()) {
   if (incidentTheta < 0 || incidentTheta > 90) {
     throw std::out_of_range("incident theta angle must be > 0 and < 90");
   }
+  m_calculator->setThetaIncident(incidentTheta);
 }
 
 //----------------------------------------------------------------------------------------------
@@ -47,109 +32,5 @@ ReflectometryTransformP::ReflectometryTransformP(
 */
 ReflectometryTransformP::~ReflectometryTransformP() {}
 
-Mantid::API::IMDEventWorkspace_sptr ReflectometryTransformP::executeMD(
-    Mantid::API::MatrixWorkspace_const_sptr inputWs,
-    BoxController_sptr boxController) const {
-  MDHistoDimension_sptr pSumDim = MDHistoDimension_sptr(
-      new MDHistoDimension("Pz_i + Pz_f", "sum_pz", "(Ang^-1)",
-                           static_cast<Mantid::coord_t>(m_pSumMin),
-                           static_cast<Mantid::coord_t>(m_pSumMax), m_nbinsx));
-  MDHistoDimension_sptr pDiffDim = MDHistoDimension_sptr(
-      new MDHistoDimension("Pz_i - Pz_f", "diff_pz", "(Ang^-1)",
-                           static_cast<Mantid::coord_t>(m_pDiffMin),
-                           static_cast<Mantid::coord_t>(m_pDiffMax), m_nbinsz));
-
-  auto ws = createMDWorkspace(pSumDim, pDiffDim, boxController);
-
-  auto spectraAxis = inputWs->getAxis(1);
-  for (size_t index = 0; index < inputWs->getNumberHistograms(); ++index) {
-    auto counts = inputWs->readY(index);
-    auto wavelengths = inputWs->readX(index);
-    auto errors = inputWs->readE(index);
-    const size_t nInputBins = wavelengths.size() - 1;
-    const double theta_final = spectraAxis->getValue(index);
-    m_pSumCalculation.setThetaFinal(theta_final);
-    m_pDiffCalculation.setThetaFinal(theta_final);
-    // Loop over all bins in spectra
-    for (size_t binIndex = 0; binIndex < nInputBins; ++binIndex) {
-      const double &wavelength =
-          0.5 * (wavelengths[binIndex] + wavelengths[binIndex + 1]);
-      double _qx = m_pSumCalculation.execute(wavelength);
-      double _qz = m_pDiffCalculation.execute(wavelength);
-      double centers[2] = {_qx, _qz};
-
-      ws->addEvent(MDLeanEvent<2>(float(counts[binIndex]),
-                                  float(errors[binIndex] * errors[binIndex]),
-                                  centers));
-    }
-  }
-  ws->splitAllIfNeeded(NULL);
-  ws->refreshCache();
-  return ws;
-}
-
-/**
- * Convert to Pi-Pf, Pi+Pf
- * @param inputWs : Input Matrix workspace
- * @return workspace group containing output matrix workspaces of ki and kf
- */
-Mantid::API::MatrixWorkspace_sptr ReflectometryTransformP::execute(
-    Mantid::API::MatrixWorkspace_const_sptr inputWs) const {
-  auto ws = boost::make_shared<Mantid::DataObjects::Workspace2D>();
-
-  ws->initialize(m_nbinsz, m_nbinsx,
-                 m_nbinsx); // Create the output workspace as a distribution
-
-  // Mapping so that Psum and Pdiff values calculated can be added to the matrix
-  // workspace at the correct index.
-  const double gradPSum =
-      double(m_nbinsx) / (m_pSumMax - m_pSumMin); // The x - axis
-  const double gradPDiff =
-      double(m_nbinsz) / (m_pDiffMax - m_pDiffMin); // Actually the y-axis
-  const double cxToIndex = -gradPSum * m_pSumMin;
-  const double cyToIndex = -gradPDiff * m_pDiffMin;
-  const double cxToPSum = m_pSumMin - (1 / gradPSum);
-  const double cyToPDiff = m_pDiffMin - (1 / gradPDiff);
-
-  // Create an X - Axis.
-  MantidVec xAxisVec = createXAxis(ws.get(), gradPSum, cxToPSum, m_nbinsx,
-                                   "Pi + Pf", "1/Angstroms");
-  // Create a Y (vertical) Axis
-  createVerticalAxis(ws.get(), xAxisVec, gradPDiff, cyToPDiff, m_nbinsz,
-                     "Pi - Pf", "1/Angstroms");
-
-  // Loop over all entries in the input workspace and calculate Psum and Pdiff
-  // for each.
-  auto spectraAxis = inputWs->getAxis(1);
-  for (size_t index = 0; index < inputWs->getNumberHistograms(); ++index) {
-    auto counts = inputWs->readY(index);
-    auto wavelengths = inputWs->readX(index);
-    auto errors = inputWs->readE(index);
-    const size_t nInputBins = wavelengths.size() - 1;
-    const double theta_final = spectraAxis->getValue(index);
-    m_pSumCalculation.setThetaFinal(theta_final);
-    m_pDiffCalculation.setThetaFinal(theta_final);
-    // Loop over all bins in spectra
-    for (size_t binIndex = 0; binIndex < nInputBins; ++binIndex) {
-      const double wavelength =
-          0.5 * (wavelengths[binIndex] + wavelengths[binIndex + 1]);
-      double _pSum = m_pSumCalculation.execute(wavelength);
-      double _pDiff = m_pDiffCalculation.execute(wavelength);
-
-      if (_pSum >= m_pSumMin && _pSum <= m_pSumMax && _pDiff >= m_pDiffMin &&
-          _pDiff <=
-              m_pDiffMax) // Check that the calculated ki and kf are in range
-      {
-        const int outIndexX = (int)((gradPSum * _pSum) + cxToIndex);
-        const int outIndexZ = (int)((gradPDiff * _pDiff) + cyToIndex);
-
-        ws->dataY(outIndexZ)[outIndexX] += counts[binIndex];
-        ws->dataE(outIndexZ)[outIndexX] += errors[binIndex];
-      }
-    }
-  }
-  return ws;
-}
-
 } // namespace Mantid
 } // namespace MDAlgorithms
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformQxQz.cpp b/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformQxQz.cpp
index 6fdc53a4724e757fa0295bf4e3c1a7514120a1d7..7b0c889fe86404fd8f34ffb14d58cccff24d5d26 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformQxQz.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/ReflectometryTransformQxQz.cpp
@@ -1,13 +1,6 @@
 #include "MantidMDAlgorithms/ReflectometryTransformQxQz.h"
-#include "MantidDataObjects/MDEventWorkspace.h"
-#include "MantidGeometry/MDGeometry/MDHistoDimension.h"
-#include "MantidDataObjects/Workspace2D.h"
-#include <stdexcept>
 
-using namespace Mantid::API;
 using namespace Mantid::DataObjects;
-using namespace Mantid::Geometry;
-using namespace Mantid::Kernel;
 
 namespace Mantid {
 namespace MDAlgorithms {
@@ -30,129 +23,15 @@ ReflectometryTransformQxQz::~ReflectometryTransformQxQz() {}
 ReflectometryTransformQxQz::ReflectometryTransformQxQz(
     double qxMin, double qxMax, double qzMin, double qzMax,
     double incidentTheta, int numberOfBinsQx, int numberOfBinsQz)
-    : ReflectometryTransform(numberOfBinsQx, numberOfBinsQz), m_qxMin(qxMin),
-      m_qxMax(qxMax), m_qzMin(qzMin), m_qzMax(qzMax),
-      m_QxCalculation(incidentTheta), m_QzCalculation(incidentTheta) {
-  if (qxMin >= qxMax) {
-    throw std::invalid_argument("min qx bounds must be < max qx bounds");
-  }
-  if (qzMin >= qzMax) {
-    throw std::invalid_argument("min qz bounds must be < max qz bounds");
-  }
+    : ReflectometryTransform("Qx", "qx", qxMin, qxMax, "Qz", "qz", qzMin, qzMax,
+                             numberOfBinsQx, numberOfBinsQz,
+                             new CalculateReflectometryQxQz()) {
   if (incidentTheta < 0 || incidentTheta > 90) {
     throw std::out_of_range("incident theta angle must be > 0 and < 90");
   }
+  m_calculator->setThetaIncident(incidentTheta);
 }
 
-/*
- Execute the transformation. Generates an output IMDEventWorkspace.
- @return the constructed IMDEventWorkspace following the transformation.
- @param ws: Input MatrixWorkspace, with a vertical axis of signed-theta, and an
- x-axis of wavelength
- @param boxController: Box controller to apply to output workspace
- */
-IMDEventWorkspace_sptr
-ReflectometryTransformQxQz::executeMD(MatrixWorkspace_const_sptr inputWs,
-                                      BoxController_sptr boxController) const {
-
-  MDHistoDimension_sptr qxDim = MDHistoDimension_sptr(new MDHistoDimension(
-      "Qx", "qx", "(Ang^-1)", static_cast<Mantid::coord_t>(m_qxMin),
-      static_cast<Mantid::coord_t>(m_qxMax), m_nbinsx));
-  MDHistoDimension_sptr qzDim = MDHistoDimension_sptr(new MDHistoDimension(
-      "Qz", "qz", "(Ang^-1)", static_cast<Mantid::coord_t>(m_qzMin),
-      static_cast<Mantid::coord_t>(m_qzMax), m_nbinsz));
-
-  auto ws = createMDWorkspace(qxDim, qzDim, boxController);
-
-  auto spectraAxis = inputWs->getAxis(1);
-  for (size_t index = 0; index < inputWs->getNumberHistograms(); ++index) {
-    auto counts = inputWs->readY(index);
-    auto wavelengths = inputWs->readX(index);
-    auto errors = inputWs->readE(index);
-    const size_t nInputBins = wavelengths.size() - 1;
-    const double theta_final = spectraAxis->getValue(index);
-    m_QxCalculation.setThetaFinal(theta_final);
-    m_QzCalculation.setThetaFinal(theta_final);
-    // Loop over all bins in spectra
-    for (size_t binIndex = 0; binIndex < nInputBins; ++binIndex) {
-      const double &wavelength =
-          0.5 * (wavelengths[binIndex] + wavelengths[binIndex + 1]);
-      double _qx = m_QxCalculation.execute(wavelength);
-      double _qz = m_QzCalculation.execute(wavelength);
-      double centers[2] = {_qx, _qz};
-
-      ws->addEvent(MDLeanEvent<2>(float(counts[binIndex]),
-                                  float(errors[binIndex] * errors[binIndex]),
-                                  centers));
-    }
-  }
-  ws->splitAllIfNeeded(NULL);
-  ws->refreshCache();
-  return ws;
-}
-
-/**
- * Execute the transformation. Generates an output Matrix workspace.
- * @param inputWs : Input workspace with a vertical axis of signed-theta and an
- * x-axis of wavelength
- * @return : A 2D workspace with qz on the vertical axis and qx on the
- * horizontal axis.
- */
-MatrixWorkspace_sptr
-ReflectometryTransformQxQz::execute(MatrixWorkspace_const_sptr inputWs) const {
-  auto ws = boost::make_shared<Mantid::DataObjects::Workspace2D>();
-
-  ws->initialize(m_nbinsz, m_nbinsx,
-                 m_nbinsx); // Create the output workspace as a distribution
-
-  // Mapping so that qx and qz values calculated can be added to the matrix
-  // workspace at the correct index.
-  const double gradQx = double(m_nbinsx) / (m_qxMax - m_qxMin); // The x - axis
-  const double gradQz =
-      double(m_nbinsz) / (m_qzMax - m_qzMin); // Actually the y-axis
-  const double cxToIndex = -gradQx * m_qxMin;
-  const double czToIndex = -gradQz * m_qzMin;
-  const double cxToQ = m_qxMin - (1 / gradQx);
-  const double czToQ = m_qzMin - (1 / gradQz);
-
-  // Create an X - Axis.
-  MantidVec xAxisVec =
-      createXAxis(ws.get(), gradQx, cxToQ, m_nbinsx, "qx", "1/Angstroms");
-  // Create a Y (vertical) Axis
-  createVerticalAxis(ws.get(), xAxisVec, gradQz, czToQ, m_nbinsz, "qz",
-                     "1/Angstroms");
-
-  // Loop over all entries in the input workspace and calculate qx and qz for
-  // each.
-  auto spectraAxis = inputWs->getAxis(1);
-  for (size_t index = 0; index < inputWs->getNumberHistograms(); ++index) {
-    auto counts = inputWs->readY(index);
-    auto wavelengths = inputWs->readX(index);
-    auto errors = inputWs->readE(index);
-    const size_t nInputBins = wavelengths.size() - 1;
-    const double theta_final = spectraAxis->getValue(index);
-    m_QxCalculation.setThetaFinal(theta_final);
-    m_QzCalculation.setThetaFinal(theta_final);
-    // Loop over all bins in spectra
-    for (size_t binIndex = 0; binIndex < nInputBins; ++binIndex) {
-      const double &wavelength =
-          0.5 * (wavelengths[binIndex] + wavelengths[binIndex + 1]);
-      const double _qx = m_QxCalculation.execute(wavelength);
-      const double _qz = m_QzCalculation.execute(wavelength);
-
-      if (_qx >= m_qxMin && _qx <= m_qxMax && _qz >= m_qzMin &&
-          _qz <= m_qzMax) // Check that the calculated qx and qz are in range
-      {
-        const int outIndexX = int((gradQx * _qx) + cxToIndex);
-        const int outIndexZ = int((gradQz * _qz) + czToIndex);
-
-        ws->dataY(outIndexZ)[outIndexX] += counts[binIndex];
-        ws->dataE(outIndexZ)[outIndexX] += errors[binIndex];
-      }
-    }
-  }
-  return ws;
-}
 
 } // namespace Mantid
 } // namespace MDAlgorithms
diff --git a/Code/Mantid/Framework/MDAlgorithms/src/SmoothMD.cpp b/Code/Mantid/Framework/MDAlgorithms/src/SmoothMD.cpp
index 12fbc22bd6ce5cfb16ec9206340c6b1fb4d4b166..d696dd7c9633aadd7e69fe15adeb9d8f429ce8bb 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/SmoothMD.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/SmoothMD.cpp
@@ -117,7 +117,7 @@ SmoothMD::hatSmooth(IMDHistoWorkspace_const_sptr toSmooth,
   uint64_t nPoints = toSmooth->getNPoints();
   Progress progress(this, 0, 1, size_t(double(nPoints) * 1.1));
   // Create the output workspace.
-  IMDHistoWorkspace_sptr outWS = toSmooth->clone();
+  IMDHistoWorkspace_sptr outWS(toSmooth->clone().release());
   progress.reportIncrement(
       size_t(double(nPoints) * 0.1)); // Report ~10% progress
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/BinMDTest.h b/Code/Mantid/Framework/MDAlgorithms/test/BinMDTest.h
index 70cfe7ea0628ba2a783c376a361a87a8d447acf6..68385b6595606a0f28832fda6abc7632189186a6 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/BinMDTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/BinMDTest.h
@@ -2,6 +2,7 @@
 #define MANTID_MDEVENTS_BINTOMDHISTOWORKSPACETEST_H_
 
 #include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/ImplicitFunctionBuilder.h"
 #include "MantidAPI/ImplicitFunctionFactory.h"
@@ -1005,6 +1006,36 @@ public:
       TSM_ASSERT_THROWS("Cannot allow BinMD on a pure MDHistoWorkspace. Should throw.", alg.execute(), std::runtime_error&);
   }
 
+  void test_normalization(){
+
+   FrameworkManager::Instance().exec("CreateMDWorkspace", 16,
+       "Dimensions", "2",
+       "Extents", "-10,10,-10,10",
+       "Names", "x,y",
+       "Units", "m,m",
+       "SplitInto", "4",
+       "SplitThreshold", "100",
+       "MaxRecursionDepth", "20",
+       "OutputWorkspace", "mdew");
+
+  FrameworkManager::Instance().exec("BinMD", 20,
+      "InputWorkspace", "mdew",
+      "OutputWorkspace", "binned",
+      "AxisAligned", "0",
+      "BasisVector0", "tx, m, 2.0, 0.0",
+      "BasisVector1", "ty, m, 0.0, 2.0",
+      "NormalizeBasisVectors", "1",
+      "ForceOrthogonal", "0",
+      "Translation", "-2, -2",
+      "OutputExtents", "-4,6, -4,6", /* The extents are in the scaled OUTPUT dimensions */
+      "OutputBins", "10,10");
+
+  auto binned = AnalysisDataService::Instance().retrieveWS<IMDHistoWorkspace>("binned");
+  TSM_ASSERT("All basis vectors should have been normalized", binned->allBasisNormalized());
+
+
+  }
+
 };
 
 
@@ -1073,6 +1104,7 @@ public:
   }
 
 
+
 };
 
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/ConvertCWSDExpToMomentumTest.h b/Code/Mantid/Framework/MDAlgorithms/test/ConvertCWSDExpToMomentumTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..3a574ae1b35d53d3c43e1ff0a73d5865790b585c
--- /dev/null
+++ b/Code/Mantid/Framework/MDAlgorithms/test/ConvertCWSDExpToMomentumTest.h
@@ -0,0 +1,128 @@
+#ifndef MANTID_MDALGORITHMS_CONVERTCWSDEXPTOMOMENTUMTEST_H_
+#define MANTID_MDALGORITHMS_CONVERTCWSDEXPTOMOMENTUMTEST_H_
+
+#include <cxxtest/TestSuite.h>
+
+#include "MantidMDAlgorithms/ConvertCWSDExpToMomentum.h"
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/TableRow.h"
+#include "MantidDataObjects/TableWorkspace.h"
+#include "MantidAPI/IMDIterator.h"
+
+using Mantid::MDAlgorithms::ConvertCWSDExpToMomentum;
+using namespace Mantid;
+using namespace Mantid::API;
+using namespace Mantid::DataObjects;
+using namespace Mantid::Kernel;
+
+class ConvertCWSDExpToMomentumTest : 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 ConvertCWSDExpToMomentumTest *createSuite() { return new ConvertCWSDExpToMomentumTest(); }
+  static void destroySuite( ConvertCWSDExpToMomentumTest *suite ) { delete suite; }
+
+
+  void test_Init()
+  {
+    // Create tableworkspaces as inputs
+    generateTestInputs();
+
+    ConvertCWSDExpToMomentum testalg;
+    testalg.initialize();
+    TS_ASSERT(testalg.isInitialized());
+  }
+
+  void test_LoadConvert1File()
+  {
+    // Init and set up
+    ConvertCWSDExpToMomentum testalg;
+    testalg.initialize();
+
+    testalg.setProperty("InputWorkspace", "DataFileTable");
+    testalg.setProperty("DetectorTableWorkspace", "DetectorTable");
+    testalg.setProperty("SourcePosition", m_sourcePos);
+    testalg.setProperty("SamplePosition", m_samplePos);
+    testalg.setProperty("PixelDimension", m_pixelDimension);
+    testalg.setProperty("OutputWorkspace", "QSampleMDEvents");
+    testalg.setProperty("IsBaseName", false);
+    testalg.setProperty("Directory", ".");
+
+    testalg.execute();
+    TS_ASSERT(testalg.isExecuted());
+
+    API::IMDEventWorkspace_sptr outws = boost::dynamic_pointer_cast<IMDEventWorkspace>(
+          AnalysisDataService::Instance().retrieve("QSampleMDEvents"));
+    TS_ASSERT(outws);
+
+    IMDIterator *mditer = outws->createIterator();
+    TS_ASSERT_EQUALS(mditer->getNumEvents(), 7400);
+
+    size_t numexpinfo = outws->getNumExperimentInfo();
+    TS_ASSERT_EQUALS(numexpinfo, 1);
+
+    ExperimentInfo_const_sptr expinfo0 = outws->getExperimentInfo(0);
+    Geometry::Instrument_const_sptr instrument = expinfo0->getInstrument();
+    TS_ASSERT_EQUALS(instrument->getNumberDetectors(), 256);
+
+    return;
+  }
+
+
+
+private:
+  API::ITableWorkspace_sptr m_dataTableWS;
+  API::ITableWorkspace_sptr m_detectorTableWS;
+  std::vector<double> m_sourcePos;
+  std::vector<double> m_samplePos;
+  std::vector<double> m_pixelDimension;
+
+  void generateTestInputs()
+  {
+    // Create data table
+    DataObjects::TableWorkspace_sptr datatable = boost::make_shared<DataObjects::TableWorkspace>();
+    datatable->addColumn("int", "Scan No");
+    datatable->addColumn("int", "Pt. No");
+    datatable->addColumn("str", "File Name");
+    datatable->addColumn("int", "Starting DetID");
+    TableRow row0 = datatable->appendRow();
+    row0 << 1 << 522 << "HB3A_exp355_scan0001_0522.xml" << 256*256;
+    m_dataTableWS = boost::dynamic_pointer_cast<ITableWorkspace>(datatable);
+    TS_ASSERT(m_dataTableWS);
+
+
+    // Create detector table
+    DataObjects::TableWorkspace_sptr dettable = boost::make_shared<DataObjects::TableWorkspace>();
+    dettable->addColumn("int", "DetID");
+    dettable->addColumn("double", "X");
+    dettable->addColumn("double", "Y");
+    dettable->addColumn("double", "Z");
+    for (size_t i = 0; i < 256; ++i)
+    {
+      TableRow detrow = dettable->appendRow();
+      double x = 0.38+static_cast<double>(i-128)*0.001;
+      double y = 0;
+      double z = 0.38+static_cast<double>(i-128)*0.001;
+      detrow << static_cast<int>(i) + 1 << x << y << z;
+    }
+
+    m_detectorTableWS = boost::dynamic_pointer_cast<ITableWorkspace>(dettable);
+    TS_ASSERT(m_detectorTableWS);
+
+    AnalysisDataService::Instance().addOrReplace("DataFileTable", m_dataTableWS);
+    AnalysisDataService::Instance().addOrReplace("DetectorTable", m_detectorTableWS);
+
+    // Source and sample position
+    m_sourcePos.resize(3, 0.0);
+    m_sourcePos[2] = -2;
+
+    m_samplePos.resize(3, 0.0);
+
+    m_pixelDimension.resize(8, 0.0);
+  }
+
+
+};
+
+
+#endif /* MANTID_MDALGORITHMS_CONVERTCWSDEXPTOMOMENTUMTEST_H_ */
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/ConvertSpiceDataToRealSpaceTest.h b/Code/Mantid/Framework/MDAlgorithms/test/ConvertSpiceDataToRealSpaceTest.h
index 0ba750d637d4e394d70603356dbd391651d1472c..3c3d8ca250fa6e174b077ab3dc4dc8a505f75a90 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/ConvertSpiceDataToRealSpaceTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/ConvertSpiceDataToRealSpaceTest.h
@@ -6,6 +6,7 @@
 #include "MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h"
 #include "MantidDataHandling/LoadSpiceAscii.h"
 #include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidDataHandling/LoadInstrument.h"
 #include "MantidAPI/IMDIterator.h"
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/ConvertToReflectometryQTest.h b/Code/Mantid/Framework/MDAlgorithms/test/ConvertToReflectometryQTest.h
index 7911e540c1d3f1dbd0d6ae9bb4cac486cfa85399..7fe868c879964593b04c0825d9ebeb0e82725470 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/ConvertToReflectometryQTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/ConvertToReflectometryQTest.h
@@ -10,6 +10,7 @@
 #include "MantidKernel/PropertyWithValue.h"
 #include "MantidMDAlgorithms/ConvertToReflectometryQ.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
+#include "MantidDataObjects/Workspace2D.h"
 
 #include <boost/assign.hpp>
 
@@ -182,6 +183,17 @@ public:
      TS_ASSERT_EQUALS(2, ws->run().getLogData().size());
   }
 
+  void test_execute_qxqz_normalized_polygon_2D()
+  {
+     const bool outputAsMD = false;
+     auto alg = make_standard_algorithm("Q (lab frame)", outputAsMD);
+     alg->setProperty("Method", "NormalisedPolygon");
+     alg->execute();
+     auto ws = boost::dynamic_pointer_cast<Mantid::API::MatrixWorkspace>(Mantid::API::AnalysisDataService::Instance().retrieve("OutputTransformedWorkspace"));
+     TS_ASSERT(ws != NULL);
+     TS_ASSERT_EQUALS(2, ws->run().getLogData().size());
+  }
+
   void test_execute_kikf_2D()
   {
      const bool outputAsMD = false;
@@ -295,6 +307,25 @@ public:
     TS_ASSERT(out != NULL);
     TS_ASSERT_EQUALS(out->getNumDims(), 2);
   }
+
+  void testPerformanceNormPoly()
+  {
+    TS_ASSERT(true);
+    ConvertToReflectometryQ alg;
+    alg.initialize();
+    alg.setProperty("InputWorkspace", ws->getItem(0));
+    alg.setProperty("OutputDimensions", "Q (lab frame)");
+    alg.setProperty("OutputAsMDWorkspace", false);
+    alg.setPropertyValue("OutputWorkspace", "OutputTransformedWorkspace");
+    alg.setProperty("OverrideIncidentTheta", true);
+    alg.setProperty("IncidentTheta", 0.5);
+    alg.setProperty("Method", "NormalisedPolygon");
+    TS_ASSERT(alg.execute());
+    TS_ASSERT(alg.isExecuted());
+    auto out = AnalysisDataService::Instance().retrieveWS<Mantid::DataObjects::Workspace2D>("OutputTransformedWorkspace");
+    TS_ASSERT(out != NULL);
+    TS_ASSERT_EQUALS(out->getNumDims(), 2);
+  }
 };
 
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/CutMDTest.h b/Code/Mantid/Framework/MDAlgorithms/test/CutMDTest.h
index 1000cfbafcc543ff7d8c43e8957310acaf648607..ac87a7dba8fc07a436374030e4fb46d3950c957e 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/CutMDTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/CutMDTest.h
@@ -7,6 +7,7 @@
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidTestHelpers/MDEventsTestHelper.h"
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/FindPeaksMDTest.h b/Code/Mantid/Framework/MDAlgorithms/test/FindPeaksMDTest.h
index 301b82f6760ebc9e1a1994e5e5aa0214b396da4e..12d4c333a9afd73131d2e5137ec10ba327e70c06 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/FindPeaksMDTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/FindPeaksMDTest.h
@@ -16,47 +16,51 @@ using namespace Mantid::DataObjects;
 using Mantid::Geometry::Instrument_sptr;
 using Mantid::Kernel::PropertyWithValue;
 
+//-------------------------------------------------------------------------------
+/** Create the (blank) MDEW */
+static void createMDEW()
+{
+  // ---- Start with empty MDEW ----
+  FrameworkManager::Instance().exec("CreateMDWorkspace", 18, "Dimensions", "3", "EventType", "MDEvent",
+      "Extents", "-10,10,-10,10,-10,10", "Names", "Q_lab_x,Q_lab_y,Q_lab_z", "Units", "-,-,-",
+      "SplitInto", "5", "SplitThreshold", "20", "MaxRecursionDepth", "15", "OutputWorkspace", "MDEWS");
+
+  // Give it an instrument
+  Instrument_sptr inst = ComponentCreationHelper::createTestInstrumentRectangular2(1, 100, 0.05);
+  IMDEventWorkspace_sptr ws;
+  TS_ASSERT_THROWS_NOTHING(
+      ws = AnalysisDataService::Instance().retrieveWS<IMDEventWorkspace>("MDEWS"));
+  ExperimentInfo_sptr ei(new ExperimentInfo());
+  ei->setInstrument(inst);
+  // Give it a run number
+  ei->mutableRun().addProperty(new PropertyWithValue<std::string>("run_number", "12345"), true);
+  ws->addExperimentInfo(ei);
+}
+
+//-------------------------------------------------------------------------------
+/** Add a fake peak */
+static void addPeak(size_t num, double x, double y, double z, double radius)
+{
+  std::ostringstream mess;
+  mess << num / 2 << ", " << x << ", " << y << ", " << z << ", " << radius;
+  FrameworkManager::Instance().exec("FakeMDEventData", 4, "InputWorkspace", "MDEWS", "PeakParams",
+      mess.str().c_str());
+
+  // Add a center with more events (half radius, half the total), to create a "peak"
+  std::ostringstream mess2;
+  mess2 << num / 2 << ", " << x << ", " << y << ", " << z << ", " << radius / 2;
+  FrameworkManager::Instance().exec("FakeMDEventData", 4, "InputWorkspace", "MDEWS", "PeakParams",
+      mess2.str().c_str());
+}
+
+
+//=====================================================================================
+// Functional Tests
+//=====================================================================================
 class FindPeaksMDTest: public CxxTest::TestSuite
 {
 public:
 
-  //-------------------------------------------------------------------------------
-  /** Create the (blank) MDEW */
-  static void createMDEW()
-  {
-    // ---- Start with empty MDEW ----
-    FrameworkManager::Instance().exec("CreateMDWorkspace", 18, "Dimensions", "3", "EventType", "MDEvent",
-        "Extents", "-10,10,-10,10,-10,10", "Names", "Q_lab_x,Q_lab_y,Q_lab_z", "Units", "-,-,-",
-        "SplitInto", "5", "SplitThreshold", "20", "MaxRecursionDepth", "15", "OutputWorkspace", "MDEWS");
-
-    // Give it an instrument
-    Instrument_sptr inst = ComponentCreationHelper::createTestInstrumentRectangular2(1, 100, 0.05);
-    IMDEventWorkspace_sptr ws;
-    TS_ASSERT_THROWS_NOTHING(
-        ws = AnalysisDataService::Instance().retrieveWS<IMDEventWorkspace>("MDEWS"));
-    ExperimentInfo_sptr ei(new ExperimentInfo());
-    ei->setInstrument(inst);
-    // Give it a run number
-    ei->mutableRun().addProperty(new PropertyWithValue<std::string>("run_number", "12345"), true);
-    ws->addExperimentInfo(ei);
-  }
-
-  //-------------------------------------------------------------------------------
-  /** Add a fake peak */
-  static void addPeak(size_t num, double x, double y, double z, double radius)
-  {
-    std::ostringstream mess;
-    mess << num / 2 << ", " << x << ", " << y << ", " << z << ", " << radius;
-    FrameworkManager::Instance().exec("FakeMDEventData", 4, "InputWorkspace", "MDEWS", "PeakParams",
-        mess.str().c_str());
-
-    // Add a center with more events (half radius, half the total), to create a "peak"
-    std::ostringstream mess2;
-    mess2 << num / 2 << ", " << x << ", " << y << ", " << z << ", " << radius / 2;
-    FrameworkManager::Instance().exec("FakeMDEventData", 4, "InputWorkspace", "MDEWS", "PeakParams",
-        mess2.str().c_str());
-  }
-
   void test_Init()
   {
     FindPeaksMD alg;
@@ -208,5 +212,67 @@ public:
 
 };
 
+//=====================================================================================
+// Performance Tests
+//=====================================================================================
+class FindPeaksMDTestPerformance: public CxxTest::TestSuite
+{
+
+private:
+
+  // Input data
+  
+
+
+public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static FindPeaksMDTestPerformance *createSuite()
+  {
+    return new FindPeaksMDTestPerformance();
+  }
+  static void destroySuite(FindPeaksMDTestPerformance *suite)
+  {
+    delete suite;
+  }
+  FindPeaksMDTestPerformance()
+  {
+    FrameworkManager::Instance();
+
+    // Make the fake data
+    createMDEW();
+
+    for(double x = -5; x <= 5; x+=1.0){
+    for(double y = -2; y <= 2; y+=1.0){
+    for(double z = -2; z <= 2; z+=1.0){
+      addPeak(100, x, y, z, 0.01);
+    }
+    }
+    }
+
+  }
+
+  void test_performance(){
+  // Name of the output workspace.
+    std::string outWSName("peaksFound");
+
+    FindPeaksMD alg; 
+    alg.initialize();
+
+    alg.setPropertyValue("InputWorkspace", "MDEWS");
+    alg.setPropertyValue("OutputWorkspace", outWSName);
+    alg.setPropertyValue("DensityThresholdFactor", "2.0");
+    alg.setPropertyValue("PeakDistanceThreshold", "0.7");
+    alg.setProperty("MaxPeaks", int64_t(300));
+
+    alg.execute();
+
+    // Retrieve the workspace from data service.
+    PeaksWorkspace_sptr ws = AnalysisDataService::Instance().retrieveWS<PeaksWorkspace>(outWSName);
+    TS_ASSERT(ws);
+  }
+
+};
+
 #endif /* MANTID_MDEVENTS_MDEWFINDPEAKSTEST_H_ */
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/GetSpiceDataRawCountsFromMDTest.h b/Code/Mantid/Framework/MDAlgorithms/test/GetSpiceDataRawCountsFromMDTest.h
index 64abd402a4d3dcac27297eb78bbd2c99b6a793ae..ca23e3bc46a502493ec4d52a3b718d0522c85a2a 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/GetSpiceDataRawCountsFromMDTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/GetSpiceDataRawCountsFromMDTest.h
@@ -6,6 +6,8 @@
 #include "MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h"
 #include "MantidDataHandling/LoadSpiceAscii.h"
 #include "MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h"
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/MatrixWorkspace.h"
 
 using Mantid::MDAlgorithms::GetSpiceDataRawCountsFromMD;
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformKiKfTest.h b/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformKiKfTest.h
index 55a9a02bc881dc451152188c97d21c8c01192e25..a44399fd90fb7265055eb28fe2570c5a6115131c 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformKiKfTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformKiKfTest.h
@@ -92,27 +92,31 @@ public:
     const double wavelength = 1;
 
     //Sine 0 = 0
-    CalculateReflectometryK A(0);
-    TS_ASSERT_EQUALS(0, A.execute(wavelength));
+    CalculateReflectometryK A;
+    A.setThetaIncident(0);
+    TS_ASSERT_EQUALS(0, A.calculateDim0(wavelength));
 
     //Sine 90 = 1
-    CalculateReflectometryK B(90);
-    TS_ASSERT_DELTA(2*M_PI/wavelength, B.execute(wavelength), 0.0001);
+    CalculateReflectometryK B;
+    B.setThetaIncident(90);
+    TS_ASSERT_DELTA(2*M_PI/wavelength, B.calculateDim0(wavelength), 0.0001);
 
     //Sine 270 = -1
-    CalculateReflectometryK C(270);
-    TS_ASSERT_DELTA(-2*M_PI/wavelength, C.execute(wavelength), 0.0001);
+    CalculateReflectometryK C;
+    C.setThetaIncident(270);
+    TS_ASSERT_DELTA(-2*M_PI/wavelength, C.calculateDim0(wavelength), 0.0001);
   }
 
   void test_recalculate_k()
   {
     const double wavelength = 1;
 
-    CalculateReflectometryK A(90);
-    TS_ASSERT_DELTA(2*M_PI/wavelength, A.execute(wavelength), 0.0001);
+    CalculateReflectometryK A;
+    A.setThetaIncident(90);
+    TS_ASSERT_DELTA(2*M_PI/wavelength, A.calculateDim0(wavelength), 0.0001);
 
     //Now re-execute on the same calculation object.
-    TS_ASSERT_DELTA(M_PI/wavelength, A.execute(2*wavelength), 0.0001);
+    TS_ASSERT_DELTA(M_PI/wavelength, A.calculateDim0(2*wavelength), 0.0001);
   }
 
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformPTest.h b/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformPTest.h
index 5d030ed664e22788134f238293c08c7972bfc32c..8df091058c2e655c3ca66f3c6e9041bbd401b3e5 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformPTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformPTest.h
@@ -95,42 +95,50 @@ public:
   {
     const double wavelength = 1;
 
-    CalculateReflectometryDiffP A(0);
+    CalculateReflectometryP A;
+    A.setThetaIncident(0);
     A.setThetaFinal(0);
-    TS_ASSERT_EQUALS(0, A.execute(wavelength));
+    TS_ASSERT_EQUALS(0, A.calculateDim1(wavelength));
 
-    CalculateReflectometryDiffP B(90);
+    CalculateReflectometryP B;
+    B.setThetaIncident(90);
     B.setThetaFinal(0);
-    TS_ASSERT_DELTA(2*M_PI/wavelength, B.execute(wavelength), 0.0001);
+    TS_ASSERT_DELTA(2*M_PI/wavelength, B.calculateDim1(wavelength), 0.0001);
 
-    CalculateReflectometryDiffP C(0);
+    CalculateReflectometryP C;
+    C.setThetaIncident(0);
     C.setThetaFinal(90);
-    TS_ASSERT_DELTA(-2*M_PI/wavelength, C.execute(wavelength), 0.0001);
+    TS_ASSERT_DELTA(-2*M_PI/wavelength, C.calculateDim1(wavelength), 0.0001);
 
-    CalculateReflectometryDiffP D(90);
+    CalculateReflectometryP D;
+    D.setThetaIncident(90);
     D.setThetaFinal(90);
-    TS_ASSERT_EQUALS(0, A.execute(wavelength));
+    TS_ASSERT_EQUALS(0, A.calculateDim1(wavelength));
   }
 
   void test_calulate_sum_p()
   {
     const double wavelength = 1;
 
-    CalculateReflectometrySumP A(0);
+    CalculateReflectometryP A;
+    A.setThetaIncident(0);
     A.setThetaFinal(0);
-    TS_ASSERT_EQUALS(0, A.execute(wavelength));
+    TS_ASSERT_EQUALS(0, A.calculateDim0(wavelength));
 
-    CalculateReflectometrySumP B(90);
+    CalculateReflectometryP B;
+    B.setThetaIncident(90);
     B.setThetaFinal(0);
-    TS_ASSERT_DELTA(2*M_PI/wavelength, B.execute(wavelength), 0.0001);
+    TS_ASSERT_DELTA(2*M_PI/wavelength, B.calculateDim0(wavelength), 0.0001);
 
-    CalculateReflectometrySumP C(0);
+    CalculateReflectometryP C;
+    C.setThetaIncident(0);
     C.setThetaFinal(90);
-    TS_ASSERT_DELTA(2*M_PI/wavelength, C.execute(wavelength), 0.0001);
+    TS_ASSERT_DELTA(2*M_PI/wavelength, C.calculateDim0(wavelength), 0.0001);
 
-    CalculateReflectometrySumP D(90);
+    CalculateReflectometryP D;
+    D.setThetaIncident(90);
     D.setThetaFinal(90);
-    TS_ASSERT_DELTA(4*M_PI/wavelength, D.execute(wavelength), 0.0001);
+    TS_ASSERT_DELTA(4*M_PI/wavelength, D.calculateDim0(wavelength), 0.0001);
   }
 
 };
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformQxQzTest.h b/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformQxQzTest.h
index 2815fa4ab28ab693e1bdc986a4d0c8efeb739b75..e2239d12e096fc600c498e6cd7aeeba8d0d0ae75 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformQxQzTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/ReflectometryTransformQxQzTest.h
@@ -2,6 +2,7 @@
 #define MANTID_MDEVENTS_REFLECTOMETRYTRANFORMQXQZTEST_H_
 
 #include "MantidKernel/System.h"
+#include "MantidDataObjects/CalculateReflectometryQxQz.h"
 #include "MantidMDAlgorithms/ReflectometryTransformQxQz.h"
 
 #include <cxxtest/TestSuite.h>
@@ -9,143 +10,154 @@
 #include <cmath>
 
 using namespace Mantid::API;
+using namespace Mantid::DataObjects;
 using namespace Mantid::MDAlgorithms;
 
-class ReflectometryTransformQxQzTest : public CxxTest::TestSuite
-{
+class ReflectometryTransformQxQzTest : public CxxTest::TestSuite {
 private:
-
 public:
   // This pair of boilerplate methods prevent the suite being created statically
   // This means the constructor isn't called when running other tests
-  static ReflectometryTransformQxQzTest *createSuite() { return new ReflectometryTransformQxQzTest(); }
-  static void destroySuite( ReflectometryTransformQxQzTest *suite ) { delete suite; }
-
+  static ReflectometryTransformQxQzTest *createSuite() {
+    return new ReflectometryTransformQxQzTest();
+  }
+  static void destroySuite(ReflectometryTransformQxQzTest *suite) {
+    delete suite;
+  }
 
-  void test_qxmin_greater_than_qxmax_throws()
-  {
+  void test_qxmin_greater_than_qxmax_throws() {
     double qxMin = 2;
-    double qxMax = 1; //Smaller than qxMin!
+    double qxMax = 1; // Smaller than qxMin!
     double qzMin = 1;
     double qzMax = 2;
     double incidentTheta = 1;
-    TS_ASSERT_THROWS(ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta), std::invalid_argument);
+    TS_ASSERT_THROWS(
+        ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta),
+        std::invalid_argument);
   }
-  
-  void test_qxmin_equal_to_qxmax_throws()
-  {
+
+  void test_qxmin_equal_to_qxmax_throws() {
     double qxMin = 1;
-    double qxMax = 1; //Equal to qxMin!
+    double qxMax = 1; // Equal to qxMin!
     double qzMin = 1;
     double qzMax = 2;
     double incidentTheta = 1;
-    TS_ASSERT_THROWS(ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta), std::invalid_argument);
+    TS_ASSERT_THROWS(
+        ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta),
+        std::invalid_argument);
   }
 
-  void test_qzmin_greater_than_qzmax_throws()
-  {
+  void test_qzmin_greater_than_qzmax_throws() {
     double qxMin = 1;
-    double qxMax = 2; 
+    double qxMax = 2;
     double qzMin = 2;
-    double qzMax = 1; //Smaller than qzMin!
+    double qzMax = 1; // Smaller than qzMin!
     double incidentTheta = 1;
-    TS_ASSERT_THROWS(ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta), std::invalid_argument);
+    TS_ASSERT_THROWS(
+        ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta),
+        std::invalid_argument);
   }
-  
-  void test_qzmin_equal_to_qzmax_throws()
-  {
+
+  void test_qzmin_equal_to_qzmax_throws() {
     double qxMin = 1;
-    double qxMax = 2; 
+    double qxMax = 2;
     double qzMin = 1;
-    double qzMax = 1; //Equal to qzMin!
+    double qzMax = 1; // Equal to qzMin!
     double incidentTheta = 1;
-    TS_ASSERT_THROWS(ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta), std::invalid_argument);
+    TS_ASSERT_THROWS(
+        ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta),
+        std::invalid_argument);
   }
 
-  void test_incident_theta_negative()
-  {
+  void test_incident_theta_negative() {
     double qxMin = 1;
-    double qxMax = 2; 
+    double qxMax = 2;
     double qzMin = 1;
-    double qzMax = 3; 
-    double incidentTheta = -0.001; //Negative
-    TS_ASSERT_THROWS(ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta), std::out_of_range);
+    double qzMax = 3;
+    double incidentTheta = -0.001; // Negative
+    TS_ASSERT_THROWS(
+        ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta),
+        std::out_of_range);
   }
 
-  void test_incident_theta_too_large()
-  {
+  void test_incident_theta_too_large() {
     double qxMin = 1;
-    double qxMax = 2; 
+    double qxMax = 2;
     double qzMin = 1;
-    double qzMax = 3; 
-    double incidentTheta = 90.001; //Too large
-    TS_ASSERT_THROWS(ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta), std::out_of_range);
+    double qzMax = 3;
+    double incidentTheta = 90.001; // Too large
+    TS_ASSERT_THROWS(
+        ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta),
+        std::out_of_range);
   }
 
-  void test_valid_construction_inputs()
-  {
+  void test_valid_construction_inputs() {
     double qxMin = 1;
-    double qxMax = 2; 
+    double qxMax = 2;
     double qzMin = 1;
     double qzMax = 2;
     double incidentTheta = 1;
-    TS_ASSERT_THROWS_NOTHING(ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta));
+    TS_ASSERT_THROWS_NOTHING(
+        ReflectometryTransformQxQz(qxMin, qxMax, qzMin, qzMax, incidentTheta));
   }
 
   //---- Tests for Qx Calculator ---- //
 
-  void test_calculate_Qx()
-  {
-    //Set up calculation so that it collapses down to 2*M_PI/wavelength by setting initial theta to M_PI/2 and final theta to zero
-    CalculateReflectometryQx calculator(90);
+  void test_calculate_Qx() {
+    // Set up calculation so that it collapses down to 2*M_PI/wavelength by
+    // setting initial theta to M_PI/2 and final theta to zero
+    CalculateReflectometryQxQz calculator;
+    calculator.setThetaIncident(90);
     double qx;
     const double wavelength = 0.1;
     TS_ASSERT_THROWS_NOTHING(calculator.setThetaFinal(0));
-    TS_ASSERT_THROWS_NOTHING(qx = calculator.execute(wavelength));
-    TS_ASSERT_DELTA(2*M_PI/wavelength, qx, 0.0001);
+    TS_ASSERT_THROWS_NOTHING(qx = calculator.calculateDim0(wavelength));
+    TS_ASSERT_DELTA(2 * M_PI / wavelength, qx, 0.0001);
   }
 
-  void test_recalculate_Qx()
-  {
-    CalculateReflectometryQx calculator(0);
+  void test_recalculate_Qx() {
+    CalculateReflectometryQxQz calculator;
+    calculator.setThetaIncident(0);
     calculator.setThetaFinal(0);
     const double wavelength = 0.1;
-    TS_ASSERT_DELTA(0, calculator.execute(wavelength), 0.0001);
+    TS_ASSERT_DELTA(0, calculator.calculateDim0(wavelength), 0.0001);
 
-    //Now reset the final theta and should be able to re-execute
+    // Now reset the final theta and should be able to re-execute
     calculator.setThetaFinal(90);
-    TS_ASSERT_DELTA(-2*M_PI/wavelength, calculator.execute(wavelength), 0.0001);
+    TS_ASSERT_DELTA(-2 * M_PI / wavelength,
+                    calculator.calculateDim0(wavelength), 0.0001);
   }
 
   //---- End Tests for Qx Calculator ---- //
 
   //---- Tests for Qz Calculator ---- //
 
-  void test_calculate_Qz()
-  {
-    //Set up calculation so that it collapses down to 2*M_PI/wavelength 
-    CalculateReflectometryQz calculator(0);
+  void test_calculate_Qz() {
+    // Set up calculation so that it collapses down to 2*M_PI/wavelength
+    CalculateReflectometryQxQz calculator;
+    calculator.setThetaIncident(0);
     double qx;
     const double wavelength = 0.1;
     TS_ASSERT_THROWS_NOTHING(calculator.setThetaFinal(90));
-    TS_ASSERT_THROWS_NOTHING(qx = calculator.execute(wavelength));
-    TS_ASSERT_DELTA(2*M_PI/wavelength, qx, 0.0001);
+    TS_ASSERT_THROWS_NOTHING(qx = calculator.calculateDim1(wavelength));
+    TS_ASSERT_DELTA(2 * M_PI / wavelength, qx, 0.0001);
   }
 
-  void test_recalculate_Qz()
-  {
-    CalculateReflectometryQz calculator(90);
+  void test_recalculate_Qz() {
+    CalculateReflectometryQxQz calculator;
+    calculator.setThetaIncident(90);
     calculator.setThetaFinal(90);
     const double wavelength = 0.1;
-    TS_ASSERT_DELTA(2*(2*M_PI/wavelength), calculator.execute(wavelength), 0.001);
+    TS_ASSERT_DELTA(2 * (2 * M_PI / wavelength),
+                    calculator.calculateDim1(wavelength), 0.001);
 
-    //Now reset the final theta and should be able to re-execute
+    // Now reset the final theta and should be able to re-execute
     calculator.setThetaFinal(0);
-    TS_ASSERT_DELTA(2*M_PI/wavelength, calculator.execute(wavelength), 0.001);
+    TS_ASSERT_DELTA(2 * M_PI / wavelength, calculator.calculateDim1(wavelength),
+                    0.001);
   }
 
   //---- End Tests for Qz Calculator ---- //
 };
 
-
 #endif /* MANTID_MDEVENTS_REFLECTOMETRYTRANFORMQXQZTEST_H_ */
diff --git a/Code/Mantid/Framework/Nexus/inc/MantidNexus/NexusFileIO.h b/Code/Mantid/Framework/Nexus/inc/MantidNexus/NexusFileIO.h
index 2c3129fc10e627e0030bf2f0389b0275e14d9ea3..f70e40b3b76a8b971b741a3d43cb0639caf60615 100644
--- a/Code/Mantid/Framework/Nexus/inc/MantidNexus/NexusFileIO.h
+++ b/Code/Mantid/Framework/Nexus/inc/MantidNexus/NexusFileIO.h
@@ -1,7 +1,7 @@
 #ifndef NEXUSFILEIO_H
 #define NEXUSFILEIO_H
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidAPI/Progress.h"
 #include "MantidKernel/TimeSeriesProperty.h"
 #include "MantidDataObjects/EventWorkspace.h"
diff --git a/Code/Mantid/Framework/Properties/Mantid.properties.template b/Code/Mantid/Framework/Properties/Mantid.properties.template
index 5f04c183d33ac185a5b3554b9336067d34e4dfc0..e400eaa8e67d6cbea9e41f8b8abf44e097f517d7 100644
--- a/Code/Mantid/Framework/Properties/Mantid.properties.template
+++ b/Code/Mantid/Framework/Properties/Mantid.properties.template
@@ -42,6 +42,11 @@ instrumentDefinition.directory = @MANTID_ROOT@/instrument
 UpdateInstrumentDefinitions.OnStartup = @UPDATE_INSTRUMENT_DEFINTITIONS@
 UpdateInstrumentDefinitions.URL = https://api.github.com/repos/mantidproject/mantid/contents/Code/Mantid/instrument
 
+# Whether to check for newer mantid versions on startup
+CheckMantidVersion.OnStartup = @CHECK_FOR_NEW_MANTID_VERSION@
+CheckMantidVersion.GitHubReleaseURL = https://api.github.com/repos/mantidproject/mantid/releases/latest
+CheckMantidVersion.DownloadURL = http://download.mantidproject.org
+
 # Whether to report usage statistics back to central server
 usagereports.enabled = @ENABLE_USAGE_REPORTS@
 
@@ -145,19 +150,28 @@ graph1d.autodistribution = On
 #AlgorithmChaining.SwitchedOn = 1
 
 # logging configuration
-# root level message filter (drop to debug for more messages)
-logging.loggers.root.level = notice
+# root level message filter (This sets a minimal level possible for any channel)
+logging.loggers.root.level = information
+
 # splitting the messages to many logging channels
 logging.loggers.root.channel.class = SplitterChannel
-logging.loggers.root.channel.channel1 = consoleChannel
+logging.loggers.root.channel.channel1 = consoleFilterChannel
 logging.loggers.root.channel.channel2 = fileFilterChannel
+
+# specific filter for the console channel raising the level to notice (drop to debug for debugging)
+logging.channels.consoleFilterChannel.class= FilterChannel
+logging.channels.consoleFilterChannel.channel= consoleChannel
+logging.channels.consoleFilterChannel.level= notice
+
+# specific filter for the file channel raising the level to information (drop to debug for debugging)
+logging.channels.fileFilterChannel.class= FilterChannel
+logging.channels.fileFilterChannel.channel= fileChannel
+logging.channels.fileFilterChannel.level= information
+
 # output to the console - primarily for console based apps
 logging.channels.consoleChannel.class = ConsoleChannel
 logging.channels.consoleChannel.formatter = f1
-# specific filter for the file channel raising the level to notice (drop to debug for debugging)
-logging.channels.fileFilterChannel.class= FilterChannel
-logging.channels.fileFilterChannel.channel= fileChannel
-logging.channels.fileFilterChannel.level= notice
+
 # output to a file (For error capturing and debugging)
 logging.channels.fileChannel.class = @FILECHANNEL@
 logging.channels.fileChannel.path =
@@ -165,10 +179,10 @@ logging.channels.fileChannel.rotation = 1 M
 logging.channels.fileChannel.purgeCount = 9
 logging.channels.fileChannel.formatter.class = PatternFormatter
 logging.channels.fileChannel.formatter.pattern = %Y-%m-%d %H:%M:%S,%i [%I] %p %s - %t
+logging.channels.fileChannel.formatter.times = local
 logging.formatters.f1.class = PatternFormatter
 logging.formatters.f1.pattern = @CONSOLEPATTERN@
 logging.formatters.f1.times = local
-logging.channels.fileChannel.formatter.times = local
 
 workspace.sendto.SansView.arguments=[file]
 workspace.sendto.SansView.saveusing=SaveCanSAS1D
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/ExtractWorkspace.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/ExtractWorkspace.h
new file mode 100644
index 0000000000000000000000000000000000000000..d4943ae855c2b28c55f855173c57371de6fbd88d
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/ExtractWorkspace.h
@@ -0,0 +1,43 @@
+#ifndef MANTID_PYTHONINTERFACE_EXTRACTWORKSPACE_H_
+#define MANTID_PYTHONINTERFACE_EXTRACTWORKSPACE_H_
+/**
+    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>
+*/
+#include <MantidAPI/Workspace.h>
+
+#include <boost/python/object_fwd.hpp>
+
+namespace Mantid {
+namespace PythonInterface {
+
+struct DLLExport ExtractWorkspace {
+  ExtractWorkspace(const boost::python::object &pyvalue);
+  bool check() const;
+  const API::Workspace_sptr operator()() const;
+
+private:
+  API::Workspace_sptr m_value;
+};
+}
+}
+
+#endif // MANTID_PYTHONINTERFACE_EXTRACTWORKSPACE_H_
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/PythonAlgorithm/DataProcessorAdapter.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/PythonAlgorithm/DataProcessorAdapter.h
index 56d0093b0a8e2e7f1ee1ee3c8ff1fe40399a32aa..2d434f6463a9fe2e6807e16893d77b8ac8d3d77b 100644
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/PythonAlgorithm/DataProcessorAdapter.h
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/PythonAlgorithm/DataProcessorAdapter.h
@@ -80,9 +80,16 @@ public:
   void forwardPropertiesProxy() { this->forwardProperties(); }
 
   boost::shared_ptr<Kernel::PropertyManager>
-  getProcessPropertiesProxy(const std::string &propertyManager) {
+  getProcessPropertiesProxy(const std::string &propertyManager=std::string()) {
     return this->getProcessProperties(propertyManager);
   }
+  void setPropManagerPropName(const std::string &propName) {
+    this->setPropManagerPropName(propName);
+  }
+
+  void mapPropertyName(const std::string &nameInProp, const std::string &nameInPropManager) {
+    this->mapPropertyName(nameInProp, nameInPropManager);
+  }
 
   API::Workspace_sptr assembleProxy(const std::string &partialWSName,
                                     const std::string &outputWSName) {
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/WorkspacePropertyExporter.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/WorkspacePropertyExporter.h
index 126a51e8b475f0861b4c46e28e29f2edaacd2502..2e42030ac5d52906d95d32c38dcc2ae2a235517a 100644
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/WorkspacePropertyExporter.h
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/api/WorkspacePropertyExporter.h
@@ -95,6 +95,14 @@ template <typename WorkspaceType> struct WorkspacePropertyExporter {
                                       locking, validator->clone());
   }
 
+  /**
+   * Ensure the stored type is always a Workspace_sptr
+   * This allows a reference to a Workspace_sptr to be used withh boost::python::extract
+   */
+  static Mantid::API::Workspace_sptr value(const TypedWorkspaceProperty& self) {
+    return self.operator()();
+  }
+
   /**
    * Defines the necessary exports for a WorkspaceProperty<WorkspaceType>. This
    * includes a
@@ -140,7 +148,11 @@ template <typename WorkspaceType> struct WorkspacePropertyExporter {
                               args("name", "defaultValue", "direction",
                                    "optional", "locking", "validator")))
         .def("isOptional", &TypedWorkspaceProperty::isOptional,
-             "Returns true if the property has been marked as optional");
+             "Returns true if the property has been marked as optional")
+
+        .add_property("value", &value)
+        ;
+
   }
 };
 }
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Converters/NDArrayTypeIndex.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Converters/NDArrayTypeIndex.h
index 6f08fb82f64e50458cb5824db8f37067deed3107..f3ab22d37b455124fd22aa6ae1f0c054f11b9923 100644
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Converters/NDArrayTypeIndex.h
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Converters/NDArrayTypeIndex.h
@@ -22,7 +22,7 @@
     File change history is stored at: <https://github.com/mantidproject/mantid>
     Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-#include "MantidKernel/System.h"
+#include "MantidPythonInterface/kernel/DllConfig.h"
 
 namespace Mantid {
 namespace PythonInterface {
@@ -38,7 +38,7 @@ namespace Converters {
  * contain a static const NPY_TYPES definition giving
  * the result of the mapping
  */
-template <typename T> struct DLLExport NDArrayTypeIndex { static int typenum; };
+template <typename T> struct PYTHON_KERNEL_DLL NDArrayTypeIndex { static int typenum; };
 }
 }
 }
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/DataServiceExporter.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/DataServiceExporter.h
index 2390df8ce2b6207302ffdb0b8cfeb39eb99fa050..5de200f77772535379d80f49cc8303345a0d4aba 100644
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/DataServiceExporter.h
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/DataServiceExporter.h
@@ -23,11 +23,12 @@
     File change history is stored at: <https://github.com/mantidproject/mantid>
     Code Documentation is available at: <http://doxygen.mantidproject.org>
  */
-#include "MantidPythonInterface/kernel/Policies/DowncastingPolicies.h"
 #include "MantidKernel/Exception.h"
+#include "MantidPythonInterface/kernel/WeakPtr.h"
 
 #include <boost/python/class.hpp>
 #include <boost/python/list.hpp>
+#include <boost/python/extract.hpp>
 
 #include <set>
 
@@ -38,9 +39,10 @@ namespace PythonInterface {
  * @tparam SvcType Type of DataService to export
  * @tparam SvcHeldType The type held within the DataService map
  */
-template <typename SvcType, typename SvcHeldType> struct DataServiceExporter {
-  /// typedef the type created by boost.python
+template <typename SvcType, typename SvcPtrType> struct DataServiceExporter {
+  // typedef the type created by boost.python
   typedef boost::python::class_<SvcType, boost::noncopyable> PythonType;
+  typedef boost::weak_ptr<typename SvcPtrType::element_type> WeakPtr;
 
   /**
    * Define the necessary boost.python framework to expor the templated
@@ -60,20 +62,18 @@ template <typename SvcType, typename SvcHeldType> struct DataServiceExporter {
   static PythonType define(const char *pythonClassName) {
     using namespace boost::python;
     using namespace Mantid::Kernel;
-    namespace Policies = Mantid::PythonInterface::Policies;
 
     auto classType =
         PythonType(pythonClassName, no_init)
-            .def("add", &SvcType::add,
+            .def("add", &DataServiceExporter::addItem,
                  "Adds the given object to the service with the given name. If "
                  "the name/object exists it will raise an error.")
-            .def("addOrReplace", &SvcType::addOrReplace,
+            .def("addOrReplace", &DataServiceExporter::addOrReplaceItem,
                  "Adds the given object to the service with the given name. "
                  "The the name exists the object is replaced.")
             .def("doesExist", &SvcType::doesExist,
                  "Returns True if the object is found in the service.")
             .def("retrieve", &DataServiceExporter::retrieveOrKeyError,
-                 return_value_policy<Policies::ToWeakPtrWithDowncast>(),
                  "Retrieve the named object. Raises an exception if the name "
                  "does not exist")
             .def("remove", &SvcType::remove, "Remove a named object")
@@ -86,15 +86,57 @@ template <typename SvcType, typename SvcHeldType> struct DataServiceExporter {
 
             // Make it act like a dictionary
             .def("__len__", &SvcType::size)
-            .def("__getitem__", &DataServiceExporter::retrieveOrKeyError,
-                 return_value_policy<Policies::ToWeakPtrWithDowncast>())
-            .def("__setitem__", &SvcType::addOrReplace)
+            .def("__getitem__", &DataServiceExporter::retrieveOrKeyError)
+            .def("__setitem__", &DataServiceExporter::addOrReplaceItem)
             .def("__contains__", &SvcType::doesExist)
             .def("__delitem__", &SvcType::remove);
 
     return classType;
   }
 
+  /**
+   * Add an item into the service, if it exists then an error is raised
+   * @param self A reference to the calling object
+   * @param name The name to assign to this in the service
+   * @param item A boost.python wrapped SvcHeldType object
+   */
+  static void addItem(SvcType &self, const std::string &name,
+                      const boost::python::object &item) {
+    self.add(name, extractCppValue(item));
+  }
+
+  /**
+   * Add or replace an item into the service, if it exists then an error is
+   * raised
+   * @param self A reference to the calling object
+   * @param name The name to assign to this in the service
+   * @param item A boost.python wrapped SvcHeldType object
+   */
+  static void addOrReplaceItem(SvcType &self, const std::string &name,
+                               const boost::python::object &item) {
+    self.addOrReplace(name, extractCppValue(item));
+  }
+
+  /**
+   * Extract a SvcPtrType C++ value from the Python object
+   * @param pyvalue Value of the
+   * @return The extracted value or thows an std::invalid_argument error
+   */
+  static SvcPtrType extractCppValue(const boost::python::object &pyvalue) {
+    // Test for a weak pointer first
+    boost::python::extract<WeakPtr &> extractWeak(pyvalue);
+    if (extractWeak.check()) {
+      return extractWeak().lock();
+    }
+    boost::python::extract<SvcPtrType &> extractShared(pyvalue);
+    if (extractShared.check()) {
+      return extractShared();
+    } else {
+      throw std::invalid_argument(
+          "Cannot extract pointer from Python object argument. Incorrect type");
+    }
+  }
+
   /**
    * Retrieves a shared_ptr from the ADS and raises a Python KeyError if it does
    * not exist
@@ -105,10 +147,9 @@ template <typename SvcType, typename SvcHeldType> struct DataServiceExporter {
    * @return A shared_ptr to the named object. If the name does not exist it
    * sets a KeyError error indicator.
    */
-  static SvcHeldType retrieveOrKeyError(SvcType &self,
-                                        const std::string &name) {
+  static WeakPtr retrieveOrKeyError(SvcType &self, const std::string &name) {
     using namespace Mantid::Kernel;
-    SvcHeldType item;
+    SvcPtrType item;
     try {
       item = self.retrieve(name);
     } catch (Exception::NotFoundError &) {
@@ -117,7 +158,7 @@ template <typename SvcType, typename SvcHeldType> struct DataServiceExporter {
       PyErr_SetString(PyExc_KeyError, err.c_str());
       throw boost::python::error_already_set();
     }
-    return item;
+    return WeakPtr(item);
   }
 
   /**
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/DllConfig.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/DllConfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..bab5ae9ba07f21cf40ef17bb81447cff07467446
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/DllConfig.h
@@ -0,0 +1,39 @@
+#ifndef MANTID_PYTHONINTERFACE_KERNEL_DLLCONFIG_H_
+#define MANTID_PYTHONINTERFACE_KERNEL_DLLCONFIG_H_
+
+/*
+    This file contains the DLLExport/DLLImport linkage configuration for the
+    Python _kernel library
+
+    @author Martyn Gigg, Tessella plc
+
+    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>
+*/
+#include "MantidKernel/System.h"
+
+#ifdef PythonKernelModule_EXPORTS
+#define PYTHON_KERNEL_DLL DLLExport
+#else
+#define PYTHON_KERNEL_DLL DLLImport
+#endif
+
+#endif // MANTID_PYTHONINTERFACE_KERNEL_DLLCONFIG_H_
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Policies/AsType.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Policies/AsType.h
new file mode 100644
index 0000000000000000000000000000000000000000..8929756c4e45f971848b1c3b4106180043e00d75
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Policies/AsType.h
@@ -0,0 +1,86 @@
+#ifndef MANTID_PYTHONINTERFACE_ASTYPE_H_
+#define MANTID_PYTHONINTERFACE_ASTYPE_H_
+/**
+    Copyright &copy; 2012 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>
+ */
+#include <boost/python/detail/prefix.hpp>
+#include <boost/python/to_python_value.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+
+/**
+ * Policy that can convert to return type to a super type
+ */
+
+namespace Mantid {
+namespace PythonInterface {
+namespace Policies {
+// Utility code to help out
+namespace {
+
+//-----------------------------------------------------------------------
+// Polciy implementation
+//-----------------------------------------------------------------------
+
+// The entry point for the policy is in the struct AsType below. It does
+// a check as to whether the return type is valid, if so it forwards the
+// call to this struct
+template <typename ReturnType, typename InputType> struct AsTypeImpl {
+
+  inline PyObject *operator()(const InputType &p) const {
+    using namespace boost::python;
+    return to_python_value<ReturnType>()(ReturnType(p));
+  }
+
+  inline PyTypeObject const *get_pytype() const {
+    using namespace boost::python;
+    return converter::registered<ReturnType>::converters
+        .to_python_target_type();
+  }
+};
+
+// Error handler for shared pointer types. If return type is wrong then user
+// sees the name of this
+// class in the output, which hopefully gives a clue as to what is going on
+template <typename T>
+struct AsType_Requires_New_Type_Automatically_Convertible_To_Original {};
+
+} // ends anonymous namespace
+
+/**
+ * Implements the AsType policy.
+ */
+template<class ReturnType>
+struct AsType {
+  template <class InputType> struct apply {
+    // Deduce if type is correct for policy, needs to be convertible to ReturnType
+    typedef typename boost::mpl::if_c<
+      boost::is_convertible<InputType, ReturnType>::value, AsTypeImpl<ReturnType, InputType>,
+        AsType_Requires_New_Type_Automatically_Convertible_To_Original<InputType>>::type type;
+  };
+};
+
+} // ends Policies namespace
+}
+} // ends Mantid::PythonInterface namespaces
+
+#endif /* MANTID_PYTHONINTERFACE_ASTYPE_H */
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Policies/DowncastingPolicies.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Policies/DowncastingPolicies.h
deleted file mode 100644
index 31817d76557498d6763546cd3d50a22a1acf6edb..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Policies/DowncastingPolicies.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef MANITD_PYTHONINTERFACE_TOWEAKPTRWITHDOWNCASTIMPL_H_
-#define MANITD_PYTHONINTERFACE_TOWEAKPTRWITHDOWNCASTIMPL_H_
-/**
-    Copyright &copy; 2012 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>
- */
-#include "MantidPythonInterface/kernel/Registry/DowncastRegistry.h"
-#include <boost/shared_ptr.hpp>
-
-#include <boost/python/detail/prefix.hpp> // for PyObject
-
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-namespace Mantid {
-
-namespace PythonInterface {
-
-//--------------------------------------------------------------------------------
-// Implementations
-//--------------------------------------------------------------------------------
-///@cond
-namespace // anonymous namespace with the implementation
-    {
-template <typename ArgType> struct AsWeakPtr {
-  static PyObject *apply(const Registry::DowncastDataItem &caster,
-                         const ArgType &p) {
-    return caster.toPythonAsWeakPtr(p);
-  }
-};
-template <typename ArgType> struct AsSharedPtr {
-  static PyObject *apply(const Registry::DowncastDataItem &caster,
-                         const ArgType &p) {
-    return caster.toPythonAsSharedPtr(p);
-  }
-};
-
-/**
- * Converts a ArgType object to a Python object and performs an downcast if it
- * can.
- * Only used for DataItem's at the moment so ArgType will always equal
- * DataItem_sptr
- * but the template is kept for possible extension in the future
- */
-template <typename ArgType, typename CasterType> struct DowncastImpl {
-  inline PyObject *operator()(const ArgType &p) const {
-    if (!p)
-      Py_RETURN_NONE;
-    return CasterType::apply(Registry::DowncastRegistry::retrieve(p->id()), p);
-  }
-
-  inline PyTypeObject const *get_pytype() const {
-    return boost::python::converter::registered<ArgType>::converters
-        .to_python_target_type();
-  }
-};
-
-} // end <anonymous>
-///@endcond
-
-namespace Policies {
-/**
- * NOTE: These only workspace for functions/methods returning a shared_ptr<T>
- *       where T is convertible to a Kernel::DataItem as it requires
- *       the presence of an id() method
- */
-
-//--------------------------------------------------------------------------------
-// ToWeakPtrWithDowncast
-//--------------------------------------------------------------------------------
-/**
- * This defines the structure as required by boost::python.
- * If T is convertible to a shared_ptr<DataItem> then it calls
- * ToWeakPtrWithDownastImpl or else just return the value as is
- */
-struct ToWeakPtrWithDowncast {
-  template <class T> struct apply {
-    // if convertible to shared_ptr<DataItem> then call
-    // ToWeakPtrWithDownCastImpl or else
-    // just return the value as is
-    typedef typename boost::mpl::if_c<
-        boost::is_convertible<T, boost::shared_ptr<Kernel::DataItem>>::value,
-        DowncastImpl<T, AsWeakPtr<T>>,
-        boost::python::to_python_value<T>>::type type;
-  };
-};
-
-//--------------------------------------------------------------------------------
-// ToSharedPtrWithDowncast
-//--------------------------------------------------------------------------------
-/**
- * This defines the structure as required by boost::python.
- * If T is convertible to a shared_ptr<DataItem> then it calls
- * ToSharedPtrWithDowncastImpl or else just return the value as is
- */
-struct ToSharedPtrWithDowncast {
-  template <class T> struct apply {
-    // if convertible to shared_ptr<DataItem> then call
-    // ToWeakPtrWithDownCastImpl or else
-    // just return the value as is
-    typedef typename boost::mpl::if_c<
-        boost::is_convertible<T, boost::shared_ptr<Kernel::DataItem>>::value,
-        DowncastImpl<T, AsSharedPtr<T>>,
-        boost::python::to_python_value<T>>::type type;
-  };
-};
-
-} // Policies
-}
-} // namespace Mantid::PythonInterface
-
-#endif /* MANITD_PYTHONINTERFACE_TOWEAKPTRWITHDOWNCASTIMPL_H_ */
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Policies/ToWeakPtr.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Policies/ToWeakPtr.h
new file mode 100644
index 0000000000000000000000000000000000000000..bed30370d7f01b554afd7e3895c8038f35883c0a
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Policies/ToWeakPtr.h
@@ -0,0 +1,93 @@
+#ifndef MANTID_PYTHONINTERFACE_TOWEAKPTR_H_
+#define MANTID_PYTHONINTERFACE_TOWEAKPTR_H_
+/**
+    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>
+ */
+#include <boost/python/detail/prefix.hpp>
+#include <boost/python/to_python_value.hpp>
+
+#include <boost/shared_ptr.hpp>
+#include <boost/weak_ptr.hpp>
+
+namespace Mantid {
+namespace PythonInterface {
+namespace Policies {
+
+namespace {
+//-----------------------------------------------------------------------
+// MPL helper structs
+//-----------------------------------------------------------------------
+/// MPL struct to figure out if a type is a boost::shared_ptr<T>
+/// The general one inherits from boost::false_type
+template <typename T> struct IsSharedPtr : boost::false_type {};
+
+/// Specialization for boost::shared_ptr<const T> types to inherit from
+/// boost::true_type
+template <typename T>
+struct IsSharedPtr<boost::shared_ptr<T>> : boost::true_type {};
+
+//-----------------------------------------------------------------------
+// Policy implementation
+//-----------------------------------------------------------------------
+/**
+ * Constructs a boost::weak_ptr around the incoming boost::shared_ptr
+ */
+template <typename ArgType> struct ToWeakPtrImpl {
+  // Useful types
+  typedef typename ArgType::element_type PointeeType;
+  typedef boost::weak_ptr<PointeeType> WeakPtr;
+
+  inline PyObject *operator()(const ArgType &p) const {
+    if (!p)
+      Py_RETURN_NONE;
+    return boost::python::to_python_value<WeakPtr>()(WeakPtr(p));
+  }
+
+  inline PyTypeObject const *get_pytype() const {
+    return boost::python::converter::registered<WeakPtr>::converters
+        .to_python_target_type();
+  }
+};
+
+//-----------------------------------------------------------------------
+// Error handler
+//-----------------------------------------------------------------------
+template <typename T> struct ToWeakPtr_Requires_Shared_Ptr_Return_Value {};
+} // ends anonymous namespace
+
+/**
+ * Implements the ToWeakPtr policy as required by boost.python
+ */
+struct ToWeakPtr {
+  template <class T> struct apply {
+    // Deduce if type is correct for policy
+    typedef typename boost::mpl::if_c<
+        IsSharedPtr<T>::value, ToWeakPtrImpl<T>,
+        ToWeakPtr_Requires_Shared_Ptr_Return_Value<T>>::type type;
+  };
+};
+
+} // ends Policies namespace
+}
+} // ends Mantid::PythonInterface namespaces
+
+#endif /* MANTID_PYTHONINTERFACE_REMOVECONST_H_REMOVECONST_H_ */
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/PropertyWithValueExporter.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/PropertyWithValueExporter.h
index 558c583ee3ce33ba556c4682d3244164336b2091..168d4d80df41a765f5f0293156d16293080df7b4 100644
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/PropertyWithValueExporter.h
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/PropertyWithValueExporter.h
@@ -25,12 +25,12 @@
 */
 
 #include "MantidKernel/PropertyWithValue.h"
-#include "MantidPythonInterface/kernel/Policies/DowncastingPolicies.h"
 
 #ifndef Q_MOC_RUN
 #include <boost/python/class.hpp>
 #include <boost/python/bases.hpp>
 #include <boost/python/return_value_policy.hpp>
+#include <boost/python/return_by_value.hpp>
 #endif
 
 namespace Mantid {
@@ -38,18 +38,17 @@ namespace PythonInterface {
 /**
  * A helper struct to export PropertyWithValue<> types to Python.
  */
-template <typename HeldType> struct PropertyWithValueExporter {
+template <typename HeldType, typename ValueReturnPolicy=boost::python::return_by_value>
+struct PropertyWithValueExporter {
   static void define(const char *pythonClassName) {
     using namespace boost::python;
     using namespace Mantid::Kernel;
 
     class_<PropertyWithValue<HeldType>, bases<Property>, boost::noncopyable>(
         pythonClassName, no_init)
-        .add_property(
-            "value",
-            make_function(
-                &PropertyWithValue<HeldType>::operator(),
-                return_value_policy<Policies::ToSharedPtrWithDowncast>()));
+        .add_property("value",
+                      make_function(&PropertyWithValue<HeldType>::operator(),
+                                    return_value_policy<ValueReturnPolicy>()));
   }
 };
 }
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/DowncastDataItem.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/DowncastDataItem.h
deleted file mode 100644
index 455c759ecbda454ccb4d85c01d556e921fa259f1..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/DowncastDataItem.h
+++ /dev/null
@@ -1,119 +0,0 @@
-#ifndef MANTID_PYTHONINTERFACE_DOWNCASTDATAITEM_H_
-#define MANTID_PYTHONINTERFACE_DOWNCASTDATAITEM_H_
-/**
-    Copyright &copy; 2014 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>
-*/
-#include "MantidKernel/DataItem.h"
-#include "MantidPythonInterface/kernel/WeakPtr.h"
-
-#include <boost/python/extract.hpp>
-#include <boost/python/object.hpp> // for PyObject
-#include <boost/python/to_python_value.hpp>
-
-namespace Mantid {
-namespace PythonInterface {
-namespace Registry {
-/**
- * Interface class so that we can store derived objects in a map
- * It defines functions for converting shared_ptr<DataItem> into
- * Python objects of the required type
- */
-struct DLLExport DowncastDataItem {
-  virtual ~DowncastDataItem() {}
-  /// Convert a shared_ptr<DataItem> to a python object that holds a shared_ptr
-  virtual PyObject *
-  toPythonAsSharedPtr(const Kernel::DataItem_sptr &data) const = 0;
-  /// Convert a shared_ptr<DataItem> to a python object that holds a weak_ptr
-  virtual PyObject *
-  toPythonAsWeakPtr(const Kernel::DataItem_sptr &data) const = 0;
-  /// Convert a Python object to a DataItem_sptr
-  virtual Kernel::DataItem_sptr
-  fromPythonAsSharedPtr(const boost::python::object &data) const = 0;
-};
-
-/**
- * Implementation of DowncastDataItem interface
- * @tparam CastedType The final type that the input item should be cast to when
- * going to Python
- */
-template <typename PythonType>
-struct DLLExport DowncastToType : public DowncastDataItem {
-  typedef boost::shared_ptr<PythonType> PythonType_sptr;
-  typedef boost::weak_ptr<PythonType> PythonType_wptr;
-
-  /**
-   * Convert a shared_ptr<DataItem> to a python object that holds a
-   * shared_ptr<CastedType>
-   * @param data The original C++ DataItem pointer
-   * @returns A new PyObject holding the requested data
-   */
-  PyObject *toPythonAsSharedPtr(const Kernel::DataItem_sptr &data) const {
-    using namespace boost::python;
-    typedef to_python_value<PythonType_sptr> ToSharedValue;
-    // boost python handles NULL pointers by converting them to None objects
-    return ToSharedValue()(boost::dynamic_pointer_cast<PythonType>(data));
-  }
-  /**
-   * Convert a shared_ptr<DataItem> to a python object that holds a
-   * weak_ptr<CastedType>
-   * @param data The original C++ DataItem pointer
-   * @returns A new PyObject holding the requested data
-   */
-  PyObject *toPythonAsWeakPtr(const Kernel::DataItem_sptr &data) const {
-    using namespace boost::python;
-    typedef to_python_value<PythonType_wptr> ToWeakValue;
-    return ToWeakValue()(
-        PythonType_wptr(boost::dynamic_pointer_cast<PythonType>(data)));
-  }
-  /**
-   * Convert a Python object to a boost::shared_ptr<DataItem>
-   * @param data A Python object that should be holding either a
-   * boost::shared_ptr<CastedType>
-   *             or a boost::weak_ptr<CastedType>
-   */
-  Kernel::DataItem_sptr
-  fromPythonAsSharedPtr(const boost::python::object &data) const {
-    using namespace boost::python;
-    // If we can extract a weak pointer then we must construct the shared
-    // pointer
-    // from the weak pointer itself to ensure the new shared_ptr has the correct
-    // use count.
-    // The order is important as if we try the shared_ptr first then
-    // boost::python will
-    // just construct a brand new shared pointer for the object rather than
-    // converting from the
-    // stored weak one.
-    extract<PythonType_wptr> weakPtr(data);
-    if (weakPtr.check()) {
-      return boost::dynamic_pointer_cast<Kernel::DataItem>(weakPtr().lock());
-    } else {
-      return boost::dynamic_pointer_cast<Kernel::DataItem>(
-          extract<PythonType_sptr &>(data)());
-    }
-  }
-};
-
-} // namespace Registry
-} // namespace PythonInterface
-} // namespace Mantid
-
-#endif /* MANTID_PYTHONINTERFACE_DOWNCASTDATAITEM_H_ */
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/DowncastRegistry.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/DowncastRegistry.h
deleted file mode 100644
index c3c0befd01d0d0519214ca6055a710e490ddba8c..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/DowncastRegistry.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef MANTID_PYTHONINTERFACE_DOWNCASTREGISTRY_H_
-#define MANTID_PYTHONINTERFACE_DOWNCASTREGISTRY_H_
-/**
-    Copyright &copy; 2012 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>
-*/
-#include "MantidPythonInterface/kernel/Registry/DowncastDataItem.h"
-#include <string>
-
-namespace Mantid {
-namespace PythonInterface {
-namespace Registry {
-// We currently only expose up to the API level in Python. Due to the
-// inner workings of boost::python this means that if a DataItem_sptr or
-// Workspace_sptr is returned from a particular method then it is not
-// automatically converted to the most derived pointer that boost::python
-// knows about.
-//
-// In order for returned objects to be of any use in Python then they must be
-// cast to the highest-type that has been exposed, i.e a Workspace2D should be
-// return as a MatrixWorkspace or a MaskWorkspace should be returned as an
-// IMaskWorkspace. Here we define a registry that allows the required mappings
-// to be defined and used.
-//
-// The mappings are between the string returned by the id() method and a simple
-// templated DowncastDataItem converter class.
-
-/**
- * A simple static class with methods to subscribe and retrieve the relevant
- * DowncastDataItem object
- */
-class DLLExport DowncastRegistry {
-public:
-  /**
-   * Create an entry in the registry for a type given by the template type
-   * that will be identified by the id string given
-   * @param id string that will be returned by the concrete types id() method
-   */
-  template <typename CastedType> static void subscribe(const std::string &id) {
-    subscribe(id, new DowncastToType<CastedType>());
-  }
-  /// Retrieve a registered casting object
-  static const DowncastDataItem &retrieve(const std::string &id);
-
-private:
-  /// Implementation for the templated subscribe for a given id. Keeps impl out
-  /// of header
-  static void subscribe(const std::string &id, const DowncastDataItem *caster);
-};
-}
-}
-}
-
-#endif /* MANTID_PYTHONINTERFACE_DOWNCASTREGISTRY_H_ */
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/PropertyValueHandler.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/PropertyValueHandler.h
index 1838e0a0996ffe21e6f5199f9d9149bff287f720..d9c68118ce78dca91f7dc77586c9585fc33166c2 100644
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/PropertyValueHandler.h
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/PropertyValueHandler.h
@@ -29,6 +29,7 @@
 namespace Mantid {
 namespace Kernel {
 // Forward declarations
+class DataItem;
 class IPropertyManager;
 class Property;
 }
@@ -43,7 +44,7 @@ namespace Registry {
  */
 struct DLLExport PropertyValueHandler {
   /// Virtual Destructor
-  virtual ~PropertyValueHandler(){};
+  virtual ~PropertyValueHandler() {};
   /// Overload to set the named property's value on the property manager
   virtual void set(Kernel::IPropertyManager *alg, const std::string &name,
                    const boost::python::object &value) const = 0;
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/DataItemInterface.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h
similarity index 83%
rename from Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/DataItemInterface.h
rename to Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h
index 1d3519d18b69f3eeed07b0244da7cc9e191da2be..3c69a5b0a711e4fd83f79b1a5f6bfb0ed06f1561 100644
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/DataItemInterface.h
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h
@@ -24,7 +24,8 @@
 */
 #include "MantidPythonInterface/kernel/Registry/TypedPropertyValueHandler.h"
 #include "MantidPythonInterface/kernel/Registry/TypeRegistry.h"
-#include "MantidPythonInterface/kernel/Registry/DowncastRegistry.h"
+#include "MantidPythonInterface/kernel/WeakPtr.h"
+
 #include <boost/python/register_ptr_to_python.hpp>
 
 namespace Mantid {
@@ -37,15 +38,12 @@ namespace Registry {
  *    - Calls register_ptr_to_python<boost::shared_ptr<T>>
  *    - Calls register_ptr_to_python<boost::weak_ptr<T>>
  *    - Registers a new PropertyValueHandler for a boost::shared_ptr<T>
- *
- * ID strings can then be mapped to the template type by calling the
- * insert method.
  */
-template <typename IType> struct DLLExport DataItemInterface {
+template <typename IType> struct DLLExport RegisterWorkspacePtrToPython {
   typedef boost::shared_ptr<IType> IType_sptr;
   typedef boost::weak_ptr<IType> IType_wptr;
   /// Constructor
-  DataItemInterface() {
+  RegisterWorkspacePtrToPython() {
     using namespace boost::python;
     using namespace Registry;
 
@@ -54,12 +52,6 @@ template <typename IType> struct DLLExport DataItemInterface {
     // properties can only ever store pointers to these
     TypeRegistry::subscribe<TypedPropertyValueHandler<IType_sptr>>();
   }
-  /// Register a downcast for this ID
-  DataItemInterface &castFromID(const std::string &id) {
-    using namespace Registry;
-    DowncastRegistry::subscribe<IType>(id);
-    return *this;
-  }
 };
 }
 }
diff --git a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/TypedPropertyValueHandler.h b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/TypedPropertyValueHandler.h
index 5ed554e79405e70813b27cf83e7d988f10e0b2b5..b784421835f71e1b93e0319d12511d7e5070a50d 100644
--- a/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/TypedPropertyValueHandler.h
+++ b/Code/Mantid/Framework/PythonInterface/inc/MantidPythonInterface/kernel/Registry/TypedPropertyValueHandler.h
@@ -22,15 +22,19 @@
     File change history is stored at: <https://github.com/mantidproject/mantid>
     Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
+#include "MantidPythonInterface/api/ExtractWorkspace.h"
 #include "MantidPythonInterface/kernel/Registry/PropertyValueHandler.h"
-#include "MantidPythonInterface/kernel/Registry/DowncastRegistry.h"
-
 #include "MantidPythonInterface/kernel/IsNone.h" // includes object.hpp
+
+#include "MantidAPI/Workspace.h"
 #include "MantidKernel/PropertyWithValue.h"
 #include "MantidKernel/IPropertyManager.h"
 
 #include <boost/python/converter/arg_from_python.hpp>
 #include <boost/python/call_method.hpp>
+#include <boost/python/extract.hpp>
+#include <boost/weak_ptr.hpp>
+
 #include <string>
 
 namespace Mantid {
@@ -87,7 +91,7 @@ struct DLLExport TypedPropertyValueHandler : public PropertyValueHandler {
 };
 
 //
-// Specialization for shared_ptr types that can be set via weak pointers
+// Specialization for shared_ptr types. They need special handling for workspaces
 //
 template <typename T>
 struct DLLExport TypedPropertyValueHandler<boost::shared_ptr<T>>
@@ -108,13 +112,7 @@ struct DLLExport TypedPropertyValueHandler<boost::shared_ptr<T>>
    */
   void set(Kernel::IPropertyManager *alg, const std::string &name,
            const boost::python::object &value) const {
-    using namespace boost::python;
-    using Registry::DowncastRegistry;
-
-    const auto &entry =
-        DowncastRegistry::retrieve(call_method<std::string>(value.ptr(), "id"));
-    alg->setProperty<HeldType>(name, boost::dynamic_pointer_cast<T>(
-                                         entry.fromPythonAsSharedPtr(value)));
+    alg->setProperty<HeldType>(name, boost::dynamic_pointer_cast<T>(ExtractWorkspace(value)()));
   }
 
   /**
@@ -147,6 +145,7 @@ struct DLLExport TypedPropertyValueHandler<boost::shared_ptr<T>>
     }
     return valueProp;
   }
+
 };
 }
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/CMakeLists.txt b/Code/Mantid/Framework/PythonInterface/mantid/CMakeLists.txt
index be9210d92556882ab17e9b3d8857727a7c45f5ab..def1d05f4b8d67b1e1b2607282d00f16e27c7beb 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/CMakeLists.txt
+++ b/Code/Mantid/Framework/PythonInterface/mantid/CMakeLists.txt
@@ -47,9 +47,11 @@ add_subdirectory ( kernel )
 add_dependencies ( PythonKernelModule PythonModule ) # Ensure the module files are in place
 add_subdirectory ( geometry )
 add_subdirectory ( api )
+add_subdirectory ( dataobjects )
 
 # Create an overall target
-add_custom_target ( PythonInterface DEPENDS PythonKernelModule PythonGeometryModule PythonAPIModule  )
+add_custom_target ( PythonInterface DEPENDS PythonKernelModule PythonGeometryModule 
+                    PythonAPIModule PythonDataObjectsModule )
 set_property ( TARGET PythonInterface PROPERTY FOLDER "MantidFramework/Python" )
 
 ###########################################################################
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/__init__.py b/Code/Mantid/Framework/PythonInterface/mantid/__init__.py
index dfa5227edfbf2b0c693a0aaf723e536ddb561ee9..2bdd5f60bf98b2bfce71ae497aa4ffe5e9c23fff 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/__init__.py
+++ b/Code/Mantid/Framework/PythonInterface/mantid/__init__.py
@@ -71,6 +71,7 @@ if _os.path.exists(_os.path.join(_bindir, 'Mantid.properties')):
 import mantid.kernel as kernel
 import mantid.geometry as geometry
 import mantid.api as api
+import mantid.dataobjects as dataobjects
 
 ###############################################################################
 # Make the aliases from each module accessible in a the mantid namspace
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/CMakeLists.txt b/Code/Mantid/Framework/PythonInterface/mantid/api/CMakeLists.txt
index 74ae773d0e10078e07805041ef64505c8b43f0a6..a2e5227fea24807e99c539a99f23ad9036538ec9 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/CMakeLists.txt
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/CMakeLists.txt
@@ -32,6 +32,7 @@ set ( EXPORT_FILES
   src/Exports/WorkspaceProperty.cpp
   src/Exports/ITableWorkspace.cpp
   src/Exports/ITableWorkspaceProperty.cpp
+  src/Exports/ISplittersWorkspace.cpp
   src/Exports/MDGeometry.cpp
   src/Exports/IMDWorkspace.cpp
   src/Exports/IMDWorkspaceProperty.cpp
@@ -43,6 +44,7 @@ set ( EXPORT_FILES
   src/Exports/MatrixWorkspaceProperty.cpp
   src/Exports/IEventWorkspace.cpp
   src/Exports/IEventWorkspaceProperty.cpp
+  src/Exports/IMaskWorkspace.cpp
   src/Exports/IPeaksWorkspace.cpp
   src/Exports/IPeaksWorkspaceProperty.cpp
   src/Exports/BinaryOperations.cpp
@@ -54,6 +56,7 @@ set ( EXPORT_FILES
   src/Exports/IPeak.cpp
   src/Exports/BoxController.cpp
   src/Exports/FileFinder.cpp
+  src/Exports/FileLoaderRegistry.cpp
   src/Exports/Sample.cpp
   src/Exports/ScriptRepository.cpp
   src/Exports/ScriptRepositoryFactory.cpp
@@ -85,6 +88,7 @@ set ( SRC_FILES
   src/PythonAlgorithm/AlgorithmAdapter.cpp
   src/PythonAlgorithm/DataProcessorAdapter.cpp
   src/CloneMatrixWorkspace.cpp
+  src/ExtractWorkspace.cpp
 )
 
 set ( INC_FILES
@@ -96,6 +100,7 @@ set ( INC_FILES
   ${HEADER_DIR}/api/PythonAlgorithm/DataProcessorAdapter.h
   ${HEADER_DIR}/api/BinaryOperations.h
   ${HEADER_DIR}/api/CloneMatrixWorkspace.h
+  ${HEADER_DIR}/api/ExtractWorkspace.h
   ${HEADER_DIR}/api/WorkspacePropertyExporter.h
 )
 
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/_aliases.py b/Code/Mantid/Framework/PythonInterface/mantid/api/_aliases.py
index 0baba181dc65c02489baa8277c00a0717fc3ff1c..1c619c0321eb44a0ab11289159d5e03c07b11526 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/_aliases.py
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/_aliases.py
@@ -3,7 +3,7 @@
 """
 from _api import (FrameworkManagerImpl, AnalysisDataServiceImpl,
                   AlgorithmFactoryImpl, AlgorithmManagerImpl,
-                  FileFinderImpl, FunctionFactoryImpl,
+                  FileFinderImpl, FileLoaderRegistryImpl, FunctionFactoryImpl,
                   WorkspaceFactoryImpl,
                   PropertyManagerDataServiceImpl, CatalogManagerImpl)
 
@@ -22,6 +22,8 @@ AlgorithmManager = AlgorithmManagerImpl.Instance()
 
 FileFinder = FileFinderImpl.Instance()
 
+FileLoaderRegistry = FileLoaderRegistryImpl.Instance()
+
 FunctionFactory = FunctionFactoryImpl.Instance()
 
 WorkspaceFactory = WorkspaceFactoryImpl.Instance()
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Algorithms/RunPythonScript.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Algorithms/RunPythonScript.cpp
index c43262ae9ea5b9beaed0c2e1a73cd080126b2895..773955d9bd63382835f0d9345baa8a79bc35006d 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Algorithms/RunPythonScript.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Algorithms/RunPythonScript.cpp
@@ -1,19 +1,23 @@
 #include "MantidPythonInterface/api/Algorithms/RunPythonScript.h"
+#include "MantidPythonInterface/api/ExtractWorkspace.h"
 #include "MantidPythonInterface/kernel/Environment/ErrorHandling.h"
 #include "MantidPythonInterface/kernel/Environment/Threading.h"
-#include "MantidPythonInterface/kernel/Policies/DowncastingPolicies.h"
-#include "MantidPythonInterface/kernel/Registry/DowncastDataItem.h"
+#include "MantidPythonInterface/kernel/IsNone.h"
 #include "MantidKernel/MandatoryValidator.h"
 
 #include <boost/python/call_method.hpp>
 #include <boost/python/exec.hpp>
 #include <boost/python/extract.hpp>
 #include <boost/python/import.hpp>
+#include <boost/python/to_python_value.hpp>
 #include <boost/regex.hpp>
 
 namespace Mantid {
 namespace PythonInterface {
 
+using namespace API;
+using namespace Kernel;
+
 /// Algorithm's name for identification. @see Algorithm::name
 const std::string RunPythonScript::name() const { return "RunPythonScript"; }
 
@@ -40,9 +44,6 @@ bool RunPythonScript::checkGroups() { return false; }
  * Initialize the algorithm's properties.
  */
 void RunPythonScript::init() {
-  using namespace API;
-  using namespace Kernel;
-
   declareProperty(
       new WorkspaceProperty<Workspace>("InputWorkspace", "", Direction::Input,
                                        PropertyMode::Optional),
@@ -61,8 +62,6 @@ void RunPythonScript::init() {
 /** Execute the algorithm.
  */
 void RunPythonScript::exec() {
-  using namespace API;
-
   Workspace_sptr outputWS = executeScript(scriptCode());
   setProperty<Workspace_sptr>("OutputWorkspace", outputWS);
 }
@@ -171,16 +170,8 @@ boost::python::dict RunPythonScript::buildLocals() const {
 
   API::Workspace_sptr inputWS = getProperty("InputWorkspace");
   if (inputWS) {
-    // We have a generic workspace ptr but the Python needs to see the derived
-    // type so
-    // that it can access the appropriate methods for that instance
-    // The ToSharedPtrWithDowncast policy is already in place for this and is
-    // used in many
-    // method exports as part of a return_value_policy struct.
-    // It is called manually here.
-    typedef Policies::ToSharedPtrWithDowncast::apply<API::Workspace_sptr>::type
-        WorkspaceDowncaster;
-    locals["input"] = object(handle<>(WorkspaceDowncaster()(inputWS)));
+    locals["input"] =
+        object(handle<>(to_python_value<API::Workspace_sptr>()(inputWS)));
   }
   std::string outputWSName = getPropertyValue("OutputWorkspace");
   if (!outputWSName.empty()) {
@@ -202,25 +193,25 @@ boost::shared_ptr<API::Workspace> RunPythonScript::extractOutputWorkspace(
   using namespace boost::python;
 
   // Might be None, string or a workspace object
-  object pyoutput = locals["output"];
-  if (pyoutput.ptr() == Py_None)
+  auto pyoutput = locals.get("output");
+  if (isNone(pyoutput))
     return Workspace_sptr();
 
-  if (PyObject_HasAttrString(pyoutput.ptr(), "id")) {
-    const auto &entry = Registry::DowncastRegistry::retrieve(
-        call_method<std::string>(pyoutput.ptr(), "id"));
-    return boost::dynamic_pointer_cast<API::Workspace>(
-        entry.fromPythonAsSharedPtr(pyoutput));
+  auto ptrExtract = ExtractWorkspace(pyoutput);
+  if (ptrExtract.check()) {
+    return ptrExtract();
   } else {
-    extract<std::string> stringExtractor(pyoutput);
-    if (stringExtractor.check()) {
+    extract<std::string> extractString(pyoutput);
+    if (extractString.check()) {
       // Will raise an error if the workspace does not exist as the user
-      // requested an output workspace
+      // requested
+      // an output workspace
       // but didn't create one.
-      return AnalysisDataService::Instance().retrieve(stringExtractor());
+      return AnalysisDataService::Instance().retrieve(extractString());
     } else {
-      throw std::runtime_error("Invalid type assigned to 'output' variable. "
-                               "Must be a string or a Workspace object");
+      throw std::runtime_error(
+          "Invalid type assigned to 'output' variable. Must "
+          "be a string or a Workspace object");
     }
   }
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/AnalysisDataService.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/AnalysisDataService.cpp
index 10fd1818682cba4aa89d87bc96432e42c65cd15f..fefcaf30341f259ea1de82eedc0c51bf2cc2248c 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/AnalysisDataService.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/AnalysisDataService.cpp
@@ -1,88 +1,19 @@
 #include "MantidPythonInterface/kernel/DataServiceExporter.h"
-#include "MantidPythonInterface/kernel/Registry/DowncastRegistry.h"
 #include "MantidPythonInterface/kernel/TrackingInstanceMethod.h"
 
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/Workspace.h"
-
-#include <boost/python/call_method.hpp>
 
 using namespace Mantid::API;
-using Mantid::PythonInterface::DataServiceExporter;
-using Mantid::PythonInterface::TrackingInstanceMethod;
-using namespace Mantid::PythonInterface::Registry;
+using namespace Mantid::Kernel;
+using namespace Mantid::PythonInterface;
 using namespace boost::python;
 
-namespace {
-/**
- * Add an item into the ADS, if it exists then an error is raised
- * @param self A reference to the calling object
- * @param name The name to assign to this in the service
- * @param item A boost.python wrapped SvcHeldType object
- */
-void addItem(AnalysisDataServiceImpl &self, const std::string &name,
-             const boost::python::object &item) {
-  const auto &entry =
-      DowncastRegistry::retrieve(call_method<std::string>(item.ptr(), "id"));
-
-  try {
-    // It is VERY important that the extract type be a reference to SvcHeldType
-    // so that
-    // boost.python doesn't create a new shared_ptr and instead simply extracts
-    // the embedded one.
-    self.add(name, boost::dynamic_pointer_cast<Workspace>(
-                       entry.fromPythonAsSharedPtr(item)));
-  } catch (std::exception &exc) {
-    PyErr_SetString(
-        PyExc_RuntimeError,
-        exc.what()); // traditionally throws RuntimeError so don't break scripts
-    throw boost::python::error_already_set();
-  }
-}
-
-/**
- * Add or replace an item into the service, if it exists then an error is raised
- * @param self A reference to the calling object
- * @param name The name to assign to this in the service
- * @param item A boost.python wrapped SvcHeldType object
- */
-void addOrReplaceItem(AnalysisDataServiceImpl &self, const std::string &name,
-                      const boost::python::object &item) {
-  const auto &entry =
-      DowncastRegistry::retrieve(call_method<std::string>(item.ptr(), "id"));
-
-  try {
-    // It is VERY important that the extract type be a reference to SvcHeldType
-    // so that
-    // boost.python doesn't create a new shared_ptr and instead simply extracts
-    // the embedded one.
-    self.addOrReplace(name, boost::dynamic_pointer_cast<Workspace>(
-                                entry.fromPythonAsSharedPtr(item)));
-  } catch (std::exception &exc) {
-    PyErr_SetString(
-        PyExc_RuntimeError,
-        exc.what()); // traditionally throws RuntimeError so don't break scripts
-    throw boost::python::error_already_set();
-  }
-}
-}
 
 void export_AnalysisDataService() {
   typedef DataServiceExporter<AnalysisDataServiceImpl, Workspace_sptr>
       ADSExporter;
   auto pythonClass = ADSExporter::define("AnalysisDataServiceImpl");
 
-  // -- special ADS behaviour --
-  // replace the add/addOrReplace,__setitem__ methods as we need to exact the
-  // exact stored type
-  pythonClass.def("add", &addItem, "Adds the given object to the service with "
-                                   "the given name. If the name/object exists "
-                                   "it will raise an error.");
-  pythonClass.def("addOrReplace", &addOrReplaceItem,
-                  "Adds the given object to the service with the given name. "
-                  "The the name exists the object is replaced.");
-  pythonClass.def("__setitem__", &addOrReplaceItem);
-
   // Instance method
   TrackingInstanceMethod<AnalysisDataService, ADSExporter::PythonType>::define(
       pythonClass);
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/BinaryOperations.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/BinaryOperations.cpp
index 840def715eee4aeba0d4df6798216dfb19b663fa..90635c73b4e05d654cbf0fd6e98fd447c7e3000e 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/BinaryOperations.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/BinaryOperations.cpp
@@ -1,25 +1,23 @@
 #include "MantidPythonInterface/api/BinaryOperations.h"
-#include "MantidPythonInterface/kernel/Policies/DowncastingPolicies.h"
 
-#include "MantidAPI/WorkspaceOpOverloads.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
+#include "MantidAPI/WorkspaceOpOverloads.h"
+#include "MantidPythonInterface/kernel/Policies/AsType.h"
 
 #include <boost/python/def.hpp>
 #include <boost/python/return_value_policy.hpp>
 
-namespace Policies = Mantid::PythonInterface::Policies;
-
 void export_BinaryOperations() {
   using namespace Mantid::API;
-  using boost::python::return_value_policy;
+  using namespace Mantid::PythonInterface::Policies;
+  using namespace boost::python;
 
-  // Operator overloads dispatch through the above structure. The typedefs save
-  // some typing
+  // Typedefs the various function types
   typedef IMDWorkspace_sptr (*binary_fn_md_md)(
       const IMDWorkspace_sptr, const IMDWorkspace_sptr, const std::string &,
       const std::string &, bool, bool);
@@ -47,28 +45,31 @@ void export_BinaryOperations() {
       const WorkspaceGroup_sptr, double, const std::string &,
       const std::string &, bool, bool);
 
+  // Always a return a Workspace_sptr
+  typedef return_value_policy<AsType<Workspace_sptr>> ReturnWorkspaceSptr;
+
   // Binary operations that return a workspace
   using boost::python::def;
   using Mantid::PythonInterface::performBinaryOp;
   using Mantid::PythonInterface::performBinaryOpWithDouble;
 
   def("performBinaryOp", (binary_fn_md_md)&performBinaryOp,
-      return_value_policy<Policies::ToSharedPtrWithDowncast>());
+      ReturnWorkspaceSptr());
   def("performBinaryOp", (binary_fn_md_gp)&performBinaryOp,
-      return_value_policy<Policies::ToSharedPtrWithDowncast>());
+      ReturnWorkspaceSptr());
   def("performBinaryOp", (binary_fn_gp_md)&performBinaryOp,
-      return_value_policy<Policies::ToSharedPtrWithDowncast>());
+      ReturnWorkspaceSptr());
   def("performBinaryOp", (binary_fn_gp_gp)&performBinaryOp,
-      return_value_policy<Policies::ToSharedPtrWithDowncast>());
+      ReturnWorkspaceSptr());
   def("performBinaryOp", (binary_fn_mh_mh)&performBinaryOp,
-      return_value_policy<Policies::ToSharedPtrWithDowncast>());
+      ReturnWorkspaceSptr());
 
   def("performBinaryOp", (binary_fn_md_db)&performBinaryOpWithDouble,
-      return_value_policy<Policies::ToSharedPtrWithDowncast>());
+      ReturnWorkspaceSptr());
   def("performBinaryOp", (binary_fn_mh_db)&performBinaryOpWithDouble,
-      return_value_policy<Policies::ToSharedPtrWithDowncast>());
+      ReturnWorkspaceSptr());
   def("performBinaryOp", (binary_fn_gp_db)&performBinaryOpWithDouble,
-      return_value_policy<Policies::ToSharedPtrWithDowncast>());
+      ReturnWorkspaceSptr());
 }
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/CatalogManager.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/CatalogManager.cpp
index 90d162633b35ca63f5cd15fca5da06be0cbb2c97..d775d56815a6965479931625c480cf0f00fe253a 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/CatalogManager.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/CatalogManager.cpp
@@ -5,6 +5,8 @@
 #include <boost/python/list.hpp>
 #include <boost/python/register_ptr_to_python.hpp>
 
+#include <map>
+
 using namespace Mantid::API;
 using namespace boost::python;
 
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/DataProcessorAlgorithm.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/DataProcessorAlgorithm.cpp
index 4a732510f878f79225f6c1440f19af07f30ef33d..1dacf9c7bc503e3455d541b358f1beb3dac72b61 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/DataProcessorAlgorithm.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/DataProcessorAlgorithm.cpp
@@ -1,5 +1,6 @@
 #include "MantidPythonInterface/api/PythonAlgorithm/DataProcessorAdapter.h"
 #include "MantidPythonInterface/kernel/Policies/VectorToNumpy.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include <boost/python/class.hpp>
 #include <boost/python/overloads.hpp>
 
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/FileLoaderRegistry.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/FileLoaderRegistry.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2dc2f449a6c6a20d423538d73ad548b65d1c35cb
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/FileLoaderRegistry.cpp
@@ -0,0 +1,17 @@
+#include "MantidAPI/FileLoaderRegistry.h"
+#include <boost/python/class.hpp>
+#include <boost/python/reference_existing_object.hpp>
+
+using Mantid::API::FileLoaderRegistry;
+using Mantid::API::FileLoaderRegistryImpl;
+using namespace boost::python;
+
+void export_FileLoaderRegistry() {
+  class_<FileLoaderRegistryImpl, boost::noncopyable>("FileLoaderRegistryImpl", no_init)
+      .def("canLoad", &FileLoaderRegistryImpl::canLoad,
+           "Perform a check that that the given algorithm can load the file")
+      .def("Instance", &FileLoaderRegistry::Instance,
+           return_value_policy<reference_existing_object>(),
+           "Returns a reference to the FileLoaderRegistry singleton instance")
+      .staticmethod("Instance");
+}
\ No newline at end of file
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IEventList.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IEventList.cpp
index 8c1d96fe64e96f237e0250ddfe1f5352a2f2b343..0dd66944ad4bae02e86a37750a4b4b11f8221c0d 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IEventList.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IEventList.cpp
@@ -43,7 +43,7 @@ void export_IEventList() {
       .def("integrate", &IEventList::integrate,
            args("self", "minX", "maxX", "entireRange"),
            "Integrate the events between a range of X values, or all events.")
-      .def("convertTof", &IEventList::convertTof,
+      .def("convertTof", (void (IEventList::*)(const double, const double))&IEventList::convertTof,
            args("self", "factor", "offset"),
            "Convert the time of flight by tof'=tof*factor+offset")
       .def("scaleTof", &IEventList::scaleTof, args("self", "factor"),
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IEventWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IEventWorkspace.cpp
index 2101dbc952e7e67e8d2d8fb7c008a021c9d19700..d577ddabc9e5007c6a8d9f6e6d390e9bf80beb65 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IEventWorkspace.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IEventWorkspace.cpp
@@ -1,12 +1,12 @@
 #include "MantidAPI/IEventWorkspace.h"
 #include "MantidAPI/IEventList.h"
-#include "MantidPythonInterface/kernel/Registry/DataItemInterface.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 
 #include <boost/python/class.hpp>
 #include <boost/python/object.hpp>
 
 using namespace Mantid::API;
-using Mantid::PythonInterface::Registry::DataItemInterface;
+using Mantid::PythonInterface::Registry::RegisterWorkspacePtrToPython;
 using namespace boost::python;
 
 /**
@@ -31,7 +31,5 @@ void export_IEventWorkspace() {
       .def("clearMRU", &IEventWorkspace::clearMRU, args("self"),
            "Clear the most-recently-used lists");
 
-  DataItemInterface<IEventWorkspace>()
-      // map IDs to this interface
-      .castFromID("EventWorkspace");
+  RegisterWorkspacePtrToPython<IEventWorkspace>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDEventWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDEventWorkspace.cpp
index 16df16d9a6c624f925d8191e6488e39c3d7db19c..bd69cd0dab31b54c2ede7e5b609a0471b05bdde8 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDEventWorkspace.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDEventWorkspace.cpp
@@ -1,22 +1,15 @@
 #include "MantidAPI/IMDEventWorkspace.h"
 
-#include "MantidPythonInterface/kernel/Registry/DataItemInterface.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 #include <boost/python/class.hpp>
 #include <boost/python/register_ptr_to_python.hpp>
 
 using namespace Mantid::API;
-using Mantid::PythonInterface::Registry::DataItemInterface;
+using Mantid::PythonInterface::Registry::RegisterWorkspacePtrToPython;
 using namespace boost::python;
 
-namespace {
-// THIS NUMBER SHOULD MATCH MAX_MD_DIMENSIONS_NUM IN
-// MDEvents/inc/MantidMDEvents/MDEventFactory
-static const unsigned int MAX_MD_DIMS = 9;
-static const unsigned int NUM_EVENT_TYPES = 2;
-}
-
 void export_IMDEventWorkspace() {
-  // MDEventWorkspace class
+  // IMDEventWorkspace class
   class_<IMDEventWorkspace, bases<IMDWorkspace, MultipleExperimentInfos>,
          boost::noncopyable>("IMDEventWorkspace", no_init)
       .def("getNPoints", &IMDEventWorkspace::getNPoints,
@@ -29,18 +22,5 @@ void export_IMDEventWorkspace() {
                                    IMDEventWorkspace::getBoxController,
            "Returns the BoxController used in this workspace");
 
-  //-----------------------------------------------------------------------------------------------
-  DataItemInterface<IMDEventWorkspace> entry;
-  // The IDs for the MDEventWorkpaces are constructed from the event types and
-  // number of dimensions
-  const char *eventTypes[NUM_EVENT_TYPES] = {"MDEvent", "MDLeanEvent"};
-
-  std::ostringstream out;
-  for (unsigned int i = 1; i <= MAX_MD_DIMS; ++i) {
-    for (unsigned int j = 0; j < NUM_EVENT_TYPES; ++j) {
-      out.str("");
-      out << "MDEventWorkspace<" << eventTypes[j] << "," << i << ">";
-      entry.castFromID(out.str());
-    }
-  }
+  RegisterWorkspacePtrToPython<IMDEventWorkspace>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDHistoWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDHistoWorkspace.cpp
index 834e0cf82c20882e19f13ab09b61dfff6c4c45b7..3ce69ebccc079cc571412d59f493ddb82a4d3bbb 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDHistoWorkspace.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDHistoWorkspace.cpp
@@ -1,20 +1,42 @@
 #include "MantidAPI/IMDHistoWorkspace.h"
-#include "MantidPythonInterface/kernel/Converters/CArrayToNDArray.h"
-#include "MantidPythonInterface/kernel/Registry/DataItemInterface.h"
+#include "MantidPythonInterface/kernel/Converters/NDArrayTypeIndex.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 
 #include <boost/python/class.hpp>
 #include <boost/python/copy_non_const_reference.hpp>
 #include <boost/python/numeric.hpp>
+#define PY_ARRAY_UNIQUE_SYMBOL API_ARRAY_API
+#define NO_IMPORT_ARRAY
+#include <numpy/arrayobject.h>
 
 using namespace Mantid::API;
-using Mantid::PythonInterface::Registry::DataItemInterface;
+using Mantid::PythonInterface::Registry::RegisterWorkspacePtrToPython;
 namespace Converters = Mantid::PythonInterface::Converters;
 using namespace boost::python;
 
 namespace {
-/// Convenience typedef
-typedef Converters::CArrayToNDArray<Mantid::signal_t, Converters::WrapReadOnly>
-    WrapReadOnlyNumpy;
+/**
+ * Determine the sizes of each dimensions
+ * @param array :: the C++ array
+ * @param dims :: the dimensions vector (Py_intptr_t type)
+ * @returns A python object containing the numpy array
+ */
+PyObject *WrapReadOnlyNumpyFArray(Mantid::signal_t *arr, std::vector<Py_intptr_t> dims)
+{
+    int datatype = Converters::NDArrayTypeIndex<Mantid::signal_t>::typenum;
+    #if NPY_API_VERSION >= 0x00000007 //(1.7)
+        PyArrayObject *nparray = (PyArrayObject *)PyArray_New(&PyArray_Type,
+            static_cast<int>(dims.size()), &dims[0], datatype,NULL,
+            static_cast<void *>(const_cast<double *>(arr)),0,NPY_ARRAY_FARRAY,NULL);
+        PyArray_CLEARFLAGS(nparray, NPY_ARRAY_WRITEABLE);
+    #else
+        PyArrayObject *nparray = (PyArrayObject *)PyArray_New(&PyArray_Type,
+            static_cast<int>(dims.size()), &dims[0], datatype,NULL,
+            static_cast<void *>(const_cast<double *>(arr)),0,NPY_FARRAY,NULL);
+        nparray->flags &= ~NPY_WRITEABLE;
+    #endif
+    return (PyObject *)nparray;
+}
 
 /**
  * Determine the sizes of each dimensions
@@ -28,7 +50,7 @@ std::vector<Py_intptr_t> countDimensions(const IMDHistoWorkspace &self) {
 
   // invert dimensions in C way, e.g. slowest changing ndim goes first
   for (size_t i = 0; i < ndims; ++i) {
-      nd.push_back(self.getDimension(ndims - i - 1)->getNBins());
+      nd.push_back(self.getDimension( i )->getNBins());
   }
 
   ndims = nd.size();
@@ -49,9 +71,8 @@ std::vector<Py_intptr_t> countDimensions(const IMDHistoWorkspace &self) {
  * @param self :: A reference to the calling object
  */
 PyObject *getSignalArrayAsNumpyArray(IMDHistoWorkspace &self) {
-  auto dims = countDimensions(self);
-  return WrapReadOnlyNumpy()(self.getSignalArray(),
-                             static_cast<int>(dims.size()), &dims[0]);
+    auto dims = countDimensions(self);
+    return WrapReadOnlyNumpyFArray(self.getSignalArray(),dims);
 }
 
 /**
@@ -60,8 +81,7 @@ PyObject *getSignalArrayAsNumpyArray(IMDHistoWorkspace &self) {
  */
 PyObject *getErrorSquaredArrayAsNumpyArray(IMDHistoWorkspace &self) {
   auto dims = countDimensions(self);
-  return WrapReadOnlyNumpy()(self.getErrorSquaredArray(),
-                             static_cast<int>(dims.size()), &dims[0]);
+  return WrapReadOnlyNumpyFArray(self.getErrorSquaredArray(),dims);
 }
 
 /**
@@ -70,8 +90,7 @@ PyObject *getErrorSquaredArrayAsNumpyArray(IMDHistoWorkspace &self) {
  */
 PyObject *getNumEventsArrayAsNumpyArray(IMDHistoWorkspace &self) {
   auto dims = countDimensions(self);
-  return WrapReadOnlyNumpy()(self.getNumEventsArray(),
-                             static_cast<int>(dims.size()), &dims[0]);
+  return WrapReadOnlyNumpyFArray(self.getNumEventsArray(),dims);
 }
 
 /**
@@ -117,7 +136,8 @@ void throwIfSizeIncorrect(IMDHistoWorkspace &self, const numeric::array &signal,
 void setSignalArray(IMDHistoWorkspace &self,
                     const numeric::array &signalValues) {
   throwIfSizeIncorrect(self, signalValues, "setSignalArray");
-  object flattened = signalValues.attr("flat");
+  object rav=signalValues.attr("ravel")("F");
+  object flattened = rav.attr("flat");
   auto length = len(flattened);
   for (auto i = 0; i < length; ++i) {
     self.setSignalAt(i, extract<double>(flattened[i])());
@@ -134,7 +154,8 @@ void setSignalArray(IMDHistoWorkspace &self,
 void setErrorSquaredArray(IMDHistoWorkspace &self,
                           const numeric::array &errorSquared) {
   throwIfSizeIncorrect(self, errorSquared, "setErrorSquaredArray");
-  object flattened = errorSquared.attr("flat");
+  object rav=errorSquared.attr("ravel")("F");
+  object flattened = rav.attr("flat");
   auto length = len(flattened);
   for (auto i = 0; i < length; ++i) {
     self.setErrorSquaredAt(i, extract<double>(flattened[i])());
@@ -196,14 +217,14 @@ void export_IMDHistoWorkspace() {
            (size_t (IMDHistoWorkspace::*)(size_t, size_t, size_t) const) &
                IMDHistoWorkspace::getLinearIndex,
            return_value_policy<return_by_value>(),
-           "Get the 1D linear index from the 2D array")
+           "Get the 1D linear index from the 3D array")
 
       .def("getLinearIndex",
            (size_t (IMDHistoWorkspace::*)(size_t, size_t, size_t, size_t)
             const) &
                IMDHistoWorkspace::getLinearIndex,
            return_value_policy<return_by_value>(),
-           "Get the 1D linear index from the 2D array")
+           "Get the 1D linear index from the 4D array")
 
       .def("getCenter", &IMDHistoWorkspace::getCenter,
            return_value_policy<return_by_value>(),
@@ -211,5 +232,5 @@ void export_IMDHistoWorkspace() {
 
   //-------------------------------------------------------------------------------------------------
 
-  DataItemInterface<IMDHistoWorkspace>().castFromID("MDHistoWorkspace");
+  RegisterWorkspacePtrToPython<IMDHistoWorkspace>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDWorkspace.cpp
index 1aa10869966713086c37250c67276e47d899bc93..34f94873a51a6a76f833029864ac0e5fd1aa26e0 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDWorkspace.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMDWorkspace.cpp
@@ -1,12 +1,12 @@
 #include "MantidAPI/IMDWorkspace.h"
-#include "MantidPythonInterface/kernel/Registry/DataItemInterface.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 
 #include <boost/python/class.hpp>
 #include <boost/python/enum.hpp>
 #include <boost/python/self.hpp>
 
 using namespace Mantid::API;
-using Mantid::PythonInterface::Registry::DataItemInterface;
+using Mantid::PythonInterface::Registry::RegisterWorkspacePtrToPython;
 using namespace boost::python;
 
 void export_IMDWorkspace() {
@@ -33,5 +33,5 @@ void export_IMDWorkspace() {
            &IMDWorkspace::getSpecialCoordinateSystem, args("self"),
            "Returns the special coordinate system of the workspace");
 
-  DataItemInterface<IMDWorkspace>();
+  RegisterWorkspacePtrToPython<IMDWorkspace>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMaskWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMaskWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4c3e1c59c3e76520027d09ce7d90216e50a51aab
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IMaskWorkspace.cpp
@@ -0,0 +1,41 @@
+#include "MantidAPI/IMaskWorkspace.h"
+#include "MantidKernel/WarningSuppressions.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+#include <boost/python/class.hpp>
+#include <boost/python/extract.hpp>
+#include <boost/python/list.hpp>
+
+// clang-format off
+GCC_DIAG_OFF(strict-aliasing)
+// clang-format on
+
+using Mantid::API::IMaskWorkspace;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+namespace {
+
+  bool isMaskedFromList(const IMaskWorkspace & self, const boost::python::list & ids) {
+    std::set<Mantid::detid_t> idSet;
+    auto length = len(ids);
+    for(auto i = 0; i < length; ++i) {
+      idSet.insert(extract<Mantid::detid_t>(ids[i])());
+    }
+    return self.isMasked(idSet);
+  }
+
+}
+
+void export_IMaskWorkspace() {
+  class_<IMaskWorkspace, boost::noncopyable>("IMaskWorkspace", no_init)
+    .def("getNumberMasked", &IMaskWorkspace::getNumberMasked,
+         "Returns the number of masked pixels in the workspace")
+    .def("isMasked", (bool (IMaskWorkspace::*)(const Mantid::detid_t) const)&IMaskWorkspace::isMasked,
+         "Returns whether the given detector ID is masked")
+    .def("isMasked", isMaskedFromList,
+         "Returns whether all of the given detector ID list are masked")
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<IMaskWorkspace>();
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IPeaksWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IPeaksWorkspace.cpp
index 97861c3c88a30188c3aedd70d7c3b2339784cdcf..cedd6732c37158cc1c9d6e074d721bd5203735f8 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IPeaksWorkspace.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/IPeaksWorkspace.cpp
@@ -1,7 +1,7 @@
 #include "MantidAPI/IPeaksWorkspace.h"
 #include "MantidGeometry/Crystal/IPeak.h"
-#include "MantidPythonInterface/kernel/Registry/DataItemInterface.h"
 #include "MantidPythonInterface/kernel/Converters/PyObjectToV3D.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 #include <boost/python/class.hpp>
 #include <boost/python/return_internal_reference.hpp>
 #include <boost/optional.hpp>
@@ -9,7 +9,7 @@
 
 using namespace Mantid::Geometry;
 using namespace Mantid::API;
-using Mantid::PythonInterface::Registry::DataItemInterface;
+using Mantid::PythonInterface::Registry::RegisterWorkspacePtrToPython;
 using namespace boost::python;
 
 namespace {
@@ -67,5 +67,5 @@ void export_IPeaksWorkspace() {
 
   //-------------------------------------------------------------------------------------------------
 
-  DataItemInterface<IPeaksWorkspace>().castFromID("PeaksWorkspace");
+  RegisterWorkspacePtrToPython<IPeaksWorkspace>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/ISplittersWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/ISplittersWorkspace.cpp
index 21f2d1556de9fc2cf118cfc8bcb7bfe46fb79492..3c8c083c5d723626233ce14a4ef9fab03063272e 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/ISplittersWorkspace.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/ISplittersWorkspace.cpp
@@ -1,27 +1,19 @@
 #include "MantidAPI/ISplittersWorkspace.h"
-#include "MantidPythonInterface/kernel/Registry/RegisterSingleValueHandler.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 #include <boost/python/class.hpp>
-#include <boost/python/register_ptr_to_python.hpp>
 #include <boost/python/return_internal_reference.hpp>
 
-using namespace Mantid::API;
+using Mantid::API::ISplittersWorkspace;
+using namespace Mantid::PythonInterface::Registry;
 using namespace boost::python;
 
-void export_IPeaksWorkspace() {
-  register_ptr_to_python<boost::shared_ptr<ISplittersWorkspace>>();
-
-  // ISplittersWorkspace class
-  class_<ISplittersWorkspace, bases<ITableWorkspace>, boost::noncopyable>(
-      "ISplittersWorkspace", no_init)
+void export_ISplittersWorkspace() {
+  class_<ISplittersWorkspace, boost::noncopyable>(
+         "ISplittersWorkspace", no_init)
       .def("getNumberSplitters", &ISplittersWorkspace::getNumberSplitters,
            "Returns the number of splitters within the workspace")
-      .def("addSplitter", &IPeaksWorkspace::addSplitter,
-           "Add a splitter to the workspace")
-      .def("removeSplitter", &IPeaksWorkspace::removeSplitter,
-           "Remove splitter from the workspace")
-      .def("getSplitter", &IPeaksWorkspace::getSplitter,
-           return_internal_reference<>(),
-           "Returns a splitter at the given index");
+  ;
 
-  REGISTER_SINGLEVALUE_HANDLER(IPeaksWorkspace_sptr);
+  // register pointers
+  RegisterWorkspacePtrToPython<ISplittersWorkspace>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/ITableWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/ITableWorkspace.cpp
index ca7bd19774844b67c0d3d0642f5c13fe2a90d8ec..8280d0fb2512acd690f46edcfa72fcfb2ede005a 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/ITableWorkspace.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/ITableWorkspace.cpp
@@ -5,7 +5,7 @@
 #include "MantidPythonInterface/kernel/Converters/NDArrayToVector.h"
 #include "MantidPythonInterface/kernel/Converters/PySequenceToVector.h"
 #include "MantidPythonInterface/kernel/Converters/CloneToNumpy.h"
-#include "MantidPythonInterface/kernel/Registry/DataItemInterface.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 #include "MantidPythonInterface/kernel/Policies/VectorToNumpy.h"
 
 #include <boost/python/class.hpp>
@@ -24,7 +24,7 @@
 #include <numpy/arrayobject.h>
 
 using namespace Mantid::API;
-using Mantid::PythonInterface::Registry::DataItemInterface;
+using Mantid::PythonInterface::Registry::RegisterWorkspacePtrToPython;
 using namespace boost::python;
 
 namespace {
@@ -389,5 +389,5 @@ void export_ITableWorkspace() {
 
   //-------------------------------------------------------------------------------------------------
 
-  DataItemInterface<ITableWorkspace>().castFromID("TableWorkspace");
+  RegisterWorkspacePtrToPython<ITableWorkspace>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/MDGeometry.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/MDGeometry.cpp
index 1938f0c9d82b1cd5fcd64a87cffe8bb4ba6de83b..3e38e6d212610c4ad96a52027f9a18028d718f73 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/MDGeometry.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/MDGeometry.cpp
@@ -1,5 +1,4 @@
 #include "MantidAPI/MDGeometry.h"
-#include "MantidPythonInterface/kernel/Policies/DowncastingPolicies.h"
 #include "MantidPythonInterface/kernel/Policies/RemoveConst.h"
 #include "MantidPythonInterface/kernel/Policies/VectorToNumpy.h"
 #include <boost/python/class.hpp>
@@ -9,7 +8,6 @@
 
 using Mantid::API::MDGeometry;
 using Mantid::Geometry::IMDDimension_const_sptr;
-using Mantid::PythonInterface::Policies::ToSharedPtrWithDowncast;
 using Mantid::PythonInterface::Policies::RemoveConstSharedPtr;
 using Mantid::PythonInterface::Policies::VectorToNumpy;
 using namespace boost::python;
@@ -33,6 +31,7 @@ boost::python::list getNonIntegratedDimensionsAsPyList(const MDGeometry &self) {
   }
   return nonIntegrated;
 }
+
 }
 
 void export_MDGeometry() {
@@ -103,7 +102,7 @@ void export_MDGeometry() {
            "Returns the number of source workspaces attached")
 
       .def("getOriginalWorkspace", &MDGeometry::getOriginalWorkspace,
-           (args("index")), return_value_policy<ToSharedPtrWithDowncast>(),
+           (args("index")),
            "Returns the source workspace attached at the given index")
 
       .def("getOrigin", (const Mantid::Kernel::VMD &(MDGeometry::*)() const) &
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/MatrixWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/MatrixWorkspace.cpp
index 76bd421db50f0dfac7cd74f6e6af108d5864efff..6437dcc7a4a8fb622c1e5324a189aa1a4e73f83d 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/MatrixWorkspace.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/MatrixWorkspace.cpp
@@ -5,33 +5,33 @@
 #include "MantidPythonInterface/kernel/Converters/WrapWithNumpy.h"
 #include "MantidPythonInterface/kernel/Policies/RemoveConst.h"
 #include "MantidPythonInterface/kernel/Policies/VectorToNumpy.h"
-#include "MantidPythonInterface/kernel/Registry/DataItemInterface.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 
 #include <boost/python/class.hpp>
-#include <boost/python/overloads.hpp>
 #include <boost/python/copy_const_reference.hpp>
 #include <boost/python/implicit.hpp>
 #include <boost/python/numeric.hpp>
+#include <boost/python/overloads.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
 
 using namespace Mantid::API;
 using namespace Mantid::Geometry;
 using namespace Mantid::Kernel;
+using namespace Mantid::PythonInterface::Converters;
+using namespace Mantid::PythonInterface::Policies;
+using namespace Mantid::PythonInterface::Registry;
 using namespace boost::python;
 
-namespace Converters = Mantid::PythonInterface::Converters;
-namespace Policies = Mantid::PythonInterface::Policies;
-namespace Registry = Mantid::PythonInterface::Registry;
-
 namespace {
 /// Typedef for data access, i.e. dataX,Y,E members
 typedef Mantid::MantidVec &(MatrixWorkspace::*data_modifier)(const std::size_t);
 
 /// return_value_policy for read-only numpy array
-typedef return_value_policy<
-    Policies::VectorRefToNumpy<Converters::WrapReadOnly>> return_readonly_numpy;
+typedef return_value_policy<VectorRefToNumpy<WrapReadOnly>>
+    return_readonly_numpy;
 /// return_value_policy for read-write numpy array
-typedef return_value_policy<Policies::VectorRefToNumpy<
-    Converters::WrapReadWrite>> return_readwrite_numpy;
+typedef return_value_policy<VectorRefToNumpy<WrapReadWrite>>
+    return_readwrite_numpy;
 
 //------------------------------- Overload macros ---------------------------
 // Overloads for binIndexOf function which has 1 optional argument
@@ -165,7 +165,7 @@ void export_MatrixWorkspace() {
            "Returns workspace index correspondent to the given spectrum "
            "number. Throws if no such spectrum is present in the workspace")
       .def("getDetector", &MatrixWorkspace::getDetector,
-           return_value_policy<Policies::RemoveConstSharedPtr>(),
+           return_value_policy<RemoveConstSharedPtr>(),
            args("self", "workspaceIndex"), "Return the Detector or "
                                            "DetectorGroup that is linked to "
                                            "the given workspace index")
@@ -290,16 +290,5 @@ void export_MatrixWorkspace() {
            "Performs a comparison operation on two workspaces, using the "
            "CheckWorkspacesMatch algorithm");
 
-  //-------------------------------------------------------------------------------------------------
-
-  static const int NUM_IDS = 7;
-  static const char *WORKSPACE_IDS[NUM_IDS] = {
-      "GroupingWorkspace",   "MaskWorkspace",      "OffsetsWorkspace",
-      "RebinnedOutput",      "SpecialWorkspace2D", "Workspace2D",
-      "WorkspaceSingleValue"};
-
-  Registry::DataItemInterface<MatrixWorkspace> entry;
-  for (int i = 0; i < NUM_IDS; ++i) {
-    entry.castFromID(WORKSPACE_IDS[i]);
-  };
+  RegisterWorkspacePtrToPython<MatrixWorkspace>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/PropertyManagerDataService.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/PropertyManagerDataService.cpp
index 34679de85b9a642c099e3a0225607c8dd0d21adc..cc3414a26024676b410da6f014f83cc59cc4f5bb 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/PropertyManagerDataService.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/PropertyManagerDataService.cpp
@@ -5,6 +5,7 @@
 #include "MantidKernel/PropertyManager.h"
 
 #include <boost/python/register_ptr_to_python.hpp>
+#include <boost/weak_ptr.hpp>
 
 using namespace Mantid::API;
 using namespace Mantid::Kernel;
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/Workspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/Workspace.cpp
index 390f45973fea6a52fc34e6d443e1b4c8e4c460b7..04e52cc2d1278d5a60d6fb28ab6712f6b9f52424 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/Workspace.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/Workspace.cpp
@@ -1,13 +1,15 @@
 #include "MantidAPI/Workspace.h"
-#include "MantidPythonInterface/kernel/Registry/DataItemInterface.h"
+
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 
 #include <boost/python/class.hpp>
 #include <boost/python/overloads.hpp>
 #include <boost/python/copy_const_reference.hpp>
 
 using namespace Mantid::API;
-using Mantid::Kernel::DataItem;
-using Mantid::PythonInterface::Registry::DataItemInterface;
+using namespace Mantid::Kernel;
+using namespace Mantid::PythonInterface;
+using namespace Mantid::PythonInterface::Registry;
 using namespace boost::python;
 
 namespace {
@@ -40,7 +42,6 @@ void export_Workspace() {
            return_value_policy<reference_existing_object>(), args("self"),
            "Return read-only access to the workspace history");
 
-  //-------------------------------------------------------------------------------------------------
-
-  DataItemInterface<Workspace>();
+  // register pointers
+  RegisterWorkspacePtrToPython<Workspace>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceFactory.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceFactory.cpp
index 693f5d9166a345889e327b65a1d4f2e9cfaab914..1141e5c3bea9b7537f46431056a8465da8b62e42 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceFactory.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceFactory.cpp
@@ -1,14 +1,14 @@
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/IPeaksWorkspace.h"
-#include "MantidPythonInterface/kernel/Policies/DowncastingPolicies.h"
+#include "MantidPythonInterface/kernel/Policies/AsType.h"
 
 #include <boost/python/class.hpp>
 #include <boost/python/overloads.hpp>
 
 using namespace boost::python;
 using namespace Mantid::API;
-namespace Policies = Mantid::PythonInterface::Policies;
+using namespace Mantid::PythonInterface::Policies;
 
 namespace {
 /**
@@ -31,11 +31,11 @@ namespace {
  *  @throw  std::out_of_range If invalid (0 or less) size arguments are given
  *  @throw  NotFoundException If the class is not registered in the factory
  **/
-MatrixWorkspace_sptr createFromParentPtr(WorkspaceFactoryImpl &self,
-                                         const MatrixWorkspace_sptr &parent,
-                                         size_t NVectors = size_t(-1),
-                                         size_t XLength = size_t(-1),
-                                         size_t YLength = size_t(-1)) {
+Workspace_sptr createFromParentPtr(WorkspaceFactoryImpl &self,
+                                   const MatrixWorkspace_sptr &parent,
+                                   size_t NVectors = size_t(-1),
+                                   size_t XLength = size_t(-1),
+                                   size_t YLength = size_t(-1)) {
   return self.create(parent, NVectors, XLength, YLength);
 }
 
@@ -62,23 +62,21 @@ void export_WorkspaceFactory() {
   class_<WorkspaceFactoryImpl, boost::noncopyable>("WorkspaceFactoryImpl",
                                                    no_init)
       .def("create", &createFromParentPtr,
-           createFromParent_Overload(createFromParentDoc,
-                                     (arg("parent"), arg("NVectors") = -1,
-                                      arg("XLength") = -1, arg("YLength") = -1))
-               [return_value_policy<Policies::ToSharedPtrWithDowncast>()])
+           createFromParent_Overload(
+               createFromParentDoc, (arg("parent"), arg("NVectors") = -1,
+                                     arg("XLength") = -1, arg("YLength") = -1)))
 
       .def("create", (createFromScratchPtr)&WorkspaceFactoryImpl::create,
-           return_value_policy<Policies::ToSharedPtrWithDowncast>(),
-           createFromScratchDoc,
+           createFromScratchDoc, return_value_policy<AsType<Workspace_sptr>>(),
            (arg("className"), arg("NVectors"), arg("XLength"), arg("YLength")))
 
       .def("createTable", &WorkspaceFactoryImpl::createTable,
            createTable_Overload("Creates an empty TableWorkspace",
-                                (arg("className") = "TableWorkspace")))
+                                (arg("className") = "TableWorkspace"))[return_value_policy<AsType<Workspace_sptr>>()])
 
       .def("createPeaks", &WorkspaceFactoryImpl::createPeaks,
            createPeaks_Overload("Creates an empty PeaksWorkspace",
-                                (arg("className") = "PeaksWorkspace")))
+                                (arg("className") = "PeaksWorkspace"))[return_value_policy<AsType<Workspace_sptr>>()])
 
       .def("Instance", &WorkspaceFactory::Instance,
            return_value_policy<reference_existing_object>(),
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceGroup.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceGroup.cpp
index 84e24e52126af02ec4fa49d3aa3e6de9314d94b8..702a7fe490a02376198838b30531fd34f70347cd 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceGroup.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceGroup.cpp
@@ -1,14 +1,13 @@
 #include "MantidAPI/WorkspaceGroup.h"
-#include "MantidPythonInterface/kernel/Policies/DowncastingPolicies.h"
-#include "MantidPythonInterface/kernel/Registry/DataItemInterface.h"
+#include "MantidPythonInterface/kernel/Policies/ToWeakPtr.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
 
 #include <boost/python/class.hpp>
 #include <boost/python/return_value_policy.hpp>
 
 using namespace Mantid::API;
-using Mantid::PythonInterface::Registry::DataItemInterface;
+using namespace Mantid::PythonInterface;
 using namespace boost::python;
-namespace Policies = Mantid::PythonInterface::Policies;
 
 void export_WorkspaceGroup() {
   class_<WorkspaceGroup, bases<Workspace>, boost::noncopyable>("WorkspaceGroup",
@@ -27,7 +26,7 @@ void export_WorkspaceGroup() {
       .def("remove", &WorkspaceGroup::remove, "Remove a name from the group")
       .def("getItem", (Workspace_sptr (WorkspaceGroup::*)(const size_t) const) &
                           WorkspaceGroup::getItem,
-           return_value_policy<Policies::ToWeakPtrWithDowncast>(),
+           return_value_policy<Policies::ToWeakPtr>(),
            "Returns the item at the given index")
       .def("isMultiPeriod", &WorkspaceGroup::isMultiperiod,
            "Retuns true if the workspace group is multi-period")
@@ -39,9 +38,7 @@ void export_WorkspaceGroup() {
       .def("__getitem__",
            (Workspace_sptr (WorkspaceGroup::*)(const size_t) const) &
                WorkspaceGroup::getItem,
-           return_value_policy<Policies::ToWeakPtrWithDowncast>());
+           return_value_policy<Policies::ToWeakPtr>());
 
-  //-----------------------------------------------------------------------------------------------
-
-  DataItemInterface<WorkspaceGroup>().castFromID("WorkspaceGroup");
+  Registry::RegisterWorkspacePtrToPython<WorkspaceGroup>();
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceGroupProperty.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceGroupProperty.cpp
index f29f338ba020dd4331fe6e1e7e9bd905fc9b04ee..5d347d24413f23b46cde912d8cd7fa0c2086762e 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceGroupProperty.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceGroupProperty.cpp
@@ -1,5 +1,5 @@
 #include "MantidPythonInterface/api/WorkspacePropertyExporter.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 
 void export_WorkspaceGroupProperty() {
   using Mantid::API::WorkspaceGroup;
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceProperty.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceProperty.cpp
index 57c18e39153b75cf92601a0ad418460b1fa7ba6c..96312a8df1597f74fd541d7f4acea95ef67ae724 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceProperty.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/Exports/WorkspaceProperty.cpp
@@ -1,5 +1,5 @@
 #include "MantidPythonInterface/api/WorkspacePropertyExporter.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include <boost/python/enum.hpp>
 
 void export_WorkspaceProperty() {
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/api/src/ExtractWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/api/src/ExtractWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6cd114f433ae5bec82581fe49566fa096c96cac2
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/api/src/ExtractWorkspace.cpp
@@ -0,0 +1,54 @@
+//-----------------------------------------------------------------------------
+// Includes
+//-----------------------------------------------------------------------------
+#include "MantidPythonInterface/api/ExtractWorkspace.h"
+
+#include <boost/python/extract.hpp>
+#include <boost/weak_ptr.hpp>
+
+namespace Mantid {
+namespace PythonInterface {
+
+using namespace API;
+
+using boost::python::extract;
+
+//-----------------------------------------------------------------------------
+// Public methods
+//-----------------------------------------------------------------------------
+/**
+ * @param pyvalue Python object from which to extract
+ */
+ExtractWorkspace::ExtractWorkspace(const boost::python::api::object &pyvalue)
+    : m_value() {
+  // Test for a weak pointer first
+  typedef boost::weak_ptr<Workspace> Workspace_wptr;
+  extract<Workspace_wptr&> extractWeak(pyvalue);
+  if (extractWeak.check()) {
+    m_value = extractWeak().lock();
+  }
+  extract<Workspace_sptr&> extractShared(pyvalue);
+  if (extractShared.check()) {
+    m_value = extractShared();
+  }
+}
+
+/**
+ * Check whether the extract can pull out the workspace type
+ * @return True if it can be converted, false otherwise
+ */
+bool ExtractWorkspace::check() const { return m_value.get() != NULL; }
+
+/**
+ * @return The extracted shared_ptr or throws std::invalid_argument
+ */
+const API::Workspace_sptr ExtractWorkspace::operator()() const {
+  if (check()) {
+    return m_value;
+  } else {
+    throw std::invalid_argument(
+        "Unable to extract boost::shared_ptr<Workspace> from Python object");
+  }
+}
+}
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/CMakeLists.txt b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bf7122298a6dfcf17ee7228588e6d16b249b8143
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/CMakeLists.txt
@@ -0,0 +1,88 @@
+#############################################################################################
+# _dataobjects Python module
+#############################################################################################
+
+set ( MODULE_TEMPLATE src/dataobjects.cpp.in )
+
+# Files containing export definitions, these are automatically processed
+# -- Do NOT sort this list. The order defines the order in which the export
+#    definitions occur and some depend on their base classes being exported first --
+set ( EXPORT_FILES
+  src/Exports/EventWorkspace.cpp
+  src/Exports/Workspace2D.cpp
+  src/Exports/RebinnedOutput.cpp
+  src/Exports/SpecialWorkspace2D.cpp
+  src/Exports/GroupingWorkspace.cpp
+  src/Exports/MaskWorkspace.cpp
+  src/Exports/OffsetsWorkspace.cpp
+  src/Exports/MDEventWorkspace.cpp
+  src/Exports/MDHistoWorkspace.cpp
+  src/Exports/PeaksWorkspace.cpp
+  src/Exports/TableWorkspace.cpp
+  src/Exports/SplittersWorkspace.cpp
+  src/Exports/WorkspaceSingleValue.cpp
+)
+
+set ( MODULE_DEFINITION ${CMAKE_CURRENT_BINARY_DIR}/dataobjects.cpp )
+create_module ( ${MODULE_TEMPLATE} ${MODULE_DEFINITION} ${EXPORT_FILES} )
+
+#############################################################################################
+# Helper code
+#############################################################################################
+set ( SRC_FILES )
+
+set ( INC_FILES )
+
+set ( PY_FILES __init__.py )
+
+
+#############################################################################################
+# Copy over the pure Python files for the module
+#############################################################################################
+# Set the destination directory
+set ( OUTPUT_DIR ${PYTHON_PKG_ROOT}/dataobjects )
+
+if(CMAKE_GENERATOR STREQUAL Xcode)
+  # Set the output directory for the libraries.
+  set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PYTHON_PKG_ROOT}/dataobjects )
+endif()
+
+copy_files_to_dir ( "${PY_FILES}" ${CMAKE_CURRENT_SOURCE_DIR} ${OUTPUT_DIR}
+                     PYTHON_INSTALL_FILES )
+
+#############################################################################################
+# Create the target for this directory
+#############################################################################################
+set ( FRAMEWORK_DIR ../../.. )
+include_directories ( ${FRAMEWORK_DIR}/DataObjects/inc )
+
+add_library ( PythonDataObjectsModule ${MODULE_DEFINITION} ${EXPORT_FILES} ${SRC_FILES}
+              ${INC_FILES} ${PYTHON_INSTALL_FILES} )
+set_python_properties( PythonDataObjectsModule _dataobjects )
+set_target_output_directory ( PythonDataObjectsModule ${OUTPUT_DIR} .pyd )
+
+# Add the required dependencies
+target_link_libraries ( PythonDataObjectsModule LINK_PRIVATE
+            PythonAPIModule
+            PythonGeometryModule
+            PythonKernelModule
+            API
+            DataObjects
+            Kernel
+            Geometry
+            ${PYTHON_LIBRARIES}
+            ${POCO_LIBRARIES}
+            ${Boost_LIBRARIES} )
+
+
+if (OSX_VERSION VERSION_GREATER 10.8)
+  set_target_properties( PythonDataObjectsModule PROPERTIES
+                         INSTALL_RPATH "@loader_path/../../../MacOS;@loader_path/../kernel/;@loader_path/../geometry/;@loader_path/../api/")
+endif ()
+###########################################################################
+# Installation settings
+###########################################################################
+install ( TARGETS PythonDataObjectsModule ${SYSTEM_PACKAGE_TARGET} DESTINATION ${BIN_DIR}/mantid/dataobjects )
+
+# Pure Python files
+install ( FILES ${PY_FILES} DESTINATION ${BIN_DIR}/mantid/dataobjects )
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/__init__.py b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..0826a2b5cd824f7ae3dede95f48dad74a6e643c6
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/__init__.py
@@ -0,0 +1,22 @@
+"""
+datobjects
+==========
+
+Defines Python objects that wrap the C++ DataObjects namespace. These are exported
+so that boost::python can automagically downcast objects to the correct leaf type.
+
+For example, AnalysisDataService.retrieve() returns a pointer to a basic Workspace
+object. In C++ a dynamic_cast is used to get the correct type but Python has no concept
+of this so users would be left with a pretty useless object.Boost::python can automatically
+downcast to the correct leaf type if the export for that class exists in the registry.
+
+The names from the library are not imported by default as it is best if the interface classes
+are used for checks such as isinstance()
+"""
+from __future__ import absolute_import
+
+###############################################################################
+# Load the C++ library and register the C++ class exports
+###############################################################################
+from . import _dataobjects
+from ._dataobjects import *
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/EventWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/EventWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..17fbf961730fd7509a99ff09326b8e6e9971d414
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/EventWorkspace.cpp
@@ -0,0 +1,20 @@
+#include "MantidDataObjects/EventWorkspace.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+
+#include <boost/python/class.hpp>
+#include <boost/python/object/inheritance.hpp>
+
+using Mantid::API::IEventWorkspace;
+using Mantid::DataObjects::EventWorkspace;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_EventWorkspace()
+{
+  class_<EventWorkspace, bases<IEventWorkspace>,
+         boost::noncopyable>("EventWorkspace", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<EventWorkspace>();
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/GroupingWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/GroupingWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..26927bf843ea02f16f6946cbc455b6e7bd463ac3
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/GroupingWorkspace.cpp
@@ -0,0 +1,19 @@
+#include "MantidDataObjects/GroupingWorkspace.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+#include <boost/python/class.hpp>
+
+using Mantid::DataObjects::GroupingWorkspace;
+using Mantid::DataObjects::SpecialWorkspace2D;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_GroupingWorkspace()
+{
+  class_<GroupingWorkspace, bases<SpecialWorkspace2D>,
+         boost::noncopyable>("GroupingWorkspace", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<GroupingWorkspace>();
+
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/MDEventWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/MDEventWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..622cf6c3ece44c482e34137d5a2c4d5d9bb44332
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/MDEventWorkspace.cpp
@@ -0,0 +1,65 @@
+#include "MantidDataObjects/MDEventWorkspace.h"
+#include "MantidDataObjects/MDEvent.h"
+#include "MantidDataObjects/MDLeanEvent.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+
+#include <boost/python/class.hpp>
+
+using Mantid::API::IMDEventWorkspace;
+using Mantid::DataObjects::MDEventWorkspace;
+using Mantid::DataObjects::MDEvent;
+using Mantid::DataObjects::MDLeanEvent;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+namespace {
+
+  /**
+   * @tparam MDE The event type
+   * @tparam nd The number of dimensions
+   * @param className Name of the class in Python
+   */
+  template<typename MDE, size_t nd>
+  void MDEventWorkspaceExportImpl(const char *className) {
+    typedef MDEventWorkspace<MDE, nd> ExportType;
+
+    class_<ExportType, bases<IMDEventWorkspace>,
+           boost::noncopyable>(className, no_init)
+      ;
+
+    // register pointers
+    RegisterWorkspacePtrToPython<ExportType>();
+  }
+
+}
+
+void export_MDEventWorkspaces()
+{
+  // The maximum number of dimensions is defined in the MDWorkspaceFactory
+  MDEventWorkspaceExportImpl<MDEvent<1>, 1>("MDEventWorkspace1D");
+  MDEventWorkspaceExportImpl<MDLeanEvent<1>, 1>("MDLeanEventWorkspace1D");
+
+  MDEventWorkspaceExportImpl<MDEvent<2>, 2>("MDEventWorkspace2D");
+  MDEventWorkspaceExportImpl<MDLeanEvent<2>, 2>("MDLeanEventWorkspace2D");
+
+  MDEventWorkspaceExportImpl<MDEvent<3>, 3>("MDEventWorkspace3D");
+  MDEventWorkspaceExportImpl<MDLeanEvent<3>, 3>("MDLeanEventWorkspace3D");
+
+  MDEventWorkspaceExportImpl<MDEvent<4>, 4>("MDEventWorkspace4D");
+  MDEventWorkspaceExportImpl<MDLeanEvent<4>, 4>("MDLeanEventWorkspace4D");
+
+  MDEventWorkspaceExportImpl<MDEvent<5>, 5>("MDEventWorkspace5D");
+  MDEventWorkspaceExportImpl<MDLeanEvent<5>, 5>("MDLeanEventWorkspace5D");
+
+  MDEventWorkspaceExportImpl<MDEvent<6>, 6>("MDEventWorkspace6D");
+  MDEventWorkspaceExportImpl<MDLeanEvent<6>, 6>("MDLeanEventWorkspace6D");
+
+  MDEventWorkspaceExportImpl<MDEvent<7>, 7>("MDEventWorkspace7D");
+  MDEventWorkspaceExportImpl<MDLeanEvent<7>, 7>("MDLeanEventWorkspace7D");
+
+  MDEventWorkspaceExportImpl<MDEvent<8>, 8>("MDEventWorkspace8D");
+  MDEventWorkspaceExportImpl<MDLeanEvent<8>, 8>("MDLeanEventWorkspace8D");
+
+  MDEventWorkspaceExportImpl<MDEvent<9>, 9>("MDEventWorkspace9D");
+  MDEventWorkspaceExportImpl<MDLeanEvent<9>, 9>("MDLeanEventWorkspace9D");
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/MDHistoWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/MDHistoWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..70c348159b431a9a788e50f86ccd583c1176b48e
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/MDHistoWorkspace.cpp
@@ -0,0 +1,19 @@
+#include "MantidDataObjects/MDHistoWorkspace.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+
+#include <boost/python/class.hpp>
+
+using Mantid::API::IMDHistoWorkspace;
+using Mantid::DataObjects::MDHistoWorkspace;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_MDHistoWorkspace()
+{
+  class_<MDHistoWorkspace, bases<IMDHistoWorkspace>,
+         boost::noncopyable>("MDHistoWorkspace", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<MDHistoWorkspace>();
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/MaskWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/MaskWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d9f952eff19bd5d0497003e053a408948facaf8e
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/MaskWorkspace.cpp
@@ -0,0 +1,19 @@
+#include "MantidDataObjects/MaskWorkspace.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+#include <boost/python/class.hpp>
+
+using Mantid::API::IMaskWorkspace;
+using Mantid::DataObjects::MaskWorkspace;
+using Mantid::DataObjects::SpecialWorkspace2D;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_MaskWorkspace() {
+  class_<MaskWorkspace, bases<SpecialWorkspace2D, IMaskWorkspace>,
+         boost::noncopyable>("MaskWorkspace", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<MaskWorkspace>();
+
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/OffsetsWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/OffsetsWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..350e3b4633a93b6ac56b6caac0a267bc2a36af3c
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/OffsetsWorkspace.cpp
@@ -0,0 +1,19 @@
+#include "MantidDataObjects/OffsetsWorkspace.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+#include <boost/python/class.hpp>
+
+using Mantid::DataObjects::OffsetsWorkspace;
+using Mantid::DataObjects::SpecialWorkspace2D;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_OffsetsWorkspace()
+{
+  class_<OffsetsWorkspace, bases<SpecialWorkspace2D>,
+         boost::noncopyable>("OffsetsWorkspace", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<OffsetsWorkspace>();
+
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/PeaksWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/PeaksWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ac7f9ff8bcb501f9b2d7c7e03efdf3d9ad666d8c
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/PeaksWorkspace.cpp
@@ -0,0 +1,19 @@
+#include "MantidDataObjects/PeaksWorkspace.h"
+#include <boost/python/class.hpp>
+
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+
+using Mantid::API::IPeaksWorkspace;
+using Mantid::DataObjects::PeaksWorkspace;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_PeaksWorkspace()
+{
+
+  class_<PeaksWorkspace, bases<IPeaksWorkspace>, boost::noncopyable>(
+      "PeaksWorkspace", no_init);
+
+  // register pointers
+  RegisterWorkspacePtrToPython<PeaksWorkspace>();
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/RebinnedOutput.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/RebinnedOutput.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..36498e514876f0c3919339a3cc7654c4bab862e9
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/RebinnedOutput.cpp
@@ -0,0 +1,19 @@
+#include "MantidDataObjects/RebinnedOutput.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+
+#include <boost/python/class.hpp>
+
+using Mantid::DataObjects::Workspace2D;
+using Mantid::DataObjects::RebinnedOutput;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_RebinnedOutput()
+{
+  class_<RebinnedOutput, bases<Workspace2D>,
+         boost::noncopyable>("RebinnedOutput", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<RebinnedOutput>();
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/SpecialWorkspace2D.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/SpecialWorkspace2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2632eb32dc7860fff54460acfb1d0e32ae401962
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/SpecialWorkspace2D.cpp
@@ -0,0 +1,18 @@
+#include "MantidDataObjects/SpecialWorkspace2D.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+#include <boost/python/class.hpp>
+
+using Mantid::DataObjects::Workspace2D;
+using Mantid::DataObjects::SpecialWorkspace2D;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_SpecialWorkspace2D()
+{
+  class_<SpecialWorkspace2D, bases<Workspace2D>,
+         boost::noncopyable>("SpecialWorkspace2D", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<SpecialWorkspace2D>();
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/SplittersWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/SplittersWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..bfa02bf3a42540246f6c870e81140217e662af13
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/SplittersWorkspace.cpp
@@ -0,0 +1,19 @@
+#include "MantidDataObjects/SplittersWorkspace.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+#include <boost/python/class.hpp>
+
+using Mantid::API::ISplittersWorkspace;
+using Mantid::DataObjects::SplittersWorkspace;
+using Mantid::DataObjects::TableWorkspace;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_SplittersWorkspace() {
+  class_<SplittersWorkspace, bases<TableWorkspace, ISplittersWorkspace>,
+         boost::noncopyable>("SplittersWorkspace", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<SplittersWorkspace>();
+
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/TableWorkspace.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/TableWorkspace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..66d4d276be9677eff0701447e42992db9d6da467
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/TableWorkspace.cpp
@@ -0,0 +1,19 @@
+#include "MantidDataObjects/TableWorkspace.h"
+#include <boost/python/class.hpp>
+
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+
+using Mantid::API::ITableWorkspace;
+using Mantid::DataObjects::TableWorkspace;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_TableWorkspace()
+{
+
+  class_<TableWorkspace, bases<ITableWorkspace>, boost::noncopyable>(
+      "TableWorkspace", no_init);
+
+  // register pointers
+  RegisterWorkspacePtrToPython<TableWorkspace>();
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/Workspace2D.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/Workspace2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d4bb59f602abe581891e923ecc525b6ec813ccbd
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/Workspace2D.cpp
@@ -0,0 +1,19 @@
+#include "MantidDataObjects/Workspace2D.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+
+#include <boost/python/class.hpp>
+
+using Mantid::API::MatrixWorkspace;
+using Mantid::DataObjects::Workspace2D;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_Workspace2D()
+{
+  class_<Workspace2D, bases<MatrixWorkspace>,
+         boost::noncopyable>("Workspace2D", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<Workspace2D>();
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/WorkspaceSingleValue.cpp b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/WorkspaceSingleValue.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..3a7f59c584f0a484d8ce8002bffb05c438b69be7
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/Exports/WorkspaceSingleValue.cpp
@@ -0,0 +1,18 @@
+#include "MantidDataObjects/WorkspaceSingleValue.h"
+#include "MantidPythonInterface/kernel/Registry/RegisterWorkspacePtrToPython.h"
+
+#include <boost/python/class.hpp>
+
+using Mantid::API::MatrixWorkspace;
+using Mantid::DataObjects::WorkspaceSingleValue;
+using namespace Mantid::PythonInterface::Registry;
+using namespace boost::python;
+
+void export_WorkspaceSingleValue() {
+  class_<WorkspaceSingleValue, bases<MatrixWorkspace>,
+         boost::noncopyable>("WorkspaceSingleValue", no_init)
+    ;
+
+  // register pointers
+  RegisterWorkspacePtrToPython<WorkspaceSingleValue>();
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/dataobjects.cpp.in b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/dataobjects.cpp.in
new file mode 100644
index 0000000000000000000000000000000000000000..171538a408d1bd3e9e621bb7fc112bc98b2ef418
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/mantid/dataobjects/src/dataobjects.cpp.in
@@ -0,0 +1,26 @@
+/*****************************************************************************************/
+/********** PLEASE NOTE! THIS FILE WAS AUTO-GENERATED FROM CMAKE.  ***********************/
+/********** Source = dataobjects.cpp.in **********************************************************/
+/*****************************************************************************************/
+#include <boost/python/def.hpp>
+#include <boost/python/module.hpp>
+#include <boost/python/docstring_options.hpp>
+
+// See http://docs.scipy.org/doc/numpy/reference/c-api.array.html#PY_ARRAY_UNIQUE_SYMBOL
+#define PY_ARRAY_UNIQUE_SYMBOL DATAOBJECTS_ARRAY_API
+#include <numpy/arrayobject.h>
+#include <boost/python/numeric.hpp>
+
+// Forward declare
+@EXPORT_DECLARE@
+
+BOOST_PYTHON_MODULE(_dataobjects)
+{
+  // Doc string options - User defined, python arguments, C++ call signatures
+  boost::python::docstring_options docstrings(true, true, false);
+  // Import numpy
+  _import_array();
+  boost::python::numeric::array::set_module_and_type("numpy", "ndarray");
+
+@EXPORT_FUNCTIONS@
+}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroup.cpp b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroup.cpp
index 56596950791bbf49a35d525cb470164f4956687c..c7784d3ac654d8f3e6f1f625067e59087cc84415 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroup.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroup.cpp
@@ -31,15 +31,39 @@ boost::python::list getEquivalentPositions(SpaceGroup &self,
 
   return pythonEquivalents;
 }
+
+bool isAllowedReflection(SpaceGroup &self, const object &hkl) {
+    const Mantid::Kernel::V3D &hklV3d = Converters::PyObjectToV3D(hkl)();
+
+    return self.isAllowedReflection(hklV3d);
+}
+
+Mantid::Geometry::Group_sptr getSiteSymmetryGroup(
+        SpaceGroup &self,
+        const object &position) {
+    const Mantid::Kernel::V3D &posV3d = Converters::PyObjectToV3D(position)();
+
+    Mantid::Geometry::Group_sptr group = boost::const_pointer_cast<Group>(
+                self.getSiteSymmetryGroup(posV3d));
+
+    return group;
+}
 }
 
 void export_SpaceGroup() {
-  register_ptr_to_python<boost::shared_ptr<SpaceGroup>>();
+  register_ptr_to_python<boost::shared_ptr<SpaceGroup> >();
 
-  class_<SpaceGroup, boost::noncopyable, bases<Group>>("SpaceGroup", no_init)
+  class_<SpaceGroup, boost::noncopyable, bases<Group> >("SpaceGroup", no_init)
       .def("getNumber", &SpaceGroup::number)
       .def("getHMSymbol", &SpaceGroup::hmSymbol)
       .def("getEquivalentPositions", &getEquivalentPositions,
            "Returns an array with all symmetry equivalents of the supplied "
-           "HKL.");
+           "HKL.")
+      .def("isAllowedReflection", &isAllowedReflection,
+           "Returns True if the supplied reflection is allowed with respect to "
+           "space group symmetry operations.")
+      .def("getPointGroup", &SpaceGroup::getPointGroup,
+           "Returns the point group of the space group.")
+      .def("getSiteSymmetryGroup", &getSiteSymmetryGroup,
+           "Returns the site symmetry group for supplied point coordinates.");
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroupFactory.cpp b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroupFactory.cpp
index 08c42d97b589581b177ee0cc18f0950ec8421c97..365d6e02a78ba2b35863b83effebb5d24cca5fe1 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroupFactory.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroupFactory.cpp
@@ -18,6 +18,12 @@ std::vector<std::string> spaceGroupSymbolsForNumber(SpaceGroupFactoryImpl &self,
   return self.subscribedSpaceGroupSymbols(number);
 }
 
+std::vector<std::string>
+spaceGroupSymbolsForPointGroup(SpaceGroupFactoryImpl &self,
+                               const PointGroup_sptr &pointGroup) {
+  return self.subscribedSpaceGroupSymbols(pointGroup);
+}
+
 bool isSubscribedSymbol(SpaceGroupFactoryImpl &self,
                         const std::string &symbol) {
   return self.isSubscribed(symbol);
@@ -51,6 +57,7 @@ void export_SpaceGroupFactory() {
       .def("subscribedSpaceGroupSymbols", &spaceGroupSymbolsForNumber,
            "Returns all space group symbols that are registered under the "
            "given number.")
+      .def("getSpaceGroupsForPointGroup", &spaceGroupSymbolsForPointGroup)
       .def("Instance", &SpaceGroupFactory::Instance,
            return_value_policy<reference_existing_object>(),
            "Returns a reference to the SpaceGroupFactory singleton")
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SymmetryElement.cpp b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SymmetryElement.cpp
index c0d4762ea09e0023aa02531b7d8320c5de522c70..a8471aee75d75224caf64ba9cee54ca60c8a4502 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SymmetryElement.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SymmetryElement.cpp
@@ -1,6 +1,7 @@
 #include "MantidGeometry/Crystal/SymmetryElement.h"
 
 #include <boost/python/class.hpp>
+#include <boost/python/enum.hpp>
 #include <boost/python/scope.hpp>
 #include <boost/python/register_ptr_to_python.hpp>
 
@@ -13,19 +14,42 @@ Mantid::Kernel::V3D getAxis(SymmetryElement &self) {
     SymmetryElementWithAxis &axisElement =
         dynamic_cast<SymmetryElementWithAxis &>(self);
     return Mantid::Kernel::V3D(axisElement.getAxis());
-  } catch (std::bad_cast) {
+  }
+  catch (std::bad_cast) {
     return Mantid::Kernel::V3D(0, 0, 0);
   }
 }
+
+SymmetryElementRotation::RotationSense getRotationSense(SymmetryElement &self) {
+  try {
+    SymmetryElementRotation &rotationElement =
+        dynamic_cast<SymmetryElementRotation &>(self);
+    return rotationElement.getRotationSense();
+  }
+  catch (std::bad_cast) {
+    return SymmetryElementRotation::None;
+  }
+}
 }
 
 void export_SymmetryElement() {
-  register_ptr_to_python<boost::shared_ptr<SymmetryElement>>();
+  register_ptr_to_python<boost::shared_ptr<SymmetryElement> >();
+
   scope symmetryElementScope =
       class_<SymmetryElement, boost::noncopyable>("SymmetryElement", no_init);
+
+  enum_<SymmetryElementRotation::RotationSense>("RotationSense")
+      .value("Positive", SymmetryElementRotation::Positive)
+      .value("Negative", SymmetryElementRotation::Negative)
+      .value("None", SymmetryElementRotation::None);
+
   class_<SymmetryElement, boost::noncopyable>("SymmetryElement", no_init)
       .def("getHMSymbol", &SymmetryElement::hmSymbol,
            "Returns the Hermann-Mauguin symbol for the element.")
       .def("getAxis", &getAxis, "Returns the symmetry axis or [0,0,0] for "
-                                "identiy, inversion and translations.");
+                                "identiy, inversion and translations.")
+      .def("getRotationSense", &getRotationSense,
+           "Returns the rotation sense"
+           "of a rotation axis or None"
+           "if the element is not a rotation.");
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/CMakeLists.txt b/Code/Mantid/Framework/PythonInterface/mantid/kernel/CMakeLists.txt
index 6c8444c39e386f26dacca2b37b847e7a18149712..850b75ff20ba720ca8a6c586b1f89c3e392d3e81 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/CMakeLists.txt
+++ b/Code/Mantid/Framework/PythonInterface/mantid/kernel/CMakeLists.txt
@@ -69,7 +69,6 @@ set ( SRC_FILES
   src/Registry/PropertyWithValueFactory.cpp
   src/Registry/SequenceTypeHandler.cpp
   src/Registry/TypeRegistry.cpp
-  src/Registry/DowncastRegistry.cpp
   src/Environment/ErrorHandling.cpp
   src/Environment/Threading.cpp
   src/Environment/WrapperHelpers.cpp
@@ -93,13 +92,15 @@ set ( INC_FILES
   ${HEADER_DIR}/kernel/Environment/Threading.h
   ${HEADER_DIR}/kernel/Environment/WrapperHelpers.h
   ${HEADER_DIR}/kernel/Policies/MatrixToNumpy.h
+  ${HEADER_DIR}/kernel/Policies/RemoveConst.h
+  ${HEADER_DIR}/kernel/Policies/ToWeakPtr.h
   ${HEADER_DIR}/kernel/Policies/VectorToNumpy.h
   ${HEADER_DIR}/kernel/Registry/PropertyValueHandler.h
   ${HEADER_DIR}/kernel/Registry/PropertyWithValueFactory.h
   ${HEADER_DIR}/kernel/Registry/SequenceTypeHandler.h
   ${HEADER_DIR}/kernel/Registry/TypedPropertyValueHandler.h
   ${HEADER_DIR}/kernel/Registry/TypeRegistry.h
-  ${HEADER_DIR}/kernel/Registry/DowncastRegistry.h
+  ${HEADER_DIR}/kernel/Registry/RegisterWorkspacePtrToPython.h
   ${HEADER_DIR}/kernel/DataServiceExporter.h
   ${HEADER_DIR}/kernel/IsNone.h
   ${HEADER_DIR}/kernel/PropertyWithValueExporter.h
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Converters/NDArrayTypeIndex.cpp b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Converters/NDArrayTypeIndex.cpp
index 303a71df27893aa770e7555ec9832707726d7a57..1f7250a6a35fc573304b90e489acd1e88ebf8705 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Converters/NDArrayTypeIndex.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Converters/NDArrayTypeIndex.cpp
@@ -17,7 +17,7 @@ namespace Converters {
 /// Macro to define mappings between the CType and Numpy enum
 #define DEFINE_TYPE_MAPPING(CType, NDTypeNum)                                  \
   template <> int NDArrayTypeIndex<CType>::typenum = NDTypeNum;                \
-  template DLLExport struct NDArrayTypeIndex<CType>;
+  template PYTHON_KERNEL_DLL struct NDArrayTypeIndex<CType>;
 
 DEFINE_TYPE_MAPPING(int, NPY_INT)
 DEFINE_TYPE_MAPPING(long, NPY_LONG)
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Converters/WrapWithNumpy.cpp b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Converters/WrapWithNumpy.cpp
index 3379972ae350f1fe0c87cfae8d605295cb514e9a..b93d8920b2f9e076536dfaca6b45499fcdc4ea9e 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Converters/WrapWithNumpy.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Converters/WrapWithNumpy.cpp
@@ -47,8 +47,9 @@ PyObject *wrapWithNDArray(const ElementType *carray, const int ndims,
                           Py_intptr_t *dims, const NumpyWrapMode mode) {
   int datatype = NDArrayTypeIndex<ElementType>::typenum;
   PyArrayObject *nparray = (PyArrayObject *)PyArray_SimpleNewFromData(
-      ndims, dims, datatype,
-      static_cast<void *>(const_cast<ElementType *>(carray)));
+        ndims, dims, datatype,
+        static_cast<void *>(const_cast<ElementType *>(carray)));
+
 
   if (mode == ReadOnly)
     markReadOnly(nparray);
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/ConfigService.cpp b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/ConfigService.cpp
index 9dbcb57b5971b6001318c7573656e16aa7cba523..f9d82f4127c2c664dd820de8ace3f157224eb78b 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/ConfigService.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/ConfigService.cpp
@@ -123,6 +123,12 @@ void export_ConfigService() {
            "Saves the keys that have changed from their default to the given "
            "filename")
 
+      .def("setFileLogLevel", &ConfigServiceImpl::setFileLogLevel,
+          "Sets the log level priority for the File log channel, logLevel 1 = Fatal, 6 = information, 7 = Debug")
+
+      .def("setConsoleLogLevel", &ConfigServiceImpl::setConsoleLogLevel,
+          "Sets the log level priority for the Console log channel, logLevel 1 = Fatal, 6 = information, 7 = Debug")
+
       .def("keys", &ConfigServiceImpl::keys)
 
       // Treat this as a dictionary
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/Memory.cpp b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/Memory.cpp
index 764c9b9cc4210788fa05eeaace23335fe3f2b8b9..46aad239e32e0b3cebd83ae3ca11ca510013c9b5 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/Memory.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/Memory.cpp
@@ -7,11 +7,13 @@ using namespace boost::python;
 void export_MemoryStats() {
 
   class_<MemoryStats>("MemoryStats", init<>("Construct MemoryStats object."))
-      .def("update", &MemoryStats::update)
-      .def("totalMem", &MemoryStats::totalMem)
-      .def("availMem", &MemoryStats::availMem)
-      .def("residentMem", &MemoryStats::residentMem)
-      .def("virtualMem", &MemoryStats::virtualMem)
-      .def("reservedMem", &MemoryStats::reservedMem)
-      .def("getFreeRatio", &MemoryStats::getFreeRatio);
+      .def("update", &MemoryStats::update, args("self"))
+      .def("totalMem", &MemoryStats::totalMem, args("self"))
+      .def("availMem", &MemoryStats::availMem, args("self"))
+      .def("residentMem", &MemoryStats::residentMem, args("self"))
+      .def("virtualMem", &MemoryStats::virtualMem, args("self"))
+      .def("reservedMem", &MemoryStats::reservedMem, args("self"))
+      .def("getFreeRatio", &MemoryStats::getFreeRatio, args("self"))
+      .def("getCurrentRSS", &MemoryStats::getCurrentRSS, args("self"))
+      .def("getPeakRSS", &MemoryStats::getPeakRSS, args("self"));
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/Property.cpp b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/Property.cpp
index c37456f5db73d157a58425e2ec7249a3f3dc7985..9c4804e916715cdb033015c46b16e22812bb3681 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/Property.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/Property.cpp
@@ -1,3 +1,4 @@
+#include "MantidKernel/EmptyValues.h"
 #include "MantidKernel/Property.h"
 #include "MantidKernel/IPropertySettings.h"
 #include "MantidPythonInterface/kernel/StlExportDefinitions.h"
@@ -78,5 +79,9 @@ void export_Property() {
       .add_property("settings",
                     make_function(&Property::getSettings,
                                   return_value_policy<return_by_value>()),
-                    "Return the object managing this property's settings");
+                    "Return the object managing this property's settings")
+
+      .add_static_property("EMPTY_DBL", &Mantid::EMPTY_DBL)
+      .add_static_property("EMPTY_INT", &Mantid::EMPTY_INT)
+      .add_static_property("EMPTY_LONG", &Mantid::EMPTY_LONG);
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/PropertyManager.cpp b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/PropertyManager.cpp
index 11de9ef154cd6d871d0e206b0211939714af5a09..058a38cbb5aa1b4a4445d79c37a87afce1684746 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/PropertyManager.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/PropertyManager.cpp
@@ -6,29 +6,25 @@
 
 #include "MantidKernel/IPropertyManager.h"
 #include "MantidKernel/PropertyManager.h"
-#include "MantidPythonInterface/kernel/Registry/TypeRegistry.h"
-#include "MantidPythonInterface/kernel/Registry/PropertyValueHandler.h"
-#include "MantidPythonInterface/kernel/Registry/PropertyWithValueFactory.h"
 
 #include <boost/python/class.hpp>
-#include <boost/python/dict.hpp>
-#include <boost/python/list.hpp>
 #include <boost/python/register_ptr_to_python.hpp>
-#include <boost/python/copy_const_reference.hpp>
 
 using Mantid::Kernel::IPropertyManager;
-using Mantid::Kernel::Property;
 using Mantid::Kernel::PropertyManager;
-namespace Registry = Mantid::PythonInterface::Registry;
 
 using namespace boost::python;
 
-namespace {}
-
 void export_PropertyManager() {
-  register_ptr_to_python<boost::shared_ptr<PropertyManager>>();
-  class_<PropertyManager, bases<IPropertyManager>, boost::noncopyable>(
-      "PropertyManager");
+  typedef boost::shared_ptr<PropertyManager> PropertyManager_sptr;
+
+  // The second argument defines the actual type held within the Python object.
+  // This means that when a PropertyManager is constructed in Python it actually used
+  // a shared_ptr to the object rather than a raw pointer. This knowledge is used by
+  // DataServiceExporter::extractCppValue to assume that it can always extract a shared_ptr
+  // type
+  class_<PropertyManager, PropertyManager_sptr, bases<IPropertyManager>,
+         boost::noncopyable>("PropertyManager");
 }
 
 #ifdef _MSC_VER
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/PropertyWithValue.cpp b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/PropertyWithValue.cpp
index 1601d2c1c4fc383b401d34eec850b78404d5a40d..aa9d0928c9ea6d664334885c07eacaf1fd9ac5ec 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/PropertyWithValue.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Exports/PropertyWithValue.cpp
@@ -1,37 +1,47 @@
 #include "MantidPythonInterface/kernel/PropertyWithValueExporter.h"
 
+#include <boost/python/copy_const_reference.hpp>
+
 using Mantid::PythonInterface::PropertyWithValueExporter;
 
 void export_BasicPropertyWithValueTypes() {
-// cut down copy-and-paste code
-#define EXPORT_PROP(CType, ExportName)                                         \
-  PropertyWithValueExporter<CType>::define(ExportName);
-
   // ints & vectors
-  EXPORT_PROP(int, "IntPropertyWithValue");
-  EXPORT_PROP(std::vector<int>, "VectorIntPropertyWithValue");
-  EXPORT_PROP(unsigned int, "UIntPropertyWithValue");
-  EXPORT_PROP(std::vector<unsigned int>, "VectorUIntPropertyWithValue");
+  PropertyWithValueExporter<int>::define("IntPropertyWithValue");
+  PropertyWithValueExporter<std::vector<int>>::define(
+      "VectorIntPropertyWithValue");
+  PropertyWithValueExporter<unsigned int>::define("UIntPropertyWithValue");
+  PropertyWithValueExporter<std::vector<unsigned int>>::define(
+      "VectorUIntPropertyWithValue");
+
   // longs & vectors
-  EXPORT_PROP(long, "LongPropertyWithValue");
-  EXPORT_PROP(std::vector<long>, "VectorLongPropertyWithValue");
-  EXPORT_PROP(unsigned long, "ULongPropertyWithValue");
-  EXPORT_PROP(std::vector<unsigned long>, "VectorULongPropertyWithValue");
+  PropertyWithValueExporter<long>::define("LongPropertyWithValue");
+  PropertyWithValueExporter<std::vector<long>>::define(
+      "VectorLongPropertyWithValue");
+  PropertyWithValueExporter<unsigned long>::define("ULongPropertyWithValue");
+  PropertyWithValueExporter<std::vector<unsigned long>>::define(
+      "VectorULongPropertyWithValue");
+
   // long long long longs & vectors
-  EXPORT_PROP(long long, "LongLongPropertyWithValue");
-  EXPORT_PROP(std::vector<long long>, "VectorLongLongPropertyWithValue");
-  EXPORT_PROP(unsigned long long, "ULongLongPropertyWithValue");
-  EXPORT_PROP(std::vector<unsigned long long>,
-              "VectorULongLongPropertyWithValue");
+  PropertyWithValueExporter<long long>::define("LongLongPropertyWithValue");
+  PropertyWithValueExporter<std::vector<long long>>::define(
+      "VectorLongLongPropertyWithValue");
+  PropertyWithValueExporter<unsigned long long>::define(
+      "ULongLongPropertyWithValue");
+  PropertyWithValueExporter<std::vector<unsigned long long>>::define(
+      "VectorULongLongPropertyWithValue");
+
   // double
-  EXPORT_PROP(double, "FloatPropertyWithValue");
-  EXPORT_PROP(std::vector<double>, "VectorFloatPropertyWithValue");
+  PropertyWithValueExporter<double>::define("FloatPropertyWithValue");
+  PropertyWithValueExporter<std::vector<double>>::define(
+      "VectorFloatPropertyWithValue");
+
   // boolean
-  EXPORT_PROP(bool, "BoolPropertyWithValue");
-  EXPORT_PROP(std::vector<bool>, "VectorBoolPropertyWithValue");
-  // std::string
-  EXPORT_PROP(std::string, "StringPropertyWithValue");
-  EXPORT_PROP(std::vector<std::string>, "VectorStringPropertyWithValue");
+  PropertyWithValueExporter<bool>::define("BoolPropertyWithValue");
+  PropertyWithValueExporter<std::vector<bool>>::define(
+      "VectorBoolPropertyWithValue");
 
-#undef EXPORT_PROP
+  // std::string
+  PropertyWithValueExporter<std::string>::define("StringPropertyWithValue");
+  PropertyWithValueExporter<std::vector<std::string>>::define(
+      "VectorStringPropertyWithValue");
 }
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Registry/DowncastRegistry.cpp b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Registry/DowncastRegistry.cpp
deleted file mode 100644
index b238faa3576723885e3abec3c7492e07a348a192..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/Registry/DowncastRegistry.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//-----------------------------------------------------------------------------
-// Includes
-//-----------------------------------------------------------------------------
-#include "MantidPythonInterface/kernel/Registry/DowncastRegistry.h"
-
-#include <boost/make_shared.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/unordered_map.hpp>
-#include <stdexcept>
-
-namespace Mantid {
-namespace PythonInterface {
-namespace Registry {
-namespace // <anonymous>
-    {
-/// Typedef the map of type_info -> Downcaster objects
-typedef boost::unordered_map<
-    std::string, boost::shared_ptr<const DowncastDataItem>> RegistryType;
-// typedef std::map<std::string, boost::shared_ptr<const DowncastDataItem>>
-// RegistryType;
-
-/**
- * Returns a reference to the static type map. Creates on first call to the
- * function
- * @return A reference to the type map
- */
-RegistryType &downcastRegistry() {
-  static RegistryType registry;
-  return registry;
-}
-} // end <anonymous>
-
-//-----------------------------------------------------------------------
-// Public methods
-//-----------------------------------------------------------------------
-/**
- * Throws std::invalid_argument if the item does not exist
- * @param id A string ID from a concrete DataItem type
- * @return The object responsible for casting and creating a Python object
- *         from it
- */
-const DowncastDataItem &DowncastRegistry::retrieve(const std::string &id) {
-  auto &registry = downcastRegistry();
-  auto entry = registry.find(id);
-  if (entry != registry.cend()) {
-    return *(entry->second);
-  } else {
-    throw std::invalid_argument(
-        "DowncastRegistry::retrieve - Unable to find registered "
-        "object with id=" +
-        id);
-  }
-}
-
-//-----------------------------------------------------------------------
-// Private methods
-//-----------------------------------------------------------------------
-/**
- * Subscribe a caster object with a given ID
- * @param id A string ID that will map to the object
- * @param caster A pointer to a DowncastDataItem object. Ownership of the
- *               object is transferred here
- */
-void DowncastRegistry::subscribe(const std::string &id,
-                                 const DowncastDataItem *caster) {
-  auto &registry = downcastRegistry();
-  if (registry.find(id) == registry.cend()) {
-    typedef boost::shared_ptr<const DowncastDataItem> DowncastDataItemPtr;
-    registry.insert(std::make_pair(id, DowncastDataItemPtr(caster)));
-  } else {
-    throw std::invalid_argument(
-        "DowncastRegistry::subscribe - object with ID=" + id +
-        " has already been registered");
-  }
-}
-}
-}
-}
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/kernel.cpp.in b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/kernel.cpp.in
index 3cca84d1d4778b74ce9732cfbb552f90e036b071..a0b5fd007bf55092c466e9a46b2ba30017c5aa93 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/kernel.cpp.in
+++ b/Code/Mantid/Framework/PythonInterface/mantid/kernel/src/kernel.cpp.in
@@ -32,6 +32,18 @@ BOOST_PYTHON_MODULE(_kernel)
   
   def("version_str", &Mantid::Kernel::MantidVersion::version, 
       "Returns the Mantid version string in the form \"major.minor.patch\"");
+  def("release_notes_url", &Mantid::Kernel::MantidVersion::releaseNotes, 
+      "Returns the url to the most applicable release notes");
+  def("revision", &Mantid::Kernel::MantidVersion::revision, 
+      "Returns the abbreviated SHA-1 of the last commit");
+  def("revision_full", &Mantid::Kernel::MantidVersion::revisionFull, 
+      "Returns the full SHA-1 of the last commit");
+  def("release_date", &Mantid::Kernel::MantidVersion::releaseDate, 
+      "Returns the date of the last commit");
+  def("doi", &Mantid::Kernel::MantidVersion::doi, 
+      "Returns the DOI for this release of Mantid");
+  def("paper_citation", &Mantid::Kernel::MantidVersion::paperCitation, 
+      "Returns The citation for the Mantid paper");
       
   Mantid::PythonInterface::Registry::TypeRegistry::registerBuiltins();
   
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CalculateSampleTransmission.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CalculateSampleTransmission.py
index acf6fa6d9f8479472fd3525f5a769d9eb950a3e5..e882eb751e05e7b88c92c0053895704417940074 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CalculateSampleTransmission.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CalculateSampleTransmission.py
@@ -23,14 +23,16 @@ class CalculateSampleTransmission(PythonAlgorithm):
 
 
     def PyInit(self):
-        self.declareProperty(name='WavelengthRange', defaultValue='', validator=StringMandatoryValidator(),
+        self.declareProperty(name='WavelengthRange', defaultValue='',
+                             validator=StringMandatoryValidator(),
                              doc='Wavelength range to calculate transmission for.')
 
-        self.declareProperty(name='ChemicalFormula', defaultValue='', validator=StringMandatoryValidator(),
+        self.declareProperty(name='ChemicalFormula', defaultValue='',
+                             validator=StringMandatoryValidator(),
                              doc='Sample chemical formula')
 
         self.declareProperty(name='NumberDensity', defaultValue=0.1,
-                             doc='Number denisty (atoms/Angstrom^3). Default=0.1')
+                             doc='Number denisty per atom (atoms/Angstrom^3). Default=0.1')
 
         self.declareProperty(name='Thickness', defaultValue=0.1,
                              doc='Sample thickness (cm). Default=0.1')
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CollectHB3AExperimentInfo.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CollectHB3AExperimentInfo.py
new file mode 100644
index 0000000000000000000000000000000000000000..c8b34a5ff82fc3b792e09d7fb411f9b636c9b18e
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CollectHB3AExperimentInfo.py
@@ -0,0 +1,317 @@
+#pylint: disable=no-init,invalid-name,too-many-instance-attributes
+import mantid
+import mantid.simpleapi as api
+from mantid.api import *
+from mantid.kernel import *
+import os
+
+class CollectHB3AExperimentInfo(PythonAlgorithm):
+    """ Python algorithm to export sample logs to spread sheet file
+    for VULCAN
+    """
+    def __init__(self):
+        """ Init
+        """
+        PythonAlgorithm.__init__(self)
+
+        self._myPixelInfoTableWS = None
+        self._myScanPtFileTableWS = None
+        self._expNumber = -1
+        self._scanList = None
+        self._tol2Theta = None
+        self._dataDir = None
+        self._ptListList = None
+
+        # Define class variable Scan-Pt. dictionary: Key scan number, Value list of pt numbers
+        self._scanPtDict = {}
+        self._spiceTableDict = {}
+        self._detStartID = {}
+        self._2thetaScanPtDict = {}
+        self._scanPt2ThetaDict = {}
+
+        self._currStartDetID = -999999999
+
+        return
+
+    def category(self):
+        """ Category
+        """
+        return "Diffraction"
+
+    def name(self):
+        """ Algorithm name
+        """
+        return "CollectHB3AExperimentInfo"
+
+    def summary(self):
+        return "Collect HB3A experiment information for data reduction by ConvertCWSDToMomentum."
+
+    def PyInit(self):
+        """ Declare properties
+        """
+        # Input scan files
+        # Format of the input should be
+        self.declareProperty("ExperimentNumber", -1, "Integer for experiment number.")
+
+        scanlistprop = mantid.kernel.IntArrayProperty("ScanList", [])
+        self.declareProperty(scanlistprop, "List of scans of the experiment to be loaded.  It cannot be left blank")
+        #self.declareProperty(IntArrayProperty("ScanList", [], Direction.Input),
+        #        "List of scans of the experiment to be loaded.  It cannot be left blank.")
+
+        pd = "List of Pts to be loaded for scans specified by 'ScanList'. \
+                Each scan's Pt. must be started with -1 as a flag.  \
+                If no Pt. given, then all Pt. are all loaded."
+        self.declareProperty(mantid.kernel.IntArrayProperty("PtLists", []), pd)
+
+        self.declareProperty(FileProperty(name="DataDirectory",defaultValue="",action=FileAction.OptionalDirectory))
+
+        self.declareProperty("GetFileFromServer", False, "Obtain data file directly from neutrons.ornl.gov.")
+
+        self.declareProperty("Detector2ThetaTolerance", 0.01, "Tolerance of 2 detector's 2theta to consider as being at same position.")
+
+        tableprop = mantid.api.ITableWorkspaceProperty("OutputWorkspace", "", mantid.kernel.Direction.Output)
+        self.declareProperty(tableprop, "TableWorkspace for experiment number, scan, file name and starting detector IDs.")
+
+        tableprop2 = mantid.api.ITableWorkspaceProperty("DetectorTableWorkspace", "", mantid.kernel.Direction.Output)
+        self.declareProperty(tableprop2, "TableWorkspace for detector Id and information.")
+
+
+        return
+
+
+    def PyExec(self):
+        """ Main executor
+        """
+        # Read inputs
+        self._getProperties()
+
+        # Create output workspaces
+        self._createOutputWorkspaces()
+
+        # Get scan list
+        self._getExpScanPtDict()
+
+        # Get 2theta-(scan-pt) dictionary
+        self._getDetectorPositionScanPtDict()
+
+        # Determine the pixels' positions
+        self._collectPixelsPositions()
+
+        # Set up ScanPtFileTable
+        for scannumber in sorted(self._scanPtDict.keys()):
+            for ptnumber in sorted(self._scanPtDict[scannumber]):
+                self.log().debug("Keys for scanPt2ThetaDict: %s." %(str(self._scanPt2ThetaDict.keys())))
+                twotheta = self._scanPt2ThetaDict[(scannumber, ptnumber)]
+                startdetid = self._detStartID[twotheta]
+                datafilename = 'HB3A_exp%d_scan%04d_%04d.xml'%(self._expNumber, scannumber, ptnumber)
+                self._myScanPtFileTableWS.addRow([int(scannumber), int(ptnumber), str(datafilename), int(startdetid)])
+
+        # Output
+        self.setProperty("OutputWorkspace", self._myScanPtFileTableWS)
+        self.setProperty("DetectorTableWorkspace", self._myPixelInfoTableWS)
+
+        return
+
+    def _createOutputWorkspaces(self):
+        """
+        """
+        self._myPixelInfoTableWS = api.CreateEmptyTableWorkspace(OutputWorkspace=self.getPropertyValue('OutputWorkspace'))
+        self._myPixelInfoTableWS.addColumn("int", "DetectorID")
+        self._myPixelInfoTableWS.addColumn("double", "X")
+        self._myPixelInfoTableWS.addColumn("double", "Y")
+        self._myPixelInfoTableWS.addColumn("double", "Z")
+        self._myPixelInfoTableWS.addColumn("int", "OriginalDetID")
+
+        self._myScanPtFileTableWS = api.CreateEmptyTableWorkspace(OutputWorkspace=self.getPropertyValue('DetectorTableWorkspace'))
+        self._myScanPtFileTableWS.addColumn("int", "Scan")
+        self._myScanPtFileTableWS.addColumn("int", "Pt")
+        self._myScanPtFileTableWS.addColumn("str", "Filename")
+        self._myScanPtFileTableWS.addColumn("int", "StartDetID")
+
+        return
+
+    def _getExpScanPtDict(self):
+        """ Get the scan-Pt. dictionary
+        """
+        for iscan in xrange(len(self._scanList)):
+            # Loop over scan number
+            scan = self._scanList[iscan]
+
+            # Load data file
+            spicefilename = os.path.join(self._dataDir, 'HB3A_exp%04d_scan%04d.dat' % (self._expNumber, scan))
+            spicetablews = self._loadSpiceFile(spicefilename)
+            self._spiceTableDict[scan] = spicetablews
+            if spicetablews is None:
+                self.glog.warning("Unable to access Exp %d Scan %d's SPICE file %s." % (self._expNumber, scan, spicefilename))
+
+            # Get list of Pts.
+            if len(self._ptListList[iscan]) == 0:
+                # including all PC
+                ptnumberlist = self._getAllPtFromTable(spicetablews)
+                self._scanPtDict[scan] = ptnumberlist
+            else:
+                # specified from user
+                self._scanPtDict[scan] = self._ptListList[iscan]
+
+        # ENDFOR
+
+        return
+
+
+    def _getProperties(self):
+        """ Get properties from user input
+        """
+        self._expNumber = self.getProperty("ExperimentNumber").value
+        self._scanList =  self.getProperty("ScanList").value
+        rawptlist = self.getProperty("PtLists").value
+        self._tol2Theta = self.getProperty("Detector2ThetaTolerance").value
+        self._dataDir = self.getProperty("DataDirectory").value
+
+        # process Pt number
+        self._ptListList = []
+        for i in xrange(len(rawptlist)):
+            curpt = rawptlist[i]
+            if curpt == -1:
+                # begining of a scan
+                sublist = []
+                self._ptListList.append(sublist)
+            else:
+                # regular
+                sublist.append(curpt)
+            # ENDIF
+        # ENDFOR
+
+        # check
+        if len(self._ptListList) != len(self._scanList):
+            raise RuntimeError("Number of sub Pt. list is not equal to number of scans.")
+
+
+        return
+
+
+    def _getDetectorPositionScanPtDict(self):
+        """ Get detector position (2theta) - Scan and pt number dictionary
+        Dictionary: key  : 2theta value
+                    value: list of 2-tuple as (scan, pt)
+        """
+        # Scan every row of every SPICE table to get a dictionary with key as 2theta value
+        for scannumber in self._spiceTableDict.keys():
+            spicetable = self._spiceTableDict[scannumber]
+            requiredptnumbers = self._scanPtDict[scannumber]
+
+            # check column names
+            colnames = spicetable.getColumnNames()
+            try:
+                iColPtNumber = colnames.index('Pt.')
+                iCol2Theta = colnames.index('2theta')
+            except IndexError as e:
+                raise IndexError("Either Pt. or 2theta is not found in columns: %d"%(str(e)))
+
+            for irow in xrange(spicetable.rowCount()):
+                ptnumber = spicetable.cell(irow, iColPtNumber)
+                if ptnumber in requiredptnumbers:
+                    twotheta = spicetable.cell(irow, iCol2Theta)
+                    if self._2thetaScanPtDict.has_key(twotheta) is False:
+                        self._2thetaScanPtDict[twotheta] = []
+                    self._2thetaScanPtDict[twotheta].append( (scannumber, ptnumber) ) # ENDFOR
+        # ENDFOR
+
+        self.log().notice("[DB] Number of 2theta entries = %d." % (len(self._2thetaScanPtDict.keys())))
+
+        # Combine 2theta values within tolerance
+        twothetalist = sorted(self._2thetaScanPtDict.keys())
+
+        twotheta_prev = twothetalist[0]
+        for itt in xrange(1, len(twothetalist)):
+            twotheta_curr = twothetalist[itt]
+            if twotheta_curr - twotheta_prev < self._tol2Theta:
+                # two keys (2theta) are close enough, combine then
+                self._2thetaScanPtDict[twotheta_prev].extend(self._2thetaScanPtDict[twotheta_curr][:])
+                del self._2thetaScanPtDict[twotehta]
+            else:
+                # advanced to current 2theta and no more operation is required
+                twotheta_prev = twotheta_curr
+            # ENDIFELSE
+        # ENDFOR
+
+        return
+
+    def _collectPixelsPositions(self):
+        """ Get a list for pixels' information
+        """
+        # Reset the current starting detector ID
+        self._currStartDetID = 0
+
+        for twotheta in sorted(self._2thetaScanPtDict.keys()):
+            if len(self._2thetaScanPtDict[twotheta]) == 0:
+                raise RuntimeError("Logic error to have empty list.")
+            else:
+                self.log().notice("[DB] Process pixels of detector centered at 2theta = %.5f." % (twotheta))
+
+            # Load detector counts file (.xml)
+            self.log().debug("Processing detector @ 2theta = %.5f, " % (twotheta))
+            scannumber, ptnumber = self._2thetaScanPtDict[twotheta][0]
+            self.log().debug("self._2thetaScanPtDict: %s"%(self._2thetaScanPtDict[twotheta]))
+            dataws = self._loadHB3ADetCountFile(scannumber, ptnumber)
+
+            self._scanPt2ThetaDict[(scannumber, ptnumber)] = twotheta
+
+            self._detStartID[twotheta] = self._currStartDetID
+
+            maxdetid = 0
+            for iws in xrange(dataws.getNumberHistograms()):
+                detector = dataws.getDetector(iws)
+                detpos = detector.getPos()
+                newdetid = self._currStartDetID + detector.getID()
+                if detector.getID() > maxdetid:
+                    maxdetid = detector.getID()
+                self._myPixelInfoTableWS.addRow([newdetid, detpos.X(), detpos.Y(), detpos.Z(), detector.getID()])
+            # ENDFOR (iws)
+
+            self._currStartDetID += maxdetid
+        # ENDFOR
+
+        return
+
+
+    def _getAllPtFromTable(self, spicetablews):
+        """ Get all Pt. from a table
+        """
+        ptlist = []
+
+        numrows = spicetablews.rowCount()
+        for irow in xrange(numrows):
+            pt = spicetablews.cell(irow, iColPt)
+            ptlist.append(pt)
+
+        return ptlist
+
+
+    def _loadSpiceFile(self, spicefilename):
+        """ Load SPICE file
+        """
+        outwsname = os.path.basename(spicefilename).split(".")[0]
+        self.log().notice("Loading SPICE file %s." % (spicefilename))
+        spicetablews, spicematrixws = api.LoadSpiceAscii(Filename=spicefilename, OutputWorkspace=outwsname)
+        self.log().debug("SPICE table workspace has %d rows."%(spicetablews.rowCount()))
+        self.log().debug("SPICE matrix workspace %s is ignored."%(str(spicematrixws)))
+
+        return spicetablews
+
+
+    def _loadHB3ADetCountFile(self, scannumber, ptnumber):
+        """ Load Spice XML file
+        """
+        xmlfilename = os.path.join(self._dataDir, "HB3A_exp%d_scan%04d_%04d.xml"%(self._expNumber, scannumber, ptnumber))
+        outwsname = os.path.basename(xmlfilename).split('.')[0]
+
+        self.log().notice("[DB] Load SPICE file %s to %s." % (xmlfilename, outwsname))
+        dataws = api.LoadSpiceXML2DDet(Filename=xmlfilename, LoadInstrument=True,
+                    OutputWorkspace=outwsname, DetectorGeometry='256,256')
+
+        return dataws
+
+
+
+# Register algorithm with Mantid
+AlgorithmFactory.subscribe(CollectHB3AExperimentInfo)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/ConvertSnsRoiFileToMask.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/ConvertSnsRoiFileToMask.py
index 8ccb0c77143740c9c6bf6e6f1aed3624f737c09c..3cbe75a19b62a584fdd4fd1180674ce3d7471dc2 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/ConvertSnsRoiFileToMask.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/ConvertSnsRoiFileToMask.py
@@ -49,7 +49,7 @@ class ConvertSnsRoiFileToMask(api.PythonAlgorithm):
         allowedInstruments = kernel.StringListValidator(INSTRUMENTS)
         self.declareProperty("Instrument", "",
                              validator=allowedInstruments,
-                             doc="One of the following instruments: "+" ".join(INSTRUMENTS))
+                             doc="One of the supported instruments")
         self.declareProperty("OutputFilePrefix", "",
                              "Overrides the default filename for the output "\
                              +"file (Optional). Default is <inst_name>_Mask.")
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CylinderPaalmanPingsCorrection2.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CylinderPaalmanPingsCorrection2.py
index 46b7df2f9346a05abe93e9f56cb78c992fec049c..d400bb18af0edeb170ed6db9d4332d662e4c77a5 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CylinderPaalmanPingsCorrection2.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/CylinderPaalmanPingsCorrection2.py
@@ -158,32 +158,44 @@ class CylinderPaalmanPingsCorrection(PythonAlgorithm):
 
         # Create the output workspaces
         ass_ws = self._output_ws_name + '_ass'
-        CreateWorkspace(OutputWorkspace=ass_ws, DataX=dataX, DataY=dataA1,
-                    NSpec=len(self._angles), UnitX='Wavelength')
+        CreateWorkspace(OutputWorkspace=ass_ws,
+                        DataX=dataX,
+                        DataY=dataA1,
+                        NSpec=len(self._angles),
+                        UnitX='Wavelength',
+                        ParentWorkspace=self._sample_ws_name)
         workspaces = [ass_ws]
 
         if self._use_can:
             assc_ws = self._output_ws_name + '_assc'
             workspaces.append(assc_ws)
-            CreateWorkspace(OutputWorkspace=assc_ws, DataX=dataX, DataY=dataA2,
-                            NSpec=len(self._angles), UnitX='Wavelength')
+            CreateWorkspace(OutputWorkspace=assc_ws,
+                            DataX=dataX,
+                            DataY=dataA2,
+                            NSpec=len(self._angles),
+                            UnitX='Wavelength',
+                            ParentWorkspace=self._sample_ws_name)
 
             acsc_ws = self._output_ws_name + '_acsc'
             workspaces.append(acsc_ws)
-            CreateWorkspace(OutputWorkspace=acsc_ws, DataX=dataX, DataY=dataA3,
-                            NSpec=len(self._angles), UnitX='Wavelength')
+            CreateWorkspace(OutputWorkspace=acsc_ws,
+                            DataX=dataX,
+                            DataY=dataA3,
+                            NSpec=len(self._angles),
+                            UnitX='Wavelength',
+                            ParentWorkspace=self._sample_ws_name)
 
             acc_ws = self._output_ws_name + '_acc'
             workspaces.append(acc_ws)
-            CreateWorkspace(OutputWorkspace=acc_ws, DataX=dataX, DataY=dataA4,
-                            NSpec=len(self._angles), UnitX='Wavelength')
+            CreateWorkspace(OutputWorkspace=acc_ws,
+                            DataX=dataX,
+                            DataY=dataA4,
+                            NSpec=len(self._angles),
+                            UnitX='Wavelength',
+                            ParentWorkspace=self._sample_ws_name)
 
         if self._interpolate:
             self._interpolate_corrections(workspaces)
-        try:
-            self. _copy_detector_table(workspaces)
-        except RuntimeError:
-            logger.warning('Cannot copy spectra mapping. Check input workspace instrument.')
 
         sample_log_workspaces = workspaces
         sample_logs = [('sample_shape', 'cylinder'),
@@ -362,40 +374,21 @@ class CylinderPaalmanPingsCorrection(PythonAlgorithm):
                                 OutputWorkspace=ws,
                                 OutputWorkspaceDeriv='')
 
-#------------------------------------------------------------------------------
-
-    def _copy_detector_table(self, workspaces):
-        """
-        Copy the detector table from the sample workspaces to the correction workspaces.
-
-        @param workspaces List of correction workspaces
-        """
-
-        instrument = mtd[self._sample_ws_name].getInstrument().getName()
-
-        for ws in workspaces:
-            LoadInstrument(Workspace=ws,
-                           InstrumentName=instrument)
-
-            CopyDetectorMapping(WorkspaceToMatch=self._sample_ws_name,
-                                WorkspaceToRemap=ws,
-                                IndexBySpectrumNumber=True)
-
 #------------------------------------------------------------------------------
 
     def _cyl_abs(self, angle):
-#  Parameters :
-#  self._step_size - step size
-#  self._beam - beam parameters
-#  nan - number of annuli
-#  radii - list of radii (for each annulus)
-#  density - list of densities (for each annulus)
-#  sigs - list of scattering cross-sections (for each annulus)
-#  siga - list of absorption cross-sections (for each annulus)
-#  angle - list of angles
-#  wavelas - elastic wavelength
-#  waves - list of wavelengths
-#  Output parameters :  A1 - Ass ; A2 - Assc ; A3 - Acsc ; A4 - Acc
+        #  Parameters :
+        #  self._step_size - step size
+        #  self._beam - beam parameters
+        #  nan - number of annuli
+        #  radii - list of radii (for each annulus)
+        #  density - list of densities (for each annulus)
+        #  sigs - list of scattering cross-sections (for each annulus)
+        #  siga - list of absorption cross-sections (for each annulus)
+        #  angle - list of angles
+        #  wavelas - elastic wavelength
+        #  waves - list of wavelengths
+        #  Output parameters :  A1 - Ass ; A2 - Assc ; A3 - Acsc ; A4 - Acc
 
         amu_scat = np.zeros(self._number_can)
         amu_scat = self._density*self._sig_s
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/DakotaChiSquared.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/DakotaChiSquared.py
index f097ed09e6534d6dca05071478d9980e5f5a5462..d60e6d1bda6aaf54d8fb527f1548eb6711885911 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/DakotaChiSquared.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/DakotaChiSquared.py
@@ -47,13 +47,11 @@ class DakotaChiSquared(PythonAlgorithm):
         __w1=mantid.simpleapi.Load(f1)
         __w2=mantid.simpleapi.Load(f2)
 
-	    #validate inputs
-        if type(__w1)!= mantid.api.MatrixWorkspace:
-            mantid.kernel.logger.error('Wrong workspace type for data file')
-            raise ValueError( 'Wrong workspace type for data file')
-        if type(__w2)!= mantid.api.MatrixWorkspace:
-            mantid.kernel.logger.error('Wrong workspace type for calculated file')
-            raise ValueError( 'Wrong workspace type for calculated file')
+        #validate inputs as histograms
+        if isinstance(__w1, mantid.api.IEventWorkspace):
+            raise ValueError( 'Wrong workspace type for data file. Expected histogram file but found event')
+        if isinstance(__w2, mantid.api.IEventWorkspace):
+            raise ValueError( 'Wrong workspace type for calculated file. Expected histogram file but found event')
         if __w1.blocksize()!=__w2.blocksize() or __w1.getNumberHistograms()!=__w2.getNumberHistograms():
             mantid.kernel.logger.error('The file sizes are different')
             raise ValueError( 'The file sizes are different')
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggCalibrate.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggCalibrate.py
new file mode 100644
index 0000000000000000000000000000000000000000..ce24056a03b73e803f50ae561012795cd146c59b
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggCalibrate.py
@@ -0,0 +1,163 @@
+#pylint: disable=no-init,invalid-name
+from mantid.kernel import *
+from mantid.api import *
+
+class EnggCalibrate(PythonAlgorithm):
+    INDICES_PROP_NAME = 'SpectrumNumbers'
+
+    def category(self):
+        return "Diffraction\\Engineering;PythonAlgorithms"
+
+    def name(self):
+        return "EnggCalibrate"
+
+    def summary(self):
+        return "Calibrates a detector bank (or group of detectors) by performing a single peak fitting."
+
+    def PyInit(self):
+        self.declareProperty(MatrixWorkspaceProperty("InputWorkspace", "", Direction.Input),\
+                             "Workspace with the calibration run to use.")
+
+        self.declareProperty(MatrixWorkspaceProperty("VanadiumWorkspace", "", Direction.Input),
+                             "Workspace with the Vanadium (correction and calibration) run.")
+
+        self.declareProperty(FloatArrayProperty("ExpectedPeaks", ""),\
+    		"A list of dSpacing values where peaks are expected.")
+
+        self.declareProperty(FileProperty(name="ExpectedPeaksFromFile",defaultValue="",
+                                          action=FileAction.OptionalLoad,extensions = [".csv"]),
+                             "Load from file a list of dSpacing values to be translated into TOF to "
+                             "find expected peaks. This takes precedence over 'ExpectedPeaks' if both "
+                             "options are given.")
+
+        import EnggUtils
+        self.declareProperty("Bank", '', StringListValidator(EnggUtils.ENGINX_BANKS),
+                             direction=Direction.Input,
+                             doc = "Which bank to calibrate. It can be specified as 1 or 2, or "
+                             "equivalently, North or South. See also " + self.INDICES_PROP_NAME + " "
+                             "for a more flexible alternative to select specific detectors")
+
+        self.declareProperty(self.INDICES_PROP_NAME, '', direction=Direction.Input,
+                             doc = 'Sets the spectrum numbers for the detectors '
+                             'that should be considered in the calibration (all others will be '
+                             'ignored). This option cannot be used together with Bank, as they overlap. '
+                             'You can give multiple ranges, for example: "0-99", or "0-9, 50-59, 100-109".')
+
+        self.declareProperty(ITableWorkspaceProperty("DetectorPositions", "",\
+                Direction.Input, PropertyMode.Optional),\
+    		"Calibrated detector positions. If not specified, default ones are used.")
+
+        self.declareProperty('OutputParametersTableName', '', direction=Direction.Input,
+                             doc = 'Name for a table workspace with the calibration parameters calculated '
+                             'from this algorithm: difc and zero parameters for GSAS. these two parameters '
+                             'are added as two columns in a single row. If not given, no table is '
+                             'generated.')
+
+        self.declareProperty(ITableWorkspaceProperty("VanadiumIntegWorkspace", "",
+                                                     Direction.Input, PropertyMode.Optional),
+                             'Results of integrating the spectra of a Vanadium run, with one column '
+                             '(integration result) and one row per spectrum. This can be used in '
+                             'combination with OutVanadiumCurveFits from a previous execution and '
+                             'VanadiumWorkspace to provide pre-calculated values for Vanadium correction.')
+
+        self.declareProperty("Difc", 0.0, direction = Direction.Output,\
+                             doc = "Calibrated Difc value for the bank or range of pixels/detectors given")
+
+        self.declareProperty("Zero", 0.0, direction = Direction.Output,\
+                             doc = "Calibrated Zero value for the bank or range of pixels/detectors given")
+
+    def PyExec(self):
+
+        import EnggUtils
+
+        focussed_ws = self._focusRun(self.getProperty('InputWorkspace').value,
+                                     self.getProperty("VanadiumWorkspace").value,
+                                     self.getProperty('Bank').value,
+                                     self.getProperty(self.INDICES_PROP_NAME).value)
+
+        # Get peaks in dSpacing from file
+        expectedPeaksD = EnggUtils.readInExpectedPeaks(self.getPropertyValue("ExpectedPeaksFromFile"),
+                                                       self.getProperty('ExpectedPeaks').value)
+
+        if len(expectedPeaksD) < 1:
+            raise ValueError("Cannot run this algorithm without any input expected peaks")
+
+        difc, zero = self._fitParams(focussed_ws, expectedPeaksD)
+
+        self._produceOutputs(difc, zero)
+
+    def _fitParams(self, focusedWS, expectedPeaksD):
+        """
+        Fit the GSAS parameters that this algorithm produces: difc and zero
+
+        @param focusedWS :: focused workspace to do the fitting on
+        @param expectedPeaksD :: expected peaks for the fitting, in d-spacing units
+
+        @returns a pair of parameters: difc and zero
+        """
+
+        fitPeaksAlg = self.createChildAlgorithm('EnggFitPeaks')
+        fitPeaksAlg.setProperty('InputWorkspace', focusedWS)
+        fitPeaksAlg.setProperty('WorkspaceIndex', 0) # There should be only one index anyway
+        fitPeaksAlg.setProperty('ExpectedPeaks', expectedPeaksD)
+        # we could also pass raw 'ExpectedPeaks' and 'ExpectedPeaksFromFile' to
+        # EnggFitPaks, but better to check inputs early, before this
+        fitPeaksAlg.execute()
+
+        difc = fitPeaksAlg.getProperty('Difc').value
+        zero = fitPeaksAlg.getProperty('Zero').value
+
+        return difc, zero
+
+    def _focusRun(self, ws, vanWS, bank, indices):
+        """
+        Focuses the input workspace by running EnggFocus as a child algorithm, which will produce a
+        single spectrum workspace.
+
+        @param ws :: workspace to focus
+        @param vanWS :: workspace with Vanadium run for corrections
+        @param bank :: the focussing will be applied on the detectors of this bank
+        @param indices :: list of indices to consider, as an alternative to bank (bank and indices are
+        mutually exclusive)
+
+        @return focussed (summed) workspace
+        """
+        alg = self.createChildAlgorithm('EnggFocus')
+        alg.setProperty('InputWorkspace', ws)
+        alg.setProperty('VanadiumWorkspace', vanWS)
+        alg.setProperty('Bank', bank)
+        alg.setProperty(self.INDICES_PROP_NAME, indices)
+
+        integWS = self.getProperty('VanadiumIntegWorkspace').value
+        if integWS:
+            alg.setProperty('VanadiumIntegWorkspace', integWS)
+
+        detPos = self.getProperty('DetectorPositions').value
+        if detPos:
+            alg.setProperty('DetectorPositions', detPos)
+
+        alg.execute()
+
+        return alg.getProperty('OutputWorkspace').value
+
+    def _produceOutputs(self, difc, zero):
+        """
+        Just fills in the output properties as requested
+
+        @param difc :: the difc GSAS parameter as fitted here
+        @param zero :: the zero GSAS parameter as fitted here
+        """
+
+        import EnggUtils
+
+        self.setProperty('Difc', difc)
+        self.setProperty('Zero', zero)
+
+        # make output table if requested
+        tblName = self.getPropertyValue("OutputParametersTableName")
+        if '' != tblName:
+            EnggUtils.generateOutputParTable(tblName, difc, zero)
+            self.log().information("Output parameters added into a table workspace: %s" % tblName)
+
+
+AlgorithmFactory.subscribe(EnggCalibrate)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggCalibrateFull.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggCalibrateFull.py
new file mode 100644
index 0000000000000000000000000000000000000000..8f331173035ac98d0a48498bc6a64ce0d66cd7f3
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggCalibrateFull.py
@@ -0,0 +1,271 @@
+#pylint: disable=no-init,invalid-name
+from mantid.kernel import *
+from mantid.api import *
+import math
+import EnggUtils
+
+class EnggCalibrateFull(PythonAlgorithm):
+    INDICES_PROP_NAME = 'SpectrumNumbers'
+
+    def category(self):
+        return "Diffraction\\Engineering;PythonAlgorithms"
+
+    def name(self):
+        return "EnggCalibrateFull"
+
+    def summary(self):
+        return "Calibrates every detector/pixel position by performing single peak fitting."
+
+    def PyInit(self):
+        self.declareProperty(MatrixWorkspaceProperty("Workspace", "", Direction.InOut),
+                             "Workspace with the calibration run to use. The calibration will be applied on it.")
+
+        self.declareProperty(MatrixWorkspaceProperty("VanadiumWorkspace", "", Direction.Input),
+                             "Workspace with the Vanadium (correction and calibration) run.")
+
+        self.declareProperty(ITableWorkspaceProperty("OutDetPosTable", "", Direction.Output),\
+                             "A table with the detector IDs and calibrated detector positions and additional "
+                             "calibration information. The table includes: the old positions in V3D format "
+                             "(3D vector with x, y, z values), the new positions in V3D, the new positions "
+                             "in spherical coordinates, the change in L2, and the DIFC and ZERO parameters.")
+
+        self.declareProperty("Bank", '', StringListValidator(EnggUtils.ENGINX_BANKS),
+                             direction=Direction.Input,
+                             doc = "Which bank to calibrate: It can be specified as 1 or 2, or "
+                             "equivalently, North or South. See also " + self.INDICES_PROP_NAME + " "
+                             "for a more flexible alternative to select specific detectors")
+
+        self.declareProperty(self.INDICES_PROP_NAME, '', direction=Direction.Input,
+                             doc = 'Sets the spectrum numbers for the detectors '
+                             'that should be considered in the calibration (all others will be '
+                             'ignored). This option cannot be used together with Bank, as they overlap. '
+                             'You can give multiple ranges, for example: "0-99", or "0-9, 50-59, 100-109".')
+
+        self.declareProperty(FileProperty("OutDetPosFilename", "", FileAction.OptionalSave, [".csv"]),
+                             "Name of the file to save the pre-/post-calibrated detector positions - this "
+                             "saves the same information that is provided in the output table workspace "
+                             "(OutDetPosTable).")
+
+        self.declareProperty(FloatArrayProperty("ExpectedPeaks", ""),\
+    		"A list of dSpacing values where peaks are expected.")
+
+        self.declareProperty(FileProperty(name="ExpectedPeaksFromFile",defaultValue="",
+                                          action=FileAction.OptionalLoad,extensions = [".csv"]),
+                             "Load from file a list of dSpacing values to be translated into TOF to "
+                             "find expected peaks. This takes precedence over 'ExpectedPeaks' if both "
+                             "options are given.")
+
+        self.declareProperty('OutVanadiumCurveFits', '', direction=Direction.Input,
+                             doc = 'Name for a workspace2D with the fitting workspaces corresponding to '
+                             'the banks processed. This workspace has three spectra per bank, as produced '
+                             'by the algorithm Fit. This is meant to be used as an alternative input '
+                             'VanadiumWorkspace for testing and performance reasons. If not given, no '
+                             'workspace is generated.')
+
+    def PyExec(self):
+
+        # Get peaks in dSpacing from file, and check we have what we need, before doing anything
+        expectedPeaksD = EnggUtils.readInExpectedPeaks(self.getPropertyValue("ExpectedPeaksFromFile"),
+                                                       self.getProperty('ExpectedPeaks').value)
+
+        if len(expectedPeaksD) < 1:
+            raise ValueError("Cannot run this algorithm without any input expected peaks")
+
+        inWS = self.getProperty('Workspace').value
+        WSIndices = EnggUtils.getWsIndicesFromInProperties(inWS, self.getProperty('Bank').value,
+                                                           self.getProperty(self.INDICES_PROP_NAME).value)
+
+        vanWS = self.getProperty("VanadiumWorkspace").value
+        # These corrections rely on ToF<->Dspacing conversions, so ideally they'd be done after the
+        # calibration step, which creates a cycle / chicken-and-egg issue.
+        EnggUtils.applyVanadiumCorrection(self, inWS, vanWS)
+
+        rebinnedWS = self._prepareWsForFitting(inWS)
+        posTbl = self._calculateCalibPositionsTbl(rebinnedWS, WSIndices, expectedPeaksD)
+
+        # Produce 2 results: 'output table' and 'apply calibration' + (optional) calibration file
+        self.setProperty("OutDetPosTable", posTbl)
+        self._applyCalibrationTable(inWS, posTbl)
+        self._outputDetPosFile(self.getPropertyValue('OutDetPosFilename'), posTbl)
+
+    def _prepareWsForFitting(self, ws):
+        """
+        Rebins the workspace and converts it to distribution
+        """
+        rebinAlg = self.createChildAlgorithm('Rebin')
+        rebinAlg.setProperty('InputWorkspace', ws)
+        rebinAlg.setProperty('Params', '-0.0005') # The value is borrowed from OG routines
+        rebinAlg.execute()
+        result = rebinAlg.getProperty('OutputWorkspace').value
+
+        if result.isDistribution()==False:
+            convertAlg = self.createChildAlgorithm('ConvertToDistribution')
+            convertAlg.setProperty('Workspace', result)
+            convertAlg.execute()
+
+        return result
+
+    def _calculateCalibPositionsTbl(self, ws, indices, expectedPeaksD):
+        """
+        Makes a table of calibrated positions (and additional parameters). It goes through
+        the detectors of the workspace and calculates the difc and zero parameters by fitting
+        peaks, then calculates the coordinates and adds them in the returned table.
+
+        @param ws :: input workspace with an instrument definition
+        @param indices :: workspace indices to consider for calibration (for example all the
+        indices of a bank)
+        @param expectedPeaksD :: expected peaks in d-spacing
+
+        @return table with the detector positions, one row per detector
+
+        """
+        posTbl = self._createPositionsTable()
+
+        prog = Progress(self, start=0, end=1, nreports=len(indices))
+
+        for i in indices:
+
+            try:
+                zero, difc = self._fitPeaks(ws, i, expectedPeaksD)
+            except RuntimeError as re:
+                raise RuntimeError("Severe issue found when trying to fit peaks for the detector with ID %d. "
+                                   "This calibration algorithm cannot continue. Please check the expected "
+                                   "peaks provided. Details from "
+                                   "FindPeaks: %s"%(i, str(re)))
+
+            det = ws.getDetector(i)
+            newPos, newL2 = self._getCalibratedDetPos(difc, det, ws)
+
+            # get old (pre-calibration) detector coordinates
+            oldL2 = det.getDistance(ws.getInstrument().getSample())
+            det2Theta = ws.detectorTwoTheta(det)
+            detPhi = det.getPhi()
+            oldPos = det.getPos()
+
+            posTbl.addRow([det.getID(), oldPos, newPos, newL2, det2Theta, detPhi, newL2-oldL2,
+                           difc, zero])
+            prog.report()
+
+        return posTbl
+
+    def _fitPeaks(self, ws, wsIndex, expectedPeaksD):
+        """
+        Fits expected peaks to the spectrum, and returns calibrated zero and difc values.
+
+        @param wsIndex workspace index of the spectrum to fit
+        @param expectedPeaksD :: expected peaks for the fitting, in d-spacing units
+
+        @returns a pair of parameters: difc and zero
+    	"""
+        alg = self.createChildAlgorithm('EnggFitPeaks')
+        alg.setProperty('InputWorkspace', ws)
+        alg.setProperty('WorkspaceIndex', wsIndex) # There should be only one index anyway
+        alg.setProperty('ExpectedPeaks', expectedPeaksD)
+        alg.execute()
+
+        difc = alg.getProperty('Difc').value
+        zero = alg.getProperty('Zero').value
+
+        return (zero, difc)
+
+    def _createPositionsTable(self):
+        """
+        Helper method to create an empty table for storing detector positions
+
+        @return table with the expected output columns
+        """
+        alg = self.createChildAlgorithm('CreateEmptyTableWorkspace')
+        alg.execute()
+        table = alg.getProperty('OutputWorkspace').value
+
+        # Note: the colums 'Detector ID' and 'Detector Position' must have those
+        # exact names (expected by child alg. ApplyCalibration in EnggFocus)
+        table.addColumn('int', 'Detector ID')
+        table.addColumn('V3D', 'Old Detector Position')
+        table.addColumn('V3D', 'Detector Position')
+        table.addColumn('float', 'L2')
+        table.addColumn('float', '2 \\theta')
+        table.addColumn('float', '\\phi')
+        table.addColumn('float', '\\delta L2 (calibrated - old)')
+        table.addColumn('float', 'difc')
+        table.addColumn('float', 'zero')
+
+        return table
+
+    def _outputDetPosFile(self, filename, tbl):
+        """
+        Writes a text (csv) file with the detector positions information that also goes into the
+        output DetectorPostions table workspace.
+
+        @param filename :: name of the file to write. If it is empty nothing is saved/written.
+        @param tbl :: detector positions table workspace
+        """
+        if not filename:
+            return
+
+        if 9 > tbl.columnCount():
+            return
+
+        self.log().information("Saving detector positions in file: %s" % filename)
+        with open(filename, "w") as f:
+            f.write('# detector ID, old position (x), old position (y), old position (z), '
+                    'calibrated position (x), calibrated position (y), calibrated position (z), '
+                    'calib. L2, calib. 2\\theta, calib. \\phi, delta L2 (calibrated - old), difc, zero\n')
+            for r in range(0, tbl.rowCount()):
+                f.write("%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s\n" %
+                        (tbl.cell(r,0),
+                         tbl.cell(r,1).getX(), tbl.cell(r,1).getY(), tbl.cell(r,1).getZ(),
+                         tbl.cell(r,2).getX(), tbl.cell(r,2).getY(), tbl.cell(r,2).getZ(),
+                         tbl.cell(r,3), tbl.cell(r,4), tbl.cell(r,5),
+                         tbl.cell(r,6), tbl.cell(r,7), tbl.cell(r,8)))
+
+    def _getCalibratedDetPos(self, newDifc, det, ws):
+        """
+        Returns a detector position which corresponds to the newDifc value.
+
+        The two_theta and phi of the detector are preserved, L2 is changed.
+    	"""
+        # This is how detL2 would be calculated
+        # detL2 = det.getDistance(ws.getInstrument().getSample())
+        detTwoTheta = ws.detectorTwoTheta(det)
+        detPhi = det.getPhi()
+
+        newL2 = (newDifc / (252.816 * 2 * math.sin(detTwoTheta / 2.0))) - 50
+
+        newPos = self._V3DFromSpherical(newL2, detTwoTheta, detPhi)
+
+        return (newPos, newL2)
+
+    def _applyCalibrationTable(self, ws, detPos):
+        """
+        Corrects the detector positions using the result of calibration (if one is specified).
+        The parameters of the instrument definition of the workspace are updated in place using the
+        geometry parameters given in the input table.
+
+        @param ws :: workspace to calibrate which should be consistent with the detector positions
+        table passed
+
+        @param detPos :: detector positions table to apply the calibration. It must have columns
+        'Detector ID' and 'Detector Position'
+        """
+        self.log().notice("Applying calibration on the input workspace")
+        alg = self.createChildAlgorithm('ApplyCalibration')
+        alg.setProperty('Workspace', ws)
+        alg.setProperty('PositionTable', detPos)
+        alg.execute()
+
+    def _V3DFromSpherical(self, R, polar, azimuth):
+        """
+        Returns a cartesian 3D vector for the given spherical coordinates.
+
+        Borrowed from V3D::spherical (C++).
+    	"""
+        z = R*math.cos(polar)
+        ct=R*math.sin(polar)
+        x=ct*math.cos(azimuth)
+        y=ct*math.sin(azimuth)
+
+        return V3D(x,y,z)
+
+
+AlgorithmFactory.subscribe(EnggCalibrateFull)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggFitPeaks.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggFitPeaks.py
new file mode 100644
index 0000000000000000000000000000000000000000..4b733a523017923fbd60a97e6a2f1b6a8318d379
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggFitPeaks.py
@@ -0,0 +1,422 @@
+#pylint: disable=no-init,invalid-name
+from mantid.kernel import *
+from mantid.api import *
+
+import math
+
+class EnggFitPeaks(PythonAlgorithm):
+    EXPECTED_DIM_TYPE = 'Time-of-flight'
+    PEAK_TYPE = 'BackToBackExponential'
+
+    def category(self):
+        return "Diffraction\\Engineering;PythonAlgorithms"
+
+    def name(self):
+        return "EnggFitPeaks"
+
+    def summary(self):
+        return ("The algorithm fits an expected diffraction pattern to a workpace spectrum by "
+                "performing single peak fits.")
+
+    def PyInit(self):
+        self.declareProperty(MatrixWorkspaceProperty("InputWorkspace", "", Direction.Input),\
+    		"Workspace to fit peaks in. ToF is expected X unit.")
+
+        self.declareProperty("WorkspaceIndex", 0,\
+    		"Index of the spectra to fit peaks in")
+
+        self.declareProperty(FloatArrayProperty("ExpectedPeaks", (self._getDefaultPeaks())),\
+    		"A list of dSpacing values to be translated into TOF to find expected peaks.")
+
+        self.declareProperty(FileProperty(name="ExpectedPeaksFromFile",defaultValue="",
+                                          action=FileAction.OptionalLoad,extensions = [".csv"]),
+                             "Load from file a list of dSpacing values to be translated into TOF to "
+                             "find expected peaks. This takes precedence over 'ExpectedPeaks' if both "
+                             "options are given.")
+
+        self.declareProperty('OutParametersTable', '', direction=Direction.Input,
+                             doc = 'Name for a table workspace with the fitted values calculated by '
+                             'this algorithm (Difc and Zero parameters) for GSAS. '
+                             'These two parameters are added as two columns in a single row. If not given, '
+                             'the table workspace is not created.')
+
+        self.declareProperty('OutFittedPeaksTable', '', direction=Direction.Input,
+                             doc = 'Name for a table workspace with the parameters of the peaks found and '
+                             'fitted. If not given, the table workspace is not created.')
+
+        self.declareProperty("Difc", 0.0, direction = Direction.Output,\
+    		doc = "Fitted Difc value")
+
+        self.declareProperty("Zero", 0.0, direction = Direction.Output,\
+    		doc = "Fitted Zero value")
+
+    def PyExec(self):
+
+        import EnggUtils
+
+        # Get peaks in dSpacing from file
+        expectedPeaksD = EnggUtils.readInExpectedPeaks(self.getPropertyValue("ExpectedPeaksFromFile"),
+                                                       self.getProperty('ExpectedPeaks').value)
+
+        if len(expectedPeaksD) < 1:
+            raise ValueError("Cannot run this algorithm without any input expected peaks")
+
+        # Get expected peaks in TOF for the detector
+        inWS = self.getProperty("InputWorkspace").value
+        dimType = inWS.getXDimension().getName()
+        if self.EXPECTED_DIM_TYPE != dimType:
+            raise ValueError("This algorithm expects a workspace with %s X dimension, but "
+                             "the X dimension of the input workspace is: '%s'" % (self.EXPECTED_DIM_TYPE, dimType))
+
+        wsIndex = self.getProperty("WorkspaceIndex").value
+
+        # FindPeaks will return a list of peaks sorted by the centre found. Sort the peaks as well,
+        # so we can match them with fitted centres later.
+        expectedPeaksToF = sorted(self._expectedPeaksInTOF(expectedPeaksD, inWS, wsIndex))
+
+        foundPeaks = self._peaksFromFindPeaks(inWS, expectedPeaksToF, wsIndex)
+        if foundPeaks.rowCount() < len(expectedPeaksToF):
+            txt = "Peaks effectively found: " + str(foundPeaks)[1:-1]
+            self.log().warning("Some peaks from the list of expected peaks were not found by the algorithm "
+                               "FindPeaks which this algorithm uses to check that the data has the the "
+                               "expected peaks. " + txt)
+
+        peaksTableName = self.getPropertyValue("OutFittedPeaksTable")
+        difc, zero = self._fitAllPeaks(inWS, wsIndex, (foundPeaks, expectedPeaksD), peaksTableName)
+        self._produceOutputs(difc, zero)
+
+    def _getDefaultPeaks(self):
+        """ Gets default peaks for Engg algorithm. Values from CeO2 """
+        defaultPeaks = [3.1243, 2.7057, 1.9132, 1.6316, 1.5621, 1.3529, 1.2415,
+                        1.2100, 1.1046, 1.0414, 0.9566, 0.9147, 0.9019, 0.8556,
+                        0.8252, 0.8158, 0.7811]
+
+        return defaultPeaks
+
+    def _produceOutputs(self, difc, zero):
+        """
+        Fills in the output properties as requested via the input properties.
+
+        @param difc :: the difc GSAS parameter as fitted here
+        @param zero :: the zero GSAS parameter as fitted here
+        """
+
+        import EnggUtils
+
+        # mandatory outputs
+        self.setProperty('Difc', difc)
+        self.setProperty('Zero', zero)
+
+        # optional outputs
+        tblName = self.getPropertyValue("OutParametersTable")
+        if '' != tblName:
+            EnggUtils.generateOutputParTable(tblName, difc, zero)
+            self.log().information("Output parameters added into a table workspace: %s" % tblName)
+
+    def _fitAllPeaks(self, inWS, wsIndex, peaks, peaksTableName):
+        """
+        This method is the core of EnggFitPeaks. Ittries to fit as many peaks as there are in the list of
+        expected peaks passed to the algorithm.
+
+        The parameters from the (Gaussian) peaks fitted by FindPeaks elsewhere (before calling this method)
+        are used as initial guesses.
+
+        @param inWS :: input workspace with spectra for fitting
+        @param wsIndex :: workspace index of the spectrum where the given peaks should be fitted
+        @param peaks :: tuple made of two lists: foundPeaks (peaks found by FindPeaks or similar
+                        algorithm), and expectedPeaksD (expected peaks given as input to this algorithm
+                        (in dSpacing units)
+        @param peaksTableName :: name of an (output) table with peaks parameters. If empty, the table is anonymous
+
+        @returns difc and zero parameters obtained from fitting a
+        linear background (in _fitDSpacingToTOF) to the peaks fitted
+        here individually
+
+        """
+        if 2 != len(peaks):
+            raise RuntimeError("Unexpected inconsistency found. This method requires a tuple with the list "
+                               "of found peaks and the list of expected peaks.")
+        foundPeaks = peaks[0]
+        fittedPeaks = self._createFittedPeaksTable(peaksTableName)
+
+        for i in range(foundPeaks.rowCount()):
+
+            row = foundPeaks.row(i)
+            # Peak parameters estimated by FindPeaks
+            centre = row['centre']
+            width = row['width']
+            height = row['height']
+            # Oh oh, this actually happens sometimes for some spectra of the system test dataset
+            # and it should be clarified when the role of FindPeaks etc. is fixed (trac ticket #10907)
+            if width <= 0.:
+                detailTxt = ("Cannot fit a peak with these initial parameters from FindPeaks, center: %s "
+                             ", width: %s, height: %s"%(centre, width, height))
+                self.log().notice('For workspace index ' + str(wsIndex) + ', a peak that is in the list of '
+                                  'expected peaks and was found by FindPeaks has not been fitted correctly. '
+                                  'It will be ignored. Details: ' + detailTxt)
+                continue
+
+            # Sigma value of the peak, assuming Gaussian shape
+            sigma = width / (2 * math.sqrt(2 * math.log(2)))
+
+            # Approximate peak intensity, assuming Gaussian shape
+            intensity = height * sigma * math.sqrt(2 * math.pi)
+
+            peak = FunctionFactory.createFunction(self.PEAK_TYPE)
+            peak.setParameter('X0', centre)
+            peak.setParameter('S', sigma)
+            peak.setParameter('I', intensity)
+
+            # Magic numbers
+            COEF_LEFT = 2
+            COEF_RIGHT = 3
+
+            # Try to predict a fit window for the peak
+            xMin = centre - (width * COEF_LEFT)
+            xMax = centre + (width * COEF_RIGHT)
+
+            # Fit using predicted window and a proper function with approximated initital values
+            fitAlg = self.createChildAlgorithm('Fit')
+            fitAlg.setProperty('Function', 'name=LinearBackground;' + str(peak))
+            fitAlg.setProperty('InputWorkspace', inWS)
+            fitAlg.setProperty('WorkspaceIndex', wsIndex)
+            fitAlg.setProperty('StartX', xMin)
+            fitAlg.setProperty('EndX', xMax)
+            fitAlg.setProperty('CreateOutput', True)
+            fitAlg.execute()
+            paramTable = fitAlg.getProperty('OutputParameters').value
+
+            fittedParams = {}
+            fittedParams['dSpacing'] = peaks[1][i]
+            fittedParams['Chi'] = fitAlg.getProperty('OutputChi2overDoF').value
+            self._addParametersToMap(fittedParams, paramTable)
+
+            fittedPeaks.addRow(fittedParams)
+
+        # Check if we were able to really fit any peak
+        if 0 == fittedPeaks.rowCount():
+            detailTxt = ("Could find " + str(len(foundPeaks)) + " peaks using the algorithm FindPeaks but " +
+                         "then it was not possible to fit any peak starting from these peaks found and using '" +
+                         self.PEAK_TYPE + "' as peak function.")
+            self.log().warning('Could not fit any peak. Please check the list of expected peaks, as it does not '
+                               'seem to be appropriate for the workspace given. More details: ' +
+                               detailTxt)
+
+            raise RuntimeError('Could not fit any peak.  Failed to fit peaks with peak type ' +
+                               self.PEAK_TYPE + ' even though FindPeaks found ' + str(foundPeaks.rowCount()) +
+                               ' peaks in principle. See the logs for further details.')
+        # Better than failing to fit the linear function
+        if 1 == fittedPeaks.rowCount():
+            raise RuntimeError('Could find only one peak. This is not enough to fit the output parameters '
+                               'difc and zero. Please check the list of expected peaks given and if it is '
+                               'appropriate for the workspace')
+
+        difc, zero = self._fitDSpacingToTOF(fittedPeaks)
+
+        return (difc, zero)
+
+    def _peaksFromFindPeaks(self, inWS, expectedPeaksToF, wsIndex):
+        """
+        Use the algorithm FindPeaks to check that the expected peaks are there.
+
+        @param inWS data workspace
+        @param expectedPeaksToF vector/list of expected peak values
+        @param wsIndex workspace index
+
+        @return list of peaks found by FindPeaks. If there are no issues, the length
+        of this list should be the same as the number of expected peaks received.
+        """
+        # Find approximate peak positions, asumming Gaussian shapes
+        findPeaksAlg = self.createChildAlgorithm('FindPeaks')
+        findPeaksAlg.setProperty('InputWorkspace', inWS)
+        findPeaksAlg.setProperty('PeakPositions', expectedPeaksToF)
+        findPeaksAlg.setProperty('PeakFunction', 'Gaussian')
+        findPeaksAlg.setProperty('WorkspaceIndex', wsIndex)
+        findPeaksAlg.execute()
+        foundPeaks = findPeaksAlg.getProperty('PeaksList').value
+        return foundPeaks
+
+    def _fitDSpacingToTOF(self, fittedPeaksTable):
+        """
+        Fits a linear background to the dSpacing <-> TOF relationship and returns fitted difc
+        and zero values. If the table passed has less than 2 peaks this raises an exception, as it
+        is not possible to fit the difc, zero parameters.
+
+        @param fittedPeaksTable :: table with one row per fitted peak, expecting column 'dSpacing'
+        as x values and column 'X0' as y values.
+
+        @return the pair of difc and zero values fitted to the peaks.
+    	"""
+        numPeaks = fittedPeaksTable.rowCount()
+        if numPeaks < 2:
+            raise ValueError('Cannot fit a linear function with less than two peaks. Got a table of ' +
+                             'peaks with ' + str(numPeaks) + ' peaks')
+
+        convertTableAlg = self.createChildAlgorithm('ConvertTableToMatrixWorkspace')
+        convertTableAlg.setProperty('InputWorkspace', fittedPeaksTable)
+        convertTableAlg.setProperty('ColumnX', 'dSpacing')
+        convertTableAlg.setProperty('ColumnY', 'X0')
+        convertTableAlg.execute()
+        dSpacingVsTof = convertTableAlg.getProperty('OutputWorkspace').value
+
+    	# Fit the curve to get linear coefficients of TOF <-> dSpacing relationship for the detector
+        fitAlg = self.createChildAlgorithm('Fit')
+        fitAlg.setProperty('Function', 'name=LinearBackground')
+        fitAlg.setProperty('InputWorkspace', dSpacingVsTof)
+        fitAlg.setProperty('WorkspaceIndex', 0)
+        fitAlg.setProperty('CreateOutput', True)
+        fitAlg.execute()
+        paramTable = fitAlg.getProperty('OutputParameters').value
+
+        zero = paramTable.cell('Value', 0) # A0
+        difc = paramTable.cell('Value', 1) # A1
+
+        return (difc, zero)
+
+    def _expectedPeaksInTOF(self, expectedPeaks, inWS, wsIndex):
+        """
+        Converts expected peak dSpacing values to TOF values for the
+        detector. Implemented by using the Mantid algorithm ConvertUnits. A
+        simple user script to do what this function does would be
+        as follows:
+
+        import mantid.simpleapi as sapi
+
+        yVals = [1] * (len(expectedPeaks) - 1)
+        wsFrom = sapi.CreateWorkspace(UnitX='dSpacing', DataX=expectedPeaks, DataY=yVals,
+                                      ParentWorkspace=inWS)
+        targetUnits = 'TOF'
+        wsTo = sapi.ConvertUnits(InputWorkspace=wsFrom, Target=targetUnits)
+        peaksToF = wsTo.dataX(0)
+        values = [peaksToF[i] for i in range(0,len(peaksToF))]
+
+        @param expectedPeaks :: vector of expected peaks, in dSpacing units
+        @param inWS :: input workspace with the relevant instrument/geometry
+        @param wsIndex spectrum index
+
+        Returns:
+            a vector of ToF values converted from the input (dSpacing) vector.
+
+        """
+
+        # When receiving a (for example) focussed workspace we still do not know how
+        # to properly deal with it. CreateWorkspace won't copy the instrument sample
+        # and source even if given the option ParentWorkspace. Resort to old style
+        # hard-coded calculation.
+        # The present behavior of 'ConvertUnits' is to show an information log:
+        # "Unable to calculate sample-detector distance for 1 spectra. Masking spectrum"
+        # and silently produce a wrong output workspace. That might need revisiting.
+        if 1 == inWS.getNumberHistograms():
+            return self._doApproxHardCodedConvertUnitsToToF(expectedPeaks, inWS, wsIndex)
+
+        # Create workspace just to convert dSpacing -> ToF, yVals are irrelevant
+        # this used to be calculated with:
+        # lambda d: 252.816 * 2 * (50 + detL2) * math.sin(detTwoTheta / 2.0) * d
+        # which is approximately what ConverUnits will do
+        # remember the -1, we must produce a histogram data workspace, which is what
+        # for example EnggCalibrate expects
+        yVals = [1] * (len(expectedPeaks) - 1)
+        # Do like: wsFrom = sapi.CreateWorkspace(UnitX='dSpacing', DataX=expectedPeaks, DataY=yVals,
+        #                                        ParentWorkspace=self.getProperty("InputWorkspace").value)
+        createAlg = self.createChildAlgorithm("CreateWorkspace")
+        createAlg.setProperty("UnitX", 'dSpacing')
+        createAlg.setProperty("DataX", expectedPeaks)
+        createAlg.setProperty("DataY", yVals)
+        createAlg.setProperty("ParentWorkspace", inWS)
+        createAlg.execute()
+
+        wsFrom = createAlg.getProperty("OutputWorkspace").value
+
+        # finally convert units, like: sapi.ConvertUnits(InputWorkspace=wsFrom, Target=targetUnits)
+        convAlg = self.createChildAlgorithm("ConvertUnits")
+        convAlg.setProperty("InputWorkspace", wsFrom)
+        targetUnits = 'TOF'
+        convAlg.setProperty("Target", targetUnits)
+        # note: this implicitly uses default property "EMode" value 'Elastic'
+        goodExec = convAlg.execute()
+
+        if not goodExec:
+            raise RuntimeError("Conversion of units went wrong. Failed to run ConvertUnits for %d peaks: %s"
+                               % (len(expectedPeaks), expectedPeaks))
+
+        wsTo = convAlg.getProperty('OutputWorkspace').value
+        peaksToF = wsTo.readX(0)
+        if len(peaksToF) != len(expectedPeaks):
+            raise RuntimeError("Conversion of units went wrong. Converted %d peaks from the original "
+                               "list of %d peaks. The instrument definition might be incomplete for the "
+                               "original workspace / file."% (len(peaksToF), len(expectedPeaks)))
+
+        ToFvalues = [peaksToF[i] for i in range(0,len(peaksToF))]
+        # catch potential failures because of geometry issues, etc.
+        if ToFvalues == expectedPeaks:
+            vals = self._doApproxHardCodedConvertUnitsToToF(expectedPeaks, inWS, wsIndex)
+            return vals
+
+        return ToFvalues
+
+    def _doApproxHardCodedConvertUnitsToToF(self, dspValues, ws, wsIndex):
+        """
+        Converts from dSpacing to Time-of-flight, for one spectrum/detector. This method
+        is here for exceptional cases that presently need clarification / further work,
+        here and elsewhere in Mantid, and should ideally be removed in favor of the more
+        general method that uses the algorithm ConvertUnits.
+
+        @param dspValues to convert from dSpacing
+        @param ws workspace with the appropriate instrument / geometry definition
+        @param wsIndex index of the spectrum
+
+        Return:
+        input values converted from dSpacing to ToF
+        """
+        det = ws.getDetector(wsIndex)
+
+        # Current detector parameters
+        detL2 = det.getDistance(ws.getInstrument().getSample())
+        detTwoTheta = ws.detectorTwoTheta(det)
+
+        # hard coded equation to convert dSpacing -> TOF for the single detector
+        dSpacingToTof = lambda d: 252.816 * 2 * (50 + detL2) * math.sin(detTwoTheta / 2.0) * d
+
+        # Values (in principle, expected peak positions) in TOF for the detector
+        ToFvalues = [dSpacingToTof(ep) for ep in dspValues]
+        return ToFvalues
+
+    def _createFittedPeaksTable(self, tblName):
+        """
+        Creates a table where to put peak fitting results to
+
+        @param tblName :: name of the table workspace (can be empty)
+    	"""
+        table = None
+        if not tblName:
+            alg = self.createChildAlgorithm('CreateEmptyTableWorkspace')
+            alg.execute()
+            table = alg.getProperty('OutputWorkspace').value
+        else:
+            import mantid.simpleapi as sapi
+            table = sapi.CreateEmptyTableWorkspace(OutputWorkspace=tblName)
+
+        table.addColumn('double', 'dSpacing')
+
+        for param in ['A0', 'A1', 'X0', 'A', 'B', 'S', 'I']:
+            table.addColumn('double', param)
+            table.addColumn('double', param + '_Err')
+
+        table.addColumn('double', 'Chi')
+
+        return table
+
+    def _addParametersToMap(self, paramMap, paramTable):
+        """ Reads parameters from the Fit Parameter table, and add their values and errors to the map
+        """
+        for i in range(paramTable.rowCount() - 1): # Skip the last (fit goodness) row
+            row = paramTable.row(i)
+
+            # Get local func. param name. E.g., not f1.A0, but just A0
+            name = (row['Name'].rpartition('.'))[2]
+
+            paramMap[name] = row['Value']
+            paramMap[name + '_Err'] = row['Error']
+
+
+AlgorithmFactory.subscribe(EnggFitPeaks)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggFocus.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggFocus.py
new file mode 100644
index 0000000000000000000000000000000000000000..e6cdd95c84b4e3827c75870b791dcd1806067f82
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnggFocus.py
@@ -0,0 +1,131 @@
+#pylint: disable=no-init,invalid-name
+from mantid.kernel import *
+from mantid.api import *
+
+class EnggFocus(PythonAlgorithm):
+    INDICES_PROP_NAME = 'SpectrumNumbers'
+
+    def category(self):
+        return "Diffraction\\Engineering;PythonAlgorithms"
+
+    def name(self):
+        return "EnggFocus"
+
+    def summary(self):
+        return "Focuses a run by summing up all the spectra into a single one."
+
+    def PyInit(self):
+        import EnggUtils
+
+        self.declareProperty(MatrixWorkspaceProperty("InputWorkspace", "", Direction.Input),
+                             "Workspace with the run to focus.")
+
+        self.declareProperty(MatrixWorkspaceProperty("VanadiumWorkspace", "", Direction.Input),
+                             "Workspace with the Vanadium (correction and calibration) run.")
+
+        self.declareProperty(WorkspaceProperty("OutputWorkspace", "", Direction.Output),\
+                             "A workspace with focussed data")
+
+        self.declareProperty("Bank", '', StringListValidator(EnggUtils.ENGINX_BANKS),
+                             direction=Direction.Input,
+                             doc = "Which bank to focus: It can be specified as 1 or 2, or "
+                             "equivalently, North or South. See also " + self.INDICES_PROP_NAME + " "
+                             "for a more flexible alternative to select specific detectors")
+
+        self.declareProperty(self.INDICES_PROP_NAME, '', direction=Direction.Input,
+                             doc = 'Sets the spectrum numbers for the detectors '
+                             'that should be considered in the focussing operation (all others will be '
+                             'ignored). This option cannot be used together with Bank, as they overlap. '
+                             'You can give multiple ranges, for example: "0-99", or "0-9, 50-59, 100-109".')
+
+        self.declareProperty(ITableWorkspaceProperty('DetectorPositions', '', Direction.Input,\
+                                                     PropertyMode.Optional),\
+                             "Calibrated detector positions. If not specified, default ones are used.")
+
+        self.declareProperty(ITableWorkspaceProperty("VanadiumIntegWorkspace", "",
+                                                     Direction.Input, PropertyMode.Optional),
+                             'Results of integrating the spectra of a Vanadium run, with one column '
+                             '(integration result) and one row per spectrum. This can be used in '
+                             'combination with OutVanadiumCurveFits from a previous execution and '
+                             'VanadiumWorkspace to provide pre-calculated values for Vanadium correction.')
+
+        self.declareProperty('OutVanadiumCurveFits', '', direction=Direction.Input,
+                             doc = 'Name for a workspace2D with the fitting workspaces corresponding to '
+                             'the banks processed. This workspace has three spectra per bank, as produced '
+                             'by the algorithm Fit. This is meant to be used as an alternative input '
+                             'VanadiumWorkspace for testing and performance reasons. If not given, no '
+                             'workspace is generated.')
+
+
+    def PyExec(self):
+        import EnggUtils
+
+        # Get the run workspace
+        ws = self.getProperty('InputWorkspace').value
+
+        # Get spectra indices either from bank or direct list of indices, checking for errors
+        bank = self.getProperty('Bank').value
+        spectra = self.getProperty(self.INDICES_PROP_NAME).value
+        indices = EnggUtils.getWsIndicesFromInProperties(ws, bank, spectra)
+
+    	# Leave the data for the bank we are interested in only
+        ws = EnggUtils.cropData(self, ws, indices)
+
+    	# Apply calibration
+        detPos = self.getProperty("DetectorPositions").value
+        if detPos:
+            self._applyCalibration(ws, detPos)
+
+        # Leave data for the same bank in the vanadium workspace too
+        vanWS = self.getProperty("VanadiumWorkspace").value
+        # if it is raw data (not precalculated curve), needs to be cropped
+        if EnggUtils.vanadiumWorkspaceIsPrecalculated(ws):
+            vanWS = EnggUtils.cropData(self, vanWS, indices)
+
+        # These corrections rely on ToF<->Dspacing conversions, so they're done after the calibration step
+        vanFittingWS = EnggUtils.applyVanadiumCorrection(self, ws, vanWS,
+                                                         self.getProperty('VanadiumIntegWorkspace').value)
+
+    	# Convert to dSpacing
+        ws = EnggUtils.convertToDSpacing(self, ws)
+
+    	# Sum the values
+        ws = EnggUtils.sumSpectra(self, ws)
+
+    	# Convert back to time of flight
+        ws = EnggUtils.convertToToF(self, ws)
+
+    	# OpenGenie displays distributions instead of pure counts (this is done implicitly when
+    	# converting units), so I guess that's what users will expect
+        self._convertToDistr(ws)
+
+        self.setProperty("OutputWorkspace", ws)
+
+        # optinally, generate the workspace with per-bank vanadium fitting curves
+        outVanWSName = self.getPropertyValue('OutVanadiumCurveFits')
+        if outVanWSName:
+            mtd[outVanWSName] = vanFittingWS
+
+    def _applyCalibration(self, ws, detPos):
+        """
+        Refines the detector positions using the result of calibration (if one is specified).
+
+        @param ws :: workspace to apply the calibration (on its instrument)
+        @param detPos :: detector positions (as a table of positions, one row per detector)
+    	"""
+        alg = self.createChildAlgorithm('ApplyCalibration')
+        alg.setProperty('Workspace', ws)
+        alg.setProperty('PositionTable', detPos)
+        alg.execute()
+
+    def _convertToDistr(self, ws):
+        """
+        Convert workspace to distribution
+
+        @param ws :: workspace, which is modified/converted in place
+    	"""
+        alg = self.createChildAlgorithm('ConvertToDistribution')
+        alg.setProperty('Workspace', ws)
+        alg.execute()
+
+AlgorithmFactory.subscribe(EnggFocus)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXCalibrate.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXCalibrate.py
deleted file mode 100644
index f5ef1498fadfa9d33e6b83b133d1ebcdd0d4bd96..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXCalibrate.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#pylint: disable=no-init,invalid-name
-from mantid.kernel import *
-from mantid.api import *
-
-
-class EnginXCalibrate(PythonAlgorithm):
-    def category(self):
-        return "Diffraction\\Engineering;PythonAlgorithms"
-
-    def name(self):
-        return "EnginXCalibrate"
-
-    def summary(self):
-        return "Calibrates a detector bank by performing a single peak fitting."
-
-    def PyInit(self):
-        self.declareProperty(FileProperty("Filename", "", FileAction.Load),\
-    		"Calibration run to use")
-
-        self.declareProperty(FloatArrayProperty("ExpectedPeaks", ""),\
-    		"A list of dSpacing values where peaks are expected.")
-
-        self.declareProperty("Bank", 1, "Which bank to calibrate")
-
-        self.declareProperty(ITableWorkspaceProperty("DetectorPositions", "",\
-                Direction.Input, PropertyMode.Optional),\
-    		"Calibrated detector positions. If not specified, default ones are used.")
-
-        self.declareProperty("Difc", 0.0, direction = Direction.Output,\
-    		doc = "Calibrated Difc value for the bank")
-
-        self.declareProperty("Zero", 0.0, direction = Direction.Output,\
-    		doc = "Calibrated Zero value for the bank")
-
-    def PyExec(self):
-
-        ws = self._focusRun()
-
-        fitPeaksAlg = self.createChildAlgorithm('EnginXFitPeaks')
-        fitPeaksAlg.setProperty('InputWorkspace', ws)
-        fitPeaksAlg.setProperty('WorkspaceIndex', 0) # There should be only one index anyway
-        fitPeaksAlg.setProperty('ExpectedPeaks', self.getProperty('ExpectedPeaks').value)
-        fitPeaksAlg.execute()
-
-        self.setProperty('Difc', fitPeaksAlg.getProperty('Difc').value)
-        self.setProperty('Zero', fitPeaksAlg.getProperty('Zero').value)
-
-    def _focusRun(self):
-        alg = self.createChildAlgorithm('EnginXFocus')
-        alg.setProperty('Filename', self.getProperty('Filename').value)
-        alg.setProperty('Bank', self.getProperty('Bank').value)
-
-        detPos = self.getProperty('DetectorPositions').value
-        if detPos:
-            alg.setProperty('DetectorPositions', detPos)
-
-        alg.execute()
-
-        return alg.getProperty('OutputWorkspace').value
-
-
-AlgorithmFactory.subscribe(EnginXCalibrate)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXCalibrateFull.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXCalibrateFull.py
deleted file mode 100644
index ccf1323a3a08bdd76949547f3b97320c5a058b5b..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXCalibrateFull.py
+++ /dev/null
@@ -1,136 +0,0 @@
-#pylint: disable=no-init,invalid-name
-from mantid.kernel import *
-from mantid.api import *
-import math
-
-class EnginXCalibrateFull(PythonAlgorithm):
-    def category(self):
-        return "Diffraction\\Engineering;PythonAlgorithms"
-
-    def name(self):
-        return "EnginXCalibrateFull"
-
-    def summary(self):
-        return "Calibrates every pixel position by performing single peak fitting."
-
-    def PyInit(self):
-        self.declareProperty(FileProperty("Filename", "", FileAction.Load),\
-    		"Calibration run to use")
-
-        self.declareProperty(ITableWorkspaceProperty("DetectorPositions", "", Direction.Output),\
-    		"A table with the detector IDs and calibrated detector positions in V3P format.")
-
-        self.declareProperty(FloatArrayProperty("ExpectedPeaks", ""),\
-    		"A list of dSpacing values where peaks are expected.")
-
-        self.declareProperty("Bank", 1, "Which bank to calibrate")
-
-    def PyExec(self):
-
-        import EnginXUtils
-
-        ws = self._loadCalibrationRun()
-
-        ws = self._prepareWsForFitting(ws)
-
-        positionTable = self._createPositionsTable()
-
-        indices = EnginXUtils.getWsIndicesForBank(self.getProperty('Bank').value, ws)
-
-        prog = Progress(self, 0, 1, len(indices))
-
-        for i in indices:
-
-            _, difc = self._fitPeaks(ws, i)
-
-            det = ws.getDetector(i)
-
-            newPos = self._getCalibratedDetPos(difc, det, ws)
-
-            positionTable.addRow([det.getID(), newPos])
-
-            prog.report()
-
-        self.setProperty("DetectorPositions", positionTable)
-
-    def _loadCalibrationRun(self):
-        """ Loads specified calibration run
-    	"""
-        alg = self.createChildAlgorithm('Load')
-        alg.setProperty('Filename', self.getProperty('Filename').value)
-        alg.execute()
-        return alg.getProperty('OutputWorkspace').value
-
-    def _prepareWsForFitting(self, ws):
-        """ Rebins the workspace and converts it to distribution
-    	"""
-        rebinAlg = self.createChildAlgorithm('Rebin')
-        rebinAlg.setProperty('InputWorkspace', ws)
-        rebinAlg.setProperty('Params', '-0.0005') # The value is borrowed from OG routines
-        rebinAlg.execute()
-        result = rebinAlg.getProperty('OutputWorkspace').value
-
-        if result.isDistribution()==False:
-            convertAlg = self.createChildAlgorithm('ConvertToDistribution')
-            convertAlg.setProperty('Workspace', result)
-            convertAlg.execute()
-
-        return result
-
-    def _createPositionsTable(self):
-        """ Creates an empty table for storing detector positions
-    	"""
-        alg = self.createChildAlgorithm('CreateEmptyTableWorkspace')
-        alg.execute()
-        table = alg.getProperty('OutputWorkspace').value
-
-        table.addColumn('int', 'Detector ID')
-        table.addColumn('V3D', 'Detector Position')
-
-        return table
-
-    def _fitPeaks(self, ws, wsIndex):
-        """ Fits expected peaks to the spectrum, and returns calibrated zero and difc values.
-    	"""
-        alg = self.createChildAlgorithm('EnginXFitPeaks')
-        alg.setProperty('InputWorkspace', ws)
-        alg.setProperty('WorkspaceIndex', wsIndex) # There should be only one index anyway
-        alg.setProperty('ExpectedPeaks', self.getProperty('ExpectedPeaks').value)
-        alg.execute()
-
-        difc = alg.getProperty('Difc').value
-        zero = alg.getProperty('Zero').value
-
-        return (zero, difc)
-
-    def _getCalibratedDetPos(self, newDifc, det, ws):
-        """ Returns a detector position which corresponds to the newDifc value.
-
-    		The two_theta and phi of the detector are preserved, L2 is changed.
-    	"""
-        # This is how detL2 would be calculated
-        # detL2 = det.getDistance(ws.getInstrument().getSample())
-        detTwoTheta = ws.detectorTwoTheta(det)
-        detPhi = det.getPhi()
-
-        newL2 = (newDifc / (252.816 * 2 * math.sin(detTwoTheta / 2.0))) - 50
-
-        newPos = self._V3DFromSpherical(newL2, detTwoTheta, detPhi)
-
-        return newPos
-
-    def _V3DFromSpherical(self, R, polar, azimuth):
-        """ Returns a cartesian 3D vector for the given spherical coordinates.
-
-    		Borrowed from V3D::spherical (C++).
-    	"""
-        z = R*math.cos(polar)
-        ct=R*math.sin(polar)
-        x=ct*math.cos(azimuth)
-        y=ct*math.sin(azimuth)
-
-        return V3D(x,y,z)
-
-
-
-AlgorithmFactory.subscribe(EnginXCalibrateFull)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXFitPeaks.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXFitPeaks.py
deleted file mode 100644
index 0fed4c447ec9f37099b6540b003467fc5adc4f3f..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXFitPeaks.py
+++ /dev/null
@@ -1,219 +0,0 @@
-#pylint: disable=no-init,invalid-name
-from mantid.kernel import *
-from mantid.api import *
-
-import math
-
-class EnginXFitPeaks(PythonAlgorithm):
-    def category(self):
-        return "Diffraction\\Engineering;PythonAlgorithms"
-
-    def name(self):
-        return "EnginXFitPeaks"
-
-    def summary(self):
-        return ("The algorithm fits an expected diffraction pattern to a workpace spectrum by "
-                "performing single peak fits.")
-
-    def PyInit(self):
-        self.declareProperty(MatrixWorkspaceProperty("InputWorkspace", "", Direction.Input),\
-    		"Workspace to fit peaks in. ToF is expected X unit.")
-
-        self.declareProperty("WorkspaceIndex", 0,\
-    		"Index of the spectra to fit peaks in")
-
-        self.declareProperty(FloatArrayProperty("ExpectedPeaks", (self._getDefaultPeaks())),\
-    		"A list of dSpacing values to be translated into TOF to find expected peaks.")
-
-        self.declareProperty(FileProperty(name="ExpectedPeaksFromFile",defaultValue="",
-                                          action=FileAction.OptionalLoad,extensions = [".csv"]),
-                             "Load from file a list of dSpacing values to be translated into TOF to find expected peaks.")
-
-        self.declareProperty("Difc", 0.0, direction = Direction.Output,\
-    		doc = "Fitted Difc value")
-
-        self.declareProperty("Zero", 0.0, direction = Direction.Output,\
-    		doc = "Fitted Zero value")
-
-    def PyExec(self):
-    	# Get expected peaks in TOF for the detector
-        expectedPeaksTof = self._expectedPeaksInTOF()
-        # FindPeaks will returned a list of peaks sorted by the centre found. Sort the peaks as well,
-        # so we can match them with fitted centres later.
-        expectedPeaksTof = sorted(expectedPeaksTof)
-        expectedPeaksD = self._readInExpectedPeaks()
-
-        # Find approximate peak positions, asumming Gaussian shapes
-        findPeaksAlg = self.createChildAlgorithm('FindPeaks')
-        findPeaksAlg.setProperty('InputWorkspace', self.getProperty("InputWorkspace").value)
-        findPeaksAlg.setProperty('PeakPositions', expectedPeaksTof)
-        findPeaksAlg.setProperty('PeakFunction', 'Gaussian')
-        findPeaksAlg.setProperty('WorkspaceIndex', self.getProperty("WorkspaceIndex").value)
-        findPeaksAlg.execute()
-        foundPeaks = findPeaksAlg.getProperty('PeaksList').value
-
-        if foundPeaks.rowCount() < len(expectedPeaksTof):
-            raise Exception("Some peaks were not found")
-
-        fittedPeaks = self._createFittedPeaksTable()
-
-        for i in range(foundPeaks.rowCount()):
-            row = foundPeaks.row(i)
-            # Peak parameters estimated by FindPeaks
-            centre = row['centre']
-            width = row['width']
-            height = row['height']
-            if width <= 0.:
-                continue
-
-            # Sigma value of the peak, assuming Gaussian shape
-            sigma = width / (2 * math.sqrt(2 * math.log(2)))
-
-            # Approximate peak intensity, assuming Gaussian shape
-            intensity = height * sigma * math.sqrt(2 * math.pi)
-
-            peak = FunctionFactory.createFunction("BackToBackExponential")
-            peak.setParameter('X0', centre)
-            peak.setParameter('S', sigma)
-            peak.setParameter('I', intensity)
-
-            # Magic numbers
-            COEF_LEFT = 2
-            COEF_RIGHT = 3
-
-            # Try to predict a fit window for the peak
-            xMin = centre - (width * COEF_LEFT)
-            xMax = centre + (width * COEF_RIGHT)
-
-            # Fit using predicted window and a proper function with approximated initital values
-            fitAlg = self.createChildAlgorithm('Fit')
-            fitAlg.setProperty('Function', 'name=LinearBackground;' + str(peak))
-            fitAlg.setProperty('InputWorkspace', self.getProperty("InputWorkspace").value)
-            fitAlg.setProperty('WorkspaceIndex', self.getProperty("WorkspaceIndex").value)
-            fitAlg.setProperty('StartX', xMin)
-            fitAlg.setProperty('EndX', xMax)
-            fitAlg.setProperty('CreateOutput', True)
-            fitAlg.execute()
-            paramTable = fitAlg.getProperty('OutputParameters').value
-
-            fittedParams = {}
-            fittedParams['dSpacing'] = expectedPeaksD[i]
-            fittedParams['Chi'] = fitAlg.getProperty('OutputChi2overDoF').value
-            self._addParametersToMap(fittedParams, paramTable)
-
-            fittedPeaks.addRow(fittedParams)
-
-        (difc, zero) = self._fitDSpacingToTOF(fittedPeaks)
-
-        self.setProperty('Difc', difc)
-        self.setProperty('Zero', zero)
-
-    def _readInExpectedPeaks(self):
-        """ Reads in expected peaks from the .csv file """
-        readInArray = []
-        exPeakArray = []
-        updateFileName = self.getPropertyValue("ExpectedPeaksFromFile")
-        if updateFileName != "":
-            with open(updateFileName) as f:
-                for line in f:
-                    readInArray.append([float(x) for x in line.split(',')])
-            for a in readInArray:
-                for b in a:
-                    exPeakArray.append(b)
-            if exPeakArray == []:
-                print "File could not be read. Defaults being used."
-                expectedPeaksD = sorted(self.getProperty('ExpectedPeaks').value)
-            else:
-                print "using file"
-                expectedPeaksD = sorted(exPeakArray)
-        else:
-            expectedPeaksD = sorted(self.getProperty('ExpectedPeaks').value)
-        return expectedPeaksD
-
-    def _getDefaultPeaks(self):
-        """ Gets default peaks for EnginX algorithm. Values from CeO2 """
-        defaultPeak = [3.1243, 2.7057, 1.9132, 1.6316, 1.5621, 1.3529, 1.2415,
-                       1.2100, 1.1046, 1.0414, 0.9566, 0.9147, 0.9019, 0.8556,
-                       0.8252, 0.8158, 0.7811]
-        return defaultPeak
-
-    def _fitDSpacingToTOF(self, fittedPeaksTable):
-        """ Fits a linear background to the dSpacing <-> TOF relationship and returns fitted difc
-    		and zero values.
-    	"""
-        convertTableAlg = self.createChildAlgorithm('ConvertTableToMatrixWorkspace')
-        convertTableAlg.setProperty('InputWorkspace', fittedPeaksTable)
-        convertTableAlg.setProperty('ColumnX', 'dSpacing')
-        convertTableAlg.setProperty('ColumnY', 'X0')
-        convertTableAlg.execute()
-        dSpacingVsTof = convertTableAlg.getProperty('OutputWorkspace').value
-
-    	# Fit the curve to get linear coefficients of TOF <-> dSpacing relationship for the detector
-        fitAlg = self.createChildAlgorithm('Fit')
-        fitAlg.setProperty('Function', 'name=LinearBackground')
-        fitAlg.setProperty('InputWorkspace', dSpacingVsTof)
-        fitAlg.setProperty('WorkspaceIndex', 0)
-        fitAlg.setProperty('CreateOutput', True)
-        fitAlg.execute()
-        paramTable = fitAlg.getProperty('OutputParameters').value
-
-        zero = paramTable.cell('Value', 0) # A0
-        difc = paramTable.cell('Value', 1) # A1
-
-        return (difc, zero)
-
-
-    def _expectedPeaksInTOF(self):
-        """ Converts expected peak dSpacing values to TOF values for the detector
-    	"""
-        ws = self.getProperty("InputWorkspace").value
-        wsIndex = self.getProperty("WorkspaceIndex").value
-
-    	# Detector for specified spectrum
-        det = ws.getDetector(wsIndex)
-
-    	# Current detector parameters
-        detL2 = det.getDistance(ws.getInstrument().getSample())
-        detTwoTheta = ws.detectorTwoTheta(det)
-
-    	# Function for converting dSpacing -> TOF for the detector
-        dSpacingToTof = lambda d: 252.816 * 2 * (50 + detL2) * math.sin(detTwoTheta / 2.0) * d
-        expectedPeaks = self._readInExpectedPeaks()
-
-    	# Expected peak positions in TOF for the detector
-        expectedPeaksTof = [dSpacingToTof(ep) for ep in expectedPeaks]
-
-        return expectedPeaksTof
-
-
-    def _createFittedPeaksTable(self):
-        """ Creates a table where to put peak fitting results to
-    	"""
-        alg = self.createChildAlgorithm('CreateEmptyTableWorkspace')
-        alg.execute()
-        table = alg.getProperty('OutputWorkspace').value
-
-        table.addColumn('double', 'dSpacing')
-
-        for name in ['A0', 'A1', 'X0', 'A', 'B', 'S', 'I']:
-            table.addColumn('double', name)
-            table.addColumn('double', name + '_Err')
-
-        table.addColumn('double', 'Chi')
-
-        return table
-
-    def _addParametersToMap(self, paramMap, paramTable):
-        """ Reads parameters from the Fit Parameter table, and add their values and errors to the map
-        """
-        for i in range(paramTable.rowCount() - 1): # Skip the last (fit goodness) row
-            row = paramTable.row(i)
-
-            # Get local func. param name. E.g., not f1.A0, but just A0
-            name = (row['Name'].rpartition('.'))[2]
-
-            paramMap[name] = row['Value']
-            paramMap[name + '_Err'] = row['Error']
-
-
-AlgorithmFactory.subscribe(EnginXFitPeaks)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXFocus.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXFocus.py
deleted file mode 100644
index b6adb8b02bc621d425438767d4e5efff62c1363f..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/EnginXFocus.py
+++ /dev/null
@@ -1,127 +0,0 @@
-#pylint: disable=no-init,invalid-name
-from mantid.kernel import *
-from mantid.api import *
-
-class EnginXFocus(PythonAlgorithm):
-    def category(self):
-        return "Diffraction\\Engineering;PythonAlgorithms"
-
-    def name(self):
-        return "EnginXFocus"
-
-    def summary(self):
-        return "Focuses a run."
-
-    def PyInit(self):
-        self.declareProperty(FileProperty("Filename", "", FileAction.Load),\
-    		"Run to focus")
-
-        self.declareProperty("Bank", 1, "Which bank to focus")
-
-        self.declareProperty(ITableWorkspaceProperty("DetectorPositions", "", Direction.Input,\
-                PropertyMode.Optional),\
-    		"Calibrated detector positions. If not specified, default ones are used.")
-
-        self.declareProperty(WorkspaceProperty("OutputWorkspace", "", Direction.Output),\
-                             "A workspace with focussed data")
-
-
-
-    def PyExec(self):
-    	# Load the run file
-        ws = self._loadRun()
-
-    	# Leave the data for the bank we are interested in only
-        ws = self._cropData(ws)
-
-    	# Apply calibration
-        self._applyCalibration(ws)
-
-    	# Convert to dSpacing
-        ws = self._convertToDSpacing(ws)
-
-    	# Sum the values
-        ws = self._sumSpectra(ws)
-
-    	# Convert back to time of flight
-        ws = self._convertToTOF(ws)
-
-    	# OpenGenie displays distributions instead of pure counts (this is done implicitly when
-    	# converting units), so I guess that's what users will expect
-        self._convertToDistr(ws)
-
-        self.setProperty("OutputWorkspace", ws)
-
-    def _loadRun(self):
-        """ Loads the specified run
-    	"""
-        alg = self.createChildAlgorithm('Load')
-        alg.setProperty('Filename', self.getProperty("Filename").value)
-        alg.execute()
-        return alg.getProperty('OutputWorkspace').value
-
-    def _applyCalibration(self, ws):
-        """ Refines the detector positions using the result of calibration (if one is specified)
-    	"""
-        detPos = self.getProperty("DetectorPositions").value
-
-        if detPos:
-            alg = self.createChildAlgorithm('ApplyCalibration')
-            alg.setProperty('Workspace', ws)
-            alg.setProperty('PositionTable', detPos)
-            alg.execute()
-
-    def _convertToDSpacing(self, ws):
-        """ Converts workspace to dSpacing
-    	"""
-        alg = self.createChildAlgorithm('ConvertUnits')
-        alg.setProperty('InputWorkspace', ws)
-        alg.setProperty('Target', 'dSpacing')
-        alg.setProperty('AlignBins', True)
-        alg.execute()
-        return alg.getProperty('OutputWorkspace').value
-
-    def _convertToTOF(self, ws):
-        """ Converts workspace to TOF
-    	"""
-        alg = self.createChildAlgorithm('ConvertUnits')
-        alg.setProperty('InputWorkspace', ws)
-        alg.setProperty('Target', 'TOF')
-        alg.execute()
-        return alg.getProperty('OutputWorkspace').value
-
-    def _convertToDistr(self, ws):
-        """ Convert workspace to distribution
-    	"""
-        alg = self.createChildAlgorithm('ConvertToDistribution')
-        alg.setProperty('Workspace', ws)
-        alg.execute()
-
-    def _cropData(self, ws):
-        """ Crops the workspace so that only data for the specified bank is left.
-
-    	    NB: This assumes spectra for a bank are consequent.
-    	"""
-
-        import EnginXUtils
-
-        indices = EnginXUtils.getWsIndicesForBank(self.getProperty('Bank').value, ws)
-
-    	# Leave only spectra between min and max
-        alg = self.createChildAlgorithm('CropWorkspace')
-        alg.setProperty('InputWorkspace', ws)
-        alg.setProperty('StartWorkspaceIndex', min(indices))
-        alg.setProperty('EndWorkspaceIndex', max(indices))
-        alg.execute()
-
-        return alg.getProperty('OutputWorkspace').value
-
-    def _sumSpectra(self, ws):
-        """ Calls the SumSpectra algorithm
-    	"""
-        alg = self.createChildAlgorithm('SumSpectra')
-        alg.setProperty('InputWorkspace', ws)
-        alg.execute()
-        return alg.getProperty('OutputWorkspace').value
-
-AlgorithmFactory.subscribe(EnginXFocus)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LiquidsReflectometryReduction.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LiquidsReflectometryReduction.py
index de18bd166e891dc8fb1a0fdfe667cf4343bed111..c7f0d4e3162399217da6eccec643a6759d3414e5 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LiquidsReflectometryReduction.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LiquidsReflectometryReduction.py
@@ -33,7 +33,7 @@ class LiquidsReflectometryReduction(PythonAlgorithm):
 
     def PyInit(self):
         #TODO: Revisit the choice of names when we are entirely rid of the old code.
-        self.declareProperty(IntArrayProperty("RunNumbers"), "List of run numbers to process")
+        self.declareProperty(StringArrayProperty("RunNumbers"), "List of run numbers to process")
         self.declareProperty("NormalizationRunNumber", 0, "Run number of the normalization run to use")
         self.declareProperty(IntArrayProperty("SignalPeakPixelRange", [123, 137],
                                               IntArrayLengthValidator(2), direction=Direction.Input),
@@ -113,7 +113,12 @@ class LiquidsReflectometryReduction(PythonAlgorithm):
         # If we have multiple files, add them
         file_list = []
         for item in dataRunNumbers:
-            data_file = FileFinder.findRuns("REF_L%d" % item)[0]
+            # The standard mode of operation is to give a run number as input
+            try:
+                data_file = FileFinder.findRuns("REF_L%s" % item)[0]
+            except RuntimeError:
+                # Allow for a file name or file path as input
+                data_file = FileFinder.findRuns(item)[0]
             file_list.append(data_file)
         runs = reduce((lambda x, y: '%s+%s' % (x, y)), file_list)
         ws_event_data = Load(Filename=runs, OutputWorkspace="REF_L_%s" % dataRunNumbers[0])
@@ -519,6 +524,10 @@ class LiquidsReflectometryReduction(PythonAlgorithm):
             b = float(data_found['b'])
             a_error = float(data_found['error_a'])
             b_error = float(data_found['error_b'])
+            AddSampleLog(Workspace=workspace, LogName='scaling_factor_a', LogText=str(a))
+            AddSampleLog(Workspace=workspace, LogName='scaling_factor_b', LogText=str(b))
+            AddSampleLog(Workspace=workspace, LogName='scaling_factor_a_error', LogText=str(a_error))
+            AddSampleLog(Workspace=workspace, LogName='scaling_factor_b_error', LogText=str(b_error))
 
             # Extract a single spectrum, just so we have the TOF axis
             # to create a normalization workspace
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadDNSLegacy.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadDNSLegacy.py
index da0869cbf22021b03230aca805ae9139f68f4f81..d50d9f0aa6faf2a6e24f8aae7e70776cbc17ab2b 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadDNSLegacy.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadDNSLegacy.py
@@ -1,10 +1,11 @@
 #pylint: disable=no-init
-from mantid.kernel import *
-from mantid.api import *
 import mantid.simpleapi as api
 import numpy as np
-
-import os, sys
+import os
+import sys
+from mantid.api import PythonAlgorithm, AlgorithmFactory, WorkspaceProperty, \
+    FileProperty, FileAction
+from mantid.kernel import Direction, StringListValidator, DateAndTime
 
 sys.path.insert(0, os.path.dirname(__file__))
 from dnsdata import DNSdata
@@ -12,15 +13,16 @@ sys.path.pop(0)
 
 POLARISATIONS = ['0', 'x', 'y', 'z', '-x', '-y', '-z']
 
+
 class LoadDNSLegacy(PythonAlgorithm):
     """
     Load the DNS Legacy data file to the mantid workspace
     """
     def category(self):
         """
-        Returns categore
+        Returns category
         """
-        return 'DataHandling'
+        return 'PythonAlgorithms\\MLZ\\DNS\\DataHandling'
 
     def name(self):
         """
@@ -32,21 +34,21 @@ class LoadDNSLegacy(PythonAlgorithm):
         return "Load the DNS Legacy data file to the mantid workspace."
 
     def PyInit(self):
-        self.declareProperty(FileProperty("Filename", "",  \
-                FileAction.Load, ['.d_dat']), \
-                "Name of DNS experimental data file.")
-        self.declareProperty(WorkspaceProperty("OutputWorkspace", \
-                "", direction=Direction.Output), \
-                doc="Name of the workspace to store the experimental data.")
-        self.declareProperty("Polarisation", "0", \
-                StringListValidator(POLARISATIONS), \
-                doc="Type of polarisation. Valid values: %s" % str(POLARISATIONS))
+        self.declareProperty(FileProperty("Filename", "",
+                                          FileAction.Load, ['.d_dat']),
+                             "Name of DNS experimental data file.")
+        self.declareProperty(WorkspaceProperty("OutputWorkspace",
+                                               "", direction=Direction.Output),
+                             doc="Name of the workspace to store the experimental data.")
+        self.declareProperty("Polarisation", "0",
+                             StringListValidator(POLARISATIONS),
+                             doc="Type of polarisation. Valid values: %s" % str(POLARISATIONS))
         return
 
-
     def PyExec(self):
         # Input
         filename = self.getPropertyValue("Filename")
+        outws = self.getPropertyValue("OutputWorkspace")
         pol = self.getPropertyValue("Polarisation")
 
         # load data array from the given file
@@ -56,8 +58,8 @@ class LoadDNSLegacy(PythonAlgorithm):
         dataY = data_array[0:ndet, 1:]
         dataE = np.sqrt(dataY)
         # create workspace
-        __temporary_workspace__ = api.CreateWorkspace(DataX=dataX, \
-                DataY=dataY, DataE=dataE, NSpec=ndet, UnitX="Wavelength")
+        __temporary_workspace__ = api.CreateWorkspace(DataX=dataX,
+                                                      DataY=dataY, DataE=dataE, NSpec=ndet, UnitX="Wavelength")
         api.LoadInstrument(__temporary_workspace__, InstrumentName='DNS')
 
         # load run information
@@ -65,73 +67,76 @@ class LoadDNSLegacy(PythonAlgorithm):
         metadata.read_legacy(filename)
         run = __temporary_workspace__.mutableRun()
         if metadata.start_time and metadata.end_time:
-            run.setStartAndEndTime(DateAndTime(metadata.start_time), \
-                    DateAndTime(metadata.end_time))
+            run.setStartAndEndTime(DateAndTime(metadata.start_time),
+                                   DateAndTime(metadata.end_time))
         # add name of file as a run title
         fname = os.path.splitext(os.path.split(filename)[1])[0]
         run.addProperty('run_title', fname, True)
-        #run.addProperty('dur_secs', str(metadata.duration), True)
+        # run.addProperty('dur_secs', str(metadata.duration), True)
 
         # rotate the detector bank to the proper position
-        api.RotateInstrumentComponent(__temporary_workspace__, \
-                "bank0", X=0, Y=1, Z=0, Angle=metadata.deterota)
+        api.RotateInstrumentComponent(__temporary_workspace__,
+                                      "bank0", X=0, Y=1, Z=0, Angle=metadata.deterota)
         # add sample log Ei and wavelength
-        api.AddSampleLog(__temporary_workspace__, \
-                'Ei', LogText=str(metadata.incident_energy), \
-                LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, \
-                'wavelength', LogText=str(metadata.wavelength), \
-                LogType='Number')
+        api.AddSampleLog(__temporary_workspace__,
+                         'Ei', LogText=str(metadata.incident_energy),
+                         LogType='Number')
+        api.AddSampleLog(__temporary_workspace__,
+                         'wavelength', LogText=str(metadata.wavelength),
+                         LogType='Number')
         # add other sample logs
-        api.AddSampleLog(__temporary_workspace__, 'deterota', \
-                LogText=str(metadata.deterota), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'mon_sum', \
-                LogText=str(metadata.monitor_counts), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'duration', \
-                LogText=str(metadata.duration), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'huber', \
-                LogText=str(metadata.huber), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'T1', \
-                LogText=str(metadata.t1), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'T2', \
-                LogText=str(metadata.t2), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'Tsp', \
-                LogText=str(metadata.tsp), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'deterota',
+                         LogText=str(metadata.deterota), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'mon_sum',
+                         LogText=str(metadata.monitor_counts), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'duration',
+                         LogText=str(metadata.duration), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'huber',
+                         LogText=str(metadata.huber), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'T1',
+                         LogText=str(metadata.t1), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'T2',
+                         LogText=str(metadata.t2), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'Tsp',
+                         LogText=str(metadata.tsp), LogType='Number')
         # flipper
-        api.AddSampleLog(__temporary_workspace__, 'flipper_precession', \
-                LogText=str(metadata.flipper_precession_current), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'flipper_z_compensation', \
-                LogText=str(metadata.flipper_z_compensation_current), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'flipper_precession',
+                         LogText=str(metadata.flipper_precession_current), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'flipper_z_compensation',
+                         LogText=str(metadata.flipper_z_compensation_current), LogType='Number')
         flipper_status = 'OFF'
         if abs(metadata.flipper_precession_current) > sys.float_info.epsilon:
             flipper_status = 'ON'
-        api.AddSampleLog(__temporary_workspace__, 'flipper', \
-                LogText=flipper_status, LogType='String')
+        api.AddSampleLog(__temporary_workspace__, 'flipper',
+                         LogText=flipper_status, LogType='String')
         # coil currents
-        api.AddSampleLog(__temporary_workspace__, 'C_a', \
-                LogText=str(metadata.a_coil_current), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'C_b', \
-                LogText=str(metadata.b_coil_current), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'C_c', \
-                LogText=str(metadata.c_coil_current), LogType='Number')
-        api.AddSampleLog(__temporary_workspace__, 'C_z', \
-                LogText=str(metadata.z_coil_current), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'C_a',
+                         LogText=str(metadata.a_coil_current), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'C_b',
+                         LogText=str(metadata.b_coil_current), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'C_c',
+                         LogText=str(metadata.c_coil_current), LogType='Number')
+        api.AddSampleLog(__temporary_workspace__, 'C_z',
+                         LogText=str(metadata.z_coil_current), LogType='Number')
         # type of polarisation
-        api.AddSampleLog(__temporary_workspace__, 'polarisation', \
-                LogText=pol, LogType='String')
+        api.AddSampleLog(__temporary_workspace__, 'polarisation',
+                         LogText=pol, LogType='String')
+        # slits
+        api.AddSampleLog(__temporary_workspace__, 'slit_i_upper_blade_position',
+                         LogText=str(metadata.slit_i_upper_blade_position), LogType='String')
+        api.AddSampleLog(__temporary_workspace__, 'slit_i_lower_blade_position',
+                         LogText=str(metadata.slit_i_lower_blade_position), LogType='String')
+        api.AddSampleLog(__temporary_workspace__, 'slit_i_left_blade_position',
+                         LogText=str(metadata.slit_i_left_blade_position), LogType='String')
+        api.AddSampleLog(__temporary_workspace__, 'slit_i_right_blade_position',
+                         LogText=str(metadata.slit_i_right_blade_position), LogType='String')
 
         self.setProperty("OutputWorkspace", __temporary_workspace__)
-        self.log().debug('LoadDNSLegacy: OK')
+        self.log().debug('LoadDNSLegacy: data are loaded to the workspace ' + outws)
         api.DeleteWorkspace(__temporary_workspace__)
 
         return
 
 
-def get_energy(wavelength):
-    """
-    Calculates neutron energy in eV from the given wavelength in Angstrom
-    """
-    return  1e-3*81.73 / wavelength**2
-
 # Register algorithm with Mantid
 AlgorithmFactory.subscribe(LoadDNSLegacy)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadVesuvio.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadVesuvio.py
index 111a2c6ceaa67fefcf4bb5ed744de3de0b7620be..cf465f8fa9418900a94baac4225647f9e44364f6 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadVesuvio.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadVesuvio.py
@@ -120,6 +120,7 @@ class LoadVesuvio(PythonAlgorithm):
                              doc="The name of the output workspace.")
 
 #----------------------------------------------------------------------------------------
+
     def PyExec(self):
         self._load_inst_parameters()
         self._retrieve_input()
@@ -216,6 +217,10 @@ class LoadVesuvio(PythonAlgorithm):
             np.sqrt(dataE, dataE)
             foil_out.setX(ws_index, x_values)
 
+        ip_file = self.getPropertyValue(INST_PAR_PROP)
+        if len(ip_file) > 0:
+            self._load_ip_file(ip_file)
+
         if self._sumspectra:
             self._sum_all_spectra()
 
@@ -282,6 +287,7 @@ class LoadVesuvio(PythonAlgorithm):
         ms.DeleteWorkspace(__empty_vesuvio_ws,EnableLogging=_LOGGING_)
 
 #----------------------------------------------------------------------------------------
+
     def _retrieve_input(self):
         self._diff_opt = self.getProperty(MODE_PROP).value
 
@@ -325,6 +331,7 @@ class LoadVesuvio(PythonAlgorithm):
         self.delta_tmon = (mon_raw_t[1:] - mon_raw_t[:-1])
 
 #----------------------------------------------------------------------------------------
+
     def _load_and_sum_runs(self, spectra):
         """Load the input set of runs & sum them if there
         is more than one.
@@ -381,6 +388,7 @@ class LoadVesuvio(PythonAlgorithm):
             runs = [run_str]
 
         return runs
+
 #----------------------------------------------------------------------------------------
 
     def _set_spectra_type(self, spectrum_no):
@@ -405,8 +413,8 @@ class LoadVesuvio(PythonAlgorithm):
             self._period_sum2_start, self._period_sum2_end = self._forw_period_sum2
             self._foil_out_norm_start, self._foil_out_norm_end = self._forw_foil_out_norm
 
-
 #----------------------------------------------------------------------------------------
+
     def _integrate_periods(self):
         """
             Calculates 2 arrays of sums, 1 per period, of the Y values from
@@ -498,6 +506,7 @@ class LoadVesuvio(PythonAlgorithm):
                             foil_thick_periods, mon_thick_periods)
 
 #----------------------------------------------------------------------------------------
+
     def _get_foil_periods(self):
         """
         Return the period numbers (starting from 1) that contribute to the
@@ -530,6 +539,7 @@ class LoadVesuvio(PythonAlgorithm):
         return foil_out_periods, foil_thin_periods, foil_thick_periods
 
 #----------------------------------------------------------------------------------------
+
     #pylint: disable=too-many-arguments
     def _sum_foils(self, foil_ws, mon_ws, sum_index, foil_periods, mon_periods=None):
         """
@@ -568,6 +578,7 @@ class LoadVesuvio(PythonAlgorithm):
         outY /= self.delta_tmon
 
 #----------------------------------------------------------------------------------------
+
     def _normalise_by_monitor(self):
         """
             Normalises by the monitor counts between mon_norm_start & mon_norm_end
@@ -595,6 +606,8 @@ class LoadVesuvio(PythonAlgorithm):
         if self._nperiods != 2:
             monitor_normalization(self.foil_thick, self.mon_thick)
 
+#----------------------------------------------------------------------------------------
+
     def _normalise_to_foil_out(self):
         """
             Normalises the thin/thick foil counts to the
@@ -621,6 +634,7 @@ class LoadVesuvio(PythonAlgorithm):
         normalise_to_out(self.foil_thin, "thin")
         if self._nperiods != 2:
             normalise_to_out(self.foil_thick, "thick")
+
 #----------------------------------------------------------------------------------------
 
     def _calculate_diffs(self):
@@ -639,6 +653,7 @@ class LoadVesuvio(PythonAlgorithm):
             raise RuntimeError("Unknown difference type requested: %d" % self._diff_opt)
 
         self.foil_out.setX(wsindex, self.pt_times)
+
 #----------------------------------------------------------------------------------------
 
     def _calculate_thin_difference(self, ws_index):
@@ -662,6 +677,7 @@ class LoadVesuvio(PythonAlgorithm):
         np.sqrt((eout**2 + ethin**2), eout) # The second argument makes it happen in place
 
 #----------------------------------------------------------------------------------------
+
     def _calculate_double_difference(self, ws_index):
         """
             Calculates the difference between the foil out, thin & thick foils
@@ -684,6 +700,7 @@ class LoadVesuvio(PythonAlgorithm):
         np.sqrt((one_min_beta*eout)**2 + ethin**2 + (self._beta**2)*ethick**2, eout)
 
 #----------------------------------------------------------------------------------------
+
     def _calculate_thick_difference(self, ws_index):
         """
             Calculates the difference between the foil out & thick foils
@@ -700,6 +717,7 @@ class LoadVesuvio(PythonAlgorithm):
         np.sqrt((eout**2 + ethick**2), eout) # The second argument makes it happen in place
 
 #----------------------------------------------------------------------------------------
+
     def _load_ip_file(self, ip_file):
         """
             If provided, load the instrument parameter file into the result
@@ -755,6 +773,7 @@ class LoadVesuvio(PythonAlgorithm):
         self.foil_out = ws_out
 
 #----------------------------------------------------------------------------------------
+
     def _get_header_format(self, ip_filename):
         """
             Returns the header format to be used for the given
@@ -774,6 +793,7 @@ class LoadVesuvio(PythonAlgorithm):
                              "variants. ncols=%d" % (len(columns)))
 
 #----------------------------------------------------------------------------------------
+
     def _store_results(self):
         """
            Sets the values of the output workspace properties
@@ -818,6 +838,8 @@ class SpectraToFoilPeriodMap(object):
             raise RuntimeError("Unsupported number of periods given: " + str(nperiods) +
                                ". Supported number of periods=2,3,6,9")
 
+#----------------------------------------------------------------------------------------
+
     def reorder(self, arr):
         """
            Orders the given array by increasing value. At the same time
@@ -833,6 +855,8 @@ class SpectraToFoilPeriodMap(object):
             self._one_to_one[index+1] = int(val)
         return arr
 
+#----------------------------------------------------------------------------------------
+
     def get_foilout_periods(self, spectrum_no):
         """Returns a list of the foil-out periods for the given
         spectrum number. Note that these start from 1 not zero
@@ -841,6 +865,8 @@ class SpectraToFoilPeriodMap(object):
         """
         return self.get_foil_periods(spectrum_no, state=0)
 
+#----------------------------------------------------------------------------------------
+
     def get_foilin_periods(self, spectrum_no):
         """Returns a list of the foil-out periods for the given
         spectrum number. Note that these start from 1 not zero
@@ -849,6 +875,8 @@ class SpectraToFoilPeriodMap(object):
         """
         return self.get_foil_periods(spectrum_no, state=1)
 
+#----------------------------------------------------------------------------------------
+
     def get_foil_periods(self, spectrum_no, state):
         """Returns a list of the periods for the given
         spectrum number & foil state. Note that these start from 1 not zero
@@ -871,6 +899,8 @@ class SpectraToFoilPeriodMap(object):
             foil_periods = [1,3,5] if foil_out else [2,4,6]
         return foil_periods
 
+#----------------------------------------------------------------------------------------
+
     def get_indices(self, spectrum_no, foil_state_numbers):
         """
         Returns a tuple of indices that can be used to access the Workspace within
@@ -885,6 +915,8 @@ class SpectraToFoilPeriodMap(object):
             indices.append(self.get_index(spectrum_no, state))
         return tuple(indices)
 
+#----------------------------------------------------------------------------------------
+
     def get_index(self, spectrum_no, foil_state_no):
         """Returns an index that can be used to access the Workspace within
         a WorkspaceGroup that corresponds to the foil state given
@@ -912,11 +944,15 @@ class SpectraToFoilPeriodMap(object):
         foil_period_no = foil_periods[foil_state_no]
         return foil_period_no - 1 # Minus 1 to get to WorkspaceGroup index
 
+#----------------------------------------------------------------------------------------
+
     def _validate_foil_number(self, foil_number):
         if foil_number < 1 or foil_number > 9:
             raise ValueError("Invalid foil state given, expected a number between "
                              "1 and 9. number=%d" % foil_number)
 
+#----------------------------------------------------------------------------------------
+
     def _validate_spectrum_number(self, spectrum_no):
         if spectrum_no < 1 or spectrum_no > 198:
             raise ValueError("Invalid spectrum given, expected a number between 3 "
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/MSDFit.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/MSDFit.py
index 7285abe4f676d36f3d0c687c4fe9d785843d07b1..de147bde8f794a7a787b822a0e9c8c5def0b3e0c 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/MSDFit.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/MSDFit.py
@@ -99,13 +99,18 @@ class MSDFit(DataProcessorAlgorithm):
         input_params = [self._input_ws + ',i%d' % i for i in xrange(self._spec_range[0],
                                                                     self._spec_range[1] + 1)]
         input_params = ';'.join(input_params)
-        PlotPeakByLogValue(Input=input_params, OutputWorkspace=self._output_msd_ws,
-                           Function=function, StartX=self._x_range[0], EndX=self._x_range[1],
-                           FitType='Sequential', CreateOutput=True)
+        PlotPeakByLogValue(Input=input_params,
+                           OutputWorkspace=self._output_msd_ws,
+                           Function=function,
+                           StartX=self._x_range[0],
+                           EndX=self._x_range[1],
+                           FitType='Sequential',
+                           CreateOutput=True)
 
         DeleteWorkspace(self._output_msd_ws + '_NormalisedCovarianceMatrices')
         DeleteWorkspace(self._output_msd_ws + '_Parameters')
-        RenameWorkspace(self._output_msd_ws, OutputWorkspace=self._output_param_ws)
+        RenameWorkspace(self._output_msd_ws,
+                        OutputWorkspace=self._output_param_ws)
 
         params_table = mtd[self._output_param_ws]
 
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ResNorm.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/ResNorm.py
similarity index 100%
rename from Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ResNorm.py
rename to Code/Mantid/Framework/PythonInterface/plugins/algorithms/ResNorm.py
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/SNSPowderReduction.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/SNSPowderReduction.py
index 258cb9a7ef33b6a59fee536555484829260de959..a591cef0cb129bcded78e09773ed18951297efef 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/SNSPowderReduction.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/SNSPowderReduction.py
@@ -29,8 +29,10 @@ class SNSPowderReduction(DataProcessorAlgorithm):
     _LRef = None
     _DIFCref = None
     _wavelengthMin = None
+    _wavelengthMax = None
     _vanPeakFWHM = None
     _vanSmoothing = None
+    _vanRadius = None
     _scaleFactor = None
     _outDir = None
     _outPrefix = None
@@ -83,7 +85,7 @@ class SNSPowderReduction(DataProcessorAlgorithm):
         self.declareProperty("VanadiumBackgroundNumber", defaultValue=0, validator=IntBoundedValidator(lower=-1),
                              doc="If specified overrides value in CharacterizationRunsFile. If -1 turns off correction.")
         self.declareProperty(FileProperty(name="CalibrationFile",defaultValue="",action=FileAction.Load,\
-                                      extensions = ["cal"]))
+                                      extensions = [".h5", ".hd5", ".hdf", ".cal"]))
         self.declareProperty(FileProperty(name="CharacterizationRunsFile",defaultValue="",action=FileAction.OptionalLoad,\
                                       extensions = ["txt"]),"File with characterization runs denoted")
         self.declareProperty("UnwrapRef", 0.,
@@ -92,6 +94,8 @@ class SNSPowderReduction(DataProcessorAlgorithm):
                              "Reference DIFC for resolution removal. Zero skips the correction")
         self.declareProperty("CropWavelengthMin", 0.,
                              "Crop the data at this minimum wavelength. Overrides LowResRef.")
+        self.declareProperty("CropWavelengthMax", 0.,
+                             "Crop the data at this maximum wavelength. Forces use of CropWavelengthMin.")
         self.declareProperty("RemovePromptPulseWidth", 0.0,
                              "Width of events (in microseconds) near the prompt pulse to remove. 0 disables")
         self.declareProperty("MaxChunkSize", 0.0, "Specify maximum Gbytes of file to read in one chunk.  Default is whole file.")
@@ -111,6 +115,7 @@ class SNSPowderReduction(DataProcessorAlgorithm):
                              "How far from the ideal position a vanadium peak can be during StripVanadiumPeaks. "\
                              "Default=0.05, negative turns off")
         self.declareProperty("VanadiumSmoothParams", "20,2", "Default=20,2")
+        self.declareProperty("VanadiumRadius", .3175, "Radius for MultipleScatteringCylinderAbsorption")
         self.declareProperty("BackgroundSmoothParams", "", "Default=off, suggested 20,2")
         self.declareProperty("FilterBadPulses", 95.,
                              doc="Filter out events measured while proton charge is more than 5% below average")
@@ -171,8 +176,10 @@ class SNSPowderReduction(DataProcessorAlgorithm):
         self._LRef = self.getProperty("UnwrapRef").value
         self._DIFCref = self.getProperty("LowResRef").value
         self._wavelengthMin = self.getProperty("CropWavelengthMin").value
+        self._wavelengthMax = self.getProperty("CropWavelengthMax").value
         self._vanPeakFWHM = self.getProperty("VanadiumFWHM").value
         self._vanSmoothing = self.getProperty("VanadiumSmoothParams").value
+        self._vanRadius = self.getProperty("VanadiumRadius").value
         calib = self.getProperty("CalibrationFile").value
         self._scaleFactor = self.getProperty("ScaleData").value
         self._outDir = self.getProperty("OutputDirectory").value
@@ -393,7 +400,8 @@ class SNSPowderReduction(DataProcessorAlgorithm):
                     # do the absorption correction
                     vanRun = api.ConvertUnits(InputWorkspace=vanRun, OutputWorkspace=vanRun, Target="TOF")
                     api.SetSampleMaterial(InputWorkspace=vanRun, ChemicalFormula="V", SampleNumberDensity=0.0721)
-                    vanRun = api.MultipleScatteringCylinderAbsorption(InputWorkspace=vanRun, OutputWorkspace=vanRun)
+                    vanRun = api.MultipleScatteringCylinderAbsorption(InputWorkspace=vanRun, OutputWorkspace=vanRun,
+                                                                      CylinderSampleRadius=self._vanRadius)
 
                     # focus the data
                     vanRun = api.AlignAndFocusPowder(InputWorkspace=vanRun, OutputWorkspace=vanRun, CalFileName=calib,
@@ -404,7 +412,8 @@ class SNSPowderReduction(DataProcessorAlgorithm):
                                                      CompressTolerance=self.COMPRESS_TOL_TOF,
                                                      UnwrapRef=self._LRef, LowResRef=self._DIFCref,
                                                      LowResSpectrumOffset=self._lowResTOFoffset,
-                                                     CropWavelengthMin=self._wavelengthMin, **(focuspos))
+                                                     CropWavelengthMin=self._wavelengthMin,
+                                                     CropWavelengthMax=self._wavelengthMax, **(focuspos))
 
 
                     # strip peaks
@@ -705,7 +714,7 @@ class SNSPowderReduction(DataProcessorAlgorithm):
                     PreserveEvents=preserveEvents,\
                     RemovePromptPulseWidth=self._removePromptPulseWidth, CompressTolerance=self.COMPRESS_TOL_TOF,\
                     UnwrapRef=self._LRef, LowResRef=self._DIFCref, LowResSpectrumOffset=self._lowResTOFoffset,\
-                    CropWavelengthMin=self._wavelengthMin, **(focuspos))
+                    CropWavelengthMin=self._wavelengthMin, CropWavelengthMax=self._wavelengthMax, **(focuspos))
                 for iws in xrange(temp.getNumberHistograms()):
                     spec = temp.getSpectrum(iws)
                     self.log().debug("[DBx131] ws %d: spectrum ID = %d. " % (iws, spec.getSpectrumNo()))
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/Symmetrise.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/Symmetrise.py
index faf41e24e126819c8db56aa5df911808b798e2ea..b45751560f1312a125f0b88ad57ff70a9f255cb0 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/Symmetrise.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/Symmetrise.py
@@ -1,11 +1,10 @@
 #pylint: disable=no-init,invalid-name
 from mantid import logger, mtd
-from mantid.api import PythonAlgorithm, AlgorithmFactory, MatrixWorkspaceProperty, \
-                       ITableWorkspaceProperty, PropertyMode
+from mantid.api import (PythonAlgorithm, AlgorithmFactory, MatrixWorkspaceProperty,
+                        ITableWorkspaceProperty, PropertyMode, WorkspaceFactory)
 from mantid.kernel import Direction, IntArrayProperty
 import mantid.simpleapi as ms
 import math
-import os.path
 import numpy as np
 
 #pylint: disable=too-many-instance-attributes
@@ -14,8 +13,6 @@ class Symmetrise(PythonAlgorithm):
     _sample = None
     _x_min = None
     _x_max = None
-    _plot = None
-    _save = None
     _spectra_range = None
     _output_workspace = None
     _props_output_workspace = None
@@ -32,7 +29,7 @@ class Symmetrise(PythonAlgorithm):
 
 
     def PyInit(self):
-        self.declareProperty(MatrixWorkspaceProperty('Sample', '', Direction.Input),
+        self.declareProperty(MatrixWorkspaceProperty('InputWorkspace', '', Direction.Input),
                              doc='Sample to run with')
 
         self.declareProperty(IntArrayProperty(name='SpectraRange'),
@@ -41,11 +38,6 @@ class Symmetrise(PythonAlgorithm):
         self.declareProperty('XMin', 0.0, doc='X value marking lower limit of curve to copy')
         self.declareProperty('XMax', 0.0, doc='X value marking upper limit of curve to copy')
 
-        self.declareProperty('Plot', defaultValue=False,
-                             doc='Switch plotting Off/On')
-        self.declareProperty('Save', defaultValue=False,
-                             doc='Switch saving result to nxs file Off/On')
-
         self.declareProperty(MatrixWorkspaceProperty('OutputWorkspace', '',\
                              Direction.Output), doc='Name to call the output workspace.')
 
@@ -56,18 +48,25 @@ class Symmetrise(PythonAlgorithm):
     #pylint: disable=too-many-locals
     def PyExec(self):
         self._setup()
-        temp_ws_name = '__symm_temp'
 
-        # The number of spectra that will actually be changed
-        num_symm_spectra = self._spectra_range[1] - self._spectra_range[0] + 1
+        input_ws = mtd[self._sample]
+
+        min_spectrum_index = input_ws.getIndexFromSpectrumNumber(int(self._spectra_range[0]))
+        max_spectrum_index = input_ws.getIndexFromSpectrumNumber(int(self._spectra_range[1]))
+
+        # Crop to the required spectra range
+        cropped_input = ms.CropWorkspace(InputWorkspace=input_ws,
+                                         OutputWorkspace='__symm',
+                                         StartWorkspaceIndex=min_spectrum_index,
+                                         EndWorkspaceIndex=max_spectrum_index)
 
         # Find the smallest data array in the first spectra
-        len_x = len(mtd[self._sample].readX(0))
-        len_y = len(mtd[self._sample].readY(0))
-        len_e = len(mtd[self._sample].readE(0))
+        len_x = len(cropped_input.readX(0))
+        len_y = len(cropped_input.readY(0))
+        len_e = len(cropped_input.readE(0))
         sample_array_len = min(len_x, len_y, len_e)
 
-        sample_x = mtd[self._sample].readX(0)
+        sample_x = cropped_input.readX(0)
 
         # Get slice bounds of array
         try:
@@ -95,37 +94,16 @@ class Symmetrise(PythonAlgorithm):
         logger.information('New array length = %d' % new_array_len)
         logger.information('Output array LR split index = %d' % output_cut_index)
 
-        x_unit = mtd[self._sample].getAxis(0).getUnit().unitID()
-        v_unit = mtd[self._sample].getAxis(1).getUnit().unitID()
-        v_axis_data = mtd[self._sample].getAxis(1).extractValues()
-
-        # Take the values we need from the original vertical axis
-        min_spectrum_index = mtd[self._sample].getIndexFromSpectrumNumber(int(self._spectra_range[0]))
-        max_spectrum_index = mtd[self._sample].getIndexFromSpectrumNumber(int(self._spectra_range[1]))
-        new_v_axis_data = v_axis_data[min_spectrum_index:max_spectrum_index + 1]
-
         # Create an empty workspace with enough storage for the new data
-        zeros = np.zeros(new_array_len * num_symm_spectra)
-        ms.CreateWorkspace(OutputWorkspace=temp_ws_name,
-                           DataX=zeros, DataY=zeros, DataE=zeros,
-                           NSpec=int(num_symm_spectra),
-                           VerticalAxisUnit=v_unit, VerticalAxisValues=new_v_axis_data,
-                           UnitX=x_unit)
-
-        # Copy logs and properties from sample workspace
-        ms.CopyLogs(InputWorkspace=self._sample, OutputWorkspace=temp_ws_name)
-        ms.CopyInstrumentParameters(InputWorkspace=self._sample, OutputWorkspace=temp_ws_name)
+        out_ws = WorkspaceFactory.Instance().create(cropped_input, cropped_input.getNumberHistograms(),
+                                                    int(new_array_len), int(new_array_len))
 
         # For each spectrum copy positive values to the negative
-        output_spectrum_index = 0
-        for spectrum_no in range(self._spectra_range[0], self._spectra_range[1] + 1):
-            # Get index of original spectra
-            spectrum_index = mtd[self._sample].getIndexFromSpectrumNumber(spectrum_no)
-
+        for idx in range(out_ws.getNumberHistograms()):
             # Strip any additional array cells
-            x_in = mtd[self._sample].readX(spectrum_index)[:sample_array_len]
-            y_in = mtd[self._sample].readY(spectrum_index)[:sample_array_len]
-            e_in = mtd[self._sample].readE(spectrum_index)[:sample_array_len]
+            x_in = cropped_input.readX(idx)[:sample_array_len]
+            y_in = cropped_input.readY(idx)[:sample_array_len]
+            e_in = cropped_input.readE(idx)[:sample_array_len]
 
             # Get some zeroed data to overwrite with copies from sample
             x_out = np.zeros(new_array_len)
@@ -143,28 +121,18 @@ class Symmetrise(PythonAlgorithm):
             e_out[output_cut_index:] = e_in[self._negative_min_index:self._positive_max_index]
 
             # Set output spectrum data
-            mtd[temp_ws_name].setX(output_spectrum_index, x_out)
-            mtd[temp_ws_name].setY(output_spectrum_index, y_out)
-            mtd[temp_ws_name].setE(output_spectrum_index, e_out)
-
-            # Set output spectrum number
-            mtd[temp_ws_name].getSpectrum(output_spectrum_index).setSpectrumNo(spectrum_no)
-            output_spectrum_index += 1
-
-            logger.information('Symmetrise spectrum %d' % spectrum_no)
+            out_ws.setX(idx, x_out)
+            out_ws.setY(idx, y_out)
+            out_ws.setE(idx, e_out)
 
-        ms.RenameWorkspace(InputWorkspace=temp_ws_name, OutputWorkspace=self._output_workspace)
+            logger.information('Symmetrise spectrum %d' % idx)
 
-        if self._save:
-            self._save_output()
-
-        if self._plot:
-            self._plot_output()
+        ms.DeleteWorkspace(cropped_input)
 
         if self._props_output_workspace != '':
             self._generate_props_table()
 
-        self.setProperty('OutputWorkspace', self._output_workspace)
+        self.setProperty('OutputWorkspace', out_ws)
 
 
     def validateInputs(self):
@@ -174,7 +142,7 @@ class Symmetrise(PythonAlgorithm):
         from IndirectCommon import CheckHistZero
         issues = dict()
 
-        input_workspace_name = self.getPropertyValue('Sample')
+        input_workspace_name = self.getPropertyValue('InputWorkspace')
 
         # Validate spectra range
         spectra_range = self.getProperty('SpectraRange').value
@@ -235,14 +203,11 @@ class Symmetrise(PythonAlgorithm):
         """
         from IndirectCommon import CheckHistZero
 
-        self._sample = self.getPropertyValue('Sample')
+        self._sample = self.getPropertyValue('InputWorkspace')
 
         self._x_min = math.fabs(self.getProperty('XMin').value)
         self._x_max = math.fabs(self.getProperty('XMax').value)
 
-        self._plot = self.getProperty('Plot').value
-        self._save = self.getProperty('Save').value
-
         self._spectra_range = self.getProperty('SpectraRange').value
         # If the user did not enter a spectra range, use the spectra range of the workspace
         if len(self._spectra_range) == 0:
@@ -313,28 +278,5 @@ class Symmetrise(PythonAlgorithm):
         self.setProperty('OutputPropertiesTable', self._props_output_workspace)
 
 
-    def _save_output(self):
-        """
-        Save the output workspace to the user's default working directory
-        """
-        from IndirectCommon import getDefaultWorkingDirectory
-        workdir = getDefaultWorkingDirectory()
-        file_path = os.path.join(workdir, self._output_workspace + '.nxs')
-        ms.SaveNexusProcessed(InputWorkspace=self._output_workspace,
-                              Filename=file_path)
-
-        logger.information('Output file : ' + file_path)
-
-
-    def _plot_output(self):
-        """
-        Plot the first spectrum of the input and output workspace together.
-        """
-        from IndirectImport import import_mantidplot
-        mtd_plot = import_mantidplot()
-
-        mtd_plot.plotSpectrum([self._sample, self._output_workspace], 0)
-
-
 # Register algorithm with Mantid
 AlgorithmFactory.subscribe(Symmetrise)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/AddSampleLogMultiple.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/AddSampleLogMultiple.py
index 181f645ca825577de0a02e7540e11838493e5fc7..9695bea07ae335e3cdef9886cc30cd810b0cf1cf 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/AddSampleLogMultiple.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/AddSampleLogMultiple.py
@@ -24,6 +24,9 @@ class AddSampleLogMultiple(PythonAlgorithm):
         self.declareProperty(StringArrayProperty('LogValues', ''),
                              doc='Comma separated list of log values')
 
+        self.declareProperty(StringArrayProperty('LogUnits', ''),
+                             doc='Comma separated list of log units')
+
         self.declareProperty('ParseType', True,
                              doc='Determine the value type by parsing the string')
 
@@ -32,12 +35,17 @@ class AddSampleLogMultiple(PythonAlgorithm):
         workspace = self.getPropertyValue('Workspace')
         log_names = self.getProperty('LogNames').value
         log_values = self.getProperty('LogValues').value
+        log_units = self.getProperty('LogUnits').value
         parse_type = self.getProperty('ParseType').value
 
+        if len(log_units) == 0:
+            log_units = [""]*len(log_names)
+
         for idx in range(0, len(log_names)):
-            # Get the name and value
+            # Get the name, value, and unit
             name = log_names[idx]
             value = log_values[idx]
+            unit = log_units[idx]
 
             # Try to get the correct type
             value_type = 'String'
@@ -57,6 +65,7 @@ class AddSampleLogMultiple(PythonAlgorithm):
             alg.setProperty('LogType', value_type)
             alg.setProperty('LogName', name)
             alg.setProperty('LogText', value)
+            alg.setProperty('LogUnit', unit)
             alg.execute()
 
 
@@ -65,9 +74,11 @@ class AddSampleLogMultiple(PythonAlgorithm):
 
         log_names = self.getProperty('LogNames').value
         log_values = self.getProperty('LogValues').value
+        log_units = self.getProperty('LogUnits').value
 
         num_names = len(log_names)
         num_values = len(log_values)
+        num_units = len(log_units)
 
         # Ensure there is at leats 1 log name
         if num_names == 0:
@@ -80,6 +91,9 @@ class AddSampleLogMultiple(PythonAlgorithm):
         if num_names > 0 and num_values > 0 and num_names != num_values:
             issues['LogValues'] = 'Number of log values must match number of log names'
 
+        if num_names > 0 and num_units != 0 and num_units != num_names:
+            issues['LogUnits'] = 'Number of log units must be 0 or match the number of log names'
+
         return issues
 
 
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ElasticWindowMultiple.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ElasticWindowMultiple.py
index 918abd99d95b19c7b6bd7e82b3ba080c29cad760..6dad626d2e4b59868a087603f13ac5cc20e28276 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ElasticWindowMultiple.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ElasticWindowMultiple.py
@@ -37,6 +37,7 @@ class ElasticWindowMultiple(DataProcessorAlgorithm):
     _background_range_end = None
     _mtd_plot = None
 
+
     def category(self):
         return 'Workflow\\Inelastic;PythonAlgorithms;Inelastic'
 
@@ -49,11 +50,15 @@ class ElasticWindowMultiple(DataProcessorAlgorithm):
         self.declareProperty(WorkspaceGroupProperty('InputWorkspaces', '', Direction.Input),
                              doc='Grouped input workspaces')
 
-        self.declareProperty(name='IntegrationRangeStart', defaultValue=0.0, doc='Range 1 start')
-        self.declareProperty(name='IntegrationRangeEnd', defaultValue=0.0, doc='Range 1 end')
+        self.declareProperty(name='IntegrationRangeStart', defaultValue=0.0,
+                             doc='Start of integration range in time of flight')
+        self.declareProperty(name='IntegrationRangeEnd', defaultValue=0.0,
+                             doc='End of integration range in time of flight')
 
-        self.declareProperty(name='BackgroundRangeStart', defaultValue='', doc='Range 2 start')
-        self.declareProperty(name='BackgroundRangeEnd', defaultValue='', doc='Range 2 end')
+        self.declareProperty(name='BackgroundRangeStart', defaultValue=Property.EMPTY_DBL,
+                             doc='Start of background range in time of flight')
+        self.declareProperty(name='BackgroundRangeEnd', defaultValue=Property.EMPTY_DBL,
+                             doc='End of background range in time of flight')
 
         self.declareProperty(name='SampleEnvironmentLogName', defaultValue='sample',
                              doc='Name of the sample environment log entry')
@@ -83,27 +88,15 @@ class ElasticWindowMultiple(DataProcessorAlgorithm):
     def validateInputs(self):
         issues = dict()
 
-        background_range_start = self.getPropertyValue('BackgroundRangeStart')
-        background_range_end = self.getPropertyValue('BackgroundRangeEnd')
+        background_range_start = self.getProperty('BackgroundRangeStart').value
+        background_range_end = self.getProperty('BackgroundRangeEnd').value
 
-        if background_range_start != '' and background_range_end == '':
+        if background_range_start != Property.EMPTY_DBL and background_range_end == Property.EMPTY_DBL:
             issues['BackgroundRangeEnd'] = 'If background range start was given and background range end must also be provided.'
 
-        if background_range_start == '' and background_range_end != '':
+        if background_range_start == Property.EMPTY_DBL and background_range_end != Property.EMPTY_DBL:
             issues['BackgroundRangeStart'] = 'If background range end was given and background range start must also be provided.'
 
-        if background_range_start != '':
-            try:
-                _ = float(background_range_start)
-            except ValueError:
-                issues['BackgroundRangeStart'] = 'Background range start is not a double number'
-
-        if background_range_end != '':
-            try:
-                _ = float(background_range_end)
-            except ValueError:
-                issues['BackgroundRangeEnd'] = 'Background range end is not a double number'
-
         return issues
 
 
@@ -132,14 +125,14 @@ class ElasticWindowMultiple(DataProcessorAlgorithm):
             q_ws = '__' + input_ws + '_q'
             q2_ws = '__' + input_ws + '_q2'
 
-            if self._background_range_start != '' and self._background_range_end != '':
+            if self._background_range_start != Property.EMPTY_DBL and self._background_range_end != Property.EMPTY_DBL:
                 ElasticWindow(InputWorkspace=input_ws,
                               OutputInQ=q_ws,
                               OutputInQSquared=q2_ws,
                               IntegrationRangeStart=self._integration_range_start,
                               IntegrationRangeEnd=self._integration_range_end,
-                              BackgroundRangeStart=float(self._background_range_start),
-                              BackgroundRangeEnd=float(self._background_range_end))
+                              BackgroundRangeStart=self._background_range_start,
+                              BackgroundRangeEnd=self._background_range_end)
             else:
                 ElasticWindow(InputWorkspace=input_ws,
                               OutputInQ=q_ws,
@@ -209,10 +202,11 @@ class ElasticWindowMultiple(DataProcessorAlgorithm):
             logger.notice('Vertical axis is in run number')
             unit = ('Run No', 'last 3 digits')
 
-        q_ws_axis = mtd[self._q_workspace].getAxis(1)
+        # Create a new vertical axis for the Q and Q**2 workspaces
+        q_ws_axis = NumericAxis.create(len(input_workspace_names))
         q_ws_axis.setUnit("Label").setLabel(unit[0], unit[1])
 
-        q2_ws_axis = mtd[self._q2_workspace].getAxis(1)
+        q2_ws_axis = NumericAxis.create(len(input_workspace_names))
         q2_ws_axis.setUnit("Label").setLabel(unit[0], unit[1])
 
         # Set the vertical axis values
@@ -224,6 +218,10 @@ class ElasticWindowMultiple(DataProcessorAlgorithm):
                 q_ws_axis.setValue(idx, float(run_numbers[idx][-3:]))
                 q2_ws_axis.setValue(idx, float(run_numbers[idx][-3:]))
 
+        # Add the new vertical axis to each workspace
+        mtd[self._q_workspace].replaceAxis(1, q_ws_axis)
+        mtd[self._q2_workspace].replaceAxis(1, q2_ws_axis)
+
         # Process the ELF workspace
         if self._elf_workspace != '':
             logger.information('Creating ELF workspace')
@@ -290,8 +288,8 @@ class ElasticWindowMultiple(DataProcessorAlgorithm):
         self._integration_range_start = self.getProperty('IntegrationRangeStart').value
         self._integration_range_end = self.getProperty('IntegrationRangeEnd').value
 
-        self._background_range_start = self.getPropertyValue('BackgroundRangeStart')
-        self._background_range_end = self.getPropertyValue('BackgroundRangeEnd')
+        self._background_range_start = self.getProperty('BackgroundRangeStart').value
+        self._background_range_end = self.getProperty('BackgroundRangeEnd').value
 
 
     def _plot_spectra(self, ws_name):
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/FlatPlatePaalmanPingsCorrection.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/FlatPlatePaalmanPingsCorrection.py
index 6f8c556ffc539b41ccac0c481be1b3a68b67b31e..ec2a60cbc64c61da1008751206ec520146ebc7f0 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/FlatPlatePaalmanPingsCorrection.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/FlatPlatePaalmanPingsCorrection.py
@@ -29,6 +29,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
     _elastic = 0.0
     _interpolate=None
 
+#------------------------------------------------------------------------------
 
     def category(self):
         return "Workflow\\MIDAS;PythonAlgorithms;CorrectionFunctions\\AbsorptionCorrections"
@@ -37,6 +38,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
     def summary(self):
         return "Calculates absorption corrections for a flat plate sample using Paalman & Pings format."
 
+#------------------------------------------------------------------------------
 
     def PyInit(self):
         ws_validator = CompositeValidator([WorkspaceUnitValidator('Wavelength'), InstrumentValidator()])
@@ -93,6 +95,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
                                                     direction=Direction.Output),
                              doc='The output corrections workspace group')
 
+#------------------------------------------------------------------------------
 
     def validateInputs(self):
         issues = dict()
@@ -108,18 +111,21 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
 
         return issues
 
+#------------------------------------------------------------------------------
 
     def PyExec(self):
         self._setup()
         self._wave_range()
 
         # Set sample material form chemical formula
-        SetSampleMaterial(self._sample_ws_name , ChemicalFormula=self._sample_chemical_formula,
+        SetSampleMaterial(InputWorkspace=self._sample_ws_name,
+                          ChemicalFormula=self._sample_chemical_formula,
                           SampleNumberDensity=self._sample_number_density)
 
         # If using a can, set sample material using chemical formula
         if self._use_can:
-            SetSampleMaterial(InputWorkspace=self._can_ws_name, ChemicalFormula=self._can_chemical_formula,
+            SetSampleMaterial(InputWorkspace=self._can_ws_name,
+                              ChemicalFormula=self._can_chemical_formula,
                               SampleNumberDensity=self._can_number_density)
 
         # Holders for the corrected data
@@ -148,9 +154,13 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
 
         # Create the output workspaces
         ass_ws = self._output_ws_name + '_ass'
-        CreateWorkspace(OutputWorkspace=ass_ws, DataX=dataX, DataY=data_ass,
-                        NSpec=num_angles, UnitX='Wavelength',
-                        VerticalAxisUnit='SpectraNumber')
+        CreateWorkspace(OutputWorkspace=ass_ws,
+                        DataX=dataX,
+                        DataY=data_ass,
+                        NSpec=num_angles,
+                        UnitX='Wavelength',
+                        VerticalAxisUnit='SpectraNumber',
+                        ParentWorkspace=self._sample_ws_name)
         self._add_sample_logs(ass_ws, sample_logs)
 
         workspaces = [ass_ws]
@@ -160,39 +170,47 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
 
             assc_ws = self._output_ws_name + '_assc'
             workspaces.append(assc_ws)
-            CreateWorkspace(OutputWorkspace=assc_ws, DataX=dataX, DataY=data_assc,
-                            NSpec=num_angles, UnitX='Wavelength',
-                            VerticalAxisUnit='SpectraNumber')
+            CreateWorkspace(OutputWorkspace=assc_ws,
+                            DataX=dataX,
+                            DataY=data_assc,
+                            NSpec=num_angles,
+                            UnitX='Wavelength',
+                            VerticalAxisUnit='SpectraNumber',
+                            ParentWorkspace=self._sample_ws_name)
             self._add_sample_logs(assc_ws, sample_logs)
             AddSampleLog(Workspace=assc_ws, LogName='can_filename', LogType='String', LogText=str(self._can_ws_name))
 
             acsc_ws = self._output_ws_name + '_acsc'
             workspaces.append(acsc_ws)
-            CreateWorkspace(OutputWorkspace=acsc_ws, DataX=dataX, DataY=data_acsc,
-                            NSpec=num_angles, UnitX='Wavelength',
-                            VerticalAxisUnit='SpectraNumber')
+            CreateWorkspace(OutputWorkspace=acsc_ws,
+                            DataX=dataX,
+                            DataY=data_acsc,
+                            NSpec=num_angles,
+                            UnitX='Wavelength',
+                            VerticalAxisUnit='SpectraNumber',
+                            ParentWorkspace=self._sample_ws_name)
             self._add_sample_logs(acsc_ws, sample_logs)
             AddSampleLog(Workspace=acsc_ws, LogName='can_filename', LogType='String', LogText=str(self._can_ws_name))
 
             acc_ws = self._output_ws_name + '_acc'
             workspaces.append(acc_ws)
-            CreateWorkspace(OutputWorkspace=acc_ws, DataX=dataX, DataY=data_acc,
-                            NSpec=num_angles, UnitX='Wavelength',
-                            VerticalAxisUnit='SpectraNumber')
+            CreateWorkspace(OutputWorkspace=acc_ws,
+                            DataX=dataX,
+                            DataY=data_acc,
+                            NSpec=num_angles,
+                            UnitX='Wavelength',
+                            VerticalAxisUnit='SpectraNumber',
+                            ParentWorkspace=self._sample_ws_name)
             self._add_sample_logs(acc_ws, sample_logs)
             AddSampleLog(Workspace=acc_ws, LogName='can_filename', LogType='String', LogText=str(self._can_ws_name))
 
         if self._interpolate:
             self._interpolate_corrections(workspaces)
 
-        try:
-            self. _copy_detector_table(workspaces)
-        except RuntimeError:
-            logger.warning('Cannot copy spectra mapping. Check input workspace instrument.')
-
         GroupWorkspaces(InputWorkspaces=','.join(workspaces), OutputWorkspace=self._output_ws_name)
         self.setPropertyValue('OutputWorkspace', self._output_ws_name)
 
+#------------------------------------------------------------------------------
 
     def _setup(self):
         self._sample_ws_name = self.getPropertyValue('SampleWorkspace')
@@ -217,6 +235,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
 
         self._output_ws_name = self.getPropertyValue('OutputWorkspace')
 
+#------------------------------------------------------------------------------
 
     def _get_angles(self):
         num_hist = mtd[self._sample_ws_name].getNumberHistograms()
@@ -229,6 +248,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
             two_theta = detector.getTwoTheta(sample_pos, beam_pos) * 180.0 / math.pi  # calc angle
             self._angles.append(two_theta)
 
+#------------------------------------------------------------------------------
 
     def _wave_range(self):
         wave_range = '__WaveRange'
@@ -251,6 +271,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
         logger.information('Elastic lambda %f' % self._elastic)
         DeleteWorkspace(wave_range)
 
+#------------------------------------------------------------------------------
 
     def _interpolate_corrections(self, workspaces):
         """
@@ -266,24 +287,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
                                 OutputWorkspace=ws,
                                 OutputWorkspaceDeriv='')
 
-
-    def _copy_detector_table(self, workspaces):
-        """
-        Copy the detector table from the sample workspaces to the correction workspaces.
-
-        @param workspaces List of correction workspaces
-        """
-
-        instrument = mtd[self._sample_ws_name].getInstrument().getName()
-
-        for ws in workspaces:
-            LoadInstrument(Workspace=ws,
-                           InstrumentName=instrument)
-
-            CopyDetectorMapping(WorkspaceToMatch=self._sample_ws_name,
-                                WorkspaceToRemap=ws,
-                                IndexBySpectrumNumber=True)
-
+#------------------------------------------------------------------------------
 
     def _add_sample_logs(self, ws, sample_logs):
         """
@@ -305,6 +309,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
 
             AddSampleLog(Workspace=ws, LogName=key, LogType=log_type, LogText=str(value))
 
+#------------------------------------------------------------------------------
 
     def _flat_abs(self, angle):
         """
@@ -369,6 +374,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
 
         return ass, assc, acsc, acc
 
+#------------------------------------------------------------------------------
 
     def _fact(self, x_section, thickness, sec1, sec2):
         S = x_section * thickness * (sec1 - sec2)
@@ -380,6 +386,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
             F = thickness*S
         return F
 
+#------------------------------------------------------------------------------
 
     def _calc_thickness_at_x_sect(self, x_section, thickness, sec):
         sec1, sec2 = sec
@@ -389,6 +396,8 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
 
         return thick_sec_1, thick_sec_2
 
+#------------------------------------------------------------------------------
+
     #pylint: disable=too-many-arguments
     def _calculate_can(self, ass, can_x_section, sample_sect_1, sample_sect_2, sec):
         """
@@ -436,6 +445,7 @@ class FlatPlatePaalmanPingsCorrection(PythonAlgorithm):
 
         return assc, acsc, acc
 
+#------------------------------------------------------------------------------
 
 # Register algorithm with Mantid
 AlgorithmFactory.subscribe(FlatPlatePaalmanPingsCorrection)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectDiffractionReduction.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectDiffractionReduction.py
index f5146bd436a791d7836a70b464df4c8329aa2692..a55c7650016ddb0d1ee75db5a11bb435493e2cae 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectDiffractionReduction.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectDiffractionReduction.py
@@ -14,6 +14,10 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
     _chopped_data = None
     _output_ws = None
     _data_files = None
+    _container_workspace = None
+    _container_data_files = None
+    _container_scale_factor = None
+    _load_logs = None
     _instrument_name = None
     _mode = None
     _spectra_range = None
@@ -22,6 +26,7 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
     _ipf_filename = None
     _sum_files = None
 
+#------------------------------------------------------------------------------
 
     def category(self):
         return 'Diffraction;PythonAlgorithms'
@@ -30,14 +35,24 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
     def summary(self):
         return 'Performs a diffraction reduction for a set of raw run files for an ISIS indirect spectrometer'
 
+#------------------------------------------------------------------------------
 
     def PyInit(self):
         self.declareProperty(StringArrayProperty(name='InputFiles'),
                              doc='Comma separated list of input files.')
 
+        self.declareProperty(StringArrayProperty(name='ContainerFiles'),
+                             doc='Comma separated list of input files for the empty contianer runs.')
+
+        self.declareProperty('ContainerScaleFactor', 1.0,
+                             doc='Factor by which to scale the container runs.')
+
         self.declareProperty(name='SumFiles', defaultValue=False,
                              doc='Enabled to sum spectra from each input file.')
 
+        self.declareProperty(name='LoadLogFiles', defaultValue=True,
+                             doc='Load log files when loading runs')
+
         self.declareProperty(name='Instrument', defaultValue='IRIS',
                              validator=StringListValidator(['IRIS', 'OSIRIS', 'TOSCA', 'VESUVIO']),
                              doc='Instrument used for run')
@@ -60,6 +75,7 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
                              direction=Direction.Output),
                              doc='Group name for the result workspaces.')
 
+#------------------------------------------------------------------------------
 
     def validateInputs(self):
         """
@@ -82,6 +98,7 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
 
         return issues
 
+#------------------------------------------------------------------------------
 
     def PyExec(self):
         from IndirectReductionCommon import (load_files,
@@ -106,8 +123,27 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
                                                               self._ipf_filename,
                                                               self._spectra_range[0],
                                                               self._spectra_range[1],
-                                                              self._sum_files,
-                                                              load_opts)
+                                                              sum_files=self._sum_files,
+                                                              load_logs=self._load_logs,
+                                                              load_opts=load_opts)
+
+        # Load container if run is given
+        if self._container_data_files is not None:
+            self._container_workspace, _ = load_files(self._container_data_files,
+                                                      self._ipf_filename,
+                                                      self._spectra_range[0],
+                                                      self._spectra_range[1],
+                                                      sum_files=True,
+                                                      load_logs=self._load_logs,
+                                                      load_opts=load_opts)
+            self._container_workspace = self._container_workspace[0]
+
+            # Scale container if factor is given
+            if self._container_scale_factor != 1.0:
+                Scale(InputWorkspace=self._container_workspace,
+                      OutputWorkspace=self._container_workspace,
+                      Factor=self._container_scale_factor,
+                      Operation='Multiply')
 
         for c_ws_name in self._workspace_names:
             is_multi_frame = isinstance(mtd[c_ws_name], WorkspaceGroup)
@@ -126,6 +162,12 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
 
             # Process workspaces
             for ws_name in workspaces:
+                # Subtract empty container if there is one
+                if self._container_workspace is not None:
+                    Minus(LHSWorkspace=ws_name,
+                          RHSWorkspace=self._container_workspace,
+                          OutputWorkspace=ws_name)
+
                 monitor_ws_name = ws_name + '_mon'
 
                 # Process monitor
@@ -164,6 +206,11 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
             if is_multi_frame:
                 fold_chopped(c_ws_name)
 
+        # Remove the container workspaces
+        if self._container_workspace is not None:
+            DeleteWorkspace(self._container_workspace)
+            DeleteWorkspace(self._container_workspace + '_mon')
+
         # Rename output workspaces
         output_workspace_names = [rename_reduction(ws_name, self._sum_files) for ws_name in self._workspace_names]
 
@@ -173,6 +220,7 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
 
         self.setProperty('OutputWorkspace', self._output_ws)
 
+#------------------------------------------------------------------------------
 
     def _setup(self):
         """
@@ -181,6 +229,9 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
 
         self._output_ws = self.getPropertyValue('OutputWorkspace')
         self._data_files = self.getProperty('InputFiles').value
+        self._container_data_files = self.getProperty('ContainerFiles').value
+        self._container_scale_factor = self.getProperty('ContainerScaleFactor').value
+        self._load_logs = self.getProperty('LoadLogFiles').value
         self._instrument_name = self.getPropertyValue('Instrument')
         self._mode = self.getPropertyValue('Mode')
         self._spectra_range = self.getProperty('SpectraRange').value
@@ -190,6 +241,10 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
         if self._rebin_string == '':
             self._rebin_string = None
 
+        self._container_workspace = None
+        if len(self._container_data_files) == 0:
+            self._container_data_files = None
+
         # Get the IPF filename
         self._ipf_filename = self._instrument_name + '_diffraction_' + self._mode + '_Parameters.xml'
         if not os.path.exists(self._ipf_filename):
@@ -208,5 +263,6 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
             else:
                 logger.information('SumFiles options is ignored when only one file is provided')
 
+#------------------------------------------------------------------------------
 
 AlgorithmFactory.subscribe(ISISIndirectDiffractionReduction)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectEnergyTransfer.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectEnergyTransfer.py
index 1524e3aa7b9efc76cb4b1ce462fc4b19f715cc12..d3ea3fb88063236b71f1958991a3047c97ee53fa 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectEnergyTransfer.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectEnergyTransfer.py
@@ -8,7 +8,7 @@ import os
 
 
 _str_or_none = lambda s: s if s != '' else None
-_float_or_none = lambda i: float(i) if i != '' else None
+_ws_or_none = lambda s: mtd[s] if s != '' else None
 _elems_or_none = lambda l: l if len(l) != 0 else None
 
 
@@ -27,9 +27,15 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
         self.declareProperty(StringArrayProperty(name='InputFiles'),
                              doc='Comma separated list of input files')
 
-        self.declareProperty(name='SumFiles', defaultValue=False, doc='Toggle input file summing or sequential processing')
+        self.declareProperty(name='SumFiles', defaultValue=False,
+                             doc='Toggle input file summing or sequential processing')
 
-        self.declareProperty(WorkspaceProperty('CalibrationWorkspace', '', direction=Direction.Input, optional=PropertyMode.Optional),
+        self.declareProperty(name='LoadLogFiles', defaultValue=True,
+                             doc='Load log files when loading runs')
+
+        self.declareProperty(WorkspaceProperty('CalibrationWorkspace', '',
+                                               direction=Direction.Input,
+                                               optional=PropertyMode.Optional),
                              doc='Workspace contining calibration data')
 
         # Instrument configuration properties
@@ -40,12 +46,14 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
         self.declareProperty(name='Reflection', defaultValue='', doc='Reflection number for instrument setup during run.',
                              validator=StringListValidator(['002', '004', '006']))
 
-        self.declareProperty(IntArrayProperty(name='SpectraRange', values=[0, 1], validator=IntArrayMandatoryValidator()),
+        self.declareProperty(IntArrayProperty(name='SpectraRange', values=[0, 1],
+                                              validator=IntArrayMandatoryValidator()),
                              doc='Comma separated range of spectra number to use.')
         self.declareProperty(FloatArrayProperty(name='BackgroundRange'),
                              doc='Range of background to subtact from raw data in time of flight.')
         self.declareProperty(name='RebinString', defaultValue='', doc='Rebin string parameters.')
-        self.declareProperty(name='DetailedBalance', defaultValue='', doc='')
+        self.declareProperty(name='DetailedBalance', defaultValue=Property.EMPTY_DBL,
+                             doc='')
         self.declareProperty(name='ScaleFactor', defaultValue=1.0, doc='Factor by which to scale result.')
         self.declareProperty(name='FoldMultipleFrames', defaultValue=True,
                              doc='Folds multiple framed data sets into a single workspace.')
@@ -54,7 +62,9 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
         self.declareProperty(name='GroupingMethod', defaultValue='IPF',
                              validator=StringListValidator(['Individual', 'All', 'File', 'Workspace', 'IPF']),
                              doc='Method used to group spectra.')
-        self.declareProperty(WorkspaceProperty('GroupingWorkspace', '', direction=Direction.Input, optional=PropertyMode.Optional),
+        self.declareProperty(WorkspaceProperty('GroupingWorkspace', '',
+                                               direction=Direction.Input,
+                                               optional=PropertyMode.Optional),
                              doc='Workspace containing spectra grouping.')
         self.declareProperty(FileProperty('MapFile', '', action=FileAction.OptionalLoad, extensions=['.map']),
                              doc='Workspace containing spectra grouping.')
@@ -66,10 +76,12 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
         self.declareProperty(name='Plot', defaultValue='None', doc='Type of plot to output after reduction.',
                              validator=StringListValidator(['None', 'Spectra', 'Contour', 'Both']))
 
-        self.declareProperty(WorkspaceGroupProperty('OutputWorkspace', '', direction=Direction.Output),
+        self.declareProperty(WorkspaceGroupProperty('OutputWorkspace', '',
+                                                    direction=Direction.Output),
                              doc='Workspace group for the resulting workspaces.')
 
 
+    #pylint: disable=too-many-locals
     def PyExec(self):
         from IndirectReductionCommon import (load_files,
                                              get_multi_frame_rebin,
@@ -90,7 +102,8 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
                                                               self._ipf_filename,
                                                               self._spectra_range[0],
                                                               self._spectra_range[1],
-                                                              self._sum_files)
+                                                              self._sum_files,
+                                                              self._load_logs)
 
         for c_ws_name in self._workspace_names:
             is_multi_frame = isinstance(mtd[c_ws_name], WorkspaceGroup)
@@ -133,6 +146,14 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
 
                 # Divide by the calibration workspace if one was provided
                 if self._calibration_ws is not None:
+                    index_min = self._calibration_ws.getIndexFromSpectrumNumber(int(self._spectra_range[0]))
+                    index_max = self._calibration_ws.getIndexFromSpectrumNumber(int(self._spectra_range[1]))
+
+                    CropWorkspace(InputWorkspace=self._calibration_ws,
+                                  OutputWorkspace=self._calibration_ws,
+                                  StartWorkspaceIndex=index_min,
+                                  EndWorkspaceIndex=index_max)
+
                     Divide(LHSWorkspace=ws_name,
                            RHSWorkspace=self._calibration_ws,
                            OutputWorkspace=ws_name)
@@ -159,9 +180,9 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
                                 num_bins)
 
                 # Detailed balance
-                if self._detailed_balance is not None:
+                if self._detailed_balance is not Property.EMPTY_DBL:
                     corr_factor = 11.606 / (2 * self._detailed_balance)
-                    ExponentialCorrection(InputWorkspaces=ws_name,
+                    ExponentialCorrection(InputWorkspace=ws_name,
                                           OutputWorkspace=ws_name,
                                           C0=1.0,
                                           C1=corr_factor,
@@ -176,10 +197,10 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
 
                 # Group spectra
                 group_spectra(ws_name,
-                              masked_detectors,
-                              self._grouping_method,
-                              self._grouping_map_file,
-                              self._grouping_ws)
+                              masked_detectors=masked_detectors,
+                              method=self._grouping_method,
+                              group_file=self._grouping_map_file,
+                              group_ws=self._grouping_ws)
 
             if self._fold_multiple_frames and is_multi_frame:
                 fold_chopped(c_ws_name)
@@ -249,7 +270,7 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
 
         # Validate grouping method
         grouping_method = self.getPropertyValue('GroupingMethod')
-        grouping_ws = _str_or_none(self.getPropertyValue('GroupingWorkspace'))
+        grouping_ws = _ws_or_none(self.getPropertyValue('GroupingWorkspace'))
 
         if grouping_method == 'Workspace' and grouping_ws is None:
             issues['GroupingWorkspace'] = 'Must select a grouping workspace for current GroupingWorkspace'
@@ -273,7 +294,8 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
         # Get properties
         self._data_files = self.getProperty('InputFiles').value
         self._sum_files = self.getProperty('SumFiles').value
-        self._calibration_ws = _str_or_none(self.getPropertyValue('CalibrationWorkspace'))
+        self._load_logs = self.getProperty('LoadLogFiles').value
+        self._calibration_ws = _ws_or_none(self.getPropertyValue('CalibrationWorkspace'))
 
         self._instrument_name = self.getPropertyValue('Instrument')
         self._analyser = self.getPropertyValue('Analyser')
@@ -282,12 +304,12 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
         self._spectra_range = self.getProperty('SpectraRange').value
         self._background_range = _elems_or_none(self.getProperty('BackgroundRange').value)
         self._rebin_string = _str_or_none(self.getPropertyValue('RebinString'))
-        self._detailed_balance = _float_or_none(self.getPropertyValue('DetailedBalance'))
+        self._detailed_balance = self.getProperty('DetailedBalance').value
         self._scale_factor = self.getProperty('ScaleFactor').value
         self._fold_multiple_frames = self.getProperty('FoldMultipleFrames').value
 
         self._grouping_method = self.getPropertyValue('GroupingMethod')
-        self._grouping_ws = _str_or_none(self.getPropertyValue('GroupingWorkspace'))
+        self._grouping_ws = _ws_or_none(self.getPropertyValue('GroupingWorkspace'))
         self._grouping_map_file = _str_or_none(self.getPropertyValue('MapFile'))
 
         self._output_x_units = self.getPropertyValue('UnitX')
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectCalibration.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectCalibration.py
index 7eced64d556ca9d8dd7054b87c286f31a6a52291..4e1ea169dba4c6a38c4321235a889715c81b9c97 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectCalibration.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectCalibration.py
@@ -14,7 +14,6 @@ class IndirectCalibration(DataProcessorAlgorithm):
     _back_range = None
     _spec_range = None
     _intensity_scale = None
-    _plot = None
     _run_numbers = None
 
 
@@ -48,9 +47,6 @@ class IndirectCalibration(DataProcessorAlgorithm):
         self.declareProperty(name='ScaleFactor', defaultValue=1.0,
                              doc='Factor by which to scale the result.')
 
-        self.declareProperty(name='Plot', defaultValue=False,
-                             doc='Plot the calibration data as a spectra plot.')
-
         self.declareProperty(WorkspaceProperty('OutputWorkspace', '',
                                                direction=Direction.Output),
                              doc='Output workspace for calibration data.')
@@ -88,11 +84,12 @@ class IndirectCalibration(DataProcessorAlgorithm):
 
 
     def PyExec(self):
+        from IndirectCommon import get_run_number
 
         self._setup()
 
         runs = []
-        self._run_numbers = list()
+        self._run_numbers = []
         for in_file in self._input_files:
             (_, filename) = os.path.split(in_file)
             (root, _) = os.path.splitext(filename)
@@ -104,6 +101,7 @@ class IndirectCalibration(DataProcessorAlgorithm):
                      LoadLogFiles=False)
 
                 runs.append(root)
+                self._run_numbers.append(get_run_number(root))
             except (RuntimeError,ValueError) as exc:
                 logger.error('Could not load raw file "%s": %s' % (in_file, str(exc)))
 
@@ -155,10 +153,6 @@ class IndirectCalibration(DataProcessorAlgorithm):
         self._add_logs()
         self.setProperty('OutputWorkspace', self._out_ws)
 
-        if self._plot:
-            from mantidplot import plotBin
-            plotBin(mtd[self._out_ws], 0)
-
 
     def _setup(self):
         """
@@ -176,8 +170,6 @@ class IndirectCalibration(DataProcessorAlgorithm):
         if self._intensity_scale == 1.0:
             self._intensity_scale = None
 
-        self._plot = self.getProperty('Plot').value
-
 
     def _add_logs(self):
         """
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectResolution.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectResolution.py
index 596ce4167d19b98fb564fb41c8f9f73735c79eeb..b4abec0897d753f1e8492267b0d7844bef8b2860 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectResolution.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectResolution.py
@@ -16,8 +16,6 @@ class IndirectResolution(DataProcessorAlgorithm):
     _background = None
     _rebin_string = None
     _scale_factor = None
-    _plot = None
-    _save = None
 
 
     def category(self):
@@ -53,20 +51,12 @@ class IndirectResolution(DataProcessorAlgorithm):
         self.declareProperty(name='ScaleFactor', defaultValue=1.0,
                              doc='Factor to scale resolution curve by')
 
-
-        self.declareProperty(name='Plot', defaultValue=False, doc='Plot resolution curve')
-        self.declareProperty(name='Save', defaultValue=False,
-                             doc='Save resolution workspace as a Nexus file')
-
         self.declareProperty(WorkspaceProperty('OutputWorkspace', '',
                                                direction=Direction.Output),
                              doc='Output resolution workspace.')
 
 
     def PyExec(self):
-
-        #from IndirectCommon import getWSprefix
-
         self._setup()
 
         ISISIndirectEnergyTransfer(Instrument=self._instrument,
@@ -117,9 +107,6 @@ class IndirectResolution(DataProcessorAlgorithm):
         self._rebin_string = self.getProperty('RebinParam').value
         self._scale_factor = self.getProperty('ScaleFactor').value
 
-        self._plot = self.getProperty('Plot').value
-        self._save = self.getProperty('Save').value
-
 
     def _post_process(self):
         """
@@ -144,13 +131,5 @@ class IndirectResolution(DataProcessorAlgorithm):
 
         self.setProperty('OutputWorkspace', self._out_ws)
 
-        if self._save:
-            SaveNexusProcessed(InputWorkspace=self._out_ws, Filename=self._out_ws + '.nxs')
-
-        if self._plot:
-            from IndirectImport import import_mantidplot
-            mtd_plot = import_mantidplot()
-            mtd_plot.plotSpectrum(self._out_ws, 0)
-
 
 AlgorithmFactory.subscribe(IndirectResolution)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectTransmissionMonitor.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectTransmissionMonitor.py
index 6962cb59db067f3f0afd069fe05ec24ade246282..863b4a6ff14793dd3ce70f619531752c542d9710 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectTransmissionMonitor.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectTransmissionMonitor.py
@@ -2,10 +2,8 @@
 from mantid.simpleapi import *
 from mantid.api import *
 from mantid.kernel import *
-from mantid import config, logger
-from IndirectImport import import_mantidplot
+from mantid import logger
 import numpy
-import os.path
 
 
 class IndirectTransmissionMonitor(PythonAlgorithm):
@@ -13,8 +11,6 @@ class IndirectTransmissionMonitor(PythonAlgorithm):
     _sample_ws_in = None
     _can_ws_in = None
     _out_ws = None
-    _plot = None
-    _save = None
 
 
     def category(self):
@@ -35,10 +31,6 @@ class IndirectTransmissionMonitor(PythonAlgorithm):
         self.declareProperty(WorkspaceProperty('OutputWorkspace', '', direction=Direction.Output),
                              doc='Output workspace group')
 
-        self.declareProperty(name='Plot', defaultValue=False,
-                             doc='Plot result workspace')
-        self.declareProperty(name='Save', defaultValue=False,
-                             doc='Save result workspace to nexus file in the default save directory')
 
     def PyExec(self):
         self._setup()
@@ -67,18 +59,6 @@ class IndirectTransmissionMonitor(PythonAlgorithm):
 
         self.setProperty('OutputWorkspace', self._out_ws)
 
-        # Save the tranmissin workspace group to a nexus file
-        if self._save:
-            workdir = config['defaultsave.directory']
-            path = os.path.join(workdir, self._out_ws + '.nxs')
-            SaveNexusProcessed(InputWorkspace=self._out_ws, Filename=path)
-            logger.information('Output file created : ' + path)
-
-        # Plot spectra from transmission workspace
-        if self._plot:
-            mtd_plot = import_mantidplot()
-            mtd_plot.plotSpectrum(self._out_ws, 0)
-
 
     def _setup(self):
         """
@@ -88,8 +68,6 @@ class IndirectTransmissionMonitor(PythonAlgorithm):
         self._sample_ws_in = self.getPropertyValue("SampleWorkspace")
         self._can_ws_in = self.getPropertyValue("CanWorkspace")
         self._out_ws = self.getPropertyValue('OutputWorkspace')
-        self._plot = self.getProperty("Plot").value
-        self._save = self.getProperty("Save").value
 
 
     def _get_spectra_index(self, input_ws):
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/JumpFit.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/JumpFit.py
deleted file mode 100644
index 7ca7ce33b813a9fce04953feda7e44684d1a69f6..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/JumpFit.py
+++ /dev/null
@@ -1,166 +0,0 @@
-#pylint: disable=no-init
-from mantid.kernel import *
-from mantid.api import *
-import os
-import mantid.simpleapi as ms
-
-#pylint: disable=too-many-instance-attributes
-class JumpFit(PythonAlgorithm):
-
-    _in_ws = None
-    _out_name = None
-    _jump_function = None
-    _width = None
-    _q_min = None
-    _q_max = None
-    _plot = None
-    _save = None
-
-
-    def category(self):
-        return 'Workflow\\Inelastic;PythonAlgorithms;Inelastic'
-
-
-    def PyInit(self):
-        self.declareProperty(WorkspaceProperty('InputWorkspace', '', direction=Direction.Input),\
-                doc='Input workspace in HWHM')
-
-        valid_functions = ['ChudleyElliot', 'HallRoss', 'FickDiffusion', 'TeixeiraWater']
-        self.declareProperty(name='Function', defaultValue=valid_functions[0],
-                             validator=StringListValidator(valid_functions),
-                             doc='The fit function to use')
-
-        self.declareProperty(name='Width', defaultValue=0, validator=IntMandatoryValidator(),\
-                doc='Spectrum in the workspace to use for fiting')
-
-        self.declareProperty(name='QMin', defaultValue=0.0, validator=FloatMandatoryValidator(),\
-                doc='Lower bound of Q range to use for fitting')
-        self.declareProperty(name='QMax', defaultValue=0.0, validator=FloatMandatoryValidator(),\
-                doc='Upper bound of Q range to use for fitting')
-
-        self.declareProperty(name='Output', defaultValue='', direction=Direction.InOut,\
-                doc='Output name')
-
-        self.declareProperty(name='Plot', defaultValue=False,\
-                doc='Plot result workspace')
-        self.declareProperty(name='Save', defaultValue=False,\
-                doc='Save result workspace to nexus file in the default save directory')
-
-
-    def PyExec(self):
-        self._setup()
-
-        # Select the width we wish to fit
-        spectrum_ws = "__" + self._in_ws
-        ms.ExtractSingleSpectrum(InputWorkspace=self._in_ws, OutputWorkspace=spectrum_ws,
-                                 WorkspaceIndex=self._width)
-
-        logger.information('Cropping from Q= ' + str(self._q_min) + ' to ' + str(self._q_max))
-        in_run = mtd[self._in_ws].getRun()
-        try:
-            log = in_run.getLogData('fit_program')
-            if log:
-                val = log.value
-                logger.notice('Fit program was : ' + val)
-        except RuntimeError:
-            # If we couldn't find the fit program, just pass
-            pass
-
-        logger.information('Parameters in ' + self._in_ws)
-
-        x_data = mtd[self._in_ws].readX(0)
-        m_max = x_data[-1]
-
-        # Select fit function to use
-        if self._jump_function == 'ChudleyElliot':
-            # Chudley-Elliott: HWHM=(1-sin*(Q*L)/(Q*L))/Tau
-            # for Q->0 W=Q^2*L^2/(6*Tau)
-
-            t_val = 1.0 / m_max
-            l_val = 1.5
-            function = 'name=ChudleyElliot, Tau=' + str(t_val) + ', L=' + str(l_val)
-
-        elif self._jump_function == 'HallRoss':
-            # Hall-Ross: HWHM=(1-exp(-L*Q^2))/Tau
-            # for Q->0 W=A*Q^2*r
-
-            t_val = 1.0 / m_max
-            l_val = 1.5
-            function = 'name=HallRoss, Tau=' + str(t_val) + ', L=' + str(l_val)
-
-        elif self._jump_function == 'FickDiffusion':
-            # Fick: HWHM=D*Q^2
-
-            y_data = mtd[self._in_ws].readY(0)
-            diff = (y_data[2] - y_data[0]) / ((x_data[2] - x_data[0]) * (x_data[2] - x_data[0]))
-            function = 'name=FickDiffusion, D=' + str(diff)
-
-        elif self._jump_function == 'TeixeiraWater':
-            # Teixeira: HWHM=Q^2*L/((1+Q^2*L)*tau)
-            # for Q->0 W=
-
-            t_val = 1.0 / m_max
-            l_val = 1.5
-            function = 'name=TeixeiraWater, Tau=' + str(t_val) + ', L=' + str(l_val)
-
-        # Run fit function
-        if self._out_name is "":
-            # Find the last underscore
-            ws_suffix_index = self._in_ws.rfind('_')
-
-            if ws_suffix_index == -1:
-                # Use the entire string if underscore not found
-                ws_suffix_index = len(self._in_ws)
-
-            self._out_name = self._in_ws[:ws_suffix_index] + '_' + self._jump_function + '_fit'
-
-        ms.Fit(Function=function, InputWorkspace=spectrum_ws, CreateOutput=True, Output=self._out_name,
-               StartX=self._q_min, EndX=self._q_max)
-        fit_workspace = self._out_name + '_Workspace'
-
-        # Populate sample logs
-        ms.CopyLogs(InputWorkspace=self._in_ws, OutputWorkspace=fit_workspace)
-        ms.AddSampleLog(Workspace=fit_workspace, LogName="jump_function", LogType="String",
-                        LogText=self._jump_function)
-        ms.AddSampleLog(Workspace=fit_workspace, LogName="q_min", LogType="Number",
-                        LogText=str(self._q_min))
-        ms.AddSampleLog(Workspace=fit_workspace, LogName="q_max", LogType="Number",
-                        LogText=str(self._q_max))
-
-        self._process_output(fit_workspace)
-
-        self.setProperty('Output', self._out_name)
-
-        ms.DeleteWorkspace(Workspace=spectrum_ws)
-
-
-    def _setup(self):
-        self._in_ws = self.getPropertyValue('InputWorkspace')
-        self._out_name = self.getPropertyValue('Output')
-
-        self._jump_function = self.getProperty('Function').value
-        self._width = self.getProperty('Width').value
-        self._q_min = self.getProperty('QMin').value
-        self._q_max = self.getProperty('QMax').value
-
-        self._plot = self.getProperty('Plot').value
-        self._save = self.getProperty('Save').value
-
-
-    def _process_output(self, workspace):
-        if self._save:
-            from IndirectCommon import getDefaultWorkingDirectory
-            workdir = getDefaultWorkingDirectory()
-            fit_path = os.path.join(workdir, workspace + '.nxs')
-            ms.SaveNexusProcessed(InputWorkspace=workspace, Filename=fit_path)
-
-            logger.information('Fit file is ' + fit_path)
-
-        if self._plot:
-            from IndirectImport import import_mantidplot
-            mtd_plot = import_mantidplot()
-            mtd_plot.plotSpectrum(workspace, [0, 1, 2], True)
-
-
-# Register algorithm with Mantid
-AlgorithmFactory.subscribe(JumpFit)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/MolDyn.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/MolDyn.py
index 33bb4062e5a161720169ebf8c4c54ad890af3ea7..fefcac653037759fedc1aeaa9a130c72d7d2b9e0 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/MolDyn.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/MolDyn.py
@@ -172,12 +172,14 @@ class MolDyn(PythonAlgorithm):
                     # as the Symmetrise algorithm will do this
                     if self._symmetrise:
                         # Symmetrise the sample workspace in x=0
-                        Symmetrise(Sample=ws_name, XMin=0, XMax=e_max,
-                                   Plot=False, Save=False,
+                        Symmetrise(InputWorkspace=ws_name,
+                                   XMin=0,
+                                   XMax=e_max,
                                    OutputWorkspace=ws_name)
 
                     elif self._emax is not None:
-                        CropWorkspace(InputWorkspace=ws_name, OutputWorkspace=ws_name,
+                        CropWorkspace(InputWorkspace=ws_name,
+                                      OutputWorkspace=ws_name,
                                       XMax=self._emax)
 
         # Do convolution if given a resolution workspace
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/OSIRISDiffractionReduction.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/OSIRISDiffractionReduction.py
index 2c1d7ebda9884dd0b493e55f053250c88f1fbb50..e37bc82f11c195edd6ec9a46c3befc085d3bf9e7 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/OSIRISDiffractionReduction.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/OSIRISDiffractionReduction.py
@@ -1,91 +1,135 @@
-#pylint: disable=invalid-name,no-init
 from mantid.kernel import *
 from mantid.api import *
 from mantid.simpleapi import *
 
 import itertools
 
-timeRegimeToDRange = {\
-     1.17e4: tuple([ 0.7,  2.5]),\
-     2.94e4: tuple([ 2.1,  3.3]),\
-     4.71e4: tuple([ 3.1,  4.3]),\
-     6.48e4: tuple([ 4.1,  5.3]),\
-     8.25e4: tuple([ 5.2,  6.2]),\
-    10.02e4: tuple([ 6.2,  7.3]),\
-    11.79e4: tuple([ 7.3,  8.3]),\
-    13.55e4: tuple([ 8.3,  9.5]),\
-    15.32e4: tuple([ 9.4, 10.6]),\
-    17.09e4: tuple([10.4, 11.6]),\
-    18.86e4: tuple([11.0, 12.5])}\
 
-# A "wrapper" class for a map, which maps workspaces from their corresponding
-#time regimes.
+#pylint: disable=too-few-public-methods
+class DRange(object):
+    """
+    A class to represent a dRange.
+    """
+
+    def __init__(self, lower, upper):
+        self._range = [lower, upper]
+
+    def __getitem__(self, idx):
+        return self._range[idx]
+
+    def __str__(self):
+        return '%.3f - %.3f Angstrom' % (self._range[0], self._range[1])
+
 
-class DRangeToWsMap(object):
+TIME_REGIME_TO_DRANGE = {
+     1.17e4: DRange( 0.7,  2.5),
+     2.94e4: DRange( 2.1,  3.3),
+     4.71e4: DRange( 3.1,  4.3),
+     6.48e4: DRange( 4.1,  5.3),
+     8.25e4: DRange( 5.2,  6.2),
+    10.02e4: DRange( 6.2,  7.3),
+    11.79e4: DRange( 7.3,  8.3),
+    13.55e4: DRange( 8.3,  9.5),
+    15.32e4: DRange( 9.4, 10.6),
+    17.09e4: DRange(10.4, 11.6),
+    18.86e4: DRange(11.0, 12.5)
+}
+
+
+class DRangeToWorkspaceMap(object):
+    """
+    A "wrapper" class for a map, which maps workspaces from their corresponding
+    time regimes.
+    """
 
     def __init__(self):
         self._map = {}
 
-    def addWs(self, wsname):
-        """ Takes in the given workspace and lists it alongside its time regime value.
-        If the time regime has yet to be created, it will create it, and if there is already
-        a workspace listed beside the time regime, then the new ws will be appended
-        to that list.
+    def addWs(self, ws_name, d_range=None):
+        """
+        Takes in the given workspace and lists it alongside its time regime
+        value.  If the time regime has yet to be created, it will create it,
+        and if there is already a workspace listed beside the time regime, then
+        the new ws will be appended to that list.
+
+        @param ws_name Name of workspace to add
+        @param d_range Optionally override the dRange
         """
-        ws=mtd[wsname]
+        wrksp = mtd[ws_name]
+
         # Get the time regime of the workspace, and use it to find the DRange.
-        timeRegime = ws.dataX(0)[0]
-        try:
-            dRange = timeRegimeToDRange[timeRegime]
-        except KeyError:
-            raise RuntimeError("Unable to identify the DRange of " + wsname +\
-                ", which has a time regime of " + str(timeRegime))
+        time_regime = wrksp.dataX(0)[0]
+        time_regimes = TIME_REGIME_TO_DRANGE.keys()
+        time_regimes.sort()
+
+        for idx in range(len(time_regimes)):
+            if idx == len(time_regimes) - 1:
+                if time_regimes[idx] < time_regime:
+                    time_regime = time_regimes[idx]
+                    break
+            else:
+                if time_regimes[idx] < time_regime < time_regimes[idx + 1]:
+                    time_regime = time_regimes[idx]
+                    break
+
+        if d_range is None:
+            d_range = TIME_REGIME_TO_DRANGE[time_regime]
+        else:
+            d_range = TIME_REGIME_TO_DRANGE[time_regimes[d_range]]
+
+        logger.information('dRange for workspace %s is %s' % (ws_name, str(d_range)))
 
         # Add the workspace to the map, alongside its DRange.
-        if dRange not in self._map:
-            self._map[dRange] = [wsname]
+        if d_range not in self._map:
+            self._map[d_range] = [ws_name]
         else:
             #check if x ranges matchs and existing run
-            for ws_name in self._map[dRange]:
+            for ws_name in self._map[d_range]:
                 map_lastx = mtd[ws_name].readX(0)[-1]
-                ws_lastx = ws.readX(0)[-1]
+                ws_lastx = wrksp.readX(0)[-1]
 
                 #if it matches ignore it
                 if map_lastx == ws_lastx:
-                    DeleteWorkspace(ws)
+                    DeleteWorkspace(wrksp)
                     return
 
-            self._map[dRange].append(wsname)
+            self._map[d_range].append(ws_name)
 
-    def setItem(self, dRange, wsname):
-        """ Set a dRange and corresponding *single* ws.
+    def setItem(self, d_range, ws_name):
+        """
+        Set a dRange and corresponding *single* ws.
         """
-        self._map[dRange] = wsname
+        self._map[d_range] = ws_name
 
     def getMap(self):
-        """ Get access to wrapped map.
+        """
+        Get access to wrapped map.
         """
         return self._map
 
-def averageWsList(wsList):
-    """ Returns the average of a list of workspaces.
+
+def average_ws_list(ws_list):
+    """
+    Returns the average of a list of workspaces.
     """
     # Assert we have some ws in the list, and if there is only one then return it.
-    assert len(wsList) > 0, "getAverageWs: Trying to take an average of nothing."
-    if len(wsList) == 1:
-        return wsList[0]
+    if len(ws_list) == 0:
+        raise RuntimeError("getAverageWs: Trying to take an average of nothing")
+
+    if len(ws_list) == 1:
+        return ws_list[0]
 
     # Generate the final name of the averaged workspace.
     avName = "avg"
-    for name in wsList:
+    for name in ws_list:
         avName += "_" + name
 
-    numWorkspaces = len(wsList)
+    numWorkspaces = len(ws_list)
 
     # Compute the average and put into "__temp_avg".
-    __temp_avg = mtd[wsList[0]]
+    __temp_avg = mtd[ws_list[0]]
     for i in range(1, numWorkspaces):
-        __temp_avg += mtd[wsList[i]]
+        __temp_avg += mtd[ws_list[i]]
 
     __temp_avg /= numWorkspaces
 
@@ -93,42 +137,42 @@ def averageWsList(wsList):
     RenameWorkspace(InputWorkspace=__temp_avg, OutputWorkspace=avName)
     return avName
 
-def findIntersectionOfTwoRanges(rangeA, rangeB):
 
-    assert rangeA[0] < rangeA[1], "Malformed range."
-    assert rangeB[0] < rangeB[1], "Malformed range."
+def find_intersection_of_ranges(rangeA, rangeB):
+    if rangeA[0] >= rangeA[1] or rangeB[0] >= rangeB[1]:
+        raise RuntimeError("Malformed range")
 
-    if  rangeA[0] <= rangeA[1] <= rangeB[0] <= rangeB[1]:
+    if rangeA[0] <= rangeA[1] <= rangeB[0] <= rangeB[1]:
         return
-    if  rangeB[0] <= rangeB[1] <= rangeA[0] <= rangeA[1]:
+    if rangeB[0] <= rangeB[1] <= rangeA[0] <= rangeA[1]:
         return
-    if  rangeA[0] <= rangeB[0] <= rangeB[1] <= rangeA[1] :
+    if rangeA[0] <= rangeB[0] <= rangeB[1] <= rangeA[1]:
         return rangeB
-    if  rangeB[0] <= rangeA[0] <= rangeA[1] <= rangeB[1] :
+    if rangeB[0] <= rangeA[0] <= rangeA[1] <= rangeB[1]:
         return rangeA
-    if  rangeA[0] <= rangeB[0] <= rangeA[1] <= rangeB[1] :
+    if rangeA[0] <= rangeB[0] <= rangeA[1] <= rangeB[1]:
         return [rangeB[0], rangeA[1]]
-    if  rangeB[0] <= rangeA[0] <= rangeB[1] <= rangeA[1] :
+    if rangeB[0] <= rangeA[0] <= rangeB[1] <= rangeA[1]:
         return [rangeA[0], rangeB[1]]
 
-    assert False, "We should never reach here ..."
+    # Should never reach here
+    raise RuntimeError()
 
-def getIntersectionsOfRanges(rangeList):
-    """ Get the intersections of a list of ranges.  For example, given the ranges:
-    [1, 3], [3, 5] and [4, 6], the intersections would be a single range of [4, 5].
 
-    NOTE: Assumes that no more than a maximum of two ranges will ever cross
-    at the same point.  Also, all ranges should obey range[0] <= range[1].
+def get_intersetcion_of_ranges(range_list):
     """
-    # Sanity check.
-    for myrange in rangeList:
-        assert len(myrange) == 2, "Unable to find the intersection of a malformed range."
+    Get the intersections of a list of ranges.  For example, given the ranges:
+    [1, 3], [3, 5] and [4, 6], the intersections would be a single range of [4,
+    5].
 
+    NOTE: Assumes that no more than a maximum of two ranges will ever cross at
+    the same point.  Also, all ranges should obey range[0] <= range[1].
+    """
     # Find all combinations of ranges, and see where they intersect.
-    rangeCombos = list(itertools.combinations(rangeList, 2))
+    rangeCombos = list(itertools.combinations(range_list, 2))
     intersections = []
     for rangePair in rangeCombos:
-        intersection = findIntersectionOfTwoRanges(rangePair[0], rangePair[1])
+        intersection = find_intersection_of_ranges(rangePair[0], rangePair[1])
         if intersection is not None:
             intersections.append(intersection)
 
@@ -136,134 +180,222 @@ def getIntersectionsOfRanges(rangeList):
     intersections.sort()
     return intersections
 
-def isInRanges(rangeList, n):
-    for myrange in rangeList:
-        if myrange[0] < n < myrange[1]:
+
+def is_in_ranges(range_list, val):
+    for myrange in range_list:
+        if myrange[0] < val < myrange[1]:
             return True
     return False
 
+
+#pylint: disable=no-init,too-many-instance-attributes
 class OSIRISDiffractionReduction(PythonAlgorithm):
-    """ Handles the reduction of OSIRIS Diffraction Data.
+    """
+    Handles the reduction of OSIRIS Diffraction Data.
     """
 
     _cal = None
-    _outputWsName = None
-    _sams = None
-    _vans = None
-    _samMap = None
-    _vanMap = None
+    _output_ws_name = None
+    _sample_runs = None
+    _vanadium_runs = None
+    _container_file = None
+    _container_scale_factor = None
+    _sam_ws_map = None
+    _van_ws_map = None
+    _man_d_range = None
+    _load_logs = None
+    _spec_min = None
+
 
     def category(self):
         return 'Diffraction;PythonAlgorithms'
 
     def summary(self):
         return "This Python algorithm performs the operations necessary for the reduction of diffraction data "+\
-                "from the Osiris instrument at ISIS "+\
-                "into dSpacing, by correcting for the monitor and linking the various d-ranges together."
+               "from the Osiris instrument at ISIS "+\
+               "into dSpacing, by correcting for the monitor and linking the various d-ranges together."
+
 
     def PyInit(self):
         runs_desc='The list of run numbers that are part of the sample run. '+\
                   'There should be five of these in most cases. Enter them as comma separated values.'
-        self.declareProperty('Sample', '', doc=runs_desc)
-        self.declareProperty('Vanadium', '', doc=runs_desc)
+
+        self.declareProperty(StringArrayProperty('Sample'),
+                             doc=runs_desc)
+        self.declareProperty(StringArrayProperty('Vanadium'),
+                             doc=runs_desc)
+
+        self.declareProperty('Container', '',
+                             doc='Run for the container')
+        self.declareProperty('ContainerScaleFactor', 1.0,
+                             doc='Factor by which to scale the container')
+
         self.declareProperty(FileProperty('CalFile', '', action=FileAction.Load),
                              doc='Filename of the .cal file to use in the [[AlignDetectors]] and '+\
                                  '[[DiffractionFocussing]] child algorithms.')
         self.declareProperty(MatrixWorkspaceProperty('OutputWorkspace', '', Direction.Output),
                              doc="Name to give the output workspace. If no name is provided, "+\
                                  "one will be generated based on the run numbers.")
+        self.declareProperty(name='LoadLogFiles', defaultValue=True,
+                             doc='Load log files when loading runs')
+
+        self.declareProperty('DetectDRange', True,
+                             doc='Disable to override automatic dRange detection')
+
+        # Note that dRange numbers are offset to match the numbering in the OSIRIS manual
+        # http://www.isis.stfc.ac.uk/instruments/osiris/documents/osiris-user-guide6672.pdf
+        self.declareProperty('DRange', 1, validator=IntBoundedValidator(1, len(TIME_REGIME_TO_DRANGE) + 1),
+                             doc='Drange to use when DetectDRange is disabled')
 
         self._cal = None
-        self._outputWsName = None
+        self._output_ws_name = None
 
-        self._samMap = DRangeToWsMap()
-        self._vanMap = DRangeToWsMap()
+        self._sam_ws_map = DRangeToWorkspaceMap()
+        self._van_ws_map = DRangeToWorkspaceMap()
 
-    def PyExec(self):
-        # Set OSIRIS as default instrument.
-        config["default.instrument"] = 'OSIRIS'
 
+    def PyExec(self):
+        self._load_logs = self.getProperty('LoadLogFiles').value
         self._cal = self.getProperty("CalFile").value
-        self._outputWsName = self.getPropertyValue("OutputWorkspace")
+        self._output_ws_name = self.getPropertyValue("OutputWorkspace")
+
+        self._sample_runs = self._find_runs(self.getProperty("Sample").value)
+        self._vanadium_runs = self._find_runs(self.getProperty("Vanadium").value)
+
+        self._container_file = self.getPropertyValue("Container")
+        self._container_scale_factor = self.getProperty("ContainerScaleFactor").value
+
+        if self._container_file != '':
+            self._container_file = self._find_runs([self._container_file])[0]
+
+        self._spec_min = 3
+        # self._spec_max = 962
+
+        self._man_d_range = None
+        if not self.getProperty("DetectDRange").value:
+            self._man_d_range = self.getProperty("DRange").value - 1
 
-        sampleRuns = self.findRuns(self.getPropertyValue("Sample"))
+        self.execDiffOnly()
 
-        self.execDiffOnly(sampleRuns)
 
     #pylint: disable=too-many-branches
-    def execDiffOnly(self, sampleRuns):
+    def execDiffOnly(self):
         """
-            Execute the algorithm in diffraction-only mode
-            @param sampleRuns A list of files pointing to the sample runs
+        Execute the algorithm in diffraction-only mode
         """
-        self._sams = sampleRuns
-        self._vans = self.findRuns(self.getPropertyValue("Vanadium"))
-
-        # Load all sample and vanadium files, and add the resulting workspaces to the DRangeToWsMaps.
-        for fileName in self._sams + self._vans:
-            Load(Filename=fileName, OutputWorkspace=fileName, SpectrumMin=3, SpectrumMax=962)
-        for sam in self._sams:
-            self._samMap.addWs(sam)
-        for van in self._vans:
-            self._vanMap.addWs(van)
+        # Load all sample, vanadium files
+        for fileName in self._sample_runs + self._vanadium_runs:
+            Load(Filename=fileName,
+                 OutputWorkspace=fileName,
+                 SpectrumMin=self._spec_min,
+                 # SpectrumMax=self._spec_max,
+                 LoadLogFiles=self._load_logs)
+
+        # Load the container run
+        if self._container_file != '':
+            container = Load(Filename=self._container_file,
+                             OutputWorkspace='__container',
+                             SpectrumMin=self._spec_min,
+                             # SpectrumMax=self._spec_max,
+                             LoadLogFiles=self._load_logs)
+
+            # Scale the container run if required
+            if self._container_scale_factor != 1.0:
+                Scale(InputWorkspace=container,
+                      OutputWorkspace=container,
+                      Factor=self._container_scale_factor,
+                      Operation='Multiply')
+
+        # Add the sample workspaces to the dRange to sample map
+        for sam in self._sample_runs:
+            if self._container_file != '':
+                Minus(LHSWorkspace=sam,
+                      RHSWorkspace=container,
+                      OutputWorkspace=sam)
+
+            self._sam_ws_map.addWs(sam)
+
+        # Add the vanadium workspaces to the dRange to vanadium map
+        for van in self._vanadium_runs:
+            self._van_ws_map.addWs(van)
+
+        # Finished with container now so delete it
+        if self._container_file != '':
+            DeleteWorkspace(container)
 
         # Check to make sure that there are corresponding vanadium files with the same DRange for each sample file.
-        for dRange in self._samMap.getMap().iterkeys():
-            if dRange not in self._vanMap.getMap():
-                raise RuntimeError("There is no van file that covers the " + str(dRange) + " DRange.")
-
-        # Average together any sample workspaces with the same DRange.  This will mean our map of DRanges
-        # to list of workspaces becomes a map of DRanges, each to a *single* workspace.
-        tempSamMap = DRangeToWsMap()
-        for dRange, wsList in self._samMap.getMap().iteritems():
-            tempSamMap.setItem(dRange, averageWsList(wsList))
-        self._samMap = tempSamMap
+        for d_range in self._sam_ws_map.getMap().iterkeys():
+            if d_range not in self._van_ws_map.getMap():
+                raise RuntimeError("There is no van file that covers the " + str(d_range) + " DRange.")
+
+        # Average together any sample workspaces with the same DRange.
+        # This will mean our map of DRanges to list of workspaces becomes a map
+        # of DRanges, each to a *single* workspace.
+        temp_sam_map = DRangeToWorkspaceMap()
+        for d_range, ws_list in self._sam_ws_map.getMap().iteritems():
+            temp_sam_map.setItem(d_range, average_ws_list(ws_list))
+        self._sam_ws_map = temp_sam_map
 
         # Now do the same to the vanadium workspaces.
-        tempVanMap = DRangeToWsMap()
-        for dRange, wsList in self._vanMap.getMap().iteritems():
-            tempVanMap.setItem(dRange, averageWsList(wsList))
-        self._vanMap = tempVanMap
+        temp_van_map = DRangeToWorkspaceMap()
+        for d_range, ws_list in self._van_ws_map.getMap().iteritems():
+            temp_van_map.setItem(d_range, average_ws_list(ws_list))
+        self._van_ws_map = temp_van_map
 
         # Run necessary algorithms on BOTH the Vanadium and Sample workspaces.
-        for dRange, ws in self._samMap.getMap().items() + self._vanMap.getMap().items():
-            NormaliseByCurrent(InputWorkspace=ws,OutputWorkspace=ws)
-            AlignDetectors(InputWorkspace=ws, OutputWorkspace=ws, CalibrationFile=self._cal)
-            DiffractionFocussing(InputWorkspace=ws, OutputWorkspace=ws, GroupingFileName=self._cal)
-            CropWorkspace(InputWorkspace=ws, OutputWorkspace=ws, XMin=dRange[0], XMax=dRange[1])
+        for d_range, wrksp in self._sam_ws_map.getMap().items() + self._van_ws_map.getMap().items():
+            NormaliseByCurrent(InputWorkspace=wrksp,
+                               OutputWorkspace=wrksp)
+            AlignDetectors(InputWorkspace=wrksp,
+                           OutputWorkspace=wrksp,
+                           CalibrationFile=self._cal)
+            DiffractionFocussing(InputWorkspace=wrksp,
+                                 OutputWorkspace=wrksp,
+                                 GroupingFileName=self._cal)
+            CropWorkspace(InputWorkspace=wrksp,
+                          OutputWorkspace=wrksp,
+                          XMin=d_range[0],
+                          XMax=d_range[1])
 
         # Divide all sample files by the corresponding vanadium files.
-        for dRange in self._samMap.getMap().iterkeys():
-            samWs = self._samMap.getMap()[dRange]
-            vanWs = self._vanMap.getMap()[dRange]
-            samWs, vanWs = self.rebinToSmallest(samWs, vanWs)
-            Divide(LHSWorkspace=samWs, RHSWorkspace=vanWs, OutputWorkspace=samWs)
-            ReplaceSpecialValues(InputWorkspace=samWs, OutputWorkspace=samWs, NaNValue=0.0, InfinityValue=0.0)
+        for d_range in self._sam_ws_map.getMap().iterkeys():
+            sam_ws = self._sam_ws_map.getMap()[d_range]
+            van_ws = self._van_ws_map.getMap()[d_range]
+            sam_ws, van_ws = self._rebin_to_smallest(sam_ws, van_ws)
+            Divide(LHSWorkspace=sam_ws,
+                   RHSWorkspace=van_ws,
+                   OutputWorkspace=sam_ws)
+            ReplaceSpecialValues(InputWorkspace=sam_ws,
+                                 OutputWorkspace=sam_ws,
+                                 NaNValue=0.0,
+                                 InfinityValue=0.0)
 
         # Create a list of sample workspace NAMES, since we need this for MergeRuns.
         samWsNamesList = []
-        for sam in self._samMap.getMap().itervalues():
+        for sam in self._sam_ws_map.getMap().itervalues():
             samWsNamesList.append(sam)
 
         if len(samWsNamesList) > 1:
             # Merge the sample files into one.
-            MergeRuns(InputWorkspaces=samWsNamesList, OutputWorkspace=self._outputWsName)
+            MergeRuns(InputWorkspaces=samWsNamesList,
+                      OutputWorkspace=self._output_ws_name)
             for name in samWsNamesList:
                 DeleteWorkspace(Workspace=name)
         else:
-            RenameWorkspace(InputWorkspace=samWsNamesList[0],OutputWorkspace=self._outputWsName)
+            RenameWorkspace(InputWorkspace=samWsNamesList[0],
+                            OutputWorkspace=self._output_ws_name)
 
-        result = mtd[self._outputWsName]
+        result = mtd[self._output_ws_name]
 
         # Create scalar data to cope with where merge has combined overlapping data.
-        intersections = getIntersectionsOfRanges(self._samMap.getMap().keys())
+        intersections = get_intersetcion_of_ranges(self._sam_ws_map.getMap().keys())
 
         dataX = result.dataX(0)
         dataY = []
         dataE = []
         for i in range(0, len(dataX)-1):
-            x = ( dataX[i] + dataX[i+1] ) / 2.0
-            if isInRanges(intersections, x):
+            x_val = (dataX[i] + dataX[i+1]) / 2.0
+            if is_in_ranges(intersections, x_val):
                 dataY.append(2)
                 dataE.append(2)
             else:
@@ -282,18 +414,20 @@ class OSIRISDiffractionReduction(PythonAlgorithm):
             result.setE(i,resultE)
 
         # Delete all workspaces we've created, except the result.
-        for ws in self._vanMap.getMap().values():
-            DeleteWorkspace(Workspace=ws)
+        for wrksp in self._van_ws_map.getMap().values():
+            DeleteWorkspace(Workspace=wrksp)
 
         self.setProperty("OutputWorkspace", result)
 
-    def findRuns(self, run_str):
+
+    def _find_runs(self, runs):
         """
-           Use the FileFinder to find search for the runs given by the string of comma-separated run numbers
-           @param run_str A string of run numbers to find
-           @returns A list of filepaths
+        Use the FileFinder to find search for the runs given by the string of
+        comma-separated run numbers.
+
+        @param run_str A string of run numbers to find
+        @returns A list of filepaths
         """
-        runs = run_str.split(",")
         run_files = []
         for run in runs:
             try:
@@ -303,26 +437,32 @@ class OSIRISDiffractionReduction(PythonAlgorithm):
 
         return run_files
 
-    def rebinToSmallest(self, samWS, vanWS):
+
+    def _rebin_to_smallest(self, samWS, vanWS):
         """
-            At some point a change to the control program
-            meant that the raw data got an extra bin. This
-            prevents runs past this point being normalised
-            with a vanadium from an earlier point.
-            Here we simply rebin to the smallest workspace if
-            the sizes don't match
-            @param samWS A workspace object containing the sample run
-            @param vanWS A workspace object containing the vanadium run
-            @returns samWS, vanWS rebinned  to the smallest if necessary
+        At some point a change to the control program meant that the raw data
+        got an extra bin. This prevents runs past this point being normalised
+        with a vanadium from an earlier point.  Here we simply rebin to the
+        smallest workspace if the sizes don't match
+
+        @param samWS A workspace object containing the sample run
+        @param vanWS A workspace object containing the vanadium run
+        @returns samWS, vanWS rebinned  to the smallest if necessary
         """
         sample_size, van_size = mtd[samWS].blocksize(), mtd[vanWS].blocksize()
         if sample_size == van_size:
             return samWS, vanWS
 
         if sample_size < van_size:
-            RebinToWorkspace(WorkspaceToRebin=vanWS, WorkspaceToMatch=samWS,OutputWorkspace=vanWS)
+            # Rebin vanadium to match sample
+            RebinToWorkspace(WorkspaceToRebin=vanWS,
+                             WorkspaceToMatch=samWS,
+                             OutputWorkspace=vanWS)
         else:
-            RebinToWorkspace(WorkspaceToRebin=samWS, WorkspaceToMatch=vanWS,OutputWorkspace=samWS)
+            # Rebin sample to match vanadium
+            RebinToWorkspace(WorkspaceToRebin=samWS,
+                             WorkspaceToMatch=vanWS,
+                             OutputWorkspace=samWS)
 
         return samWS, vanWS
 
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/PoldiDataAnalysis.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/PoldiDataAnalysis.py
index 23ab9ab8221a60f7b8620715a6cee25dc76fb7a4..1a5d147fa66d0bb7b0992a29b675f904a34795d4 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/PoldiDataAnalysis.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/PoldiDataAnalysis.py
@@ -1,8 +1,9 @@
-# pylint: disable=no-init,invalid-name,attribute-defined-outside-init
+# pylint: disable=no-init,invalid-name,attribute-defined-outside-init,too-many-instance-attributes
 from mantid.simpleapi import *
 from mantid.api import *
 from mantid.kernel import *
 
+
 class PoldiDataAnalysis(PythonAlgorithm):
     """
     This workflow algorithm uses all of the POLDI specific algorithms to perform a complete data analysis,
@@ -25,6 +26,15 @@ class PoldiDataAnalysis(PythonAlgorithm):
         return False
 
     def PyInit(self):
+        self._allowedFunctions = ["Gaussian", "Lorentzian", "PseudoVoigt", "Voigt"]
+
+        self._globalParameters = {
+            'Gaussian': [],
+            'Lorentzian': [],
+            'PseudoVoigt': ['Mixing'],
+            'Voigt': ['LorentzFWHM']
+        }
+
         self.declareProperty(WorkspaceProperty(name="InputWorkspace", defaultValue="", direction=Direction.Input),
                              doc='MatrixWorkspace with 2D POLDI data and valid POLDI instrument.')
 
@@ -34,13 +44,31 @@ class PoldiDataAnalysis(PythonAlgorithm):
         self.declareProperty("MinimumPeakSeparation", 10, direction=Direction.Input,
                              doc='Minimum number of points between neighboring peaks.')
 
+        self.declareProperty("MinimumPeakHeight", 0.0, direction=Direction.Input,
+                             doc=('Minimum height of peaks. If it is left at 0, the minimum peak height is calculated'
+                                  'from background noise.'))
+
+        self.declareProperty("MaximumRelativeFwhm", 0.02, direction=Direction.Input,
+                             doc=('Peaks with a relative FWHM larger than this are removed during the 1D fit.'))
+
+        self.declareProperty("ScatteringContributions", "1", direction=Direction.Input,
+                             doc=('If there is more than one compound, you may supply estimates of their scattering '
+                                  'contributions, which sometimes improves indexing.'))
+
         self.declareProperty(WorkspaceProperty("ExpectedPeaks", defaultValue="", direction=Direction.Input),
                              doc='TableWorkspace or WorkspaceGroup with expected peaks used for indexing.')
 
-        allowedProfileFunctions = StringListValidator(["Gaussian", "Lorentzian", "PseudoVoigt", "Voigt"])
+        self.declareProperty("RemoveUnindexedPeaksFor2DFit", defaultValue=False, direction=Direction.Input,
+                             doc='Discard unindexed peaks for 2D fit, this is always the case if PawleyFit is active.')
+
+        allowedProfileFunctions = StringListValidator(self._allowedFunctions)
         self.declareProperty("ProfileFunction", "Gaussian", validator=allowedProfileFunctions,
                              direction=Direction.Input)
 
+        self.declareProperty("TieProfileParameters", True, direction=Direction.Input,
+                             doc=('If this option is activated, certain parameters are kept the same for all peaks. '
+                                  'An example is the mixing parameter of the PseudoVoigt function.'))
+
         self.declareProperty("PawleyFit", False, direction=Direction.Input,
                              doc='Should the 2D-fit determine lattice parameters?')
 
@@ -53,6 +81,14 @@ class PoldiDataAnalysis(PythonAlgorithm):
                              doc=('If this is activated, plot the sum of residuals and calculated spectrum together '
                                   'with the theoretical spectrum and the residuals.'))
 
+        self.declareProperty("OutputIntegratedIntensities", False, direction=Direction.Input,
+                             doc=("If this option is checked the peak intensities of the 2D-fit will be integrated, "
+                                  "otherwise they will be the maximum intensity."))
+
+        self.declareProperty('OutputRawFitParameters', False, direction=Direction.Input,
+                             doc=('Activating this option produces an output workspace which contains the raw '
+                                  'fit parameters.'))
+
         self.declareProperty(WorkspaceProperty(name="OutputWorkspace", defaultValue="", direction=Direction.Output),
                              doc='WorkspaceGroup with result data from all processing steps.')
 
@@ -63,6 +99,16 @@ class PoldiDataAnalysis(PythonAlgorithm):
         self.inputWorkspace = self.getProperty("InputWorkspace").value
         self.expectedPeaks = self.getProperty("ExpectedPeaks").value
         self.profileFunction = self.getProperty("ProfileFunction").value
+        self.useGlobalParameters = self.getProperty("TieProfileParameters").value
+        self.maximumRelativeFwhm = self.getProperty("MaximumRelativeFwhm").value
+        self.outputIntegratedIntensities = self.getProperty("OutputIntegratedIntensities").value
+
+        self.globalParameters = ''
+        if self.useGlobalParameters:
+            self.globalParameters = ','.join(self._globalParameters[self.profileFunction])
+
+        if not self.workspaceHasCounts(self.inputWorkspace):
+            raise RuntimeError("Aborting analysis since workspace " + self.baseName + " does not contain any counts.")
 
         correlationSpectrum = self.runCorrelation()
         self.outputWorkspaces.append(correlationSpectrum)
@@ -79,6 +125,17 @@ class PoldiDataAnalysis(PythonAlgorithm):
 
         self.setProperty("OutputWorkspace", outputWs)
 
+    def workspaceHasCounts(self, workspace):
+        integrated = Integration(workspace)
+        summed = SumSpectra(integrated)
+
+        counts = summed.readY(0)[0]
+
+        DeleteWorkspace(integrated)
+        DeleteWorkspace(summed)
+
+        return counts > 0
+
     def runCorrelation(self):
         correlationName = self.baseName + "_correlation"
         PoldiAutoCorrelation(self.inputWorkspace, OutputWorkspace=correlationName)
@@ -132,6 +189,7 @@ class PoldiDataAnalysis(PythonAlgorithm):
         PoldiPeakSearch(InputWorkspace=correlationWorkspace,
                         MaximumPeakNumber=self.getProperty('MaximumPeakNumber').value,
                         MinimumPeakSeparation=self.getProperty('MinimumPeakSeparation').value,
+                        MinimumPeakHeight=self.getProperty('MinimumPeakHeight').value,
                         OutputWorkspace=peaksName)
 
         return AnalysisDataService.retrieve(peaksName)
@@ -142,6 +200,8 @@ class PoldiDataAnalysis(PythonAlgorithm):
 
         PoldiFitPeaks1D(InputWorkspace=correlationWorkspace,
                         PoldiPeakTable=rawPeaks,
+                        FwhmMultiples=3.0,
+                        MaximumRelativeFwhm=self.maximumRelativeFwhm,
                         PeakFunction=self.profileFunction,
                         OutputWorkspace=refinedPeaksName,
                         FitPlotsWorkspace=plotNames)
@@ -154,6 +214,7 @@ class PoldiDataAnalysis(PythonAlgorithm):
 
         PoldiIndexKnownCompounds(InputWorkspace=peaks,
                                  CompoundWorkspaces=self.expectedPeaks,
+                                 ScatteringContributions=self.getProperty("ScatteringContributions").value,
                                  OutputWorkspace=indexedPeaksName)
 
         indexedPeaks = AnalysisDataService.retrieve(indexedPeaksName)
@@ -161,7 +222,8 @@ class PoldiDataAnalysis(PythonAlgorithm):
         # Remove unindexed peaks from group for pawley fit
         unindexedPeaks = indexedPeaks.getItem(indexedPeaks.getNumberOfEntries() - 1)
         pawleyFit = self.getProperty('PawleyFit').value
-        if pawleyFit:
+        removeUnindexed = self.getProperty('RemoveUnindexedPeaksFor2DFit').value
+        if removeUnindexed or pawleyFit:
             indexedPeaks.remove(unindexedPeaks.getName())
 
         self._removeEmptyTablesFromGroup(indexedPeaks)
@@ -176,15 +238,23 @@ class PoldiDataAnalysis(PythonAlgorithm):
 
         pawleyFit = self.getProperty('PawleyFit').value
 
+        rawFitParametersWorkspaceName = ''
+        outputRawFitParameters = self.getProperty('OutputRawFitParameters').value
+        if outputRawFitParameters:
+            rawFitParametersWorkspaceName = self.baseName + "_raw_fit_parameters"
+
         PoldiFitPeaks2D(InputWorkspace=self.inputWorkspace,
                         PoldiPeakWorkspace=peaks,
                         PeakProfileFunction=self.profileFunction,
+                        GlobalParameters=self.globalParameters,
                         PawleyFit=pawleyFit,
                         MaximumIterations=100,
                         OutputWorkspace=spectrum2DName,
                         Calculated1DSpectrum=spectrum1DName,
                         RefinedPoldiPeakWorkspace=refinedPeaksName,
-                        RefinedCellParameters=refinedCellName)
+                        OutputIntegratedIntensities=self.outputIntegratedIntensities,
+                        RefinedCellParameters=refinedCellName,
+                        RawFitParameters=rawFitParametersWorkspaceName)
 
         workspaces = [AnalysisDataService.retrieve(spectrum2DName),
                       AnalysisDataService.retrieve(spectrum1DName),
@@ -192,6 +262,9 @@ class PoldiDataAnalysis(PythonAlgorithm):
         if AnalysisDataService.doesExist(refinedCellName):
             workspaces.append(AnalysisDataService.retrieve(refinedCellName))
 
+        if AnalysisDataService.doesExist(rawFitParametersWorkspaceName):
+            workspaces.append(AnalysisDataService.retrieve(rawFitParametersWorkspaceName))
+
         return workspaces
 
     def runResidualAnalysis(self, calculated2DSpectrum):
@@ -218,6 +291,7 @@ class PoldiDataAnalysis(PythonAlgorithm):
 
         if plotResults:
             from IndirectImport import import_mantidplot
+
             plot = import_mantidplot()
 
             plotWindow = plot.plotSpectrum(total, 0, type=1)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ResNorm2.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ResNorm2.py
new file mode 100644
index 0000000000000000000000000000000000000000..0a22122c248f00cd4e96de38ea44822620e45d66
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ResNorm2.py
@@ -0,0 +1,202 @@
+#pylint: disable=no-init
+from mantid.api import (PythonAlgorithm, AlgorithmFactory, MatrixWorkspaceProperty,
+                        WorkspaceGroup, WorkspaceGroupProperty)
+from mantid.kernel import Direction
+from mantid.simpleapi import *
+
+
+class ResNorm(PythonAlgorithm):
+
+    _res_ws = None
+    _van_ws = None
+    _e_min = None
+    _e_max = None
+    _create_output = None
+    _out_ws = None
+
+
+    def category(self):
+        return "Workflow\\MIDAS;PythonAlgorithms"
+
+
+    def summary(self):
+        return """Creates a group normalisation file by taking a resolution file
+                  and fitting it to all the groups in the resolution (vanadium)
+                  reduction."""
+
+    def version(self):
+        return 2
+
+
+    def PyInit(self):
+        self.declareProperty(MatrixWorkspaceProperty('ResolutionWorkspace', '',
+                                                     direction=Direction.Input),
+                             doc='Workspace containing resolution')
+
+        self.declareProperty(MatrixWorkspaceProperty('VanadiumWorkspace', '',
+                                                     direction=Direction.Input),
+                             doc='Workspace containing reduction of vanadium run')
+
+        self.declareProperty(name='EnergyMin',
+                             defaultValue=-0.2,
+                             doc='Minimum energy for fit. Default=-0.2')
+
+        self.declareProperty(name='EnergyMax',
+                             defaultValue=0.2,
+                             doc='Maximum energy for fit. Default=0.2')
+
+        self.declareProperty(name='CreateOutput',
+                             defaultValue=False,
+                             doc='Create additional fitting output')
+
+        self.declareProperty(WorkspaceGroupProperty('OutputWorkspace', '',
+                                                    direction=Direction.Output),
+                             doc='Fitted parameter output')
+
+
+    def validateInputs(self):
+        self._get_properties()
+        issues = dict()
+
+        # Validate fitting range in energy
+        if self._e_min > self._e_max:
+            issues['EnergyMax'] = 'Must be less than EnergyMin'
+
+        res_ws = mtd[self._res_ws]
+        # Can't use a WorkspaceGroup for resolution
+        if isinstance(res_ws, WorkspaceGroup):
+            issues['ResolutionWorkspace'] = 'Must be a MatrixWorkspace'
+
+        # Resolution should only have one histogram
+        elif mtd[self._res_ws].getNumberHistograms() != 1:
+            issues['ResolutionWorkspace'] = 'Must have exactly one histogram'
+
+        return issues
+
+
+    def _get_properties(self):
+        self._res_ws = self.getPropertyValue('ResolutionWorkspace')
+        self._van_ws = self.getPropertyValue('VanadiumWorkspace')
+        self._e_min = self.getProperty('EnergyMin').value
+        self._e_max = self.getProperty('EnergyMax').value
+        self._create_output = self.getProperty('CreateOutput').value
+        self._out_ws = self.getPropertyValue('OutputWorkspace')
+
+
+    def PyExec(self):
+        from IndirectCommon import getWSprefix
+
+        # Process vanadium workspace
+        van_ws = ConvertSpectrumAxis(InputWorkspace=self._van_ws,
+                                     OutputWorkspace='__ResNorm_vanadium',
+                                     Target='ElasticQ',
+                                     EMode='Indirect')
+
+        num_hist = van_ws.getNumberHistograms()
+
+        v_values = van_ws.getAxis(1).extractValues()
+        v_unit = van_ws.getAxis(1).getUnit().unitID()
+
+        # Process resolution workspace
+        padded_res_ws = self._process_res_ws(num_hist)
+
+        input_str = ''
+        for idx in range(num_hist):
+            input_str += '%s,i%d;' % (padded_res_ws, idx)
+
+        out_name = getWSprefix(self._res_ws) + 'ResNorm_Fit'
+        function = 'name=TabulatedFunction,Workspace=%s,Scaling=1,Shift=0,XScaling=1,ties=(Shift=0)' % self._van_ws
+
+        fit_params = PlotPeakByLogValue(Input=input_str,
+                                        OutputWorkspace=out_name,
+                                        Function=function,
+                                        FitType='Individual',
+                                        PassWSIndexToFunction=True,
+                                        CreateOutput=self._create_output,
+                                        StartX=self._e_min,
+                                        EndX=self._e_max)
+
+        params = {'XScaling':'Stretch', 'Scaling':'Intensity'}
+        result_workspaces = []
+        for param_name, output_name in params.items():
+            result_workspaces.append(self._process_fit_params(fit_params, param_name, v_values, v_unit, output_name))
+
+        GroupWorkspaces(InputWorkspaces=result_workspaces,
+                        OutputWorkspace=self._out_ws)
+        self.setProperty('OutputWorkspace', self._out_ws)
+
+        DeleteWorkspace(van_ws)
+        DeleteWorkspace(padded_res_ws)
+        if not self._create_output:
+            DeleteWorkspace(fit_params)
+
+
+    def _process_res_ws(self, num_hist):
+        """
+        Generate a resolution workspaes with the same number of histograms
+        as the vanadium run, with area normalised to 1.
+
+        @param num_hist Number of histograms required
+        @return Padded workspace
+        """
+
+        norm_res_ws = '__ResNorm_unityres'
+        NormaliseToUnity(InputWorkspace=self._res_ws,
+                         OutputWorkspace=norm_res_ws)
+
+        ws_name = '__ResNorm_res_%s_%dspec' % (self._res_ws, num_hist)
+
+        for idx in range(num_hist):
+            input_ws_1 = ws_name
+            if idx == 0:
+                input_ws_1 = norm_res_ws
+
+            AppendSpectra(InputWorkspace1=input_ws_1,
+                          InputWorkspace2=norm_res_ws,
+                          OutputWorkspace=ws_name)
+
+        DeleteWorkspace(norm_res_ws)
+
+        return mtd[ws_name]
+
+
+    #pylint: disable=too-many-arguments
+    def _process_fit_params(self, fit_params, parameter_name, x_axis, x_unit, workspace_suffix=None):
+        """
+        Generate the output workspace containing fit parameters using the
+        fit parameter table from PlotPeakByLogValue.
+
+        @param fit_params Fit parameters as table workspace
+        @param parameter_name Parameter name to extract
+        @param x_axis Values for X axis of output workspace
+        @param x_unit Unit for X axis of output workspace
+        @param workspace_suffix Suffix of result workspace name
+        """
+
+        if workspace_suffix is None:
+            workspace_suffix = parameter_name
+
+        col_names = fit_params.getColumnNames()
+
+        y_values = []
+        e_values = []
+
+        y_values = fit_params.column(col_names.index(parameter_name))
+        e_values = fit_params.column(col_names.index(parameter_name + '_Err'))
+
+        ws_name = self._out_ws + '_' + workspace_suffix
+
+        CreateWorkspace(OutputWorkspace=ws_name,
+                        DataX=x_axis,
+                        DataY=y_values,
+                        DataE=e_values,
+                        NSpec=1,
+                        UnitX=x_unit,
+                        VerticalAxisUnit='Text',
+                        VerticalAxisValues=[parameter_name])
+
+        return ws_name
+
+
+# Register algorithm with Mantid
+AlgorithmFactory.subscribe(ResNorm)
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/DensityOfStates.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SimulatedDensityOfStates.py
similarity index 94%
rename from Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/DensityOfStates.py
rename to Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SimulatedDensityOfStates.py
index 5db2e414e0629b4b260f3d32ffedea8064e787f4..38ac386556544572b73eaca8242e1fc037bf3fde 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/DensityOfStates.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SimulatedDensityOfStates.py
@@ -8,8 +8,10 @@ import re
 import os.path
 import math
 
+PEAK_WIDTH_ENERGY_FLAG = 'energy'
+
 #pylint: disable=too-many-instance-attributes
-class DensityOfStates(PythonAlgorithm):
+class SimulatedDensityOfStates(PythonAlgorithm):
 
     _float_regex = None
     _temperature = None
@@ -40,44 +42,44 @@ class DensityOfStates(PythonAlgorithm):
 
     def PyInit(self):
         # Declare properties
-        self.declareProperty(FileProperty('File', '', action=FileAction.Load,\
-            extensions = ["phonon", "castep"]),\
+        self.declareProperty(FileProperty('File', '', action=FileAction.Load,
+            extensions = ["phonon", "castep"]),
             doc='Filename of the file.')
 
-        self.declareProperty(name='Function',defaultValue='Gaussian',\
-            validator=StringListValidator(['Gaussian', 'Lorentzian']),\
+        self.declareProperty(name='Function',defaultValue='Gaussian',
+            validator=StringListValidator(['Gaussian', 'Lorentzian']),
             doc="Type of function to fit to peaks.")
 
-        self.declareProperty(name='PeakWidth', defaultValue=10.0,\
+        self.declareProperty(name='PeakWidth', defaultValue='10.0',
             doc='Set Gaussian/Lorentzian FWHM for broadening. Default is 10')
 
-        self.declareProperty(name='SpectrumType',defaultValue='DOS',\
-            validator=StringListValidator(['IonTable', 'DOS', 'IR_Active', 'Raman_Active']),\
+        self.declareProperty(name='SpectrumType',defaultValue='DOS',
+            validator=StringListValidator(['IonTable', 'DOS', 'IR_Active', 'Raman_Active']),
             doc="Type of intensities to extract and model (fundamentals-only) from .phonon.")
 
-        self.declareProperty(name='Scale', defaultValue=1.0,\
+        self.declareProperty(name='Scale', defaultValue=1.0,
             doc='Scale the intesity by the given factor. Default is no scaling.')
 
-        self.declareProperty(name='BinWidth', defaultValue=1.0,\
+        self.declareProperty(name='BinWidth', defaultValue=1.0,
             doc='Set histogram resolution for binning (eV or cm**-1). Default is 1')
 
-        self.declareProperty(name='Temperature', defaultValue=300.0,\
+        self.declareProperty(name='Temperature', defaultValue=300.0,
             doc='Temperature to use (in raman spectrum modelling). Default is 300')
 
-        self.declareProperty(name='ZeroThreshold', defaultValue=3.0,\
+        self.declareProperty(name='ZeroThreshold', defaultValue=3.0,
             doc='Ignore frequencies below the this threshold. Default is 3.0')
 
-        self.declareProperty(StringArrayProperty('Ions', Direction.Input),\
+        self.declareProperty(StringArrayProperty('Ions', Direction.Input),
             doc="List of Ions to use to calculate partial density of states. If left blank, total density of states will be calculated")
 
-        self.declareProperty(name='SumContributions', defaultValue=False,\
+        self.declareProperty(name='SumContributions', defaultValue=False,
             doc="Sum the partial density of states into a single workspace.")
 
-        self.declareProperty(name='ScaleByCrossSection', defaultValue='None',\
-            validator=StringListValidator(['None', 'Total', 'Incoherent', 'Coherent']),\
+        self.declareProperty(name='ScaleByCrossSection', defaultValue='None',
+            validator=StringListValidator(['None', 'Total', 'Incoherent', 'Coherent']),
             doc="Sum the partial density of states by the scattering cross section.")
 
-        self.declareProperty(WorkspaceProperty('OutputWorkspace', '', Direction.Output),\
+        self.declareProperty(WorkspaceProperty('OutputWorkspace', '', Direction.Output),
             doc="Name to give the output workspace.")
 
         # Regex pattern for a floating point number
@@ -238,34 +240,46 @@ class DensityOfStates(PythonAlgorithm):
 
 #----------------------------------------------------------------------------------------
 
-    def _draw_peaks(self, hist, peaks):
+    def _draw_peaks(self, xmin, hist, peaks):
         """
         Draw Gaussian or Lorentzian peaks to each point in the data
 
+        @param xmin - minimum X value
         @param hist - array of counts for each bin
         @param peaks - the indicies of each non-zero point in the data
         @return the fitted y data
         """
-        if self._peak_func == "Gaussian":
-            n_gauss = int(3.0 * self._peak_width / self._bin_width)
-            sigma = self._peak_width / 2.354
+        energies = np.arange(xmin, xmin + hist.size)
+
+        if PEAK_WIDTH_ENERGY_FLAG in self._peak_width:
+            try:
+                peak_widths = np.fromiter([eval(self._peak_width.replace(PEAK_WIDTH_ENERGY_FLAG, str(energies[p])))\
+                                           for p in peaks], dtype=float)
+            except SyntaxError:
+                raise ValueError('Invalid peak width function (must be either a float number or function containing "energy")')
+            peak_widths = np.abs(peak_widths)
+            logger.debug('Peak widths: %s' % (str(peak_widths)))
+        else:
+            single_val = np.array([float(self._peak_width)])
+            peak_widths = np.repeat(single_val, len(peaks))
 
+        if self._peak_func == "Gaussian":
+            n_gauss = int(3.0 * np.max(peak_widths) / self._bin_width)
             dos = np.zeros(len(hist) - 1 + n_gauss)
 
-            for index in peaks:
+            for index, width in zip(peaks, peak_widths.tolist()):
+                sigma = width / 2.354
                 for g in range(-n_gauss, n_gauss):
                     if index + g > 0:
                         dos[index + g] += hist[index] * math.exp(-(g * self._bin_width) ** 2 / (2 * sigma ** 2)) /\
                                           (math.sqrt(2 * math.pi) * sigma)
 
         elif self._peak_func == "Lorentzian":
-
-            n_lorentz = int(25.0 * self._peak_width / self._bin_width)
-            gamma_by_2 = self._peak_width / 2
-
+            n_lorentz = int(25.0 * np.max(peak_widths) / self._bin_width)
             dos = np.zeros(len(hist) - 1 + n_lorentz)
 
-            for index in peaks:
+            for index, width in zip(peaks, peak_widths.tolist()):
+                gamma_by_2 = width / 2
                 for l in range(-n_lorentz, n_lorentz):
                     if index + l > 0:
                         dos[index + l] += hist[index] * gamma_by_2 / (l ** 2 + gamma_by_2 ** 2) / math.pi
@@ -431,7 +445,7 @@ class DensityOfStates(PythonAlgorithm):
 
         # Find and fit peaks
         peaks = hist.nonzero()[0]
-        dos = self._draw_peaks(hist, peaks)
+        dos = self._draw_peaks(xmin, hist, peaks)
 
         data_x = np.arange(xmin, xmin + dos.size)
         CreateWorkspace(DataX=data_x, DataY=dos, OutputWorkspace=self._ws_name)
@@ -807,6 +821,6 @@ class DensityOfStates(PythonAlgorithm):
 
 try:
     import scipy.constants
-    AlgorithmFactory.subscribe(DensityOfStates)
+    AlgorithmFactory.subscribe(SimulatedDensityOfStates)
 except ImportError:
-    logger.debug('Failed to subscribe algorithm DensityOfStates; The python package scipy may be missing.')
+    logger.debug('Failed to subscribe algorithm SimulatedDensityOfStates; The python package scipy may be missing.')
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TimeSlice.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TimeSlice.py
index 546317d0c6feb0a4c0ccbb6fcb020d5f5f2d52c8..cfb86873a3a1330d3f5c882ee82239cf868cb600 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TimeSlice.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TimeSlice.py
@@ -55,8 +55,6 @@ class TimeSlice(PythonAlgorithm):
     _background_range = None
     _calib_ws = None
     _out_ws_group = None
-    _plot = None
-    _save = None
 
     def category(self):
         return 'PythonAlgorithms;Inelastic'
@@ -83,12 +81,6 @@ class TimeSlice(PythonAlgorithm):
         self.declareProperty(FloatArrayProperty(name='BackgroundRange'),
                              doc='Background range in time of flight')
 
-        self.declareProperty(name='Plot', defaultValue=False,
-                             doc='Plot result workspaces')
-
-        self.declareProperty(name='Save', defaultValue=False,
-                             doc='Save result workspaces as nexus files to default save directory')
-
         self.declareProperty(name='OutputNameSuffix', defaultValue='_slice',
                              doc='Suffix to append to raw file name for name of output workspace')
 
@@ -150,25 +142,10 @@ class TimeSlice(PythonAlgorithm):
             out_ws_list.append(slice_file)
             DeleteWorkspace(raw_file)
 
-            if self._save:
-                work_dir = config['defaultsave.directory']
-                save_path = os.path.join(work_dir, slice_file + '.nxs')
-                SaveNexusProcessed(InputWorkspace=slice_file, Filename=save_path)
-                logger.information('Output file :' + save_path)
-
         all_workspaces = ','.join(out_ws_list)
         GroupWorkspaces(InputWorkspaces=all_workspaces, OutputWorkspace=self._out_ws_group)
         self.setProperty('OutputWorkspace', self._out_ws_group)
 
-        if self._plot:
-            try:
-                from IndirectImport import import_mantidplot
-                mp = import_mantidplot()
-                mp.plotSpectrum(slice_file, 0)
-            except RuntimeError:
-                # User clicked cancel on plot so don't do anything
-                pass
-
 
     def _setup(self):
         """
@@ -190,9 +167,6 @@ class TimeSlice(PythonAlgorithm):
 
         self._out_ws_group = self.getPropertyValue('OutputWorkspace')
 
-        self._plot = self.getProperty('Plot').value
-        self._save = self.getProperty('Save').value
-
 
     def _read_raw_file(self, filename):
         """
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TransformToIqt.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TransformToIqt.py
index 585b1e1baf00e2265aceaff2a271071eae0fe3e6..0b397290d3ef939e8927f16eee6dd9a091ae5ceb 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TransformToIqt.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TransformToIqt.py
@@ -17,8 +17,6 @@ class TransformToIqt(PythonAlgorithm):
     _number_points_per_bin = None
     _parameter_table = None
     _output_workspace = None
-    _plot = None
-    _save = None
     _dry_run = None
 
 
@@ -31,12 +29,14 @@ class TransformToIqt(PythonAlgorithm):
 
 
     def PyInit(self):
-        self.declareProperty(MatrixWorkspaceProperty('SampleWorkspace', '',\
-                             optional=PropertyMode.Mandatory, direction=Direction.Input),
+        self.declareProperty(MatrixWorkspaceProperty('SampleWorkspace', '',
+                                                     optional=PropertyMode.Mandatory,
+                                                     direction=Direction.Input),
                              doc="Name for the sample workspace.")
 
-        self.declareProperty(MatrixWorkspaceProperty('ResolutionWorkspace', '',\
-                             optional=PropertyMode.Mandatory, direction=Direction.Input),
+        self.declareProperty(MatrixWorkspaceProperty('ResolutionWorkspace', '',
+                                                     optional=PropertyMode.Mandatory,
+                                                     direction=Direction.Input),
                              doc="Name for the resolution workspace.")
 
         self.declareProperty(name='EnergyMin', defaultValue=-0.5,
@@ -47,18 +47,16 @@ class TransformToIqt(PythonAlgorithm):
                              doc='Decrease total number of spectrum points by this ratio through merging of '
                                  'intensities from neighbouring bins. Default=1')
 
-        self.declareProperty(MatrixWorkspaceProperty('ParameterWorkspace', '',\
-                             direction=Direction.Output, optional=PropertyMode.Optional),
+        self.declareProperty(MatrixWorkspaceProperty('ParameterWorkspace', '',
+                                                     direction=Direction.Output,
+                                                     optional=PropertyMode.Optional),
                              doc='Table workspace for saving TransformToIqt properties')
 
-        self.declareProperty(MatrixWorkspaceProperty('OutputWorkspace', '',\
-                             direction=Direction.Output, optional=PropertyMode.Optional),
+        self.declareProperty(MatrixWorkspaceProperty('OutputWorkspace', '',
+                                                     direction=Direction.Output,
+                                                     optional=PropertyMode.Optional),
                              doc='Output workspace')
 
-        self.declareProperty(name='Plot', defaultValue=False,
-                             doc='Switch Plot Off/On')
-        self.declareProperty(name='Save', defaultValue=False,
-                             doc='Switch Save result to nxs file Off/On')
         self.declareProperty(name='DryRun', defaultValue=False,
                              doc='Only calculate and output the parameters')
 
@@ -69,18 +67,10 @@ class TransformToIqt(PythonAlgorithm):
         self._calculate_parameters()
 
         if not self._dry_run:
-            self._fury()
+            self._transform()
 
             self._add_logs()
 
-            if self._save:
-                workdir = config['defaultsave.directory']
-                opath = os.path.join(workdir, self._output_workspace + '.nxs')
-                SaveNexusProcessed(InputWorkspace=self._output_workspace, Filename=opath)
-                logger.information('Output file : ' + opath)
-
-            if self._plot:
-                self._plot_output()
         else:
             logger.information('Dry run, will not run TransformToIqt')
 
@@ -92,6 +82,7 @@ class TransformToIqt(PythonAlgorithm):
         """
         Gets algorithm properties.
         """
+
         from IndirectCommon import getWSprefix
 
         self._sample = self.getPropertyValue('SampleWorkspace')
@@ -109,8 +100,6 @@ class TransformToIqt(PythonAlgorithm):
         if self._output_workspace == '':
             self._output_workspace = getWSprefix(self._sample) + 'iqt'
 
-        self._plot = self.getProperty('Plot').value
-        self._save = self.getProperty('Save').value
         self._dry_run = self.getProperty('DryRun').value
 
 
@@ -136,8 +125,10 @@ class TransformToIqt(PythonAlgorithm):
         """
         Calculates the TransformToIqt parameters and saves in a table workspace.
         """
-        CropWorkspace(InputWorkspace=self._sample, OutputWorkspace='__TransformToIqt_sample_cropped',
-                      Xmin=self._e_min, Xmax=self._e_max)
+        CropWorkspace(InputWorkspace=self._sample,
+                      OutputWorkspace='__TransformToIqt_sample_cropped',
+                      Xmin=self._e_min,
+                      Xmax=self._e_max)
         x_data = mtd['__TransformToIqt_sample_cropped'].readX(0)
         number_input_points = len(x_data) - 1
         num_bins = int(number_input_points / self._number_points_per_bin)
@@ -189,33 +180,19 @@ class TransformToIqt(PythonAlgorithm):
         self.setProperty('ParameterWorkspace', param_table)
 
 
-    def _plot_output(self):
-        """
-        Plot output.
-        """
-        from IndirectImport import import_mantidplot
-        mtd_plot = import_mantidplot()
-
-        spectra_range = range(0, mtd[self._output_workspace].getNumberHistograms())
-
-        graph = mtd_plot.plotSpectrum(self._output_workspace, spectra_range)
-
-        layer = graph.activeLayer()
-        layer.setScale(mtd_plot.Layer.Left, 0, 1.0)
-
-
     def _add_logs(self):
-        AddSampleLog(Workspace=self._output_workspace, LogName='fury_resolution_ws',
-                     LogType='String', LogText=self._resolution)
-        AddSampleLog(Workspace=self._output_workspace, LogName='fury_rebin_emin',
-                     LogType='Number', LogText=str(self._e_min))
-        AddSampleLog(Workspace=self._output_workspace, LogName='fury_rebin_ewidth',
-                     LogType='Number', LogText=str(self._e_width))
-        AddSampleLog(Workspace=self._output_workspace, LogName='fury_rebin_emax',
-                     LogType='Number', LogText=str(self._e_max))
+        sample_logs = [
+                ('iqt_sample_workspace', self._sample),
+                ('iqt_resolution_workspace', self._resolution),
+                ('iqt_binning', '%f,%f,%f' % (self._e_min, self._e_width, self._e_max))
+            ]
 
+        AddSampleLogMultiple(Workspace=self._output_workspace,
+                             LogNames=[item[0] for item in sample_logs],
+                             LogValues=[item[1] for item in sample_logs])
 
-    def _fury(self):
+
+    def _transform(self):
         """
         Run TransformToIqt.
         """
@@ -236,25 +213,47 @@ class TransformToIqt(PythonAlgorithm):
             CheckHistSame(self._sample, 'Sample', self._resolution, 'Resolution')
 
         rebin_param = str(self._e_min) + ',' + str(self._e_width) + ',' + str(self._e_max)
-        Rebin(InputWorkspace=self._sample, OutputWorkspace='__sam_rebin', Params=rebin_param,
-              FullBinsOnly=True)
 
-        Rebin(InputWorkspace=self._resolution, OutputWorkspace='__res_data', Params=rebin_param)
-        Integration(InputWorkspace='__res_data', OutputWorkspace='__res_int')
-        ConvertToPointData(InputWorkspace='__res_data', OutputWorkspace='__res_data')
-        ExtractFFTSpectrum(InputWorkspace='__res_data', OutputWorkspace='__res_fft', FFTPart=2)
-        Divide(LHSWorkspace='__res_fft', RHSWorkspace='__res_int', OutputWorkspace='__res')
-
-        Rebin(InputWorkspace='__sam_rebin', OutputWorkspace='__sam_data', Params=rebin_param)
-        Integration(InputWorkspace='__sam_data', OutputWorkspace='__sam_int')
-        ConvertToPointData(InputWorkspace='__sam_data', OutputWorkspace='__sam_data')
-        ExtractFFTSpectrum(InputWorkspace='__sam_data', OutputWorkspace='__sam_fft', FFTPart=2)
-        Divide(LHSWorkspace='__sam_fft', RHSWorkspace='__sam_int', OutputWorkspace='__sam')
+        Rebin(InputWorkspace=self._sample,
+              OutputWorkspace='__sam_data',
+              Params=rebin_param,
+              FullBinsOnly=True)
 
-        Divide(LHSWorkspace='__sam', RHSWorkspace='__res', OutputWorkspace=self._output_workspace)
+        # Sample
+        Rebin(InputWorkspace='__sam_data',
+              OutputWorkspace='__sam_data',
+              Params=rebin_param)
+        Integration(InputWorkspace='__sam_data',
+                    OutputWorkspace='__sam_int')
+        ConvertToPointData(InputWorkspace='__sam_data',
+                           OutputWorkspace='__sam_data')
+        ExtractFFTSpectrum(InputWorkspace='__sam_data',
+                           OutputWorkspace='__sam_fft',
+                           FFTPart=2)
+        Divide(LHSWorkspace='__sam_fft',
+               RHSWorkspace='__sam_int',
+               OutputWorkspace='__sam')
+
+        # Resolution
+        Rebin(InputWorkspace=self._resolution,
+              OutputWorkspace='__res_data',
+              Params=rebin_param)
+        Integration(InputWorkspace='__res_data',
+                    OutputWorkspace='__res_int')
+        ConvertToPointData(InputWorkspace='__res_data',
+                           OutputWorkspace='__res_data')
+        ExtractFFTSpectrum(InputWorkspace='__res_data',
+                           OutputWorkspace='__res_fft',
+                           FFTPart=2)
+        Divide(LHSWorkspace='__res_fft',
+               RHSWorkspace='__res_int',
+               OutputWorkspace='__res')
+
+        Divide(LHSWorkspace='__sam',
+               RHSWorkspace='__res',
+               OutputWorkspace=self._output_workspace)
 
         # Cleanup sample workspaces
-        DeleteWorkspace('__sam_rebin')
         DeleteWorkspace('__sam_data')
         DeleteWorkspace('__sam_int')
         DeleteWorkspace('__sam_fft')
@@ -263,9 +262,14 @@ class TransformToIqt(PythonAlgorithm):
         # Crop nonsense values off workspace
         binning = int(math.ceil(mtd[self._output_workspace].blocksize() / 2.0))
         bin_v = mtd[self._output_workspace].dataX(0)[binning]
-        CropWorkspace(InputWorkspace=self._output_workspace, OutputWorkspace=self._output_workspace,
+        CropWorkspace(InputWorkspace=self._output_workspace,
+                      OutputWorkspace=self._output_workspace,
                       XMax=bin_v)
 
+        # Set Y axis unit and label
+        mtd[self._output_workspace].setYUnit('')
+        mtd[self._output_workspace].setYUnitLabel('Intensity')
+
         # Clean up resolution workspaces
         DeleteWorkspace('__res_data')
         DeleteWorkspace('__res_int')
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/dnsdata.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/dnsdata.py
index b6f556eeb5565205fb56c8e04d8a9e7905580080..9117cf9c724b3939c5cdfb027cc1f852a8b49981 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/dnsdata.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/dnsdata.py
@@ -1,11 +1,13 @@
 #pylint: disable=invalid-name,too-many-instance-attributes,too-few-public-methods,anomalous-backslash-in-string
-import sys, re
+import sys
+import re
 import datetime
 
+
 class DNSdata(object):
     """
-    class which describes the DNS data structure
-    will be used for data read-in and write-out routines
+    this class describes the DNS data structure
+    will be used for DNS data read-in and write-out routines
     """
     def __init__(self):
         self.title = ""
@@ -56,7 +58,6 @@ class DNSdata(object):
         self.chopper_slits = None
         self.monitor_counts = None
 
-
     def read_legacy(self, filename):
         """
         reads the DNS legacy ascii file into the DNS data object
@@ -64,14 +65,14 @@ class DNSdata(object):
         with open(filename, 'r') as fhandler:
             # read file content and split it into blocks
             splitsymbol = \
-                    '#--------------------------------------------------------------------------'
+                '#--------------------------------------------------------------------------'
             unparsed = fhandler.read()
             blocks = unparsed.split(splitsymbol)
 
             # parse each block
             # parse block 0 (header)
             res = parse_header(blocks[0])
-            #if not res: raise Exception "wrong file format" else
+            # if not res: raise Exception "wrong file format" else
             try:
                 self.run_number = res['file']
                 self.experiment_number = res['exp']
@@ -104,7 +105,6 @@ class DNSdata(object):
                     self.befilter_status = res.group("filter")
                     b1rest.remove(line)
                 # the rest unparsed lines go to notes for the moment
-                # [TODO]: parse more information about the sample
                 self.notes = ' '.join(b1rest)
 
             # parse block 2 (wavelength and mochromator angle)
@@ -128,24 +128,24 @@ class DNSdata(object):
             self.cradle_upper = float(b3splitted[7].split()[1])
             # Slit_i, convert mm to meter
             self.slit_i_upper_blade_position = \
-                    0.001*float(b3splitted[9].split()[2])
+                float(b3splitted[9].split()[2])
             self.slit_i_lower_blade_position = \
-                    0.001*float(b3splitted[10].split()[1])
+                float(b3splitted[10].split()[1])
             self.slit_i_left_blade_position = \
-                    0.001*float(b3splitted[11].split()[2])
+                float(b3splitted[11].split()[2])
             self.slit_i_right_blade_position = \
-                    0.001*float(b3splitted[12].split()[1])
-            # Slit_f
+                float(b3splitted[12].split()[1])
+            # Slit_f, does not exist in the recent configuration
             self.slit_f_upper_blade_position = \
-                    0.001*float(b3splitted[14].split()[1])
+                float(b3splitted[14].split()[1])
             self.slit_f_lower_blade_position = \
-                    0.001*float(b3splitted[15].split()[1])
+                float(b3splitted[15].split()[1])
             # Detector_position vertical
             self.detector_position_vertical = \
-                    0.001*float(b3splitted[16].split()[1])
+                0.001*float(b3splitted[16].split()[1])
             # Polarizer
             self.polarizer_translation = \
-                    0.001*float(b3splitted[19].split()[1])
+                0.001*float(b3splitted[19].split()[1])
             self.polarizer_rotation = float(b3splitted[20].split()[1])
 
             # parse block 4 (B-fields), only currents in A are taken
@@ -157,7 +157,6 @@ class DNSdata(object):
             self.c_coil_current = float(b4splitted[6].split()[1])
             self.z_coil_current = float(b4splitted[7].split()[1])
 
-
             # parse block 5 (Temperatures)
             # assume: T1=cold_head_temperature, T2=sample_temperature
             b5splitted = [s.strip() for s in blocks[5].split('#')]
@@ -182,7 +181,7 @@ class DNSdata(object):
             b7splitted = [s.strip() for s in blocks[7].split('#')]
             # duration
             line = b7splitted[2].split()
-            self.duration = float(line[1]) # assume seconds [TODO]: check
+            self.duration = float(line[1])   # assume seconds
             # monitor data
             line = b7splitted[3].split()
             self.monitor_counts = int(line[1])
@@ -215,8 +214,3 @@ if __name__ == '__main__':
     dns_data = DNSdata()
     dns_data.read_legacy(fname)
     print dns_data.__dict__
-
-
-
-
-
diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/sfCalculator.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/sfCalculator.py
index 9d4747852155da787eb9c8d7693a45e0e7ea3ad4..158e412dd1307bdeafc81a959550777038799c78 100644
--- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/sfCalculator.py
+++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/sfCalculator.py
@@ -2,7 +2,6 @@
 from mantid.simpleapi import *
 import numpy as np
 import os.path
-import math
 
 PRECISION = 0.020
 
@@ -205,7 +204,7 @@ class sfCalculator(object):
 
             tmp_value = (float(self.y_axis_error_numerator[i]) / float(self.y_axis_numerator[i])) **2 + \
                         (float(self.y_axis_error_denominator[i]) / float(self.y_axis_denominator[i])) **2
-            tmp_value = math.np.sqrt(tmp_value)
+            tmp_value = np.sqrt(tmp_value)
             new_y_axis_error_ratio[i] = self.y_axis_ratio[i]* tmp_value
         self.y_axis_error_ratio = new_y_axis_error_ratio
 
@@ -220,7 +219,6 @@ class sfCalculator(object):
         else:
             return False
 
-
     def _calculateFinalYAxis(self, bNumerator=True):
         """
         run full calculation for numerator or denominator
@@ -501,7 +499,7 @@ class sfCalculator(object):
             dataDen = 1
 
         mean = dataNum / dataDen
-        mean_error = math.np.sqrt(dataDen)
+        mean_error = np.sqrt(dataDen)
 
         return (mean, mean_error)
 
@@ -523,7 +521,7 @@ class sfCalculator(object):
         sz = len(data_error)
         new_data_error = np.zeros(sz)
         for i in range(sz):
-            new_data_error[i] = math.np.sqrt(data_error[i]**2 + background_error**2)
+            new_data_error[i] = np.sqrt(data_error[i]**2 + background_error**2)
 
         return new_data_error
 
@@ -537,7 +535,7 @@ class sfCalculator(object):
             sum_peak += peak[i]
             sum_peak_error += peak_error[i]**2
 
-        sum_peak_error = math.np.sqrt(sum_peak_error)
+        sum_peak_error = np.sqrt(sum_peak_error)
         return [sum_peak, sum_peak_error]
 
     #pylint: disable=unused-argument
@@ -691,7 +689,7 @@ class sfCalculator(object):
 
             tmp_product = (other.y_axis_error_ratio[i] / other.y_axis_ratio[i]) ** 2 + \
                           (self.y_axis_error_ratio[i] / self.y_axis_ratio[i]) ** 2
-            tmp_product = math.np.sqrt(tmp_product)
+            tmp_product = np.sqrt(tmp_product)
             new_y_axis_error_ratio[i] = tmp_product * product.y_axis_ratio[i]
         product.y_axis_error_ratio = new_y_axis_error_ratio
 
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/CMakeLists.txt b/Code/Mantid/Framework/PythonInterface/test/python/mantid/CMakeLists.txt
index afca778cadc9bb6a307fc9543f789e606e012091..51b48b4faa378ed3cfe45d949706d3b99b1cc2ae 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/mantid/CMakeLists.txt
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/CMakeLists.txt
@@ -5,7 +5,7 @@ add_subdirectory( kernel )
 add_subdirectory( geometry )
 add_subdirectory( api )
 
-set ( TEST_PY_FILES 
+set ( TEST_PY_FILES
   ImportModuleTest.py
   SimpleAPITest.py
   SimpleAPILoadTest.py
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/CMakeLists.txt b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/CMakeLists.txt
index 57b1f1b8c6bf6608895199784738317b1bf253a6..737bead8c29041166cca9e70c2fd0a5b30dca21a 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/CMakeLists.txt
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/CMakeLists.txt
@@ -20,6 +20,7 @@ set ( TEST_PY_FILES
   FunctionPropertyTest.py
   IEventWorkspaceTest.py
   IFunction1DTest.py
+  IMaskWorkspaceTest.py
   IPeakFunctionTest.py
   IPeaksWorkspaceTest.py
   ITableWorkspaceTest.py
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/IMaskWorkspaceTest.py b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/IMaskWorkspaceTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..08ecc61bc3cdb25552cecb66b378e6f641d07f30
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/IMaskWorkspaceTest.py
@@ -0,0 +1,27 @@
+import unittest
+from mantid.api import AnalysisDataService, IMaskWorkspace
+from testhelpers import run_algorithm, WorkspaceCreationHelper
+
+class IMaskWorkspaceTest(unittest.TestCase):
+
+    def test_MaskWorkspace_Is_Retrievable(self):
+        dummy_ws = WorkspaceCreationHelper.create2DWorkspaceWithFullInstrument(2, 102, False) # no monitors
+        ws_name = "dummy"
+        AnalysisDataService.add(ws_name, dummy_ws)
+        run_algorithm('MaskDetectors', Workspace=ws_name, WorkspaceIndexList=1)
+        mask_name = 'mask_ws'
+        run_algorithm('ExtractMask', InputWorkspace=ws_name, OutputWorkspace=mask_name)
+        masked_ws = AnalysisDataService[mask_name]
+
+        self.assertTrue(isinstance(masked_ws, IMaskWorkspace))
+        self.assertEqual(1, masked_ws.getNumberMasked())
+        # single number
+        self.assertTrue(not masked_ws.isMasked(1))
+        self.assertTrue(masked_ws.isMasked(2))
+        # list
+        self.assertTrue(not masked_ws.isMasked([1]))
+        self.assertTrue(masked_ws.isMasked([2]))
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/MDHistoWorkspaceTest.py b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/MDHistoWorkspaceTest.py
index a50771c28876a17a6c05fc3d5745a9ea8e325404..df9ef0128da0422b8ac8424b8c0bc710e59b5960 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/MDHistoWorkspaceTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/MDHistoWorkspaceTest.py
@@ -38,7 +38,7 @@ class MDHistoWorkspaceTest(unittest.TestCase):
                       Dimensionality='2',Extents='-1,1,-1,1',NumberOfBins='3,3',Names='A,B',Units='U,T',OutputWorkspace='demo')
         testWS = mtd['demo']
         signal = testWS.getSignalArray()
-        expected = numpy.array([[1,2,3],[4,5,6],[7,8,9]])
+        expected = numpy.array([[1,4,7],[2,5,8],[3,6,9]])
         self._verify_numpy_data(signal, expected)
 
         mtd.remove('demo')
@@ -208,7 +208,7 @@ class MDHistoWorkspaceTest(unittest.TestCase):
                       AlignedDim2="z,0,10,30", IterateEvents="1", Parallel="0")
         BH = mtd['BH']
         signal = BH.getSignalArray()
-        expected =(30L, 1L, 20L)
+        expected =(20L, 1L, 30L)
         shape = signal.shape
         self.assertEqual(shape,expected)
         mtd.remove('BH')
@@ -218,7 +218,7 @@ class MDHistoWorkspaceTest(unittest.TestCase):
                        IterateEvents="1", Parallel="0")
         BH = mtd['BH']
         signal = BH.getSignalArray()
-        expected =(1L, 20L)
+        expected =(20L, 1L)
         shape = signal.shape
         self.assertEqual(shape,expected)
         mtd.remove('BH')
@@ -238,13 +238,13 @@ class MDHistoWorkspaceTest(unittest.TestCase):
         nEvents = BH.getNEvents();
         self.assertEqual(nEvents,1000);
         signal = BH.getSignalArray()
-        expected =(40L,5L,20L)
+        expected =(20L,5L,40L)
         shape = signal.shape
         self.assertEqual(shape,expected)
 
         for i in range(0,expected[1]):
-    		self.assertEqual(signal[2,i,1],2)
-    		self.assertEqual(signal[1,i,2],0)
+    		self.assertEqual(signal[1,i,2],2)
+    		self.assertEqual(signal[2,i,1],0)
 
 
         self.assertEqual(BH.signalAt(3+20*(2+5*1)),signal[1,2,3])
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/MatrixWorkspaceTest.py b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/MatrixWorkspaceTest.py
index 8f107cb34cfb41d10134d8106dbe1033c70c8733..7b27a63bd91e8261f9859a5d8ef894e5f21f4dc5 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/MatrixWorkspaceTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/MatrixWorkspaceTest.py
@@ -97,12 +97,25 @@ class MatrixWorkspaceTest(unittest.TestCase):
         # Is Workspace in the hierarchy of the value
         self.assertTrue(isinstance(propValue, Workspace))
         # Have got a MatrixWorkspace back and not just the generic interface
-        self.assertEquals(type(propValue), MatrixWorkspace)
+        self.assertTrue(isinstance(propValue, MatrixWorkspace))
         mem = propValue.getMemorySize()
         self.assertTrue( (mem > 0) )
 
         AnalysisDataService.remove(wsname)
 
+    def test_that_a_histogram_workspace_is_returned_as_a_MatrixWorkspace_from_ADS(self):
+        wsname = "MatrixWorkspaceTest_ADS"
+        AnalysisDataService.add(wsname,self._test_ws)
+
+        value = AnalysisDataService[wsname]
+        self.assertTrue(isinstance(value, Workspace))
+        # Have got a MatrixWorkspace back and not just the generic interface
+        self.assertTrue(isinstance(value, MatrixWorkspace))
+        mem = value.getMemorySize()
+        self.assertTrue( (mem > 0) )
+
+        AnalysisDataService.remove(wsname)
+
     def test_read_data_members_give_readonly_numpy_array(self):
         def do_numpy_test(arr):
             self.assertEquals(type(arr), np.ndarray)
@@ -334,4 +347,3 @@ class MatrixWorkspaceTest(unittest.TestCase):
 
 if __name__ == '__main__':
     unittest.main()
-
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/RunPythonScriptTest.py b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/RunPythonScriptTest.py
index 633b128ce5a9a5aada5f692b946c306a3f4d2c43..bc80c0656d2a6d3804fb12146f282605dc4c9e94 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/RunPythonScriptTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/RunPythonScriptTest.py
@@ -72,6 +72,7 @@ if not isinstance(input, IMDEventWorkspace): raise RuntimeError("Input workspace
 
     def test_withNoInputWorkspace(self):
         c = RunPythonScript(Code="output = CreateSingleValuedWorkspace(DataValue='1')")
+        self.assertEqual(c.name(), "c")
         self.assertEqual(c.readY(0)[0], 1)
 
     def test_algorithm_executes_once_for_whole_input_group_and_not_once_per_group_member(self):
@@ -113,4 +114,3 @@ if not isinstance(input, IMDEventWorkspace): raise RuntimeError("Input workspace
 
 if __name__ == '__main__':
     unittest.main()
-
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/WorkspaceFactoryTest.py b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/WorkspaceFactoryTest.py
index d18f4ced57a3b30d3e373c77db8b7b6a10b7902a..a5e07a9df84b74ab7470a344213d361e8fc23165 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/WorkspaceFactoryTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/WorkspaceFactoryTest.py
@@ -13,7 +13,7 @@ class WorkspaceFactoryTest(unittest.TestCase):
                                        XLength=xlength, YLength=ylength)
 
     def _verify(self, wksp, nhist, xlength, ylength):
-        self.assertEquals(type(wksp), MatrixWorkspace)
+        self.assertTrue(isinstance(wksp, MatrixWorkspace))
         self.assertEquals(wksp.id(), "Workspace2D")
         self.assertEquals(wksp.getNumberHistograms(), nhist)
         self.assertEquals(len(wksp.readX(0)), xlength)
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/WorkspaceGroupTest.py b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/WorkspaceGroupTest.py
index 4bc3c5f2e561c22f76a2480825e88d5de39b8ea0..92af5872f624db9c64c353f5871ee235e2a3d3f6 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/WorkspaceGroupTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/api/WorkspaceGroupTest.py
@@ -42,6 +42,15 @@ class WorkspaceGroupTest(unittest.TestCase):
             member = group[i]
             self.assertTrue(isinstance(member, MatrixWorkspace))
 
+        # Clearing the data should leave the handle unusable
+        member = group[0]
+        mtd.remove("First")
+        try:
+            member.name()
+            self.fail("Handle for item extracted from WorkspaceGroup is still usable after ADS has been cleared, it should be a weak reference and raise an error.")
+        except RuntimeError, exc:
+            self.assertEquals(str(exc), 'Variable invalidated, data has been deleted.')
+
     def test_SimpleAlgorithm_Accepts_Group_Handle(self):
         from mantid.simpleapi import Scale
 
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/geometry/SymmetryElementTest.py b/Code/Mantid/Framework/PythonInterface/test/python/mantid/geometry/SymmetryElementTest.py
index 56196d1653a8a89d5a5afa145663d01aafbf9f90..bceef787360feeb7b83afb0c3ecb9b309d860d00 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/mantid/geometry/SymmetryElementTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/geometry/SymmetryElementTest.py
@@ -8,23 +8,40 @@ class SymmetryElementTest(unittest.TestCase):
     def test_creation_axis(self):
         symOp = SymmetryOperationFactory.createSymOp("x,y,-z")
         symEle = SymmetryElementFactory.createSymElement(symOp)
-	
-	self.assertEquals(symEle.getHMSymbol(), "m")
-	self.assertEquals(symEle.getAxis(), V3D(0,0,1))
-	
-	rotation = SymmetryOperationFactory.createSymOp("x,-y,-z")
+
+        self.assertEquals(symEle.getHMSymbol(), "m")
+        self.assertEquals(symEle.getAxis(), V3D(0,0,1))
+
+        rotation = SymmetryOperationFactory.createSymOp("x,-y,-z")
         rotationElement = SymmetryElementFactory.createSymElement(rotation)
-	
-	self.assertEquals(rotationElement.getHMSymbol(), "2")
-	self.assertEquals(rotationElement.getAxis(), V3D(1,0,0))
+
+        self.assertEquals(rotationElement.getHMSymbol(), "2")
+        self.assertEquals(rotationElement.getAxis(), V3D(1,0,0))
 
     def test_creation_no_axis(self):
         symOp = SymmetryOperationFactory.createSymOp("-x,-y,-z")
         symEle = SymmetryElementFactory.createSymElement(symOp)
-	
-	self.assertEquals(symEle.getHMSymbol(), "-1")
-	self.assertEquals(symEle.getAxis(), V3D(0,0,0))
+
+        self.assertEquals(symEle.getHMSymbol(), "-1")
+        self.assertEquals(symEle.getAxis(), V3D(0,0,0))
+
+    def test_creation_rotation(self):
+        symOpPlus = SymmetryOperationFactory.createSymOp("-y,x-y,z")
+        symElePlus = SymmetryElementFactory.createSymElement(symOpPlus)
+
+        self.assertEquals(symElePlus.getRotationSense(), SymmetryElement.RotationSense.Positive)
+
+        symOpMinus = SymmetryOperationFactory.createSymOp("-x+y,-x,z")
+        symEleMinus = SymmetryElementFactory.createSymElement(symOpMinus)
+
+        self.assertEquals(symEleMinus.getRotationSense(), SymmetryElement.RotationSense.Negative)
+
+    def test_creation_no_rotation(self):
+        symOpNone = SymmetryOperationFactory.createSymOp("-x,-y,-z")
+        symEleNone = SymmetryElementFactory.createSymElement(symOpNone)
+
+        self.assertEquals(symEleNone.getRotationSense(), SymmetryElement.RotationSense.None)
 
 
 if __name__ == '__main__':
-    unittest.main()
\ No newline at end of file
+    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/mantid/kernel/ConfigServiceTest.py b/Code/Mantid/Framework/PythonInterface/test/python/mantid/kernel/ConfigServiceTest.py
index 5f0064c92b7c253a7387965fdecefa950282da81..243f83809447e746d0fae6d0695840d7a0eccb2e 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/mantid/kernel/ConfigServiceTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/mantid/kernel/ConfigServiceTest.py
@@ -1,5 +1,6 @@
 import unittest
 import os
+import testhelpers
 
 from mantid.kernel import (ConfigService, ConfigServiceImpl, config,
                            std_vector_str, FacilityInfo, InstrumentInfo)
@@ -89,8 +90,11 @@ class ConfigServiceTest(unittest.TestCase):
         self.assertTrue('tmp' in paths[0])
         self.assertTrue('tmp_2' in paths[1])
         self._clean_up_test_areas()
-
-
+            
+    def test_setting_log_channel_levels(self):
+        testhelpers.assertRaisesNothing(self, config.setFileLogLevel, 4)
+        testhelpers.assertRaisesNothing(self, config.setConsoleLogLevel, 4)
+    
     def _setup_test_areas(self):
         """Create a new data search path string
         """
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/AddSampleLogMultipleTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/AddSampleLogMultipleTest.py
index 8dda9002746d6dbda8878e86e9abecc2d45e1793..07ab2000ef89762a197ce4e5768e0a9b75f9b442 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/AddSampleLogMultipleTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/AddSampleLogMultipleTest.py
@@ -24,16 +24,19 @@ class AddSampleLogMultipleTest(unittest.TestCase):
         DeleteWorkspace(self._workspace)
 
 
-    def _validate_sample_logs(self, names, values, types):
+    def _validate_sample_logs(self, names, values, types, units=None):
         """
         Validates sample logs set on workspace.
 
         @param names List of sample log names
         @param values List of sample log values
         @param types List of sample log types
+        @param units List of sample unit names
         """
-        logs = self._workspace.getSampleDetails().getLogData()
+        logs = self._workspace.getRun().getProperties()
         matched_logs = list()
+        if units==None:
+            units=['']*len(names)
 
         for log in logs:
             if log.name in names:
@@ -42,6 +45,7 @@ class AddSampleLogMultipleTest(unittest.TestCase):
 
                 self.assertEqual(log.value, values[idx])
                 self.assertEqual(log.type, types[idx])
+                self.assertEqual(log.units, units[idx])
 
         self.assertEqual(matched_logs, names)
 
@@ -75,6 +79,35 @@ class AddSampleLogMultipleTest(unittest.TestCase):
 
         self._validate_sample_logs(names, values, types)
 
+    def test_units(self):
+        """
+        Test validation for wrong number of units
+        """
+        names = ['a', 'b', 'c']
+        values = ['one', 'two', 'three']
+        units = ['unit_a', 'unit_b', 'unit_c']
+        types = ['string', 'string', 'string']
+
+        AddSampleLogMultiple(Workspace=self._workspace,
+                             LogNames=names,
+                             LogValues=values,
+                             LogUnits=units)
+        self._validate_sample_logs(names, values, types,units)
+
+    def test_validation_wrong_units(self):
+        """
+        Test validation for wrong number of units
+        """
+        names = ['a', 'b', 'c']
+        values = ['one', 'two', 'three']
+        units = ['unit_a', 'unit_b']
+
+        self.assertRaises(RuntimeError,
+                          AddSampleLogMultiple,
+                          Workspace=self._workspace,
+                          LogNames=names,
+                          LogValues=values,
+                          LogUnits=units)        
 
     def test_validation_no_names(self):
         """
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/CMakeLists.txt b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/CMakeLists.txt
index 189f27636c225d18f5561110ca63faca1ce51cee..702e0e0d4becd3b27a27ba50567fb53065be4852 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/CMakeLists.txt
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/CMakeLists.txt
@@ -16,12 +16,11 @@ set ( TEST_PY_FILES
   CylinderPaalmanPingsCorrectionTest.py
   CylinderPaalmanPingsCorrection2Test.py
   DakotaChiSquaredTest.py
-  DensityOfStatesTest.py
   DSFinterpTest.py
-  EnginXCalibrateFullTest.py
-  EnginXCalibrateTest.py
-  EnginXFitPeaksTest.py
-  EnginXFocusTest.py
+  EnggCalibrateFullTest.py
+  EnggCalibrateTest.py
+  EnggFitPeaksTest.py
+  EnggFocusTest.py
   FilterLogByTimeTest.py
   FindReflectometryLinesTest.py
   FlatPlatePaalmanPingsCorrectionTest.py
@@ -33,6 +32,7 @@ set ( TEST_PY_FILES
   IndirectTransmissionTest.py
   IndirectTransmissionMonitorTest.py
   ILLIN16BCalibrationTest.py
+  ISISIndirectDiffractionReductionTest.py
   ISISIndirectEnergyTransferTest.py
   LoadDNSLegacyTest.py
   LoadFullprofFileTest.py
@@ -46,11 +46,14 @@ set ( TEST_PY_FILES
   MergeCalFilesTest.py
   MolDynTest.py
   MSDFitTest.py
+  OSIRISDiffractionReductionTest.py
   PDDetermineCharacterizationsTest.py
+  ResNorm2Test.py
   RetrieveRunInfoTest.py
   SANSWideAngleCorrectionTest.py
   SavePlot1DTest.py
   SaveVulcanGSSTest.py
+  SimulatedDensityOfStatesTest.py
   SortByQVectorsTest.py
   SofQWMomentsTest.py
   SortDetectorsTest.py
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ConjoinSpectraTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ConjoinSpectraTest.py
index b387d4197b07f94b40989d91e609e4cc6ba55569..c7bbc984afe2e3e271d04ddd1299c7efe6a5248c 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ConjoinSpectraTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ConjoinSpectraTest.py
@@ -24,6 +24,7 @@ class ConjoinSpectraTest(unittest.TestCase):
         wsIndex = 0
         inDataY = mtd[self._aWS].readY(wsIndex)
         inDataE = mtd[self._aWS].readE(wsIndex)
+        print type(conjoinedWS)
         outDataY1 = conjoinedWS.readY(0)
         outDataY2 = conjoinedWS.readY(1)
         outDataE1 = conjoinedWS.readE(0)
@@ -43,4 +44,4 @@ class ConjoinSpectraTest(unittest.TestCase):
 
 
 if __name__ == '__main__':
-    unittest.main()
\ No newline at end of file
+    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggCalibrateFullTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggCalibrateFullTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..05877532f2700632d7758fd5a9400e89b115787c
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggCalibrateFullTest.py
@@ -0,0 +1,86 @@
+import unittest
+from mantid.simpleapi import *
+from mantid.api import *
+
+class EnggCalibrateFullTest(unittest.TestCase):
+
+    _data_ws = None
+
+    # Note not using @classmethod setUpClass / tearDownClass because that's not supported in the old
+    # unittest of rhel6. setUpClass would do LoadNexus(...) and then tearDownClass DeleteWorkspace(...)
+    def setUp(self):
+        """
+        Set up dependencies for one or more of the tests below.
+        """
+        if not self.__class__._data_ws:
+            self.__class__._data_ws = LoadNexus("ENGINX00228061.nxs", OutputWorkspace='ENGIN-X_test_ws')
+
+    def test_issues_with_properties(self):
+        """
+        Handle in/out property errors appropriately.
+        """
+
+        # No Filename property (required)
+        self.assertRaises(RuntimeError,
+                          EnggCalibrateFull,
+                          Input='foo', Bank='1')
+
+        # Wrong workspace name
+        self.assertRaises(RuntimeError,
+                          EnggCalibrateFull,
+                          Input='this_ws_is_not_there.not', Bank='2')
+
+        # mispelled ExpectedPeaks
+        self.assertRaises(RuntimeError,
+                          EnggCalibrateFull,
+                          InputWorkspace=self.__class__._data_ws, Bank='2', Peaks='2')
+
+        # mispelled OutDetPosFilename
+        self.assertRaises(RuntimeError,
+                          EnggCalibrateFull, OutDetPosFile='any.csv',
+                          InputWorkspace=self.__class__._data_ws, Bank='2', Peaks='2')
+
+        # all fine, except missing DetectorPositions (output)
+        self.assertRaises(RuntimeError,
+                          EnggCalibrateFull,
+                          InputWorkspace=self.__class__._data_ws, Bank='2')
+
+        # all fine, except Bank should be a string
+        self.assertRaises(RuntimeError,
+                          EnggCalibrateFull,
+                          InputWorkspace=self.__class__._data_ws, DetectorPositions=[0.6, 0.9],
+                          Bank=2)
+
+    def test_wrong_fit_fails_gracefully(self):
+        """
+        Checks a bad run fails reasonably.
+        """
+
+        # This should produce fitting 'given peak center ... is outside of data range'
+        # warnings and finally raise after a 'some peaks not found' error
+        self.assertRaises(RuntimeError,
+                          EnggCalibrateFull,
+                          InputWorkspace=self.__class__._data_ws, ExpectedPeaks=[0.01], Bank=1,
+                          DetectorPositions='out_det_positions_table')
+
+
+    def test_run_ok_but_bad_data(self):
+        """
+        Tests a run that doesn't go well becaus of inappropriate data is used here.
+        """
+
+        # This is not a realistic CalibrateFull run, but it just runs fine
+        # for testing purposes. A test with real (much larger) data that produces
+        # a correct fit is included in system tests
+        tbl_name = 'det_peaks_tbl'
+        det_peaks_tbl = CreateEmptyTableWorkspace()
+        self.assertRaises(RuntimeError,
+                          EnggCalibrateFull,
+                          InputWorkspace=self.__class__._data_ws, Bank=2,
+                          ExpectedPeaks='0.915, 1.257, 1.688',
+                          DetectorPositions=tbl_name)
+
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggCalibrateTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggCalibrateTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..8538f39bb1742a3ac9905b74404dfd84468bc19b
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggCalibrateTest.py
@@ -0,0 +1,114 @@
+import unittest
+from mantid.simpleapi import *
+from mantid.api import *
+
+class EnggCalibrateTest(unittest.TestCase):
+
+    _data_ws = None
+    _van_ws = None
+    _van_integ_tbl = None
+
+    # Note not using @classmethod setUpClass / tearDownClass because that's not supported in the old
+    # unittest of rhel6
+    def setUp(self):
+        """
+        Set up dependencies for one or more of the tests below.
+        """
+        if not self.__class__._data_ws:
+            self.__class__._data_ws = LoadNexus("ENGINX00228061.nxs", OutputWorkspace='ENGIN-X_test_ws')
+
+        if not self.__class__._van_ws:
+            # Note the pre-calculated file instead of the too big vanadium run
+            # self.__class__._van_ws = LoadNexus("ENGINX00236516.nxs", OutputWorkspace='ENGIN-X_test_vanadium_ws')
+            self.__class__._van_ws = LoadNexus(Filename=
+                                               'ENGINX_precalculated_vanadium_run000236516_bank_curves.nxs',
+                                               OutputWorkspace='ENGIN-X_vanadium_curves_test_ws')
+            self.__class__._van_integ_tbl = LoadNexus(Filename=
+                                                      'ENGINX_precalculated_vanadium_run000236516_integration.nxs',
+                                                      OutputWorkspace='ENGIN-X_vanadium_integ_test_ws')
+
+
+    def test_issues_with_properties(self):
+        """
+        Tests proper error handling when passing wrong properties or not passing required
+        ones.
+        """
+
+        # No InputWorkspace property (required)
+        self.assertRaises(RuntimeError,
+                          EnggCalibrate,
+                          File='foo', Bank='1')
+
+        # Wrong (mispelled) InputWorkspace property
+        self.assertRaises(RuntimeError,
+                          EnggCalibrate,
+                          InputWorkpace='anything_goes', Bank='2')
+
+        # mispelled ExpectedPeaks
+        tbl = CreateEmptyTableWorkspace(OutputWorkspace='test_table')
+        self.assertRaises(RuntimeError,
+                          EnggCalibrate,
+                          Inputworkspace=self.__class__._data_ws, DetectorPositions=tbl, Bank='2', Peaks='2')
+
+        # mispelled DetectorPositions
+        self.assertRaises(RuntimeError,
+                          EnggCalibrate,
+                          InputWorkspace=self.__class__._data_ws, Detectors=tbl, Bank='2', Peaks='2')
+
+        # There's no output workspace
+        self.assertRaises(RuntimeError,
+                          EnggCalibrate,
+                          InputWorkspace=self.__class__._data_ws, Bank='1')
+
+
+    def test_fails_gracefully(self):
+        """
+        Checks a bad run.
+        """
+
+        # This should produce 'given peak center ... is outside of data range' warnings
+        # and finally raise after a 'some peaks not found' error
+        self.assertRaises(RuntimeError,
+                          EnggCalibrate,
+                          InputWorkspace=self.__class__._data_ws, ExpectedPeaks=[0.2, 0.4], Bank='2')
+
+    def test_runs_ok(self):
+        """
+        Checks normal operation.
+        """
+
+        difc, zero = EnggCalibrate(InputWorkspace=self.__class__._data_ws,
+                                   VanadiumWorkspace=self.__class__._van_ws,
+                                   VanadiumIntegWorkspace=self.__class__._van_integ_tbl,
+                                   ExpectedPeaks=[1.6, 1.1, 1.8], Bank='2')
+
+        self.check_3peaks_values(difc, zero)
+
+
+    def test_runs_ok_with_peaks_file(self):
+        """
+        Normal operation with a csv input file with expected peaks
+        """
+        # This file has: 1.6, 1.1, 1.8 (as the test above)
+        filename = 'EnginX_3_expected_peaks_unittest.csv'
+        difc, zero = EnggCalibrate(InputWorkspace=self.__class__._data_ws,
+                                   VanadiumWorkspace=self.__class__._van_ws,
+                                   VanadiumIntegWorkspace=self.__class__._van_integ_tbl,
+                                   ExpectedPeaks=[-4, 40, 323], # nonsense, but FromFile should prevail
+                                   ExpectedPeaksFromFile=filename,
+                                   Bank='2')
+
+        self.check_3peaks_values(difc, zero)
+
+    def check_3peaks_values(self, difc, zero):
+        # There are platform specific differences in final parameter values
+        # For example in earlier versions, debian: 369367.57492582797; win7: 369242.28850305633
+        expected_difc = -1910618.2889
+        # assertLess would be nices, but only available in unittest >= 2.7
+        self.assertTrue(abs((expected_difc-difc)/expected_difc) < 5e-3)
+        expected_zero = 2120458.99303
+        self.assertTrue(abs((expected_zero-zero)/expected_zero) < 5e-3)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXFitPeaksTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggFitPeaksTest.py
similarity index 56%
rename from Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXFitPeaksTest.py
rename to Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggFitPeaksTest.py
index 1ccfba7d8672d298b620e85378c2fbce6a2dc273..4d3aa79601e03c3a2048e45261687cb7ec606382 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXFitPeaksTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggFitPeaksTest.py
@@ -2,7 +2,7 @@ import unittest
 from mantid.simpleapi import *
 from mantid.api import *
 
-class EnginXFitPeaksTest(unittest.TestCase):
+class EnggFitPeaksTest(unittest.TestCase):
 
     def test_wrong_properties(self):
         """
@@ -17,49 +17,80 @@ class EnginXFitPeaksTest(unittest.TestCase):
 
         # No InputWorkspace property (required)
         self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
+                          EnggFitPeaks,
                           WorkspaceIndex=0, ExpectedPeaks='0.51, 0.72')
 
         # Wrong WorkspaceIndex value
         self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
+                          EnggFitPeaks,
                           InputWorkspace=ws_name,
                           WorkspaceIndex=-3, ExpectedPeaks='0.51, 0.72')
 
         # Wrong property
         self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
+                          EnggFitPeaks,
                           InputWorkspace=ws_name, BankPixelFoo=33,
                           WorkspaceIndex=0, ExpectedPeaks='0.51, 0.72')
 
         # Wrong ExpectedPeaks value
         self.assertRaises(ValueError,
-                          EnginXFitPeaks,
+                          EnggFitPeaks,
                           InputWorkspace=ws_name,
                           WorkspaceIndex=0, ExpectedPeaks='a')
 
 
-    def _check_output_ok(self, ws, ws_name='', y_dim_max=1, yvalues=None):
-        """
-        Checks expected output values from the fits
+    def _approxRelErrorLessThan(self, val, ref, epsilon):
         """
+        Checks that a value 'val' does not defer from a reference value 'ref' by 'epsilon'
+        or more . This plays the role of assertAlmostEqual, assertLess, etc. which are not
+        available in some ancient unittest versions.
 
-        peak_def = "name=BackToBackExponential, I=4000,A=1, B=1.5, X0=10000, S=150"
-        sws = CreateSampleWorkspace(Function="User Defined", UserDefinedFunction=peak_def,
-                                    NumBanks=1, BankPixelWidth=1, XMin=5000, XMax=30000,
-                                    BinWidth=5)
+        @param val :: value obtained from a calculation or algorithm
+        @param ref :: (expected) reference value
+        @param epsilon :: comparison epsilon (error tolerance)
 
-        # Missing input workspace
-        self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
-                          WorkspaceIndex=0, ExpectedPeaks=[0.0, 1.0])
+        @returns if val differs from ref by less than epsilon
+        """
+        if 0 == ref:
+            return False
+        return (abs((ref-val)/ref) < epsilon)
 
-        # Wrong index
-        self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
-                          InputWorkspace=sws,
-                          WorkspaceIndex=-5, ExpectedPeaks=[0.0, 1.0])
+    def _check_outputs_ok(self, tblName, numPeaks, cell00, cell01, cell10, cell14):
+        """
+        Checks that we get the expected types and values in the outputs.
+
+        @param tblName :: name of the table of peaks that should have been created
+        @param numPeaks :: number of peaks that should be found in the table
+        @param cell00 :: expected (good) value for cell(0,0)
+        @param cell11 :: expected (good) value for cell(0,1)
+        @param cell11 :: expected (good) value for cell(1,0)
+        @param cell14 :: expected (good) value for cell(1,4)
+        """
 
+        # it has ben created
+        tbl = mtd[tblName]
+        self.assertEquals(tbl.getName(), tblName)
+        self.assertTrue(isinstance(tbl, ITableWorkspace),
+                        'The output workspace of fitted peaks should be a table workspace.')
+
+        # number of peaks
+        self.assertEquals(tbl.rowCount(), numPeaks)
+        # number of parameters for every peak
+        colNames = ['dSpacing',
+                    'A0', 'A0_Err', 'A1', 'A1_Err', 'X0', 'X0_Err', 'A', 'A_Err',
+                    'B', 'B_Err', 'S', 'S_Err', 'I', 'I_Err',
+                    'Chi']
+        self.assertEquals(tbl.columnCount(), len(colNames))
+
+        # expected columns
+        self.assertEquals(tbl.getColumnNames(), colNames)
+
+        # some values
+        # note approx comparison - fitting results differences of ~5% between glinux/win/osx
+        self.assertTrue(self._approxRelErrorLessThan(tbl.cell(0,0), cell00, 5e-3))
+        self.assertTrue(self._approxRelErrorLessThan(tbl.cell(0,1), cell01, 5e-3))
+        self.assertTrue(self._approxRelErrorLessThan(tbl.cell(1,0), cell10, 5e-3))
+        self.assertTrue(self._approxRelErrorLessThan(tbl.cell(1,4), cell14, 5e-3))
 
     def test_fitting_fails_ok(self):
         """
@@ -73,11 +104,11 @@ class EnginXFitPeaksTest(unittest.TestCase):
                                     XMin=10000, XMax=30000, BinWidth=10, Random=1)
         # these should raise because of issues with the peak center - data range
         self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
+                          EnggFitPeaks,
                           sws, 0, [0.5, 2.5])
         EditInstrumentGeometry(Workspace=sws, L2=[1.0], Polar=[90], PrimaryFlightPath=50)
         self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
+                          EnggFitPeaks,
                           sws, 0, [1, 3])
 
         # this should fail because of nan/infinity issues
@@ -87,7 +118,7 @@ class EnginXFitPeaksTest(unittest.TestCase):
                                     XMin=10000, XMax=30000, BinWidth=10)
         EditInstrumentGeometry(Workspace=sws, L2=[1.0], Polar=[35], PrimaryFlightPath=35)
         self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
+                          EnggFitPeaks,
                           sws, 0, [1, 2, 3])
 
         # this should fail because FindPeaks doesn't initialize/converge well
@@ -97,10 +128,9 @@ class EnginXFitPeaksTest(unittest.TestCase):
                                     XMin=2000, XMax=30000, BinWidth=10)
         EditInstrumentGeometry(Workspace=sws, L2=[1.0], Polar=[90], PrimaryFlightPath=50)
         self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
+                          EnggFitPeaks,
                           sws, 0, [0.6])
 
-
     def test_fails_ok_1peak(self):
         """
         Tests fitting a single peak, which should raise because we need at least 2 peaks to
@@ -113,10 +143,9 @@ class EnginXFitPeaksTest(unittest.TestCase):
                                     XMin=0, XMax=25000, BinWidth=10)
         EditInstrumentGeometry(Workspace=sws, L2=[1.5], Polar=[90], PrimaryFlightPath=45)
         self.assertRaises(RuntimeError,
-                          EnginXFitPeaks,
+                          EnggFitPeaks,
                           sws, WorkspaceIndex=0, ExpectedPeaks='0.542')
 
-
     def test_runs_ok_2peaks(self):
         """
         Tests fitting a couple of peaks.
@@ -130,13 +159,31 @@ class EnginXFitPeaksTest(unittest.TestCase):
                                     XMin=5000, XMax=30000,
                                     BinWidth=25)
         EditInstrumentGeometry(Workspace=sws, L2=[1.5], Polar=[90], PrimaryFlightPath=50)
-        difc, zero = EnginXFitPeaks(sws, WorkspaceIndex=0, ExpectedPeaks=[0.4, 1.09])
+
+        peaksTblName = 'test_fit_peaks_table'
+        ep1 = 0.4
+        ep2 = 1.09
+        paramsTblName = 'test_difc_zero_table'
+        difc, zero = EnggFitPeaks(sws, WorkspaceIndex=0, ExpectedPeaks=[ep1, ep2],
+                                    OutFittedPeaksTable=peaksTblName,
+                                    OutParametersTable=paramsTblName)
+        pTable = mtd[paramsTblName]
+        self.assertEquals(pTable.rowCount(), 1)
+        self.assertEquals(pTable.columnCount(), 2)
+
         # fitting results on some platforms (OSX) are different by ~0.07%
         expected_difc = 17395.620526173196
-        self.assertTrue(abs((expected_difc-difc)/expected_difc) < 5e-3)
+        self.assertTrue(self._approxRelErrorLessThan(difc, expected_difc, 5e-3))
         expected_zero = 1058.0490117833390
-        self.assertTrue(abs((expected_zero-zero)/expected_zero) < 5e-3)
+        self.assertTrue(self._approxRelErrorLessThan(zero, expected_zero, 5e-3))
 
+        # values in the table should also be good within epsilon
+        self.assertTrue(self._approxRelErrorLessThan(pTable.cell(0,0), expected_difc, 5e-3))
+        self.assertTrue(self._approxRelErrorLessThan(pTable.cell(0,1), expected_zero, 5e-3))
+
+        # check 'OutFittedPeaksTable' table workspace
+        self._check_outputs_ok(peaksTblName, 2, ep1, -8.193560670563205e-10,
+                               ep2, 1.723902507582676e-07)
 
     def test_runs_ok_3peaks(self):
         """
@@ -153,13 +200,23 @@ class EnginXFitPeaksTest(unittest.TestCase):
                                     XMin=5000, XMax=30000,
                                     BinWidth=25)
         EditInstrumentGeometry(Workspace=sws, L2=[1.5], Polar=[90], PrimaryFlightPath=50)
-        difc, zero = EnginXFitPeaks(sws, WorkspaceIndex=0, ExpectedPeaks=[0.4, 0.83, 1.09])
+
+        peaksTblName = 'test_fit_peaks_table'
+        ep1 = 0.4
+        ep2 = 0.83
+        ep3 = 1.09
+        difc, zero = EnggFitPeaks(sws, WorkspaceIndex=0, ExpectedPeaks=[ep1, ep2, ep3],
+                                    OutFittedPeaksTable=peaksTblName)
+
         expected_difc = 17335.67250113934
         # assertLess would be nices, but only available in unittest >= 2.7
-        self.assertTrue(abs((expected_difc-difc)/expected_difc) < 5e-3)
+        self.assertTrue(self._approxRelErrorLessThan(difc, expected_difc, 5e-3))
         expected_zero = 958.2547157813959
-        self.assertTrue(abs((expected_zero-zero)/expected_zero) < 5e-3)
+        self.assertTrue(self._approxRelErrorLessThan(zero, expected_zero, 5e-3))
 
+        # check 'OutFittedPeaksTable' table workspace
+        self._check_outputs_ok(peaksTblName, 3, ep1, -8.193560670563205e-10,
+                               ep2, 1.3304856478614542e-05)
 
 
 if __name__ == '__main__':
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggFocusTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggFocusTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..c44b92194bb32b6e2196cfad9a2a26a97028f36e
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnggFocusTest.py
@@ -0,0 +1,198 @@
+import unittest
+from mantid.simpleapi import *
+from mantid.api import *
+
+class EnggFocusTest(unittest.TestCase):
+
+    _data_ws = None
+    _van_ws = None
+    _van_integ_tbl = None
+
+    _expected_yvals_bank1  = [0.016676032919961604, 0.015995344072536975, 0.047449159145519233,
+                              0.15629648148139513, 0.11018845452876322, 0.017291707350351286]
+
+    _expected_yvals_bank2 = [0.0, 0.024244737019873813, 0.075157734070604859,
+                             0.064284432802742111, 0.16711309433387569, 0.0015212255190929613]
+
+    # Note not using @classmethod setUpClass / tearDownClass because that's not supported in the old
+    # unittest of rhel6
+    def setUp(self):
+        """
+        Set up dependencies for one or more of the tests below.
+        """
+        if not self.__class__._data_ws:
+            self.__class__._data_ws = LoadNexus(Filename='ENGINX00228061.nxs',
+                                                OutputWorkspace='ENGIN-X_test_ws')
+
+        if not self.__class__._van_ws:
+            # Note the pre-calculated file instead of the too big vanadium run
+            # self.__class__._van_ws = LoadNexus("ENGINX00236516.nxs", OutputWorkspace='ENGIN-X_test_vanadium_ws')
+            self.__class__._van_ws = LoadNexus(Filename=
+                                               'ENGINX_precalculated_vanadium_run000236516_bank_curves.nxs',
+                                               OutputWorkspace='ENGIN-X_vanadium_curves_test_ws')
+            self.__class__._van_integ_tbl = LoadNexus(Filename=
+                                                      'ENGINX_precalculated_vanadium_run000236516_integration.nxs',
+                                                      OutputWorkspace='ENGIN-X_vanadium_integ_test_ws')
+
+    def test_wrong_properties(self):
+        """
+        Tests proper error handling when passing wrong properties or not passing
+        required ones.
+        """
+
+        # No InputWorkspace property
+        self.assertRaises(RuntimeError,
+                          EnggFocus,
+                          Bank='1', OutputWorkspace='nop')
+
+        # Mispelled InputWorkspace prop
+        self.assertRaises(RuntimeError,
+                          EnggFocus,
+                          InputWrkspace='anything_goes', Bank='1', OutputWorkspace='nop')
+
+        # Wrong InputWorkspace name
+        self.assertRaises(ValueError,
+                          EnggFocus,
+                          InputWorkspace='foo_is_not_there', Bank='1', OutputWorkspace='nop')
+
+        # mispelled bank
+        self.assertRaises(RuntimeError,
+                          EnggFocus,
+                          InputWorkspace=self.__class__._data_ws, bnk='2', OutputWorkspace='nop')
+
+        # mispelled DetectorsPosition
+        tbl = CreateEmptyTableWorkspace()
+        self.assertRaises(RuntimeError,
+                          EnggFocus,
+                          InputWorkspace=self.__class__._data_ws, Detectors=tbl, OutputWorkspace='nop')
+
+        # bank and indices list clsh. This starts as a ValueError but the managers is raising a RuntimeError
+        self.assertRaises(RuntimeError,
+                          EnggFocus,
+                          InputWorkspace=self.__class__._data_ws, Bank='2', DetectorPositions=tbl,
+                          SpectrumNumbers='1-10', OutputWorkspace='nop')
+
+        # workspace index too big. This starts as a ValueError but the managers is raising a RuntimeError
+        self.assertRaises(RuntimeError,
+                          EnggFocus,
+                          InputWorkspace=self.__class__._data_ws, DetectorPositions=tbl,
+                          SpectrumNumbers='999999999999999', OutputWorkspace='nop')
+
+    def _check_output_ok(self, ws, ws_name='', y_dim_max=1, yvalues=None):
+        """
+        Checks expected types, values, etc. of an output workspace from EnggFocus.
+        """
+
+        self.assertTrue(isinstance(ws, MatrixWorkspace),
+                        'Output workspace should be a matrix workspace.')
+        self.assertEqual(ws.name(), ws_name)
+        self.assertEqual(ws.getTitle(), 'yscan;y=250.210')
+        self.assertEqual(ws.isHistogramData(), True)
+        self.assertEqual(ws.isDistribution(), True)
+        self.assertEqual(ws.getNumberHistograms(), 1)
+        self.assertEqual(ws.blocksize(), 98)
+        self.assertEqual(ws.getNEvents(), 98)
+        self.assertEqual(ws.getNumDims(), 2)
+        self.assertEqual(ws.YUnit(), 'Counts')
+        dimX = ws.getXDimension()
+        self.assertAlmostEqual( dimX.getMaximum(), 36938.078125)
+        self.assertEqual(dimX.getName(), 'Time-of-flight')
+        self.assertEqual(dimX.getUnits(), 'microsecond')
+        dimY = ws.getYDimension()
+        self.assertEqual(dimY.getMaximum(), y_dim_max)
+        self.assertEqual(dimY.getName(), 'Spectrum')
+        self.assertEqual(dimY.getUnits(), '')
+
+        if None == yvalues:
+            raise ValueError("No y-vals provided for test")
+        xvals = [10861.958645540433, 12192.372902418168, 13522.787159295902,
+                 14853.201416173637, 24166.101214317776, 34809.415269339654]
+        for i, bin in enumerate([0, 5, 10, 15, 50, 90]):
+            self.assertAlmostEqual( ws.readX(0)[bin], xvals[i])
+            self.assertAlmostEqual( ws.readY(0)[bin], yvalues[i])
+
+
+    def test_runs_ok(self):
+        """
+        Checks that output looks fine for normal operation conditions, (default) Bank=1
+        """
+
+        out_name = 'out'
+        out = EnggFocus(InputWorkspace=self.__class__._data_ws,
+                        VanadiumWorkspace=self.__class__._van_ws,
+                        VanadiumIntegWorkspace=self.__class__._van_integ_tbl,
+                        Bank='1', OutputWorkspace=out_name)
+
+        self._check_output_ok(ws=out, ws_name=out_name, y_dim_max=1, yvalues=self._expected_yvals_bank1)
+
+    def test_runs_ok_south(self):
+        """
+        Same as before but with Bank='South' - equivalent to Bank='1'
+        """
+
+        out_name = 'out'
+        out = EnggFocus(InputWorkspace=self.__class__._data_ws,
+                        VanadiumWorkspace=self.__class__._van_ws,
+                        VanadiumIntegWorkspace=self.__class__._van_integ_tbl,
+                        Bank='North', OutputWorkspace=out_name)
+
+        self._check_output_ok(ws=out, ws_name=out_name, y_dim_max=1, yvalues=self._expected_yvals_bank1)
+
+    def test_runs_ok_indices(self):
+        """
+        Same as above but with detector (workspace) indices equivalent to bank 1
+        """
+        out_idx_name = 'out_idx'
+        out_idx = EnggFocus(InputWorkspace=self.__class__._data_ws,
+                            VanadiumWorkspace=self.__class__._van_ws,
+                            VanadiumIntegWorkspace=self.__class__._van_integ_tbl,
+                            SpectrumNumbers='1-1200',
+                            OutputWorkspace=out_idx_name)
+
+        self._check_output_ok(ws=out_idx, ws_name=out_idx_name, y_dim_max=1,
+                              yvalues=self._expected_yvals_bank1)
+
+    def test_runs_ok_indices_split3(self):
+        """
+        Same as above but with detector (workspace) indices equivalent to bank 1
+        """
+        out_idx_name = 'out_idx'
+        out_idx = EnggFocus(InputWorkspace=self.__class__._data_ws,
+                            VanadiumWorkspace=self.__class__._van_ws,
+                            VanadiumIntegWorkspace=self.__class__._van_integ_tbl,
+                            SpectrumNumbers='1-100, 101-500, 400-1200',
+                            OutputWorkspace=out_idx_name)
+        self._check_output_ok(ws=out_idx, ws_name=out_idx_name, y_dim_max=1,
+                              yvalues=self._expected_yvals_bank1)
+
+    def test_runs_ok_bank2(self):
+        """
+        Checks that output looks fine for normal operation conditions, Bank=2
+        """
+
+        out_name = 'out_bank2'
+        out_bank2 = EnggFocus(InputWorkspace=self.__class__._data_ws, Bank='2',
+                              VanadiumWorkspace=self.__class__._van_ws,
+                              VanadiumIntegWorkspace=self.__class__._van_integ_tbl,
+                              OutputWorkspace=out_name)
+
+        self._check_output_ok(ws=out_bank2, ws_name=out_name, y_dim_max=1201,
+                              yvalues=self._expected_yvals_bank2)
+
+    def test_runs_ok_bank_south(self):
+        """
+        As before but using the Bank='South' alias. Should produce the same results.
+        """
+        out_name = 'out_bank_south'
+        out_bank_south = EnggFocus(InputWorkspace=self.__class__._data_ws,
+                                   VanadiumWorkspace=self.__class__._van_ws,
+                                   VanadiumIntegWorkspace=self.__class__._van_integ_tbl,
+                                   Bank='South', OutputWorkspace=out_name)
+
+        self._check_output_ok(ws=out_bank_south, ws_name=out_name, y_dim_max=1201,
+                              yvalues=self._expected_yvals_bank2)
+
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXCalibrateFullTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXCalibrateFullTest.py
deleted file mode 100644
index aba6a0574f88cc41d0375d646f9c445c616121e7..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXCalibrateFullTest.py
+++ /dev/null
@@ -1,64 +0,0 @@
-import unittest
-from mantid.simpleapi import *
-from mantid.api import *
-
-class EnginXCalibrateFullTest(unittest.TestCase):
-
-    def test_issues_with_properties(self):
-        """
-        Handle in/out property errors appropriately.
-        """
-
-        # No Filename property (required)
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrateFull,
-                          File='foo', Bank=1)
-
-        # Wrong filename
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrateFull,
-                          File='bar_file_is_not_there.not', Bank=2)
-
-        # mispelled ExpectedPeaks
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrateFull,
-                          Filename='ENGINX00228061.nxs', Bank=2, Peaks='2')
-
-        # all fine, except missing DetectorPositions (output)
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrateFull,
-                          Filename='ENGINX00228061.nxs', Bank=2)
-
-    def test_wrong_fit_fails_gracefully(self):
-        """
-        Checks a bad run fails reasonably.
-        """
-
-        # This should produce fitting 'given peak center ... is outside of data range'
-        # warnings and finally raise after a 'some peaks not found' error
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrateFull,
-                          Filename="ENGINX00228061.nxs", ExpectedPeaks=[0.01], Bank=1,
-                          DetectorPositions='out_det_positions_table')
-
-
-    def test_run_ok_but_bad_data(self):
-        """
-        Tests a run that doesn't go well becaus of inappropriate data is used here.
-        """
-
-        # This is not a realistic CalibrateFull run, but it just runs fine
-        # for testing purposes. A test with real (much larger) data that produces
-        # a correct fit is included in system tests
-        tbl_name = 'det_peaks_tbl'
-        det_peaks_tbl = CreateEmptyTableWorkspace()
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrateFull,
-                          Filename="ENGINX00228061.nxs", Bank=2,
-                          ExpectedPeaks='0.915, 1.257, 1.688',
-                          DetectorPositions=tbl_name)
-
-
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXCalibrateTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXCalibrateTest.py
deleted file mode 100644
index 37a1672a174185206d8de1f36d9b55b29ceb9ada..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXCalibrateTest.py
+++ /dev/null
@@ -1,70 +0,0 @@
-import unittest
-from mantid.simpleapi import *
-from mantid.api import *
-
-class EnginXCalibrateTest(unittest.TestCase):
-
-    def test_issues_with_properties(self):
-        """
-        Tests proper error handling when passing wrong properties or not passing required
-        ones.
-        """
-
-        # No Filename property (required)
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrate,
-                          File='foo', Bank=1)
-
-        # Wrong filename
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrate,
-                          File='foo_is_not_there', Bank=2)
-
-        # mispelled ExpectedPeaks
-        tbl = CreateEmptyTableWorkspace(OutputWorkspace='test_table')
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrate,
-                          Filename='ENGINX00228061.nxs', DetectorPositions=tbl, Bank=2, Peaks='2')
-
-        # mispelled DetectorPositions
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrate,
-                          Filename='ENGINX00228061.nxs', Detectors=tbl, Bank=2, Peaks='2')
-
-        # There's no output workspace
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrate,
-                          File='foo', Bank=1, OutputWorkspace='nop')
-
-
-    def test_fails_gracefully(self):
-        """
-        Checks a bad run.
-        """
-
-        # This should produce 'given peak center ... is outside of data range' warnings
-        # and finally raise after a 'some peaks not found' error
-        self.assertRaises(RuntimeError,
-                          EnginXCalibrate,
-                          Filename="ENGINX00228061.nxs", ExpectedPeaks=[0.2, 0.4], Bank=2)
-
-
-    def test_runs_ok(self):
-        """
-        Checks normal operation.
-        """
-
-        difc, zero = EnginXCalibrate(Filename="ENGINX00228061.nxs",
-                                     ExpectedPeaks=[1.6, 1.1, 1.8], Bank=2)
-        # There are platform specific differences in final parameter values
-        # For example, debian: 369367.57492582797; win7: 369242.28850305633
-        expected_difc = 369367.57492582797
-        # assertLess would be nices, but only available in unittest >= 2.7
-        self.assertTrue(abs((expected_difc-difc)/expected_difc) < 5e-3)
-        expected_zero = -223297.87349744083
-        self.assertTrue(abs((expected_zero-zero)/expected_zero) < 5e-3)
-
-
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXFocusTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXFocusTest.py
deleted file mode 100644
index c794b6a6f30b54bd42711454c53fefaab0e88b75..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/EnginXFocusTest.py
+++ /dev/null
@@ -1,99 +0,0 @@
-import unittest
-from mantid.simpleapi import *
-from mantid.api import *
-
-class EnginXFocusTest(unittest.TestCase):
-
-    def test_wrong_properties(self):
-        """
-        Tests proper error handling when passing wrong properties or not passing
-        required ones.
-        """
-
-        # No Filename property
-        self.assertRaises(RuntimeError,
-                          EnginXFocus,
-                          File='foo', Bank=1, OutputWorkspace='nop')
-
-        # Wrong filename
-        self.assertRaises(RuntimeError,
-                          EnginXFocus,
-                          File='foo_is_not_there', Bank=1, OutputWorkspace='nop')
-
-        # mispelled bank
-        self.assertRaises(RuntimeError,
-                          EnginXFocus,
-                          Filename='ENGINX00228061.nxs', bnk='2', OutputWorkspace='nop')
-
-        # mispelled DetectorsPosition
-        tbl = CreateEmptyTableWorkspace()
-        self.assertRaises(RuntimeError,
-                          EnginXFocus,
-                          Filename='ENGINX00228061.nxs', Detectors=tbl, OutputWorkspace='nop')
-
-
-    def _check_output_ok(self, ws, ws_name='', y_dim_max=1, yvalues=None):
-        """
-        Checks expected types, values, etc. of an output workspace from EnginXFocus.
-        """
-
-        self.assertTrue(isinstance(ws, MatrixWorkspace),
-                        'Output workspace should be a matrix workspace.')
-        self.assertEqual(ws.name(), ws_name)
-        self.assertEqual(ws.getTitle(), 'yscan;y=250.210')
-        self.assertEqual(ws.isHistogramData(), True)
-        self.assertEqual(ws.isDistribution(), True)
-        self.assertEqual(ws.getNumberHistograms(), 1)
-        self.assertEqual(ws.blocksize(), 98)
-        self.assertEqual(ws.getNEvents(), 98)
-        self.assertEqual(ws.getNumDims(), 2)
-        self.assertEqual(ws.YUnit(), 'Counts')
-        dimX = ws.getXDimension()
-        self.assertAlmostEqual( dimX.getMaximum(), 36938.078125)
-        self.assertEqual(dimX.getName(), 'Time-of-flight')
-        self.assertEqual(dimX.getUnits(), 'microsecond')
-        dimY = ws.getYDimension()
-        self.assertEqual(dimY.getMaximum(), y_dim_max)
-        self.assertEqual(dimY.getName(), 'Spectrum')
-        self.assertEqual(dimY.getUnits(), '')
-
-        if None == yvalues:
-            raise ValueError("No y-vals provided for test")
-        xvals = [10861.958645540433, 12192.372902418168, 13522.787159295902,
-                 14853.201416173637, 24166.101214317776, 34809.415269339654]
-        for i, bin in enumerate([0, 5, 10, 15, 50, 90]):
-            self.assertAlmostEqual( ws.readX(0)[bin], xvals[i])
-            self.assertAlmostEqual( ws.readY(0)[bin], yvalues[i])
-
-
-    def test_runs_ok(self):
-        """
-        Checks that output looks fine for normal operation conditions, (default) Bank=1
-        """
-
-        out_name = 'out'
-        out = EnginXFocus(Filename='ENGINX00228061.nxs', Bank=1, OutputWorkspace=out_name)
-
-        yvals = [0.0037582279159681957, 0.00751645583194, 0.0231963801368, 0.0720786940576,
-                 0.0615909620868, 0.00987979301753]
-        self._check_output_ok(ws=out, ws_name=out_name, y_dim_max=1, yvalues=yvals)
-
-
-    def test_runs_ok_bank2(self):
-        """
-        Checks that output looks fine for normal operation conditions, Bank=2
-        """
-
-        out_name = 'out_bank2'
-        out_bank2 = EnginXFocus(Filename="ENGINX00228061.nxs", Bank=2,
-                                OutputWorkspace=out_name)
-
-        yvals = [0, 0.0112746837479, 0.0394536605073, 0.0362013481777,
-                 0.0728500403862, 0.000870882282987]
-        self._check_output_ok(ws=out_bank2, ws_name=out_name, y_dim_max=1201,
-                              yvalues=yvals)
-
-
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ISISIndirectDiffractionReductionTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ISISIndirectDiffractionReductionTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3dac5c2496a682e63fdaa8a4eb414c25bcb183d
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ISISIndirectDiffractionReductionTest.py
@@ -0,0 +1,54 @@
+import unittest
+from mantid.simpleapi import *
+from mantid.api import *
+
+
+class ISISIndirectDiffractionReductionTest(unittest.TestCase):
+
+    def test_basic_reduction_completes(self):
+        """
+        Sanity test to ensure the most basic reduction actually completes.
+        """
+
+        ws = ISISIndirectDiffractionReduction(InputFiles=['IRS26176.RAW'],
+                                              Instrument='IRIS',
+                                              Mode='diffspec',
+                                              SpectraRange=[105, 112])
+
+        self.assertTrue(isinstance(ws, WorkspaceGroup), 'Result workspace should be a workspace group.')
+        self.assertEqual(ws.getNames()[0], 'IRS26176_diffspec_red')
+
+
+    def test_reduction_with_container_completes(self):
+        """
+        Test to ensure that reduction with container subtraction works.
+        """
+
+        ws = ISISIndirectDiffractionReduction(InputFiles=['IRS26176.RAW'],
+                                              ContainerFiles=['IRS26173.RAW'],
+                                              Instrument='IRIS',
+                                              Mode='diffspec',
+                                              SpectraRange=[105, 112])
+
+        self.assertTrue(isinstance(ws, WorkspaceGroup), 'Result workspace should be a workspace group.')
+        self.assertEqual(ws.getNames()[0], 'IRS26176_diffspec_red')
+
+
+    def test_reduction_with_container_and_scale_completes(self):
+        """
+        Test to ensure that reduction with container subtraction works.
+        """
+
+        ws = ISISIndirectDiffractionReduction(InputFiles=['IRS26176.RAW'],
+                                              ContainerFiles=['IRS26173.RAW'],
+                                              ContainerScaleFactor=0.5,
+                                              Instrument='IRIS',
+                                              Mode='diffspec',
+                                              SpectraRange=[105, 112])
+
+        self.assertTrue(isinstance(ws, WorkspaceGroup), 'Result workspace should be a workspace group.')
+        self.assertEqual(ws.getNames()[0], 'IRS26176_diffspec_red')
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ISISIndirectEnergyTransferTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ISISIndirectEnergyTransferTest.py
index 04e4ef43c3a2a576e67062bcae5f426e4a1dbdbb..a6d4b219aa822ffc76cd72addb9dc0c4c76e99c6 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ISISIndirectEnergyTransferTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ISISIndirectEnergyTransferTest.py
@@ -1,28 +1,151 @@
+#pylint: disable=too-many-public-methods,invalid-name
+
 import unittest
 from mantid.simpleapi import *
 from mantid.api import *
 
+import numpy as np
+
+
+def _generate_calibration_workspace(instrument, ws_name='__fake_calib'):
+    inst = CreateSimulationWorkspace(Instrument=instrument,
+                                     BinParams='0,1,2')
+    n_hist = inst.getNumberHistograms()
+
+    fake_calib = CreateWorkspace(OutputWorkspace=ws_name,
+                                 DataX=np.ones(1),
+                                 DataY=np.ones(n_hist),
+                                 NSpec=n_hist,
+                                 ParentWorkspace=inst)
+
+    DeleteWorkspace(inst)
+
+    return fake_calib
+
 
 class ISISIndirectEnergyTransferTest(unittest.TestCase):
 
-    def test_basic_reduction_completes(self):
+    def test_basic_reduction(self):
         """
         Sanity test to ensure the most basic reduction actually completes.
         """
 
-        ws = ISISIndirectEnergyTransfer(InputFiles=['IRS26176.RAW'],
-                                        Instrument='IRIS',
-                                        Analyser='graphite',
-                                        Reflection='002',
-                                        SpectraRange=[3, 53])
+        wks = ISISIndirectEnergyTransfer(InputFiles=['IRS26176.RAW'],
+                                         Instrument='IRIS',
+                                         Analyser='graphite',
+                                         Reflection='002',
+                                         SpectraRange=[3, 53])
+
+        self.assertTrue(isinstance(wks, WorkspaceGroup), 'Result workspace should be a workspace group.')
+        self.assertEqual(wks.getNames()[0], 'IRS26176_graphite002_red')
+
+        red_ws = wks.getItem(0)
+        self.assertEqual(red_ws.getNumberHistograms(), 51)
+
+
+    def test_reduction_with_range(self):
+        """
+        Sanity test to ensure a reduction with a spectra range completes.
+        """
+
+        wks = ISISIndirectEnergyTransfer(InputFiles=['IRS26176.RAW'],
+                                         Instrument='IRIS',
+                                         Analyser='graphite',
+                                         Reflection='002',
+                                         SpectraRange=[35, 40])
+
+        self.assertTrue(isinstance(wks, WorkspaceGroup), 'Result workspace should be a workspace group.')
+        self.assertEqual(wks.getNames()[0], 'IRS26176_graphite002_red')
+
+        red_ws = wks.getItem(0)
+        self.assertEqual(red_ws.getNumberHistograms(), 6)
+
+
+    def test_reduction_with_detailed_balance(self):
+        """
+        Sanity test to ensure a reduction using detailed balance option
+        completes.
+        """
+
+        wks = ISISIndirectEnergyTransfer(InputFiles=['IRS26176.RAW'],
+                                         Instrument='IRIS',
+                                         Analyser='graphite',
+                                         Reflection='002',
+                                         SpectraRange=[3, 53],
+                                         DetailedBalance='300')
+
+        self.assertTrue(isinstance(wks, WorkspaceGroup), 'Result workspace should be a workspace group.')
+        self.assertEqual(wks.getNames()[0], 'IRS26176_graphite002_red')
+
+        red_ws = wks.getItem(0)
+        self.assertEqual(red_ws.getNumberHistograms(), 51)
+
+
+    def test_reduction_with_map_file(self):
+        """
+        Sanity test to ensure a reduction using a mapping/grouping file
+        completes.
+        """
+
+        wks = ISISIndirectEnergyTransfer(InputFiles=['OSI97919.raw'],
+                                         Instrument='OSIRIS',
+                                         Analyser='graphite',
+                                         Reflection='002',
+                                         SpectraRange=[963, 1004],
+                                         GroupingMethod='File',
+                                         MapFile='osi_002_14Groups.map')
+
+        self.assertTrue(isinstance(wks, WorkspaceGroup), 'Result workspace should be a workspace group.')
+        self.assertEqual(wks.getNames()[0], 'OSI97919_graphite002_red')
+
+        red_ws = wks.getItem(0)
+        self.assertEqual(red_ws.getNumberHistograms(), 14)
+
+
+    def test_reduction_with_calibration(self):
+        """
+        Sanity test to ensure a reduction using a calibration workspace
+        completes.
+        """
+
+        wks = ISISIndirectEnergyTransfer(InputFiles=['IRS26176.RAW'],
+                                         Instrument='IRIS',
+                                         Analyser='graphite',
+                                         Reflection='002',
+                                         SpectraRange=[3, 53],
+                                         CalibrationWorkspace=_generate_calibration_workspace('IRIS'))
+
+        self.assertTrue(isinstance(wks, WorkspaceGroup), 'Result workspace should be a workspace group.')
+        self.assertEqual(wks.getNames()[0], 'IRS26176_graphite002_red')
+
+        red_ws = wks.getItem(0)
+        self.assertEqual(red_ws.getNumberHistograms(), 51)
+
+
+    def test_reduction_with_calibration_and_range(self):
+        """
+        Sanity test to ensure a reduction using a calibration workspace
+        completes.
+        """
+
+        wks = ISISIndirectEnergyTransfer(InputFiles=['IRS26176.RAW'],
+                                         Instrument='IRIS',
+                                         Analyser='graphite',
+                                         Reflection='002',
+                                         SpectraRange=[35, 40],
+                                         CalibrationWorkspace=_generate_calibration_workspace('IRIS'))
+
+        self.assertTrue(isinstance(wks, WorkspaceGroup), 'Result workspace should be a workspace group.')
+        self.assertEqual(wks.getNames()[0], 'IRS26176_graphite002_red')
 
-        self.assertTrue(isinstance(ws, WorkspaceGroup), 'Result workspace should be a workspace group.')
-        self.assertEqual(ws.getNames()[0], 'IRS26176_graphite002_red')
+        red_ws = wks.getItem(0)
+        self.assertEqual(red_ws.getNumberHistograms(), 6)
 
 
     def test_instrument_validation_failure(self):
         """
-        Tests that an invalid instrument configuration causes the validation to fail.
+        Tests that an invalid instrument configuration causes the validation to
+        fail.
         """
 
         self.assertRaises(RuntimeError,
@@ -37,8 +160,8 @@ class ISISIndirectEnergyTransferTest(unittest.TestCase):
 
     def test_group_workspace_validation_failure(self):
         """
-        Tests that validation fails when Workspace is selected as the GroupingMethod
-        but no workspace is provided.
+        Tests that validation fails when Workspace is selected as the
+        GroupingMethod but no workspace is provided.
         """
 
         self.assertRaises(RuntimeError,
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/IndirectTransmissionMonitorTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/IndirectTransmissionMonitorTest.py
index c96c74bb026a242736b9ebf57f8f088ada5d8ab6..46e8c2a6fee0831ca2ee94d5891e571a9138e89b 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/IndirectTransmissionMonitorTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/IndirectTransmissionMonitorTest.py
@@ -16,16 +16,7 @@ class IndirectTransmissionMonitorTest(unittest.TestCase):
         self.kwargs = {}
         self.kwargs['SampleWorkspace'] = self._sample_workspace
         self.kwargs['CanWorkspace'] = self._can_workspace
-        self.kwargs['Plot'] = False
 
-    def tearDown(self):
-        # Clean up saved nexus files
-        path = os.path.join(config['defaultsave.directory'], 'IndirectTransmissionMonitorTest.nxs')
-        if os.path.isfile(path):
-            try:
-                os.remove(path)
-            except IOError, _:
-                pass
 
     def test_basic(self):
         trans_workspace = IndirectTransmissionMonitor(**self.kwargs)
@@ -40,14 +31,5 @@ class IndirectTransmissionMonitorTest(unittest.TestCase):
         self.assertEqual(set(trans_workspace.getNames()), expected_names)
 
 
-    def test_nexus_save(self):
-        self.kwargs['Save'] = True
-        self.kwargs['OutputWorkspace'] = 'IndirectTransmissionMonitorTest'
-
-        IndirectTransmissionMonitor(**self.kwargs)
-
-        path = os.path.join(config['defaultsave.directory'], 'IndirectTransmissionMonitorTest.nxs')
-        self.assertTrue(os.path.isfile(path), msg='Transmission workspace should be saved to default save directory')
-
 if __name__ == '__main__':
     unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/LoadDNSLegacyTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/LoadDNSLegacyTest.py
index d9c5c6df681ff99db6dc698d0bf7e8b3a2a56dc4..8f67f05cb03bb1f2b31165527d16dc122a024387 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/LoadDNSLegacyTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/LoadDNSLegacyTest.py
@@ -1,5 +1,3 @@
-from mantid.kernel import *
-import mantid.simpleapi as api
 import unittest
 from testhelpers import run_algorithm
 from mantid.api import AnalysisDataService
@@ -11,12 +9,11 @@ class LoadDNSLegacyTest(unittest.TestCase):
     def test_LoadValidData(self):
         outputWorkspaceName = "LoadDNSLegacyTest_Test1"
         filename = "dn134011vana.d_dat"
-        alg_test = run_algorithm("LoadDNSLegacy", Filename = filename, \
-                OutputWorkspace = outputWorkspaceName, Polarisation='y')
-                
+        alg_test = run_algorithm("LoadDNSLegacy", Filename=filename,
+                                 OutputWorkspace=outputWorkspaceName, Polarisation='y')
         self.assertTrue(alg_test.isExecuted())
-        
-        #Verify some values
+
+        # Verify some values
         ws = AnalysisDataService.retrieve(outputWorkspaceName)
         # dimensions
         self.assertEqual(24, ws.getNumberHistograms())
@@ -32,7 +29,7 @@ class LoadDNSLegacyTest(unittest.TestCase):
         # check whether detector bank is rotated
         det = ws.getDetector(1)
         self.assertAlmostEqual(8.54, ws.detectorSignedTwoTheta(det)*180/pi)
-        run_algorithm("DeleteWorkspace", Workspace = outputWorkspaceName)
+        run_algorithm("DeleteWorkspace", Workspace=outputWorkspaceName)
         return
 
 if __name__ == '__main__':
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/MaskWorkspaceToCalFileTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/MaskWorkspaceToCalFileTest.py
index 651158b3d3270f6aa3fbc26a00907f7f2b61599f..049c9d79a372d457348d9995f8c65a50cdde0be0 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/MaskWorkspaceToCalFileTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/MaskWorkspaceToCalFileTest.py
@@ -35,52 +35,64 @@ class MaskWorkspaceToCalFileTest(unittest.TestCase):
             self.assertTrue(mask_boundary_outside == expected_not_masking_identifier)
         except LookupError:
             print "Could not find the requested index"
-            self.assertTrue(False)
+            self.assertTrue(False, msg="Could not find the requested index")
         finally:
             file.close()
             os.remove(cal_file_full_path)
 
+
     # Test creating a cal file from a masked MatrixWorkspace directly
     def test_calfile_from_masked_workspace(self):
-        run_algorithm('Load', Filename='LOQ49886.nxs', OutputWorkspace='LOQ49886', rethrow=True)
-        run_algorithm('MaskDetectors', Workspace='LOQ49886',WorkspaceIndexList='0-700', MaskedWorkspace='LOQ49886', rethrow=True)
-        masked_workspace = mtd['LOQ49886']
+        run_algorithm('CreateSampleWorkspace', OutputWorkspace='wsMaskWSToCalFileTest', rethrow=True)
+        run_algorithm('MaskDetectors', Workspace='wsMaskWSToCalFileTest',WorkspaceIndexList='0-100', MaskedWorkspace='wsMaskWSToCalFileTest',rethrow=True)
+        masked_workspace = mtd['wsMaskWSToCalFileTest']
+        should_invert = False
+        masking_identifier = 0
+        not_masking_identifier = 1
+        self.do_test_cal_file(masked_workspace, should_invert, masking_identifier, not_masking_identifier, 100)
+        
+    # Test creating a cal file from a masked MatrixWorkspace with grouping
+    def test_calfile_from_grouped_masked_workspace(self):
+        run_algorithm('CreateSampleWorkspace', OutputWorkspace='wsMaskWSToCalFileTest', rethrow=True)
+        run_algorithm('MaskDetectors', Workspace='wsMaskWSToCalFileTest',WorkspaceIndexList='0-100', MaskedWorkspace='wsMaskWSToCalFileTest', rethrow=True)
+        run_algorithm('GroupDetectors', InputWorkspace='wsMaskWSToCalFileTest', OutputWorkspace='wsMaskWSToCalFileTest', WorkspaceIndexList='0-100', KeepUngroupedSpectra=True, rethrow=True)
+        masked_workspace = mtd['wsMaskWSToCalFileTest']
         should_invert = False
         masking_identifier = 0
         not_masking_identifier = 1
-        self.do_test_cal_file(masked_workspace, should_invert, masking_identifier, not_masking_identifier, 700)
+        self.do_test_cal_file(masked_workspace, should_invert, masking_identifier, not_masking_identifier, 0)
 
     # Test creating a cal file from a MaskWorkspace
     def test_calfile_from_extracted_masking_workspace(self):
-        run_algorithm('Load', Filename='LOQ49886.nxs', OutputWorkspace='LOQ49886', rethrow=True)
-        run_algorithm('MaskDetectors', Workspace='LOQ49886',WorkspaceIndexList='0-700', MaskedWorkspace='LOQ49886', rethrow=True)
-        run_algorithm('ExtractMask', InputWorkspace='LOQ49886', OutputWorkspace='ExtractedWorkspace', rethrow=True)
+        run_algorithm('CreateSampleWorkspace', OutputWorkspace='wsMaskWSToCalFileTest', rethrow=True)
+        run_algorithm('MaskDetectors', Workspace='wsMaskWSToCalFileTest',WorkspaceIndexList='0-100', MaskedWorkspace='wsMaskWSToCalFileTest', rethrow=True)
+        run_algorithm('ExtractMask', InputWorkspace='wsMaskWSToCalFileTest', OutputWorkspace='ExtractedWorkspace', rethrow=True)
         extracted_workspace = mtd['ExtractedWorkspace']
         should_invert = False
         masking_identifier = 0
         not_masking_identifier = 1
-        self.do_test_cal_file(extracted_workspace, should_invert, masking_identifier, not_masking_identifier, 700)
+        self.do_test_cal_file(extracted_workspace, should_invert, masking_identifier, not_masking_identifier, 100)
 
     # Test creating a cal file from a MatrixWorkspace directly with masking inverted
     def test_calfile_from_masked_workspace_inverse(self):
-        run_algorithm('Load', Filename='LOQ49886.nxs', OutputWorkspace='LOQ49886', rethrow=True)
-        run_algorithm('MaskDetectors', Workspace='LOQ49886',WorkspaceIndexList='0-700', MaskedWorkspace='LOQ49886', rethrow=True)
-        masked_workspace = mtd['LOQ49886']
+        run_algorithm('CreateSampleWorkspace', OutputWorkspace='wsMaskWSToCalFileTest', rethrow=True)
+        run_algorithm('MaskDetectors', Workspace='wsMaskWSToCalFileTest',WorkspaceIndexList='0-100', MaskedWorkspace='wsMaskWSToCalFileTest', rethrow=True)
+        masked_workspace = mtd['wsMaskWSToCalFileTest']
         should_invert = True
         masking_identifier = 1
         not_masking_identifier = 0
-        self.do_test_cal_file(masked_workspace, should_invert, masking_identifier, not_masking_identifier, 700)
+        self.do_test_cal_file(masked_workspace, should_invert, masking_identifier, not_masking_identifier, 100)
 
     # Test creating a cal file from a MaskWorkspace with masking inverted
     def test_calfile_from_extracted_masking_workspace_inverse(self):
-        run_algorithm('Load', Filename='LOQ49886.nxs', OutputWorkspace='LOQ49886', rethrow=True)
-        run_algorithm('MaskDetectors', Workspace='LOQ49886',WorkspaceIndexList='0-700', MaskedWorkspace='LOQ49886', rethrow=True)
-        run_algorithm('ExtractMask', InputWorkspace='LOQ49886', OutputWorkspace='ExtractedWorkspace', rethrow=True)
+        run_algorithm('CreateSampleWorkspace', OutputWorkspace='wsMaskWSToCalFileTest', rethrow=True)
+        run_algorithm('MaskDetectors', Workspace='wsMaskWSToCalFileTest',WorkspaceIndexList='0-100', MaskedWorkspace='wsMaskWSToCalFileTest', rethrow=True)
+        run_algorithm('ExtractMask', InputWorkspace='wsMaskWSToCalFileTest', OutputWorkspace='ExtractedWorkspace', rethrow=True)
         extracted_workspace = mtd['ExtractedWorkspace']
         should_invert = True
         masking_identifier = 1
         not_masking_identifier = 0
-        self.do_test_cal_file(extracted_workspace, should_invert, masking_identifier, not_masking_identifier, 700)
+        self.do_test_cal_file(extracted_workspace, should_invert, masking_identifier, not_masking_identifier, 100)
 
 
 
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/OSIRISDiffractionReductionTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/OSIRISDiffractionReductionTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..f8c932cc9b195c98ced8033e772a4a61a36c504b
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/OSIRISDiffractionReductionTest.py
@@ -0,0 +1,71 @@
+import unittest
+from mantid.simpleapi import *
+from mantid.api import *
+
+
+class OSIRISDiffractionReductionTest(unittest.TestCase):
+
+    def test_basic_reduction_completes(self):
+        """
+        Sanity test to ensure the most basic reduction actually completes.
+        """
+
+        ws = OSIRISDiffractionReduction(Sample=['OSI89813.raw'],
+                                        CalFile='osiris_041_RES10.cal',
+                                        Vanadium=['osi89757.raw'])
+
+        self.assertTrue(isinstance(ws, MatrixWorkspace), 'Result workspace should be a matrix workspace.')
+        self.assertEqual(ws.getAxis(0).getUnit().unitID(), 'dSpacing')
+
+
+    def test_reduction_with_manual_drange_completes(self):
+        """
+        Test to ensure reduction with manual dRange selection completes.
+        The run here is for dRange 4.
+        """
+
+        ws = OSIRISDiffractionReduction(Sample=['OSI10203.raw'],
+                                        CalFile='osiris_041_RES10.cal',
+                                        Vanadium=['OSI10156.raw'],
+                                        DetectDRange=False,
+                                        DRange=4)
+
+        self.assertTrue(isinstance(ws, MatrixWorkspace), 'Result workspace should be a matrix workspace.')
+        self.assertEqual(ws.getAxis(0).getUnit().unitID(), 'dSpacing')
+
+
+    def test_reduction_with_can_subtraction(self):
+        """
+        Tests reduction after subtraction of an empty can.
+        """
+
+        ws = OSIRISDiffractionReduction(Sample=['OSI10203.raw'],
+                                        CalFile='osiris_041_RES10.cal',
+                                        Vanadium=['OSI10156.raw'],
+                                        Container='OSI10241.raw',
+                                        DetectDRange=False,
+                                        DRange=4)
+
+        self.assertTrue(isinstance(ws, MatrixWorkspace), 'Result workspace should be a matrix workspace.')
+        self.assertEqual(ws.getAxis(0).getUnit().unitID(), 'dSpacing')
+
+
+    def test_reduction_with_can_subtraction_and_scale(self):
+        """
+        Tests reduction after subtraction of an empty can.
+        """
+
+        ws = OSIRISDiffractionReduction(Sample=['OSI10203.raw'],
+                                        CalFile='osiris_041_RES10.cal',
+                                        Vanadium=['OSI10156.raw'],
+                                        Container='OSI10241.raw',
+                                        ContainerScaleFactor=0.5,
+                                        DetectDRange=False,
+                                        DRange=4)
+
+        self.assertTrue(isinstance(ws, MatrixWorkspace), 'Result workspace should be a matrix workspace.')
+        self.assertEqual(ws.getAxis(0).getUnit().unitID(), 'dSpacing')
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ResNorm2Test.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ResNorm2Test.py
new file mode 100644
index 0000000000000000000000000000000000000000..4d974788fee7016b3b8d01ff0c19498bf22b0913
--- /dev/null
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/ResNorm2Test.py
@@ -0,0 +1,75 @@
+import unittest
+from mantid.simpleapi import *
+from mantid.api import MatrixWorkspace, WorkspaceGroup
+
+
+class ResNorm2Test(unittest.TestCase):
+
+    _res_ws = None
+    _van_ws = None
+
+
+    def setUp(self):
+        self._res_ws = Load(Filename='irs26173_graphite002_res.nxs',
+                            OutputWorkspace='__ResNormTest_Resolution')
+        self._van_ws = Load(Filename='irs26173_graphite002_red.nxs',
+                            OutputWorkspace='__ResNormTest_Vanadium')
+
+
+    def _validate_result(self, result):
+        """
+        Validates that the result workspace is of the correct type, units and shape.
+
+        @param result Result workspace form ResNorm
+        """
+
+        self.assertTrue(isinstance(result, WorkspaceGroup))
+        self.assertEquals(result.getNumberOfEntries(), 2)
+
+        expected_names = [result.name() + '_' + n for n in ['Intensity', 'Stretch']]
+        for name in expected_names:
+            self.assertTrue(name in result.getNames())
+
+        for idx in range(result.getNumberOfEntries()):
+            sub_ws = result.getItem(idx)
+            self.assertTrue(isinstance(sub_ws, MatrixWorkspace))
+            self.assertEqual(sub_ws.blocksize(), self._van_ws.getNumberHistograms())
+            self.assertEquals(sub_ws.getAxis(0).getUnit().unitID(), 'MomentumTransfer')
+
+
+    def test_basic(self):
+        """
+        Tests a basic run of ResNorm.
+        """
+        result = ResNorm(ResolutionWorkspace=self._res_ws,
+                         VanadiumWorkspace=self._van_ws,
+                         Version=2)
+        self._validate_result(result)
+
+
+    def test_with_limits(self):
+        """
+        Tests a basic run of ResNorm with energy limits.
+        """
+        result = ResNorm(ResolutionWorkspace=self._res_ws,
+                         VanadiumWorkspace=self._van_ws,
+                         EnergyMin=-0.1,
+                         EnergyMax=0.1,
+                         Version=2)
+        self._validate_result(result)
+
+
+    def test_with_bad_limits(self):
+        """
+        Tests validation for energy range.
+        """
+        self.assertRaises(RuntimeError, ResNorm,
+                          ResolutionWorkspace=self._res_ws,
+                          VanadiumWorkspace=self._van_ws,
+                          EnergyMin=0.1,
+                          EnergyMax=-0.1,
+                          Version=2)
+
+
+if __name__=="__main__":
+    unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/DensityOfStatesTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/SimulatedDensityOfStatesTest.py
similarity index 57%
rename from Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/DensityOfStatesTest.py
rename to Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/SimulatedDensityOfStatesTest.py
index 4988a9dbb48647ab7d30ad54c8f8aec3320ec643..77c349a800ef92ddb3de7cf70e67c58ba1fcae67 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/DensityOfStatesTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/SimulatedDensityOfStatesTest.py
@@ -1,6 +1,6 @@
 import unittest
 from mantid import logger
-from mantid.simpleapi import DensityOfStates, CheckWorkspacesMatch, Scale, CreateEmptyTableWorkspace
+from mantid.simpleapi import SimulatedDensityOfStates, CheckWorkspacesMatch, Scale, CreateEmptyTableWorkspace
 
 
 def scipy_not_available():
@@ -9,7 +9,7 @@ def scipy_not_available():
         import scipy
         return False
     except:
-        logger.warning("Skipping DensityOfStatesTest because scipy is unavailable.")
+        logger.warning("Skipping SimulatedDensityOfStatesTest because scipy is unavailable.")
         return True
 
 
@@ -28,44 +28,48 @@ def skip_if(skipping_criteria):
 
 
 @skip_if(scipy_not_available)
-class DensityOfStatesTest(unittest.TestCase):
+class SimulatedDensityOfStatesTest(unittest.TestCase):
 
     def setUp(self):
         self._file_name = 'squaricn.phonon'
 
     def test_phonon_load(self):
-        ws = DensityOfStates(File=self._file_name)
+        ws = SimulatedDensityOfStates(File=self._file_name)
         self.assertEquals(ws.getNumberHistograms(), 1)
 
     def test_castep_load(self):
-        ws = DensityOfStates(File='squaricn.castep')
+        ws = SimulatedDensityOfStates(File='squaricn.castep')
         self.assertEquals(ws.getNumberHistograms(), 1)
 
     def test_raman_active(self):
         spec_type = 'Raman_Active'
-        ws = DensityOfStates(File=self._file_name, SpectrumType=spec_type)
+        ws = SimulatedDensityOfStates(File=self._file_name, SpectrumType=spec_type)
         self.assertEquals(ws.getNumberHistograms(), 1)
 
     def test_ir_active(self):
         spec_type = 'IR_Active'
-        ws = DensityOfStates(File=self._file_name, SpectrumType=spec_type)
+        ws = SimulatedDensityOfStates(File=self._file_name, SpectrumType=spec_type)
         self.assertEquals(ws.getNumberHistograms(), 1)
 
     def test_lorentzian_function(self):
-        ws = DensityOfStates(File=self._file_name, Function='Lorentzian')
+        ws = SimulatedDensityOfStates(File=self._file_name, Function='Lorentzian')
         self.assertEquals(ws.getNumberHistograms(), 1)
 
     def test_peak_width(self):
-        ws = DensityOfStates(File=self._file_name, PeakWidth=0.3)
+        ws = SimulatedDensityOfStates(File=self._file_name, PeakWidth='0.3')
+        self.assertEquals(ws.getNumberHistograms(), 1)
+
+    def test_peak_width_function(self):
+        ws = SimulatedDensityOfStates(File=self._file_name, PeakWidth='0.1*energy')
         self.assertEquals(ws.getNumberHistograms(), 1)
 
     def test_temperature(self):
-        ws = DensityOfStates(File=self._file_name, Temperature=50)
+        ws = SimulatedDensityOfStates(File=self._file_name, Temperature=50)
         self.assertEquals(ws.getNumberHistograms(), 1)
 
     def test_scale(self):
-        ws = DensityOfStates(File=self._file_name, Scale=10)
-        ref = DensityOfStates(File=self._file_name)
+        ws = SimulatedDensityOfStates(File=self._file_name, Scale=10)
+        ref = SimulatedDensityOfStates(File=self._file_name)
         ref = Scale(ref, Factor=10)
 
         self.assertEqual(CheckWorkspacesMatch(ws, ref), 'Success!')
@@ -73,8 +77,8 @@ class DensityOfStatesTest(unittest.TestCase):
     def test_bin_width(self):
         import math
 
-        ref = DensityOfStates(File=self._file_name)
-        ws = DensityOfStates(File=self._file_name, BinWidth=2)
+        ref = SimulatedDensityOfStates(File=self._file_name)
+        ws = SimulatedDensityOfStates(File=self._file_name, BinWidth=2)
 
         size = ws.blocksize()
         ref_size = ref.blocksize()
@@ -84,7 +88,7 @@ class DensityOfStatesTest(unittest.TestCase):
     def test_zero_threshold(self):
         import numpy as np
 
-        ws = DensityOfStates(File=self._file_name, ZeroThreshold=20)
+        ws = SimulatedDensityOfStates(File=self._file_name, ZeroThreshold=20)
 
         x = ws.readX(0)
         y = ws.readY(0)
@@ -95,7 +99,7 @@ class DensityOfStatesTest(unittest.TestCase):
     def test_partial(self):
         spec_type = 'DOS'
 
-        ws = DensityOfStates(File=self._file_name, SpectrumType=spec_type, Ions='H,C,O')
+        ws = SimulatedDensityOfStates(File=self._file_name, SpectrumType=spec_type, Ions='H,C,O')
 
         workspaces = ws.getNames()
         self.assertEquals(len(workspaces), 3)
@@ -104,15 +108,15 @@ class DensityOfStatesTest(unittest.TestCase):
         spec_type = 'DOS'
         tolerance = 1e-10
 
-        summed = DensityOfStates(File=self._file_name, SpectrumType=spec_type, Ions='H,C,O', SumContributions=True)
-        total = DensityOfStates(File=self._file_name,  SpectrumType=spec_type)
+        summed = SimulatedDensityOfStates(File=self._file_name, SpectrumType=spec_type, Ions='H,C,O', SumContributions=True)
+        total = SimulatedDensityOfStates(File=self._file_name,  SpectrumType=spec_type)
 
         self.assertEquals(CheckWorkspacesMatch(summed, total, tolerance), 'Success!')
 
     def test_partial_cross_section_scale(self):
         spec_type = 'DOS'
 
-        ws = DensityOfStates(File=self._file_name, SpectrumType=spec_type, Ions='H,C,O', ScaleByCrossSection='Incoherent')
+        ws = SimulatedDensityOfStates(File=self._file_name, SpectrumType=spec_type, Ions='H,C,O', ScaleByCrossSection='Incoherent')
 
         workspaces = ws.getNames()
         self.assertEquals(len(workspaces), 3)
@@ -121,13 +125,13 @@ class DensityOfStatesTest(unittest.TestCase):
         spec_type = 'DOS'
         tolerance = 1e-10
 
-        summed = DensityOfStates(File=self._file_name, SpectrumType=spec_type, Ions='H,C,O', SumContributions=True, ScaleByCrossSection='Incoherent')
-        total = DensityOfStates(File=self._file_name,  SpectrumType=spec_type, ScaleByCrossSection='Incoherent')
+        summed = SimulatedDensityOfStates(File=self._file_name, SpectrumType=spec_type, Ions='H,C,O', SumContributions=True, ScaleByCrossSection='Incoherent')
+        total = SimulatedDensityOfStates(File=self._file_name,  SpectrumType=spec_type, ScaleByCrossSection='Incoherent')
 
         self.assertEquals(CheckWorkspacesMatch(summed, total, tolerance), 'Success!')
 
     def test_ion_table(self):
-        ws = DensityOfStates(File=self._file_name, SpectrumType='IonTable')
+        ws = SimulatedDensityOfStates(File=self._file_name, SpectrumType='IonTable')
 
         # Build the expected output
         expected = CreateEmptyTableWorkspace()
@@ -143,9 +147,16 @@ class DensityOfStatesTest(unittest.TestCase):
         """
         Creating an ion table from a castep file is not possible and should fail validation.
         """
-        self.assertRaises(RuntimeError, DensityOfStates,
+        self.assertRaises(RuntimeError, SimulatedDensityOfStates,
                           File=self._file_name, SpectrumType='IonTable')
 
+    def test_peak_width_function_error(self):
+        """
+        Using an invalid peak width function should raise RuntimeError.
+        """
+        self.assertRaises(RuntimeError, SimulatedDensityOfStates,
+                          File=self._file_name, PeakWidth='10*')
+
 
 if __name__=="__main__":
     unittest.main()
diff --git a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/SymmetriseTest.py b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/SymmetriseTest.py
index 358a6e3e4fede2641e3df59628156ed0d5d6d13a..cf1f148d8513f2b11c9ac10cceea385b80ae2827 100644
--- a/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/SymmetriseTest.py
+++ b/Code/Mantid/Framework/PythonInterface/test/python/plugins/algorithms/SymmetriseTest.py
@@ -87,7 +87,7 @@ class SymmetriseTest(unittest.TestCase):
         """
         Tests a very minimal execution.
         """
-        symm_test_out_ws = Symmetrise(Sample=self._sample_ws,
+        symm_test_out_ws = Symmetrise(InputWorkspace=self._sample_ws,
                                       XMin=0.05, XMax=0.2)
 
         self._validate_workspace(symm_test_out_ws)
@@ -97,7 +97,7 @@ class SymmetriseTest(unittest.TestCase):
         """
         Tests symmetrising about x=0.
         """
-        symm_test_out_ws = Symmetrise(Sample=self._sample_ws,
+        symm_test_out_ws = Symmetrise(InputWorkspace=self._sample_ws,
                                       XMin=0.0, XMax=0.2)
 
         self._validate_workspace(symm_test_out_ws)
@@ -109,7 +109,7 @@ class SymmetriseTest(unittest.TestCase):
         self._sample_ws = _generate_big_sample_ws('symm_test_sample_ws', 10)
         self._spec_range = [3, 7]
 
-        symm_test_out_ws = Symmetrise(Sample=self._sample_ws,
+        symm_test_out_ws = Symmetrise(InputWorkspace=self._sample_ws,
                                       XMin=0.05, XMax=0.2,
                                       SpectraRange=self._spec_range)
 
@@ -120,7 +120,7 @@ class SymmetriseTest(unittest.TestCase):
         """
         Tests running with a given spectra range.
         """
-        symm_test_out_ws = Symmetrise(Sample=self._sample_ws,
+        symm_test_out_ws = Symmetrise(InputWorkspace=self._sample_ws,
                                       XMin=0.05, XMax=0.2,
                                       SpectraRange=[1, 1])
 
@@ -132,7 +132,7 @@ class SymmetriseTest(unittest.TestCase):
         Tests validation on entering an XMin value lower than the smallest value in the X range.
         """
         self.assertRaises(RuntimeError, Symmetrise,
-                          Sample=self._sample_ws,
+                          InputWorkspace=self._sample_ws,
                           OutputWOrkspace='__Symmetrise_TestWS',
                           XMin=-5, XMax=0.2)
 
@@ -142,7 +142,7 @@ class SymmetriseTest(unittest.TestCase):
         Tests validation on entering an XMax value greater than the largest value in the X range.
         """
         self.assertRaises(RuntimeError, Symmetrise,
-                          Sample=self._sample_ws,
+                          InputWorkspace=self._sample_ws,
                           OutputWOrkspace='__Symmetrise_TestWS',
                           XMin=0.05, XMax=15)
 
@@ -152,7 +152,7 @@ class SymmetriseTest(unittest.TestCase):
         Tests validation on entering an XMax value lower then XMin.
         """
         self.assertRaises(RuntimeError, Symmetrise,
-                          Sample=self._sample_ws,
+                          InputWorkspace=self._sample_ws,
                           OutputWOrkspace='__Symmetrise_TestWS',
                           XMin=0.2, XMax=0.1)
 
@@ -162,7 +162,7 @@ class SymmetriseTest(unittest.TestCase):
         Tests validation on entering a minimum spectra number lower then that of the workspace.
         """
         self.assertRaises(RuntimeError, Symmetrise,
-                          Sample=self._sample_ws,
+                          InputWorkspace=self._sample_ws,
                           OutputWOrkspace='__Symmetrise_TestWS',
                           XMin=0.05, XMax=0.2,
                           SpectraRange=[0, 1])
@@ -173,7 +173,7 @@ class SymmetriseTest(unittest.TestCase):
         Tests validation on entering a maximum spectra number higher then that of the workspace.
         """
         self.assertRaises(RuntimeError, Symmetrise,
-                          Sample=self._sample_ws,
+                          InputWorkspace=self._sample_ws,
                           OutputWOrkspace='__Symmetrise_TestWS',
                           XMin=0.05, XMax=0.2,
                           SpectraRange=[1, 2])
diff --git a/Code/Mantid/Framework/PythonInterface/test/testhelpers/WorkspaceCreationHelperModule.cpp b/Code/Mantid/Framework/PythonInterface/test/testhelpers/WorkspaceCreationHelperModule.cpp
index 1e243777f94a463c133dc2a4ba523b62544103a3..8434b0e9a2723d4e9d56a0c7762bc0088e5e4363 100644
--- a/Code/Mantid/Framework/PythonInterface/test/testhelpers/WorkspaceCreationHelperModule.cpp
+++ b/Code/Mantid/Framework/PythonInterface/test/testhelpers/WorkspaceCreationHelperModule.cpp
@@ -9,12 +9,17 @@
 #include <boost/python/register_ptr_to_python.hpp>
 #include <boost/python/return_value_policy.hpp>
 
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/Workspace.h"
+#include "MantidDataObjects/PeaksWorkspace.h"
+#include "MantidPythonInterface/kernel/Policies/AsType.h"
 #include "MantidTestHelpers/MDEventsTestHelper.h" // These are still concerned with workspace creation so attach them here
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 
-using namespace WorkspaceCreationHelper;
+using namespace Mantid::API;
+using namespace Mantid::DataObjects;
 using namespace Mantid::DataObjects::MDEventsTestHelper;
+using namespace Mantid::PythonInterface::Policies;
+using namespace WorkspaceCreationHelper;
 
 BOOST_PYTHON_FUNCTION_OVERLOADS(create2DWorkspaceWithFullInstrument_overloads, create2DWorkspaceWithFullInstrument, 2, 4)
 
@@ -22,18 +27,6 @@ BOOST_PYTHON_FUNCTION_OVERLOADS(makeFakeMDHistoWorkspace_overloads, makeFakeMDHi
 
 BOOST_PYTHON_FUNCTION_OVERLOADS(create2DWorkspaceWithRectangularInstrument_overloads, create2DWorkspaceWithRectangularInstrument, 3, 3)
 
-namespace
-{
-  /**
-   * Proxy to return an API::IEventWorkspace_sptr rather than DataObjects::EventWorkspace_sptr
-   */
-  Mantid::API::IEventWorkspace_sptr CreateEventWorkspaceProxy()
-  {
-    return WorkspaceCreationHelper::CreateEventWorkspace();
-  }
-}
-
-
 BOOST_PYTHON_MODULE(WorkspaceCreationHelper)
 {
   using namespace boost::python;
@@ -42,45 +35,42 @@ BOOST_PYTHON_MODULE(WorkspaceCreationHelper)
   docstring_options docstrings(true, true, false);
 
   //=================================== 2D workspaces ===================================
-  using namespace Mantid::API;
-
-  // Forces it to return a MatrixWorkspace pointer rather than Workspace2D
-  typedef MatrixWorkspace_sptr (*Signature1_2D)(int nHist, int nBins,
-                                                bool includeMonitors, 
-                                                bool startYNegative);
-  // Forces it to return a MatrixWorkspace pointer rather than Workspace2D
-  typedef MatrixWorkspace_sptr (*Signature2_2D)(int numBanks,
-                                                int numPixels,
-                                                int numBins);
-
-  def("create2DWorkspaceWithFullInstrument", (Signature1_2D)&create2DWorkspaceWithFullInstrument, 
-      create2DWorkspaceWithFullInstrument_overloads());
+
+
+  // Function pointers to disambiguate the calls
+  typedef Workspace2D_sptr (*Signature1_2D)(int nHist, int nBins,
+                                            bool includeMonitors,
+                                            bool startYNegative);
+  typedef Workspace2D_sptr (*Signature2_2D)(int numBanks,
+                                            int numPixels,
+                                            int numBins);
+
+  def("create2DWorkspaceWithFullInstrument", (Signature1_2D)&create2DWorkspaceWithFullInstrument,
+      create2DWorkspaceWithFullInstrument_overloads()[return_value_policy<AsType<Workspace_sptr>>()]);
   def("create2DWorkspaceWithRectangularInstrument", (Signature2_2D)&create2DWorkspaceWithRectangularInstrument,
       create2DWorkspaceWithRectangularInstrument_overloads());
 
 
   //=================================== Event Workspaces ===================================
-  
-  // Forces the returns the be IEventWorkspace_sptr
-  typedef IEventWorkspace_sptr (*Signature2_Event)(int,int);
 
-  def("CreateEventWorkspace", &CreateEventWorkspaceProxy);
-  def("CreateEventWorkspace2", (Signature2_Event)&CreateEventWorkspace2);
+  def("CreateEventWorkspace", (EventWorkspace_sptr (*)())CreateEventWorkspace,
+      return_value_policy<AsType<Workspace_sptr>>());
+  def("CreateEventWorkspace2", &CreateEventWorkspace2,
+      return_value_policy<AsType<Workspace_sptr>>());
 
   //=================================== Peak Workspaces ===================================
 
-  // Forces the returns the be IPeaks_sptr
-  typedef IPeaksWorkspace_sptr (*Signature1_Peaks)(const int);
-  typedef IPeaksWorkspace_sptr (*Signature2_Peaks)(const int, const bool);
-
-  def("createPeaksWorkspace", (Signature1_Peaks)&createPeaksWorkspace);
-  def("createPeaksWorkspace", (Signature2_Peaks)&createPeaksWorkspace);
+  def("createPeaksWorkspace", (PeaksWorkspace_sptr (*)(const int))createPeaksWorkspace,
+      return_value_policy<AsType<Workspace_sptr>>());
+  def("createPeaksWorkspace", (PeaksWorkspace_sptr (*)(const int, const bool))createPeaksWorkspace,
+      return_value_policy<AsType<Workspace_sptr>>());
 
   //=================================== MD Workspaces ===================================
 
-  // Forces the returns the be IMDHistoWorkspaceWorkspace_sptr
-  typedef IMDHistoWorkspace_sptr (*Signature1_MDHisto)(double, size_t, size_t, Mantid::coord_t max,
-                                                       double, std::string name, double);
+  // Typedef for function pointer to disabiguate references
+  typedef MDHistoWorkspace_sptr (*Signature1_MDHisto)(double, size_t, size_t, Mantid::coord_t max,
+                                                      double, std::string name, double);
 
-  def("makeFakeMDHistoWorkspace", (Signature1_MDHisto)&makeFakeMDHistoWorkspace, makeFakeMDHistoWorkspace_overloads());
+  def("makeFakeMDHistoWorkspace", (Signature1_MDHisto)&makeFakeMDHistoWorkspace,
+      makeFakeMDHistoWorkspace_overloads()[return_value_policy<AsType<Workspace_sptr>>()]);
 }
diff --git a/Code/Mantid/Framework/RemoteAlgorithms/CMakeLists.txt b/Code/Mantid/Framework/RemoteAlgorithms/CMakeLists.txt
index 9b69bd26fb90e2bbd7e3c457e4ed2d2272e1d1d0..15642bbb5b84d047958319083251a625b0866ec6 100644
--- a/Code/Mantid/Framework/RemoteAlgorithms/CMakeLists.txt
+++ b/Code/Mantid/Framework/RemoteAlgorithms/CMakeLists.txt
@@ -5,6 +5,7 @@ set( SRC_FILES
   src/Authenticate2.cpp
   src/DownloadRemoteFile.cpp
   src/DownloadRemoteFile2.cpp
+  src/Logout2.cpp
   src/QueryAllRemoteJobs.cpp
   src/QueryAllRemoteJobs2.cpp
   src/QueryRemoteFile.cpp
@@ -30,6 +31,7 @@ set( INC_FILES
   inc/MantidRemoteAlgorithms/Authenticate2.h
   inc/MantidRemoteAlgorithms/DownloadRemoteFile.h
   inc/MantidRemoteAlgorithms/DownloadRemoteFile2.h
+  inc/MantidRemoteAlgorithms/Logout2.h
   inc/MantidRemoteAlgorithms/QueryAllRemoteJobs.h
   inc/MantidRemoteAlgorithms/QueryAllRemoteJobs2.h
   inc/MantidRemoteAlgorithms/QueryRemoteFile.h
@@ -55,6 +57,7 @@ set ( TEST_FILES
   Authenticate2Test.h
   DownloadRemoteFileTest.h
   DownloadRemoteFile2Test.h
+  Logout2Test.h
   QueryAllRemoteJobsTest.h
   QueryAllRemoteJobs2Test.h
   QueryRemoteFileTest.h
diff --git a/Code/Mantid/Framework/RemoteAlgorithms/inc/MantidRemoteAlgorithms/Logout2.h b/Code/Mantid/Framework/RemoteAlgorithms/inc/MantidRemoteAlgorithms/Logout2.h
new file mode 100644
index 0000000000000000000000000000000000000000..033f47da026443648a5bef9b8f94243d6ae01bf3
--- /dev/null
+++ b/Code/Mantid/Framework/RemoteAlgorithms/inc/MantidRemoteAlgorithms/Logout2.h
@@ -0,0 +1,60 @@
+#ifndef LOGOUT2_H_
+#define LOGOUT2_H_
+
+#include "MantidAPI/Algorithm.h"
+
+namespace Mantid {
+namespace RemoteAlgorithms {
+
+/**
+Logout from the remote compute resource.
+
+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 Logout2 : public Mantid::API::Algorithm {
+public:
+  /// Default constructor
+  Logout2() : Mantid::API::Algorithm() {}
+  /// Virtual destructor
+  virtual ~Logout2() {}
+  /// Algorithm's name
+  virtual const std::string name() const { return "Logout"; }
+  /// Summary of algorithms purpose
+  virtual const std::string summary() const {
+    return "Logout from a remote compute resource.";
+  }
+
+  /// Algorithm's version
+  virtual int version() const { return (2); }
+  /// Algorithm's category for identification
+  virtual const std::string category() const { return "Remote"; }
+
+private:
+  void init();
+  /// Execution code
+  void exec();
+};
+
+} // end namespace RemoteAlgorithms
+} // end namespace Mantid
+
+#endif /*LOGOUT2_H_*/
diff --git a/Code/Mantid/Framework/RemoteAlgorithms/src/Logout2.cpp b/Code/Mantid/Framework/RemoteAlgorithms/src/Logout2.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b73758d8c1975e1ee2d0dc3bdca930fff9795646
--- /dev/null
+++ b/Code/Mantid/Framework/RemoteAlgorithms/src/Logout2.cpp
@@ -0,0 +1,50 @@
+#include "MantidAPI/RemoteJobManagerFactory.h"
+#include "MantidKernel/FacilityInfo.h"
+#include "MantidKernel/ListValidator.h"
+#include "MantidKernel/MandatoryValidator.h"
+#include "MantidRemoteAlgorithms/Logout2.h"
+
+namespace Mantid {
+namespace RemoteAlgorithms {
+
+// Register the algorithm into the Algorithm Factory
+DECLARE_ALGORITHM(Logout2)
+
+using namespace Mantid::Kernel;
+
+// A reference to the logger is provided by the base class, it is called g_log.
+
+void Logout2::init() {
+  // Unlike most algorithms, this wone doesn't deal with workspaces....
+
+  auto requireValue = boost::make_shared<MandatoryValidator<std::string>>();
+
+  // Compute Resources
+  std::vector<std::string> computes = Mantid::Kernel::ConfigService::Instance()
+                                          .getFacility()
+                                          .computeResources();
+  declareProperty("ComputeResource", "",
+                  boost::make_shared<StringListValidator>(computes),
+                  "The remote computer to log out from", Direction::Input);
+
+  declareProperty("UserName", "", requireValue,
+                  "Name of the user to authenticate as", Direction::Input);
+
+}
+
+void Logout2::exec() {
+
+  const std::string comp = getPropertyValue("ComputeResource");
+  Mantid::API::IRemoteJobManager_sptr jobManager =
+      Mantid::API::RemoteJobManagerFactory::Instance().create(comp);
+
+  const std::string user = getPropertyValue("UserName");
+  jobManager->logout(user);
+
+  g_log.information() << "Logged out from the compute resource " << comp
+                      << ". You will need to authenticate before interacting "
+                         "again with the resource. " << std::endl;
+}
+
+} // end namespace RemoteAlgorithms
+} // end namespace Mantid
diff --git a/Code/Mantid/Framework/RemoteAlgorithms/src/QueryAllRemoteJobs2.cpp b/Code/Mantid/Framework/RemoteAlgorithms/src/QueryAllRemoteJobs2.cpp
index 4ee0ffafd978e9369616ae56a8bef2d5b18efab2..b7792e177402ae9cd7612c5199531a07ce5ca1f6 100644
--- a/Code/Mantid/Framework/RemoteAlgorithms/src/QueryAllRemoteJobs2.cpp
+++ b/Code/Mantid/Framework/RemoteAlgorithms/src/QueryAllRemoteJobs2.cpp
@@ -32,8 +32,8 @@ void QueryAllRemoteJobs2::init() {
   // declare several array properties for different pieces of data.  Values from
   // the same array index are for the same job.
   declareProperty(
-      new ArrayProperty<std::string>("JobId", nullValidator, Direction::Output),
-      "ID string for the job");
+      new ArrayProperty<std::string>("JobID", nullValidator, Direction::Output),
+      "ID string for the job(s)");
   declareProperty(new ArrayProperty<std::string>(
                       "JobStatusString", nullValidator, Direction::Output),
                   "Description of the job's current status (Queued, Running, "
@@ -60,6 +60,10 @@ void QueryAllRemoteJobs2::init() {
   declareProperty(new ArrayProperty<std::string>(
                       "CompletionDate", nullValidator, Direction::Output),
                   "The date & time the job finished");
+
+  declareProperty(new ArrayProperty<std::string>(
+                      "CommandLine", nullValidator, Direction::Output),
+                  "The command line run by this job on the remote compute resource machine(s)");
 }
 
 void QueryAllRemoteJobs2::exec() {
@@ -78,6 +82,7 @@ void QueryAllRemoteJobs2::exec() {
   std::vector<std::string> submitDates;
   std::vector<std::string> startDates;
   std::vector<std::string> completionDates;
+  std::vector<std::string> cmdLine;
   for (size_t j = 0; j < infos.size(); ++j) {
     jobIds.push_back(infos[j].id);
     jobNames.push_back(infos[j].name);
@@ -87,8 +92,9 @@ void QueryAllRemoteJobs2::exec() {
     submitDates.push_back(infos[j].submitDate.toISO8601String());
     startDates.push_back(infos[j].startDate.toISO8601String());
     completionDates.push_back(infos[j].completionTime.toISO8601String());
+    cmdLine.push_back(infos[j].cmdLine);
   }
-  setProperty("JobId", jobIds);
+  setProperty("JobID", jobIds);
   setProperty("JobStatusString", jobStatusStrs);
   setProperty("JobName", jobNames);
   setProperty("ScriptName", runNames);
@@ -96,6 +102,7 @@ void QueryAllRemoteJobs2::exec() {
   setProperty("SubmitDate", submitDates);
   setProperty("StartDate", startDates);
   setProperty("CompletionDate", completionDates);
+  setProperty("CommandLine", cmdLine);
 }
 
 } // end namespace RemoteAlgorithms
diff --git a/Code/Mantid/Framework/RemoteAlgorithms/src/QueryRemoteJob2.cpp b/Code/Mantid/Framework/RemoteAlgorithms/src/QueryRemoteJob2.cpp
index 3d6db94c551ed9f595ac5a957cf3c638297fba5c..d66c0e23ddddbd25cfb0474294736db839ac32a0 100644
--- a/Code/Mantid/Framework/RemoteAlgorithms/src/QueryRemoteJob2.cpp
+++ b/Code/Mantid/Framework/RemoteAlgorithms/src/QueryRemoteJob2.cpp
@@ -71,6 +71,14 @@ void QueryRemoteJob2::init() {
                   "The date & time the job finished (availability is optional "
                   "and implementation dependent)",
                   Direction::Output);
+
+  declareProperty("CommandLine", "", nullValidator,
+                  "The command line run by this job on the remote compute "
+                  "resource machine(s), which in some cases may provide "
+                  "additional low level information on the environment used "
+                  "(modules loaded, exact versions (paths) of scripts being "
+                  "run, etc.)",
+                  Direction::Output);
 }
 
 void QueryRemoteJob2::exec() {
@@ -88,6 +96,7 @@ void QueryRemoteJob2::exec() {
   setProperty("SubmitDate", info.submitDate.toISO8601String());
   setProperty("StartDate", info.startDate.toISO8601String());
   setProperty("CompletionDate", info.completionTime.toISO8601String());
+  setProperty("CommandLine", info.cmdLine);
 }
 
 } // end namespace RemoteAlgorithms
diff --git a/Code/Mantid/Framework/RemoteAlgorithms/src/SubmitRemoteJob2.cpp b/Code/Mantid/Framework/RemoteAlgorithms/src/SubmitRemoteJob2.cpp
index e07a810388c5b70675bd1ea49b214b4005a1b963..02f9f9081ba56494d6947a50be677080c7b616b6 100644
--- a/Code/Mantid/Framework/RemoteAlgorithms/src/SubmitRemoteJob2.cpp
+++ b/Code/Mantid/Framework/RemoteAlgorithms/src/SubmitRemoteJob2.cpp
@@ -75,8 +75,7 @@ void SubmitRemoteJob2::exec() {
   // Put the algorithm execution code here...
   const std::string comp = getPropertyValue("ComputeResource");
   Mantid::API::IRemoteJobManager_sptr jm =
-      Mantid::API::RemoteJobManagerFactory::Instance().create(
-          comp);
+      Mantid::API::RemoteJobManagerFactory::Instance().create(comp);
 
   const std::string tid = getPropertyValue("TransactionID");
   const std::string runnable = getPropertyValue("ScriptName");
@@ -84,11 +83,20 @@ void SubmitRemoteJob2::exec() {
   const std::string displayName = getPropertyValue("TaskName");
   const int nodes = getProperty("NumNodes");
   const int cores = getProperty("CoresPerNode");
-  std::string jid = jm->submitRemoteJob(tid, runnable, params, displayName, nodes, cores);
-
-  setPropertyValue("JobID", jid);
-  g_log.information() << "Job submitted.  Job ID =  "
-                      << jid << " on (remote) compute resource " << comp << std::endl;
+  std::string jid =
+      jm->submitRemoteJob(tid, runnable, params, displayName, nodes, cores);
+
+  try {
+    setProperty("JobID", jid);
+  } catch (std::exception &e) {
+    throw std::runtime_error("Could not set the output property JobID with the "
+                             "ID value returned from the compute resource: '" +
+                             jid + "'. This looks as if there has been "
+                                   "an error in the job submission. Error "
+                             "description: " + e.what());
+  }
+  g_log.information() << "Job submitted.  Job ID =  " << jid
+                      << " on (remote) compute resource " << comp << std::endl;
 }
 
 } // end namespace RemoteAlgorithms
diff --git a/Code/Mantid/Framework/RemoteAlgorithms/test/Logout2Test.h b/Code/Mantid/Framework/RemoteAlgorithms/test/Logout2Test.h
new file mode 100644
index 0000000000000000000000000000000000000000..cd9b0b45e5f993ff53d7b05245bd048c8250d8b6
--- /dev/null
+++ b/Code/Mantid/Framework/RemoteAlgorithms/test/Logout2Test.h
@@ -0,0 +1,97 @@
+#ifndef MANTID_REMOTEALGORITHMS_LOGOUT2TEST_H_
+#define MANTID_REMOTEALGORITHMS_LOGOUT2TEST_H_
+
+#include <cxxtest/TestSuite.h>
+
+#include "MantidAPI/AlgorithmManager.h"
+#include "MantidKernel/ConfigService.h"
+#include "MantidKernel/FacilityInfo.h"
+#include "MantidRemoteAlgorithms/Logout2.h"
+
+using namespace Mantid::RemoteAlgorithms;
+
+class Logout2Test : 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 Logout2Test *createSuite() { return new Logout2Test(); }
+  static void destroySuite(Logout2Test *suite) { delete suite; }
+
+  void test_algorithm() {
+    testAlg = Mantid::API::AlgorithmManager::Instance().create("Logout", 2);
+    TS_ASSERT(testAlg);
+    TS_ASSERT_EQUALS(testAlg->name(), "Logout");
+    TS_ASSERT_EQUALS(testAlg->version(), 2);
+  }
+
+  void test_castAlgorithm() {
+    // can create
+    boost::shared_ptr<Logout2> a;
+    TS_ASSERT(a = boost::make_shared<Logout2>());
+    // can cast to inherited interfaces and base classes
+
+    TS_ASSERT(dynamic_cast<Mantid::RemoteAlgorithms::Logout2 *>(a.get()));
+    TS_ASSERT(dynamic_cast<Mantid::API::Algorithm *>(a.get()));
+    TS_ASSERT(dynamic_cast<Mantid::Kernel::PropertyManagerOwner *>(a.get()));
+    TS_ASSERT(dynamic_cast<Mantid::API::IAlgorithm *>(a.get()));
+    TS_ASSERT(dynamic_cast<Mantid::Kernel::IPropertyManager *>(a.get()));
+  }
+
+  void test_init() {
+    if (!testAlg->isInitialized())
+      TS_ASSERT_THROWS_NOTHING(testAlg->initialize());
+
+    TS_ASSERT(testAlg->isInitialized());
+
+    Logout2 lo;
+    TS_ASSERT_THROWS_NOTHING(lo.initialize());
+  }
+
+  void test_propertiesMissing() {
+    Logout2 lo;
+    TS_ASSERT_THROWS_NOTHING(lo.initialize());
+    // username missing
+    TS_ASSERT_THROWS(lo.setPropertyValue("ComputeResource", "anything"),
+                     std::invalid_argument);
+
+    TS_ASSERT_THROWS(lo.execute(), std::runtime_error);
+    TS_ASSERT(!lo.isExecuted());
+  }
+
+  void test_wrongProperty() {
+    Logout2 lo;
+    TS_ASSERT_THROWS_NOTHING(lo.initialize());
+    TS_ASSERT_THROWS(lo.setPropertyValue("usernam", "anything"),
+                     std::runtime_error);
+  }
+
+  void test_runOK() {
+    testFacilities.push_back(std::make_pair("SNS", "Fermi"));
+    testFacilities.push_back(std::make_pair("ISIS", "SCARF@STFC"));
+
+    const Mantid::Kernel::FacilityInfo &prevFac =
+        Mantid::Kernel::ConfigService::Instance().getFacility();
+    // test that job managers are created correctly for different facilities
+    for (size_t fi = 0; fi < testFacilities.size(); fi++) {
+      const std::string facName = testFacilities[fi].first;
+      const std::string compName = testFacilities[fi].second;
+
+      Mantid::Kernel::ConfigService::Instance().setFacility(facName);
+      Logout2 lo;
+      TS_ASSERT_THROWS_NOTHING(lo.initialize());
+      TS_ASSERT_THROWS_NOTHING(
+          lo.setPropertyValue("ComputeResource", compName));
+      // Note: this would run the algorithm and could do a remote
+      // connection. uncomment only when/if we have a mock up for this
+      // TS_ASSERT_THROWS(lo.execute(), std::exception);
+      TS_ASSERT(!lo.isExecuted());
+    }
+    Mantid::Kernel::ConfigService::Instance().setFacility(prevFac.name());
+  }
+
+private:
+  Mantid::API::IAlgorithm_sptr testAlg;
+  std::vector<std::pair<std::string, std::string>> testFacilities;
+};
+
+#endif // MANTID_REMOTEALGORITHMS_LOGOUT2TEST_H_
diff --git a/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/LSFJobManager.h b/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/LSFJobManager.h
index 9d95b93c703ffe1183d11c71e138d5e4f2751933..d1253983ca2f43725a2b2bab7af0331795af0aac 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/LSFJobManager.h
+++ b/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/LSFJobManager.h
@@ -49,6 +49,9 @@ public:
   virtual void authenticate(const std::string &username,
                             const std::string &password) = 0;
 
+  /// Most likely the logout method specific to SCARFLSF would be valid here
+  virtual void logout(const std::string &username) = 0;
+
   virtual void abortRemoteJob(const std::string &jobID);
 
   virtual std::string
@@ -76,6 +79,10 @@ public:
                                 const std::string &localFileName);
 
 protected:
+  /// define the "application type" (or "submission form" in the LSF web portal)
+  virtual std::string guessJobSubmissionAppName(const std::string &runnablePath,
+                                                const std::string &jobOptions);
+
   typedef std::map<std::string, std::string> StringToStringMap;
 
   /// method that deals with the actual HTTP(S) connection (convenient to
@@ -110,7 +117,7 @@ protected:
   typedef std::pair<std::string, Token> UsernameToken;
 
   // store for username-token pairs
-  std::map<std::string, Token> m_tokenStash;
+  static std::map<std::string, Token> g_tokenStash;
 
   /// Minimal representation of a transaction: an ID and a list of job IDs
   struct Transaction {
@@ -120,7 +127,7 @@ protected:
   };
 
   /// Minimal store for transaction information
-  std::map<std::string, Transaction> m_transactions;
+  static std::map<std::string, Transaction> g_transactions;
 
   // HTTP specifics for SCARF (IBM LSF PAC)
   static std::string g_acceptType;
diff --git a/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/MantidWebServiceAPIHelper.h b/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/MantidWebServiceAPIHelper.h
index 9c97eedf87b1cfbb8c954200ae63ef246584d0ee..06d9636e3e9d6f006e4de602fa662d69af48f2b5 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/MantidWebServiceAPIHelper.h
+++ b/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/MantidWebServiceAPIHelper.h
@@ -92,6 +92,9 @@ public:
 
   const std::string &getDisplayName() const { return m_displayName; }
 
+  // forget authentication token / cookie
+  void clearSessionCookies();
+
 private:
   // Wraps up some of the boilerplate code needed to execute HTTP GET and POST
   // requests
@@ -120,7 +123,7 @@ private:
   // function
   // takes a NameValueCollection object, so we have to convert.  (WTF Poco
   // devs?!?)
-  static std::vector<Poco::Net::HTTPCookie> m_cookies;
+  static std::vector<Poco::Net::HTTPCookie> g_cookies;
   Poco::Net::NameValueCollection getCookies() const;
 
   mutable Poco::Net::HTTPClientSession *
diff --git a/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/MantidWebServiceAPIJobManager.h b/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/MantidWebServiceAPIJobManager.h
index 164f8d245e67b636486f9e4868d80f324b474568..f248696ef7850fbd731338df31f9d772bfdb71fe 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/MantidWebServiceAPIJobManager.h
+++ b/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/MantidWebServiceAPIJobManager.h
@@ -36,10 +36,12 @@ Code Documentation is available at: <http://doxygen.mantidproject.org>
 class DLLExport MantidWebServiceAPIJobManager
     : public Mantid::API::IRemoteJobManager {
 public:
-  virtual ~MantidWebServiceAPIJobManager() {};
+  virtual ~MantidWebServiceAPIJobManager(){};
 
   void authenticate(const std::string &username, const std::string &password);
 
+  void logout(const std::string &username);
+
   std::string
   submitRemoteJob(const std::string &transactionID, const std::string &runnable,
                   const std::string &param, const std::string &taskName = "",
@@ -71,17 +73,17 @@ public:
 protected:
   /// Use the helper for these operations
   virtual std::istream &httpGet(const std::string &path,
-                        const std::string &query_str = "",
-                        const std::string &username = "",
-                        const std::string &password = "") const {
+                                const std::string &query_str = "",
+                                const std::string &username = "",
+                                const std::string &password = "") const {
     return m_helper.httpGet(path, query_str, username, password);
   }
 
   virtual std::istream &
   httpPost(const std::string &path,
            const MantidWebServiceAPIHelper::PostDataMap &postData,
-           const MantidWebServiceAPIHelper::PostDataMap &fileData =
-               MantidWebServiceAPIHelper::PostDataMap(),
+           const MantidWebServiceAPIHelper::PostDataMap &
+               fileData = MantidWebServiceAPIHelper::PostDataMap(),
            const std::string &username = "",
            const std::string &password = "") const {
     return m_helper.httpPost(path, postData, fileData, username, password);
@@ -91,6 +93,8 @@ protected:
     return m_helper.lastStatus();
   }
 
+  void clearSessionCookies() { m_helper.clearSessionCookies(); }
+
 private:
   MantidWebServiceAPIHelper m_helper;
 };
diff --git a/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/SCARFLSFJobManager.h b/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/SCARFLSFJobManager.h
index 96e2efc80643c57eb3e3eae7c8e28236cf7c8085..61390b798e0fd44beb3d27358d7c76b41e26f31d 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/SCARFLSFJobManager.h
+++ b/Code/Mantid/Framework/RemoteJobManagers/inc/MantidRemoteJobManagers/SCARFLSFJobManager.h
@@ -45,6 +45,9 @@ public:
   virtual void logout(const std::string &username = std::string());
 
 private:
+  std::string guessJobSubmissionAppName(const std::string &runnablePath,
+                                        const std::string &jobOptions);
+
   /// helper to encode uri components (SCARF username / passwords)
   static std::string urlComponentEncode(const std::string &in);
 
diff --git a/Code/Mantid/Framework/RemoteJobManagers/src/LSFJobManager.cpp b/Code/Mantid/Framework/RemoteJobManagers/src/LSFJobManager.cpp
index b1c13be5c299726ee4575eaf1fc0b5ade82aeacb..b878a20fb342d556a3623b05cf77e3674d90230a 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/src/LSFJobManager.cpp
+++ b/Code/Mantid/Framework/RemoteJobManagers/src/LSFJobManager.cpp
@@ -30,6 +30,11 @@ namespace {
 Mantid::Kernel::Logger g_log("LSFJobManager");
 }
 
+std::map<std::string, LSFJobManager::Token> LSFJobManager::g_tokenStash;
+std::map<std::string, LSFJobManager::Transaction> LSFJobManager::g_transactions;
+
+std::string LSFJobManager::g_acceptType = "text/plain,application/xml,text/xml";
+
 std::string LSFJobManager::g_killPathBase =
     "webservice/pacclient/jobOperation/kill/";
 
@@ -48,12 +53,10 @@ std::string LSFJobManager::g_downloadOneBasePath = "webservice/pacclient/file/";
 std::string LSFJobManager::g_downloadAllJobFilesBasePath =
     "webservice/pacclient/jobfiles/";
 
-std::string LSFJobManager::g_acceptType = "text/plain,application/xml,text/xml";
-
 using namespace Mantid::Kernel;
 
 void LSFJobManager::abortRemoteJob(const std::string &jobID) {
-  if (m_tokenStash.empty()) {
+  if (g_tokenStash.empty()) {
     throw std::runtime_error(
         "Abort job failed because you do not seem to have logged "
         "in.");
@@ -64,7 +67,7 @@ void LSFJobManager::abortRemoteJob(const std::string &jobID) {
   }
 
   // only support for single-user
-  Token tok = m_tokenStash.begin()->second;
+  Token tok = g_tokenStash.begin()->second;
 
   const std::string token = tok.m_token_str;
   const Poco::URI fullURL = makeFullURI(tok.m_url, g_killPathBase, jobID);
@@ -118,12 +121,12 @@ void LSFJobManager::abortRemoteJob(const std::string &jobID) {
 void LSFJobManager::downloadRemoteFile(const std::string &transactionID,
                                        const std::string &remoteFileName,
                                        const std::string &localFileName) {
-  auto it = m_transactions.find(transactionID);
-  if (m_transactions.end() == it)
+  auto it = g_transactions.find(transactionID);
+  if (g_transactions.end() == it)
     throw std::invalid_argument("Could not find a transaction with ID: " +
                                 transactionID);
 
-  if (m_tokenStash.empty()) {
+  if (g_tokenStash.empty()) {
     throw std::runtime_error(
         "File download failed. You do not seem to have logged in.");
   }
@@ -136,7 +139,7 @@ void LSFJobManager::downloadRemoteFile(const std::string &transactionID,
   }
 
   // only support for single-user
-  Token tok = m_tokenStash.begin()->second;
+  Token tok = g_tokenStash.begin()->second;
 
   // assume that the last job is what we want
   const std::string jobId = jobIDs.back();
@@ -159,13 +162,13 @@ void LSFJobManager::downloadRemoteFile(const std::string &transactionID,
  */
 std::vector<Mantid::API::IRemoteJobManager::RemoteJobInfo>
 LSFJobManager::queryAllRemoteJobs() const {
-  if (m_tokenStash.empty()) {
+  if (g_tokenStash.empty()) {
     throw std::runtime_error(
         "Job status query failed. You do not seem to have logged "
         "in.");
   }
   // only support for single-user
-  Token tok = m_tokenStash.begin()->second;
+  Token tok = g_tokenStash.begin()->second;
 
   // Job query status, needs these headers:
   // headers = {'Content-Type': 'application/xml', 'Cookie': token,
@@ -225,16 +228,16 @@ LSFJobManager::queryAllRemoteJobs() const {
  */
 std::vector<std::string>
 LSFJobManager::queryRemoteFile(const std::string &transactionID) const {
-  auto it = m_transactions.find(transactionID);
-  if (m_transactions.end() == it)
+  auto it = g_transactions.find(transactionID);
+  if (g_transactions.end() == it)
     throw std::invalid_argument("Could not find a transaction with ID: " +
                                 transactionID);
-  if (m_tokenStash.empty()) {
+  if (g_tokenStash.empty()) {
     throw std::runtime_error(
         "Remote file names query failed. You do not seem to have logged in.");
   }
   // only support for single-user
-  Token tok = m_tokenStash.begin()->second;
+  Token tok = g_tokenStash.begin()->second;
 
   std::vector<std::string> jobIDs = it->second.jobIDs;
   if (jobIDs.empty()) {
@@ -311,7 +314,7 @@ LSFJobManager::queryRemoteFile(const std::string &transactionID) const {
  */
 Mantid::API::IRemoteJobManager::RemoteJobInfo
 LSFJobManager::queryRemoteJob(const std::string &jobID) const {
-  if (m_tokenStash.empty()) {
+  if (g_tokenStash.empty()) {
     throw std::runtime_error(
         "Job status query failed. You do not seem to have logged "
         "in.");
@@ -322,7 +325,7 @@ LSFJobManager::queryRemoteJob(const std::string &jobID) const {
   }
 
   // only support for single-user
-  Token tok = m_tokenStash.begin()->second;
+  Token tok = g_tokenStash.begin()->second;
 
   // Job query status, needs these headers:
   // headers = {'Content-Type': 'application/xml', 'Cookie': token,
@@ -406,17 +409,17 @@ LSFJobManager::queryRemoteJob(const std::string &jobID) const {
  * @throw std::runtime_error if there is another issue (like not logged in)
  */
 std::string LSFJobManager::startRemoteTransaction() {
-  if (m_tokenStash.empty()) {
+  if (g_tokenStash.empty()) {
     throw std::runtime_error(
         "Transaction start operation failed. You do not seem to have logged "
         "in.");
   }
 
-  size_t idx = m_transactions.size();
+  size_t idx = g_transactions.size();
   std::string tid =
       std::string("LSFTrans_") + boost::lexical_cast<std::string>(idx + 1);
 
-  auto ret = m_transactions.insert(
+  auto ret = g_transactions.insert(
       std::pair<std::string, Transaction>(tid, LSFJobManager::Transaction()));
 
   // not inserted
@@ -442,15 +445,15 @@ std::string LSFJobManager::startRemoteTransaction() {
  * @throw std::runtime_error if there is another issue (like not logged in)
  */
 void LSFJobManager::stopRemoteTransaction(const std::string &transactionID) {
-  if (m_tokenStash.empty()) {
+  if (g_tokenStash.empty()) {
     throw std::runtime_error(
         "Transaction stop operation failed. You do not seem to have logged "
         "in.");
   }
 
-  auto it = m_transactions.find(transactionID);
+  auto it = g_transactions.find(transactionID);
 
-  if (m_transactions.end() == it)
+  if (g_transactions.end() == it)
     throw std::invalid_argument("Could not find a transaction with ID: " +
                                 transactionID);
 
@@ -460,7 +463,7 @@ void LSFJobManager::stopRemoteTransaction(const std::string &transactionID) {
   for (size_t i = 0; i < jobs.size(); i++) {
     abortRemoteJob(jobs[i]);
   }
-  m_transactions.erase(it);
+  g_transactions.erase(it);
 }
 
 /**
@@ -491,7 +494,7 @@ std::string LSFJobManager::submitRemoteJob(const std::string &transactionID,
                                            const std::string &taskName,
                                            const int numNodes,
                                            const int coresPerNode) {
-  if (m_tokenStash.empty()) {
+  if (g_tokenStash.empty()) {
     throw std::runtime_error(
         "Job submission failed. You do not seem to have logged in.");
   }
@@ -500,7 +503,7 @@ std::string LSFJobManager::submitRemoteJob(const std::string &transactionID,
                                 transactionID);
   }
   // only support for single-user
-  Token tok = m_tokenStash.begin()->second;
+  Token tok = g_tokenStash.begin()->second;
 
   // Job submit query, requires specific parameters for LSF submit
   // Example params passed to python submit utility:
@@ -508,7 +511,7 @@ std::string LSFJobManager::submitRemoteJob(const std::string &transactionID,
   // /work/imat/webservice_test/tomopy/imat_recon_FBP.py;INPUT_ARGS=
   // /work/imat/scripts/test_;JOB_NAME=01_test_job;OUTPUT_FILE=%J.output;ERROR_FILE=
   // %J.error"
-  const std::string appName = "TOMOPY_0_0_3";
+  const std::string appName = guessJobSubmissionAppName(runnable, param);
   // this gets executed (for example via 'exec' or 'python', depending on the
   // appName
   const std::string boundary = "bqJky99mlBWa-ZuqjC53mG6EzbmlxB";
@@ -534,7 +537,7 @@ std::string LSFJobManager::submitRemoteJob(const std::string &transactionID,
         "Error while sending HTTP request to submit a job: " +
         std::string(ie.what()));
   }
-  std::string jobID = "not found";
+  std::string jobID = "";
   if (Mantid::Kernel::InternetHelper::HTTP_OK == code) {
     std::string resp = ss.str();
     if (std::string::npos != resp.find("<errMsg>")) {
@@ -542,16 +545,20 @@ std::string LSFJobManager::submitRemoteJob(const std::string &transactionID,
           << "Submitted job but got a a response that seems to contain "
              "an error message : " << extractPACErrMsg(ss.str()) << std::endl;
     } else {
-      g_log.notice() << "Submitted job successfully." << std::endl;
-      g_log.debug() << "Response from server: " << resp << std::endl;
       // get job id number
-      if (std::string::npos != resp.find("<id>")) {
-        jobID = resp.substr(resp.rfind("<id>") + 1);
+      const std::string idTag = "<id>";
+      if (std::string::npos != resp.find(idTag)) {
+        jobID = resp.substr(resp.rfind(idTag) + idTag.length());
         jobID = jobID.substr(0, jobID.find('<'));
       } else {
-        // default if badly formed string returned
+        // default if badly formed string returned / unable to parse ID from
+        // response
         jobID = "0";
       }
+      g_log.notice() << "Submitted job successfully. It got ID: " << jobID
+                     << std::endl;
+      g_log.debug() << "Response from server after submission: " << resp
+                    << std::endl;
     }
   } else {
     throw std::runtime_error(
@@ -565,10 +572,11 @@ std::string LSFJobManager::submitRemoteJob(const std::string &transactionID,
     int iid = boost::lexical_cast<int>(jobID);
     addJobInTransaction(jobID);
     g_log.debug() << "Submitted job, got ID: " << iid << std::endl;
-  } catch (std::runtime_error) {
-    g_log.warning()
-        << "The job has been succesfully submitted but the code returned does "
-           "not seem well formed." << std::endl;
+  } catch (std::exception &e) {
+    g_log.warning() << "The job has been submitted but the code returned does "
+                       "not seem well formed: '" +
+                           jobID + "'. Detailed error: " +
+                           e.what() << std::endl;
   }
 
   return jobID;
@@ -592,7 +600,7 @@ std::string LSFJobManager::submitRemoteJob(const std::string &transactionID,
 void LSFJobManager::uploadRemoteFile(const std::string &transactionID,
                                      const std::string &remoteFileName,
                                      const std::string &localFileName) {
-  if (m_tokenStash.empty()) {
+  if (g_tokenStash.empty()) {
     throw std::runtime_error(
         "File upload failed. You do not seem to have logged in.");
   }
@@ -601,7 +609,7 @@ void LSFJobManager::uploadRemoteFile(const std::string &transactionID,
                                 transactionID);
   }
   // only support for single-user
-  Token tok = m_tokenStash.begin()->second;
+  Token tok = g_tokenStash.begin()->second;
 
   // File upload, needs these headers:
   // headers = {'Content-Type': 'multipart/mixed; boundary='+boundary,
@@ -639,6 +647,52 @@ void LSFJobManager::uploadRemoteFile(const std::string &transactionID,
   }
 }
 
+/**
+ * Define or guess the application name (AppName) for a job
+ * submission. This is an LSF concept that is used for example to
+ * define different application templates (or submission forms) when
+ * using the web portal interface. In that interface, compute resource
+ * admins can define application specific forms (job submission
+ * templates). An application name normally comes with specific
+ * (default) values for job options (like output file names, job
+ * queue, processors/memory limits, etc.) and specific commands to set
+ * environment variables (like additional library paths or python
+ * packages paths, etc.). For example, there could be a 'Mantid' app
+ * name that would be associated with the appropriate environment
+ * variables, etc. on the remote compute resource.
+ *
+ * This generic implementation for any LSF compute resource / job
+ * manager just returns the 'generic' application name which should
+ * always be available but might well not be the most appropriate for
+ * your particular applications. Depending on the server settings
+ * you'll need to specify particular application names so that LSF
+ * runs the appropriate environment configuration commands. For an
+ * example of specialized definition/guess of different app names see
+ * the SCARF LSF derived class.
+ *
+ * @param runnablePath path to the runnable (script, binary, etc.) that will
+ * be run in a job submission - this can be used to guess what app name/
+ * type is needed.
+ *
+ * @param jobOptions options submitted with the runnable (which can be
+ * command line options, content of a script, etc.) - this info can also be
+ * useful to define the AppName (to find out for example that a particular
+ * tool version is required)
+ *
+ * @returns Application name (server specific, contact your
+ * admin). This generic implementation ignores the inputs and always
+ * returns the 'generic' app name which should be available in any LSF
+ * system. This will go in the <AppName> parameter of the RESTful queries.
+ */
+std::string
+LSFJobManager::guessJobSubmissionAppName(const std::string &runnablePath,
+                                         const std::string &jobOptions) {
+  UNUSED_ARG(runnablePath);
+  UNUSED_ARG(jobOptions);
+
+  return "generic";
+}
+
 /**
  * Send the HHTP(S) request required to perform one of the actions.
  *
@@ -765,14 +819,19 @@ LSFJobManager::genOutputStatusInfo(const std::string &resp,
       info.back().status = "Unknown!";
     }
 
+    // there is no safe simple way to extract the script/binary from command
+    // lines with potentially several 'load module' and other set-environment
+    // instructions. The whole command line is used below for 'Commandline'
+    info.back().runnableName = "Not available";
+
+    info.back().transactionID = "no ID";
+
     Poco::XML::Element *cmd = el->getChildElement("cmd");
     if (cmd) {
-      info.back().runnableName = cmd->innerText();
+      info.back().cmdLine = cmd->innerText();
     } else {
-      info.back().runnableName = "Unknown!";
+      info.back().cmdLine = "Not available";
     }
-
-    info.back().transactionID = "no ID";
   }
 
   return info;
@@ -1281,9 +1340,9 @@ LSFJobManager::makeHeaders(const std::string &contentType,
  * being stopped.
  */
 bool LSFJobManager::findTransaction(const std::string &id) const {
-  auto it = m_transactions.find(id);
+  auto it = g_transactions.find(id);
 
-  return (it != m_transactions.end() && !it->second.stopped);
+  return (it != g_transactions.end() && !it->second.stopped);
 }
 
 /**
@@ -1293,9 +1352,9 @@ bool LSFJobManager::findTransaction(const std::string &id) const {
 *
 */
 void LSFJobManager::addJobInTransaction(const std::string &jobID) {
-  if (m_transactions.size() <= 0)
+  if (g_transactions.size() <= 0)
     return;
-  auto &jobs = m_transactions.rbegin()->second.jobIDs;
+  auto &jobs = g_transactions.rbegin()->second.jobIDs;
   auto it = std::find(jobs.begin(), jobs.end(), jobID);
   if (jobs.end() == it)
     jobs.push_back(jobID);
diff --git a/Code/Mantid/Framework/RemoteJobManagers/src/MantidWebServiceAPIHelper.cpp b/Code/Mantid/Framework/RemoteJobManagers/src/MantidWebServiceAPIHelper.cpp
index 76fc0b074470c62601011a0d468ab4b63efe302a..4e984538f4d94f6cb43219f35140766abaefba0b 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/src/MantidWebServiceAPIHelper.cpp
+++ b/Code/Mantid/Framework/RemoteJobManagers/src/MantidWebServiceAPIHelper.cpp
@@ -17,7 +17,7 @@
 namespace Mantid {
 namespace RemoteJobManagers {
 
-std::vector<Poco::Net::HTTPCookie> MantidWebServiceAPIHelper::m_cookies;
+std::vector<Poco::Net::HTTPCookie> MantidWebServiceAPIHelper::g_cookies;
 
 MantidWebServiceAPIHelper::MantidWebServiceAPIHelper()
     : m_session(
@@ -64,7 +64,7 @@ std::istream &MantidWebServiceAPIHelper::httpGet(
   std::vector<Poco::Net::HTTPCookie> newCookies;
   m_response.getCookies(newCookies);
   if (newCookies.size() > 0) {
-    m_cookies = newCookies;
+    g_cookies = newCookies;
   }
 
   return respStream;
@@ -153,12 +153,14 @@ std::istream &MantidWebServiceAPIHelper::httpPost(
   std::vector<Poco::Net::HTTPCookie> newCookies;
   m_response.getCookies(newCookies);
   if (newCookies.size() > 0) {
-    m_cookies = newCookies;
+    g_cookies = newCookies;
   }
 
   return respStream;
 }
 
+void MantidWebServiceAPIHelper::clearSessionCookies() { g_cookies.clear(); }
+
 // Wrappers for a lot of the boilerplate code needed to perform an HTTPS GET or
 // POST
 void MantidWebServiceAPIHelper::initGetRequest(Poco::Net::HTTPRequest &req,
@@ -226,8 +228,8 @@ void MantidWebServiceAPIHelper::initHTTPRequest(Poco::Net::HTTPRequest &req,
 // Converts the vector of HTTPCookie objects into a NameValueCollection
 Poco::Net::NameValueCollection MantidWebServiceAPIHelper::getCookies() const {
   Poco::Net::NameValueCollection nvc;
-  std::vector<Poco::Net::HTTPCookie>::const_iterator it = m_cookies.begin();
-  while (it != m_cookies.end()) {
+  std::vector<Poco::Net::HTTPCookie>::const_iterator it = g_cookies.begin();
+  while (it != g_cookies.end()) {
     nvc.add((*it).getName(), (*it).getValue());
     ++it;
   }
diff --git a/Code/Mantid/Framework/RemoteJobManagers/src/MantidWebServiceAPIJobManager.cpp b/Code/Mantid/Framework/RemoteJobManagers/src/MantidWebServiceAPIJobManager.cpp
index 4b604dabd601c8269b2e9605f4229606a34e8891..5697870ce5ed1d68392273edd513b66d5ecdfb40 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/src/MantidWebServiceAPIJobManager.cpp
+++ b/Code/Mantid/Framework/RemoteJobManagers/src/MantidWebServiceAPIJobManager.cpp
@@ -28,8 +28,7 @@ using namespace Mantid::Kernel;
  * (remote) compute resource.
  */
 void MantidWebServiceAPIJobManager::abortRemoteJob(const std::string &jobID) {
-  std::istream &respStream =
-    httpGet("/abort", std::string("JobID=") + jobID);
+  std::istream &respStream = httpGet("/abort", std::string("JobID=") + jobID);
   if (lastStatus() != Poco::Net::HTTPResponse::HTTP_OK) {
     JSONObject resp;
     initFromStream(resp, respStream);
@@ -52,8 +51,7 @@ void MantidWebServiceAPIJobManager::authenticate(const std::string &username,
                                                  const std::string &password) {
   MantidWebServiceAPIHelper helper;
 
-  std::istream &respStream =
-      httpGet("/authenticate", "", username, password);
+  std::istream &respStream = httpGet("/authenticate", "", username, password);
   if (lastStatus() != Poco::Net::HTTPResponse::HTTP_OK) {
     JSONObject resp;
     initFromStream(resp, respStream);
@@ -63,6 +61,26 @@ void MantidWebServiceAPIJobManager::authenticate(const std::string &username,
   }
 }
 
+/**
+ * Log out from the remote compute resource, which in the API v1. is
+ * not defined so it is just a no-op in the sense that it does not
+ * interact with the server. The current session cookie(s) is cleared
+ * though, so authentication would be required to start transactions
+ * again.
+ *
+ * Note that jobs that are currently running will not be affected by a logout.
+ * This method does not stop the remote transactions that might have been
+ * started, as that would imply more than simply logging out (removing files,
+ * stopping jobs, etc.) .
+ *
+ * @param username Username on the remote resource.
+ */
+void MantidWebServiceAPIJobManager::logout(const std::string &username) {
+  UNUSED_ARG(username);
+
+  clearSessionCookies();
+}
+
 /**
  * Download a file from a remote compute resource
  *
@@ -82,8 +100,8 @@ void MantidWebServiceAPIJobManager::downloadRemoteFile(
     const std::string &localFileName) {
 
   std::istream &respStream =
-      httpGet("/download", std::string("TransID=") + transactionID +
-                                        "&File=" + remoteFileName);
+      httpGet("/download", std::string("TransID=") + transactionID + "&File=" +
+                               remoteFileName);
 
   if (lastStatus() == Poco::Net::HTTPResponse::HTTP_OK) {
 
@@ -146,6 +164,7 @@ MantidWebServiceAPIJobManager::queryAllRemoteJobs() const {
   std::vector<std::string> submitDates;
   std::vector<std::string> startDates;
   std::vector<std::string> completionDates;
+  std::vector<std::string> cmdLines;
 
   JSONObject::const_iterator it = resp.begin();
   while (it != resp.end()) {
@@ -188,6 +207,8 @@ MantidWebServiceAPIJobManager::queryAllRemoteJobs() const {
       startDates.push_back("");
       completionDates.push_back("");
     }
+    // see comment in queryRemoteJob
+    cmdLines.push_back("Not available");
 
     ++it;
   }
@@ -203,6 +224,7 @@ MantidWebServiceAPIJobManager::queryAllRemoteJobs() const {
     info.submitDate = DateAndTime(submitDates[i]);
     info.startDate = DateAndTime(startDates[i]);
     info.completionTime = DateAndTime(completionDates[i]);
+    info.cmdLine = cmdLines[i];
     result.push_back(info);
   }
 
@@ -258,8 +280,7 @@ std::vector<std::string> MantidWebServiceAPIJobManager::queryRemoteFile(
  */
 Mantid::API::IRemoteJobManager::RemoteJobInfo
 MantidWebServiceAPIJobManager::queryRemoteJob(const std::string &jobID) const {
-  std::istream &respStream =
-      httpGet("/query", std::string("JobID=") + jobID);
+  std::istream &respStream = httpGet("/query", std::string("JobID=") + jobID);
   JSONObject resp;
   initFromStream(resp, respStream);
 
@@ -293,9 +314,8 @@ MantidWebServiceAPIJobManager::queryRemoteJob(const std::string &jobID) const {
   info.transactionID = value;
 
   // The time stuff is actually an optional extension.  We could check the
-  // info
-  // URL and see if the server implements it, but it's easier to just look in
-  // the output and see if the values are there...
+  // info URL and see if the server implements it, but it's easier to just look
+  // in the output and see if the values are there...
   if (status.find("SubmitDate") != status.end()) {
     status["SubmitDate"].getValue(value);
     info.submitDate = DateAndTime(value);
@@ -307,6 +327,10 @@ MantidWebServiceAPIJobManager::queryRemoteJob(const std::string &jobID) const {
     info.completionTime = DateAndTime(value);
   }
 
+  // in principle not required for/provided by the Mantid remote job submission
+  // which always implicitly runs something like 'MantidPlot -xq ScriptName'
+  info.cmdLine = "Not available";
+
   return info;
 }
 
@@ -348,8 +372,8 @@ std::string MantidWebServiceAPIJobManager::startRemoteTransaction() {
 void MantidWebServiceAPIJobManager::stopRemoteTransaction(
     const std::string &transactionID) {
   std::string transId = transactionID;
-  std::istream &respStream = httpGet(
-      "/transaction", std::string("Action=Stop&TransID=") + transId);
+  std::istream &respStream =
+      httpGet("/transaction", std::string("Action=Stop&TransID=") + transId);
 
   if (lastStatus() == Poco::Net::HTTPResponse::HTTP_OK) {
     g_log.information() << "Transaction ID " << transId << " stopped."
diff --git a/Code/Mantid/Framework/RemoteJobManagers/src/SCARFLSFJobManager.cpp b/Code/Mantid/Framework/RemoteJobManagers/src/SCARFLSFJobManager.cpp
index 7a7f41865bf4050de34e8c77ed0691a5e1aea5a8..d4329fa22c2d6889f2dc7463263031324784351f 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/src/SCARFLSFJobManager.cpp
+++ b/Code/Mantid/Framework/RemoteJobManagers/src/SCARFLSFJobManager.cpp
@@ -43,8 +43,8 @@ std::string SCARFLSFJobManager::g_pingBaseURL =
 void SCARFLSFJobManager::authenticate(const std::string &username,
                                       const std::string &password) {
   // base LSFJobManager class only supports a single user presently
-  m_tokenStash.clear();
-  m_transactions.clear();
+  g_tokenStash.clear();
+  g_transactions.clear();
 
   // Do the URI %-encoding, but component by component
   std::string encodedUser = urlComponentEncode(username);
@@ -83,7 +83,7 @@ void SCARFLSFJobManager::authenticate(const std::string &username,
     token_str = "platform_token=" + token_str;
     // insert in the token stash
     UsernameToken tok(username, Token(url, token_str));
-    m_tokenStash.insert(tok); // the password is never stored
+    g_tokenStash.insert(tok); // the password is never stored
     g_log.notice() << "Got authentication token for user '" + username +
                           "'. You are now logged in " << std::endl;
   } else {
@@ -146,28 +146,28 @@ bool SCARFLSFJobManager::ping() {
  * successfully logged in).
  *
  * As the authentication method is specific to SCARF, this logout
- * method has been placed here as specific to SCARF too. Probably it
- * is general to other LSF systems without any/much changes.
+ * method has been placed here as specific to SCARF too. Most likely
+ * it is general to other LSF systems without any/much changes.
  *
  * @param username Username to use (should have authenticated
  * before). Leave it empty to log out the last (maybe only) user that
  * logged in with authenticate().
  */
 void SCARFLSFJobManager::logout(const std::string &username) {
-  if (0 == m_tokenStash.size()) {
+  if (0 == g_tokenStash.size()) {
     throw std::runtime_error("Logout failed. No one is currenlty logged in.");
   }
 
   std::map<std::string, Token>::iterator it;
   if (!username.empty()) {
-    it = m_tokenStash.find(username);
-    if (m_tokenStash.end() == it) {
+    it = g_tokenStash.find(username);
+    if (g_tokenStash.end() == it) {
       throw std::invalid_argument(
           "Logout failed. The username given is not logged in: " + username);
     }
   }
   // only support for single-user
-  Token tok = m_tokenStash.begin()->second;
+  Token tok = g_tokenStash.begin()->second;
 
   // logout query, needs headers = {'Content-Type': 'text/plain', 'Cookie':
   // token,
@@ -196,11 +196,11 @@ void SCARFLSFJobManager::logout(const std::string &username) {
   // successfully logged out, forget the token
   if (username.empty()) {
     // delete first one
-    m_tokenStash.erase(m_tokenStash.begin());
+    g_tokenStash.erase(g_tokenStash.begin());
   } else {
     // delete requested one
-    if (m_tokenStash.end() != it)
-      m_tokenStash.erase(it);
+    if (g_tokenStash.end() != it)
+      g_tokenStash.erase(it);
   }
 }
 
@@ -232,11 +232,32 @@ std::string SCARFLSFJobManager::urlComponentEncode(const std::string &in) {
       out << c;
     } else {
       // Any non unreserved is pct-escaped
-      out << '%' << std::setw(2) << int((unsigned char) c);
+      out << '%' << std::setw(2) << int((unsigned char)c);
     }
   }
   return out.str();
 }
 
+std::string
+SCARFLSFJobManager::guessJobSubmissionAppName(const std::string &runnablePath,
+                                              const std::string &jobOptions)
+{
+  UNUSED_ARG(jobOptions);
+
+  // Two applications are for now registered and being used on SCARF:
+  //  TOMOPY_0_0_3, PYASTRATOOLBOX_1_1
+  std::string appName = "TOMOPY_0_0_3";
+
+  // Basic guess of the app that we might really need. Not
+  // fixed/unstable at the moment
+  if (runnablePath.find("astra-2d-FBP") != std::string::npos
+      ||
+      runnablePath.find("astra-3d-SIRT3D") != std::string::npos ) {
+    appName = "PYASTRATOOLBOX_1_1";
+  }
+
+  return appName;
+}
+
 } // end namespace RemoteJobManagers
 } // end namespace Mantid
diff --git a/Code/Mantid/Framework/RemoteJobManagers/test/LSFJobManagerTest.h b/Code/Mantid/Framework/RemoteJobManagers/test/LSFJobManagerTest.h
index 24406308861b3f6964c84bcfdcc4c623d4b9c85c..70fbb714179f7d1d35c70aec856bcecda4409f8f 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/test/LSFJobManagerTest.h
+++ b/Code/Mantid/Framework/RemoteJobManagers/test/LSFJobManagerTest.h
@@ -13,6 +13,8 @@ class MockedLSFJobManager : public Mantid::RemoteJobManagers::LSFJobManager {
   /// needs to define this pure virtual method
   void authenticate(const std::string & /*username*/,
                     const std::string & /*password*/) {}
+
+  void logout(const std::string & /* username */) {}
 };
 
 /// This just checks basic cast/interface properties of a virtual
diff --git a/Code/Mantid/Framework/RemoteJobManagers/test/SCARFLSFJobManagerTest.h b/Code/Mantid/Framework/RemoteJobManagers/test/SCARFLSFJobManagerTest.h
index cdd104ffe67c66f196247dd9d2b2579773dc4128..47b7f6c279977e88043a3c9545bd4112586713a7 100644
--- a/Code/Mantid/Framework/RemoteJobManagers/test/SCARFLSFJobManagerTest.h
+++ b/Code/Mantid/Framework/RemoteJobManagers/test/SCARFLSFJobManagerTest.h
@@ -334,6 +334,10 @@ public:
         "upload file when logged in, with a wrong transaction ID, should throw",
         jm.uploadRemoteFile("wrong_transID", "remote_fname", "local_fname"),
         std::invalid_argument);
+
+    // logout for the next tests
+    TSM_ASSERT_THROWS_NOTHING("successful logout should not throw",
+                              jm.logout(goodUsername));
   }
 
   /// Login is required before running any other command with SCARF (except
@@ -359,6 +363,10 @@ public:
     MockedGoodLoginResponse_SCARFLSFJM login;
     TSM_ASSERT_THROWS_NOTHING("successful authentication should not throw",
                               login.authenticate(goodUsername, goodPassword));
+
+    // logout for the next tests
+    TSM_ASSERT_THROWS_NOTHING("successful logout should not throw",
+                              login.logout(goodUsername));
   }
 
   void test_startRemoteTransaction() {
@@ -370,13 +378,17 @@ public:
     TSM_ASSERT_THROWS("start transaction should throw when not logged in",
                       tid = jm->startRemoteTransaction(), std::runtime_error);
 
+    const std::string user = "user";
     TSM_ASSERT_THROWS_NOTHING("successful authentication should not throw",
-                              jm->authenticate("user", "pass"));
+                              jm->authenticate(user, "pass"));
     TSM_ASSERT_THROWS_NOTHING(
         "start transaction should not throw when logged in",
         tid = jm->startRemoteTransaction());
     TSM_ASSERT("a successful start transaction should not return an empty ID",
                tid != "");
+    // logout for the next tests
+    TSM_ASSERT_THROWS_NOTHING("successful logout should not throw",
+                              jm->logout(user));
   }
 
   void test_stopRemoteTransaction() {
@@ -384,8 +396,9 @@ public:
     TSM_ASSERT("dynamical allocation of job manager should not fail",
                jm = boost::make_shared<MockedGoodLoginResponse_SCARFLSFJM>());
 
+    const std::string user = "user";
     TSM_ASSERT_THROWS_NOTHING("successful authentication should not throw",
-                              jm->authenticate("user", "pass"));
+                              jm->authenticate(user, "pass"));
     std::string tid;
     TSM_ASSERT_THROWS_NOTHING(
         "start remote transaction should not throw when logged in",
@@ -404,6 +417,9 @@ public:
     TSM_ASSERT_THROWS("stop transaction with an ID of a transaction already "
                       "stopped should throw",
                       jm->stopRemoteTransaction(tid), std::invalid_argument);
+    // logout for the next tests
+    TSM_ASSERT_THROWS_NOTHING("successful logout should not throw",
+                              jm->logout(user));
   }
 
   void test_submit() {
@@ -430,8 +446,9 @@ public:
 
   void test_download() {
     MockedGoodLoginResponse_SCARFLSFJM jm;
+    const std::string user = "user";
     TSM_ASSERT_THROWS_NOTHING("successful authentication should not throw",
-                              jm.authenticate("user", "pass"));
+                              jm.authenticate(user, "pass"));
     std::string tid;
     TSM_ASSERT_THROWS_NOTHING("successful start transaction should not throw",
                               tid = jm.startRemoteTransaction());
@@ -453,6 +470,10 @@ public:
     TSM_ASSERT(
         "this fake job manager for testing should not create downloaded files",
         !Poco::File(localName).exists());
+
+    // logout for the next tests
+    TSM_ASSERT_THROWS_NOTHING("successful logout should not throw",
+                              jm.logout(user));
   }
 
   void test_queryStatus() {
@@ -478,8 +499,9 @@ public:
     std::string id("id0001");
     std::string name("name1");
     MockedGoodJobStatus_SCARFLSFJM jm(id, name);
+    const std::string user = "user";
     TSM_ASSERT_THROWS_NOTHING("successful authentication should not throw",
-                              jm.authenticate("user", "password"));
+                              jm.authenticate(user, "password"));
     TSM_ASSERT_THROWS_NOTHING("successful query all jobs should not throw",
                               infos = jm.queryAllRemoteJobs());
     std::string tid;
@@ -499,12 +521,17 @@ public:
                         "the name obtained when submitting the job",
                         infos[0].name, name);
     }
+
+    // logout for the next tests
+    TSM_ASSERT_THROWS_NOTHING("successful logout should not throw",
+                              jm.logout(user));
   }
 
   void test_queryRemoteFile() {
     MockedGoodLoginResponse_SCARFLSFJM jm;
+    const std::string user = "user";
     TSM_ASSERT_THROWS_NOTHING("successful authentication should not throw",
-                              jm.authenticate("user", "pass"));
+                              jm.authenticate(user, "pass"));
     std::string tid;
     TSM_ASSERT_THROWS_NOTHING("successful start transaction should not throw",
                               tid = jm.startRemoteTransaction());
@@ -521,6 +548,10 @@ public:
     TSM_ASSERT_THROWS_NOTHING("successful query remote file with correct "
                               "transaction ID should not throw",
                               jm.queryRemoteFile(tid));
+
+    // logout for the next tests
+    TSM_ASSERT_THROWS_NOTHING("successful logout should not throw",
+                              jm.logout(user));
   }
 
   void test_queryStatusByID() {
@@ -569,12 +600,12 @@ public:
     MockedSCARFLSFJM jmFail;
     std::string tid("trans001");
     TSM_ASSERT_THROWS("stop transaction without logging in should throw",
-                      jmFail.stopRemoteTransaction(tid), std::runtime_error);
+                      jmFail.stopRemoteTransaction(tid), std::invalid_argument);
 
     MockedErrorResponse_SCARFLSFJM err;
     TSM_ASSERT_THROWS(
         "stop transaction with error response from server should throw",
-        err.stopRemoteTransaction(tid), std::runtime_error);
+        err.stopRemoteTransaction(tid), std::invalid_argument);
     TSM_ASSERT_THROWS(
         "authenticate with error response from server should throw",
         err.authenticate("user", "pass"), std::runtime_error);
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/InvertMDDim.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/InvertMDDim.h
index f6fd6b666e7b0fcadf0ffd4688abbf48f2b7a94b..ff111d602954168d94a8e3bde154331d8b8d5594 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/InvertMDDim.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/InvertMDDim.h
@@ -31,7 +31,7 @@
 
 #include "MantidSINQ/DllConfig.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace_fwd.h"
 
 class MANTID_SINQ_DLL InvertMDDim : public Mantid::API::Algorithm {
 public:
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/MDHistoToWorkspace2D.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/MDHistoToWorkspace2D.h
index 109a76dbf30142de2a65bb05a4d3671202e2c127..58293dbd1930dea6d39c55ec2d4fa1e4c169a53a 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/MDHistoToWorkspace2D.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/MDHistoToWorkspace2D.h
@@ -31,7 +31,7 @@
 
 #include "MantidSINQ/DllConfig.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace_fwd.h"
 #include "MantidGeometry/MDGeometry/MDTypes.h"
 #include "MantidDataObjects/Workspace2D.h"
 
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiAutoCorrelation5.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiAutoCorrelation5.h
index 3cc46f6d7098b6ab5611889bd482931a42b5d590..2c81cfe39224954e78f4d71cb68b37399088f172 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiAutoCorrelation5.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiAutoCorrelation5.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidSINQ/DllConfig.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidDataObjects/TableWorkspace.h"
 
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiFitPeaks1D2.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiFitPeaks1D2.h
index 1bc1d922cdf06f836c3112b76d7dd660f5176b06..a4b145e1869b3907dae5c1c233a5294b9dc051d5 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiFitPeaks1D2.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiFitPeaks1D2.h
@@ -135,6 +135,7 @@ protected:
   API::WorkspaceGroup_sptr m_fitplots;
 
   double m_fwhmMultiples;
+  double m_maxRelativeFwhm;
 
 private:
   void init();
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiFitPeaks2D.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiFitPeaks2D.h
index 9735c98abde77c7f654431055f5b7519646feb58..973c128b27ba685ec33b4abfe7b79f178da2f9a5 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiFitPeaks2D.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiFitPeaks2D.h
@@ -109,6 +109,8 @@ protected:
                          const std::string &crystalSystem,
                          const PoldiPeakCollection_sptr &peakCollection);
 
+  std::string getUserSpecifiedTies(const API::IFunction_sptr &poldiFn);
+
   PoldiPeakCollection_sptr
   getPeakCollectionFromFunction(const API::IFunction_sptr &fitFunction);
 
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiInstrumentAdapter.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiInstrumentAdapter.h
index 9a83e986cff3352ca593afbf80a17aea5caa5e4f..301ab12523e334886abe5b4d03fb0bad121f2424 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiInstrumentAdapter.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiInstrumentAdapter.h
@@ -5,7 +5,7 @@
 #include "MantidSINQ/DllConfig.h"
 #include "MantidGeometry/Instrument.h"
 #include "MantidAPI/ExperimentInfo.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include <map>
 
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiMockInstrumentHelpers.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiMockInstrumentHelpers.h
index b78bd093181ee11405158e54c5e2b469e05a7c5b..29d817638573622fbf2781b937f9004443eb96e3 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiMockInstrumentHelpers.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiMockInstrumentHelpers.h
@@ -407,10 +407,14 @@ public:
         boost::dynamic_pointer_cast<DataObjects::TableWorkspace>(
             API::WorkspaceFactory::Instance().createTable());
     tableWs->addColumn("str", "HKL");
-    tableWs->addColumn("str", "d");
-    tableWs->addColumn("str", "Q");
-    tableWs->addColumn("str", "Intensity");
-    tableWs->addColumn("str", "FWHM (rel.)");
+    tableWs->addColumn("double", "d");
+    tableWs->addColumn("double", "delta d");
+    tableWs->addColumn("double", "Q");
+    tableWs->addColumn("double", "delta Q");
+    tableWs->addColumn("double", "Intensity");
+    tableWs->addColumn("double", "delta Intensity");
+    tableWs->addColumn("double", "FWHM (rel.)");
+    tableWs->addColumn("double", "delta FWHM (rel.)");
 
     tableWs->logs()->addProperty<std::string>("IntensityType", "Maximum");
     tableWs->logs()->addProperty<std::string>("ProfileFunctionName",
@@ -418,31 +422,31 @@ public:
 
     API::TableRow newRow = tableWs->appendRow();
     newRow << "0 0 0"
-           << "1.108644"
-           << "5.667449"
-           << "3286.152"
-           << "0.002475747";
+           << 1.108644 << 0.0
+           << 5.667449 << 0.0
+           << 3286.152 << 0.0
+           << 0.002475747 << 0.0;
 
     newRow = tableWs->appendRow();
     newRow << "0 0 0"
-           << "1.637539"
-           << "3.836968"
-           << "2951.696"
-           << "0.002516417";
+           << 1.637539 << 0.0
+           << 3.836968 << 0.0
+           << 2951.696 << 0.0
+           << 0.002516417 << 0.0;
 
     newRow = tableWs->appendRow();
     newRow << "0 0 0"
-           << "1.920200"
-           << "3.272152"
-           << "3238.473"
-           << "0.002444439";
+           << 1.920200 << 0.0
+           << 3.272152 << 0.0
+           << 3238.473 << 0.0
+           << 0.002444439 << 0.0;
 
     newRow = tableWs->appendRow();
     newRow << "0 0 0"
-           << "1.245958"
-           << "5.042856"
-           << "2219.592"
-           << "0.002696334";
+           << 1.245958 << 0.0
+           << 5.042856 << 0.0
+           << 2219.592 << 0.0
+           << 0.002696334 << 0.0;
 
     return tableWs;
   }
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/ProjectMD.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/ProjectMD.h
index 0ce6a5a1783ef1229cafbe526d25bc389157fbd3..acb7dd9cea0d973c92bce62eb9899fd5b770c7c0 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/ProjectMD.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/ProjectMD.h
@@ -30,7 +30,7 @@
 
 #include "MantidSINQ/DllConfig.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace_fwd.h"
 
 class MANTID_SINQ_DLL ProjectMD : public Mantid::API::Algorithm {
 public:
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SINQHMListener.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SINQHMListener.h
index 68dcf4cfe7743140c768a340e29a4428060f83b0..157470718ead71ff40eb98e96474c5b27ad5909c 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SINQHMListener.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SINQHMListener.h
@@ -33,7 +33,7 @@
 
 #include "MantidSINQ/DllConfig.h"
 #include "MantidAPI/ILiveListener.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace_fwd.h"
 #include "MantidGeometry/IDTypes.h"
 #include "MantidGeometry/MDGeometry/MDTypes.h"
 #include <Poco/Net/HTTPResponse.h>
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SINQTranspose3D.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SINQTranspose3D.h
index 4f256ae119238191270dcb276567f727c89b81e9..862aea97d2671aac13d45818290bd2145fe87aef 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SINQTranspose3D.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SINQTranspose3D.h
@@ -37,7 +37,7 @@
 
 #include "MantidSINQ/DllConfig.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace_fwd.h"
 
 class MANTID_SINQ_DLL SINQTranspose3D : public Mantid::API::Algorithm {
 public:
diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SliceMDHisto.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SliceMDHisto.h
index 2d2e2aea69e0f27b8025a9346dcca86c94715bec..276f146829f767370fbf1ecaad4fefe341ea1a8f 100644
--- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SliceMDHisto.h
+++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/SliceMDHisto.h
@@ -30,7 +30,7 @@
 
 #include "MantidSINQ/DllConfig.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace_fwd.h"
 
 class MANTID_SINQ_DLL SliceMDHisto : public Mantid::API::Algorithm {
 public:
diff --git a/Code/Mantid/Framework/SINQ/src/LoadFlexiNexus.cpp b/Code/Mantid/Framework/SINQ/src/LoadFlexiNexus.cpp
index 716363c687947d65214aa06ac73fd1c47cbdc8e1..2bb6ca7cd7c68e2f318925b7e6852205c334abd5 100644
--- a/Code/Mantid/Framework/SINQ/src/LoadFlexiNexus.cpp
+++ b/Code/Mantid/Framework/SINQ/src/LoadFlexiNexus.cpp
@@ -127,6 +127,9 @@ void LoadFlexiNexus::load2DWorkspace(NeXus::File *fin) {
     spectraLength = static_cast<int>(inf.dims[1]);
   }
 
+  g_log.debug() << "Reading " << nSpectra << " spectra of length "
+                << spectraLength << "." << std::endl;
+
   // need to locate x-axis data too.....
   std::map<std::string, std::string>::const_iterator it;
   std::vector<double> xData;
@@ -158,18 +161,22 @@ void LoadFlexiNexus::load2DWorkspace(NeXus::File *fin) {
   ws = boost::dynamic_pointer_cast<Mantid::DataObjects::Workspace2D>(
       WorkspaceFactory::Instance().create("Workspace2D", nSpectra,
                                           spectraLength, spectraLength));
-  for (int i = 0; i < nSpectra; i++) {
-    Mantid::MantidVec &Y = ws->dataY(i);
+  for (int wsIndex = 0; wsIndex < nSpectra; wsIndex++) {
+    Mantid::MantidVec &Y = ws->dataY(wsIndex);
     for (int j = 0; j < spectraLength; j++) {
-      Y[j] = data[spectraLength * i + j];
+      Y[j] = data[spectraLength * wsIndex + j];
     }
     // Create and fill another vector for the errors, containing sqrt(count)
-    Mantid::MantidVec &E = ws->dataE(i);
+    Mantid::MantidVec &E = ws->dataE(wsIndex);
     std::transform(Y.begin(), Y.end(), E.begin(), dblSqrt);
-    ws->setX(i, xData);
+    ws->setX(wsIndex, xData);
     // Xtof		ws->getAxis(1)->spectraNo(i)= i;
-    ws->getSpectrum(i)->setSpectrumNo(static_cast<specid_t>(yData[i]));
+    ws->getSpectrum(wsIndex)
+        ->setSpectrumNo(static_cast<specid_t>(yData[wsIndex]));
+    ws->getSpectrum(wsIndex)
+        ->setDetectorID(static_cast<detid_t>(yData[wsIndex]));
   }
+
   ws->setYUnit("Counts");
 
   // assign an x-axis-name
@@ -179,6 +186,10 @@ void LoadFlexiNexus::load2DWorkspace(NeXus::File *fin) {
   } else {
     const std::string xname(it->second);
     ws->getAxis(0)->title() = xname;
+    if (xname.compare("TOF") == 0) {
+      g_log.debug() << "Setting X-unit to be TOF" << std::endl;
+      ws->getAxis(0)->setUnit("TOF");
+    }
   }
 
   addMetaData(fin, ws, (ExperimentInfo_sptr)ws);
diff --git a/Code/Mantid/Framework/SINQ/src/MDHistoToWorkspace2D.cpp b/Code/Mantid/Framework/SINQ/src/MDHistoToWorkspace2D.cpp
index 924a88bf19720516cc9930c716853a9d8526d434..365a2185d005fa2044920bc24751bd6e40908b1d 100644
--- a/Code/Mantid/Framework/SINQ/src/MDHistoToWorkspace2D.cpp
+++ b/Code/Mantid/Framework/SINQ/src/MDHistoToWorkspace2D.cpp
@@ -10,6 +10,8 @@
  * Added copying of meta data. Mark Koennecke, July 2013
  */
 #include "MantidSINQ/MDHistoToWorkspace2D.h"
+
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include <cmath>
 #include <iostream>
 
diff --git a/Code/Mantid/Framework/SINQ/src/PoldiFitPeaks1D2.cpp b/Code/Mantid/Framework/SINQ/src/PoldiFitPeaks1D2.cpp
index 3a9b1cca815bc5912f3ab7521934c4387b699ba9..d02a5f4e59b3f09a20996478225fe701dc741ae5 100644
--- a/Code/Mantid/Framework/SINQ/src/PoldiFitPeaks1D2.cpp
+++ b/Code/Mantid/Framework/SINQ/src/PoldiFitPeaks1D2.cpp
@@ -118,7 +118,7 @@ DECLARE_ALGORITHM(PoldiFitPeaks1D2)
 
 PoldiFitPeaks1D2::PoldiFitPeaks1D2()
     : m_peaks(), m_profileTemplate(), m_fitplots(new WorkspaceGroup),
-      m_fwhmMultiples(1.0) {}
+      m_fwhmMultiples(1.0), m_maxRelativeFwhm(0.02) {}
 
 PoldiFitPeaks1D2::~PoldiFitPeaks1D2() {}
 
@@ -150,6 +150,11 @@ void PoldiFitPeaks1D2::init() {
                   "If a fraction larger than this value overlaps with the next "
                   "range, the ranges are merged.");
 
+  declareProperty("MaximumRelativeFwhm", 0.02,
+                  "Peaks with a relative FWHM higher"
+                  "than this value will be excluded.",
+                  Direction::Input);
+
   std::vector<std::string> peakFunctions =
       FunctionFactory::Instance().getFunctionNames<IPeakFunction>();
 
@@ -313,34 +318,45 @@ PoldiFitPeaks1D2::fitPeaks(const PoldiPeakCollection_sptr &peaks) {
 
 int PoldiFitPeaks1D2::getBestChebyshevPolynomialDegree(
     const Workspace2D_sptr &dataWorkspace, const RefinedRange_sptr &range) {
-  int n = 0;
   double chiSquareMin = 1e10;
   int nMin = -1;
 
-  while ((n < 3)) {
-    IAlgorithm_sptr fit = getFitAlgorithm(dataWorkspace, range, n);
-    bool fitSuccess = fit->execute();
+  try {
+    int n = 0;
 
-    if (fitSuccess) {
-      ITableWorkspace_sptr fitCharacteristics =
-          fit->getProperty("OutputParameters");
-      TableRow row =
-          fitCharacteristics->getRow(fitCharacteristics->rowCount() - 1);
+    while ((n < 3)) {
+      IAlgorithm_sptr fit = getFitAlgorithm(dataWorkspace, range, n);
+      bool fitSuccess = fit->execute();
 
-      double chiSquare = row.Double(1);
+      if (fitSuccess) {
+        ITableWorkspace_sptr fitCharacteristics =
+            fit->getProperty("OutputParameters");
+        TableRow row =
+            fitCharacteristics->getRow(fitCharacteristics->rowCount() - 1);
 
-      if (fabs(chiSquare - 1) < fabs(chiSquareMin - 1)) {
-        chiSquareMin = chiSquare;
-        nMin = n;
+        double chiSquare = row.Double(1);
+
+        if (fabs(chiSquare - 1) < fabs(chiSquareMin - 1)) {
+          chiSquareMin = chiSquare;
+          nMin = n;
+        }
       }
-    }
 
-    ++n;
+      ++n;
+    }
+  }
+  catch (std::runtime_error) {
+    nMin = -1;
   }
 
-  g_log.information() << "Chi^2 for range [" << range->getXStart() << " - "
-                      << range->getXEnd() << "] is minimal at n = " << nMin
-                      << " with Chi^2 = " << chiSquareMin << std::endl;
+  if (nMin == -1) {
+    g_log.information() << "Range [" << range->getXStart() << " - "
+                        << range->getXEnd() << "] is excluded.";
+  } else {
+    g_log.information() << "Chi^2 for range [" << range->getXStart() << " - "
+                        << range->getXEnd() << "] is minimal at n = " << nMin
+                        << " with Chi^2 = " << chiSquareMin << std::endl;
+  }
 
   return nMin;
 }
@@ -363,7 +379,8 @@ PoldiPeakCollection_sptr PoldiFitPeaks1D2::getReducedPeakCollection(
 }
 
 bool PoldiFitPeaks1D2::peakIsAcceptable(const PoldiPeak_sptr &peak) const {
-  return peak->intensity() > 0 && peak->fwhm(PoldiPeak::Relative) < 0.02 &&
+  return peak->intensity() > 0 &&
+         peak->fwhm(PoldiPeak::Relative) < m_maxRelativeFwhm &&
          peak->fwhm(PoldiPeak::Relative) > 0.001;
 }
 
@@ -372,6 +389,7 @@ void PoldiFitPeaks1D2::exec() {
 
   // Number of points around the peak center to use for the fit
   m_fwhmMultiples = getProperty("FwhmMultiples");
+  m_maxRelativeFwhm = getProperty("MaximumRelativeFwhm");
 
   // try to construct PoldiPeakCollection from provided TableWorkspace
   TableWorkspace_sptr poldiPeakTable = getProperty("PoldiPeakTable");
diff --git a/Code/Mantid/Framework/SINQ/src/PoldiFitPeaks2D.cpp b/Code/Mantid/Framework/SINQ/src/PoldiFitPeaks2D.cpp
index 38fa55e167894b78a52f70d1d8d6d15f32ae3e2d..df7b16d2aebb20a9fadc16a13f9a582e533d8499 100644
--- a/Code/Mantid/Framework/SINQ/src/PoldiFitPeaks2D.cpp
+++ b/Code/Mantid/Framework/SINQ/src/PoldiFitPeaks2D.cpp
@@ -398,19 +398,28 @@ PoldiFitPeaks2D::getPeakFromPeakFunction(IPeakFunction_sptr profileFunction,
   errorAlg->execute();
 
   double centre = profileFunction->centre();
-  double height = profileFunction->height();
   double fwhmValue = profileFunction->fwhm();
 
   ITableWorkspace_sptr errorTable = errorAlg->getProperty("OutputWorkspace");
-
   double centreError = errorTable->cell<double>(0, 2);
-  double heightError = errorTable->cell<double>(1, 2);
   double fwhmError = errorTable->cell<double>(2, 2);
 
   UncertainValue d(centre, centreError);
-  UncertainValue intensity(height, heightError);
   UncertainValue fwhm(fwhmValue, fwhmError);
 
+  UncertainValue intensity;
+
+  bool useIntegratedIntensities = getProperty("OutputIntegratedIntensities");
+  if (useIntegratedIntensities) {
+    double integratedIntensity = profileFunction->intensity();
+    double integratedIntensityError = errorTable->cell<double>(3, 2);
+    intensity = UncertainValue(integratedIntensity, integratedIntensityError);
+  } else {
+    double height = profileFunction->height();
+    double heightError = errorTable->cell<double>(1, 2);
+    intensity = UncertainValue(height, heightError);
+  }
+
   // Create peak with extracted parameters and supplied hkl
   PoldiPeak_sptr peak =
       PoldiPeak::create(MillerIndices(hkl), d, intensity, UncertainValue(1.0));
@@ -438,7 +447,16 @@ Poldi2DFunction_sptr PoldiFitPeaks2D::getFunctionFromPeakCollection(
     return getFunctionPawley(profileFunctionName, peakCollection);
   }
 
-  return getFunctionIndividualPeaks(profileFunctionName, peakCollection);
+  // Only use ties for independent peaks.
+  Poldi2DFunction_sptr poldi2DFunction =
+      getFunctionIndividualPeaks(profileFunctionName, peakCollection);
+
+  std::string ties = getUserSpecifiedTies(poldi2DFunction);
+  if (!ties.empty()) {
+    poldi2DFunction->addTies(ties);
+  }
+
+  return poldi2DFunction;
 }
 
 /**
@@ -616,10 +634,75 @@ std::string PoldiFitPeaks2D::getRefinedStartingCell(
   return Geometry::unitCellToStr(refinedCell);
 }
 
+/**
+ * @brief Returns a string with ties that is passed to Fit
+ *
+ * This method uses the GlobalParameters property, which may contain a comma-
+ * separated list of parameter names that should be the same for all peaks.
+ *
+ * Parameters that do not exist are silently ignored, but a warning is written
+ * to the log so that users have a chance to find typos.
+ *
+ * @param poldiFn :: Function with some parameters.
+ * @return :: String to pass to the Ties-property of Fit.
+ */
+std::string
+PoldiFitPeaks2D::getUserSpecifiedTies(const IFunction_sptr &poldiFn) {
+  std::string tieParameterList = getProperty("GlobalParameters");
+
+  if (!tieParameterList.empty()) {
+    std::vector<std::string> tieParameters;
+
+    boost::split(tieParameters, tieParameterList, boost::is_any_of(",;"));
+
+    std::vector<std::string> parameters = poldiFn->getParameterNames();
+
+    std::vector<std::string> tieComponents;
+    for (auto it = tieParameters.begin(); it != tieParameters.end(); ++it) {
+      if (!(*it).empty()) {
+        std::vector<std::string> matchedParameters;
+
+        for (auto parName = parameters.begin(); parName != parameters.end();
+             ++parName) {
+          if (boost::algorithm::ends_with(*parName, *it)) {
+            matchedParameters.push_back(*parName);
+          }
+        }
+
+        switch (matchedParameters.size()) {
+        case 0:
+          g_log.warning("Function does not have a parameter called '" + *it +
+                        "', ignoring.");
+          break;
+        case 1:
+          g_log.warning("There is only one peak, no ties necessary.");
+          break;
+        default: {
+          std::string reference = matchedParameters.front();
+
+          for (auto par = matchedParameters.begin() + 1;
+               par != matchedParameters.end(); ++par) {
+            tieComponents.push_back(*par + "=" + reference);
+          }
+          break;
+        }
+        }
+      }
+    }
+
+    if (tieComponents.size() > 0) {
+      return boost::algorithm::join(tieComponents, ",");
+    }
+  }
+
+  return "";
+}
+
 /**
  * Construct a PoldiPeakCollection from a Poldi2DFunction
  *
- * This method performs the opposite operation of getFunctionFromPeakCollection.
+ * This method performs the opposite operation of
+ *getFunctionFromPeakCollection.
  * It takes a function, checks if it's of the proper type and turns the
  * information into a PoldiPeakCollection.
  *
@@ -1040,7 +1123,8 @@ void PoldiFitPeaks2D::setTimeTransformer(
  * data (0 spectra or less than 2 x-values), the method throws an
  * std::invalid_argument-exception Otherwise it calls setDeltaT.
  *
- * @param matrixWorkspace :: MatrixWorkspace with at least one spectrum with at
+ * @param matrixWorkspace :: MatrixWorkspace with at least one spectrum with
+ *at
  *                           least two x-values.
  */
 void PoldiFitPeaks2D::setDeltaTFromWorkspace(
@@ -1100,6 +1184,11 @@ void PoldiFitPeaks2D::init() {
                   "Profile function to use for integrating the peak profiles "
                   "before calculating the spectrum.");
 
+  declareProperty("GlobalParameters", "",
+                  "Comma-separated list of parameter "
+                  "names that are identical for all "
+                  "peaks, is ignored when PawleyFit is selected.");
+
   declareProperty("PawleyFit", false,
                   "Instead of refining individual peaks, "
                   "refine a unit cell. Peaks must be "
@@ -1135,8 +1224,18 @@ void PoldiFitPeaks2D::init() {
                                                    "", Direction::Output),
                   "Table workspace with fitted peaks.");
 
+  declareProperty("OutputIntegratedIntensities", false,
+                  "If this option is checked, the peaks in the algorithm's "
+                  "output will have integrated intensities instead of the "
+                  "maximum.");
+
   declareProperty(new WorkspaceProperty<Workspace>(
       "RefinedCellParameters", "", Direction::Output, PropertyMode::Optional));
+
+  declareProperty(new WorkspaceProperty<Workspace>("RawFitParameters", "",
+                                                   Direction::Output,
+                                                   PropertyMode::Optional),
+                  "Table workspace that contains all raw fit parameters.");
 }
 
 /// Executes the algorithm
@@ -1173,8 +1272,8 @@ void PoldiFitPeaks2D::exec() {
   std::vector<PoldiPeakCollection_sptr> integralPeaks =
       getCountPeakCollections(fitFunction);
 
-  for(size_t i = 0; i < peakCollections.size(); ++i) {
-      assignMillerIndices(peakCollections[i], integralPeaks[i]);
+  for (size_t i = 0; i < peakCollections.size(); ++i) {
+    assignMillerIndices(peakCollections[i], integralPeaks[i]);
   }
 
   // Get the calculated 2D workspace
@@ -1233,6 +1332,14 @@ void PoldiFitPeaks2D::exec() {
       g_log.warning() << "Warning: Cell parameter table is empty.";
     }
   }
+
+  // Optionally output the raw fitting parameters.
+  Property *rawFitParameters = getPointerToProperty("RawFitParameters");
+  if (!rawFitParameters->isDefault()) {
+    ITableWorkspace_sptr parameters =
+        fitAlgorithm->getProperty("OutputParameters");
+    setProperty("RawFitParameters", parameters);
+  }
 }
 
 } // namespace Poldi
diff --git a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiInstrumentAdapter.cpp b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiInstrumentAdapter.cpp
index 0d326cacbf3c9d0805c8146feee96699916415e9..1d563942f8ef5b22072202d08efb550329bc1cf5 100644
--- a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiInstrumentAdapter.cpp
+++ b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiInstrumentAdapter.cpp
@@ -1,5 +1,6 @@
 #include "MantidSINQ/PoldiUtilities/PoldiInstrumentAdapter.h"
 
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidSINQ/PoldiUtilities/PoldiDetectorFactory.h"
 #include "MantidSINQ/PoldiUtilities/PoldiChopperFactory.h"
 #include "MantidSINQ/PoldiUtilities/PoldiSourceSpectrum.h"
diff --git a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiPeakCollection.cpp b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiPeakCollection.cpp
index 14b66276b8095263d6b91c40316c88244c300e89..f14b7ebcc168dce7f61ea15f344815289817bef6 100644
--- a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiPeakCollection.cpp
+++ b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiPeakCollection.cpp
@@ -136,10 +136,14 @@ TableWorkspace_sptr PoldiPeakCollection::asTableWorkspace() {
 
 void PoldiPeakCollection::prepareTable(const TableWorkspace_sptr &table) {
   table->addColumn("str", "HKL");
-  table->addColumn("str", "d");
-  table->addColumn("str", "Q");
-  table->addColumn("str", "Intensity");
-  table->addColumn("str", "FWHM (rel.)");
+  table->addColumn("double", "d");
+  table->addColumn("double", "delta d");
+  table->addColumn("double", "Q");
+  table->addColumn("double", "delta Q");
+  table->addColumn("double", "Intensity");
+  table->addColumn("double", "delta Intensity");
+  table->addColumn("double", "FWHM (rel.)");
+  table->addColumn("double", "delta FWHM (rel.)");
 }
 
 void PoldiPeakCollection::dataToTableLog(const TableWorkspace_sptr &table) {
@@ -158,11 +162,13 @@ void PoldiPeakCollection::peaksToTable(const TableWorkspace_sptr &table) {
   for (std::vector<PoldiPeak_sptr>::const_iterator peak = m_peaks.begin();
        peak != m_peaks.end(); ++peak) {
     TableRow newRow = table->appendRow();
-    newRow << MillerIndicesIO::toString((*peak)->hkl())
-           << UncertainValueIO::toString((*peak)->d())
-           << UncertainValueIO::toString((*peak)->q())
-           << UncertainValueIO::toString((*peak)->intensity())
-           << UncertainValueIO::toString((*peak)->fwhm(PoldiPeak::Relative));
+
+    newRow << MillerIndicesIO::toString((*peak)->hkl()) << (*peak)->d().value()
+           << (*peak)->d().error() << (*peak)->q().value()
+           << (*peak)->q().error() << (*peak)->intensity().value()
+           << (*peak)->intensity().error()
+           << (*peak)->fwhm(PoldiPeak::Relative).value()
+           << (*peak)->fwhm(PoldiPeak::Relative).error();
   }
 }
 
@@ -176,15 +182,15 @@ void PoldiPeakCollection::constructFromTableWorkspace(
 
     for (size_t i = 0; i < newPeakCount; ++i) {
       TableRow nextRow = tableWorkspace->getRow(i);
-      std::string hklString, dString, qString, intensityString, fwhmString;
-      nextRow >> hklString >> dString >> qString >> intensityString >>
-          fwhmString;
-
-      PoldiPeak_sptr peak =
-          PoldiPeak::create(MillerIndicesIO::fromString(hklString),
-                            UncertainValueIO::fromString(dString),
-                            UncertainValueIO::fromString(intensityString),
-                            UncertainValueIO::fromString(fwhmString));
+      std::string hklString;
+      double d, deltaD, q, deltaQ, intensity, deltaIntensity, fwhm, deltaFwhm;
+      nextRow >> hklString >> d >> deltaD >> q >> deltaQ >> intensity >>
+          deltaIntensity >> fwhm >> deltaFwhm;
+
+      PoldiPeak_sptr peak = PoldiPeak::create(
+          MillerIndicesIO::fromString(hklString), UncertainValue(d, deltaD),
+          UncertainValue(intensity, deltaIntensity),
+          UncertainValue(fwhm, deltaFwhm));
       m_peaks[i] = peak;
     }
   }
@@ -192,16 +198,20 @@ void PoldiPeakCollection::constructFromTableWorkspace(
 
 bool
 PoldiPeakCollection::checkColumns(const TableWorkspace_sptr &tableWorkspace) {
-  if (tableWorkspace->columnCount() != 5) {
+  if (tableWorkspace->columnCount() != 9) {
     return false;
   }
 
   std::vector<std::string> shouldNames;
   shouldNames.push_back("HKL");
   shouldNames.push_back("d");
+  shouldNames.push_back("delta d");
   shouldNames.push_back("Q");
+  shouldNames.push_back("delta Q");
   shouldNames.push_back("Intensity");
+  shouldNames.push_back("delta Intensity");
   shouldNames.push_back("FWHM (rel.)");
+  shouldNames.push_back("delta FWHM (rel.)");
 
   std::vector<std::string> columnNames = tableWorkspace->getColumnNames();
 
diff --git a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp
index 1eb8ca7a8a2ade535938ea5e17afe2ea7d3ef953..4e0c3b9efb1b9e12c393d3b7719d4c5224da00b7 100644
--- a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp
+++ b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp
@@ -67,8 +67,8 @@ void PoldiSpectrumDomainFunction::function1DSpectrum(
 
     double dWidth = 2.0 * fwhm;
     double dCalcMin = centre - dWidth;
-    size_t dWidthN = static_cast<size_t>(std::min(
-        50, std::max(10, 2 * static_cast<int>(dWidth / helper->deltaD) + 1)));
+    size_t dWidthN = static_cast<size_t>(
+        std::max(2, 2 * static_cast<int>(dWidth / helper->deltaD) + 1));
 
     int pos = 0;
 
@@ -123,8 +123,8 @@ void PoldiSpectrumDomainFunction::functionDeriv1DSpectrum(
 
     double dWidth = 2.0 * fwhm;
     double dCalcMin = centre - dWidth;
-    size_t dWidthN = static_cast<size_t>(std::min(
-        50, std::max(10, 2 * static_cast<int>(dWidth / helper->deltaD) + 1)));
+    size_t dWidthN = static_cast<size_t>(
+        std::max(2, 2 * static_cast<int>(dWidth / helper->deltaD) + 1));
 
     int pos = 0;
 
diff --git a/Code/Mantid/Framework/SINQ/test/PoldiFitPeaks1D2Test.h b/Code/Mantid/Framework/SINQ/test/PoldiFitPeaks1D2Test.h
index 90b0fa2203ee0d54c5490b5f23910ee363453039..b58e303c0f060b877e00ebcf9e4d965fd1cb034c 100644
--- a/Code/Mantid/Framework/SINQ/test/PoldiFitPeaks1D2Test.h
+++ b/Code/Mantid/Framework/SINQ/test/PoldiFitPeaks1D2Test.h
@@ -13,238 +13,319 @@
 #include "MantidCurveFitting/FlatBackground.h"
 
 #include "MantidSINQ/PoldiUtilities/PoldiPeak.h"
+#include "MantidTestHelpers/WorkspaceCreationHelper.h"
+#include "MantidAPI/FunctionDomain1D.h"
+#include "MantidDataObjects/Workspace2D.h"
 
 using Mantid::Poldi::PoldiFitPeaks1D2;
 using namespace Mantid::Poldi;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::Kernel;
+using namespace Mantid::DataObjects;
 
 class PoldiFitPeaks1D2;
 
-class TestablePoldiFitPeaks1D2 : public Mantid::Poldi::PoldiFitPeaks1D2
-{
-    friend class PoldiFitPeaks1D2Test;
+class TestablePoldiFitPeaks1D2 : public Mantid::Poldi::PoldiFitPeaks1D2 {
+  friend class PoldiFitPeaks1D2Test;
+
 public:
-    TestablePoldiFitPeaks1D2() :
-        PoldiFitPeaks1D2()
-    {
-    }
+  TestablePoldiFitPeaks1D2() : PoldiFitPeaks1D2() {}
 };
 
-class PoldiFitPeaks1D2Test : public CxxTest::TestSuite
-{
+class PoldiFitPeaks1D2Test : 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 PoldiFitPeaks1D2Test *createSuite() { return new PoldiFitPeaks1D2Test(); }
-    static void destroySuite( PoldiFitPeaks1D2Test *suite ) { delete suite; }
-
-    PoldiFitPeaks1D2Test()
-    {
-        m_testPeak = PoldiPeak::create(MillerIndices(1, 1, 1), UncertainValue(1.108329), UncertainValue(2948.231), UncertainValue(0.002));
-        m_profileTestFunction = std::string("Gaussian");
-        m_backgroundTestFunction = IFunction_sptr(new FlatBackground);
-        m_backgroundTestFunction->initialize();
-    }
-
-    void testSetPeakFunction()
-    {
-        TestablePoldiFitPeaks1D2 poldiFitPeaks;
-        poldiFitPeaks.setPeakFunction(m_profileTestFunction);
-
-        TS_ASSERT_EQUALS(poldiFitPeaks.m_profileTemplate, m_profileTestFunction);
-    }
-
-    void testGetPeakProfile()
-    {
-        TestablePoldiFitPeaks1D2 poldiFitPeaks;
-        poldiFitPeaks.initialize();
-        poldiFitPeaks.setPeakFunction(m_profileTestFunction);
-
-        IFunction_sptr peakFunction = poldiFitPeaks.getPeakProfile(m_testPeak);
-
-        // make sure that the profile is correct
-        IPeakFunction_sptr profile = boost::dynamic_pointer_cast<IPeakFunction>(peakFunction);
-        TS_ASSERT(profile);
-
-        TS_ASSERT_EQUALS(profile->centre(), m_testPeak->q());
-        TS_ASSERT_EQUALS(profile->height(), m_testPeak->intensity());
-        TS_ASSERT_EQUALS(profile->fwhm(), m_testPeak->fwhm(PoldiPeak::AbsoluteQ));
-    }
-
-    void testSetValuesFromProfileFunction()
-    {
-        TestablePoldiFitPeaks1D2 poldiFitPeaks;
-        poldiFitPeaks.initialize();
-        poldiFitPeaks.setPeakFunction(m_profileTestFunction);
-
-        IFunction_sptr totalProfile = poldiFitPeaks.getPeakProfile(m_testPeak);
-
-        // now we have a profile with known parameters. assign them to a new PoldiPeak
-        PoldiPeak_sptr newPeak = PoldiPeak::create(1.0);
-        poldiFitPeaks.setValuesFromProfileFunction(newPeak, totalProfile);
-
-        TS_ASSERT_EQUALS(newPeak->q(), m_testPeak->q());
-        TS_ASSERT_EQUALS(newPeak->intensity(), m_testPeak->intensity());
-        TS_ASSERT_EQUALS(newPeak->fwhm(PoldiPeak::AbsoluteQ), m_testPeak->fwhm(PoldiPeak::AbsoluteQ));
-    }
-
-    void testProperties()
-    {
-        Mantid::Poldi::PoldiFitPeaks1D2 fitPeaks1D;
-        fitPeaks1D.initialize();
-
-        TS_ASSERT_EQUALS(fitPeaks1D.propertyCount(), 7);
-
-        std::vector<Property *> properties = fitPeaks1D.getProperties();
-        std::set<std::string> names;
-
-        for(size_t i = 0; i < properties.size(); ++i) {
-            names.insert(properties[i]->name());
-        }
-
-        TS_ASSERT_EQUALS(names.count("InputWorkspace"), 1);
-        TS_ASSERT_EQUALS(names.count("FwhmMultiples"), 1);
-        TS_ASSERT_EQUALS(names.count("PeakFunction"), 1);
-        TS_ASSERT_EQUALS(names.count("PoldiPeakTable"), 1);
-        TS_ASSERT_EQUALS(names.count("OutputWorkspace"), 1);
-        TS_ASSERT_EQUALS(names.count("FitPlotsWorkspace"), 1);
-        TS_ASSERT_EQUALS(names.count("AllowedOverlap"), 1);
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static PoldiFitPeaks1D2Test *createSuite() {
+    return new PoldiFitPeaks1D2Test();
+  }
+  static void destroySuite(PoldiFitPeaks1D2Test *suite) { delete suite; }
+
+  PoldiFitPeaks1D2Test() {
+    m_testPeak =
+        PoldiPeak::create(MillerIndices(1, 1, 1), UncertainValue(1.108329),
+                          UncertainValue(2948.231), UncertainValue(0.002));
+    m_profileTestFunction = std::string("Gaussian");
+    m_backgroundTestFunction = IFunction_sptr(new FlatBackground);
+    m_backgroundTestFunction->initialize();
+  }
+
+  void testSetPeakFunction() {
+    TestablePoldiFitPeaks1D2 poldiFitPeaks;
+    poldiFitPeaks.setPeakFunction(m_profileTestFunction);
+
+    TS_ASSERT_EQUALS(poldiFitPeaks.m_profileTemplate, m_profileTestFunction);
+  }
+
+  void testGetPeakProfile() {
+    TestablePoldiFitPeaks1D2 poldiFitPeaks;
+    poldiFitPeaks.initialize();
+    poldiFitPeaks.setPeakFunction(m_profileTestFunction);
+
+    IFunction_sptr peakFunction = poldiFitPeaks.getPeakProfile(m_testPeak);
+
+    // make sure that the profile is correct
+    IPeakFunction_sptr profile =
+        boost::dynamic_pointer_cast<IPeakFunction>(peakFunction);
+    TS_ASSERT(profile);
+
+    TS_ASSERT_EQUALS(profile->centre(), m_testPeak->q());
+    TS_ASSERT_EQUALS(profile->height(), m_testPeak->intensity());
+    TS_ASSERT_EQUALS(profile->fwhm(), m_testPeak->fwhm(PoldiPeak::AbsoluteQ));
+  }
+
+  void testSetValuesFromProfileFunction() {
+    TestablePoldiFitPeaks1D2 poldiFitPeaks;
+    poldiFitPeaks.initialize();
+    poldiFitPeaks.setPeakFunction(m_profileTestFunction);
+
+    IFunction_sptr totalProfile = poldiFitPeaks.getPeakProfile(m_testPeak);
+
+    // now we have a profile with known parameters. assign them to a new
+    // PoldiPeak
+    PoldiPeak_sptr newPeak = PoldiPeak::create(1.0);
+    poldiFitPeaks.setValuesFromProfileFunction(newPeak, totalProfile);
+
+    TS_ASSERT_EQUALS(newPeak->q(), m_testPeak->q());
+    TS_ASSERT_EQUALS(newPeak->intensity(), m_testPeak->intensity());
+    TS_ASSERT_EQUALS(newPeak->fwhm(PoldiPeak::AbsoluteQ),
+                     m_testPeak->fwhm(PoldiPeak::AbsoluteQ));
+  }
+
+  void testProperties() {
+    Mantid::Poldi::PoldiFitPeaks1D2 fitPeaks1D;
+    fitPeaks1D.initialize();
+
+    TS_ASSERT_EQUALS(fitPeaks1D.propertyCount(), 8);
+
+    std::vector<Property *> properties = fitPeaks1D.getProperties();
+    std::set<std::string> names;
+
+    for (size_t i = 0; i < properties.size(); ++i) {
+      names.insert(properties[i]->name());
     }
 
-    void testRefinedRangePeakConstructor()
-    {
-        double fwhm = m_testPeak->fwhm();
-        double peakQ = m_testPeak->q();
-        double rangeXStart = peakQ - 2.0 * fwhm;
-        double rangeXEnd = peakQ + 2.0 * fwhm;
-
-        RefinedRange range(m_testPeak, 2.0);
-        TS_ASSERT_EQUALS(range.getXStart(), rangeXStart);
-        TS_ASSERT_EQUALS(range.getXEnd(), rangeXEnd);
-        TS_ASSERT_DELTA(range.getWidth(), 4.0 * fwhm, 1e-15);
-
-        // Null pointer does not work
-        PoldiPeak_sptr nullPeak;
-        TS_ASSERT_THROWS(RefinedRange invalid(nullPeak, 2.0), std::invalid_argument);
-
-        // 0 or fewer multiples does not work
-        TS_ASSERT_THROWS(RefinedRange invalid(m_testPeak, 0.0), std::invalid_argument);
-        TS_ASSERT_THROWS(RefinedRange invalid(m_testPeak, -1.0), std::invalid_argument);
-    }
-
-    void testRefinedRangeLimitConstructor()
-    {
-        std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
-
-        TS_ASSERT_THROWS_NOTHING(RefinedRange range(0.0, 1.0, peaks));
-        TS_ASSERT_THROWS(RefinedRange invalid(1.0, 0.0, peaks), std::invalid_argument);
-        TS_ASSERT_THROWS(RefinedRange invalid(1.0, 1.0, peaks), std::invalid_argument);
+    TS_ASSERT_EQUALS(names.count("InputWorkspace"), 1);
+    TS_ASSERT_EQUALS(names.count("FwhmMultiples"), 1);
+    TS_ASSERT_EQUALS(names.count("MaximumRelativeFwhm"), 1);
+    TS_ASSERT_EQUALS(names.count("PeakFunction"), 1);
+    TS_ASSERT_EQUALS(names.count("PoldiPeakTable"), 1);
+    TS_ASSERT_EQUALS(names.count("OutputWorkspace"), 1);
+    TS_ASSERT_EQUALS(names.count("FitPlotsWorkspace"), 1);
+    TS_ASSERT_EQUALS(names.count("AllowedOverlap"), 1);
+  }
+
+  void testRefinedRangePeakConstructor() {
+    double fwhm = m_testPeak->fwhm();
+    double peakQ = m_testPeak->q();
+    double rangeXStart = peakQ - 2.0 * fwhm;
+    double rangeXEnd = peakQ + 2.0 * fwhm;
+
+    RefinedRange range(m_testPeak, 2.0);
+    TS_ASSERT_EQUALS(range.getXStart(), rangeXStart);
+    TS_ASSERT_EQUALS(range.getXEnd(), rangeXEnd);
+    TS_ASSERT_DELTA(range.getWidth(), 4.0 * fwhm, 1e-15);
 
-        RefinedRange range(3.0, 4.0, peaks);
-        TS_ASSERT_EQUALS(range.getXStart(), 3.0);
-        TS_ASSERT_EQUALS(range.getXEnd(), 4.0);
-        TS_ASSERT_EQUALS(range.getWidth(), 1.0);
-    }
+    // Null pointer does not work
+    PoldiPeak_sptr nullPeak;
+    TS_ASSERT_THROWS(RefinedRange invalid(nullPeak, 2.0),
+                     std::invalid_argument);
 
-    void testContains()
-    {
-        std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+    // 0 or fewer multiples does not work
+    TS_ASSERT_THROWS(RefinedRange invalid(m_testPeak, 0.0),
+                     std::invalid_argument);
+    TS_ASSERT_THROWS(RefinedRange invalid(m_testPeak, -1.0),
+                     std::invalid_argument);
+  }
 
-        RefinedRange largeRange(1.0, 3.0, peaks);
-        RefinedRange smallRange(1.5, 2.5, peaks);
+  void testRefinedRangeLimitConstructor() {
+    std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
 
-        TS_ASSERT(largeRange.contains(smallRange));
-        TS_ASSERT(!smallRange.contains(largeRange));
+    TS_ASSERT_THROWS_NOTHING(RefinedRange range(0.0, 1.0, peaks));
+    TS_ASSERT_THROWS(RefinedRange invalid(1.0, 0.0, peaks),
+                     std::invalid_argument);
+    TS_ASSERT_THROWS(RefinedRange invalid(1.0, 1.0, peaks),
+                     std::invalid_argument);
 
-        RefinedRange outsideRange(2.5, 4.5, peaks);
-        TS_ASSERT(!largeRange.contains(outsideRange));
-    }
+    RefinedRange range(3.0, 4.0, peaks);
+    TS_ASSERT_EQUALS(range.getXStart(), 3.0);
+    TS_ASSERT_EQUALS(range.getXEnd(), 4.0);
+    TS_ASSERT_EQUALS(range.getWidth(), 1.0);
+  }
+
+  void testContains() {
+    std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+
+    RefinedRange largeRange(1.0, 3.0, peaks);
+    RefinedRange smallRange(1.5, 2.5, peaks);
 
-    void testOperatorLessThan()
-    {
-        std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+    TS_ASSERT(largeRange.contains(smallRange));
+    TS_ASSERT(!smallRange.contains(largeRange));
+
+    RefinedRange outsideRange(2.5, 4.5, peaks);
+    TS_ASSERT(!largeRange.contains(outsideRange));
+  }
+
+  void testOperatorLessThan() {
+    std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+
+    RefinedRange firstRange(1.0, 3.0, peaks);
+    RefinedRange secondRange(1.5, 2.5, peaks);
+
+    TS_ASSERT(firstRange < secondRange);
+    TS_ASSERT(!(secondRange < firstRange));
+  }
+
+  void testMerge() {
+    std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+
+    RefinedRange firstRange(1.0, 2.0, peaks);
+    RefinedRange secondRange(1.5, 3.5, peaks);
+
+    TS_ASSERT_THROWS_NOTHING(firstRange.merge(secondRange));
+    TS_ASSERT_EQUALS(firstRange.getXStart(), 1.0);
+    TS_ASSERT_EQUALS(firstRange.getXEnd(), 3.5);
+    TS_ASSERT_EQUALS(firstRange.getWidth(), 2.5);
+  }
+
+  void testGetOverlap() {
+    std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+
+    RefinedRange firstRange(1.0, 2.0, peaks);
+    RefinedRange secondRange(1.5, 3.5, peaks);
+
+    TS_ASSERT_EQUALS(firstRange.getOverlapFraction(secondRange), 0.5);
+    TS_ASSERT_EQUALS(secondRange.getOverlapFraction(firstRange), 0.25);
+
+    RefinedRange noOverlapLeft(0.0, 0.5, peaks);
+    TS_ASSERT_EQUALS(firstRange.getOverlapFraction(noOverlapLeft), 0.0);
+    TS_ASSERT_EQUALS(noOverlapLeft.getOverlapFraction(firstRange), 0.0);
+
+    RefinedRange noOverlapRight(4.0, 4.5, peaks);
+    TS_ASSERT_EQUALS(firstRange.getOverlapFraction(noOverlapRight), 0.0);
+    TS_ASSERT_EQUALS(noOverlapRight.getOverlapFraction(firstRange), 0.0);
+
+    RefinedRange noOverlapLeftLimit(0.0, 1.0, peaks);
+    TS_ASSERT_EQUALS(firstRange.getOverlapFraction(noOverlapLeftLimit), 0.0);
+    TS_ASSERT_EQUALS(noOverlapLeftLimit.getOverlapFraction(firstRange), 0.0);
+
+    RefinedRange contained(2.0, 2.5, peaks);
+    TS_ASSERT_EQUALS(secondRange.getOverlapFraction(contained), 0.25);
+  }
+
+  void testOverlaps() {
+    std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+
+    RefinedRange firstRange(1.0, 2.0, peaks);
+    RefinedRange secondRange(1.5, 3.5, peaks);
+
+    TS_ASSERT(firstRange.overlaps(secondRange));
+    TS_ASSERT(secondRange.overlaps(firstRange));
+
+    RefinedRange noOverlapLeft(0.0, 0.5, peaks);
+    TS_ASSERT(!firstRange.overlaps(noOverlapLeft));
+  }
+
+  void testOverlapsFraction() {
+    std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+
+    RefinedRange firstRange(1.0, 2.0, peaks);
+    RefinedRange secondRange(1.5, 3.5, peaks);
+
+    TS_ASSERT(firstRange.overlaps(secondRange, 0.1));
+    TS_ASSERT(firstRange.overlaps(secondRange, 0.15));
+    TS_ASSERT(!firstRange.overlaps(secondRange, 0.55));
+  }
 
-        RefinedRange firstRange(1.0, 3.0, peaks);
-        RefinedRange secondRange(1.5, 2.5, peaks);
+  void testPeakIsAcceptable() {
+      TestablePoldiFitPeaks1D2 poldiPeakFit;
+      poldiPeakFit.m_maxRelativeFwhm = 0.02;
 
-        TS_ASSERT(firstRange < secondRange);
-        TS_ASSERT(!(secondRange < firstRange));
-    }
+      // The testpeak is acceptable
+      TS_ASSERT(poldiPeakFit.peakIsAcceptable(m_testPeak));
 
-    void testMerge()
-    {
-        std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+      // Peaks with certain properties are rejected
+      // 1. negative intensity
+      PoldiPeak_sptr negativeIntensity = m_testPeak->clone();
+      negativeIntensity->setIntensity(UncertainValue(-190.0));
+      TS_ASSERT(!poldiPeakFit.peakIsAcceptable(negativeIntensity));
 
-        RefinedRange firstRange(1.0, 2.0, peaks);
-        RefinedRange secondRange(1.5, 3.5, peaks);
-
-        TS_ASSERT_THROWS_NOTHING(firstRange.merge(secondRange));
-        TS_ASSERT_EQUALS(firstRange.getXStart(), 1.0);
-        TS_ASSERT_EQUALS(firstRange.getXEnd(), 3.5);
-        TS_ASSERT_EQUALS(firstRange.getWidth(), 2.5);
-    }
+      // 2a. FWHM too large (rel. > 0.02)
+      PoldiPeak_sptr tooBroad = m_testPeak->clone();
+      tooBroad->setFwhm(UncertainValue(0.021), PoldiPeak::Relative);
+      TS_ASSERT(!poldiPeakFit.peakIsAcceptable(tooBroad));
 
-    void testGetOverlap()
-    {
-        std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+      // 2b. Changing acceptable FWHM
+      poldiPeakFit.m_maxRelativeFwhm = 0.03;
+      TS_ASSERT(poldiPeakFit.peakIsAcceptable(tooBroad));
 
-        RefinedRange firstRange(1.0, 2.0, peaks);
-        RefinedRange secondRange(1.5, 3.5, peaks);
+      // 3. FWHM too small (rel. < 0.001)
+      PoldiPeak_sptr tooNarrow = m_testPeak->clone();
+      tooNarrow->setFwhm(UncertainValue(0.0009), PoldiPeak::Relative);
+      TS_ASSERT(!poldiPeakFit.peakIsAcceptable(tooNarrow));
+  }
 
-        TS_ASSERT_EQUALS(firstRange.getOverlapFraction(secondRange), 0.5);
-        TS_ASSERT_EQUALS(secondRange.getOverlapFraction(firstRange), 0.25);
+  void testGetBestChebyshevPolynomialDegree() {
+    TestablePoldiFitPeaks1D2 poldiFitPeaks;
+    poldiFitPeaks.initialize();
+    poldiFitPeaks.setPeakFunction(m_profileTestFunction);
+    // Get workspace with a peak and constant background
+    Workspace2D_sptr ws = getWorkspaceWithPeakCurve();
 
-        RefinedRange noOverlapLeft(0.0, 0.5, peaks);
-        TS_ASSERT_EQUALS(firstRange.getOverlapFraction(noOverlapLeft), 0.0);
-        TS_ASSERT_EQUALS(noOverlapLeft.getOverlapFraction(firstRange), 0.0);
+    // Chebyshev polynomial should be best at 0 (= constant)
+    RefinedRange_sptr range(new RefinedRange(m_testPeak, 3.0));
+    int chebyshevDegree =
+        poldiFitPeaks.getBestChebyshevPolynomialDegree(ws, range);
+    TS_ASSERT_EQUALS(chebyshevDegree, 0);
+
+    // If range is too small, Fit will have problems, so the function should
+    // return -1 to indicate failure.
+    double center = m_testPeak->q();
+    RefinedRange_sptr invalidRange(
+        new RefinedRange(center - 0.001, center + 0.001,
+                         std::vector<PoldiPeak_sptr>(1, m_testPeak)));
+
+    int invalidChebyshevDegree =
+        poldiFitPeaks.getBestChebyshevPolynomialDegree(ws, invalidRange);
+    TS_ASSERT_EQUALS(invalidChebyshevDegree, -1);
+  }
 
-        RefinedRange noOverlapRight(4.0, 4.5, peaks);
-        TS_ASSERT_EQUALS(firstRange.getOverlapFraction(noOverlapRight), 0.0);
-        TS_ASSERT_EQUALS(noOverlapRight.getOverlapFraction(firstRange), 0.0);
+private:
+  Workspace2D_sptr getWorkspaceWithPeakCurve() {
+    // Get a peak function for one peak
+    TestablePoldiFitPeaks1D2 poldiFitPeaks;
+    poldiFitPeaks.initialize();
+    poldiFitPeaks.setPeakFunction(m_profileTestFunction);
 
-        RefinedRange noOverlapLeftLimit(0.0, 1.0, peaks);
-        TS_ASSERT_EQUALS(firstRange.getOverlapFraction(noOverlapLeftLimit), 0.0);
-        TS_ASSERT_EQUALS(noOverlapLeftLimit.getOverlapFraction(firstRange), 0.0);
+    IFunction_sptr peakFunction = poldiFitPeaks.getPeakProfile(m_testPeak);
 
-        RefinedRange contained(2.0, 2.5, peaks);
-        TS_ASSERT_EQUALS(secondRange.getOverlapFraction(contained), 0.25);
-    }
+    // calculate the data
+    double center = m_testPeak->q();
+    double fwhm = m_testPeak->fwhm();
 
-    void testOverlaps()
-    {
-        std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
+    FunctionDomain1DVector domain(center - 4.0 * fwhm, center + 4.0 * fwhm, 50);
+    FunctionValues values(domain);
 
-        RefinedRange firstRange(1.0, 2.0, peaks);
-        RefinedRange secondRange(1.5, 3.5, peaks);
+    peakFunction->function(domain, values);
 
-        TS_ASSERT(firstRange.overlaps(secondRange));
-        TS_ASSERT(secondRange.overlaps(firstRange));
+    // put it into a workspace
+    Workspace2D_sptr ws =
+        WorkspaceCreationHelper::Create1DWorkspaceConstant(50, 0.0, 1.0);
+    std::vector<double> &x = ws->dataX(0);
+    std::vector<double> &y = ws->dataY(0);
 
-        RefinedRange noOverlapLeft(0.0, 0.5, peaks);
-        TS_ASSERT(!firstRange.overlaps(noOverlapLeft));
+    for (size_t i = 0; i < x.size(); ++i) {
+      x[i] = domain[i];
+      y[i] = values[i] + 234.5;
     }
 
-    void testOverlapsFraction()
-    {
-        std::vector<PoldiPeak_sptr> peaks(1, m_testPeak);
-
-        RefinedRange firstRange(1.0, 2.0, peaks);
-        RefinedRange secondRange(1.5, 3.5, peaks);
-
-        TS_ASSERT(firstRange.overlaps(secondRange, 0.1));
-        TS_ASSERT(firstRange.overlaps(secondRange, 0.15));
-        TS_ASSERT(!firstRange.overlaps(secondRange, 0.55));
-    }
+    return ws;
+  }
 
-
-
-private:
-    PoldiPeak_sptr m_testPeak;
-    std::string m_profileTestFunction;
-    IFunction_sptr m_backgroundTestFunction;
+  PoldiPeak_sptr m_testPeak;
+  std::string m_profileTestFunction;
+  IFunction_sptr m_backgroundTestFunction;
 };
 
-
 #endif /* MANTID_SINQ_POLDIFITPEAKS1D2TEST_H_ */
diff --git a/Code/Mantid/Framework/SINQ/test/PoldiFitPeaks2DTest.h b/Code/Mantid/Framework/SINQ/test/PoldiFitPeaks2DTest.h
index 4eb4a00e1339592e0bcd548fd1ca026df564344a..3e9d746d207e70a2f9b9c68d54746e8ae600f184 100644
--- a/Code/Mantid/Framework/SINQ/test/PoldiFitPeaks2DTest.h
+++ b/Code/Mantid/Framework/SINQ/test/PoldiFitPeaks2DTest.h
@@ -225,6 +225,49 @@ public:
         }
     }
 
+    void testGetUserDefinedTies()
+    {
+        TestablePoldiFitPeaks2D spectrumCalculator;
+        spectrumCalculator.initialize();
+        spectrumCalculator.setProperty("PeakProfileFunction", "Gaussian");
+
+        // Create a function with some peaks
+        PoldiPeakCollection_sptr peaks = PoldiPeakCollectionHelpers::createPoldiPeakCollectionNormalized();
+        boost::shared_ptr<Poldi2DFunction> poldi2DFunction = spectrumCalculator.getFunctionFromPeakCollection(peaks);
+
+        // Make "Height" global, i.e. the same for all peaks
+        spectrumCalculator.setProperty("GlobalParameters", "Height");
+        std::string ties = spectrumCalculator.getUserSpecifiedTies(poldi2DFunction);
+        TS_ASSERT_EQUALS(ties, "f1.Height=f0.Height,f2.Height=f0.Height,f3.Height=f0.Height");
+
+        // Height and Sigma
+        spectrumCalculator.setProperty("GlobalParameters", "Height,Sigma");
+        ties = spectrumCalculator.getUserSpecifiedTies(poldi2DFunction);
+
+        TS_ASSERT_EQUALS(ties, "f1.Height=f0.Height,f2.Height=f0.Height,f3.Height=f0.Height,"
+                         "f1.Sigma=f0.Sigma,f2.Sigma=f0.Sigma,f3.Sigma=f0.Sigma");
+
+        // Empty
+        spectrumCalculator.setProperty("GlobalParameters", "");
+        ties = spectrumCalculator.getUserSpecifiedTies(poldi2DFunction);
+        TS_ASSERT(ties.empty());
+
+        // Invalid name
+        spectrumCalculator.setProperty("GlobalParameters", "Invalid");
+        ties = spectrumCalculator.getUserSpecifiedTies(poldi2DFunction);
+        TS_ASSERT(ties.empty());
+
+        // Valid and invalid
+        spectrumCalculator.setProperty("GlobalParameters", "Height,Invalid");
+        ties = spectrumCalculator.getUserSpecifiedTies(poldi2DFunction);
+        TS_ASSERT_EQUALS(ties, "f1.Height=f0.Height,f2.Height=f0.Height,f3.Height=f0.Height");
+
+        // Several empty
+        spectrumCalculator.setProperty("GlobalParameters", ",,,,");
+        ties = spectrumCalculator.getUserSpecifiedTies(poldi2DFunction);
+        TS_ASSERT(ties.empty());
+    }
+
     void testGetPeakCollectionFromFunction()
     {
         TestablePoldiFitPeaks2D spectrumCalculator;
diff --git a/Code/Mantid/Framework/SINQ/test/PoldiPeakCollectionTest.h b/Code/Mantid/Framework/SINQ/test/PoldiPeakCollectionTest.h
index 9e83499e21ba6929547797e4d3cb1edb3f5f07d3..fdee1e686fec8194d7ff55b88175479941c3cc74 100644
--- a/Code/Mantid/Framework/SINQ/test/PoldiPeakCollectionTest.h
+++ b/Code/Mantid/Framework/SINQ/test/PoldiPeakCollectionTest.h
@@ -51,16 +51,20 @@ public:
     {
         m_dummyData = boost::dynamic_pointer_cast<TableWorkspace>(WorkspaceFactory::Instance().createTable());
         m_dummyData->addColumn("str", "HKL");
-        m_dummyData->addColumn("str", "d");
-        m_dummyData->addColumn("str", "Q");
-        m_dummyData->addColumn("str", "Intensity");
-        m_dummyData->addColumn("str", "FWHM (rel.)");
+        m_dummyData->addColumn("double", "d");
+        m_dummyData->addColumn("double", "delta d");
+        m_dummyData->addColumn("double", "Q");
+        m_dummyData->addColumn("double", "delta Q");
+        m_dummyData->addColumn("double", "Intensity");
+        m_dummyData->addColumn("double", "delta Intensity");
+        m_dummyData->addColumn("double", "FWHM (rel.)");
+        m_dummyData->addColumn("double", "delta FWHM (rel.)");
 
         TableRow first = m_dummyData->appendRow();
-        first << "1 0 0" << "0.5 +/- 0.001" << "12.566370 +/- 0.001000" << "2000 +/- 3" << "0.5 +/- 0.02";
+        first << "1 0 0" << 0.5 << 0.001 << 12.566370 << 0.02513274 << 2000. << 3. << 0.5 << 0.02;
 
         TableRow second = m_dummyData->appendRow();
-        second << "1 1 0" << "0.8 +/- 0.004" << "7.853981 +/- 0.001000" << "200 +/- 14" << "0.9 +/- 0.1";
+        second << "1 1 0" << 0.8 << 0.004 << 7.853981 << 0.039269905 << 200. << 14. << 0.9 << 0.1;
     }
 
     void testConstruction()
@@ -83,18 +87,16 @@ public:
         TS_ASSERT_EQUALS(first->fwhm(PoldiPeak::AbsoluteD), 0.25);
 
         TableWorkspace_sptr exported = fromTable.asTableWorkspace();
-        TS_ASSERT_EQUALS(exported->columnCount(), 5);
+        TS_ASSERT_EQUALS(exported->columnCount(), 9);
         TS_ASSERT_EQUALS(exported->rowCount(), 2);
 
         TableRow secondRowReference = m_dummyData->getRow(1);
         TableRow secondRow = exported->getRow(1);
 
-        // HKL strings compare directly
         TS_ASSERT_EQUALS(secondRow.cell<std::string>(0), secondRowReference.cell<std::string>(0));
 
-        // The other values not necessarily (string conversion of UncertainValue)
         for(size_t i = 1; i < exported->columnCount(); ++i) {
-            TS_ASSERT_DELTA(UncertainValueIO::fromString(secondRow.cell<std::string>(i)).value(), UncertainValueIO::fromString(secondRowReference.cell<std::string>(i)).value(), 1e-6);
+            TS_ASSERT_DELTA(secondRow.cell<double>(i), secondRowReference.cell<double>(i), 1e-6);
         }
     }
 
@@ -159,7 +161,7 @@ public:
 
         TS_ASSERT_EQUALS(collection.intensityType(), PoldiPeakCollection::Maximum);
 
-        TableWorkspace_sptr newDummy(m_dummyData->clone());
+        TableWorkspace_sptr newDummy(m_dummyData->clone().release());
         newDummy->logs()->addProperty<std::string>("IntensityType", "Integral");
 
         PoldiPeakCollection otherCollection(newDummy);
@@ -168,7 +170,7 @@ public:
 
     void testIntensityTypeRecoveryConversion()
     {
-        TableWorkspace_sptr newDummy(m_dummyData->clone());
+        TableWorkspace_sptr newDummy(m_dummyData->clone().release());
         newDummy->logs()->addProperty<std::string>("IntensityType", "Integral");
 
         PoldiPeakCollection collection(newDummy);
@@ -216,7 +218,7 @@ public:
 
     void testUnitCellFromLogs()
     {
-        TableWorkspace_sptr newDummy(m_dummyData->clone());
+        TableWorkspace_sptr newDummy(m_dummyData->clone().release());
 
         UnitCell cell(1, 2, 3, 90, 91, 92);
         newDummy->logs()->addProperty<std::string>("UnitCell", unitCellToStr(cell));
@@ -239,7 +241,7 @@ public:
 
     void testGetPointGroupStringFromLog()
     {
-        TableWorkspace_sptr newDummy(m_dummyData->clone());
+        TableWorkspace_sptr newDummy(m_dummyData->clone().release());
         newDummy->logs()->addProperty<std::string>("PointGroup", "SomeString");
 
         TestablePoldiPeakCollection peaks;
diff --git a/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/FakeObjects.h b/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/FakeObjects.h
index e49826e8a8581aea79976a475e3ec93cf938b9d0..4086af1e0266ea1c5ea933f60e1d427bbc58903b 100644
--- a/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/FakeObjects.h
+++ b/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/FakeObjects.h
@@ -132,6 +132,9 @@ public:
   }
 
 private:
+  virtual WorkspaceTester *doClone() const {
+    throw std::runtime_error("Cloning of WorkspaceTester is not implemented.");
+  }
   std::vector<SpectrumTester> vec;
   size_t spec;
 };
@@ -231,6 +234,12 @@ public:
   void find(V3D, size_t&, const size_t&) {
     throw std::runtime_error("find not implemented");
   }
+
+private:
+  virtual TableWorkspaceTester *doClone() const {
+    throw std::runtime_error(
+        "Cloning of TableWorkspaceTester is not implemented.");
+  }
 };
 
 //===================================================================================================================
diff --git a/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/MDEventsTestHelper.h b/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/MDEventsTestHelper.h
index f1484cd7cd6768703c31235ae5ce78e2302a0cb2..16f84aee1c099cc2265dffbf24d1128647dbeb0f 100644
--- a/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/MDEventsTestHelper.h
+++ b/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/MDEventsTestHelper.h
@@ -10,7 +10,7 @@
 
 #include "MantidAPI/BoxController.h"
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidDataObjects/MDEventFactory.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
diff --git a/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/WorkspaceCreationHelper.h b/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/WorkspaceCreationHelper.h
index 87480e22136c3dd834a4638b1b6e1698295c875a..6459dbe79f58a5822f5aa8ee0ad68b208759567b 100644
--- a/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/WorkspaceCreationHelper.h
+++ b/Code/Mantid/Framework/TestHelpers/inc/MantidTestHelpers/WorkspaceCreationHelper.h
@@ -20,9 +20,9 @@
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidAPI/Algorithm.h"
 #include "MantidAPI/Run.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/WorkspaceFactory.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 #include "MantidGeometry/Instrument/Detector.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/TestHelpers/src/MDEventsTestHelper.cpp b/Code/Mantid/Framework/TestHelpers/src/MDEventsTestHelper.cpp
index 9a8941ae9d41b443a90a7e5521cf62d2c481c308..ac738ae22134feb2fa14fc27100fffd7e2c2a39c 100644
--- a/Code/Mantid/Framework/TestHelpers/src/MDEventsTestHelper.cpp
+++ b/Code/Mantid/Framework/TestHelpers/src/MDEventsTestHelper.cpp
@@ -69,8 +69,7 @@ createDiffractionEventWorkspace(int numEvents, int numPixels, int numBins) {
   // --------- Load the instrument -----------
   const std::string filename = FileFinder::Instance().getFullPath(
       "IDFs_for_UNIT_TESTING/MINITOPAZ_Definition.xml");
-  InstrumentDefinitionParser parser;
-  parser.initialize(filename, "MINITOPAZ", Strings::loadFile(filename));
+  InstrumentDefinitionParser parser(filename, "MINITOPAZ", Strings::loadFile(filename));
   auto instrument = parser.parseXML(NULL);
   retVal->populateInstrumentParameters();
   retVal->setInstrument(instrument);
diff --git a/Code/Mantid/Framework/TestHelpers/src/WorkspaceCreationHelper.cpp b/Code/Mantid/Framework/TestHelpers/src/WorkspaceCreationHelper.cpp
index 888f3ccabd7845a2ac24d7053a33eb573e57aebc..84dc9dfda4c4d126de83ba7bce4e7acc34a4ecd4 100644
--- a/Code/Mantid/Framework/TestHelpers/src/WorkspaceCreationHelper.cpp
+++ b/Code/Mantid/Framework/TestHelpers/src/WorkspaceCreationHelper.cpp
@@ -498,7 +498,7 @@ create2DWorkspaceWithReflectometryInstrument(double startX) {
   instrument->markAsMonitor(monitor);
 
   ObjComponent *sample = new ObjComponent("some-surface-holder");
-  source->setPos(V3D(15, 0, 0));
+  sample->setPos(V3D(15, 0, 0));
   instrument->add(sample);
   instrument->markAsSamplePos(sample);
 
@@ -518,9 +518,8 @@ create2DWorkspaceWithReflectometryInstrument(double startX) {
   workspace->setYUnit("Counts");
 
   workspace->setInstrument(instrument);
-
-  workspace->getSpectrum(0)->addDetectorID(det->getID());
-  workspace->getSpectrum(1)->addDetectorID(monitor->getID());
+  workspace->getSpectrum(0)->setDetectorID(det->getID());
+  workspace->getSpectrum(1)->setDetectorID(monitor->getID());
   return workspace;
 }
 
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/CMakeLists.txt b/Code/Mantid/Framework/WorkflowAlgorithms/CMakeLists.txt
index 4c72035f2b244257c83e15fc11329c9ef7de1f78..b1d58adca36d49bb00e3e9d58fc5e89b4348fb85 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/CMakeLists.txt
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/CMakeLists.txt
@@ -33,8 +33,8 @@ set ( SRC_FILES
 	src/StepScan.cpp
 	src/WorkflowAlgorithmHelpers.cpp
 )
-                
-set ( SRC_UNITY_IGNORE_FILES 
+
+set ( SRC_UNITY_IGNORE_FILES
 )
 
 set ( INC_FILES
@@ -53,7 +53,6 @@ set ( INC_FILES
 	inc/MantidWorkflowAlgorithms/EQSANSMonitorTOF.h
 	inc/MantidWorkflowAlgorithms/EQSANSPatchSensitivity.h
 	inc/MantidWorkflowAlgorithms/EQSANSQ2D.h
-	inc/MantidWorkflowAlgorithms/EQSANSReduce.h
 	inc/MantidWorkflowAlgorithms/HFIRDarkCurrentSubtraction.h
 	inc/MantidWorkflowAlgorithms/HFIRInstrument.h
 	inc/MantidWorkflowAlgorithms/HFIRLoad.h
@@ -73,7 +72,7 @@ set ( INC_FILES
 	inc/MantidWorkflowAlgorithms/StepScan.h
 	inc/MantidWorkflowAlgorithms/WorkflowAlgorithmHelpers.h
 )
-              
+
 set ( TEST_FILES
 	MuonCalculateAsymmetryTest.h
 	MuonLoadTest.h
@@ -82,9 +81,9 @@ set ( TEST_FILES
 	StepScanTest.h
 )
 
-set ( TEST_PY_FILES 
-  EQSANSQ2DTest.py 
-  SANSBeamFluxCorrectionTest.py 
+set ( TEST_PY_FILES
+  EQSANSQ2DTest.py
+  SANSBeamFluxCorrectionTest.py
 )
 
 if (COVERALLS)
@@ -109,7 +108,7 @@ set_target_properties ( WorkflowAlgorithms PROPERTIES OUTPUT_NAME MantidWorkflow
 if (OSX_VERSION VERSION_GREATER 10.8)
   set_target_properties ( WorkflowAlgorithms PROPERTIES INSTALL_RPATH "@loader_path/../Contents/MacOS")
 endif ()
- 
+
 # Add to the 'Framework' group in VS
 set_property ( TARGET WorkflowAlgorithms PROPERTY FOLDER "MantidFramework" )
 
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/AlignAndFocusPowder.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/AlignAndFocusPowder.h
index e1072a42ab63e92f77640793d3d39f5ebe982b59..b5711d319bf1b096646277d47ee90f4d1ab01c15 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/AlignAndFocusPowder.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/AlignAndFocusPowder.h
@@ -4,8 +4,8 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/DataProcessorAlgorithm.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidDataObjects/GroupingWorkspace.h"
 #include "MantidDataObjects/MaskWorkspace.h"
@@ -60,7 +60,7 @@ 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 AlignAndFocusPowder : public API::Algorithm {
+class DLLExport AlignAndFocusPowder : public API::DataProcessorAlgorithm {
 public:
   /// Constructor
   AlignAndFocusPowder();
@@ -103,23 +103,17 @@ private:
                                            std::vector<specid_t> specids,
                                            std::vector<double> l2s,
                                            std::vector<double> phis);
-
-  double getPropertyFromPmOrSelf(const std::string &apname,
-                                 const std::string &pmpname,
-                                 boost::shared_ptr<Kernel::PropertyManager> pm);
-
+  void convertOffsetsToCal(DataObjects::OffsetsWorkspace_sptr &offsetsWS);
   double
-  getVecPropertyFromPmOrSelf(const std::string &apname,
-                             std::vector<double> &avec,
-                             const std::string &pmpname,
-                             boost::shared_ptr<Kernel::PropertyManager> pm);
+  getVecPropertyFromPmOrSelf(const std::string &name,
+                             std::vector<double> &avec);
 
   API::MatrixWorkspace_sptr m_inputW;
   API::MatrixWorkspace_sptr m_outputW;
   DataObjects::EventWorkspace_sptr m_inputEW;
   DataObjects::EventWorkspace_sptr m_outputEW;
-  DataObjects::OffsetsWorkspace_sptr m_offsetsWS;
-  API::MatrixWorkspace_sptr m_maskWS;
+  API::ITableWorkspace_sptr m_calibrationWS;
+  DataObjects::MaskWorkspace_sptr m_maskWS;
   DataObjects::GroupingWorkspace_sptr m_groupWS;
   double m_l1;
   std::vector<int32_t> specids;
@@ -137,6 +131,7 @@ private:
   double LRef;
   double DIFCref;
   double minwl;
+  double maxwl;
   double tmin;
   double tmax;
   bool m_preserveEvents;
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSInstrument.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSInstrument.h
index b6ef7dd50ee0c2fc2ae83dbbe95c64279715b3d3..56aaf4e91188d940ab455935f8105e0eb9c27f35 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSInstrument.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSInstrument.h
@@ -4,7 +4,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace WorkflowAlgorithms {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSLoad.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSLoad.h
index 847d846f39b96d7282b167e028042f6a5fe47e32..6c1ffa6805d265febb1c0d670257801fff470441 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSLoad.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSLoad.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidWorkflowAlgorithms/EQSANSInstrument.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSMonitorTOF.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSMonitorTOF.h
index d521ca2f22c08712ec104d1d7af4ec0dac0f8e66..9c3e0f7a00860913c1552082dd6ec0fd35efc896 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSMonitorTOF.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSMonitorTOF.h
@@ -5,8 +5,8 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace WorkflowAlgorithms {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSReduce.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSReduce.h
deleted file mode 100644
index 7f115a295f55c87c9a45bb86023cd4161ff23252..0000000000000000000000000000000000000000
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/EQSANSReduce.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef MANTID_WORKFLOWALGORITHMS_EQSANSREDUCE_H_
-#define MANTID_WORKFLOWALGORITHMS_EQSANSREDUCE_H_
-
-//----------------------------------------------------------------------
-// Includes
-//----------------------------------------------------------------------
-#include "MantidAPI/DataProcessorAlgorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
-
-namespace Mantid {
-namespace WorkflowAlgorithms {
-/**
-    Perform EQSANS data reduction.
-
-    Copyright &copy; 2012 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 EQSANSReduce : public API::DataProcessorAlgorithm {
-public:
-  /// (Empty) Constructor
-  EQSANSReduce() : API::DataProcessorAlgorithm() {}
-  /// Virtual destructor
-  virtual ~EQSANSReduce() {}
-  /// Algorithm's name for identification. @see Algorithm::name
-  virtual const std::string name() const { return "EQSANSReduce"; }
-  /// Algorithm's version for identification. @see Algorithm::version
-  virtual int version() const { return (1); }
-  /// Algorithm's category for identification. @see Algorithm::category
-  virtual const std::string category() const {
-    return "Workflow\\SANS\\UsesPropertyManager";
-  }
-  /// Summary of algorithms purpose
-  virtual const std::string summary() const {
-    return "Perform EQSANS data reduction.";
-  }
-
-private:
-  /// Initialisation code
-  void init();
-  /// Execution code
-  void exec();
-  /// Perform data reduction
-  void performReduction(API::Workspace_sptr workspace);
-  /// Post-process the reduced data
-  API::Workspace_sptr postProcess(API::Workspace_sptr workspace);
-  /// Load input file or workspace
-  API::Workspace_sptr loadInputData();
-};
-
-} // namespace WorkflowAlgorithms
-} // namespace Mantid
-
-#endif /*MANTID_WORKFLOWALGORITHMS_EQSANSREDUCE_H_*/
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRDarkCurrentSubtraction.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRDarkCurrentSubtraction.h
index 376b615dbd6a38ea97bb77ec522e92d054dbb327..426c08278730d59f73ffb792c87d44f3a4338621 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRDarkCurrentSubtraction.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRDarkCurrentSubtraction.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace WorkflowAlgorithms {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRInstrument.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRInstrument.h
index f4053e694f92ecd6c402229ad6a2e94c1de732be..87fbbef1549b31fd808b1882015badb7442bdeae 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRInstrument.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRInstrument.h
@@ -4,7 +4,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace WorkflowAlgorithms {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRLoad.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRLoad.h
index 9d7ee4b1bdcc1415eb494777b53649e3d555494a..bf69a92fa7abb8dbad98c8b8361e7fe47c449c42 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRLoad.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/HFIRLoad.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid {
 namespace WorkflowAlgorithms {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/PrecompiledHeader.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/PrecompiledHeader.h
index eb017e24392a99c1729b4bd4390153c5185491fc..cf2240631a3f6ac63ce46bc35392d35aa09b270b 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/PrecompiledHeader.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/PrecompiledHeader.h
@@ -3,7 +3,7 @@
 
 // Mantid
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 // Boost
 #include <boost/shared_ptr.hpp>
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/RefReduction.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/RefReduction.h
index 9c8886b6e2fa36e1d072bf8389a642eafe4c2744..d3506445a1551e063d9f207f66f839cf1b6986e8 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/RefReduction.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/RefReduction.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidDataObjects/EventWorkspace.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SANSBeamFinder.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SANSBeamFinder.h
index 5bddc4c18c3ab7f03113f7bfd65e8a364b85768a..3534b504021c91b2ad4f9dc9b332ba1eede5a2e2 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SANSBeamFinder.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SANSBeamFinder.h
@@ -5,7 +5,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/PropertyManager.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupEQSANSReduction.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupEQSANSReduction.h
index 4dd5082719e4df8daa4e26736cb0a251f330cfe7..ad05fa7cae3c8bf199da4365a9ee89236470e683 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupEQSANSReduction.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupEQSANSReduction.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/PropertyManager.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupHFIRReduction.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupHFIRReduction.h
index d898a4927038e47f9c001f256a698813b775a9bd..3f34dcd6428c24ebdf6ee78f0cae50fb2c6c4292 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupHFIRReduction.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupHFIRReduction.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/PropertyManager.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupILLD33Reduction.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupILLD33Reduction.h
index c421d111bca223709cc7f671bc585c305cd28579..18ffeb7cff593038c89d70fdd4fa0a4992049d6e 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupILLD33Reduction.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/SetupILLD33Reduction.h
@@ -6,7 +6,7 @@
 //----------------------------------------------------------------------
 #include "MantidAPI/Algorithm.h"
 #include "MantidDataObjects/EventWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/PropertyManager.h"
 
 namespace Mantid {
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/WorkflowAlgorithmHelpers.h b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/WorkflowAlgorithmHelpers.h
index 31c4147e49524f0007d2b876fa8b819ec312e682..871e00419316822fceed6072d732fd4ed386f173 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/WorkflowAlgorithmHelpers.h
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/WorkflowAlgorithmHelpers.h
@@ -2,7 +2,7 @@
 #define WORKFLOWALGORITHMHELPERS_H_
 
 #include <string>
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/EmptyValues.h"
 #include "MantidKernel/PropertyManager.h"
 
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp
index b7ad3f6b09fcee392bbf471f247f0ba319250775..18028b867fc2e9f8ef4ce7722243aaa7e78b4c1d 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp
@@ -36,8 +36,8 @@ using API::FileProperty;
 DECLARE_ALGORITHM(AlignAndFocusPowder)
 
 AlignAndFocusPowder::AlignAndFocusPowder()
-    : API::Algorithm(), m_l1(0.0), m_resampleX(0), dspace(false), xmin(0.0),
-      xmax(0.0), LRef(0.0), DIFCref(0.0), minwl(0.0), tmin(0.0), tmax(0.0),
+    : API::DataProcessorAlgorithm(), m_l1(0.0), m_resampleX(0), dspace(false), xmin(0.0),
+      xmax(0.0), LRef(0.0), DIFCref(0.0), minwl(0.0), maxwl(0.), tmin(0.0), tmax(0.0),
       m_preserveEvents(false), m_processLowResTOF(false), m_lowResSpecOffset(0),
       m_progress(NULL) {}
 
@@ -71,21 +71,32 @@ void AlignAndFocusPowder::init() {
   //   Direction::Output, PropertyMode::Optional),
   //   "The name of the workspace containing the filtered low resolution TOF
   //   data.");
+  std::vector<std::string> exts;
+  exts.push_back(".h5");
+  exts.push_back(".hd5");
+  exts.push_back(".hdf");
+  exts.push_back(".cal");
   declareProperty(
-      new FileProperty("CalFileName", "", FileProperty::OptionalLoad, ".cal"),
+      new FileProperty("CalFileName", "", FileProperty::OptionalLoad, exts),
       "The name of the CalFile with offset, masking, and grouping data");
   declareProperty(
       new WorkspaceProperty<GroupingWorkspace>(
           "GroupingWorkspace", "", Direction::Input, PropertyMode::Optional),
       "Optional: A GroupingWorkspace giving the grouping info.");
+
+  declareProperty(
+      new WorkspaceProperty<ITableWorkspace>(
+          "CalibrationWorkspace", "", Direction::Input, PropertyMode::Optional),
+      "Optional: A Workspace containing the calibration information. Either "
+      "this or CalibrationFile needs to be specified.");
   declareProperty(
       new WorkspaceProperty<OffsetsWorkspace>(
           "OffsetsWorkspace", "", Direction::Input, PropertyMode::Optional),
       "Optional: An OffsetsWorkspace giving the detector calibration values.");
-  declareProperty(
-      new WorkspaceProperty<MatrixWorkspace>(
-          "MaskWorkspace", "", Direction::Input, PropertyMode::Optional),
-      "Optional: A workspace giving which detectors are masked.");
+  declareProperty(new WorkspaceProperty<MaskWorkspace>("MaskWorkspace", "",
+                                                       Direction::Input,
+                                                       PropertyMode::Optional),
+                  "Optional: A workspace giving which detectors are masked.");
   declareProperty(new WorkspaceProperty<TableWorkspace>("MaskBinTable", "",
                                                         Direction::Input,
                                                         PropertyMode::Optional),
@@ -107,11 +118,15 @@ void AlignAndFocusPowder::init() {
                   "Bin in Dspace. (True is Dspace; False is TOF)");
   declareProperty(new ArrayProperty<double>("DMin"),
                   "Minimum for Dspace axis. (Default 0.) ");
+  mapPropertyName("DMin", "d_min");
   declareProperty(new ArrayProperty<double>("DMax"),
                   "Maximum for Dspace axis. (Default 0.) ");
+  mapPropertyName("DMax", "d_max");
   declareProperty("TMin", EMPTY_DBL(), "Minimum for TOF axis. Defaults to 0. ");
+  mapPropertyName("TMin", "tof_min");
   declareProperty("TMax", EMPTY_DBL(),
                   "Maximum for TOF or dspace axis. Defaults to 0. ");
+  mapPropertyName("TMax", "tof_max");
   declareProperty("PreserveEvents", true, "If the InputWorkspace is an "
                                           "EventWorkspace, this will preserve "
                                           "the full event list (warning: this "
@@ -130,6 +145,9 @@ void AlignAndFocusPowder::init() {
   declareProperty(
       "CropWavelengthMin", 0.,
       "Crop the data at this minimum wavelength. Overrides LowResRef.");
+  declareProperty(
+      "CropWavelengthMax", EMPTY_DBL(),
+      "Crop the data at this maximum wavelength. Forces use of CropWavelengthMin.");
   declareProperty("PrimaryFlightPath", -1.0,
                   "If positive, focus positions are changed.  (Default -1) ");
   declareProperty(new ArrayProperty<int32_t>("SpectrumIDs"),
@@ -183,35 +201,6 @@ void splitVectors(const std::vector<NumT> &orig, const size_t numVal,
   }
 }
 
-//----------------------------------------------------------------------------------------------
-/**
- * Function to get a property either from a PropertyManager or the algorithm
- * properties.
- * @param apname : The algorithm property to retrieve.
- * @param pmpname : The property manager property name.
- * @param pm : The PropertyManager instance.
- * @return : The value of the requested property.
- */
-double AlignAndFocusPowder::getPropertyFromPmOrSelf(
-    const std::string &apname, const std::string &pmpname,
-    boost::shared_ptr<PropertyManager> pm) {
-  // Look at algorithm first
-  double param = getProperty(apname);
-  if (param != EMPTY_DBL()) {
-    g_log.information() << "Returning algorithm parameter" << std::endl;
-    return param;
-  }
-  // Look in property manager
-  if (pm && pm->existsProperty(pmpname)) {
-    g_log.information() << "Have property manager and returning value."
-                        << std::endl;
-    return pm->getProperty(pmpname);
-  } else {
-    g_log.information() << "No property, using default." << std::endl;
-    return 0.0;
-  }
-}
-
 //----------------------------------------------------------------------------------------------
 /**
  * Function to get a vector property either from a PropertyManager or the
@@ -219,27 +208,16 @@ double AlignAndFocusPowder::getPropertyFromPmOrSelf(
  * properties. If both PM and algorithm properties are specified, the algorithm
  * one wins.
  * The return value is the first element in the vector if it is not empty.
- * @param apname : The algorithm property to retrieve.
+ * @param name : The algorithm property to retrieve.
  * @param avec : The vector to hold the property value.
- * @param pmpname : The property manager property name.
- * @param pm : The PropertyManager instance.
  * @return : The default value of the requested property.
  */
 double AlignAndFocusPowder::getVecPropertyFromPmOrSelf(
-    const std::string &apname, std::vector<double> &avec,
-    const std::string &pmpname, boost::shared_ptr<PropertyManager> pm) {
-  avec = getProperty(apname);
-  // Look at algorithm first
+    const std::string &name, std::vector<double> &avec) {
+  avec = getProperty(name);
   if (!avec.empty()) {
     return avec[0];
   }
-  // Look in property manager
-  if (pm && pm->existsProperty(pmpname)) {
-    avec = pm->getProperty(pmpname);
-    if (!avec.empty()) {
-      return avec[0];
-    }
-  }
   // No overrides provided.
   return 0.0;
 }
@@ -252,15 +230,6 @@ double AlignAndFocusPowder::getVecPropertyFromPmOrSelf(
  * successfully
  */
 void AlignAndFocusPowder::exec() {
-  // Get the reduction property manager
-  const std::string reductionManagerName =
-      this->getProperty("ReductionProperties");
-  boost::shared_ptr<PropertyManager> reductionManager;
-  if (PropertyManagerDataService::Instance().doesExist(reductionManagerName)) {
-    reductionManager =
-        PropertyManagerDataService::Instance().retrieve(reductionManagerName);
-  }
-
   // retrieve the properties
   m_inputW = getProperty("InputWorkspace");
   m_inputEW = boost::dynamic_pointer_cast<EventWorkspace>(m_inputW);
@@ -268,7 +237,7 @@ void AlignAndFocusPowder::exec() {
   m_instName =
       Kernel::ConfigService::Instance().getInstrument(m_instName).shortName();
   std::string calFileName = getPropertyValue("CalFileName");
-  m_offsetsWS = getProperty("OffsetsWorkspace");
+  m_calibrationWS = getProperty("CalibrationWorkspace");
   m_maskWS = getProperty("MaskWorkspace");
   m_groupWS = getProperty("GroupingWorkspace");
   DataObjects::TableWorkspace_sptr maskBinTableWS = getProperty("MaskBinTable");
@@ -280,14 +249,16 @@ void AlignAndFocusPowder::exec() {
   m_params = getProperty("Params");
   dspace = getProperty("DSpacing");
   auto dmin =
-      getVecPropertyFromPmOrSelf("DMin", m_dmins, "d_min", reductionManager);
+      getVecPropertyFromPmOrSelf("DMin", m_dmins);
   auto dmax =
-      getVecPropertyFromPmOrSelf("DMax", m_dmaxs, "d_max", reductionManager);
+      getVecPropertyFromPmOrSelf("DMax", m_dmaxs);
   LRef = getProperty("UnwrapRef");
   DIFCref = getProperty("LowResRef");
   minwl = getProperty("CropWavelengthMin");
-  tmin = getPropertyFromPmOrSelf("TMin", "tof_min", reductionManager);
-  tmax = getPropertyFromPmOrSelf("TMax", "tof_max", reductionManager);
+  maxwl = getProperty("CropWavelengthMax");
+  if (maxwl == 0.) maxwl = EMPTY_DBL(); // python can only specify 0 for unused
+  tmin = getProperty("TMin");
+  tmax = getProperty("TMax");
   m_preserveEvents = getProperty("PreserveEvents");
   m_resampleX = getProperty("ResampleX");
   // determine some bits about d-space and binning
@@ -484,12 +455,12 @@ void AlignAndFocusPowder::exec() {
     m_outputW = rebin(m_outputW);
   m_progress->report();
 
-  if (m_offsetsWS) {
+  if (m_calibrationWS) {
     g_log.information() << "running AlignDetectors\n";
     API::IAlgorithm_sptr alignAlg = createChildAlgorithm("AlignDetectors");
     alignAlg->setProperty("InputWorkspace", m_outputW);
     alignAlg->setProperty("OutputWorkspace", m_outputW);
-    alignAlg->setProperty("OffsetsWorkspace", m_offsetsWS);
+    alignAlg->setProperty("CalibrationWorkspace", m_calibrationWS);
     alignAlg->executeAsChildAlg();
     m_outputW = alignAlg->getProperty("OutputWorkspace");
   } else {
@@ -497,7 +468,7 @@ void AlignAndFocusPowder::exec() {
   }
   m_progress->report();
 
-  if (LRef > 0. || minwl > 0. || DIFCref > 0.) {
+  if (LRef > 0. || minwl > 0. || DIFCref > 0. || (!isEmpty(maxwl))) {
     m_outputW = convertUnits(m_outputW, "TOF");
   }
   m_progress->report();
@@ -519,9 +490,15 @@ void AlignAndFocusPowder::exec() {
   }
   m_progress->report();
 
-  if (minwl > 0.) {
-    g_log.information() << "running RemoveLowResTOF(MinWavelength=" << minwl
-                        << ",Tmin=" << tmin << ". ";
+  if (minwl > 0. || (!isEmpty(maxwl))) { // just crop the worksapce
+    // turn off the low res stuff
+    m_processLowResTOF = false;
+
+    g_log.information() << "running CropWorkspace(MinWavelength=" << minwl;
+    if (!isEmpty(maxwl))
+        g_log.information() << ", MaxWavelength=" << maxwl;
+    g_log.information() << ")\n";
+
     EventWorkspace_sptr ews =
         boost::dynamic_pointer_cast<EventWorkspace>(m_outputW);
     if (ews)
@@ -529,19 +506,15 @@ void AlignAndFocusPowder::exec() {
                           << ". ";
     g_log.information("\n");
 
-    API::IAlgorithm_sptr removeAlg = createChildAlgorithm("RemoveLowResTOF");
+    m_outputW = convertUnits(m_outputW, "Wavelength");
+
+    API::IAlgorithm_sptr removeAlg = createChildAlgorithm("CropWorkspace");
     removeAlg->setProperty("InputWorkspace", m_outputW);
     removeAlg->setProperty("OutputWorkspace", m_outputW);
-    removeAlg->setProperty("MinWavelength", minwl);
-    if (tmin > 0.)
-      removeAlg->setProperty("Tmin", tmin);
-    if (m_processLowResTOF)
-      removeAlg->setProperty("LowResTOFWorkspace", m_lowResW);
-
+    removeAlg->setProperty("XMin", minwl);
+    removeAlg->setProperty("XMax", maxwl);
     removeAlg->executeAsChildAlg();
     m_outputW = removeAlg->getProperty("OutputWorkspace");
-    if (m_processLowResTOF)
-      m_lowResW = removeAlg->getProperty("LowResTOFWorkspace");
   } else if (DIFCref > 0.) {
     g_log.information() << "running RemoveLowResTof(RefDIFC=" << DIFCref
                         << ",K=3.22)\n";
@@ -586,7 +559,7 @@ void AlignAndFocusPowder::exec() {
   m_progress->report();
 
   // Convert units
-  if (LRef > 0. || minwl > 0. || DIFCref > 0.) {
+  if (LRef > 0. || minwl > 0. || DIFCref > 0. || (!isEmpty(maxwl))) {
     m_outputW = convertUnits(m_outputW, "dSpacing");
     if (m_processLowResTOF)
       m_lowResW = convertUnits(m_lowResW, "dSpacing");
@@ -877,6 +850,21 @@ AlignAndFocusPowder::conjoinWorkspaces(API::MatrixWorkspace_sptr ws1,
   return outws;
 }
 
+void AlignAndFocusPowder::convertOffsetsToCal(
+    DataObjects::OffsetsWorkspace_sptr &offsetsWS) {
+  if (!offsetsWS)
+    return;
+
+  IAlgorithm_sptr alg = createChildAlgorithm("ConvertDiffCal");
+  alg->setProperty("OffsetsWorkspace", offsetsWS);
+  alg->setPropertyValue("OutputWorkspace", m_instName + "_cal");
+  alg->executeAsChildAlg();
+
+  m_calibrationWS = alg->getProperty("OutputWorkspace");
+  AnalysisDataService::Instance().addOrReplace(m_instName + "_cal",
+                                               m_calibrationWS);
+}
+
 //----------------------------------------------------------------------------------------------
 /**
  * Loads the .cal file if necessary.
@@ -893,18 +881,33 @@ void AlignAndFocusPowder::loadCalFile(const std::string &calFileName) {
       ; // not noteworthy
     }
   }
-  if ((!m_offsetsWS) && (!calFileName.empty())) {
-    try {
-      m_offsetsWS =
-          AnalysisDataService::Instance().retrieveWS<OffsetsWorkspace>(
-              m_instName + "_offsets");
-    } catch (Exception::NotFoundError &) {
-      ; // not noteworthy
+  if ((!m_calibrationWS) && (!calFileName.empty())) {
+    OffsetsWorkspace_sptr offsetsWS = getProperty("OffsetsWorkspace");
+    if (offsetsWS) {
+      convertOffsetsToCal(offsetsWS);
+    } else {
+      try {
+        m_calibrationWS =
+            AnalysisDataService::Instance().retrieveWS<ITableWorkspace>(
+                m_instName + "_cal");
+      } catch (Exception::NotFoundError &) {
+        ; // not noteworthy
+      }
+      if (!m_calibrationWS) {
+        try {
+          OffsetsWorkspace_sptr offsetsWS =
+              AnalysisDataService::Instance().retrieveWS<OffsetsWorkspace>(
+                  m_instName + "_offsets");
+          convertOffsetsToCal(offsetsWS);
+        } catch (Exception::NotFoundError &) {
+          ; // not noteworthy
+        }
+      }
     }
   }
   if ((!m_maskWS) && (!calFileName.empty())) {
     try {
-      m_maskWS = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+      m_maskWS = AnalysisDataService::Instance().retrieveWS<MaskWorkspace>(
           m_instName + "_mask");
     } catch (Exception::NotFoundError &) {
       ; // not noteworthy
@@ -912,7 +915,7 @@ void AlignAndFocusPowder::loadCalFile(const std::string &calFileName) {
   }
 
   // see if everything exists to exit early
-  if (m_groupWS && m_offsetsWS && m_maskWS)
+  if (m_groupWS && m_calibrationWS && m_maskWS)
     return;
 
   // see if the calfile is specified
@@ -923,18 +926,16 @@ void AlignAndFocusPowder::loadCalFile(const std::string &calFileName) {
 
   // bunch of booleans to keep track of things
   bool loadGrouping = !m_groupWS;
-  bool loadOffsets = !m_offsetsWS;
+  bool loadCalibration = !m_calibrationWS;
   bool loadMask = !m_maskWS;
 
-  // Load the .cal file
-  IAlgorithm_sptr alg = createChildAlgorithm("LoadCalFile");
-  alg->setPropertyValue("CalFilename", calFileName);
+  IAlgorithm_sptr alg = createChildAlgorithm("LoadDiffCal");
   alg->setProperty("InputWorkspace", m_inputW);
-  alg->setProperty<std::string>("WorkspaceName", m_instName);
-  alg->setProperty("MakeGroupingWorkspace", loadGrouping);
-  alg->setProperty("MakeOffsetsWorkspace", loadOffsets);
-  alg->setProperty("MakeMaskWorkspace", loadMask);
-  alg->setLogging(true);
+  alg->setPropertyValue("Filename", calFileName);
+  alg->setProperty<bool>("MakeCalWorkspace", loadCalibration);
+  alg->setProperty<bool>("MakeGroupingWorkspace", loadGrouping);
+  alg->setProperty<bool>("MakeMaskWorkspace", loadMask);
+  alg->setPropertyValue("WorkspaceName", m_instName);
   alg->executeAsChildAlg();
 
   // replace workspaces as appropriate
@@ -943,10 +944,10 @@ void AlignAndFocusPowder::loadCalFile(const std::string &calFileName) {
     AnalysisDataService::Instance().addOrReplace(m_instName + "_group",
                                                  m_groupWS);
   }
-  if (loadOffsets) {
-    m_offsetsWS = alg->getProperty("OutputOffsetsWorkspace");
-    AnalysisDataService::Instance().addOrReplace(m_instName + "_offsets",
-                                                 m_offsetsWS);
+  if (loadCalibration) {
+    m_calibrationWS = alg->getProperty("OutputCalWorkspace");
+    AnalysisDataService::Instance().addOrReplace(m_instName + "_cal",
+                                                 m_calibrationWS);
   }
   if (loadMask) {
     m_maskWS = alg->getProperty("OutputMaskWorkspace");
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/ComputeSensitivity.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/ComputeSensitivity.cpp
index be0490ce1336470426a26e6b196d4b3dc9afa282..42f9bca8ac36f86c47c0ea6027537d45ba29969d 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/ComputeSensitivity.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/ComputeSensitivity.cpp
@@ -42,9 +42,8 @@ void ComputeSensitivity::exec() {
   progress(0.1, "Setting up sensitivity calculation");
 
   // Reduction property manager
-  const std::string reductionManagerName = getProperty("ReductionProperties");
   boost::shared_ptr<PropertyManager> reductionManager =
-      getProcessProperties(reductionManagerName);
+      getProcessProperties();
 
   const std::string outputWS = getPropertyValue("OutputWorkspace");
 
@@ -55,7 +54,8 @@ void ComputeSensitivity::exec() {
 
     IAlgorithm_sptr ctrAlg =
         reductionManager->getProperty("SANSBeamFinderAlgorithm");
-    ctrAlg->setPropertyValue("ReductionProperties", reductionManagerName);
+    ctrAlg->setPropertyValue("ReductionProperties",
+                             getPropertyValue("ReductionProperties"));
     ctrAlg->setChild(true);
     ctrAlg->execute();
     std::string outMsg2 = ctrAlg->getPropertyValue("OutputMessage");
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/DgsReduction.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/DgsReduction.cpp
index f5dc93a0b54af726d6f691f35301b14b0cf34805..ab63a068632143c200f2f3ecfe18b2bd2eed26aa 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/DgsReduction.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/DgsReduction.cpp
@@ -673,9 +673,10 @@ double DgsReduction::getParameter(std::string algParam, MatrixWorkspace_sptr ws,
 /** Execute the algorithm.
  */
 void DgsReduction::exec() {
-  // Reduction property manager
+  // Reduction property manager - don't call getProcessProperties as
+  // it will reuse. This needs to create a fresh one every time
   const std::string reductionManagerName =
-      this->getProperty("ReductionProperties");
+          this->getProperty("ReductionProperties");
   if (reductionManagerName.empty()) {
     g_log.error() << "ERROR: Reduction Property Manager name is empty"
                   << std::endl;
@@ -768,7 +769,7 @@ void DgsReduction::exec() {
     diag->setProperty("SampleWorkspace", sampleWS);
     diag->setProperty("SampleMonitorWorkspace", sampleMonWS);
     diag->setProperty("HardMaskWorkspace", hardMaskWS);
-    diag->setProperty("ReductionProperties", reductionManagerName);
+    diag->setProperty("ReductionProperties", getPropertyValue("ReductionProperties"));
     diag->executeAsChildAlg();
     maskWS = diag->getProperty("OutputWorkspace");
 
@@ -783,7 +784,7 @@ void DgsReduction::exec() {
     detVan->setProperty("InputMonitorWorkspace", detVanMonWS);
     detVan->setProperty("MaskWorkspace", maskWS);
     std::string idetVanName = outputWsName + "_idetvan";
-    detVan->setProperty("ReductionProperties", reductionManagerName);
+    detVan->setProperty("ReductionProperties", getPropertyValue("ReductionProperties"));
     detVan->executeAsChildAlg();
     MatrixWorkspace_sptr oWS = detVan->getProperty("OutputWorkspace");
     idetVanWS = boost::dynamic_pointer_cast<Workspace>(oWS);
@@ -813,7 +814,7 @@ void DgsReduction::exec() {
   if (groupingWS) {
     etConv->setProperty("GroupingWorkspace", groupingWS);
   }
-  etConv->setProperty("ReductionProperties", reductionManagerName);
+  etConv->setProperty("ReductionProperties", getPropertyValue("ReductionProperties"));
   std::string tibWsName = this->getPropertyValue("OutputWorkspace") + "_tib";
   etConv->executeAsChildAlg();
   outputWS = etConv->getProperty("OutputWorkspace");
@@ -850,7 +851,7 @@ void DgsReduction::exec() {
                              absDetVanMonWS);
     absUnitsRed->setProperty("GroupingWorkspace", absGroupingWS);
     absUnitsRed->setProperty("MaskWorkspace", maskWS);
-    absUnitsRed->setProperty("ReductionProperties", reductionManagerName);
+    absUnitsRed->setProperty("ReductionProperties", getPropertyValue("ReductionProperties"));
     absUnitsRed->executeAsChildAlg();
     MatrixWorkspace_sptr absUnitsWS =
         absUnitsRed->getProperty("OutputWorkspace");
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSLoad.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSLoad.cpp
index bc51a55a93b46a1dc41e65f74b8bdc27de7814b4..1d2b321d453301bf3ebdbc79cdbf360fbab71bd7 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSLoad.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSLoad.cpp
@@ -509,7 +509,7 @@ void EQSANSLoad::exec() {
         loadAlg->setProperty("FilterByTofMax", m_high_TOF_cut);
     }
     loadAlg->execute();
-    IEventWorkspace_sptr dataWS_asWks = loadAlg->getProperty("OutputWorkspace");
+    Workspace_sptr dataWS_asWks = loadAlg->getProperty("OutputWorkspace");
     dataWS = boost::dynamic_pointer_cast<MatrixWorkspace>(dataWS_asWks);
 
     // Get monitor workspace as necessary
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/MuonCalculateAsymmetry.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/MuonCalculateAsymmetry.cpp
index a70b9f91146ecf4307042244bc3955785349db15..9c24b5ed9fe5ef764b8842e66eda1848498e4302 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/MuonCalculateAsymmetry.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/MuonCalculateAsymmetry.cpp
@@ -48,14 +48,13 @@ const std::string MuonCalculateAsymmetry::category() const {
 void MuonCalculateAsymmetry::init() {
   declareProperty(new WorkspaceProperty<MatrixWorkspace>("FirstPeriodWorkspace",
                                                          "", Direction::Input),
-                  "First period data. If second period is not specified - the "
-                  "only one used.");
+                  "First period data. The only one used if second period is "
+                  "not specified.");
 
-  declareProperty(
-      new WorkspaceProperty<MatrixWorkspace>("SecondPeriodWorkspace", "",
-                                             Direction::Input,
-                                             PropertyMode::Optional),
-      "Second period data. If not spefied - first period used only.");
+  declareProperty(new WorkspaceProperty<MatrixWorkspace>(
+                      "SecondPeriodWorkspace", "", Direction::Input,
+                      PropertyMode::Optional),
+                  "Second period data.");
 
   std::vector<std::string> allowedOperations;
   allowedOperations.push_back("+");
@@ -71,22 +70,22 @@ void MuonCalculateAsymmetry::init() {
   allowedTypes.push_back("GroupCounts");
   declareProperty("OutputType", "PairAsymmetry",
                   boost::make_shared<StringListValidator>(allowedTypes),
-                  "What kind of workspace required for analysis.");
+                  "What kind of calculation required for analysis.");
 
   declareProperty("PairFirstIndex", EMPTY_INT(),
-                  "Workspace index of the first group of the pair. Used when "
+                  "Workspace index of the first group of the pair. Only used when "
                   "OutputType is PairAsymmetry.");
 
   declareProperty("PairSecondIndex", EMPTY_INT(),
-                  "Workspace index of the second group of the pair. Used when "
+                  "Workspace index of the second group of the pair. Only used when "
                   "OutputType is PairAsymmetry.");
 
   declareProperty(
       "Alpha", 1.0,
-      "Alpha value of the pair. Used when OutputType is PairAsymmetry.");
+      "Alpha value of the pair. Only used when OutputType is PairAsymmetry.");
 
-  declareProperty("GroupIndex", EMPTY_INT(), "Workspace index of the group. "
-                                             "Used then OutputType is "
+  declareProperty("GroupIndex", EMPTY_INT(), "Workspace index of the group to analyse. "
+                                             "Only used then OutputType is "
                                              "GroupAsymmetry or GroupCounts.");
 
   declareProperty(
@@ -101,22 +100,23 @@ void MuonCalculateAsymmetry::init() {
  * Execute the algorithm.
  */
 void MuonCalculateAsymmetry::exec() {
+
   MatrixWorkspace_sptr firstPeriodWS = getProperty("FirstPeriodWorkspace");
   MatrixWorkspace_sptr secondPeriodWS = getProperty("SecondPeriodWorkspace");
 
-  MatrixWorkspace_sptr firstConverted = convertWorkspace(firstPeriodWS);
+  MatrixWorkspace_sptr convertedWS;
 
   if (secondPeriodWS) {
     // Two periods
-    MatrixWorkspace_sptr secondConverted = convertWorkspace(secondPeriodWS);
+    MatrixWorkspace_sptr mergedWS = mergePeriods(firstPeriodWS, secondPeriodWS);
+    convertedWS = convertWorkspace(mergedWS);
 
-    setProperty("OutputWorkspace",
-                mergePeriods(firstConverted, secondConverted));
   } else {
     // Single period only
-
-    setProperty("OutputWorkspace", firstConverted);
+    convertedWS = convertWorkspace(firstPeriodWS);
   }
+
+  setProperty("OutputWorkspace", convertedWS);
 }
 
 /**
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/RefReduction.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/RefReduction.cpp
index b0a3918e42043f2286dbcdedcb5552b672a9c6d4..4ece40c1ee5a6b08b584bceb6cc4eb34b8aee91b 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/RefReduction.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/RefReduction.cpp
@@ -504,7 +504,8 @@ IEventWorkspace_sptr RefReduction::loadData(const std::string dataRun,
       if (polarization.compare(PolStateNone) != 0)
         loadAlg->setProperty("NXentryName", polarization);
       loadAlg->executeAsChildAlg();
-      rawWS = loadAlg->getProperty("OutputWorkspace");
+      Workspace_sptr temp = loadAlg->getProperty("OutputWorkspace");
+      rawWS = boost::dynamic_pointer_cast<IEventWorkspace>(temp);
       if (rawWS->getNumberEvents() == 0) {
         g_log.notice() << "No data in " << polarization << std::endl;
         m_output_message += "    |No data for " + polarization + "\n";
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/SANSBeamFluxCorrection.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/SANSBeamFluxCorrection.cpp
index 1dccfbc92b2c12585ae67b0388bf0e270205b126..afa8075f5aa77a3761a54a3fa7051d6b29bc99b7 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/SANSBeamFluxCorrection.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/SANSBeamFluxCorrection.cpp
@@ -46,8 +46,7 @@ void SANSBeamFluxCorrection::exec() {
   progress.report("Setting up beam flux correction");
 
   // Reduction property manager
-  const std::string reductionManagerName = getProperty("ReductionProperties");
-  m_reductionManager = getProcessProperties(reductionManagerName);
+  m_reductionManager = getProcessProperties();
 
   // If the beam flux correction algorithm isn't in the reduction properties,
   // add it
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/WorkflowAlgorithmHelpers.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/WorkflowAlgorithmHelpers.cpp
index 528758b61ef95ef49603566f121653ea35a58b9c..e070f031c47a7600b7eb6131b5900c2e796445d6 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/WorkflowAlgorithmHelpers.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/WorkflowAlgorithmHelpers.cpp
@@ -1,5 +1,7 @@
 #include "MantidWorkflowAlgorithms/WorkflowAlgorithmHelpers.h"
 
+#include "MantidAPI/MatrixWorkspace.h"
+
 using namespace Mantid::API;
 using namespace Mantid::Kernel;
 using namespace Mantid;
diff --git a/Code/Mantid/MantidPlot/CMakeLists.txt b/Code/Mantid/MantidPlot/CMakeLists.txt
index 49dc06327bb29679eaa50ce8827e38e06deac3a9..53f8d9c3b159491693788745e37616ad0271edf8 100644
--- a/Code/Mantid/MantidPlot/CMakeLists.txt
+++ b/Code/Mantid/MantidPlot/CMakeLists.txt
@@ -201,7 +201,6 @@ set ( MANTID_SRCS  src/Mantid/AlgorithmMonitor.cpp
                    src/Mantid/InstrumentWidget/GLColor.cpp
                    src/Mantid/InstrumentWidget/GLObject.cpp
                    src/Mantid/InstrumentWidget/ICompAssemblyActor.cpp
-                   src/Mantid/InstrumentWidget/InputController.cpp
                    src/Mantid/InstrumentWidget/InstrumentActor.cpp
                    src/Mantid/InstrumentWidget/InstrumentTreeModel.cpp
                    src/Mantid/InstrumentWidget/InstrumentTreeWidget.cpp
@@ -438,7 +437,6 @@ set ( MANTID_HDRS  src/Mantid/AlgorithmMonitor.h
                    src/Mantid/InstrumentWidget/GLColor.h
                    src/Mantid/InstrumentWidget/GLObject.h
                    src/Mantid/InstrumentWidget/ICompAssemblyActor.h
-                   src/Mantid/InstrumentWidget/InputController.h
                    src/Mantid/InstrumentWidget/InstrumentActor.h
                    src/Mantid/InstrumentWidget/InstrumentTreeModel.h
                    src/Mantid/InstrumentWidget/InstrumentTreeWidget.h
@@ -701,7 +699,6 @@ set ( MANTID_MOC_FILES src/Mantid/AlgorithmMonitor.h
                        src/Mantid/UserFitFunctionDialog.h
                        src/Mantid/InstrumentWidget/XIntegrationControl.h
                        src/Mantid/InstrumentWidget/BinDialog.h
-                       src/Mantid/InstrumentWidget/InputController.h
                        src/Mantid/InstrumentWidget/InstrumentTreeModel.h
                        src/Mantid/InstrumentWidget/InstrumentTreeWidget.h
                        src/Mantid/InstrumentWidget/InstrumentWindow.h
diff --git a/Code/Mantid/MantidPlot/make_package.rb.in b/Code/Mantid/MantidPlot/make_package.rb.in
index afab0d3b60844b00e4b7bade807835eea796d039..08b7538811a1e875076fff0cdc7ce9e44556828b 100755
--- a/Code/Mantid/MantidPlot/make_package.rb.in
+++ b/Code/Mantid/MantidPlot/make_package.rb.in
@@ -4,19 +4,19 @@
 require 'pathname'
 
 def copyFile(file)
-    p "copying file #{file}"
-    output = system("cp #{file} Contents/MacOS/")
-    if output != true
-        exit 1
-    end
+  p "copying file #{file}"
+  output = system("cp #{file} Contents/MacOS/")
+  if output != true
+    exit 1
+  end
 end
 
 def addPythonLibrary(directory)
-    p "copying directory #{directory}"
-    output = system("rsync -a --exclude=.pyc #{directory} Contents/MacOS/")
-    if output != true
-        exit 1
-    end
+  p "copying directory #{directory}"
+  output = system("rsync -a --exclude=.pyc #{directory} Contents/MacOS/")
+  if output != true
+    exit 1
+  end
 end
 
 lib_dir = Pathname.new("/usr/local/lib")
@@ -67,38 +67,17 @@ library_filenames = ["libboost_regex-mt.dylib",
 
 #This copies the libraries over, then changes permissions and the id from /usr/local/lib to @rpath
 library_filenames.each do |filename|
-    if filename.include? "libssl.dylib"
-        copyFile(openssl_dir+filename)
-    elsif  filename.include? "libcrypto.dylib"
-        copyFile(openssl_dir+filename)
-    else
-        copyFile(lib_dir+filename)
-    end
-    `chmod +w Contents/MacOS/#{filename}`
-    `install_name_tool -id @rpath/#{filename} Contents/MacOS/#{filename}`
-end
-
-#use install_name_tool to change dependencies form /usr/local to libraries in the package.
-search_patterns = ["**/*.dylib","**/*.so","**/MantidPlot","**/VatesSimpleGui"]
-search_patterns.each do |pattern|
-    Dir[pattern].each do |library|
-        dependencies = `otool -L #{library}`
-        dependencies.split("\n").each do |dependency|
-            currentname = dependency.strip.split(" ")
-            name_split_on_slash = currentname[0].strip.split("/")
-            name_split_on_period = name_split_on_slash[-1].split(".")
-            prefix = name_split_on_period[0]+"."
-            library_filenames.each do |filename|
-                basename = File.basename(filename,"dylib")
-                if prefix == basename
-                    `install_name_tool -change #{currentname[0]} @rpath/#{basename+"dylib"} #{library}`
-                end
-            end
-        end
-    end
+  if filename.include? "libssl.dylib"
+    copyFile(openssl_dir+filename)
+  elsif  filename.include? "libcrypto.dylib"
+    copyFile(openssl_dir+filename)
+  else
+    copyFile(lib_dir+filename)
+  end
+  `chmod +w Contents/MacOS/#{filename}`
+  `install_name_tool -id @rpath/#{filename} Contents/MacOS/#{filename}`
 end
 
-
 if( "@MAKE_VATES@" == "ON" )
 
   def add_ParaView_Libraries(file)
@@ -141,6 +120,7 @@ if( "@MAKE_VATES@" == "ON" )
             `install_name_tool -id @rpath/#{filename_no_dir} Contents/Libraries/#{filename_no_dir}`
           end
           `install_name_tool -add_rpath @loader_path/../Libraries #{library} > /dev/null 2>&1`
+          `install_name_tool -add_rpath @loader_path/../MacOS #{library} > /dev/null 2>&1`
           `install_name_tool -change #{filename} @rpath/#{filename_no_dir} #{library}`
         end
       end
@@ -148,6 +128,28 @@ if( "@MAKE_VATES@" == "ON" )
     p "fixed #{issues_found} issues this iteration!"
     break if issues_found == 0
   end
+  #fix libNonOrthogonalSource.dylib
+  `install_name_tool -id @rpath/libNonOrthogonalSource.dylib pvplugins/pvplugins/libNonOrthogonalSource.dylib`
+end
+
+#use install_name_tool to change dependencies form /usr/local to libraries in the package.
+search_patterns = ["**/*.dylib","**/*.so","**/MantidPlot","**/VatesSimpleGui"]
+search_patterns.each do |pattern|
+  Dir[pattern].each do |library|
+    dependencies = `otool -L #{library}`
+    dependencies.split("\n").each do |dependency|
+      currentname = dependency.strip.split(" ")
+      name_split_on_slash = currentname[0].strip.split("/")
+      name_split_on_period = name_split_on_slash[-1].split(".")
+      prefix = name_split_on_period[0]+"."
+      library_filenames.each do |filename|
+        basename = File.basename(filename,"dylib")
+        if prefix == basename
+          `install_name_tool -change #{currentname[0]} @rpath/#{basename+"dylib"} #{library}`
+        end
+      end
+    end
+  end
 end
 
 #We'll use macdeployqt to fix qt dependencies.
@@ -204,12 +206,12 @@ end
 #Copy over python libraries not included with OSX. 
 #currently missing epics
 path = "/Library/Python/2.7/site-packages"
-directories = ["sphinx","sphinx_bootstrap_theme","IPython","zmq","pygments","backports","certifi","tornado","markupsafe","jinja2","psutil"]
+directories = ["sphinx","sphinx_bootstrap_theme","IPython","zmq","pygments","backports","certifi","tornado","markupsafe","jinja2","psutil","jsonschema","functools32","ptyprocess"]
 directories.each do |directory|
   addPythonLibrary("#{path}/#{directory}")
 end
 
-files = ["gnureadline.so","readline.py","pyparsing.py"]
+files = ["gnureadline.so","readline.py","pyparsing.py","mistune.py","mistune.so"]
 files.each do |file|
   copyFile("#{path}/#{file}")
 end
diff --git a/Code/Mantid/MantidPlot/pymantidplot/proxies.py b/Code/Mantid/MantidPlot/pymantidplot/proxies.py
index 90099772f1d850181a11b100b733da15ba0c14a3..1e3b969565e4d91134def5a579b7004a930837be 100644
--- a/Code/Mantid/MantidPlot/pymantidplot/proxies.py
+++ b/Code/Mantid/MantidPlot/pymantidplot/proxies.py
@@ -279,7 +279,7 @@ class Layer(QtProxyObject):
     # The only purpose of listing them here is that these will be returned by this class' __dir()__, and
     #    shown interactively, while the ones not listed and/or overloaded here may not be shown in ipython, etc.
     additional_methods = ['logLogAxes', 'logXLinY', 'logXLinY',
-                          'removeLegend', 'saveImage', 'setAxisScale', 'setCurveLineColor', 'setCurveLineStyle',
+                          'removeLegend', 'export', 'setAxisScale', 'setCurveLineColor', 'setCurveLineStyle',
                           'setCurveLineWidth', 'setCurveSymbol', 'setScale', 'setTitle', 'setXTitle', 'setYTitle']
 
     def __init__(self, toproxy):
diff --git a/Code/Mantid/MantidPlot/pymantidplot/pyplot.py b/Code/Mantid/MantidPlot/pymantidplot/pyplot.py
index 78254a217a834b431def7b0f1a414869f43a46fd..ab5680c8b8548a78896dc8f70a889ea7f3f45227 100644
--- a/Code/Mantid/MantidPlot/pymantidplot/pyplot.py
+++ b/Code/Mantid/MantidPlot/pymantidplot/pyplot.py
@@ -686,8 +686,8 @@ class Figure():
         """
         if not name:
             raise ValueError("Error: you need to specify a non-empty file name")
-        l = _graph.activeLayer()
-        l.saveImage(name);
+        l = self._graph.activeLayer()
+        l.export(name);
 
     @classmethod
     def fig_seq(cls):
@@ -1561,4 +1561,4 @@ def savefig(name):
     if not name:
         raise ValueError("Error: you need to specify a non-empty file name")
     l = __last_fig()._graph.activeLayer()
-    l.saveImage(name);
+    l.export(name);
diff --git a/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp b/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp
index a0945b25e73e36b23c4f99749c010d41c9d209df..b7a45d57e68096747893b927b2664049aee6bb47 100644
--- a/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp
+++ b/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp
@@ -3643,7 +3643,7 @@ MdiSubWindow* ApplicationWindow::window(const QString& name)
 
 Table* ApplicationWindow::table(const QString& name)
 {
-  int pos = name.find("_", 0);
+  int pos = name.lastIndexOf("_");
   QString caption = name.left(pos);
 
   Folder *f = projectFolder();
@@ -8393,7 +8393,7 @@ void ApplicationWindow::clearSelection()
     if (!g)
       return;
 
-    if (g->activeTool())
+    if (g->activeTool() && !dynamic_cast<PeakPickerTool*>(g->activeTool()))
     {
       auto rst = dynamic_cast<RangeSelectorTool*>(g->activeTool());
       auto lbt = dynamic_cast<LabelTool*>(g->activeTool());
@@ -8450,19 +8450,19 @@ void ApplicationWindow::copySelection()
     if (!g)
       return;
 
-    if (g->activeTool()){
+    if (g->activeTool())
+    {
       if (g->activeTool()->rtti() == PlotToolInterface::Rtti_RangeSelector)
       {
         RangeSelectorTool* rst = dynamic_cast<RangeSelectorTool*>(g->activeTool());
         if(rst)
           rst->copySelection();
       }
-    } else if (g->markerSelected()){
+    }
+    else if (g->markerSelected())
       copyMarker();
-    } else
-    {
+    else
       copyActiveLayer();
-    }
 
     plot->copyAllLayers();
   }
@@ -8498,11 +8498,14 @@ void ApplicationWindow::cutSelection()
     if (!g)
       return;
 
-    if (g->activeTool()){
+    if (g->activeTool())
+    {
       auto rst = dynamic_cast<RangeSelectorTool*>(g->activeTool());
       if (rst)
         rst->cutSelection();
-    } else {
+    }
+    else
+    {
       copyMarker();
       g->removeMarker();
     }
@@ -9607,8 +9610,12 @@ void ApplicationWindow::showMarkerPopupMenu()
     markerMenu.insertSeparator();
   }
 
-  markerMenu.insertItem(getQPixmap("cut_xpm"),tr("&Cut"),this, SLOT(cutSelection()));
-  markerMenu.insertItem(getQPixmap("copy_xpm"), tr("&Copy"),this, SLOT(copySelection()));
+  if (!(g->activeTool() && dynamic_cast<PeakPickerTool*>(g->activeTool())))
+  {
+    markerMenu.insertItem(getQPixmap("cut_xpm"),tr("&Cut"),this, SLOT(cutSelection()));
+    markerMenu.insertItem(getQPixmap("copy_xpm"), tr("&Copy"),this, SLOT(copySelection()));
+  }
+
   markerMenu.insertItem(getQPixmap("erase_xpm"), tr("&Delete"),this, SLOT(clearSelection()));
   markerMenu.insertSeparator();
   if (g->arrowMarkerSelected())
diff --git a/Code/Mantid/MantidPlot/src/CurvesDialog.cpp b/Code/Mantid/MantidPlot/src/CurvesDialog.cpp
index da5ec3162161ff93402f5388d7b9be53758798b0..83663a1d5ec26db5201e39558fd1c6d45903daee 100644
--- a/Code/Mantid/MantidPlot/src/CurvesDialog.cpp
+++ b/Code/Mantid/MantidPlot/src/CurvesDialog.cpp
@@ -51,6 +51,7 @@
 
 #include <QMessageBox>
 
+
 CurvesDialog::CurvesDialog( ApplicationWindow* app, Graph* g, Qt::WFlags fl )
   : QDialog( g, fl ),
     d_app(app),
@@ -97,6 +98,7 @@ CurvesDialog::CurvesDialog( ApplicationWindow* app, Graph* g, Qt::WFlags fl )
   available->setSelectionMode (QAbstractItemView::ExtendedSelection);
   gl->addWidget(available, 1, 0);
 
+  //add button (move to graph contents)
   QVBoxLayout* vl1 = new QVBoxLayout();
   btnAdd = new QPushButton();
   btnAdd->setPixmap( getQPixmap("next_xpm") );
@@ -104,6 +106,7 @@ CurvesDialog::CurvesDialog( ApplicationWindow* app, Graph* g, Qt::WFlags fl )
   btnAdd->setFixedHeight (30);
   vl1->addWidget(btnAdd);
 
+  //remove button (move to available data)
   btnRemove = new QPushButton();
   btnRemove->setPixmap( getQPixmap("prev_xpm") );
   btnRemove->setFixedWidth (35);
@@ -130,7 +133,6 @@ CurvesDialog::CurvesDialog( ApplicationWindow* app, Graph* g, Qt::WFlags fl )
   vl2->addWidget(btnEditFunction);
 
   btnOK = new QPushButton(tr( "OK" ));
-  btnOK->setDefault( true );
   vl2->addWidget(btnOK);
 
   btnCancel = new QPushButton(tr( "Close" ));
@@ -158,8 +160,9 @@ CurvesDialog::CurvesDialog( ApplicationWindow* app, Graph* g, Qt::WFlags fl )
   connect(btnEditFunction, SIGNAL(clicked()),this, SLOT(showFunctionDialog()));
   connect(btnAdd, SIGNAL(clicked()),this, SLOT(addCurves()));
   connect(btnRemove, SIGNAL(clicked()),this, SLOT(removeCurves()));
-  connect(btnOK, SIGNAL(clicked()),this, SLOT(close()));
+  connect(btnOK, SIGNAL(clicked()),this, SLOT(close())); 
   connect(btnCancel, SIGNAL(clicked()),this, SLOT(close()));
+  connect(contents, SIGNAL(itemSelectionChanged()), this, SLOT(enableBtnOK()));
   connect(contents, SIGNAL(currentRowChanged(int)), this, SLOT(showCurveBtn(int)));
   connect(contents, SIGNAL(itemSelectionChanged()), this, SLOT(enableRemoveBtn()));
   connect(available, SIGNAL(itemSelectionChanged()), this, SLOT(enableAddBtn()));
@@ -270,16 +273,17 @@ void CurvesDialog::contextMenuEvent(QContextMenuEvent *e)
   {
     QMenu contextMenu(this);
     QList<QListWidgetItem *> lst = contents->selectedItems();
-    if (lst.size() > 1)
+    
+	if (lst.size() > 1)
       contextMenu.insertItem(tr("&Delete Selection"), this, SLOT(removeCurves()));
-    else if (lst.size() == 1)
+    else if (lst.size() > 0)
       contextMenu.insertItem(tr("&Delete Curve"), this, SLOT(removeCurves()));
     contextMenu.exec(QCursor::pos());
   }
-
   e->accept();
 }
 
+
 void CurvesDialog::init()
 {
   bool currentFolderOnly = d_app->d_show_current_folder;
@@ -348,6 +352,7 @@ void CurvesDialog::init()
 
 void CurvesDialog::setGraph(Graph *graph)
 {
+  QList<QListWidgetItem *> lst = available->selectedItems();
   d_graph = graph;
   contents->addItems(d_graph->plotItemsList());
   enableRemoveBtn();
@@ -446,9 +451,24 @@ bool CurvesDialog::addCurve(const QString& name)
   return false;
 }
 
+
+/**Remove curves function
+*
+*/
 void CurvesDialog::removeCurves()
 {
+  int count = contents->count();
   QList<QListWidgetItem *> lst = contents->selectedItems();
+  
+  //disables user from deleting last graph from the graph
+  if(count == 1 || count == lst.size()) {
+  QMessageBox::warning( 
+    this, 
+    tr("Cannot Delete"), 
+    tr("There should be at least one graph plotted in the graph contents ") );
+	return; 
+  }
+  
   for (int i = 0; i < lst.size(); ++i){
     QListWidgetItem *it = lst.at(i);
     QString s = it->text();
@@ -463,14 +483,27 @@ void CurvesDialog::removeCurves()
   d_graph->updatePlot();
 }
 
+/** Enable Disable buttons function 
+*
+*/
 void CurvesDialog::enableAddBtn()
 {
   btnAdd->setEnabled (available->count()>0 && !available->selectedItems().isEmpty());
 }
 
+/** Enables or disables the button when appopriate number of graphs are in graph contents
+*
+*/
 void CurvesDialog::enableRemoveBtn()
-{
-  btnRemove->setEnabled (contents->count()>0 && !contents->selectedItems().isEmpty());
+{ 
+  btnRemove->setEnabled (contents->count()>1 && !contents->selectedItems().isEmpty());
+}
+
+/** Enables btnOK when there is even one graph plotted in graph contents area
+*
+*/
+void CurvesDialog::enableBtnOK(){
+  btnOK->setEnabled (contents->count()>0 && !contents->selectedItems().isEmpty());
 }
 
 int CurvesDialog::curveStyle()
@@ -512,7 +545,7 @@ int CurvesDialog::curveStyle()
   return style;
 }
 
-void CurvesDialog::showCurveRange(bool on )
+void CurvesDialog::showCurveRange(bool on)
 {
   int row = contents->currentRow();
   contents->clear();
@@ -547,10 +580,8 @@ void CurvesDialog::updateCurveRange()
 
 void CurvesDialog::showCurrentFolder(bool currentFolder)
 {
-
   d_app->d_show_current_folder = currentFolder;
   available->clear();
-
   if (currentFolder){
     Folder *f = d_app->currentFolder();
     if (f){
@@ -585,6 +616,5 @@ void CurvesDialog::closeEvent(QCloseEvent* e)
     MultiLayer* ml = dynamic_cast<MultiLayer*>(w);
     if( ml ) ml->setCloseOnEmpty(true);
   }
-
   e->accept();
 }
diff --git a/Code/Mantid/MantidPlot/src/CurvesDialog.h b/Code/Mantid/MantidPlot/src/CurvesDialog.h
index 796e31eab88e0c85bbbb1338a3511b16df49845c..82a956f7b2bc1e60cbbaa6b95a5a588550304ebe 100644
--- a/Code/Mantid/MantidPlot/src/CurvesDialog.h
+++ b/Code/Mantid/MantidPlot/src/CurvesDialog.h
@@ -59,15 +59,17 @@ private slots:
   void showCurveBtn(int);
   void enableAddBtn();
   void enableRemoveBtn();
+  void enableBtnOK();
   void showCurveRange(bool);
   void updateCurveRange();
   void showCurrentFolder(bool);
 
+
 private:
   void setGraph(Graph *graph);
   void closeEvent(QCloseEvent*);
 
-  void init();
+  void init();	
   bool addCurve(const QString& name);
   QSize sizeHint() const;
   void contextMenuEvent(QContextMenuEvent *);
diff --git a/Code/Mantid/MantidPlot/src/LabelTool.h b/Code/Mantid/MantidPlot/src/LabelTool.h
index 2a6134e969bc6a5a0205154f1f4bbddc054e16b6..8ec5d79532de56748d651ead036b5e7e631cb6fe 100644
--- a/Code/Mantid/MantidPlot/src/LabelTool.h
+++ b/Code/Mantid/MantidPlot/src/LabelTool.h
@@ -14,7 +14,7 @@
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidQtAPI/MantidQwtWorkspaceData.h"
 #include "MantidKernel/TimeSeriesProperty.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 #include <QList>
 #include <QMenu>
diff --git a/Code/Mantid/MantidPlot/src/Mantid/AlgorithmMonitor.cpp b/Code/Mantid/MantidPlot/src/Mantid/AlgorithmMonitor.cpp
index fe57597114b2bacc4359bd9802a1a0c662bbe588..04364ef9d714cf1906b8061f77ce398dfc9a1111 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/AlgorithmMonitor.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/AlgorithmMonitor.cpp
@@ -130,11 +130,16 @@ void AlgorithmMonitor::showDialog()
 
 //-----------------------------------------------------------------------------
 /** Cancel the given algorithm's execution */
-void AlgorithmMonitor::cancel(Mantid::API::AlgorithmID id)
+void AlgorithmMonitor::cancel(Mantid::API::AlgorithmID id, QPushButton* cancelBtn = NULL)
 {
-  IAlgorithm_sptr a = Mantid::API::AlgorithmManager::Instance().getAlgorithm(id);
-  if (!a.get()) return;
-  a->cancel();
+  if ((cancelBtn) && (cancelBtn->text() == "Cancel"))
+  {
+    cancelBtn->setText("Cancelling");
+    cancelBtn->setEnabled(false);
+    IAlgorithm_sptr a = Mantid::API::AlgorithmManager::Instance().getAlgorithm(id);
+    if (!a.get()) return;
+    a->cancel();
+  }
 }
 
 //-----------------------------------------------------------------------------
@@ -229,7 +234,7 @@ void MonitorDlg::update()
       algItem->addChild(new QTreeWidgetItem(lstr));
     }
 
-    connect(cancelButton,SIGNAL(clicked(Mantid::API::AlgorithmID)),m_algMonitor,SLOT(cancel(Mantid::API::AlgorithmID)));
+    connect(cancelButton,SIGNAL(clicked(Mantid::API::AlgorithmID, QPushButton*)),m_algMonitor,SLOT(cancel(Mantid::API::AlgorithmID, QPushButton*)));
   }
   m_algMonitor->unlock();
 }
diff --git a/Code/Mantid/MantidPlot/src/Mantid/AlgorithmMonitor.h b/Code/Mantid/MantidPlot/src/Mantid/AlgorithmMonitor.h
index efd08b2f466f8ac2a47dcbe1c6652f4ebc1f8b40..4f3f39708dcd1d3d88a8880746be8d3329d7d21c 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/AlgorithmMonitor.h
+++ b/Code/Mantid/MantidPlot/src/Mantid/AlgorithmMonitor.h
@@ -65,7 +65,7 @@ protected:
 public slots:
   void update();
   void showDialog();
-  void cancel(Mantid::API::AlgorithmID);
+  void cancel(Mantid::API::AlgorithmID, QPushButton*);
   void cancelAll();
 
 private:
@@ -108,9 +108,9 @@ public:
     connect(this,SIGNAL(clicked()),this,SLOT(sendClicked()));
   }
 private slots:
-  void sendClicked(){emit clicked(m_alg);}
+  void sendClicked(){emit clicked(m_alg, this);}
 signals:
-  void clicked(Mantid::API::AlgorithmID );
+  void clicked(Mantid::API::AlgorithmID, QPushButton*);
 private:
   Mantid::API::AlgorithmID m_alg;
 };
diff --git a/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.cpp b/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.cpp
index f23df58c8d59527d9fcf5eb1542bdfb3cdef43f9..ffa511d136075ebafa9711392b5def37545bca0d 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.cpp
@@ -122,7 +122,8 @@ void FirstTimeSetup::allowUsageDataStateChanged(int checkedState)
   {
     QMessageBox msgBox(this);
     msgBox.setWindowTitle("Mantid: Report Usage Data ");
-    msgBox.setText("Are you sure you want to disable reporting usage data?");
+    msgBox.setTextFormat(Qt::RichText);   //this is what makes the links clickable
+    msgBox.setText("Are you sure you want to disable reporting <a href='http://reports.mantidproject.org'>usage data</a>?");
     msgBox.setInformativeText("All usage data is anonymous and untraceable.\n"
       "We use the usage data to inform the future development of Mantid.\n"
       "If you click \"Yes\" aspects you need risk being deprecated in "
diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InputController.h b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InputController.h
deleted file mode 100644
index b6e091a52d633c9c18183249de612a3bcb587f29..0000000000000000000000000000000000000000
--- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InputController.h
+++ /dev/null
@@ -1,228 +0,0 @@
-#ifndef INPUTCONTROLLER_H
-#define INPUTCONTROLLER_H
-
-#include <QObject>
-#include <QRect>
-#include <QColor>
-
-class QMouseEvent;
-class QWheelEvent;
-class QKeyEvent;
-class QPainter;
-class QPixmap;
-
-/**
-    The base class for the mouse and keyboard controllers to work
-    with ProjectionSurfaces. Surfaces can be in different interaction
-    modes and the same mode on different surfaces can involve
-    different inputs.
-
-    A projection surface keeps a list of controllers: one per interaction mode.
-    The current controller emits signals which are connected to the relevant slots
-    on the surface.
-
-  */
-class InputController : public QObject
-{
-    Q_OBJECT
-public:
-    explicit InputController(QObject *parent, bool contextAllowed = true);
-    
-    virtual void mousePressEvent(QMouseEvent*){}
-    virtual void mouseMoveEvent(QMouseEvent*){}
-    virtual void mouseReleaseEvent(QMouseEvent*){}
-    virtual void wheelEvent(QWheelEvent *){}
-    virtual void keyPressEvent(QKeyEvent*){}
-    virtual void enterEvent(QEvent*) {}
-    virtual void leaveEvent(QEvent*) {}
-    /// To be called after the owner widget has drawn its content
-    virtual void onPaint(QPainter&){}
-    /// To be called when this controller takes control of the input. By default emits enabled() signal.
-    virtual void onEnabled() {emit enabled();}
-    /// To be called when this controller looses control. By default emits disabled() signal.
-    virtual void onDisabled() {emit disabled();}
-
-    /// Returns true if a surface using this controller can show
-    /// a context menu on right-click
-    bool canShowContextMenu() const {return m_canShowContextMenu;}
-
-signals:
-    void enabled();
-    void disabled();
-
-private:
-    bool m_canShowContextMenu;
-};
-
-/**
-    Controller for moving the instrument on Projection3D surface:
-    translation, rotation and zooming.
-
-  */
-class InputController3DMove: public InputController
-{
-    Q_OBJECT
-
-public:
-    InputController3DMove(QObject *parent);
-    virtual void mousePressEvent(QMouseEvent*);
-    virtual void mouseMoveEvent(QMouseEvent*);
-    virtual void mouseReleaseEvent(QMouseEvent*);
-    virtual void wheelEvent(QWheelEvent *);
-
-signals:
-    /// Init zooming. x and y is the zoom starting point on the screen.
-    void initZoom(int x, int y);
-    /// Init rotation. x and y is the starting point on the screen.
-    void initRotation(int x, int y);
-    /// Init translation. x and y is the starting point on the screen.
-    void initTranslation(int x, int y);
-    /// Zoom
-    void zoom(int x, int y);
-    /// Wheel zoom
-    void wheelZoom(int x, int y, int d);
-    /// Rotate
-    void rotate(int x, int y);
-    /// Translate
-    void translate(int x, int y);
-    /// Finish movement
-    void finish();
-
-private:
-    bool m_isButtonPressed;
-};
-
-/**
-    Controller for picking detectors.
-  */
-class InputControllerPick: public InputController
-{
-    Q_OBJECT
-
-public:
-    InputControllerPick(QObject *parent);
-    virtual void mousePressEvent(QMouseEvent*);
-    virtual void mouseMoveEvent(QMouseEvent*);
-    virtual void mouseReleaseEvent(QMouseEvent*);
-
-signals:
-    void pickPointAt(int,int);
-    void touchPointAt(int,int);
-    void setSelection(const QRect&);
-    void finishSelection();
-
-private:
-    bool m_isButtonPressed;
-    QRect m_rect;
-};
-
-/**
-    Controller for drawing mask shapes.
-  */
-class InputControllerDrawShape: public InputController
-{
-    Q_OBJECT
-
-public:
-    InputControllerDrawShape(QObject *parent);
-    virtual void mousePressEvent(QMouseEvent*);
-    virtual void mouseMoveEvent(QMouseEvent*);
-    virtual void mouseReleaseEvent(QMouseEvent*);
-    virtual void keyPressEvent(QKeyEvent*);
-    virtual void leaveEvent(QEvent*);
-
-signals:
-    /// Deselect all selected shapes
-    void deselectAll();
-    /// Add a new shape
-    void addShape(const QString& type,int x,int y,const QColor& borderColor,const QColor& fillColor);
-    /// Resize the current shape by moving the right-bottom control point to a location on the screen
-    void moveRightBottomTo(int,int);
-    /// Select a shape or a conrol point at a location on the screen.
-    void selectAt(int,int);
-    /// Select a shape with ctrl key pressed at a location on the screen.
-    void selectCtrlAt(int,int);
-    /// Move selected shape or a control point by a displacement vector.
-    void moveBy(int,int);
-    /// Sent when the mouse is moved to a new position with the buttons up
-    void touchPointAt(int,int);
-    /// Remove the selected shapes
-    void removeSelectedShapes();
-    /// Restore the cursor to its default image
-    void restoreOverrideCursor();
-    /// Update the rubber band selection
-    void setSelection(const QRect&);
-    /// Rubber band selection is done
-    void finishSelection(const QRect&);
-
-public slots:
-    void startCreatingShape2D(const QString& type,const QColor& borderColor,const QColor& fillColor);
-    void onDisabled();
-
-private:
-    bool m_creating; ///< a shape is being created with a mouse
-    int m_x,m_y;
-    QString m_shapeType;
-    QColor m_borderColor, m_fillColor;
-    bool m_isButtonPressed;
-    QRect m_rect;
-};
-
-/**
-    Controller for moving the instrument on an unwrapped surface.
-  */
-class InputControllerMoveUnwrapped: public InputController
-{
-    Q_OBJECT
-
-public:
-    InputControllerMoveUnwrapped(QObject *parent);
-    virtual void mousePressEvent(QMouseEvent*);
-    virtual void mouseMoveEvent(QMouseEvent*);
-    virtual void mouseReleaseEvent(QMouseEvent*);
-
-signals:
-    void setSelectionRect(const QRect&);
-    void zoom();
-    void unzoom();
-
-private:
-    bool m_isButtonPressed;
-    QRect m_rect;
-};
-
-/**
-    Controller for moving the instrument on an unwrapped surface.
-  */
-class InputControllerErase: public InputController
-{
-    Q_OBJECT
-
-public:
-    InputControllerErase(QObject *parent);
-    ~InputControllerErase();
-    virtual void mousePressEvent(QMouseEvent*);
-    virtual void mouseMoveEvent(QMouseEvent*);
-    virtual void mouseReleaseEvent(QMouseEvent*);
-    virtual void wheelEvent(QWheelEvent *);
-
-    virtual void onPaint(QPainter&);
-    virtual void enterEvent(QEvent*);
-    virtual void leaveEvent(QEvent*);
-
-signals:
-    void erase(const QRect&);
-
-private:
-    void drawCursor();
-
-    const int m_max_size;
-    int m_size; ///< Size of the eraser
-    bool m_isButtonPressed;
-    bool m_isActive;
-    QRect m_rect;
-    QPixmap *m_cursor;
-    QPixmap *m_image;
-};
-
-#endif // INPUTCONTROLLER_H
diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InstrumentWindowPickTab.h b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InstrumentWindowPickTab.h
index e3c8843bcd12006978ada42b5c403d33338f7e7e..ec169a6b904f917b7301cad5e29acf69816e44a8 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InstrumentWindowPickTab.h
+++ b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InstrumentWindowPickTab.h
@@ -4,8 +4,9 @@
 #include "InstrumentWindowTab.h"
 #include "MantidGLWidget.h"
 
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/ICompAssembly.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidGeometry/IDTypes.h"
 
 class Instrument3DWidget;
 class InstrumentActor;
diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/Projection3D.cpp b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/Projection3D.cpp
index b964aa6d0999d82cac1ff8b419b3f448d8ab8547..d02948d9a19c79fe9251eef460285871c14a0e53 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/Projection3D.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/Projection3D.cpp
@@ -7,11 +7,11 @@
 #include "UnwrappedCylinder.h"
 #include "UnwrappedSphere.h"
 #include "OpenGLError.h"
-#include "InputController.h"
 
 #include "MantidGeometry/Instrument.h"
 #include "MantidGeometry/Objects/Object.h"
 #include "MantidAPI/MatrixWorkspace.h"
+#include "MantidQtMantidWidgets/InputController.h"
 
 #include <boost/shared_ptr.hpp>
 #include <boost/scoped_ptr.hpp>
@@ -35,6 +35,7 @@ using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::Kernel;
 using namespace Mantid::Geometry;
+using namespace MantidQt::MantidWidgets;
 
 Projection3D::Projection3D(const InstrumentActor* rootActor,int winWidth,int winHeight)
   :ProjectionSurface(rootActor),
diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/ProjectionSurface.cpp b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/ProjectionSurface.cpp
index 7a33472f9183a66a1fa085eb63db0f6758b070c3..cd8e0151e575838b1d05707d676ee92dc73ba563 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/ProjectionSurface.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/ProjectionSurface.cpp
@@ -2,11 +2,12 @@
 #include "GLColor.h"
 #include "MantidGLWidget.h"
 #include "OpenGLError.h"
-#include "InputController.h"
+
 
 #include "MantidGeometry/IDetector.h"
 #include "MantidGeometry/Objects/Object.h"
 #include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidQtMantidWidgets/InputController.h"
 
 #include <QRgb>
 #include <QSet>
@@ -22,6 +23,7 @@
 #include "MantidKernel/V3D.h"
 
 using Mantid::Kernel::V3D;
+using namespace MantidQt::MantidWidgets;
 
 /**
   * The constructor.
diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/ProjectionSurface.h b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/ProjectionSurface.h
index e53dbacdf73b1589bf8c3235c76988d08c0a71ed..33b4a96a7badc9e2716a931a536476cbb9271d87 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/ProjectionSurface.h
+++ b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/ProjectionSurface.h
@@ -27,10 +27,14 @@ namespace Mantid{
     class IPeaksWorkspace;
   }
 }
+namespace MantidQt {
+   namespace MantidWidgets {
+    class InputController;
+    }
+}
 
 class GLColor;
 class MantidGLWidget;
-class InputController;
 
 class QMouseEvent;
 class QWheelEvent;
@@ -245,7 +249,7 @@ protected:
   QRect selectionRect()const;
   RectF selectionRectUV()const;
   size_t getPickID(int x, int y)const;
-  void setInputController(int mode, InputController* controller);
+  void setInputController(int mode, MantidQt::MantidWidgets::InputController* controller);
   void setPeakVisibility() const;
 
   //-----------------------------------
@@ -270,9 +274,9 @@ protected:
 
 private:
   /// Get the current input controller
-  InputController* getController() const;
+  MantidQt::MantidWidgets::InputController* getController() const;
 
-  QMap<int,InputController*> m_inputControllers; ///< controllers for mouse and keyboard input
+  QMap<int,MantidQt::MantidWidgets::InputController*> m_inputControllers; ///< controllers for mouse and keyboard input
   /// Set when the image must be redrawn
   mutable bool m_viewChanged;
   /// Set when the picking image must be redrawn regardless of the interaction mode
diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/UnwrappedSurface.cpp b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/UnwrappedSurface.cpp
index 6014dcc2084a78d1abc960b485a0d7896d2b05bb..d83662b41b3b486ee0e4da6bce7f7fb13c2a5f1c 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/UnwrappedSurface.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/UnwrappedSurface.cpp
@@ -3,11 +3,11 @@
 #include "MantidGLWidget.h"
 #include "OpenGLError.h"
 #include "PeakMarker2D.h"
-#include "InputController.h"
 
 #include "MantidGeometry/IDetector.h"
 #include "MantidGeometry/Objects/Object.h"
 #include "MantidGeometry/Instrument.h"
+#include "MantidQtMantidWidgets/InputController.h"
 
 #include <QRgb>
 #include <QSet>
@@ -24,6 +24,7 @@
 
 using namespace Mantid::Geometry;
 using Mantid::Kernel::Exception::NotFoundError;
+using namespace MantidQt::MantidWidgets;
 
 UnwrappedDetector::UnwrappedDetector():
 u(0), v(0), width(0), height(0), uscale(0), vscale(0), detector()
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidCurve.h b/Code/Mantid/MantidPlot/src/Mantid/MantidCurve.h
index 93af2a62a3a297954e56127a9138c7e6113e1cd4..c379748316fcc6b44b81c5cc74d02cf957ba3030 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidCurve.h
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidCurve.h
@@ -3,7 +3,7 @@
 
 #include "../PlotCurve.h"
 #include "MantidQtAPI/WorkspaceObserver.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidQtAPI/MantidQwtWorkspaceData.h"
 
 class Graph;
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidDock.cpp b/Code/Mantid/MantidPlot/src/Mantid/MantidDock.cpp
index cef8fd980a615f4e25fffe270d9753bda8e700e7..4da9703d621c4b953db87f409ad7dbdc99780215 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidDock.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidDock.cpp
@@ -9,6 +9,8 @@
 
 #include <MantidAPI/AlgorithmFactory.h>
 #include <MantidAPI/FileProperty.h>
+#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include <MantidAPI/WorkspaceGroup.h>
 #include <MantidGeometry/MDGeometry/IMDDimension.h>
 #include <MantidGeometry/Crystal/OrientedLattice.h>
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidDock.h b/Code/Mantid/MantidPlot/src/Mantid/MantidDock.h
index 07eb2e9f8a2b28062a1b81a05246ed828989733d..120e7a8790df49fea375b5b7fc71fe60dc4693c9 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidDock.h
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidDock.h
@@ -2,12 +2,11 @@
 #define MANTIDDOCK_H
 
 #include "MantidAPI/ExperimentInfo.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/IMDWorkspace.h"
-#include "MantidAPI/IPeaksWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include "MantidQtMantidWidgets/AlgorithmSelectorWidget.h"
 
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidMatrix.h b/Code/Mantid/MantidPlot/src/Mantid/MantidMatrix.h
index 2bf9628335162a12fd386c7f6fe3dc24e2a059b0..8d9f8597977945b8e4ff6873c7db3a6c2d4a10f9 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidMatrix.h
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidMatrix.h
@@ -13,7 +13,7 @@
 
 #include <Poco/NObserver.h>
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "../UserFunction.h"
 #include "../MdiSubWindow.h"
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidTable.cpp b/Code/Mantid/MantidPlot/src/Mantid/MantidTable.cpp
index e17e61dcd2ce65deb51c7f0344e024995b12cfb7..de0d7ddf84284a23f0317a2f6706c59727fff950 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidTable.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidTable.cpp
@@ -4,6 +4,7 @@
 #include "MantidAPI/Column.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/Algorithm.h"
+#include "MantidAPI/ITableWorkspace.h"
 
 #include <QApplication>
 #include <QMessageBox>
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidTable.h b/Code/Mantid/MantidPlot/src/Mantid/MantidTable.h
index b8e09c3c1284761b2fb557f685b10720fc47ac39..911e70032f30c718c1cd8d76b284a7f561122423 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidTable.h
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidTable.h
@@ -3,7 +3,7 @@
 
 #include "../Table.h"
 #include "MantidQtAPI/WorkspaceObserver.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 
 /** A MantidTable appears to be a MantidPlot "Table" object
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidUI.cpp b/Code/Mantid/MantidPlot/src/Mantid/MantidUI.cpp
index d3f10db319fc4f8d9d2822674b72d169c2704e36..b573468de37e3bc45d078ce2d9dd24e0c64a8e7b 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidUI.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidUI.cpp
@@ -41,6 +41,8 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 
 
 #include <QMessageBox>
@@ -2359,6 +2361,7 @@ bool MantidUI::createScriptInputDialog(const QString & alg_name, const QString &
   MantidQt::API::AlgorithmDialog *dlg =
     interfaceManager.createDialog(alg, m_appWindow->getScriptWindowHandle(),
                                   true, presets, optional_msg, enabled, disabled);
+  dlg->setShowKeepOpen(false);
   return (dlg->exec() == QDialog::Accepted);
 }
 
@@ -3291,46 +3294,49 @@ void MantidUI::drawColorFillPlots(const QStringList & wsNames, Graph::CurveType
   int nPlots = wsNames.size();
   if ( nPlots > 1 )
   {
-    int nCols = 1;
-    if ( nPlots >= 16 )
-    {
-      nCols = 4;
-    }
-    else if ( nPlots >= 9 )
-    {
-      nCols = 3;
-    }
-    else if ( nPlots >= 4 )
-    {
-      nCols = 2;
-    }
-    else
+    QList<MultiLayer*> plots;
+    for( QStringList::const_iterator cit = wsNames.begin(); cit != wsNames.end(); ++cit )
     {
-      nCols = nPlots;
+      const bool hidden = true;
+      MultiLayer* plot = this->drawSingleColorFillPlot(*cit, curveType, NULL, hidden);
+      if(plot)
+        plots.append(plot);
     }
 
-    int nRows = nPlots / nCols;
-    if ( nPlots % nCols != 0 )
+    if(!plots.isEmpty())
     {
-      ++nRows;
-    }
+      nPlots = plots.size();
 
-    auto tiledWindow = new TiledWindow(appWindow(),"",appWindow()->generateUniqueName("TiledWindow"),nRows,nCols);
-    appWindow()->addMdiSubWindow(tiledWindow);
+      int nCols = 1;
+      if ( nPlots >= 16 )
+        nCols = 4;
+      else if ( nPlots >= 9 )
+        nCols = 3;
+      else if ( nPlots >= 4 )
+        nCols = 2;
+      else
+        nCols = nPlots;
 
-    int row = 0;
-    int col = 0;
-    for( QStringList::const_iterator cit = wsNames.begin(); cit != wsNames.end(); ++cit )
-    {
-      const bool hidden = true;
-      auto plot = this->drawSingleColorFillPlot(*cit, curveType, NULL, hidden);
-      tiledWindow->addWidget(plot,row,col);
-      ++col;
-      if (col == nCols)
+      int nRows = nPlots / nCols;
+      if ( nPlots % nCols != 0 )
+        ++nRows;
+
+      auto tiledWindow = new TiledWindow(appWindow(),"",appWindow()->generateUniqueName("TiledWindow"),nRows,nCols);
+
+      int row = 0;
+      int col = 0;
+      for(auto it = plots.begin(); it != plots.end(); ++it)
       {
-        col = 0;
-        ++row;
+        tiledWindow->addWidget(*it, row, col);
+        ++col;
+        if (col == nCols)
+        {
+          col = 0;
+          ++row;
+        }
       }
+
+      appWindow()->addMdiSubWindow(tiledWindow);
     }
   }
   else if ( nPlots == 1 )
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidUI.h b/Code/Mantid/MantidPlot/src/Mantid/MantidUI.h
index 73d70f58bde40bf3fdaa40e60ee1e22d522b710a..2ead322dd2565c18ae7a9358ba05dd52e06a2479 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidUI.h
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidUI.h
@@ -13,9 +13,9 @@
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/AlgorithmFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/IPeaksWorkspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 #include "MantidQtAPI/AlgorithmDialog.h"
 #include "MantidQtAPI/QwtWorkspaceSpectrumData.h"
diff --git a/Code/Mantid/MantidPlot/src/MultiTabScriptInterpreter.cpp b/Code/Mantid/MantidPlot/src/MultiTabScriptInterpreter.cpp
index 9b6b40bcd96c5437e4a3ca2ac730f8e2d1561488..4d4936c46f5d9c90253bcc75e7f3afc89f8efc34 100644
--- a/Code/Mantid/MantidPlot/src/MultiTabScriptInterpreter.cpp
+++ b/Code/Mantid/MantidPlot/src/MultiTabScriptInterpreter.cpp
@@ -37,32 +37,27 @@
 /**
  * Constructor
  */
-MultiTabScriptInterpreter::MultiTabScriptInterpreter(ScriptingEnv *env, QWidget *parent)
-  : QTabWidget(parent), Scripted(env), m_last_dir(""),
-    m_cursor_pos(), m_reportProgress(false), m_recentScriptList(), m_nullScript(new NullScriptFileInterpreter),
-    m_current(m_nullScript), m_globalZoomLevel(0), m_showWhitespace(false),
-    m_replaceTabs(true), m_tabWhitespaceCount(4), m_fontFamily(), m_codeFolding(false)
-{
-  connect(this, SIGNAL(currentChanged(int)), this, SLOT(tabSelectionChanged(int)));
+MultiTabScriptInterpreter::MultiTabScriptInterpreter(ScriptingEnv *env,
+                                                     QWidget *parent)
+    : QTabWidget(parent), Scripted(env), m_last_dir(""), m_cursor_pos(),
+      m_reportProgress(false), m_recentScriptList(),
+      m_nullScript(new NullScriptFileInterpreter), m_current(m_nullScript),
+      m_globalZoomLevel(0), m_showWhitespace(false), m_replaceTabs(true),
+      m_tabWhitespaceCount(4), m_fontFamily(), m_codeFolding(false) {
+  connect(this, SIGNAL(currentChanged(int)), this,
+          SLOT(tabSelectionChanged(int)));
 }
 
 /**
  * Destructor
  */
-MultiTabScriptInterpreter::~MultiTabScriptInterpreter()
-{
-  delete m_nullScript;
-}
+MultiTabScriptInterpreter::~MultiTabScriptInterpreter() { delete m_nullScript; }
 
 /// @return Interpreter at given index
-ScriptFileInterpreter * MultiTabScriptInterpreter::interpreterAt(int index)
-{
-  if(count() > 0)
-  {
-    return qobject_cast<ScriptFileInterpreter*>(widget(index));
-  }
-  else
-  {
+ScriptFileInterpreter *MultiTabScriptInterpreter::interpreterAt(int index) {
+  if (count() > 0) {
+    return qobject_cast<ScriptFileInterpreter *>(widget(index));
+  } else {
     return m_nullScript;
   }
 }
@@ -70,11 +65,10 @@ ScriptFileInterpreter * MultiTabScriptInterpreter::interpreterAt(int index)
 /**
  * Is a script running in the environment
  */
-bool MultiTabScriptInterpreter::isExecuting()
-{
-  for(int i = 0; i < count(); ++i)
-  {
-    if(interpreterAt(i)->isExecuting()) return true;
+bool MultiTabScriptInterpreter::isExecuting() {
+  for (int i = 0; i < count(); ++i) {
+    if (interpreterAt(i)->isExecuting())
+      return true;
   }
   return false;
 }
@@ -84,12 +78,13 @@ bool MultiTabScriptInterpreter::isExecuting()
 //-------------------------------------------
 /**
  * Create a new tab such that it is the specified index within the tab range.
- * @param index :: The index to give the new tab. If this is invalid the tab is simply appended
+ * @param index :: The index to give the new tab. If this is invalid the tab is
+ * simply appended
  * @param filename :: An optional filename
  */
-void MultiTabScriptInterpreter::newTab(int index, const QString & filename)
-{
-  ScriptFileInterpreter *scriptRunner = new ScriptFileInterpreter(this,"ScriptWindow");
+void MultiTabScriptInterpreter::newTab(int index, const QString &filename) {
+  ScriptFileInterpreter *scriptRunner =
+      new ScriptFileInterpreter(this, "ScriptWindow");
   scriptRunner->setup(*scriptingEnv(), filename);
   scriptRunner->toggleProgressReporting(m_reportProgress);
   scriptRunner->toggleCodeFolding(m_codeFolding);
@@ -97,17 +92,21 @@ void MultiTabScriptInterpreter::newTab(int index, const QString & filename)
   scriptRunner->setTabWhitespaceCount(m_tabWhitespaceCount);
   scriptRunner->toggleReplaceTabs(m_replaceTabs);
   scriptRunner->setFont(m_fontFamily);
-  connect(scriptRunner, SIGNAL(editorModificationChanged(bool)),
-          this, SLOT(currentEditorModified(bool)));
+  connect(scriptRunner, SIGNAL(editorModificationChanged(bool)), this,
+          SLOT(currentEditorModified(bool)));
   index = insertTab(index, scriptRunner, "");
   setCurrentIndex(index);
   setTabTitle(scriptRunner, filename); // Make sure the tooltip is set
   scriptRunner->setFocus();
   scriptRunner->editor()->zoomIn(globalZoomLevel());
-  connect(scriptRunner->editor(), SIGNAL(textZoomedIn()), this, SLOT(zoomInAllButCurrent()));
-  connect(scriptRunner->editor(), SIGNAL(textZoomedIn()), this, SLOT(trackZoomIn()));
-  connect(scriptRunner->editor(), SIGNAL(textZoomedOut()), this, SLOT(zoomOutAllButCurrent()));
-  connect(scriptRunner->editor(), SIGNAL(textZoomedOut()), this, SLOT(trackZoomOut()));
+  connect(scriptRunner->editor(), SIGNAL(textZoomedIn()), this,
+          SLOT(zoomInAllButCurrent()));
+  connect(scriptRunner->editor(), SIGNAL(textZoomedIn()), this,
+          SLOT(trackZoomIn()));
+  connect(scriptRunner->editor(), SIGNAL(textZoomedOut()), this,
+          SLOT(zoomOutAllButCurrent()));
+  connect(scriptRunner->editor(), SIGNAL(textZoomedOut()), this,
+          SLOT(trackZoomOut()));
 
   emit newTabCreated(index);
   emit tabCountChanged(count());
@@ -117,8 +116,7 @@ void MultiTabScriptInterpreter::newTab(int index, const QString & filename)
  * Open a file in the current tab
  * @param filename :: An optional file name
  */
-void MultiTabScriptInterpreter::openInCurrentTab(const QString & filename)
-{
+void MultiTabScriptInterpreter::openInCurrentTab(const QString &filename) {
   open(false, filename);
 }
 
@@ -126,8 +124,7 @@ void MultiTabScriptInterpreter::openInCurrentTab(const QString & filename)
  * Open a file in a new tab
  * @param filename :: An optional file name
  */
-void MultiTabScriptInterpreter::openInNewTab(const QString & filename)
-{
+void MultiTabScriptInterpreter::openInNewTab(const QString &filename) {
   open(true, filename);
 }
 
@@ -135,58 +132,43 @@ void MultiTabScriptInterpreter::openInNewTab(const QString & filename)
  * open the selected script from the File->Recent Scripts  in a new tab
  * @param index :: The index of the selected script
  */
-void MultiTabScriptInterpreter::openRecentScript(int index)
-{
-  if(index < m_recentScriptList.count())
-  {
+void MultiTabScriptInterpreter::openRecentScript(int index) {
+  if (index < m_recentScriptList.count()) {
     QString filename = m_recentScriptList[index];
     openInNewTab(filename);
   }
 }
 
 /// Save current file
-void MultiTabScriptInterpreter::saveToCurrentFile()
-{
-  try
-  {
+void MultiTabScriptInterpreter::saveToCurrentFile() {
+  try {
     m_current->saveToCurrentFile();
     setTabTitle(m_current, m_current->filename());
-  }
-  catch(ScriptEditor::SaveCancelledException&) {}
-  catch(std::runtime_error& exc)
-  {
+  } catch (ScriptEditor::SaveCancelledException &) {
+  } catch (std::runtime_error &exc) {
     QMessageBox::critical(this, tr("MantidPlot"), tr(exc.what()));
   }
 }
 
 /// Save to new file
-void MultiTabScriptInterpreter::saveAs()
-{
-  try
-  {
+void MultiTabScriptInterpreter::saveAs() {
+  try {
     m_current->saveAs();
     setTabTitle(m_current, m_current->filename());
-  }
-  catch(ScriptEditor::SaveCancelledException&) {}
-  catch(std::runtime_error& exc)
-  {
+  } catch (ScriptEditor::SaveCancelledException &) {
+  } catch (std::runtime_error &exc) {
     QMessageBox::critical(this, tr("MantidPlot"), tr(exc.what()));
   }
 }
 
 /// Print the current script
-void MultiTabScriptInterpreter::print()
-{
-  m_current->printScript();
-}
+void MultiTabScriptInterpreter::print() { m_current->printScript(); }
 
 /**
  * Close current tab
  */
-int MultiTabScriptInterpreter::closeCurrentTab()
-{
-  if( count() > 0 )
-  {
+int MultiTabScriptInterpreter::closeCurrentTab() {
+  if (count() > 0) {
     int index = currentIndex();
     closeTabAtIndex(index);
     return index;
@@ -194,104 +176,98 @@ int MultiTabScriptInterpreter::closeCurrentTab()
   return -1;
 }
 
-
 /**
  * Close all tabs
  */
-void MultiTabScriptInterpreter::closeAllTabs()
-{
+void MultiTabScriptInterpreter::closeAllTabs() {
   int index_end = count() - 1;
   setCurrentIndex(index_end);
-  for( int index = index_end; index >= 0; --index )
-  {
-    //This closes the tab at the end.
+  for (int index = index_end; index >= 0; --index) {
+    // This closes the tab at the end.
     closeTabAtIndex(index);
   }
   m_current = m_nullScript;
 }
 
 /**
- *  This method is useful for saving the currently opened script files to project file 
+ *  This method is useful for saving the currently opened script files to
+ * project file
 */
-QString MultiTabScriptInterpreter::saveToString()
-{
+QString MultiTabScriptInterpreter::saveToString() {
   int nscripts = 0;
   QString fileNames;
-  fileNames="<scriptwindow>\n";
-  fileNames+="ScriptNames\t";
+  fileNames = "<scriptwindow>\n";
+  fileNames += "ScriptNames\t";
   int ntabs = count();
-  //get the number of tabs and append  the script file name for each tab
-  //to a string
-  for( int index = 0; index < ntabs; ++index )
-  {
+  // get the number of tabs and append  the script file name for each tab
+  // to a string
+  for (int index = 0; index < ntabs; ++index) {
     ScriptFileInterpreter *interpreter = interpreterAt(index);
     QString s = interpreter->filename();
-    if(!s.isEmpty())
-    {
-      fileNames+=s;
-      fileNames+="\t";
+    if (!s.isEmpty()) {
+      fileNames += s;
+      fileNames += "\t";
       nscripts++;
     }
   }
-  fileNames+="\n</scriptwindow>\n";
+  fileNames += "\n</scriptwindow>\n";
   return (nscripts > 0) ? fileNames : "";
 }
 
+/**
+ * Creates a returns a QStringList of filenames associated with the currently
+ * opened tabs
+ * @return A QStringList of all the filenames associated with each tab
+ */
+QStringList MultiTabScriptInterpreter::fileNamesToQStringList() {
+  int nscripts = 0;
+  QStringList fileNames;
+  int ntabs = count();
+  // get the number of tabs and append  the script file name for each tab
+  // to a QStringList
+  for (int index = 0; index < ntabs; ++index) {
+    ScriptFileInterpreter *interpreter = interpreterAt(index);
+    QString s = interpreter->filename();
+    if (!s.isEmpty()) {
+      fileNames.append(s);
+      nscripts++;
+    }
+  }
+  QStringList empty;
+  return (nscripts > 0) ? fileNames : empty;
+}
 
 /**
  * Show the find/replace dialog
  */
-void MultiTabScriptInterpreter::showFindReplaceDialog()
-{
+void MultiTabScriptInterpreter::showFindReplaceDialog() {
   m_current->showFindReplaceDialog();
 }
 
 /// undo
-void MultiTabScriptInterpreter::undo()
-{
-  m_current->undo();
-}
+void MultiTabScriptInterpreter::undo() { m_current->undo(); }
 /// redo
-void MultiTabScriptInterpreter::redo()
-{
-  m_current->redo();
-}
+void MultiTabScriptInterpreter::redo() { m_current->redo(); }
 
 /// cut current
-void MultiTabScriptInterpreter::cut()
-{
-  m_current->cut();
-}
+void MultiTabScriptInterpreter::cut() { m_current->cut(); }
 
 /// copy method
-void MultiTabScriptInterpreter::copy()
-{
-  m_current->copy();
-}
-  ///paste method
-void MultiTabScriptInterpreter::paste()
-{
-  m_current->paste();
-}
+void MultiTabScriptInterpreter::copy() { m_current->copy(); }
+/// paste method
+void MultiTabScriptInterpreter::paste() { m_current->paste(); }
 
-///comment method
-void MultiTabScriptInterpreter::comment()
-{
-  m_current->comment();
-}
+/// comment method
+void MultiTabScriptInterpreter::comment() { m_current->comment(); }
 
-///uncomment method
-void MultiTabScriptInterpreter::uncomment()
-{
-  m_current->uncomment();
-}
+/// uncomment method
+void MultiTabScriptInterpreter::uncomment() { m_current->uncomment(); }
 
 /**
  * Execute the highlighted code from the current tab
  * *@param mode :: The mode used to execute
  */
-void MultiTabScriptInterpreter::executeAll(const Script::ExecutionMode mode)
-{
+void MultiTabScriptInterpreter::executeAll(const Script::ExecutionMode mode) {
   m_current->executeAll(mode);
 }
 
@@ -299,43 +275,33 @@ void MultiTabScriptInterpreter::executeAll(const Script::ExecutionMode mode)
  * given execution mode
  * @param mode :: The mode used to execute
  */
-void MultiTabScriptInterpreter::executeSelection(const Script::ExecutionMode mode)
-{
+void MultiTabScriptInterpreter::executeSelection(
+    const Script::ExecutionMode mode) {
   m_current->executeSelection(mode);
 }
 
 /**
  * Evaluate
  */
-void MultiTabScriptInterpreter::evaluate()
-{
+void MultiTabScriptInterpreter::evaluate() {
   QMessageBox::information(this, "MantidPlot", "Evaluate is not implemented.");
 }
 
 /**
  */
-void MultiTabScriptInterpreter::clearScriptVariables()
-{
+void MultiTabScriptInterpreter::clearScriptVariables() {
   m_current->clearVariables();
 }
 
 /// Tracks the global zoom level
-void MultiTabScriptInterpreter::trackZoomIn()
-{
-  ++m_globalZoomLevel;
-}
+void MultiTabScriptInterpreter::trackZoomIn() { ++m_globalZoomLevel; }
 
 /// Tracks the global zoom level
-void MultiTabScriptInterpreter::trackZoomOut()
-{
-  --m_globalZoomLevel;
-}
+void MultiTabScriptInterpreter::trackZoomOut() { --m_globalZoomLevel; }
 
 /// Increase font size on all tabs
-void MultiTabScriptInterpreter::zoomIn()
-{
-  for(int index = 0; index < count(); ++index)
-  {
+void MultiTabScriptInterpreter::zoomIn() {
+  for (int index = 0; index < count(); ++index) {
     interpreterAt(index)->editor()->zoomIn();
   }
 }
@@ -343,20 +309,17 @@ void MultiTabScriptInterpreter::zoomIn()
 /**
  * @param skipIndex The tab that should be skipped
  */
-void MultiTabScriptInterpreter::zoomInAllButCurrent()
-{
+void MultiTabScriptInterpreter::zoomInAllButCurrent() {
   int skipIndex = this->currentIndex();
-  for(int i = 0; i < count(); ++i)
-  {
-    if(i != skipIndex) interpreterAt(i)->editor()->zoomIn();
+  for (int i = 0; i < count(); ++i) {
+    if (i != skipIndex)
+      interpreterAt(i)->editor()->zoomIn();
   }
 }
 
 /// Decrease font size on all tabs
-void MultiTabScriptInterpreter::zoomOut()
-{
-  for(int i = 0; i < count(); ++i)
-  {
+void MultiTabScriptInterpreter::zoomOut() {
+  for (int i = 0; i < count(); ++i) {
     interpreterAt(i)->editor()->zoomOut();
   }
 }
@@ -364,39 +327,32 @@ void MultiTabScriptInterpreter::zoomOut()
 /**
  * @param skipIndex The tab that should be skipped
  */
-void MultiTabScriptInterpreter::zoomOutAllButCurrent()
-{
+void MultiTabScriptInterpreter::zoomOutAllButCurrent() {
   int skipIndex = this->currentIndex();
-  for(int i = 0; i < count(); ++i)
-  {
-    if(i != skipIndex) interpreterAt(i)->editor()->zoomOut();
+  for (int i = 0; i < count(); ++i) {
+    if (i != skipIndex)
+      interpreterAt(i)->editor()->zoomOut();
   }
 }
 
 /**
  * Resets to zoom on all tabs to default
  */
-void MultiTabScriptInterpreter::resetZoom()
-{
+void MultiTabScriptInterpreter::resetZoom() {
   m_globalZoomLevel = 0;
-  for(int i = 0; i < count(); ++i)
-  {
+  for (int i = 0; i < count(); ++i) {
     interpreterAt(i)->editor()->zoomTo(m_globalZoomLevel);
   }
-
 }
 
-
 /**
  * Toggle the progress arrow on/off
  * @param state :: The state of the option
  */
-void MultiTabScriptInterpreter::toggleProgressReporting(bool state)
-{
+void MultiTabScriptInterpreter::toggleProgressReporting(bool state) {
   m_reportProgress = state;
   int index_end = count() - 1;
-  for( int index = index_end; index >= 0; --index )
-  {
+  for (int index = index_end; index >= 0; --index) {
     interpreterAt(index)->toggleProgressReporting(state);
   }
 }
@@ -405,12 +361,10 @@ void MultiTabScriptInterpreter::toggleProgressReporting(bool state)
  * Toggle code folding on/off
  * @param state :: The state of the option
  */
-void MultiTabScriptInterpreter::toggleCodeFolding(bool state)
-{
+void MultiTabScriptInterpreter::toggleCodeFolding(bool state) {
   m_codeFolding = state;
   int index_end = count() - 1;
-  for( int index = index_end; index >= 0; --index )
-  {
+  for (int index = index_end; index >= 0; --index) {
     interpreterAt(index)->toggleCodeFolding(state);
   }
 }
@@ -418,12 +372,10 @@ void MultiTabScriptInterpreter::toggleCodeFolding(bool state)
  * Toggle the whitespace arrow on/off
  * @param state :: The state of the option
  */
-void MultiTabScriptInterpreter::toggleWhitespace(bool state)
-{
+void MultiTabScriptInterpreter::toggleWhitespace(bool state) {
   m_showWhitespace = state;
   int index_end = count() - 1;
-  for( int index = index_end; index >= 0; --index )
-  {
+  for (int index = index_end; index >= 0; --index) {
     interpreterAt(index)->toggleWhitespace(state);
   }
 }
@@ -431,83 +383,77 @@ void MultiTabScriptInterpreter::toggleWhitespace(bool state)
 /**
  * Show configuration dialogue for tab whitespace
  */
-void MultiTabScriptInterpreter::openConfigTabs()
-{
+void MultiTabScriptInterpreter::openConfigTabs() {
   // Create dialogue
-  QDialog configTabs(this,"Configure Tab Whitespace",false,Qt::Dialog);
-  QBoxLayout *layoutTabDialogue = new QBoxLayout(QBoxLayout::Direction::TopToBottom);
+  QDialog configTabs(this, "Configure Tab Whitespace", false, Qt::Dialog);
+  QBoxLayout *layoutTabDialogue =
+      new QBoxLayout(QBoxLayout::Direction::TopToBottom);
   configTabs.setLayout(layoutTabDialogue);
 
   // Toggle replace tab with spaces
   QCheckBox *chkbxReplaceTabs = new QCheckBox("Replace tabs with spaces?");
   chkbxReplaceTabs->setChecked(m_replaceTabs);
-  connect(chkbxReplaceTabs, SIGNAL(toggled(bool)), this, SLOT(toggleReplaceTabs(bool)));
+  connect(chkbxReplaceTabs, SIGNAL(toggled(bool)), this,
+          SLOT(toggleReplaceTabs(bool)));
   layoutTabDialogue->addWidget(chkbxReplaceTabs);
 
   // Count spaces per tab
   QFrame *frameSpacesPerTab = new QFrame();
-  QBoxLayout *layoutSpacesPerTab = new QBoxLayout(QBoxLayout::Direction::LeftToRight);
+  QBoxLayout *layoutSpacesPerTab =
+      new QBoxLayout(QBoxLayout::Direction::LeftToRight);
   frameSpacesPerTab->setLayout(layoutSpacesPerTab);
   layoutTabDialogue->addWidget(frameSpacesPerTab);
 
-  QLabel *labelSpaceCount = new QLabel("Number of spaces per tab"); 
+  QLabel *labelSpaceCount = new QLabel("Number of spaces per tab");
   layoutSpacesPerTab->addWidget(labelSpaceCount);
 
-  QSpinBox *spinnerSpaceCount = new QSpinBox(); 
-  spinnerSpaceCount->setRange(0,20);
+  QSpinBox *spinnerSpaceCount = new QSpinBox();
+  spinnerSpaceCount->setRange(0, 20);
   spinnerSpaceCount->setValue(m_tabWhitespaceCount);
-  connect (spinnerSpaceCount,SIGNAL(valueChanged(int)),this,SLOT(changeWhitespaceCount(int)));
+  connect(spinnerSpaceCount, SIGNAL(valueChanged(int)), this,
+          SLOT(changeWhitespaceCount(int)));
   layoutSpacesPerTab->addWidget(spinnerSpaceCount);
 
-  configTabs.exec(); 
+  configTabs.exec();
 }
 
 /**
  * Toggle tabs being replaced with whitespace
  * @param state :: The state of the option
  */
-void MultiTabScriptInterpreter::toggleReplaceTabs(bool state)
-{
+void MultiTabScriptInterpreter::toggleReplaceTabs(bool state) {
   m_replaceTabs = state;
-  
+
   int index_end = count() - 1;
-  for( int index = index_end; index >= 0; --index )
-  {
+  for (int index = index_end; index >= 0; --index) {
     interpreterAt(index)->toggleReplaceTabs(state);
   }
 }
 
 /// Change number of characters used for a tab
-void MultiTabScriptInterpreter::changeWhitespaceCount(int value)
-{
+void MultiTabScriptInterpreter::changeWhitespaceCount(int value) {
   m_tabWhitespaceCount = value;
 
   int index_end = count() - 1;
-  for( int index = index_end; index >= 0; --index )
-  {
+  for (int index = index_end; index >= 0; --index) {
     interpreterAt(index)->setTabWhitespaceCount(value);
   }
 }
 
 /// Convert tabs in selection to spaces
-void MultiTabScriptInterpreter::tabsToSpaces()
-{
-  m_current->tabsToSpaces();
-}
+void MultiTabScriptInterpreter::tabsToSpaces() { m_current->tabsToSpaces(); }
 
 /// Convert spaces in selection to tabs
-void MultiTabScriptInterpreter::spacesToTabs()
-{
-  m_current->spacesToTabs();
-}
+void MultiTabScriptInterpreter::spacesToTabs() { m_current->spacesToTabs(); }
 
 /// Show select font dialog
-void MultiTabScriptInterpreter::showSelectFont()
-{
+void MultiTabScriptInterpreter::showSelectFont() {
   // Would prefer to use QFontDialog but only interested in font family
-  
-  QDialog *selectFont = new QDialog(this,"Configure Tab Whitespace",false,Qt::Dialog);
-  QBoxLayout *layoutFontDialogue = new QBoxLayout(QBoxLayout::Direction::TopToBottom);
+
+  QDialog *selectFont =
+      new QDialog(this, "Configure Tab Whitespace", false, Qt::Dialog);
+  QBoxLayout *layoutFontDialogue =
+      new QBoxLayout(QBoxLayout::Direction::TopToBottom);
   selectFont->setLayout(layoutFontDialogue);
 
   // Get available fonts
@@ -515,37 +461,38 @@ void MultiTabScriptInterpreter::showSelectFont()
   QFontDatabase database;
   fontList->addItems(database.families());
   layoutFontDialogue->addWidget(fontList);
-  
+
   // Select saved choice. If not available, use current font
-  QString fontToUse = m_current->font().family(); // Not actually the font used by default by the lexer
-  
-  if(database.families().contains(m_fontFamily))
+  QString fontToUse =
+      m_current->font()
+          .family(); // Not actually the font used by default by the lexer
+
+  if (database.families().contains(m_fontFamily))
     fontToUse = m_fontFamily;
 
-  QListWidgetItem *item = fontList->findItems(fontToUse,Qt::MatchExactly)[0];
-  fontList->setItemSelected(item, true);  
+  QListWidgetItem *item = fontList->findItems(fontToUse, Qt::MatchExactly)[0];
+  fontList->setItemSelected(item, true);
   fontList->scrollToItem(item, QAbstractItemView::PositionAtTop);
 
   QFrame *frameButtons = new QFrame();
-  QBoxLayout *layoutButtons = new QBoxLayout(QBoxLayout::Direction::LeftToRight);
+  QBoxLayout *layoutButtons =
+      new QBoxLayout(QBoxLayout::Direction::LeftToRight);
   frameButtons->setLayout(layoutButtons);
   layoutFontDialogue->addWidget(frameButtons);
-  
+
   QPushButton *cancelButton = new QPushButton("Cancel");
   layoutButtons->addWidget(cancelButton);
-  connect (cancelButton,SIGNAL(clicked()), selectFont, SLOT(reject()));
+  connect(cancelButton, SIGNAL(clicked()), selectFont, SLOT(reject()));
 
   QPushButton *acceptButton = new QPushButton("Set Font");
   layoutButtons->addWidget(acceptButton);
-  connect (acceptButton,SIGNAL(clicked()), selectFont, SLOT(accept()));
+  connect(acceptButton, SIGNAL(clicked()), selectFont, SLOT(accept()));
 
-  if(selectFont->exec() == QDialog::Accepted)
-  {
+  if (selectFont->exec() == QDialog::Accepted) {
     m_fontFamily = fontList->selectedItems()[0]->text();
 
     int index_end = count() - 1;
-    for( int index = index_end; index >= 0; --index )
-    {
+    for (int index = index_end; index >= 0; --index) {
       interpreterAt(index)->setFont(m_fontFamily);
     }
   }
@@ -556,11 +503,11 @@ void MultiTabScriptInterpreter::showSelectFont()
 //--------------------------------------------
 
 /**
- * Close clicked tab. Qt cannot give the position where an action is clicked so this just gets 
+ * Close clicked tab. Qt cannot give the position where an action is clicked so
+ * this just gets
  * the current cursor position and calls the closeAtPosition function
  */
-void MultiTabScriptInterpreter::closeClickedTab()
-{
+void MultiTabScriptInterpreter::closeClickedTab() {
   closeTabAtPosition(m_cursor_pos);
 }
 
@@ -568,17 +515,13 @@ void MultiTabScriptInterpreter::closeClickedTab()
  * Mark the current tab as changed. True means that the editor has
  * modifications
  */
-void MultiTabScriptInterpreter::currentEditorModified(bool state)
-{
+void MultiTabScriptInterpreter::currentEditorModified(bool state) {
   static const QString modifiedLabel("*");
   const int index = currentIndex();
   QString tabLabel = tabText(index);
-  if(state)
-  {
+  if (state) {
     tabLabel += modifiedLabel;
-  }
-  else
-  {
+  } else {
     tabLabel.chop(modifiedLabel.length());
   }
   setTabText(index, tabLabel);
@@ -588,21 +531,19 @@ void MultiTabScriptInterpreter::currentEditorModified(bool state)
  * The current selection has changed
  * @param index The index of the new selection
  */
-void MultiTabScriptInterpreter::tabSelectionChanged(int index)
-{
+void MultiTabScriptInterpreter::tabSelectionChanged(int index) {
   m_current->disconnect(SIGNAL(executionStarted()));
   m_current->disconnect(SIGNAL(executionStopped()));
-  if( count() > 0 )
-  {
+  if (count() > 0) {
     m_current = interpreterAt(index);
-    connect(m_current, SIGNAL(executionStarted()), this, SLOT(sendScriptExecutingSignal()));
-    connect(m_current, SIGNAL(executionStopped()), this, SLOT(sendScriptStoppedSignal()));
+    connect(m_current, SIGNAL(executionStarted()), this,
+            SLOT(sendScriptExecutingSignal()));
+    connect(m_current, SIGNAL(executionStopped()), this,
+            SLOT(sendScriptStoppedSignal()));
     emit executionStateChanged(m_current->isExecuting());
     setFocusProxy(m_current);
     m_current->setFocus();
-  }
-  else
-  {
+  } else {
     m_current = m_nullScript;
   }
 }
@@ -610,16 +551,14 @@ void MultiTabScriptInterpreter::tabSelectionChanged(int index)
 /**
  * Emits the executionStateChanged(true) signal
  */
-void MultiTabScriptInterpreter::sendScriptExecutingSignal()
-{
+void MultiTabScriptInterpreter::sendScriptExecutingSignal() {
   emit executionStateChanged(true);
 }
 
 /**
  * Emits the executionStateChanged(false) signal
  */
-void MultiTabScriptInterpreter::sendScriptStoppedSignal()
-{
+void MultiTabScriptInterpreter::sendScriptStoppedSignal() {
   emit executionStateChanged(false);
 }
 
@@ -630,17 +569,14 @@ void MultiTabScriptInterpreter::sendScriptStoppedSignal()
 /**
  * A context menu event for the tab widget itself
  * @param event :: The context menu event
- */  
-void MultiTabScriptInterpreter::contextMenuEvent(QContextMenuEvent *event)
-{
+ */
+void MultiTabScriptInterpreter::contextMenuEvent(QContextMenuEvent *event) {
   QMenu context(this);
 
-  m_cursor_pos = event->pos(); //in widget coordinates
-  
-  if( count() > 0 )
-  {
-    if( tabBar()->tabAt(m_cursor_pos) >= 0 )
-    {
+  m_cursor_pos = event->pos(); // in widget coordinates
+
+  if (count() > 0) {
+    if (tabBar()->tabAt(m_cursor_pos) >= 0) {
       QAction *close = new QAction(tr("&Close Tab"), this);
       connect(close, SIGNAL(triggered()), this, SLOT(closeClickedTab()));
       context.addAction(close);
@@ -657,19 +593,17 @@ void MultiTabScriptInterpreter::contextMenuEvent(QContextMenuEvent *event)
   connect(newtab, SIGNAL(triggered()), this, SLOT(newTab()));
   context.addAction(newtab);
 
-
   context.exec(QCursor::pos());
 }
 
 /**
- * A custom event handler, which in this case monitors for ScriptChangeEvent signals
+ * A custom event handler, which in this case monitors for ScriptChangeEvent
+ * signals
  * @param event :: The custome event
  */
-void MultiTabScriptInterpreter::customEvent(QEvent *event)
-{
-  if( !isExecuting() && event->type() == SCRIPTING_CHANGE_EVENT )
-  {
-    ScriptingChangeEvent *sce = static_cast<ScriptingChangeEvent*>(event);
+void MultiTabScriptInterpreter::customEvent(QEvent *event) {
+  if (!isExecuting() && event->type() == SCRIPTING_CHANGE_EVENT) {
+    ScriptingChangeEvent *sce = static_cast<ScriptingChangeEvent *>(event);
     // This handles reference counting of the scripting environment
     Scripted::scriptingChangeEvent(sce);
   }
@@ -680,37 +614,32 @@ void MultiTabScriptInterpreter::customEvent(QEvent *event)
  * @param newtab :: If true, a new tab will be created
  * @param filename :: An optional file name
  */
-void MultiTabScriptInterpreter::open(bool newtab, const QString & filename)
-{
+void MultiTabScriptInterpreter::open(bool newtab, const QString &filename) {
   QString fileToOpen = filename;
-  if( fileToOpen.isEmpty() )
-  {
+  if (fileToOpen.isEmpty()) {
     QString filter = scriptingEnv()->fileFilter();
     filter += tr("Text") + " (*.txt *.TXT);;";
-    filter += tr("All Files")+" (*)";
-    fileToOpen = QFileDialog::getOpenFileName(this, tr("MantidPlot - Open a script from a file"),
-        m_last_dir, filter);
-    if( fileToOpen.isEmpty() )
-    {
+    filter += tr("All Files") + " (*)";
+    fileToOpen = QFileDialog::getOpenFileName(
+        this, tr("MantidPlot - Open a script from a file"), m_last_dir, filter);
+    if (fileToOpen.isEmpty()) {
       return;
     }
-  }
-  else
-  {
+  } else {
     QFileInfo details(fileToOpen);
     fileToOpen = details.absoluteFilePath();
   }
 
-  //Save last directory
+  // Save last directory
   m_last_dir = QFileInfo(fileToOpen).absolutePath();
 
   int index(-1);
-  if( !newtab ) index = closeCurrentTab();
+  if (!newtab)
+    index = closeCurrentTab();
   newTab(index, fileToOpen);
 
-  //update the recent scripts menu 
+  // update the recent scripts menu
   updateRecentScriptList(fileToOpen);
-
 }
 
 /**
@@ -718,8 +647,8 @@ void MultiTabScriptInterpreter::open(bool newtab, const QString & filename)
  * @param widget A pointer to the widget on the tab
  * @param filename The filename on the tab
  */
-void MultiTabScriptInterpreter::setTabTitle(QWidget *widget, const QString & filename)
-{
+void MultiTabScriptInterpreter::setTabTitle(QWidget *widget,
+                                            const QString &filename) {
   setTabLabel(widget, createTabTitle(filename));
   setTabToolTip(widget, filename);
 }
@@ -730,15 +659,12 @@ void MultiTabScriptInterpreter::setTabTitle(QWidget *widget, const QString & fil
  * @param filename The filename of the script.
  * @return A string to use as the tab title
  */
-QString MultiTabScriptInterpreter::createTabTitle(const QString & filename) const
-{
+QString
+MultiTabScriptInterpreter::createTabTitle(const QString &filename) const {
   QString title;
-  if( filename.isEmpty() )
-  {
+  if (filename.isEmpty()) {
     title = "New script";
-  }
-  else
-  {
+  } else {
     title = QFileInfo(filename).fileName();
   }
   return title;
@@ -747,9 +673,8 @@ QString MultiTabScriptInterpreter::createTabTitle(const QString & filename) cons
 /**
  * Close a given tab
  * @param index :: The tab index
- */ 
-void MultiTabScriptInterpreter::closeTabAtIndex(int index)
-{
+ */
+void MultiTabScriptInterpreter::closeTabAtIndex(int index) {
   ScriptFileInterpreter *interpreter = interpreterAt(index);
   interpreter->prepareToClose();
   emit tabClosing(index);
@@ -757,48 +682,44 @@ void MultiTabScriptInterpreter::closeTabAtIndex(int index)
   emit tabClosed(index);
   const int nTabs = count();
   emit tabCountChanged(nTabs);
-  if(nTabs == 0) emit lastTabClosed();
+  if (nTabs == 0)
+    emit lastTabClosed();
 }
 
-
 /**
  * Close a tab at a given position
  * @param pos :: The tab at the given position
- */ 
-void MultiTabScriptInterpreter::closeTabAtPosition(const QPoint & pos)
-{
+ */
+void MultiTabScriptInterpreter::closeTabAtPosition(const QPoint &pos) {
   int index = tabBar()->tabAt(pos);
-  //Index is checked in closeTab
+  // Index is checked in closeTab
   closeTabAtIndex(index);
 }
 
-/** 
+/**
  * Keeps the recent script list up to date
  */
-void MultiTabScriptInterpreter::updateRecentScriptList(const QString & filename)
-{
+void MultiTabScriptInterpreter::updateRecentScriptList(
+    const QString &filename) {
   m_recentScriptList.remove(filename);
   m_recentScriptList.push_front(filename);
-  if( m_recentScriptList.count() > MaxRecentScripts )
-  {
+  if (m_recentScriptList.count() > MaxRecentScripts) {
     m_recentScriptList.pop_back();
   }
 }
 
-/** 
+/**
 * This method returns the recent scripts list
 * @returns a list containing the name of the recent scripts.
 */
-QStringList MultiTabScriptInterpreter::recentScripts() 
-{
+QStringList MultiTabScriptInterpreter::recentScripts() {
   return m_recentScriptList;
 }
 
-/** 
+/**
  * sets the recent scripts list
  * @param rslist :: list containing the name of the recent scripts.
  */
-void MultiTabScriptInterpreter::setRecentScripts(const QStringList& rslist)
-{
+void MultiTabScriptInterpreter::setRecentScripts(const QStringList &rslist) {
   m_recentScriptList = rslist;
 }
diff --git a/Code/Mantid/MantidPlot/src/MultiTabScriptInterpreter.h b/Code/Mantid/MantidPlot/src/MultiTabScriptInterpreter.h
index 7b2f1cf58f9ae4d6dd541570a2505ee63011f8fe..504aa07ac46d173fa93e2f6f2285d71e6bcc619d 100644
--- a/Code/Mantid/MantidPlot/src/MultiTabScriptInterpreter.h
+++ b/Code/Mantid/MantidPlot/src/MultiTabScriptInterpreter.h
@@ -26,15 +26,16 @@ class QStringList;
 
 class ScriptingWindow;
 
-/** 
+/**
     This class manages ScriptEditor objects and displays them in a series
     of tabs. It is also the single point of entry for executing scripts
     with in the current ScriptingEnv
-    
+
     @author Martyn Gigg, Tessella Support Services plc
     @date 19/08/2009
 
-    Copyright &copy; 2009 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge National Laboratory & European Spallation Source
+    Copyright &copy; 2009 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge
+   National Laboratory & European Spallation Source
 
     This file is part of Mantid.
 
@@ -52,22 +53,21 @@ class ScriptingWindow;
     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>    
+    Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class MultiTabScriptInterpreter : public QTabWidget, Scripted
-{
+class MultiTabScriptInterpreter : public QTabWidget, Scripted {
   Q_OBJECT
 
 public:
   /// Constructor
   MultiTabScriptInterpreter(ScriptingEnv *env, QWidget *parent);
-  ///Destructor
+  /// Destructor
   ~MultiTabScriptInterpreter();
 
   /// Current interpreter
-  ScriptFileInterpreter * currentInterpreter();
+  ScriptFileInterpreter *currentInterpreter();
   /// Interpreter at given index
-  ScriptFileInterpreter * interpreterAt(int index);
+  ScriptFileInterpreter *interpreterAt(int index);
 
   /// Is a script running in the environment
   bool isExecuting();
@@ -75,15 +75,17 @@ public:
   /// Returns the global zoom level
   int globalZoomLevel() const { return m_globalZoomLevel; }
 
- /// this method appends the file names of scripts
- ///in different tabs to a string and returns 
+  /// this method appends the file names of scripts
+  /// in different tabs to a string and returns
   QString saveToString();
-  ///this method returns a list containing  recent scripts
+  /// Saves Filenames associated with each tab to a QStringList
+  QStringList fileNamesToQStringList();
+  /// this method returns a list containing  recent scripts
   QStringList recentScripts();
   /// update the Recent Scripts menu items
-  void updateRecentScriptList(const QString & filename);
-  ///set the recent script list
-  void setRecentScripts(const QStringList & scriptList);
+  void updateRecentScriptList(const QString &filename);
+  /// set the recent script list
+  void setRecentScripts(const QStringList &scriptList);
 
 signals:
   /// Signal that a tab has been created
@@ -104,12 +106,13 @@ signals:
   void executionStateChanged(bool state);
 
 public slots:
-  /// Create a new tab for script editing with the text within the file imported and insert it at the index
-  void newTab(int index = -1, const QString & filename = "");
+  /// Create a new tab for script editing with the text within the file imported
+  /// and insert it at the index
+  void newTab(int index = -1, const QString &filename = "");
   /// Open a file in the current tab
-  void openInCurrentTab(const QString & filename = QString());
+  void openInCurrentTab(const QString &filename = QString());
   /// Open a file in a new tab
-  void openInNewTab(const QString & filename = QString());
+  void openInNewTab(const QString &filename = QString());
   /// open recent scripts
   void openRecentScript(int index);
   /// Save current file
@@ -147,7 +150,7 @@ public slots:
   //@{
   /// Execute all using the given mode
   void executeAll(const Script::ExecutionMode mode);
-  ///Execute selection using the given mode
+  /// Execute selection using the given mode
   void executeSelection(const Script::ExecutionMode mode);
   /// Evaluate
   void evaluate();
@@ -202,24 +205,26 @@ private:
   void contextMenuEvent(QContextMenuEvent *event);
   /// A custom defined event handler
   void customEvent(QEvent *event);
-  ///Open a script
-  void open(bool newtab, const QString & filename = QString());
+  /// Open a script
+  void open(bool newtab, const QString &filename = QString());
   /// Sets the tab title & tooltip from the filename
-  void setTabTitle(QWidget *widget, const QString & filename);
+  void setTabTitle(QWidget *widget, const QString &filename);
   /// Returns the tab title for the given filename
-  QString createTabTitle(const QString & filename) const;
-  ///Close a tab with a given index
+  QString createTabTitle(const QString &filename) const;
+  /// Close a tab with a given index
   void closeTabAtIndex(int index);
-  ///Close a tab at a given position
-  void closeTabAtPosition(const QPoint & pos);
+  /// Close a tab at a given position
+  void closeTabAtPosition(const QPoint &pos);
 
- private:
+private:
   friend class ScriptingWindow;
 
   /// The last directory visited with a file dialog
   QString m_last_dir;
-  // The cursor position within the tab bar when the right-mouse button was last clicked
-  // I need this to ensure that the position of a call to tabBar()->tabAt() is accurate
+  // The cursor position within the tab bar when the right-mouse button was last
+  // clicked
+  // I need this to ensure that the position of a call to tabBar()->tabAt() is
+  // accurate
   // as Qt doesn't provide an action signal parameterised on a position
   QPoint m_cursor_pos;
   /// Current progress report state
diff --git a/Code/Mantid/MantidPlot/src/PrecompiledHeader.h b/Code/Mantid/MantidPlot/src/PrecompiledHeader.h
index 8e53086640cf989be00764a4243821e16b76b46a..0dbf2bd8bdbe5366bbe67b193afda65342f6b073 100644
--- a/Code/Mantid/MantidPlot/src/PrecompiledHeader.h
+++ b/Code/Mantid/MantidPlot/src/PrecompiledHeader.h
@@ -4,8 +4,8 @@
 //Mantid
 #include "MantidKernel/Exception.h"
 #include "MantidAPI/IAlgorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidAPI/AnalysisDataService.h"
 
 //STL 
diff --git a/Code/Mantid/MantidPlot/src/ScriptOutputDisplay.cpp b/Code/Mantid/MantidPlot/src/ScriptOutputDisplay.cpp
index f02b5627d0caffb546a2f2317f13e3affb810e89..45822d5d373eae58a31367bf8ae1fdb27974fc41 100644
--- a/Code/Mantid/MantidPlot/src/ScriptOutputDisplay.cpp
+++ b/Code/Mantid/MantidPlot/src/ScriptOutputDisplay.cpp
@@ -8,9 +8,6 @@
 #include <QFileDialog>
 #include <QPrinter>
 #include <QPrintDialog>
-#include <QMessageBox>
-#include <QTextStream>
-#include <QApplication>
 
 /**
  * Constructor
@@ -21,8 +18,15 @@
 ScriptOutputDisplay::ScriptOutputDisplay(QWidget * parent) :
   QTextEdit(parent), m_copy(NULL), m_clear(NULL), m_save(NULL)
 {
-  setReadOnly(true);
-  setLineWrapMode(QTextEdit::FixedColumnWidth);
+  //the control is readonly, but if you set it read only then ctrl+c for copying does not work
+  //this approach allows ctrl+c and disables user editing through the use of the KeyPress handler
+  //and disabling drag and drop
+  //also the mouseMoveEventHandler prevents dragging out of the control affecting the text.
+  setReadOnly(false);
+  this->setAcceptDrops(false);
+  
+
+  setLineWrapMode(QTextEdit::WidgetWidth);
   setLineWrapColumnOrWidth(105);
   setAutoFormatting(QTextEdit::AutoNone);
   // Change to fix width font so that table formatting isn't screwed up
@@ -35,6 +39,17 @@ ScriptOutputDisplay::ScriptOutputDisplay(QWidget * parent) :
   initActions();
 }
 
+/** Mouse move event handler - overridden to prevent dragging out of the control affecting the text
+ * it does this by temporarily setting the control to read only while the base event handler operates
+ * @param e the mouse move event
+ */
+void ScriptOutputDisplay::mouseMoveEvent(QMouseEvent * e)
+  {
+    this->setReadOnly(true);
+    QTextEdit::mouseMoveEvent(e);
+    this->setReadOnly(false);
+  }
+
 /**
  * Is there anything here
  */
@@ -52,6 +67,22 @@ void ScriptOutputDisplay::populateEditMenu(QMenu &editMenu)
   editMenu.addAction(m_clear);
 }
 
+
+
+/** 
+ * Capture key presses. 
+ * @param event A pointer to the QKeyPressEvent object
+ */
+void ScriptOutputDisplay::keyPressEvent(QKeyEvent* event)
+{
+  if ((event->key() == Qt::Key_C) && (event->modifiers() == Qt::KeyboardModifier::ControlModifier))
+  {
+    this->copy();
+  }
+  //accept all key presses to prevent keyboard interaction
+  event->accept();
+}
+
 /**
  *  Display an output message that is not an error
  *  @param msg :: The string message
diff --git a/Code/Mantid/MantidPlot/src/ScriptOutputDisplay.h b/Code/Mantid/MantidPlot/src/ScriptOutputDisplay.h
index 52941fcd8415fc754103d407e32b4ebdb7516057..9afaefe92ec4e4b3f9e19fc778100b092691d2b0 100644
--- a/Code/Mantid/MantidPlot/src/ScriptOutputDisplay.h
+++ b/Code/Mantid/MantidPlot/src/ScriptOutputDisplay.h
@@ -20,6 +20,10 @@ public:
 
   /// Add actions applicable to an edit menu
   void populateEditMenu(QMenu &editMenu);
+  ///Capture key presses
+  virtual void keyPressEvent(QKeyEvent* event);
+  //squash dragging ability
+  void mouseMoveEvent(QMouseEvent * e);
 
 public slots:
   /// Print the text within the window
diff --git a/Code/Mantid/MantidPlot/src/ScriptingWindow.cpp b/Code/Mantid/MantidPlot/src/ScriptingWindow.cpp
index 735247e3250fbdebd33e053e3cc613f86f7e665e..90c4d5a4943d4906dbc121917aad8e77e8b213be 100755
--- a/Code/Mantid/MantidPlot/src/ScriptingWindow.cpp
+++ b/Code/Mantid/MantidPlot/src/ScriptingWindow.cpp
@@ -16,7 +16,7 @@
 #include "MantidQtAPI/HelpWindow.h"
 #include "MantidQtMantidWidgets/ScriptEditor.h"
 
-//Qt
+// Qt
 #include <QTextEdit>
 #include <QMenuBar>
 #include <QMenu>
@@ -32,10 +32,9 @@
 #include <QList>
 #include <QUrl>
 
-namespace
-{
-  /// static logger
-  Mantid::Kernel::Logger g_log("ScriptingWindow");
+namespace {
+/// static logger
+Mantid::Kernel::Logger g_log("ScriptingWindow");
 }
 
 //-------------------------------------------
@@ -47,9 +46,9 @@ namespace
  * @param parent :: The parent widget
  * @param flags :: Window flags passed to the base class
  */
-ScriptingWindow::ScriptingWindow(ScriptingEnv *env, bool capturePrint, QWidget *parent, Qt::WindowFlags flags) :
-  QMainWindow(parent, flags), m_acceptClose(false)
-{
+ScriptingWindow::ScriptingWindow(ScriptingEnv *env, bool capturePrint,
+                                 QWidget *parent, Qt::WindowFlags flags)
+    : QMainWindow(parent, flags), m_acceptClose(false) {
   Q_UNUSED(capturePrint);
   setObjectName("MantidScriptWindow");
   setAcceptDrops(true);
@@ -65,90 +64,82 @@ ScriptingWindow::ScriptingWindow(ScriptingEnv *env, bool capturePrint, QWidget *
 
   setWindowIcon(QIcon(":/MantidPlot_Icon_32offset.png"));
   setWindowTitle("MantidPlot: " + env->languageName() + " Window");
-
-  // Start with a single script
-  m_manager->newTab();
 }
 
 /**
  * Destructor
  */
-ScriptingWindow::~ScriptingWindow()
-{
-  delete m_manager;
-}
+ScriptingWindow::~ScriptingWindow() { delete m_manager; }
 
 /**
  * Is a script executing
  * @returns A flag indicating the current state
  */
-bool ScriptingWindow::isExecuting() const
-{
-  return m_manager->isExecuting();
-}
+bool ScriptingWindow::isExecuting() const { return m_manager->isExecuting(); }
 
 /**
  * Save the settings on the window
  */
-void ScriptingWindow::saveSettings()
-{
+void ScriptingWindow::saveSettings() {
   QSettings settings;
   settings.beginGroup("/ScriptWindow");
   settings.setValue("/AlwaysOnTop", m_alwaysOnTop->isChecked());
   settings.setValue("/ProgressArrow", m_toggleProgress->isChecked());
   settings.setValue("/LastDirectoryVisited", m_manager->m_last_dir);
-  settings.setValue("/RecentScripts",m_manager->recentScripts());
-  settings.setValue("/ZoomLevel",m_manager->globalZoomLevel());
+  settings.setValue("/RecentScripts", m_manager->recentScripts());
+  settings.setValue("/ZoomLevel", m_manager->globalZoomLevel());
   settings.setValue("/ShowWhitespace", m_toggleWhitespace->isChecked());
   settings.setValue("/ReplaceTabs", m_manager->m_replaceTabs);
   settings.setValue("/TabWhitespaceCount", m_manager->m_tabWhitespaceCount);
   settings.setValue("/ScriptFontFamily", m_manager->m_fontFamily);
   settings.setValue("/CodeFolding", m_toggleFolding->isChecked());
-
+  settings.setValue("/PreviousFiles", m_manager->fileNamesToQStringList());
   settings.endGroup();
 }
 
 /**
  * Read the settings on the window
  */
-void ScriptingWindow::readSettings()
-{
+void ScriptingWindow::readSettings() {
   QSettings settings;
   settings.beginGroup("/ScriptWindow");
   QString lastdir = settings.value("LastDirectoryVisited", "").toString();
-  // If nothing, set the last directory to the Mantid scripts directory (if present)
-  if( lastdir.isEmpty() )
-  {
-    lastdir = QString::fromStdString(Mantid::Kernel::ConfigService::Instance().getString("pythonscripts.directory"));
+  // If nothing, set the last directory to the Mantid scripts directory (if
+  // present)
+  if (lastdir.isEmpty()) {
+    lastdir = QString::fromStdString(
+        Mantid::Kernel::ConfigService::Instance().getString(
+            "pythonscripts.directory"));
   }
   m_manager->m_last_dir = lastdir;
   m_toggleProgress->setChecked(settings.value("ProgressArrow", true).toBool());
   m_manager->setRecentScripts(settings.value("/RecentScripts").toStringList());
-  m_manager->m_globalZoomLevel = settings.value("ZoomLevel",0).toInt();
+  m_manager->m_globalZoomLevel = settings.value("ZoomLevel", 0).toInt();
   m_toggleFolding->setChecked(settings.value("CodeFolding", false).toBool());
-  m_toggleWhitespace->setChecked(settings.value("ShowWhitespace", false).toBool());
+  m_toggleWhitespace->setChecked(
+      settings.value("ShowWhitespace", false).toBool());
 
   m_manager->m_showWhitespace = m_toggleWhitespace->isChecked();
-  m_manager->m_replaceTabs = settings.value("ReplaceTabs", true ).toBool();
-  m_manager->m_tabWhitespaceCount = settings.value("TabWhitespaceCount", 4).toInt();
-  m_manager->m_fontFamily = settings.value("ScriptFontFamily","").toString();
+  m_manager->m_replaceTabs = settings.value("ReplaceTabs", true).toBool();
+  m_manager->m_tabWhitespaceCount =
+      settings.value("TabWhitespaceCount", 4).toInt();
+  m_manager->m_fontFamily = settings.value("ScriptFontFamily", "").toString();      
+  openPreviousTabs(settings.value("/PreviousFiles", "").toStringList());
 
   settings.endGroup();
-
 }
 
 /**
  * Override the closeEvent
  * @param event :: A pointer to the event object
  */
-void ScriptingWindow::closeEvent(QCloseEvent *event)
-{
+void ScriptingWindow::closeEvent(QCloseEvent *event) {
   // We ideally don't want a close button but are force by some window managers.
-  // Therefore if someone clicks close and MantidPlot is not quitting then we will just hide
-  if( !m_acceptClose )
-  {
+  // Therefore if someone clicks close and MantidPlot is not quitting then we
+  // will just hide
+  if (!m_acceptClose) {
     emit hideMe();
-    //this->hide();
+    // this->hide();
     return;
   }
 
@@ -162,23 +153,21 @@ void ScriptingWindow::closeEvent(QCloseEvent *event)
  * Override the showEvent function
  * @param event :: A pointer to the event object
  */
-void ScriptingWindow::showEvent(QShowEvent *event)
-{
-  if( m_manager->count() == 0 )
-  {
+void ScriptingWindow::showEvent(QShowEvent *event) {
+  if (m_manager->count() == 0) {
     m_manager->newTab();
   }
   event->accept();
 }
 
 /**
- * Open a script directly. This is here for backwards compatability with the old ScriptWindow
+ * Open a script directly. This is here for backwards compatability with the old
+ * ScriptWindow
  * class
  * @param filename :: The file name
  * @param newtab :: Do we want a new tab
  */
-void ScriptingWindow::open(const QString & filename, bool newtab)
-{
+void ScriptingWindow::open(const QString &filename, bool newtab) {
   m_manager->open(newtab, filename);
 }
 
@@ -187,8 +176,7 @@ void ScriptingWindow::open(const QString & filename, bool newtab)
  * running a script loaded with open
  * @param mode :: The execution type
  * */
-void ScriptingWindow::executeCurrentTab(const Script::ExecutionMode mode)
-{
+void ScriptingWindow::executeCurrentTab(const Script::ExecutionMode mode) {
   m_manager->executeAll(mode);
 }
 
@@ -196,16 +184,14 @@ void ScriptingWindow::executeCurrentTab(const Script::ExecutionMode mode)
 // Private slot member functions
 //-------------------------------------------
 /// Populate file menu
-void ScriptingWindow::populateFileMenu()
-{
+void ScriptingWindow::populateFileMenu() {
   m_fileMenu->clear();
   const bool scriptsOpen(m_manager->count() > 0);
 
   m_fileMenu->addAction(m_newTab);
   m_fileMenu->addAction(m_openInNewTab);
 
-  if(scriptsOpen)
-  {
+  if (scriptsOpen) {
     m_fileMenu->addAction(m_openInCurTab);
     m_fileMenu->insertSeparator();
     m_fileMenu->addAction(m_save);
@@ -217,28 +203,24 @@ void ScriptingWindow::populateFileMenu()
   m_fileMenu->addMenu(m_recentScripts);
   m_recentScripts->setEnabled(m_manager->recentScripts().count() > 0);
 
-  if(scriptsOpen)
-  {
+  if (scriptsOpen) {
     m_fileMenu->insertSeparator();
     m_fileMenu->addAction(m_closeTab);
   }
 }
 
 /// Ensure the list is up to date
-void ScriptingWindow::populateRecentScriptsMenu()
-{
+void ScriptingWindow::populateRecentScriptsMenu() {
   m_recentScripts->clear();
   QStringList recentScripts = m_manager->recentScripts();
   QStringListIterator iter(recentScripts);
-  while(iter.hasNext())
-  {
+  while (iter.hasNext()) {
     m_recentScripts->addAction(iter.next());
   }
 }
 
 /// Populate edit menu
-void ScriptingWindow::populateEditMenu()
-{
+void ScriptingWindow::populateEditMenu() {
   m_editMenu->clear();
   m_editMenu->addAction(m_undo);
   m_editMenu->addAction(m_redo);
@@ -259,8 +241,7 @@ void ScriptingWindow::populateEditMenu()
 }
 
 /// Populate execute menu
-void ScriptingWindow::populateExecMenu()
-{
+void ScriptingWindow::populateExecMenu() {
   m_runMenu->clear();
   m_runMenu->addAction(m_execSelect);
   m_runMenu->addAction(m_execAll);
@@ -278,16 +259,14 @@ void ScriptingWindow::populateExecMenu()
 }
 
 /// Populate window menu
-void ScriptingWindow::populateWindowMenu()
-{
+void ScriptingWindow::populateWindowMenu() {
   m_windowMenu->clear();
   const bool scriptsOpen(m_manager->count() > 0);
 
   m_windowMenu->addAction(m_alwaysOnTop);
   m_windowMenu->addAction(m_hide);
 
-  if(scriptsOpen)
-  {
+  if (scriptsOpen) {
     m_windowMenu->insertSeparator();
     m_windowMenu->addAction(m_zoomIn);
     m_windowMenu->addAction(m_zoomOut);
@@ -305,8 +284,7 @@ void ScriptingWindow::populateWindowMenu()
 }
 
 /// Populate help menu
-void ScriptingWindow::populateHelpMenu()
-{
+void ScriptingWindow::populateHelpMenu() {
   m_helpMenu->clear();
   m_helpMenu->addAction(m_showHelp);
   m_helpMenu->addAction(m_showPythonHelp);
@@ -314,16 +292,15 @@ void ScriptingWindow::populateHelpMenu()
 
 /**
  */
-void ScriptingWindow::updateWindowFlags()
-{
+void ScriptingWindow::updateWindowFlags() {
   Qt::WindowFlags flags = Qt::Window;
-  if( m_alwaysOnTop->isChecked() )
-  {
+  if (m_alwaysOnTop->isChecked()) {
     flags |= Qt::WindowStaysOnTopHint;
   }
   setWindowFlags(flags);
-  //This is necessary due to the setWindowFlags function reparenting the window and causing is
-  //to hide itself
+  // This is necessary due to the setWindowFlags function reparenting the window
+  // and causing is
+  // to hide itself
   show();
 }
 
@@ -332,8 +309,7 @@ void ScriptingWindow::updateWindowFlags()
  *  the number of tabs changes
  *  @param ntabs :: The number of tabs now open
  */
-void ScriptingWindow::setMenuStates(int ntabs)
-{
+void ScriptingWindow::setMenuStates(int ntabs) {
   const bool tabsOpen(ntabs > 0);
   m_editMenu->setEnabled(tabsOpen);
   m_runMenu->setEnabled(tabsOpen);
@@ -343,8 +319,7 @@ void ScriptingWindow::setMenuStates(int ntabs)
  * Set the state of the execution actions/menu depending on the flag
  * @param state :: If the true the items are enabled, otherwise the are disabled
  */
-void ScriptingWindow::setEditActionsDisabled(bool state)
-{
+void ScriptingWindow::setEditActionsDisabled(bool state) {
   m_editMenu->setDisabled(state);
 }
 
@@ -352,8 +327,7 @@ void ScriptingWindow::setEditActionsDisabled(bool state)
  * Set the state of the execution actions/menu depending on the flag
  * @param state :: If the true the items are enabled, otherwise the are disabled
  */
-void ScriptingWindow::setExecutionActionsDisabled(bool state)
-{
+void ScriptingWindow::setExecutionActionsDisabled(bool state) {
   m_execSelect->setDisabled(state);
   m_execAll->setDisabled(state);
   m_execModeMenu->setDisabled(state);
@@ -364,9 +338,8 @@ void ScriptingWindow::setExecutionActionsDisabled(bool state)
  * Maps the QAction to an index in the recent scripts list
  * @param item A pointer to the action that triggered the slot
  */
-void ScriptingWindow::openRecentScript(QAction* item)
-{
-  const QList<QAction*> actions = m_recentScripts->actions();
+void ScriptingWindow::openRecentScript(QAction *item) {
+  const QList<QAction *> actions = m_recentScripts->actions();
   const int index = actions.indexOf(item);
   assert(index >= 0);
   m_manager->openRecentScript(index);
@@ -375,58 +348,52 @@ void ScriptingWindow::openRecentScript(QAction* item)
 /**
  * Ask the manager to execute all code based on the currently selected mode
  */
-void ScriptingWindow::executeAll()
-{
+void ScriptingWindow::executeAll() {
   m_manager->executeAll(this->getExecutionMode());
 }
 
 /**
- * Ask the manager to execute the current selection based on the currently selected mode
+ * Ask the manager to execute the current selection based on the currently
+ * selected mode
  */
-void ScriptingWindow::executeSelection()
-{
+void ScriptingWindow::executeSelection() {
   m_manager->executeSelection(this->getExecutionMode());
 }
 
 /**
  */
-void ScriptingWindow::clearScriptVariables()
-{
+void ScriptingWindow::clearScriptVariables() {
   m_manager->clearScriptVariables();
 }
 
 /**
  * Opens the Qt help windows for the scripting window.
  */
-void ScriptingWindow::showHelp()
-{
-  MantidQt::API::HelpWindow::showCustomInterface(NULL, QString("ScriptingWindow"));
+void ScriptingWindow::showHelp() {
+  MantidQt::API::HelpWindow::showCustomInterface(NULL,
+                                                 QString("ScriptingWindow"));
 }
 
-
 /**
  * Opens the Qt help windows for the Python API.
  */
-void ScriptingWindow::showPythonHelp()
-{
-  MantidQt::API::HelpWindow::showPage(NULL, QString("qthelp://org.mantidproject/doc/api/python/index.html"));
+void ScriptingWindow::showPythonHelp() {
+  MantidQt::API::HelpWindow::showPage(
+      NULL, QString("qthelp://org.mantidproject/doc/api/python/index.html"));
 }
 
 /**
  * calls MultiTabScriptInterpreter saveToString and
  *  saves the currently opened script file names to a string
  */
-QString ScriptingWindow::saveToString()
-{
-  return m_manager->saveToString();
-}
+QString ScriptingWindow::saveToString() { return m_manager->saveToString(); }
 
 /**
  * Saves scripts file names to a string
- * @param value If true a future close event will be accepted otherwise it will be ignored
+ * @param value If true a future close event will be accepted otherwise it will
+ * be ignored
  */
-void ScriptingWindow::acceptCloseEvent(const bool value)
-{
+void ScriptingWindow::acceptCloseEvent(const bool value) {
   m_acceptClose = value;
 }
 
@@ -437,33 +404,37 @@ void ScriptingWindow::acceptCloseEvent(const bool value)
 /**
  * Initialise the menus
  */
-void ScriptingWindow::initMenus()
-{
+void ScriptingWindow::initMenus() {
   initActions();
 
   m_fileMenu = menuBar()->addMenu(tr("&File"));
 #ifdef SCRIPTING_DIALOG
   m_scripting_lang = new QAction(tr("Scripting &language"), this);
-  connect(m_scripting_lang, SIGNAL(triggered()), this, SIGNAL(chooseScriptingLanguage()));
+  connect(m_scripting_lang, SIGNAL(triggered()), this,
+          SIGNAL(chooseScriptingLanguage()));
 #endif
   connect(m_fileMenu, SIGNAL(aboutToShow()), this, SLOT(populateFileMenu()));
 
   m_editMenu = menuBar()->addMenu(tr("&Edit"));
   connect(m_editMenu, SIGNAL(aboutToShow()), this, SLOT(populateEditMenu()));
-  connect(m_manager, SIGNAL(executionStateChanged(bool)), this, SLOT(setEditActionsDisabled(bool)));
+  connect(m_manager, SIGNAL(executionStateChanged(bool)), this,
+          SLOT(setEditActionsDisabled(bool)));
 
   m_runMenu = menuBar()->addMenu(tr("E&xecute"));
   connect(m_runMenu, SIGNAL(aboutToShow()), this, SLOT(populateExecMenu()));
-  connect(m_manager, SIGNAL(executionStateChanged(bool)), this, SLOT(setExecutionActionsDisabled(bool)));
+  connect(m_manager, SIGNAL(executionStateChanged(bool)), this,
+          SLOT(setExecutionActionsDisabled(bool)));
   m_execModeMenu = new QMenu("Mode", this);
 
   m_windowMenu = menuBar()->addMenu(tr("&Window"));
-  connect(m_windowMenu, SIGNAL(aboutToShow()), this, SLOT(populateWindowMenu()));
+  connect(m_windowMenu, SIGNAL(aboutToShow()), this,
+          SLOT(populateWindowMenu()));
 
   m_helpMenu = menuBar()->addMenu(tr("&Help"));
   connect(m_windowMenu, SIGNAL(aboutToShow()), this, SLOT(populateHelpMenu()));
 
-  connect(m_manager, SIGNAL(tabCountChanged(int)), this, SLOT(setMenuStates(int)));
+  connect(m_manager, SIGNAL(tabCountChanged(int)), this,
+          SLOT(setMenuStates(int)));
 
   // The menu items must be populated for the shortcuts to work
   populateFileMenu();
@@ -471,19 +442,22 @@ void ScriptingWindow::initMenus()
   populateExecMenu();
   populateWindowMenu();
   populateHelpMenu();
-  connect(m_manager, SIGNAL(tabCountChanged(int)), this, SLOT(populateFileMenu()));
-  connect(m_manager, SIGNAL(tabCountChanged(int)), this, SLOT(populateEditMenu()));
-  connect(m_manager, SIGNAL(tabCountChanged(int)), this, SLOT(populateExecMenu()));
-  connect(m_manager, SIGNAL(tabCountChanged(int)), this, SLOT(populateWindowMenu()));
-  connect(m_manager, SIGNAL(tabCountChanged(int)), this, SLOT(populateHelpMenu()));
+  connect(m_manager, SIGNAL(tabCountChanged(int)), this,
+          SLOT(populateFileMenu()));
+  connect(m_manager, SIGNAL(tabCountChanged(int)), this,
+          SLOT(populateEditMenu()));
+  connect(m_manager, SIGNAL(tabCountChanged(int)), this,
+          SLOT(populateExecMenu()));
+  connect(m_manager, SIGNAL(tabCountChanged(int)), this,
+          SLOT(populateWindowMenu()));
+  connect(m_manager, SIGNAL(tabCountChanged(int)), this,
+          SLOT(populateHelpMenu()));
 }
 
-
 /**
  *  Create all actions
  */
-void ScriptingWindow::initActions()
-{
+void ScriptingWindow::initActions() {
   initFileMenuActions();
   initEditMenuActions();
   initExecMenuActions();
@@ -494,14 +468,14 @@ void ScriptingWindow::initActions()
 /**
  * Create the file actions
  */
-void ScriptingWindow::initFileMenuActions()
-{
+void ScriptingWindow::initFileMenuActions() {
   m_newTab = new QAction(tr("&New Tab"), this);
   connect(m_newTab, SIGNAL(triggered()), m_manager, SLOT(newTab()));
   m_newTab->setShortcut(tr("Ctrl+N"));
 
   m_openInCurTab = new QAction(tr("&Open"), this);
-  connect(m_openInCurTab, SIGNAL(triggered()), m_manager, SLOT(openInCurrentTab()));
+  connect(m_openInCurTab, SIGNAL(triggered()), m_manager,
+          SLOT(openInCurrentTab()));
   m_openInCurTab->setShortcut(tr("Ctrl+O"));
 
   m_openInNewTab = new QAction(tr("&Open in New Tab"), this);
@@ -524,23 +498,26 @@ void ScriptingWindow::initFileMenuActions()
   connect(m_closeTab, SIGNAL(triggered()), m_manager, SLOT(closeCurrentTab()));
   m_closeTab->setShortcut(tr("Ctrl+W"));
 
-  m_recentScripts = new QMenu(tr("&Recent Scripts"),this);
-  connect(m_recentScripts, SIGNAL(aboutToShow()), this, SLOT(populateRecentScriptsMenu()));
-  connect(m_recentScripts, SIGNAL(triggered(QAction*)), this, SLOT(openRecentScript(QAction*)));
+  m_recentScripts = new QMenu(tr("&Recent Scripts"), this);
+  connect(m_recentScripts, SIGNAL(aboutToShow()), this,
+          SLOT(populateRecentScriptsMenu()));
+  connect(m_recentScripts, SIGNAL(triggered(QAction *)), this,
+          SLOT(openRecentScript(QAction *)));
 }
 
 /**
  * Create the edit menu action*/
-void ScriptingWindow::initEditMenuActions()
-{
+void ScriptingWindow::initEditMenuActions() {
   m_undo = new QAction(tr("&Undo"), this);
   connect(m_undo, SIGNAL(triggered()), m_manager, SLOT(undo()));
-  connect(m_manager, SIGNAL(undoAvailable(bool)), m_undo, SLOT(setEnabled(bool)));
+  connect(m_manager, SIGNAL(undoAvailable(bool)), m_undo,
+          SLOT(setEnabled(bool)));
   m_undo->setShortcut(QKeySequence::Undo);
 
   m_redo = new QAction(tr("&Redo"), this);
   connect(m_redo, SIGNAL(triggered()), m_manager, SLOT(redo()));
-  connect(m_manager, SIGNAL(redoAvailable(bool)), m_redo, SLOT(setEnabled(bool)));
+  connect(m_manager, SIGNAL(redoAvailable(bool)), m_redo,
+          SLOT(setEnabled(bool)));
   m_redo->setShortcut(QKeySequence::Redo);
 
   m_cut = new QAction(tr("C&ut"), this);
@@ -575,12 +552,10 @@ void ScriptingWindow::initEditMenuActions()
   m_find->setShortcut(QKeySequence::Find);
 }
 
-
 /**
  * Create the execute menu actions
  */
-void ScriptingWindow::initExecMenuActions()
-{
+void ScriptingWindow::initExecMenuActions() {
   m_execSelect = new QAction(tr("E&xecute Selection"), this);
   connect(m_execSelect, SIGNAL(triggered()), this, SLOT(executeSelection()));
 
@@ -591,12 +566,15 @@ void ScriptingWindow::initExecMenuActions()
   m_execAll = new QAction(tr("Execute &All"), this);
   connect(m_execAll, SIGNAL(triggered()), this, SLOT(executeAll()));
   shortcuts.clear();
-  shortcuts << Qt::CTRL + Qt::SHIFT + Qt::Key_Return << Qt::CTRL + Qt::SHIFT + Qt::Key_Enter;
+  shortcuts << Qt::CTRL + Qt::SHIFT + Qt::Key_Return
+            << Qt::CTRL + Qt::SHIFT + Qt::Key_Enter;
   m_execAll->setShortcuts(shortcuts);
 
   m_clearScriptVars = new QAction(tr("&Clear Variables"), this);
-  connect(m_clearScriptVars, SIGNAL(triggered()), this, SLOT(clearScriptVariables()));
-  m_clearScriptVars->setToolTip("Clear all variable definitions in this script");
+  connect(m_clearScriptVars, SIGNAL(triggered()), this,
+          SLOT(clearScriptVariables()));
+  m_clearScriptVars->setToolTip(
+      "Clear all variable definitions in this script");
 
   m_execParallel = new QAction("Asynchronous", this);
   m_execParallel->setCheckable(true);
@@ -612,11 +590,11 @@ void ScriptingWindow::initExecMenuActions()
 /**
  * Create the window menu actions
  */
-void ScriptingWindow::initWindowMenuActions()
-{
+void ScriptingWindow::initWindowMenuActions() {
   m_alwaysOnTop = new QAction(tr("Always on &Top"), this);
   m_alwaysOnTop->setCheckable(true);
-  connect(m_alwaysOnTop, SIGNAL(toggled(bool)), this, SLOT(updateWindowFlags()));
+  connect(m_alwaysOnTop, SIGNAL(toggled(bool)), this,
+          SLOT(updateWindowFlags()));
 
   m_hide = new QAction(tr("&Hide"), this);
 #ifdef __APPLE__
@@ -624,15 +602,18 @@ void ScriptingWindow::initWindowMenuActions()
 #else
   m_hide->setShortcut(tr("F3"));
 #endif
-  // Note that we channel the hide through the parent so that we can save the geometry state
+  // Note that we channel the hide through the parent so that we can save the
+  // geometry state
   connect(m_hide, SIGNAL(triggered()), this, SIGNAL(hideMe()));
 
   m_zoomIn = new QAction(("&Increase font size"), this);
-  // Setting two shortcuts makes it work for both the plus on the keypad and one above an =
-  // Despite the Qt docs advertising the use of QKeySequence::ZoomIn as the solution to this,
+  // Setting two shortcuts makes it work for both the plus on the keypad and one
+  // above an =
+  // Despite the Qt docs advertising the use of QKeySequence::ZoomIn as the
+  // solution to this,
   // it doesn't seem to work for me
-  m_zoomIn->setShortcut(Qt::SHIFT+Qt::CTRL+Qt::Key_Equal);
-  m_zoomIn->setShortcut(Qt::CTRL+Qt::Key_Plus);
+  m_zoomIn->setShortcut(Qt::SHIFT + Qt::CTRL + Qt::Key_Equal);
+  m_zoomIn->setShortcut(Qt::CTRL + Qt::Key_Plus);
   connect(m_zoomIn, SIGNAL(triggered()), m_manager, SLOT(zoomIn()));
   connect(m_zoomIn, SIGNAL(triggered()), m_manager, SLOT(trackZoomIn()));
 
@@ -651,28 +632,31 @@ void ScriptingWindow::initWindowMenuActions()
   // Toggle the progress arrow
   m_toggleProgress = new QAction(tr("&Progress Reporting"), this);
   m_toggleProgress->setCheckable(true);
-  connect(m_toggleProgress, SIGNAL(toggled(bool)), m_manager, SLOT(toggleProgressReporting(bool)));
+  connect(m_toggleProgress, SIGNAL(toggled(bool)), m_manager,
+          SLOT(toggleProgressReporting(bool)));
 
   // Toggle code folding
   m_toggleFolding = new QAction(tr("Code &Folding"), this);
   m_toggleFolding->setCheckable(true);
-  connect(m_toggleFolding, SIGNAL(toggled(bool)), m_manager, SLOT(toggleCodeFolding(bool)));
+  connect(m_toggleFolding, SIGNAL(toggled(bool)), m_manager,
+          SLOT(toggleCodeFolding(bool)));
 
   // Toggle the whitespace arrow
   m_toggleWhitespace = new QAction(tr("&Show Whitespace"), this);
   m_toggleWhitespace->setCheckable(true);
-  connect(m_toggleWhitespace, SIGNAL(toggled(bool)), m_manager, SLOT(toggleWhitespace(bool)));
+  connect(m_toggleWhitespace, SIGNAL(toggled(bool)), m_manager,
+          SLOT(toggleWhitespace(bool)));
 
   // Open Config Tabs dialog
   m_openConfigTabs = new QAction(tr("Configure Tabs"), this);
-  connect(m_openConfigTabs, SIGNAL(triggered()), m_manager, SLOT(openConfigTabs()));
+  connect(m_openConfigTabs, SIGNAL(triggered()), m_manager,
+          SLOT(openConfigTabs()));
 }
 
 /**
  * Create the help menu actions
  */
-void ScriptingWindow::initHelpMenuActions()
-{
+void ScriptingWindow::initHelpMenuActions() {
   // Show Qt help window
   m_showHelp = new QAction(tr("Scripting Window Help"), this);
   connect(m_showHelp, SIGNAL(triggered()), this, SLOT(showHelp()));
@@ -685,37 +669,33 @@ void ScriptingWindow::initHelpMenuActions()
 /**
  * Returns the current execution mode set in the menu
  */
-Script::ExecutionMode ScriptingWindow::getExecutionMode() const
-{
-  if(m_execParallel->isChecked()) return Script::Asynchronous;
-  else return Script::Serialised;
+Script::ExecutionMode ScriptingWindow::getExecutionMode() const {
+  if (m_execParallel->isChecked())
+    return Script::Asynchronous;
+  else
+    return Script::Serialised;
 }
 
 /**
  * Accept a custom event and in this case test if it is a ScriptingChangeEvent
  * @param event :: The custom event
  */
-void ScriptingWindow::customEvent(QEvent *event)
-{
-  if( !m_manager->isExecuting() && event->type() == SCRIPTING_CHANGE_EVENT )
-  {
-    ScriptingChangeEvent *sce = static_cast<ScriptingChangeEvent*>(event);
-    setWindowTitle("MantidPlot: " + sce->scriptingEnv()->languageName() + " Window");
+void ScriptingWindow::customEvent(QEvent *event) {
+  if (!m_manager->isExecuting() && event->type() == SCRIPTING_CHANGE_EVENT) {
+    ScriptingChangeEvent *sce = static_cast<ScriptingChangeEvent *>(event);
+    setWindowTitle("MantidPlot: " + sce->scriptingEnv()->languageName() +
+                   " Window");
   }
 }
 
-
 /**
  * Accept a drag move event and selects whether to accept the action
  * @param de :: The drag move event
  */
-void ScriptingWindow::dragMoveEvent(QDragMoveEvent *de)
-{
+void ScriptingWindow::dragMoveEvent(QDragMoveEvent *de) {
   const QMimeData *mimeData = de->mimeData();
-  if (mimeData->hasUrls())
-  {
-    if (extractPyFiles(mimeData->urls()).size() > 0)
-    {
+  if (mimeData->hasUrls()) {
+    if (extractPyFiles(mimeData->urls()).size() > 0) {
       de->accept();
     }
   }
@@ -725,13 +705,10 @@ void ScriptingWindow::dragMoveEvent(QDragMoveEvent *de)
  * Accept a drag enter event and selects whether to accept the action
  * @param de :: The drag enter event
  */
-void ScriptingWindow::dragEnterEvent(QDragEnterEvent *de)
-{
+void ScriptingWindow::dragEnterEvent(QDragEnterEvent *de) {
   const QMimeData *mimeData = de->mimeData();
-  if (mimeData->hasUrls())
-  {
-    if (extractPyFiles(mimeData->urls()).size() > 0)
-    {
+  if (mimeData->hasUrls()) {
+    if (extractPyFiles(mimeData->urls()).size() > 0) {
       de->acceptProposedAction();
     }
   }
@@ -741,36 +718,40 @@ void ScriptingWindow::dragEnterEvent(QDragEnterEvent *de)
  * Accept a drag drop event and process the data appropriately
  * @param de :: The drag drop event
  */
-void ScriptingWindow::dropEvent(QDropEvent *de)
-{
+void ScriptingWindow::dropEvent(QDropEvent *de) {
   const QMimeData *mimeData = de->mimeData();
-  if (mimeData->hasUrls())
-  {
+  if (mimeData->hasUrls()) {
     QStringList filenames = extractPyFiles(mimeData->urls());
     de->acceptProposedAction();
 
-    for (int i = 0; i < filenames.size(); ++i)
-    {
+    for (int i = 0; i < filenames.size(); ++i) {
       m_manager->openInNewTab(filenames[i]);
     }
   }
 }
 
-QStringList ScriptingWindow::extractPyFiles(const QList<QUrl>& urlList) const
-{
+QStringList ScriptingWindow::extractPyFiles(const QList<QUrl> &urlList) const {
   QStringList filenames;
-  for (int i = 0; i < urlList.size(); ++i)
-  {
+  for (int i = 0; i < urlList.size(); ++i) {
     QString fName = urlList[i].toLocalFile();
-    if (fName.size()>0)
-    {
+    if (fName.size() > 0) {
       QFileInfo fi(fName);
 
-      if (fi.suffix().upper()=="PY")
-      {
+      if (fi.suffix().upper() == "PY") {
         filenames.append(fName);
       }
     }
   }
   return filenames;
 }
+
+void ScriptingWindow::openPreviousTabs(const QStringList &tabsToOpen) {
+  const int totalFiles = tabsToOpen.size();
+  if (totalFiles == 0) {
+    m_manager->newTab();
+  } else {
+    for (int i = 0; i < totalFiles; i++) {
+      m_manager->newTab(i, tabsToOpen[i]);
+    }
+  }
+}
diff --git a/Code/Mantid/MantidPlot/src/ScriptingWindow.h b/Code/Mantid/MantidPlot/src/ScriptingWindow.h
index 1f53b0aea48725375a9f42879c385516c95aa4f3..4d1e8e3d9459ea484305bee1527699f8f4987ae0 100755
--- a/Code/Mantid/MantidPlot/src/ScriptingWindow.h
+++ b/Code/Mantid/MantidPlot/src/ScriptingWindow.h
@@ -21,19 +21,18 @@ class QCloseEvent;
 class QShowEvent;
 class QHideEvent;
 
-
 /** @class ScriptingWindow
     This class displays a seperate window for editing and executing scripts
 */
-class ScriptingWindow : public QMainWindow
-{
-  ///Qt macro
+class ScriptingWindow : public QMainWindow {
+  /// Qt macro
   Q_OBJECT
 
 public:
-  ///Constructor
-  ScriptingWindow(ScriptingEnv *env,bool capturePrint = true,QWidget *parent = 0, Qt::WindowFlags flags = 0);
-  ///Destructor
+  /// Constructor
+  ScriptingWindow(ScriptingEnv *env, bool capturePrint = true,
+                  QWidget *parent = 0, Qt::WindowFlags flags = 0);
+  /// Destructor
   ~ScriptingWindow();
   /// Override the closeEvent
   void closeEvent(QCloseEvent *event);
@@ -41,19 +40,20 @@ public:
   void showEvent(QShowEvent *event);
   /// Is a script running?
   bool isExecuting() const;
-  ///Save the current state of the script window for next time
+  /// Save the current state of the script window for next time
   void saveSettings();
   /// Read settings from store
   void readSettings();
   /// Open a script in a new tab. Primarily useful for automatically
   /// opening a script
-  void open(const QString & filename, bool newtab = true);
-  /// Executes whatever is in the current tab. Primarily useful for automatically
+  void open(const QString &filename, bool newtab = true);
+  /// Executes whatever is in the current tab. Primarily useful for
+  /// automatically
   /// running a script loaded with open
   void executeCurrentTab(const Script::ExecutionMode mode);
-  ///saves scripts file names to a string
+  /// saves scripts file names to a string
   QString saveToString();
-  ///Set whether to accept/reject close events
+  /// Set whether to accept/reject close events
   void acceptCloseEvent(const bool value);
 
 signals:
@@ -94,11 +94,11 @@ private slots:
 
   /// Finds the script corresponding to the action and
   /// asks the manager to open it
-  void openRecentScript(QAction*);
+  void openRecentScript(QAction *);
 
   /// Execute all using the current mode option
   void executeAll();
-  ///Execute selection using the current mode option
+  /// Execute selection using the current mode option
   void executeSelection();
   /// Clear out any previous variable definitions in the current script
   void clearScriptVariables();
@@ -124,15 +124,17 @@ private:
   void initWindowMenuActions();
   /// Create the help menu actions
   void initHelpMenuActions();
+  /// Opens tabs based on QStringList
+  void openPreviousTabs(const QStringList &tabsToOpen);
 
   /// Returns the current execution mode
   Script::ExecutionMode getExecutionMode() const;
 
   /// Accept a custom defined event
-  void customEvent(QEvent * event);
+  void customEvent(QEvent *event);
 
   /// Extract py files from urllist
-  QStringList extractPyFiles(const QList<QUrl>& urlList) const;
+  QStringList extractPyFiles(const QList<QUrl> &urlList) const;
 
 private:
   /// The script editors' manager
@@ -141,14 +143,14 @@ private:
   /// File menu
   QMenu *m_fileMenu;
   /// File menu actions
-  QAction *m_newTab, *m_openInCurTab, *m_openInNewTab,
-    *m_save, *m_saveAs, *m_print, *m_closeTab;
+  QAction *m_newTab, *m_openInCurTab, *m_openInNewTab, *m_save, *m_saveAs,
+      *m_print, *m_closeTab;
   QMenu *m_recentScripts;
   /// Edit menu
   QMenu *m_editMenu;
   /// Edit menu actions
   QAction *m_undo, *m_redo, *m_cut, *m_copy, *m_paste, *m_comment, *m_uncomment,
-    *m_tabsToSpaces, *m_spacesToTabs, *m_find;
+      *m_tabsToSpaces, *m_spacesToTabs, *m_find;
   /// Run menu
   QMenu *m_runMenu;
   /// Execute menu actions
@@ -163,8 +165,8 @@ private:
   QMenu *m_windowMenu;
   /// Window actions
   QAction *m_alwaysOnTop, *m_hide, *m_zoomIn, *m_zoomOut, *m_resetZoom,
-    *m_toggleProgress, *m_toggleFolding, *m_toggleWhitespace,
-    *m_openConfigTabs, *m_selectFont;
+      *m_toggleProgress, *m_toggleFolding, *m_toggleWhitespace,
+      *m_openConfigTabs, *m_selectFont;
   /// Help menu
   QMenu *m_helpMenu;
   /// Help actions
@@ -173,7 +175,6 @@ private:
   QAction *m_scripting_lang;
   /// Flag to define whether we should accept a close event
   bool m_acceptClose;
-
 };
 
-#endif //SCRIPTINGWINDOW_H_
+#endif // SCRIPTINGWINDOW_H_
diff --git a/Code/Mantid/MantidPlot/src/origin/OPJFile.cpp b/Code/Mantid/MantidPlot/src/origin/OPJFile.cpp
index e4dbfc5c34f1f0ec90adcfd95ffd27fe50a58003..4a37431010cf8227260a305495d68edbddf115b8 100644
--- a/Code/Mantid/MantidPlot/src/origin/OPJFile.cpp
+++ b/Code/Mantid/MantidPlot/src/origin/OPJFile.cpp
@@ -526,7 +526,7 @@ int OPJFile::ParseFormatOld() {
 
   int POS = int(ftell(f)-11);
   fprintf(debug,"\nHEADER SECTION\n");
-  fprintf(debug," nr_spreads = %d\n",SPREADSHEET.size());
+  fprintf(debug," nr_spreads = %zu\n",SPREADSHEET.size());
   fprintf(debug," [position @ 0x%X]\n",POS);
   fflush(debug);
 
@@ -596,7 +596,7 @@ int OPJFile::ParseFormatOld() {
   if(spread == -1)
     spread=i;
 
-  fprintf(debug,"     SPREADSHEET %d NAME : %s  (@ 0x%X) has %d columns\n",
+  fprintf(debug,"     SPREADSHEET %d NAME : %s  (@ 0x%X) has %zu columns\n",
     spread+1,name,POS + 0x12,SPREADSHEET[spread].column.size());
   fflush(debug);
 
@@ -623,7 +623,7 @@ int OPJFile::ParseFormatOld() {
   fflush(debug);
 
   /////////////// COLUMN Types ///////////////////////////////////////////
-  fprintf(debug,"     Spreadsheet has %d columns\n",SPREADSHEET[spread].column.size());
+  fprintf(debug,"     Spreadsheet has %zu columns\n",SPREADSHEET[spread].column.size());
   for (unsigned int j=0;j<SPREADSHEET[spread].column.size();j++) {
     fprintf(debug,"     reading COLUMN %d/%zd type\n",j+1,SPREADSHEET[spread].column.size());
     fflush(debug);
@@ -660,7 +660,7 @@ int OPJFile::ParseFormatOld() {
     SPREADSHEET[spread].column[j].type=type;
 
     fprintf(debug,"       COLUMN \"%s\" type = %s (@ 0x%X)\n",
-      SPREADSHEET[spread].column[j].name.c_str(),type,LAYER+ATYPE+j*COL_JUMP);
+      SPREADSHEET[spread].column[j].name.c_str(),colTypeNames[type],LAYER+ATYPE+j*COL_JUMP);
     fflush(debug);
 
     // check column name
@@ -1131,7 +1131,7 @@ int OPJFile::ParseFormatNew() {
 
   int POS = int(ftell(f)-11);
   fprintf(debug,"\nHEADER SECTION\n");
-  fprintf(debug," nr_spreads = %d\n",SPREADSHEET.size());
+  fprintf(debug," nr_spreads = %zu\n",SPREADSHEET.size());
   fprintf(debug," [position @ 0x%X]\n",POS);
   fflush(debug);
 
@@ -1255,9 +1255,9 @@ int OPJFile::ParseFormatNew() {
       stmp = new char[size-labellen+1];
       fread(stmp,size-labellen,1,f);
       NOTE.back().text=stmp;
-      fprintf(debug,"NOTE %d NAME: %s\n", NOTE.size(), NOTE.back().name.c_str());
-      fprintf(debug,"NOTE %d LABEL: %s\n", NOTE.size(), NOTE.back().label.c_str());
-      fprintf(debug,"NOTE %d TEXT:\n%s\n", NOTE.size(), NOTE.back().text.c_str());
+      fprintf(debug,"NOTE %zu NAME: %s\n", NOTE.size(), NOTE.back().name.c_str());
+      fprintf(debug,"NOTE %zu LABEL: %s\n", NOTE.size(), NOTE.back().label.c_str());
+      fprintf(debug,"NOTE %zu TEXT:\n%s\n", NOTE.size(), NOTE.back().text.c_str());
       delete [] stmp;
       fseek(f,1,SEEK_CUR);
     }
@@ -1365,7 +1365,7 @@ void OPJFile::readSpreadInfo(FILE *f, FILE *debug)
   fflush(debug);
 
   /////////////// COLUMN Types ///////////////////////////////////////////
-  fprintf(debug,"     Spreadsheet has %d columns\n",SPREADSHEET[spread].column.size());
+  fprintf(debug,"     Spreadsheet has %zu columns\n",SPREADSHEET[spread].column.size());
 
   while(1)
   {
@@ -1588,7 +1588,7 @@ void OPJFile::readExcelInfo(FILE *f, FILE *debug)
     fflush(debug);
 
     /////////////// COLUMN Types ///////////////////////////////////////////
-    fprintf(debug,"     Excel sheet %d has %d columns\n",isheet,EXCEL[iexcel].sheet[isheet].column.size());
+    fprintf(debug,"     Excel sheet %d has %zu columns\n",isheet,EXCEL[iexcel].sheet[isheet].column.size());
 
     while(1)
     {
@@ -1689,7 +1689,7 @@ void OPJFile::readExcelInfo(FILE *f, FILE *debug)
           break;
         }
         fprintf(debug,"       COLUMN \"%s\" type = %s(%d) (@ 0x%X)\n",
-          EXCEL[iexcel].sheet[isheet].column[col_index].name.c_str(),type,c,LAYER+0x11);
+          EXCEL[iexcel].sheet[isheet].column[col_index].name.c_str(),colTypeNames[type],c,LAYER+0x11);
         fflush(debug);
       }
       LAYER+=0x1E7+0x1;
@@ -2260,7 +2260,7 @@ void OPJFile::readGraphInfo(FILE *f, FILE *debug)
         short nColY = w;
         if(col.size()>0)
         {
-          fprintf(debug,"     GRAPH %d layer %d curve %d Y : %s.%s\n",GRAPH.size(),GRAPH.back().layer.size(),GRAPH.back().layer.back().curve.size(),col[1].c_str(),col[0].c_str());
+          fprintf(debug,"     GRAPH %zu layer %zu curve %zu Y : %s.%s\n",GRAPH.size(),GRAPH.back().layer.size(),GRAPH.back().layer.back().curve.size(),col[1].c_str(),col[0].c_str());
           fflush(debug);
           curve.yColName=col[0];
           curve.dataName=col[1];
@@ -2272,11 +2272,11 @@ void OPJFile::readGraphInfo(FILE *f, FILE *debug)
         col=findDataByIndex(w-1);
         if(col.size()>0)
         {
-          fprintf(debug,"     GRAPH %d layer %d curve %d X : %s.%s\n",GRAPH.size(),GRAPH.back().layer.size(),GRAPH.back().layer.back().curve.size(),col[1].c_str(),col[0].c_str());
+          fprintf(debug,"     GRAPH %zu layer %zu curve %zu X : %s.%s\n",GRAPH.size(),GRAPH.back().layer.size(),GRAPH.back().layer.back().curve.size(),col[1].c_str(),col[0].c_str());
           fflush(debug);
           curve.xColName=col[0];
           if(curve.dataName!=col[1])
-            fprintf(debug,"     GRAPH %d X and Y from different tables\n",GRAPH.size());
+            fprintf(debug,"     GRAPH %zu X and Y from different tables\n",GRAPH.size());
         }
 
         fseek(f,LAYER+0x4C,SEEK_SET);
diff --git a/Code/Mantid/MantidPlot/test/MantidPlotPyplotGeneralTest.py b/Code/Mantid/MantidPlot/test/MantidPlotPyplotGeneralTest.py
index e18de9c6307920c4749a63c30dff9ae08f73bc0b..a8d817ddac902c2beccb9eeb216044b6478d5fb6 100644
--- a/Code/Mantid/MantidPlot/test/MantidPlotPyplotGeneralTest.py
+++ b/Code/Mantid/MantidPlot/test/MantidPlotPyplotGeneralTest.py
@@ -82,6 +82,12 @@ class MantidPlotPyplotGeneralTest(unittest.TestCase):
             self.assertTrue(isinstance(lines[i].figure()._graph, proxies.Graph))
 
     def close_win(self, lines):
+        """
+        Close a plot window. Use this on your test windows to prevent very likely
+        segfaults at the end of the tests.
+
+        @param lines :: lines object as returned by the plot function
+        """
         if len(lines) > 0:
             self.close_win_by_graph(lines[0]._graph)        
 
@@ -225,5 +231,17 @@ class MantidPlotPyplotGeneralTest(unittest.TestCase):
         except:
             print "Failed, as it should"
 
+    def test_savefig(self):
+        # save a minimal figure just to check that the file is written
+        import os
+
+        lines = plot([0, 0.5, 0.1])
+        tmp_figname = 'pyplot_tmp_fig_test.png'
+        savefig(tmp_figname)
+        self.close_win(lines)
+
+        self.assertTrue(os.path.exists(tmp_figname))
+        os.remove(tmp_figname)
+
 # Run the unit tests
 mantidplottests.runTests(MantidPlotPyplotGeneralTest)
diff --git a/Code/Mantid/MantidPlot/test/MantidPlotSliceViewerTest.py b/Code/Mantid/MantidPlot/test/MantidPlotSliceViewerTest.py
index 27961933c3f19b622eea916750a7a7ae5abc34a9..b09d070150d3472620570584bf1ff047a10a3c29 100644
--- a/Code/Mantid/MantidPlot/test/MantidPlotSliceViewerTest.py
+++ b/Code/Mantid/MantidPlot/test/MantidPlotSliceViewerTest.py
@@ -174,7 +174,28 @@ class MantidPlotSliceViewerTest(unittest.TestCase):
         # Now clear the PeaksOverlays
         sv.clearPeaksWorkspaces()
 
+    def test_integrateMDHistoWorkspace(self):
+        CreateMDWorkspace(Dimensions=4, Extents='-10,10,-10,10,-10,10,-10,10', Names='a,b,c,d', Units='u,u,u,u', OutputWorkspace='ws')
+        FakeMDEventData(InputWorkspace='ws', PeakParams='10000,0,0,0,0,1')
+        CutMD(InputWorkspace='ws', P1Bin='1', P2Bin='1', P3Bin='1', P4Bin='1', OutputWorkspace='ws2', NoPix=True)
 
+        svw = plotSlice('ws2')
+        sv = svw.getSlicer()
+        lv = svw.getLiner()
+        lv.setStartXY(-3, 0)
+        lv.setEndXY(3, 0)
+        lv.setPlanarWidth(2)
+        lv.apply()
+
+        time.sleep(1)
+        lws = mtd['ws2_line']
+        ranHisto = False
+        for alg in lws.getHistory():
+            if alg.name() == "IntegrateMDHistoWorkspace":
+                ranHisto = True
+                break
+
+        self.assertTrue(ranHisto, "IntegrateMDHistoWorkspace was used when possible")
 
 # Run the unit tests
 mantidplottests.runTests(MantidPlotSliceViewerTest)
diff --git a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/AlgorithmDialog.h b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/AlgorithmDialog.h
index 03624acce871aea755e5d6a68131f66be95290c9..34603869b1993b6e822ff9dd8a7259c2f6a0ed2e 100644
--- a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/AlgorithmDialog.h
+++ b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/AlgorithmDialog.h
@@ -91,7 +91,7 @@ class InterfaceManager;
     File change history is stored at: <https://github.com/mantidproject/mantid>
     Code Documentation is available at: <http://doxygen.mantidproject.org>    
 */
-class EXPORT_OPT_MANTIDQT_API AlgorithmDialog : public QDialog
+class EXPORT_OPT_MANTIDQT_API AlgorithmDialog : public QDialog, Mantid::API::AlgorithmObserver
 {
   
   Q_OBJECT
@@ -103,6 +103,12 @@ public:
   /// Destructor
   virtual ~AlgorithmDialog();
 
+  /// Set if the keep open option is shown.
+  void setShowKeepOpen(const bool showOption);
+
+  /// Set if the keep open option is shown.
+  bool isShowKeepOpen() const;
+
   /// Create the layout of the widget. Can only be called once.
   void initializeLayout();
 
@@ -196,9 +202,10 @@ protected:
   void fillLineEdit(const QString & propName, QLineEdit* field);
 
   /// Create a row layout of buttons with specified text
-  QHBoxLayout *createDefaultButtonLayout(const QString & helpText = QString("?"),
+  QLayout *createDefaultButtonLayout(const QString & helpText = QString("?"),
                      const QString & loadText = QString("Run"), 
-                     const QString & cancelText = QString("Cancel"));
+                     const QString & cancelText = QString("Close"), 
+                     const QString & keepOpenText = QString("Keep Open"));
 
   /// Create a help button for this algorithm
   QPushButton* createHelpButton(const QString & helpText = QString("?")) const;
@@ -210,6 +217,10 @@ protected:
   /// Retrieve a text value for a property from a widget
   QString getValue(QWidget *widget);
 
+signals:
+  /// Emitted when alg completes and dialog is staying open
+  void algCompletedSignal();
+
 protected slots:
   
   /// A default slot that can be used for an OK button.
@@ -218,6 +229,13 @@ protected slots:
   /// Help button clicked;
   virtual void helpClicked();
 
+  /// Keep open checkbox clicked;
+  virtual void keepOpenChanged(int state);
+
+  
+  /// Keep the running algorithm has completed
+  virtual void algorithmCompleted();
+
   /// Executes the algorithm in a separate thread
   virtual void executeAlgorithmAsync();
   /// Removes the algorithm from the manager.
@@ -235,6 +253,10 @@ protected:
   QString getPreviousValue(const QString& propName);
   /// Set a value based on any old input that we have
   void setPreviousValue(QWidget *widget, const QString & property);
+  /// Handle completion of algorithm started while staying open
+  virtual void finishHandle(const Mantid::API::IAlgorithm *alg);
+  /// Handle completion of algorithm started while staying open
+  virtual void errorHandle(const Mantid::API::IAlgorithm *alg, const std::string &what);
 
 /// The following methods were made public for testing in GenericDialogDemo.cpp
 public:
@@ -280,7 +302,9 @@ protected:
   /// A list of property names that the user has requested to be disabled (overrides those in enabled)
   QStringList m_disabled;
   /// The message string to be displayed at the top of the widget; if it exists.
-  QString m_strMessage;
+  QString m_strMessage;  
+  /// Whether to keep the dialog box open after alg execution
+  bool m_keepOpen;
   /// Is the message string empty or not
   bool m_msgAvailable;
 
@@ -307,6 +331,11 @@ protected:
   /// A map to keep track of replace workspace button presses
   QHash<QPushButton*, int> m_wsbtn_tracker;
 
+  //the keep open checkbox control
+  QCheckBox* m_keepOpenCheckBox;
+
+  QPushButton* m_okButton;
+
   /// A list of AlgorithmObservers to add to the algorithm prior to execution
   std::vector<Mantid::API::AlgorithmObserver *> m_observers;
   //@}
diff --git a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/PlotAxis.h b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/PlotAxis.h
index 6cf577e0b7c7a0c003ee919574d374e03559b8ac..4046030a1e5e63dafa3ba0c497da541de0ccbf0a 100644
--- a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/PlotAxis.h
+++ b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/PlotAxis.h
@@ -2,9 +2,13 @@
 #define MANTIDQT_API_PLOTAXISLABEL_H_
 
 #include "MantidQtAPI/DllOption.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidAPI/IMDWorkspace.h"
+#include "MantidGeometry/MDGeometry/IMDDimension.h"
+#include "MantidKernel/ClassMacros.h"
 
 #include <QString>
+#include <string>
 
 namespace MantidQt
 {
diff --git a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtRasterDataMD.h b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtRasterDataMD.h
index 0297da3fd1b19c9ed12084367c1dfd74ad898d6e..8de41dd4c3df383c584b12d571971219e1bc68fc 100644
--- a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtRasterDataMD.h
+++ b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtRasterDataMD.h
@@ -2,7 +2,8 @@
 #define QwtRasterDataMD_H_
 
 #include "MantidQtAPI/DllOption.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidAPI/IMDWorkspace.h"
 #include "MantidAPI/SpectraDetectorTypes.h"
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
 #include "MantidGeometry/MDGeometry/MDTypes.h"
diff --git a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtWorkspaceBinData.h b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtWorkspaceBinData.h
index 33d3c9ba0bbddbf2dd3c16efb8117edb06e50e82..d01e4130c9ad5ab886ce403d723d5e64271e3008 100644
--- a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtWorkspaceBinData.h
+++ b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtWorkspaceBinData.h
@@ -1,7 +1,8 @@
 #ifndef MANTIDQTAPI_QWTWORKSPACEBINDATA_H
 #define MANTIDQTAPI_QWTWORKSPACEBINDATA_H
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidKernel/cow_ptr.h"
 #include "MantidQtAPI/MantidQwtWorkspaceData.h"
 #include "DllOption.h"
 
diff --git a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtWorkspaceSpectrumData.h b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtWorkspaceSpectrumData.h
index 51eccca695c4634b0b77524e3ef82af566a866ba..c90e6cea8ad8b05b1686cb294893054eaef33268 100644
--- a/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtWorkspaceSpectrumData.h
+++ b/Code/Mantid/MantidQt/API/inc/MantidQtAPI/QwtWorkspaceSpectrumData.h
@@ -1,7 +1,8 @@
 #ifndef MANTIDQTAPI_QWTWORKSPACESPECTRUMDATA_H
 #define MANTIDQTAPI_QWTWORKSPACESPECTRUMDATA_H
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidKernel/cow_ptr.h"
 #include "MantidQtAPI/MantidQwtWorkspaceData.h"
 #include "DllOption.h"
 
diff --git a/Code/Mantid/MantidQt/API/src/AlgorithmDialog.cpp b/Code/Mantid/MantidQt/API/src/AlgorithmDialog.cpp
index f3b1de35208f0020bb93a99220d2c410caf8d832..5c61acf8fc029732393c0f3297543847f34dc86e 100644
--- a/Code/Mantid/MantidQt/API/src/AlgorithmDialog.cpp
+++ b/Code/Mantid/MantidQt/API/src/AlgorithmDialog.cpp
@@ -1,10 +1,8 @@
 //----------------------------------
 // Includes
 //----------------------------------
-#include "MantidAPI/FileProperty.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/IWorkspaceProperty.h"
-#include "MantidAPI/MultipleFileProperty.h"
 #include "MantidKernel/DateAndTime.h"
 #include "MantidKernel/Logger.h"
 
@@ -13,25 +11,18 @@
 #include "MantidQtAPI/MantidWidget.h"
 #include "MantidQtAPI/HelpWindow.h"
 #include "MantidQtAPI/FilePropertyWidget.h"
-#include "MantidQtAPI/PropertyWidgetFactory.h"
 
 #include <QIcon>
 #include <QLabel>
 #include <QMessageBox>
-#include <QFileDialog>
-#include <QFileInfo>
 #include <QLineEdit>
 #include <QComboBox>
 #include <QCheckBox>
 #include <QPushButton>
-#include <QDesktopServices>
-#include <QUrl>
 #include <QHBoxLayout>
-#include <QSignalMapper>
 #include <QCheckBox>
 #include <QtGui>
 
-#include <Poco/AbstractObserver.h>
 #include <Poco/ActiveResult.h>
 
 using namespace MantidQt::API;
@@ -52,8 +43,10 @@ namespace
 AlgorithmDialog::AlgorithmDialog(QWidget* parent) :
   QDialog(parent), m_algorithm(), m_algName(""), m_algProperties(),
   m_propertyValueMap(), m_tied_properties(), m_forScript(false), m_python_arguments(),
-  m_enabled(), m_disabled(), m_strMessage(""), m_msgAvailable(false), m_isInitialized(false), m_autoParseOnInit(true),
-  m_validators(), m_noValidation(), m_inputws_opts(), m_outputws_fields(), m_wsbtn_tracker()
+  m_enabled(), m_disabled(), m_strMessage(""), m_keepOpen(false), 
+  m_msgAvailable(false), m_isInitialized(false),   m_autoParseOnInit(true),  m_validators(), 
+  m_noValidation(), m_inputws_opts(), m_outputws_fields(), m_wsbtn_tracker(), 
+  m_keepOpenCheckBox(NULL), m_okButton(NULL)
 {
 }
 
@@ -62,6 +55,38 @@ AlgorithmDialog::AlgorithmDialog(QWidget* parent) :
  */
 AlgorithmDialog::~AlgorithmDialog()
 {
+  m_observers.clear();
+  this->stopObserving(m_algorithm);
+}
+
+/**
+ * Set if the keep open option is shown.
+ * This must be set after calling initializeLayout.
+ * @param showOption false to hide the control, otherwise true
+ */
+void AlgorithmDialog::setShowKeepOpen(const bool showOption) {
+  if (m_keepOpenCheckBox)
+  {    
+    //if hidden then turn it off
+    if (!showOption)
+    {
+      m_keepOpenCheckBox->setCheckState(Qt::CheckState::Unchecked);
+    }
+    m_keepOpenCheckBox->setVisible(showOption);
+  }
+}
+/**
+ * Is the keep open option going to be shown?
+ * @returns true if it will be shown
+ */
+bool AlgorithmDialog::isShowKeepOpen() const
+{
+  bool retval = true;
+  if (m_keepOpenCheckBox)
+  {
+    retval = m_keepOpenCheckBox->isVisible();
+  }
+  return retval;
 }
 
 /**
@@ -103,6 +128,8 @@ void AlgorithmDialog::initializeLayout()
 
   executeOnAccept(true);
 
+  connect(this, SIGNAL(algCompletedSignal()), this, SLOT(algorithmCompleted()));
+    
   m_isInitialized = true;
 }
 
@@ -221,7 +248,7 @@ QString AlgorithmDialog::getInputValue(const QString& propName) const
     if( prop ) return QString::fromStdString(prop->getDefault());
     else return "";
   }
-  else return value;
+
   return value;
 }
 
@@ -675,22 +702,34 @@ void AlgorithmDialog::fillLineEdit(const QString & propName, QLineEdit* textFiel
 
 //-------------------------------------------------------------------------------------------------
 /** Layout the buttons and others in the generic dialog */
-QHBoxLayout *
+QLayout *
 AlgorithmDialog::createDefaultButtonLayout(const QString & helpText,
                        const QString & loadText,
-                       const QString & cancelText)
+                       const QString & cancelText,
+                       const QString & keepOpenText)
 {
-  QPushButton *okButton = new QPushButton(loadText);
-  connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
-  okButton->setDefault(true);
+  m_okButton = new QPushButton(loadText);
+  connect(m_okButton, SIGNAL(clicked()), this, SLOT(accept()));
+  m_okButton->setDefault(true);
 
   QPushButton *exitButton = new QPushButton(cancelText);
   connect(exitButton, SIGNAL(clicked()), this, SLOT(close()));
+  
 
   QHBoxLayout *buttonRowLayout = new QHBoxLayout;
   buttonRowLayout->addWidget(createHelpButton(helpText));
   buttonRowLayout->addStretch();
-  buttonRowLayout->addWidget(okButton);
+  
+  m_keepOpenCheckBox = new QCheckBox(keepOpenText);
+  m_keepOpenCheckBox->setLayoutDirection(Qt::LayoutDirection::RightToLeft);
+  connect(m_keepOpenCheckBox, SIGNAL(stateChanged(int)), this, SLOT(keepOpenChanged(int)));
+  buttonRowLayout->addWidget(m_keepOpenCheckBox);
+  if (keepOpenText.isEmpty())
+  {
+    setShowKeepOpen(false);
+  }
+
+  buttonRowLayout->addWidget(m_okButton);
   buttonRowLayout->addWidget(exitButton);
 
   return buttonRowLayout;
@@ -738,7 +777,12 @@ void AlgorithmDialog::accept()
   {
     //Store input for next time
     saveInput();
-    QDialog::accept();
+    if (!this->m_keepOpen) {
+      QDialog::accept();
+    }
+    else {
+       executeAlgorithmAsync();
+    }
   }
   else
   {
@@ -764,24 +808,41 @@ void AlgorithmDialog::helpClicked()
   HelpWindow::showAlgorithm(this->nativeParentWidget(), m_algName, version);
 }
 
+//-------------------------------------------------------------------------------------------------
+
+/**
+ * A slot to handle the keep open button click
+ */
+void AlgorithmDialog::keepOpenChanged(int state)
+{
+  m_keepOpen = (state == QCheckBox::On);
+}
+
+
 //-------------------------------------------------------------------------------------------------
 /**
  * Execute the underlying algorithm
  */
 void AlgorithmDialog::executeAlgorithmAsync()
 {
+  Mantid::API::IAlgorithm_sptr algToExec = m_algorithm;
   try
   {
-    // Add AlgorithmObservers to the algorithm
+    // Add any custom AlgorithmObservers to the algorithm
     for(auto it = m_observers.begin(); it != m_observers.end(); ++it)
-      (*it)->observeAll(m_algorithm);
+      (*it)->observeAll(algToExec);
+
+    this->observeFinish(algToExec);
+    this->observeError(algToExec);
 
-    m_algorithm->executeAsync();
-    m_observers.clear();
+    algToExec->executeAsync();
+    if (m_okButton) {
+      m_okButton->setEnabled(false);
+    }
   }
   catch (Poco::NoThreadAvailableException &)
   {
-    g_log.error() << "No thread was available to run the " << m_algorithm->name() << " algorithm in the background." << std::endl;
+    g_log.error() << "No thread was available to run the " << algToExec->name() << " algorithm in the background." << std::endl;
   }
 }
 
@@ -1069,4 +1130,40 @@ void AlgorithmDialog::setPreviousValue(QWidget* widget, const QString& propName)
 void AlgorithmDialog::addAlgorithmObserver(Mantid::API::AlgorithmObserver *observer)
 {
   m_observers.push_back(observer);
+  //turn off the keep open option - it would only confuse things if someone is watching
+  setShowKeepOpen(false);
+}
+
+/**Handle completion of algorithm started while staying open.
+ * emits another signal to marshal the call to the main ui thread
+ *
+ * @param alg Completed algorithm (unused)
+ */
+void AlgorithmDialog::finishHandle(const IAlgorithm *alg)
+{
+  UNUSED_ARG(alg);
+  emit algCompletedSignal();
+}
+
+/**Handle error signal of algorithm started while staying open.
+ * emits another signal to marshal the call to the main ui thread
+ *
+ * @param alg Completed algorithm (unused)
+ * @param what the error message (unused)
+ */
+void AlgorithmDialog::errorHandle(const IAlgorithm *alg, const std::string &what)
+{
+  UNUSED_ARG(alg);
+  UNUSED_ARG(what);
+  emit algCompletedSignal();
+}
+
+
+/**Handle completion of algorithm started while staying open.
+ * reenables the OK button when the algorithms finishes.
+ *
+ */
+void AlgorithmDialog::algorithmCompleted()
+{
+  if (m_okButton) m_okButton->setEnabled(true);
 }
diff --git a/Code/Mantid/MantidQt/API/src/GenericDialog.cpp b/Code/Mantid/MantidQt/API/src/GenericDialog.cpp
index 1ad125af5f91e18cbad5fc7c0541de10b6799c97..852585ba8ab6106c091515495cfa1268fd31b1db 100644
--- a/Code/Mantid/MantidQt/API/src/GenericDialog.cpp
+++ b/Code/Mantid/MantidQt/API/src/GenericDialog.cpp
@@ -163,7 +163,12 @@ void GenericDialog::accept()
   {
     //Store input for next time
     saveInput();
-    QDialog::accept();
+    if (!this->m_keepOpen) {
+      QDialog::accept();
+    }
+    else {
+       executeAlgorithmAsync();
+    }
   }
   else
   {
diff --git a/Code/Mantid/MantidQt/API/src/PlotAxis.cpp b/Code/Mantid/MantidQt/API/src/PlotAxis.cpp
index 74045717245f7a520e31c17a84bfdca278be1fa1..3098cdc540b092655e1d62a8903dfa2e452f8d98 100644
--- a/Code/Mantid/MantidQt/API/src/PlotAxis.cpp
+++ b/Code/Mantid/MantidQt/API/src/PlotAxis.cpp
@@ -1,5 +1,7 @@
 #include "MantidQtAPI/PlotAxis.h"
 
+#include "MantidAPI/MatrixWorkspace.h"
+
 namespace MantidQt
 {
   namespace API
diff --git a/Code/Mantid/MantidQt/API/src/QwtWorkspaceBinData.cpp b/Code/Mantid/MantidQt/API/src/QwtWorkspaceBinData.cpp
index 1a2d48d063533257792c5a3c8f2c926ee141d02b..5ddfa3b676a9b16f441b6a3fe1245ddecd41152f 100644
--- a/Code/Mantid/MantidQt/API/src/QwtWorkspaceBinData.cpp
+++ b/Code/Mantid/MantidQt/API/src/QwtWorkspaceBinData.cpp
@@ -1,4 +1,6 @@
 #include "MantidQtAPI/QwtWorkspaceBinData.h"
+
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidQtAPI/PlotAxis.h"
 
 #include <QStringBuilder>
diff --git a/Code/Mantid/MantidQt/API/src/QwtWorkspaceSpectrumData.cpp b/Code/Mantid/MantidQt/API/src/QwtWorkspaceSpectrumData.cpp
index 237590ca99fd0d9bb07cbf270ec48acf6fdc0334..1cbfae1f59127a3f26288adac098e153fba776b8 100644
--- a/Code/Mantid/MantidQt/API/src/QwtWorkspaceSpectrumData.cpp
+++ b/Code/Mantid/MantidQt/API/src/QwtWorkspaceSpectrumData.cpp
@@ -1,4 +1,6 @@
 #include "MantidQtAPI/QwtWorkspaceSpectrumData.h"
+
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidQtAPI/PlotAxis.h"
 
 #include <QStringBuilder>
diff --git a/Code/Mantid/MantidQt/API/src/SignalRange.cpp b/Code/Mantid/MantidQt/API/src/SignalRange.cpp
index 54731b2507fbc3890c24b0bf754e0d86e9a3a3ca..9aa262f99ea72dcc47631901ff9677f4506b3228 100644
--- a/Code/Mantid/MantidQt/API/src/SignalRange.cpp
+++ b/Code/Mantid/MantidQt/API/src/SignalRange.cpp
@@ -1,5 +1,6 @@
 #include "MantidQtAPI/SignalRange.h"
 #include "MantidAPI/IMDIterator.h"
+#include "MantidKernel/MultiThreaded.h"
 
 namespace MantidQt
 {
diff --git a/Code/Mantid/MantidQt/API/test/SignalRangeTest.h b/Code/Mantid/MantidQt/API/test/SignalRangeTest.h
index 6504c82af32d912d472b0f660663e3495a673d48..3011d7d42da58efd42827ff7a5004b30f33b7b50 100644
--- a/Code/Mantid/MantidQt/API/test/SignalRangeTest.h
+++ b/Code/Mantid/MantidQt/API/test/SignalRangeTest.h
@@ -2,6 +2,8 @@
 #define MANTIDQT_API_SIGNALRANGETEST_H_
 
 #include "MantidQtAPI/SignalRange.h"
+#include "MantidAPI/IMDWorkspace.h"
+#include "MantidKernel/MultiThreaded.h"
 #include <cxxtest/TestSuite.h>
 #include <gmock/gmock.h>
 #include <gtest/gtest.h>
@@ -33,6 +35,11 @@ private:
     MOCK_METHOD1(setMDMasking, void(Mantid::Geometry::MDImplicitFunction*));
     MOCK_METHOD0(clearMDMasking, void());
     MOCK_CONST_METHOD0(getSpecialCoordinateSystem, Mantid::Kernel::SpecialCoordinateSystem());
+  private:
+    virtual MockMDWorkspace *doClone() const {
+      throw std::runtime_error(
+          "Cloning of MockMDWorkspace is not implemented.");
+    }
   };
 
   class MockMDIterator : public Mantid::API::IMDIterator
diff --git a/Code/Mantid/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/PlotAsymmetryByLogValueDialog.ui b/Code/Mantid/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/PlotAsymmetryByLogValueDialog.ui
index 57ba9eee696c92a518dd1a8e9ffc224d21e3a079..8eae0534a33fbc1c7ba2642bcfd39b2ad6d51492 100644
--- a/Code/Mantid/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/PlotAsymmetryByLogValueDialog.ui
+++ b/Code/Mantid/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/PlotAsymmetryByLogValueDialog.ui
@@ -308,53 +308,6 @@
           </layout>
         </widget>
       </item>
-      <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_13">
-          <property name="spacing">
-            <number>6</number>
-          </property>
-          <item>
-            <widget class="QPushButton" name="btnHelp">
-              <property name="maximumSize">
-                <size>
-                  <width>31</width>
-                  <height>26</height>
-                </size>
-              </property>
-              <property name="text">
-                <string>?</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="btnOK">
-              <property name="text">
-                <string>OK</string>
-              </property>
-            </widget>
-          </item>
-          <item>
-            <widget class="QPushButton" name="btnCancel">
-              <property name="text">
-                <string>Cancel</string>
-              </property>
-            </widget>
-          </item>
-        </layout>
-      </item>
     </layout>
   </widget>
   <tabstops>
diff --git a/Code/Mantid/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/PrecompiledHeader.h b/Code/Mantid/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/PrecompiledHeader.h
index aab7eb3654a8a84b70f71e03dbf1c173793d3dd1..8c133bd80cc593e755d4ef567c082e5616877b62 100644
--- a/Code/Mantid/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/PrecompiledHeader.h
+++ b/Code/Mantid/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/PrecompiledHeader.h
@@ -4,7 +4,7 @@
 // Mantid
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 // Qt
 #include <QWidget>
diff --git a/Code/Mantid/MantidQt/CustomDialogs/src/CatalogPublishDialog.cpp b/Code/Mantid/MantidQt/CustomDialogs/src/CatalogPublishDialog.cpp
index e16e6621686daa9fbd125bc94dddf8ed62462ac6..5d633a0b009727e50fa0b02fd43949650542b013 100644
--- a/Code/Mantid/MantidQt/CustomDialogs/src/CatalogPublishDialog.cpp
+++ b/Code/Mantid/MantidQt/CustomDialogs/src/CatalogPublishDialog.cpp
@@ -4,6 +4,7 @@
 #include "MantidAPI/CatalogManager.h"
 #include "MantidAPI/ICatalog.h"
 #include "MantidAPI/ICatalogInfoService.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/FacilityInfo.h"
diff --git a/Code/Mantid/MantidQt/CustomDialogs/src/PlotAsymmetryByLogValueDialog.cpp b/Code/Mantid/MantidQt/CustomDialogs/src/PlotAsymmetryByLogValueDialog.cpp
index 9d9acccbb4379ba2a1f68e499c205afb41b923c9..afdbb7d4d9eda21deea27038f2e02eb152e0c646 100644
--- a/Code/Mantid/MantidQt/CustomDialogs/src/PlotAsymmetryByLogValueDialog.cpp
+++ b/Code/Mantid/MantidQt/CustomDialogs/src/PlotAsymmetryByLogValueDialog.cpp
@@ -89,9 +89,6 @@ void PlotAsymmetryByLogValueDialog::initLayout()
   connect(m_uiForm.dtcFileBrowseButton, SIGNAL(clicked()), browseButtonMapper, SLOT(map()));
 
   connect( m_uiForm.firstRunBox, SIGNAL(textChanged(const QString&)), this, SLOT(fillLogBox(const QString&)) );
-  connect( m_uiForm.btnOK,SIGNAL(clicked()),this,SLOT(accept()));
-  connect( m_uiForm.btnCancel,SIGNAL(clicked()),this,SLOT(reject()));
-  connect( m_uiForm.btnHelp,SIGNAL(clicked()),this,SLOT(helpClicked()));
 
   connect( m_uiForm.dtcType, SIGNAL(currentIndexChanged(int)), this, SLOT(showHideDeadTimeFileWidget(int)));
 
@@ -106,6 +103,9 @@ void PlotAsymmetryByLogValueDialog::initLayout()
 
   // So user can enter a custom value
   m_uiForm.logBox->setEditable(true);
+
+  // Create and add the OK/Cancel/Help. buttons
+  m_uiForm.verticalLayout->addLayout(this->createDefaultButtonLayout());
 }
 
 /**
@@ -150,9 +150,7 @@ void PlotAsymmetryByLogValueDialog::fillLogBox(const QString&)
   {
     alg->setPropertyValue("Filename",nexusFileName.toStdString());
     alg->setPropertyValue("OutputWorkspace","PlotAsymmetryByLogValueDialog_tmp");
-    alg->setPropertyValue("DeadTimeTable", ""); // Don't need it for now
-    alg->setPropertyValue("SpectrumMin","0");
-    alg->setPropertyValue("SpectrumMax","0");
+    alg->setPropertyValue("SpectrumList","1"); // Need to load at least one spectrum
     alg->execute();
     if (alg->isExecuted())
     {
diff --git a/Code/Mantid/MantidQt/CustomDialogs/src/SortTableWorkspaceDialog.cpp b/Code/Mantid/MantidQt/CustomDialogs/src/SortTableWorkspaceDialog.cpp
index 7a81d7a310dc9bce13ba71f3205d938db5bf6736..058924c6958ea2b579a5dea8af1e00d9a104f8a1 100644
--- a/Code/Mantid/MantidQt/CustomDialogs/src/SortTableWorkspaceDialog.cpp
+++ b/Code/Mantid/MantidQt/CustomDialogs/src/SortTableWorkspaceDialog.cpp
@@ -4,6 +4,7 @@
 #include "MantidQtCustomDialogs/SortTableWorkspaceDialog.h"
 #include "MantidQtAPI/AlgorithmInputHistory.h"
 #include "MantidAPI/AnalysisDataService.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidKernel/Exception.h"
 
 
diff --git a/Code/Mantid/MantidQt/CustomDialogs/src/StartLiveDataDialog.cpp b/Code/Mantid/MantidQt/CustomDialogs/src/StartLiveDataDialog.cpp
index c61802dcb8e8ab5f34bef08de8d1c016d069845e..22a38e3073d4bba25252729bf5ba485cd394c559 100644
--- a/Code/Mantid/MantidQt/CustomDialogs/src/StartLiveDataDialog.cpp
+++ b/Code/Mantid/MantidQt/CustomDialogs/src/StartLiveDataDialog.cpp
@@ -197,7 +197,7 @@ void StartLiveDataDialog::initLayout()
   connect(ui.cmbInstrument,SIGNAL(currentIndexChanged(const QString&)),this,SLOT(initListenerPropLayout(const QString&)));
   connect(ui.cmbInstrument,SIGNAL(currentIndexChanged(const QString&)),this,SLOT(updateUiElements(const QString&)));
 
-  QHBoxLayout * buttonLayout = this->createDefaultButtonLayout();
+  QLayout * buttonLayout = this->createDefaultButtonLayout();
   ui.mainLayout->addLayout(buttonLayout);
 }
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/CMakeLists.txt b/Code/Mantid/MantidQt/CustomInterfaces/CMakeLists.txt
index be9ab1fe7174aa80ca6145f7b909e071461ca831..204087c2d85f6c1aab7be466dcd8c26b979df3b7 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/CMakeLists.txt
+++ b/Code/Mantid/MantidQt/CustomInterfaces/CMakeLists.txt
@@ -1,196 +1,210 @@
 set ( SRC_FILES
-	src/background.cpp
+  src/background.cpp
   src/DataComparison.cpp
-	src/deltaECalc.cpp
-	src/DirectConvertToEnergy.cpp
-	src/Homer.cpp
-	src/Indirect/AbsorptionCorrections.cpp
-	src/Indirect/ApplyCorr.cpp
-	src/Indirect/CalcCorr.cpp
-	src/Indirect/ConvFit.cpp
+  src/deltaECalc.cpp
+  src/DirectConvertToEnergy.cpp
+  src/Homer.cpp
+  src/Indirect/AbsorptionCorrections.cpp
+  src/Indirect/ApplyPaalmanPings.cpp
+  src/Indirect/CalculatePaalmanPings.cpp
+  src/Indirect/ConvFit.cpp
+  src/Indirect/CorrectionsTab.cpp
   src/Indirect/DensityOfStates.cpp
-	src/Indirect/Elwin.cpp
-	src/Indirect/IDATab.cpp
+  src/Indirect/Elwin.cpp
   src/Indirect/ILLCalibration.cpp
   src/Indirect/ILLEnergyTransfer.cpp
   src/Indirect/IndirectBayes.cpp
-	src/Indirect/IndirectBayesTab.cpp
-	src/Indirect/IndirectDataAnalysis.cpp
-	src/Indirect/IndirectDataReduction.cpp
-	src/Indirect/IndirectDataReductionTab.cpp
-	src/Indirect/IndirectDiffractionReduction.cpp
+  src/Indirect/IndirectBayesTab.cpp
+  src/Indirect/IndirectCorrections.cpp
+  src/Indirect/IndirectDataAnalysis.cpp
+  src/Indirect/IndirectDataAnalysisTab.cpp
+  src/Indirect/IndirectDataReduction.cpp
+  src/Indirect/IndirectDataReductionTab.cpp
+  src/Indirect/IndirectDiffractionReduction.cpp
   src/Indirect/IndirectLoadILL.cpp
-	src/Indirect/IndirectMolDyn.cpp
-	src/Indirect/IndirectMoments.cpp
-	src/Indirect/IndirectSassena.cpp
-	src/Indirect/IndirectSimulation.cpp
-	src/Indirect/IndirectSimulationTab.cpp
+  src/Indirect/IndirectMolDyn.cpp
+  src/Indirect/IndirectMoments.cpp
+  src/Indirect/IndirectSassena.cpp
+  src/Indirect/IndirectSimulation.cpp
+  src/Indirect/IndirectSimulationTab.cpp
   src/Indirect/IndirectSqw.cpp
-	src/Indirect/IndirectSymmetrise.cpp
-	src/Indirect/IndirectTab.cpp
-	src/Indirect/IndirectTools.cpp
-	src/Indirect/IndirectToolsTab.cpp
+  src/Indirect/IndirectSymmetrise.cpp
+  src/Indirect/IndirectTab.cpp
+  src/Indirect/IndirectTools.cpp
+  src/Indirect/IndirectToolsTab.cpp
   src/Indirect/IndirectTransmission.cpp
   src/Indirect/IndirectTransmissionCalc.cpp
   src/Indirect/ISISCalibration.cpp
   src/Indirect/ISISDiagnostics.cpp
   src/Indirect/ISISEnergyTransfer.cpp
-	src/Indirect/Iqt.cpp
-	src/Indirect/IqtFit.cpp
-	src/Indirect/JumpFit.cpp
-	src/Indirect/MSDFit.cpp
-	src/Indirect/Quasi.cpp
-	src/Indirect/ResNorm.cpp
-	src/Indirect/Stretch.cpp
-	src/MantidEV.cpp
-	src/MantidEVWorker.cpp
-    src/MultiDatasetFit/MultiDatasetFit.cpp
-    src/MultiDatasetFit/MDFAddWorkspaceDialog.cpp
-    src/MultiDatasetFit/MDFDataController.cpp
-    src/MultiDatasetFit/MDFPlotController.cpp
-    src/MultiDatasetFit/MDFDatasetPlotData.cpp
-    src/MultiDatasetFit/MDFLocalParameterEditor.cpp
-    src/MultiDatasetFit/MDFLocalParameterItemDelegate.cpp
-    src/MultiDatasetFit/MDFEditLocalParameterDialog.cpp
-    src/MultiDatasetFit/MDFErrorCurve.cpp
-	src/Muon/ALCBaselineModellingModel.cpp
-	src/Muon/ALCBaselineModellingPresenter.cpp
-	src/Muon/ALCBaselineModellingView.cpp
-	src/Muon/ALCDataLoadingPresenter.cpp
-	src/Muon/ALCDataLoadingView.cpp
-	src/Muon/ALCHelper.cpp
-	src/Muon/ALCInterface.cpp
-	src/Muon/ALCPeakFittingModel.cpp
-	src/Muon/ALCPeakFittingPresenter.cpp
-	src/Muon/ALCPeakFittingView.cpp
-	src/Muon/IO_MuonGrouping.cpp
-	src/Muon/MuonAnalysis.cpp
-	src/Muon/MuonAnalysisFitDataTab.cpp
-	src/Muon/MuonAnalysisHelper.cpp
-	src/Muon/MuonAnalysisOptionTab.cpp
-	src/Muon/MuonAnalysisResultTableTab.cpp
-	src/QReflTableModel.cpp
-	src/QtReflMainView.cpp
-	src/QtReflOptionsDialog.cpp
-	src/ReflCatalogSearcher.cpp
-	src/ReflLegacyTransferStrategy.cpp
-	src/ReflMainViewPresenter.cpp
-	src/ReflSearchModel.cpp
+  src/Indirect/Iqt.cpp
+  src/Indirect/IqtFit.cpp
+  src/Indirect/JumpFit.cpp
+  src/Indirect/MSDFit.cpp
+  src/Indirect/Quasi.cpp
+  src/Indirect/ResNorm.cpp
+  src/Indirect/Stretch.cpp
+  src/MantidEV.cpp
+  src/MantidEVWorker.cpp
+  src/MultiDatasetFit/MultiDatasetFit.cpp
+  src/MultiDatasetFit/MDFAddWorkspaceDialog.cpp
+  src/MultiDatasetFit/MDFDataController.cpp
+  src/MultiDatasetFit/MDFPlotController.cpp
+  src/MultiDatasetFit/MDFDatasetPlotData.cpp
+  src/MultiDatasetFit/MDFLocalParameterEditor.cpp
+  src/MultiDatasetFit/MDFLocalParameterItemDelegate.cpp
+  src/MultiDatasetFit/MDFEditLocalParameterDialog.cpp
+  src/Muon/ALCBaselineModellingModel.cpp
+  src/Muon/ALCBaselineModellingPresenter.cpp
+  src/Muon/ALCBaselineModellingView.cpp
+  src/Muon/ALCDataLoadingPresenter.cpp
+  src/Muon/ALCDataLoadingView.cpp
+  src/Muon/ALCHelper.cpp
+  src/Muon/ALCInterface.cpp
+  src/Muon/ALCPeakFittingModel.cpp
+  src/Muon/ALCPeakFittingPresenter.cpp
+  src/Muon/ALCPeakFittingView.cpp
+  src/Muon/IO_MuonGrouping.cpp
+  src/Muon/MuonAnalysis.cpp
+  src/Muon/MuonAnalysisFitDataTab.cpp
+  src/Muon/MuonAnalysisHelper.cpp
+  src/Muon/MuonAnalysisOptionTab.cpp
+  src/Muon/MuonAnalysisResultTableTab.cpp
+  src/QReflTableModel.cpp
+  src/QtReflMainView.cpp
+  src/QtReflOptionsDialog.cpp
+  src/ReflCatalogSearcher.cpp
+  src/ReflLegacyTransferStrategy.cpp
+  src/ReflMainViewPresenter.cpp
+  src/ReflSearchModel.cpp
   src/SampleTransmission.cpp
-	src/SANSAddFiles.cpp
-	src/SANSDiagnostics.cpp
-	src/SANSEventSlicing.cpp
-	src/SANSPlotSpecial.cpp
-	src/SANSRunWindow.cpp
-	src/StepScan.cpp
-	src/TomoReconstruction/SavuConfigDialog.cpp
-	src/TomoReconstruction/TomoReconstruction.cpp
-	src/TomoReconstruction/TomoToolConfigDialog.cpp
-	src/TomoReconstruction/ToolSettings.cpp
-	src/UserInputValidator.cpp
+  src/SANSAddFiles.cpp
+  src/SANSDiagnostics.cpp
+  src/SANSEventSlicing.cpp
+  src/SANSPlotSpecial.cpp
+  src/SANSRunWindow.cpp
+  src/StepScan.cpp
+  src/Tomography/SavuConfigDialog.cpp
+  src/Tomography/TomographyIfaceModel.cpp
+  src/Tomography/TomographyIfacePresenter.cpp
+  src/Tomography/TomographyIfaceViewQtGUI.cpp
+  src/Tomography/TomoPathsConfig.cpp
+  src/Tomography/TomoToolConfigDialog.cpp
+  src/Tomography/ToolConfig.cpp
+  src/UserInputValidator.cpp
 )
 
 # Include files aren't required, but this makes them appear in Visual Studio
 set ( INC_FILES
-	inc/MantidQtCustomInterfaces/Background.h
+  inc/MantidQtCustomInterfaces/Background.h
   inc/MantidQtCustomInterfaces/DataComparison.h
-	inc/MantidQtCustomInterfaces/deltaECalc.h
-	inc/MantidQtCustomInterfaces/DirectConvertToEnergy.h
-	inc/MantidQtCustomInterfaces/DllConfig.h
-	inc/MantidQtCustomInterfaces/Homer.h
-	inc/MantidQtCustomInterfaces/Indirect/IDATab.h
-	inc/MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.h
-	inc/MantidQtCustomInterfaces/Indirect/ApplyCorr.h
-	inc/MantidQtCustomInterfaces/Indirect/CalcCorr.h
-	inc/MantidQtCustomInterfaces/Indirect/ConvFit.h
+  inc/MantidQtCustomInterfaces/deltaECalc.h
+  inc/MantidQtCustomInterfaces/DirectConvertToEnergy.h
+  inc/MantidQtCustomInterfaces/DllConfig.h
+  inc/MantidQtCustomInterfaces/Homer.h
+  inc/MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.h
+  inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.h
+  inc/MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.h
+  inc/MantidQtCustomInterfaces/Indirect/ConvFit.h
+  inc/MantidQtCustomInterfaces/Indirect/CorrectionsTab.h
   inc/MantidQtCustomInterfaces/Indirect/DensityOfStates.h
-	inc/MantidQtCustomInterfaces/Indirect/Elwin.h
+  inc/MantidQtCustomInterfaces/Indirect/Elwin.h
   inc/MantidQtCustomInterfaces/Indirect/ILLCalibration.h
   inc/MantidQtCustomInterfaces/Indirect/ILLEnergyTransfer.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectBayesTab.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectDataReduction.h
- 	inc/MantidQtCustomInterfaces/Indirect/IndirectDataReductionTab.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectBayesTab.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectCorrections.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysisTab.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectDataReduction.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectDataReductionTab.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.h
   inc/MantidQtCustomInterfaces/Indirect/IndirectLoadILL.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectMolDyn.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectMoments.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectSassena.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectSimulation.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectSimulationTab.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectSqw.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectSymmetrise.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectMolDyn.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectMoments.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectSassena.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectSimulation.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectSimulationTab.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectSqw.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectSymmetrise.h
   inc/MantidQtCustomInterfaces/Indirect/IndirectTransmission.h
   inc/MantidQtCustomInterfaces/Indirect/IndirectTransmissionCalc.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectTools.h
-	inc/MantidQtCustomInterfaces/Indirect/IndirectToolsTab.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectTools.h
+  inc/MantidQtCustomInterfaces/Indirect/IndirectToolsTab.h
   inc/MantidQtCustomInterfaces/Indirect/IndirectTab.h
-	inc/MantidQtCustomInterfaces/Indirect/JumpFit.h
-	inc/MantidQtCustomInterfaces/Indirect/MSDFit.h
-	inc/MantidQtCustomInterfaces/Indirect/Quasi.h
-	inc/MantidQtCustomInterfaces/Indirect/ResNorm.h
-	inc/MantidQtCustomInterfaces/Indirect/Stretch.h
+  inc/MantidQtCustomInterfaces/Indirect/JumpFit.h
+  inc/MantidQtCustomInterfaces/Indirect/MSDFit.h
+  inc/MantidQtCustomInterfaces/Indirect/Quasi.h
+  inc/MantidQtCustomInterfaces/Indirect/ResNorm.h
+  inc/MantidQtCustomInterfaces/Indirect/Stretch.h
   inc/MantidQtCustomInterfaces/Indirect/ISISCalibration.h
   inc/MantidQtCustomInterfaces/Indirect/ISISDiagnostics.h
   inc/MantidQtCustomInterfaces/Indirect/ISISEnergyTransfer.h
-	inc/MantidQtCustomInterfaces/Indirect/Iqt.h
-	inc/MantidQtCustomInterfaces/Indirect/IqtFit.h
-	inc/MantidQtCustomInterfaces/IReflPresenter.h
-	inc/MantidQtCustomInterfaces/IReflSearcher.h
-	inc/MantidQtCustomInterfaces/MantidEV.h
-	inc/MantidQtCustomInterfaces/MantidEVWorker.h
-	inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h
-	inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFAddWorkspaceDialog.h
-	inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDataController.h
-	inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFPlotController.h
-	inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDatasetPlotData.h
-    inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFLocalParameterEditor.h
-    inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFLocalParameterItemDelegate.h
-    inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFEditLocalParameterDialog.h
-    inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFErrorCurve.h
-	inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingModel.h
-	inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingPresenter.h
-	inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingView.h
-	inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingPresenter.h
-	inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingView.h
-	inc/MantidQtCustomInterfaces/Muon/ALCHelper.h
-	inc/MantidQtCustomInterfaces/Muon/ALCInterface.h
-	inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingModel.h
-	inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingPresenter.h
-	inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingView.h
-	inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingModel.h
-	inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingView.h
-	inc/MantidQtCustomInterfaces/Muon/IALCDataLoadingView.h
-	inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingModel.h
-	inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingView.h
-	inc/MantidQtCustomInterfaces/Muon/IO_MuonGrouping.h
-	inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.h
-	inc/MantidQtCustomInterfaces/Muon/MuonAnalysisFitDataTab.h
-	inc/MantidQtCustomInterfaces/Muon/MuonAnalysisHelper.h
-	inc/MantidQtCustomInterfaces/Muon/MuonAnalysisOptionTab.h
-	inc/MantidQtCustomInterfaces/Muon/MuonAnalysisResultTableTab.h
-	inc/MantidQtCustomInterfaces/ReflCatalogSearcher.h
-	inc/MantidQtCustomInterfaces/ReflLegacyTransferStrategy.h
-	inc/MantidQtCustomInterfaces/ReflMainView.h
-	inc/MantidQtCustomInterfaces/ReflMainViewPresenter.h
-	inc/MantidQtCustomInterfaces/ReflSearchModel.h
-	inc/MantidQtCustomInterfaces/ReflTransferStrategy.h
-	inc/MantidQtCustomInterfaces/QReflTableModel.h
-	inc/MantidQtCustomInterfaces/QtReflMainView.h
-	inc/MantidQtCustomInterfaces/QtReflOptionsDialog.h
-        inc/MantidQtCustomInterfaces/SampleTransmission.h
-	inc/MantidQtCustomInterfaces/SANSAddFiles.h
-	inc/MantidQtCustomInterfaces/SANSDiagnostics.h
-	inc/MantidQtCustomInterfaces/SANSEventSlicing.h
-	inc/MantidQtCustomInterfaces/SANSPlotSpecial.h
-	inc/MantidQtCustomInterfaces/SANSRunWindow.h
-	inc/MantidQtCustomInterfaces/StepScan.h
-	inc/MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.h
-	inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigDialog.h
-	inc/MantidQtCustomInterfaces/TomoReconstruction/ToolSettings.h
-	inc/MantidQtCustomInterfaces/Updateable.h
-	inc/MantidQtCustomInterfaces/UserInputValidator.h
+  inc/MantidQtCustomInterfaces/Indirect/Iqt.h
+  inc/MantidQtCustomInterfaces/Indirect/IqtFit.h
+  inc/MantidQtCustomInterfaces/IReflPresenter.h
+  inc/MantidQtCustomInterfaces/IReflSearcher.h
+  inc/MantidQtCustomInterfaces/MantidEV.h
+  inc/MantidQtCustomInterfaces/MantidEVWorker.h
+  inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h
+  inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFAddWorkspaceDialog.h
+  inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDataController.h
+  inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFPlotController.h
+  inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDatasetPlotData.h
+  inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFLocalParameterEditor.h
+  inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFLocalParameterItemDelegate.h
+  inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFEditLocalParameterDialog.h
+  inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingModel.h
+  inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingPresenter.h
+  inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingView.h
+  inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingPresenter.h
+  inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingView.h
+  inc/MantidQtCustomInterfaces/Muon/ALCHelper.h
+  inc/MantidQtCustomInterfaces/Muon/ALCInterface.h
+  inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingModel.h
+  inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingPresenter.h
+  inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingView.h
+  inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingModel.h
+  inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingView.h
+  inc/MantidQtCustomInterfaces/Muon/IALCDataLoadingView.h
+  inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingModel.h
+  inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingView.h
+  inc/MantidQtCustomInterfaces/Muon/IO_MuonGrouping.h
+  inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.h
+  inc/MantidQtCustomInterfaces/Muon/MuonAnalysisFitDataTab.h
+  inc/MantidQtCustomInterfaces/Muon/MuonAnalysisHelper.h
+  inc/MantidQtCustomInterfaces/Muon/MuonAnalysisOptionTab.h
+  inc/MantidQtCustomInterfaces/Muon/MuonAnalysisResultTableTab.h
+  inc/MantidQtCustomInterfaces/ReflCatalogSearcher.h
+  inc/MantidQtCustomInterfaces/ReflLegacyTransferStrategy.h
+  inc/MantidQtCustomInterfaces/ReflMainView.h
+  inc/MantidQtCustomInterfaces/ReflMainViewPresenter.h
+  inc/MantidQtCustomInterfaces/ReflSearchModel.h
+  inc/MantidQtCustomInterfaces/ReflTransferStrategy.h
+  inc/MantidQtCustomInterfaces/QReflTableModel.h
+  inc/MantidQtCustomInterfaces/QtReflMainView.h
+  inc/MantidQtCustomInterfaces/QtReflOptionsDialog.h
+  inc/MantidQtCustomInterfaces/SampleTransmission.h
+  inc/MantidQtCustomInterfaces/SANSAddFiles.h
+  inc/MantidQtCustomInterfaces/SANSDiagnostics.h
+  inc/MantidQtCustomInterfaces/SANSEventSlicing.h
+  inc/MantidQtCustomInterfaces/SANSPlotSpecial.h
+  inc/MantidQtCustomInterfaces/SANSRunWindow.h
+  inc/MantidQtCustomInterfaces/StepScan.h
+  inc/MantidQtCustomInterfaces/Tomography/ITomographyIfacePresenter.h
+  inc/MantidQtCustomInterfaces/Tomography/ITomographyIfaceView.h
+  inc/MantidQtCustomInterfaces/Tomography/TomographyIfacePresenter.h
+  inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceViewQtGUI.h
+  inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceModel.h
+  inc/MantidQtCustomInterfaces/Tomography/TomoPathsConfig.h
+  inc/MantidQtCustomInterfaces/Tomography/TomoReconToolsUserSettings.h
+  inc/MantidQtCustomInterfaces/Tomography/TomoRecToolConfig.h
+  inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigDialog.h
+  inc/MantidQtCustomInterfaces/Tomography/ToolConfigAstraToolbox.h
+  inc/MantidQtCustomInterfaces/Tomography/ToolConfigCustom.h
+  inc/MantidQtCustomInterfaces/Tomography/ToolConfigTomoPy.h
+  inc/MantidQtCustomInterfaces/Updateable.h
+  inc/MantidQtCustomInterfaces/UserInputValidator.h
 )
 
 set ( SRC_UNITY_IGNORE_FILES )
@@ -199,18 +213,20 @@ set ( MOC_FILES inc/MantidQtCustomInterfaces/Background.h
                 inc/MantidQtCustomInterfaces/DataComparison.h
                 inc/MantidQtCustomInterfaces/DirectConvertToEnergy.h
                 inc/MantidQtCustomInterfaces/Homer.h
-                inc/MantidQtCustomInterfaces/Indirect/IDATab.h
                 inc/MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.h
-                inc/MantidQtCustomInterfaces/Indirect/ApplyCorr.h
-                inc/MantidQtCustomInterfaces/Indirect/CalcCorr.h
+                inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.h
+                inc/MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.h
                 inc/MantidQtCustomInterfaces/Indirect/ConvFit.h
+                inc/MantidQtCustomInterfaces/Indirect/CorrectionsTab.h
                 inc/MantidQtCustomInterfaces/Indirect/DensityOfStates.h
                 inc/MantidQtCustomInterfaces/Indirect/Elwin.h
                 inc/MantidQtCustomInterfaces/Indirect/ILLCalibration.h
                 inc/MantidQtCustomInterfaces/Indirect/ILLEnergyTransfer.h
                 inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.h
                 inc/MantidQtCustomInterfaces/Indirect/IndirectBayesTab.h
+                inc/MantidQtCustomInterfaces/Indirect/IndirectCorrections.h
                 inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.h
+                inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysisTab.h
                 inc/MantidQtCustomInterfaces/Indirect/IndirectDataReduction.h
                 inc/MantidQtCustomInterfaces/Indirect/IndirectDataReductionTab.h
                 inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.h
@@ -239,12 +255,12 @@ set ( MOC_FILES inc/MantidQtCustomInterfaces/Background.h
                 inc/MantidQtCustomInterfaces/Indirect/ISISEnergyTransfer.h
                 inc/MantidQtCustomInterfaces/MantidEV.h
                 inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h
-		inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFAddWorkspaceDialog.h
-		inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDataController.h
-		inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFPlotController.h
-		inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFLocalParameterEditor.h
-		inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFLocalParameterItemDelegate.h
-		inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFEditLocalParameterDialog.h
+                inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFAddWorkspaceDialog.h
+                inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDataController.h
+                inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFPlotController.h
+                inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFLocalParameterEditor.h
+                inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFLocalParameterItemDelegate.h
+                inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFEditLocalParameterDialog.h
                 inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingPresenter.h
                 inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingView.h
                 inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingPresenter.h
@@ -268,24 +284,26 @@ set ( MOC_FILES inc/MantidQtCustomInterfaces/Background.h
                 inc/MantidQtCustomInterfaces/SANSAddFiles.h
                 inc/MantidQtCustomInterfaces/SANSPlotSpecial.h
                 inc/MantidQtCustomInterfaces/SANSRunWindow.h
-                inc/MantidQtCustomInterfaces/SANSEventSlicing.h              
+                inc/MantidQtCustomInterfaces/SANSEventSlicing.h
                 inc/MantidQtCustomInterfaces/SANSDiagnostics.h
                 inc/MantidQtCustomInterfaces/StepScan.h
-                inc/MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.h
-                inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigDialog.h
+                inc/MantidQtCustomInterfaces/Tomography/TomographyIfacePresenter.h
+                inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceViewQtGUI.h
+                inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigDialog.h
 )
 
 set ( UI_FILES inc/MantidQtCustomInterfaces/DataComparison.ui
                inc/MantidQtCustomInterfaces/DirectConvertToEnergy.ui
                inc/MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.ui
-               inc/MantidQtCustomInterfaces/Indirect/ApplyCorr.ui
-               inc/MantidQtCustomInterfaces/Indirect/CalcCorr.ui
+               inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.ui
+               inc/MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.ui
                inc/MantidQtCustomInterfaces/Indirect/ConvFit.ui
                inc/MantidQtCustomInterfaces/Indirect/DensityOfStates.ui
                inc/MantidQtCustomInterfaces/Indirect/Elwin.ui
                inc/MantidQtCustomInterfaces/Indirect/ILLCalibration.ui
                inc/MantidQtCustomInterfaces/Indirect/ILLEnergyTransfer.ui
                inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.ui
+               inc/MantidQtCustomInterfaces/Indirect/IndirectCorrections.ui
                inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.ui
                inc/MantidQtCustomInterfaces/Indirect/IndirectDataReduction.ui
                inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.ui
@@ -311,8 +329,8 @@ set ( UI_FILES inc/MantidQtCustomInterfaces/DataComparison.ui
                inc/MantidQtCustomInterfaces/Indirect/ISISEnergyTransfer.ui
                inc/MantidQtCustomInterfaces/MantidEV.ui
                inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.ui
-	       inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFAddWorkspaceDialog.ui
-	       inc/MantidQtCustomInterfaces/MultiDatasetFit/EditLocalParameterDialog.ui
+               inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFAddWorkspaceDialog.ui
+               inc/MantidQtCustomInterfaces/MultiDatasetFit/EditLocalParameterDialog.ui
                inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingView.ui
                inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingView.ui
                inc/MantidQtCustomInterfaces/Muon/ALCInterface.ui
@@ -323,14 +341,16 @@ set ( UI_FILES inc/MantidQtCustomInterfaces/DataComparison.ui
                inc/MantidQtCustomInterfaces/ReflWindow.ui
                inc/MantidQtCustomInterfaces/SampleTransmission.ui
                inc/MantidQtCustomInterfaces/SANSPlotSpecial.ui
-               inc/MantidQtCustomInterfaces/SANSRunWindow.ui  
+               inc/MantidQtCustomInterfaces/SANSRunWindow.ui
                inc/MantidQtCustomInterfaces/SANSEventSlicing.ui
                inc/MantidQtCustomInterfaces/StepScan.ui
-               inc/MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.ui
-               inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigAstra.ui
-               inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigCustom.ui
-               inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigSavu.ui
-               inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigTomoPy.ui
+               inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtGUI.ui
+               inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtTabSetup.ui
+               inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtTabRun.ui
+               inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigAstra.ui
+               inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigCustom.ui
+               inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigSavu.ui
+               inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigTomoPy.ui
 )
 
 set ( TEST_FILES
@@ -343,13 +363,14 @@ set ( TEST_FILES
   MuonAnalysisHelperTest.h
   ReflLegacyTransferStrategyTest.h
   ReflMainViewPresenterTest.h
+  TomographyIfacePresenterTest.h
   UserInputValidatorTest.h
 )
 
 include_directories ( inc )
 include_directories ( ../../QtPropertyBrowser/src )
 
-# Ugly hack to get around issue in Boost version 1.48.0 
+# Ugly hack to get around issue in Boost version 1.48.0
 # in conjunction with Qt 4.7.4 or greater
 set ( qt_version ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} )
 if ( ${Boost_VERSION} GREATER 104799 AND ${qt_version} VERSION_GREATER 4.7.3 )
@@ -363,7 +384,7 @@ qt4_add_resources ( RES_FILES icons/CustomInterfacesIcons.qrc )
 
 set ( ALL_SRC ${SRC_FILES} ${MOCCED_FILES} )#${RES_FILES})
 
-qt4_wrap_ui ( UI_HDRS ${UI_FILES} ) 
+qt4_wrap_ui ( UI_HDRS ${UI_FILES} )
 include_directories ( ${CMAKE_CURRENT_BINARY_DIR} )
 
 if(UNITY_BUILD)
@@ -381,11 +402,11 @@ set_target_properties ( CustomInterfaces PROPERTIES OUTPUT_NAME MantidQtCustomIn
 
 if (OSX_VERSION VERSION_GREATER 10.8)
   set_target_properties ( CustomInterfaces PROPERTIES INSTALL_RPATH "@loader_path/../../../Contents/MacOS")
-endif () 
+endif ()
 
 find_Package(Threads)
 
-target_link_libraries ( CustomInterfaces LINK_PRIVATE 
+target_link_libraries ( CustomInterfaces LINK_PRIVATE
             MantidQtAPI
             MantidWidgets
             QtPropertyBrowser
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/DataComparison.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/DataComparison.h
index 7e99fd965e83da9b7b739ae94d2e17f3f7c1e74b..004dfa9cbf0dc20ced4fbbad9233ca7b71f3a2e4 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/DataComparison.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/DataComparison.h
@@ -7,7 +7,7 @@
 #include "ui_DataComparison.h"
 #include "MantidQtAPI/UserSubWindow.h"
 #include "MantidQtAPI/WorkspaceObserver.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include <qwt_plot.h>
 #include <qwt_plot_curve.h>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/IReflSearcher.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/IReflSearcher.h
index 0230fc83e5bcfd1a9dc50ec7aa4d5a4b43b04e32..0c62115f2c8ef6dcc3c3f0732d3389339832611d 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/IReflSearcher.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/IReflSearcher.h
@@ -4,7 +4,7 @@
 #include <string>
 
 #include "MantidQtCustomInterfaces/IReflPresenter.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 namespace MantidQt
 {
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.h
index 629776a10e7a3753cebfbedfdb1f1f86d145cbc1..06a452768ad3f8a998904727e8296e16805f2808 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.h
@@ -2,15 +2,13 @@
 #define MANTIDQTCUSTOMINTERFACESIDA_ABSORPTIONCORRECTIONS_H_
 
 #include "ui_AbsorptionCorrections.h"
-#include "IDATab.h"
+#include "CorrectionsTab.h"
 
 namespace MantidQt
 {
 namespace CustomInterfaces
 {
-namespace IDA
-{
-  class DLLExport AbsorptionCorrections : public IDATab
+  class DLLExport AbsorptionCorrections : public CorrectionsTab
   {
     Q_OBJECT
 
@@ -34,7 +32,6 @@ namespace IDA
     Ui::AbsorptionCorrections m_uiForm;
 
   };
-} // namespace IDA
 } // namespace CustomInterfaces
 } // namespace MantidQt
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyCorr.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyCorr.h
deleted file mode 100644
index 3e30da24b2d5f79cda504efb8db7aa493a0dba57..0000000000000000000000000000000000000000
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyCorr.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef MANTIDQTCUSTOMINTERFACESIDA_APPLYCORR_H_
-#define MANTIDQTCUSTOMINTERFACESIDA_APPLYCORR_H_
-
-#include "MantidAPI/MatrixWorkspace.h"
-#include "ui_ApplyCorr.h"
-#include "IDATab.h"
-
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-namespace IDA
-{
-  class DLLExport ApplyCorr : public IDATab
-  {
-    Q_OBJECT
-
-  public:
-    ApplyCorr(QWidget * parent = 0);
-
-  private slots:
-    /// Handles the geometry being changed
-    void handleGeometryChange(int index);
-    /// Handles a new sample being loaded
-    void newData(const QString &dataName);
-    /// Updates the preview mini plot
-    void plotPreview(int specIndex);
-    /// Handle abs. correction algorithm completion
-    void absCorComplete(bool error);
-    /// Handle convert units and save algorithm completion
-    void postProcessComplete(bool error);
-
-  private:
-    virtual void setup();
-    virtual void run();
-    virtual bool validate();
-    virtual void loadSettings(const QSettings & settings);
-
-    void addRebinStep(QString toRebin, QString toMatch);
-    void addInterpolationStep(Mantid::API::MatrixWorkspace_sptr toInterpolate, std::string toMatch);
-
-    Ui::ApplyCorr m_uiForm;
-
-    std::string m_originalSampleUnits;
-
-  };
-
-} // namespace IDA
-} // namespace CustomInterfaces
-} // namespace MantidQt
-
-#endif /* MANTIDQTCUSTOMINTERFACESIDA_APPLYCORR_H_ */
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.h
new file mode 100644
index 0000000000000000000000000000000000000000..ff9c02c688dcb016e3dc4458ce16b48ab48a7ced
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.h
@@ -0,0 +1,46 @@
+#ifndef MANTIDQTCUSTOMINTERFACESIDA_APPLYPAALMANPINGS_H_
+#define MANTIDQTCUSTOMINTERFACESIDA_APPLYPAALMANPINGS_H_
+
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "ui_ApplyPaalmanPings.h"
+#include "CorrectionsTab.h"
+
+namespace MantidQt {
+namespace CustomInterfaces {
+class DLLExport ApplyPaalmanPings : public CorrectionsTab {
+  Q_OBJECT
+
+public:
+  ApplyPaalmanPings(QWidget *parent = 0);
+
+private slots:
+  /// Handles the geometry being changed
+  void handleGeometryChange(int index);
+  /// Handles a new sample being loaded
+  void newData(const QString &dataName);
+  /// Updates the preview mini plot
+  void plotPreview(int specIndex);
+  /// Handle abs. correction algorithm completion
+  void absCorComplete(bool error);
+  /// Handle convert units and save algorithm completion
+  void postProcessComplete(bool error);
+
+private:
+  virtual void setup();
+  virtual void run();
+  virtual bool validate();
+  virtual void loadSettings(const QSettings &settings);
+
+  void addRebinStep(QString toRebin, QString toMatch);
+  void addInterpolationStep(Mantid::API::MatrixWorkspace_sptr toInterpolate,
+                            std::string toMatch);
+
+  Ui::ApplyPaalmanPings m_uiForm;
+
+  std::string m_originalSampleUnits;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif /* MANTIDQTCUSTOMINTERFACESIDA_APPLYPAALMANPINGS_H_ */
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyCorr.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.ui
similarity index 98%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyCorr.ui
rename to Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.ui
index 532b52a10fd30ff5e4fdda9352b65f5bf461803e..70422beced5dae09e28688bf81456add1792f038 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyCorr.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.ui
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
- <class>ApplyCorr</class>
- <widget class="QWidget" name="ApplyCorr">
+ <class>ApplyPaalmanPings</class>
+ <widget class="QWidget" name="ApplyPaalmanPings">
   <property name="geometry">
    <rect>
     <x>0</x>
@@ -186,6 +186,9 @@
           <property name="singleStep">
            <double>0.100000000000000</double>
           </property>
+          <property name="value">
+           <double>1.000000000000000</double>
+          </property>
          </widget>
         </item>
         <item>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalcCorr.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalcCorr.h
deleted file mode 100644
index b4f89ab5fe71baac6613238857dd3c42c7d7c986..0000000000000000000000000000000000000000
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalcCorr.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef MANTIDQTCUSTOMINTERFACESIDA_CALCCORR_H_
-#define MANTIDQTCUSTOMINTERFACESIDA_CALCCORR_H_
-
-#include "ui_CalcCorr.h"
-#include "IDATab.h"
-
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-namespace IDA
-{
-  class DLLExport CalcCorr : public IDATab
-  {
-    Q_OBJECT
-
-  public:
-    CalcCorr(QWidget * parent = 0);
-
-  private:
-    virtual void setup();
-    virtual void run();
-    virtual bool validate();
-    virtual void loadSettings(const QSettings & settings);
-
-    bool doValidation(bool silent = false);
-
-  private slots:
-    void absCorComplete(bool error);
-    void postProcessComplete(bool error);
-    void getBeamWidthFromWorkspace(const QString& wsName);
-
-  private:
-    void addShapeSpecificSampleOptions(Mantid::API::IAlgorithm_sptr alg, QString shape);
-    void addShapeSpecificCanOptions(Mantid::API::IAlgorithm_sptr alg, QString shape);
-
-    Ui::CalcCorr m_uiForm;
-
-  };
-
-} // namespace IDA
-} // namespace CustomInterfaces
-} // namespace MantidQt
-
-#endif /* MANTIDQTCUSTOMINTERFACESIDA_CALCCORR_H_ */
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.h
new file mode 100644
index 0000000000000000000000000000000000000000..96b56e7552d35a1492418be862f35ffa15f02f10
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.h
@@ -0,0 +1,40 @@
+#ifndef MANTIDQTCUSTOMINTERFACESIDA_CALCULATEPAALMANPINGS_H_
+#define MANTIDQTCUSTOMINTERFACESIDA_CALCULATEPAALMANPINGS_H_
+
+#include "ui_CalculatePaalmanPings.h"
+#include "CorrectionsTab.h"
+
+namespace MantidQt {
+namespace CustomInterfaces {
+class DLLExport CalculatePaalmanPings : public CorrectionsTab {
+  Q_OBJECT
+
+public:
+  CalculatePaalmanPings(QWidget *parent = 0);
+
+private:
+  virtual void setup();
+  virtual void run();
+  virtual bool validate();
+  virtual void loadSettings(const QSettings &settings);
+
+  bool doValidation(bool silent = false);
+
+private slots:
+  void absCorComplete(bool error);
+  void postProcessComplete(bool error);
+  void getBeamWidthFromWorkspace(const QString &wsName);
+
+private:
+  void addShapeSpecificSampleOptions(Mantid::API::IAlgorithm_sptr alg,
+                                     QString shape);
+  void addShapeSpecificCanOptions(Mantid::API::IAlgorithm_sptr alg,
+                                  QString shape);
+
+  Ui::CalculatePaalmanPings m_uiForm;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif /* MANTIDQTCUSTOMINTERFACESIDA_CALCULATEPAALMANPINGS_H_ */
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalcCorr.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.ui
similarity index 99%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalcCorr.ui
rename to Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.ui
index 1321aa249e9a16dd3014f78af999cfeb062ad5bf..5ce69e53592b975ca874d9c7e0e5dd78c2f0ee88 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalcCorr.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.ui
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
- <class>CalcCorr</class>
- <widget class="QWidget" name="CalcCorr">
+ <class>CalculatePaalmanPings</class>
+ <widget class="QWidget" name="CalculatePaalmanPings">
   <property name="geometry">
    <rect>
     <x>0</x>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ConvFit.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ConvFit.h
index 6885ebb07c5831eaee2c488c74eddd7de4d51f9c..0a8f60acd03db66326f56aca299f2751036ba161 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ConvFit.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ConvFit.h
@@ -2,8 +2,8 @@
 #define MANTIDQTCUSTOMINTERFACESIDA_CONVFIT_H_
 
 #include "ui_ConvFit.h"
-#include "IDATab.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "IndirectDataAnalysisTab.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/CompositeFunction.h"
 
 namespace MantidQt
@@ -12,7 +12,7 @@ namespace CustomInterfaces
 {
 namespace IDA
 {
-  class DLLExport ConvFit : public IDATab
+  class DLLExport ConvFit : public IndirectDataAnalysisTab
   {
     Q_OBJECT
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IDATab.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CorrectionsTab.h
similarity index 83%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IDATab.h
rename to Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CorrectionsTab.h
index 27decfb1b050f6bdb7d435cca9bf791ff7d93946..850f14f7e49a4344031b398feb9c20996cb88525 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IDATab.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/CorrectionsTab.h
@@ -1,9 +1,8 @@
-#ifndef MANTIDQTCUSTOMINTERFACESIDA_IDATAB_H_
-#define MANTIDQTCUSTOMINTERFACESIDA_IDATAB_H_
+#ifndef MANTIDQTCUSTOMINTERFACESIDA_CORRECTIONSTAB_H_
+#define MANTIDQTCUSTOMINTERFACESIDA_CORRECTIONSTAB_H_
 
 #include "MantidAPI/AlgorithmManager.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "IndirectDataAnalysis.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "IndirectTab.h"
 
 class QwtPlotCurve;
@@ -44,15 +43,13 @@ namespace MantidQt
 {
 namespace CustomInterfaces
 {
-namespace IDA
-{
-  class DLLExport IDATab : public IndirectTab
+  class DLLExport CorrectionsTab : public IndirectTab
   {
     Q_OBJECT
 
   public:
     /// Constructor
-    IDATab(QWidget * parent = 0);
+    CorrectionsTab(QWidget * parent = 0);
 
     /// Loads the tab's settings.
     void loadTabSettings(const QSettings & settings);
@@ -68,7 +65,7 @@ namespace IDA
     bool checkWorkspaceBinningMatches(Mantid::API::MatrixWorkspace_const_sptr left,
                                       Mantid::API::MatrixWorkspace_const_sptr right);
     /// Adds a unit conversion step to the algorithm queue
-    std::string addConvertUnitsStep(Mantid::API::MatrixWorkspace_sptr ws, const std::string & unitID, const std::string & suffix = "UNIT");
+    std::string addConvertUnitsStep(Mantid::API::MatrixWorkspace_sptr ws, const std::string & unitID, const std::string & suffix = "UNIT", std::string eMode = "");
 
     /// DoubleEditorFactory
     DoubleEditorFactory* m_dblEdFac;
@@ -89,13 +86,8 @@ namespace IDA
 
     /// Overidden by child class.
     virtual void loadSettings(const QSettings & settings) = 0;
-
-    /// A pointer to the parent (friend) IndirectDataAnalysis object.
-    IndirectDataAnalysis * m_parent;
-
   };
-} // namespace IDA
 } // namespace CustomInterfaces
 } // namespace MantidQt
 
-#endif /* MANTIDQTCUSTOMINTERFACESIDA_IDATAB_H_ */
+#endif /* MANTIDQTCUSTOMINTERFACESIDA_CORRECTIONSTAB_H_ */
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/DensityOfStates.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/DensityOfStates.h
index f40d0db4e7495694550fc49e9e5e76f158518ef9..994c7c18a91ae8baa37a450ad72485b27de3ebc4 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/DensityOfStates.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/DensityOfStates.h
@@ -4,39 +4,35 @@
 #include "ui_DensityOfStates.h"
 #include "MantidQtCustomInterfaces/Indirect/IndirectSimulationTab.h"
 
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-  class DLLExport DensityOfStates : public IndirectSimulationTab
-  {
-    Q_OBJECT
-
-    public:
-      DensityOfStates(QWidget * parent = 0);
-
-      QString help() { return "DensityOfStates"; };
-
-      void setup();
-      bool validate();
-      void run();
-
-      /// Load default settings into the interface
-      void loadSettings(const QSettings& settings);
-
-      private slots:
-        void dosAlgoComplete(bool error);
-      void handleFileChange();
-      void ionLoadComplete(bool error);
-
-    private:
-      /// The ui form
-      Ui::DensityOfStates m_uiForm;
-      /// Name of output workspace
-      QString m_outputWsName;
-
-  };
+namespace MantidQt {
+namespace CustomInterfaces {
+class DLLExport DensityOfStates : public IndirectSimulationTab {
+  Q_OBJECT
+
+public:
+  DensityOfStates(QWidget *parent = 0);
+
+  QString help() { return "DensityOfStates"; };
+
+  void setup();
+  bool validate();
+  void run();
+
+  /// Load default settings into the interface
+  void loadSettings(const QSettings &settings);
+
+private slots:
+  void dosAlgoComplete(bool error);
+  void handleFileChange();
+  void ionLoadComplete(bool error);
+
+private:
+  /// The ui form
+  Ui::DensityOfStates m_uiForm;
+  /// Name of output workspace
+  QString m_outputWsName;
+};
 } // namespace CustomInterfaces
 } // namespace MantidQt
 
-#endif //MANTIDQTCUSTOMINTERFACES_DENSITYOFSTATES_H_
+#endif // MANTIDQTCUSTOMINTERFACES_DENSITYOFSTATES_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Elwin.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Elwin.h
index 5ae92c6792679c50b3eca2f3d5c0f046c857fafa..f982c23ed3bdc7a03c253b25ddface858ad3bc72 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Elwin.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Elwin.h
@@ -2,8 +2,8 @@
 #define MANTIDQTCUSTOMINTERFACESIDA_ELWIN_H_
 
 #include "ui_Elwin.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidQtCustomInterfaces/Indirect/IDATab.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidQtCustomInterfaces/Indirect/IndirectDataAnalysisTab.h"
 
 namespace MantidQt
 {
@@ -11,7 +11,7 @@ namespace CustomInterfaces
 {
 namespace IDA
 {
-  class DLLExport Elwin : public IDATab
+  class DLLExport Elwin : public IndirectDataAnalysisTab
   {
     Q_OBJECT
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISCalibration.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISCalibration.h
index e5089329de9bb8f6a35ea236dccab29f5d24d14d..3471a99b11d3180a4ab52a0689e589f72103e29a 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISCalibration.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISCalibration.h
@@ -68,6 +68,9 @@ namespace CustomInterfaces
     Ui::ISISCalibration m_uiForm;
     QString m_lastCalPlotFilename;
 
+    QString m_outputCalibrationName;
+    QString m_outputResolutionName;
+
   };
 } // namespace CustomInterfaces
 } // namespace Mantid
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISDiagnostics.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISDiagnostics.h
index d07b10691bb1b6ef695362a76ead4e2c1fcf022a..1e698cfc92b78d88097db79bcb88868342fca2a5 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISDiagnostics.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISDiagnostics.h
@@ -3,7 +3,7 @@
 
 #include "IndirectDataReductionTab.h"
 #include "ui_ISISDiagnostics.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/System.h"
 
 // Suppress a warning coming out of code that isn't ours
@@ -67,6 +67,7 @@ namespace CustomInterfaces
     virtual bool validate();
 
   private slots:
+    void algorithmComplete(bool error);
     void handleNewFile();
     void sliceTwoRanges(QtProperty*, bool);
     void sliceCalib(bool state);
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISDiagnostics.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISDiagnostics.ui
index f00f6fe4e5dd639e0851f70069862061fe2ba468..007eeb6a811631962d08c570f331b84b65c02434 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISDiagnostics.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISDiagnostics.ui
@@ -153,9 +153,9 @@
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout_3">
       <item>
-       <widget class="QCheckBox" name="ckSave">
+       <widget class="QCheckBox" name="ckPlot">
         <property name="text">
-         <string>Save Result</string>
+         <string>Plot Result</string>
         </property>
        </widget>
       </item>
@@ -173,9 +173,9 @@
        </spacer>
       </item>
       <item>
-       <widget class="QCheckBox" name="ckPlot">
+       <widget class="QCheckBox" name="ckSave">
         <property name="text">
-         <string>Plot Result</string>
+         <string>Save Result</string>
         </property>
        </widget>
       </item>
@@ -202,6 +202,11 @@
    <header>MantidQtMantidWidgets/MWRunFiles.h</header>
   </customwidget>
  </customwidgets>
+ <tabstops>
+  <tabstop>ckUseCalibration</tabstop>
+  <tabstop>ckPlot</tabstop>
+  <tabstop>ckSave</tabstop>
+ </tabstops>
  <resources/>
  <connections/>
 </ui>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISEnergyTransfer.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISEnergyTransfer.ui
index eaa31d88d4364a6c62ac58541321b8c63b65eee0..5ebf68508fa54486b73b3359ceac154ebe5b708c 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISEnergyTransfer.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ISISEnergyTransfer.ui
@@ -36,7 +36,7 @@
         </property>
        </widget>
       </item>
-      <item row="1" column="0">
+      <item row="2" column="0">
        <widget class="MantidQt::MantidWidgets::DataSelector" name="dsCalibrationFile" native="true">
         <property name="enabled">
          <bool>false</bool>
@@ -61,7 +61,7 @@
         </property>
        </widget>
       </item>
-      <item row="1" column="1">
+      <item row="2" column="1">
        <widget class="QCheckBox" name="ckUseCalib">
         <property name="toolTip">
          <string>Use calibration file to adjust for detector efficiency.</string>
@@ -87,51 +87,74 @@
         </property>
        </widget>
       </item>
+      <item row="1" column="1">
+       <widget class="QCheckBox" name="ckLoadLogFiles">
+        <property name="text">
+         <string>Load Log Files</string>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="gbPlotTime">
+    <widget class="QGroupBox" name="gbC2E">
      <property name="title">
-      <string>Plot Time</string>
+      <string>Conversion to Energy Transfer</string>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_6">
+     <layout class="QHBoxLayout" name="horizontalLayout">
       <item>
-       <widget class="QLabel" name="lbPlotTimeSpecMin">
+       <widget class="QLabel" name="lbEFixed">
         <property name="text">
-         <string>Spectra Min:</string>
+         <string>Efixed value:</string>
+        </property>
+        <property name="buddy">
+         <cstring>leEfixed</cstring>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QSpinBox" name="spPlotTimeSpecMin">
-        <property name="minimum">
-         <number>1</number>
+       <widget class="QLineEdit" name="leEfixed">
+        <property name="enabled">
+         <bool>false</bool>
         </property>
-        <property name="maximum">
-         <number>1200</number>
+        <property name="toolTip">
+         <string>Value of Efixed for conversion from time to energy.</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QLabel" name="lbPlotTimeSpecMax">
+       <spacer name="horizontalSpacer_1">
+        <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="lbSpectraMin">
         <property name="text">
-         <string>Spectra Max:</string>
+         <string>Spectra Min:</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QSpinBox" name="spPlotTimeSpecMax">
-        <property name="minimum">
-         <number>1</number>
-        </property>
+       <widget class="QSpinBox" name="spSpectraMin">
         <property name="maximum">
-         <number>1200</number>
+         <number>0</number>
         </property>
        </widget>
       </item>
       <item>
-       <spacer name="space_plotTime">
+       <spacer name="horizontalSpacer_2">
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
@@ -144,15 +167,148 @@
        </spacer>
       </item>
       <item>
-       <widget class="QPushButton" name="pbPlotTime">
-        <property name="toolTip">
-         <string>Plot raw time values.</string>
+       <widget class="QLabel" name="lbSpectraMax">
+        <property name="text">
+         <string>Spectra Max</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QSpinBox" name="spSpectraMax">
+        <property name="maximum">
+         <number>0</number>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="gbGrouping">
+     <property name="title">
+      <string>Detector Grouping</string>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_4">
+      <item>
+       <widget class="QLabel" name="lbGroupingMode">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="layoutDirection">
+         <enum>Qt::LeftToRight</enum>
         </property>
         <property name="text">
-         <string>Plot</string>
+         <string>Mode:</string>
+        </property>
+        <property name="buddy">
+         <cstring>cbGroupingOptions</cstring>
         </property>
        </widget>
       </item>
+      <item>
+       <widget class="QComboBox" name="cbGroupingOptions">
+        <property name="toolTip">
+         <string>Select type of detector grouping to apply.</string>
+        </property>
+        <item>
+         <property name="text">
+          <string>Default</string>
+         </property>
+        </item>
+        <item>
+         <property name="text">
+          <string>Individual</string>
+         </property>
+        </item>
+        <item>
+         <property name="text">
+          <string>Groups</string>
+         </property>
+        </item>
+        <item>
+         <property name="text">
+          <string>All</string>
+         </property>
+        </item>
+        <item>
+         <property name="text">
+          <string>File</string>
+         </property>
+        </item>
+       </widget>
+      </item>
+      <item>
+       <widget class="QStackedWidget" name="swGrouping">
+        <property name="lineWidth">
+         <number>0</number>
+        </property>
+        <property name="currentIndex">
+         <number>0</number>
+        </property>
+        <widget class="QWidget" name="pgMapFile">
+         <layout class="QHBoxLayout" name="horizontalLayout_5">
+          <item>
+           <widget class="MantidQt::MantidWidgets::MWRunFiles" name="dsMapFile" native="true">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>41</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="findRunFiles" stdset="0">
+             <bool>false</bool>
+            </property>
+            <property name="label" stdset="0">
+             <string/>
+            </property>
+            <property name="multipleFiles" stdset="0">
+             <bool>false</bool>
+            </property>
+            <property name="algorithmAndProperty" stdset="0">
+             <string/>
+            </property>
+            <property name="fileExtensions" stdset="0">
+             <stringlist>
+              <string>.map</string>
+             </stringlist>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+        <widget class="QWidget" name="pgMappingGroups">
+         <layout class="QHBoxLayout" name="horizontalLayout_26">
+          <item>
+           <widget class="QLabel" name="lbNoGroups">
+            <property name="text">
+             <string>Number of Groups: </string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QSpinBox" name="spNumberGroups"/>
+          </item>
+          <item>
+           <spacer name="horizontalSpacer_5">
+            <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>
+        <widget class="QWidget" name="pgMappingBlank"/>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
@@ -305,89 +461,6 @@
      </layout>
     </widget>
    </item>
-   <item>
-    <widget class="QGroupBox" name="gbC2E">
-     <property name="title">
-      <string>Conversion to Energy Transfer</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QLabel" name="lbEFixed">
-        <property name="text">
-         <string>Efixed value:</string>
-        </property>
-        <property name="buddy">
-         <cstring>leEfixed</cstring>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLineEdit" name="leEfixed">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="toolTip">
-         <string>Value of Efixed for conversion from time to energy.</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer_1">
-        <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="lbSpectraMin">
-        <property name="text">
-         <string>Spectra Min:</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QSpinBox" name="spSpectraMin">
-        <property name="maximum">
-         <number>0</number>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer_2">
-        <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="lbSpectraMax">
-        <property name="text">
-         <string>Spectra Max</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QSpinBox" name="spSpectraMax">
-        <property name="maximum">
-         <number>0</number>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
    <item>
     <widget class="QGroupBox" name="gbRebin">
      <property name="title">
@@ -654,129 +727,66 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="gbGrouping">
+    <widget class="QGroupBox" name="gbPlotTime">
      <property name="title">
-      <string>Detector Grouping</string>
+      <string>Plot Time</string>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_4">
+     <layout class="QHBoxLayout" name="horizontalLayout_6">
       <item>
-       <widget class="QLabel" name="lbGroupingMode">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
+       <widget class="QLabel" name="lbPlotTimeSpecMin">
+        <property name="text">
+         <string>Spectra Min:</string>
         </property>
-        <property name="layoutDirection">
-         <enum>Qt::LeftToRight</enum>
+       </widget>
+      </item>
+      <item>
+       <widget class="QSpinBox" name="spPlotTimeSpecMin">
+        <property name="minimum">
+         <number>1</number>
         </property>
-        <property name="text">
-         <string>Mode:</string>
+        <property name="maximum">
+         <number>1200</number>
         </property>
-        <property name="buddy">
-         <cstring>cbGroupingOptions</cstring>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLabel" name="lbPlotTimeSpecMax">
+        <property name="text">
+         <string>Spectra Max:</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QComboBox" name="cbGroupingOptions">
-        <property name="toolTip">
-         <string>Select type of detector grouping to apply.</string>
+       <widget class="QSpinBox" name="spPlotTimeSpecMax">
+        <property name="minimum">
+         <number>1</number>
+        </property>
+        <property name="maximum">
+         <number>1200</number>
         </property>
-        <item>
-         <property name="text">
-          <string>Default</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>Individual</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>Groups</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>All</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>File</string>
-         </property>
-        </item>
        </widget>
       </item>
       <item>
-       <widget class="QStackedWidget" name="swGrouping">
-        <property name="lineWidth">
-         <number>0</number>
+       <spacer name="space_plotTime">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
         </property>
-        <property name="currentIndex">
-         <number>0</number>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QPushButton" name="pbPlotTime">
+        <property name="toolTip">
+         <string>Plot raw time values.</string>
+        </property>
+        <property name="text">
+         <string>Plot</string>
         </property>
-        <widget class="QWidget" name="pgMapFile">
-         <layout class="QHBoxLayout" name="horizontalLayout_5">
-          <item>
-           <widget class="MantidQt::MantidWidgets::MWRunFiles" name="dsMapFile" native="true">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-              <horstretch>0</horstretch>
-              <verstretch>41</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="findRunFiles" stdset="0">
-             <bool>false</bool>
-            </property>
-            <property name="label" stdset="0">
-             <string/>
-            </property>
-            <property name="multipleFiles" stdset="0">
-             <bool>false</bool>
-            </property>
-            <property name="algorithmAndProperty" stdset="0">
-             <string/>
-            </property>
-            <property name="fileExtensions" stdset="0">
-             <stringlist>
-              <string>.map</string>
-             </stringlist>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </widget>
-        <widget class="QWidget" name="pgMappingGroups">
-         <layout class="QHBoxLayout" name="horizontalLayout_26">
-          <item>
-           <widget class="QLabel" name="lbNoGroups">
-            <property name="text">
-             <string>Number of Groups: </string>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QSpinBox" name="spNumberGroups"/>
-          </item>
-          <item>
-           <spacer name="horizontalSpacer_5">
-            <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>
-        <widget class="QWidget" name="pgMappingBlank"/>
        </widget>
       </item>
      </layout>
@@ -949,6 +959,41 @@
    <header>MantidQtMantidWidgets/MWRunFiles.h</header>
   </customwidget>
  </customwidgets>
+ <tabstops>
+  <tabstop>ckSumFiles</tabstop>
+  <tabstop>ckLoadLogFiles</tabstop>
+  <tabstop>ckUseCalib</tabstop>
+  <tabstop>leEfixed</tabstop>
+  <tabstop>spSpectraMin</tabstop>
+  <tabstop>spSpectraMax</tabstop>
+  <tabstop>cbGroupingOptions</tabstop>
+  <tabstop>spNumberGroups</tabstop>
+  <tabstop>ckBackgroundRemoval</tabstop>
+  <tabstop>spBackgroundStart</tabstop>
+  <tabstop>spBackgroundEnd</tabstop>
+  <tabstop>ckDetailedBalance</tabstop>
+  <tabstop>spDetailedBalance</tabstop>
+  <tabstop>ckScaleMultiplier</tabstop>
+  <tabstop>spScaleMultiplier</tabstop>
+  <tabstop>ckDoNotRebin</tabstop>
+  <tabstop>cbRebinType</tabstop>
+  <tabstop>spRebinLow</tabstop>
+  <tabstop>spRebinWidth</tabstop>
+  <tabstop>spRebinHigh</tabstop>
+  <tabstop>leRebinString</tabstop>
+  <tabstop>spPlotTimeSpecMin</tabstop>
+  <tabstop>spPlotTimeSpecMax</tabstop>
+  <tabstop>pbPlotTime</tabstop>
+  <tabstop>cbPlotType</tabstop>
+  <tabstop>ckFold</tabstop>
+  <tabstop>ckCm1Units</tabstop>
+  <tabstop>ckSaveSPE</tabstop>
+  <tabstop>ckSaveNexus</tabstop>
+  <tabstop>ckSaveNXSPE</tabstop>
+  <tabstop>ckSaveASCII</tabstop>
+  <tabstop>ckSaveAclimax</tabstop>
+  <tabstop>ckSaveDaveGrp</tabstop>
+ </tabstops>
  <resources/>
  <connections>
   <connection>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.h
index 83cdc666b5dac642bdb350522db601109761a988..ee5e5bab629c62219b9f1dc28dd4f98bbd368a65 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.h
@@ -11,91 +11,85 @@
 #include <Poco/NObserver.h>
 #include "MantidKernel/ConfigService.h"
 
-namespace MantidQt
-{
-  namespace CustomInterfaces
-  {
-    /** 
-    This class defines the Indirect Bayes interface. It handles the creation of the interface window and 
-		handles the interaction between the child tabs on the window.
-
-    @author Samuel Jackson, STFC
-
-    Copyright &copy; 2010 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 IndirectBayes : public MantidQt::API::UserSubWindow
-    {
-      Q_OBJECT
-
-		public: //public constants and enums
-
-      /// Enumeration for the index of each tab
-			enum TabChoice
-			{
-				RES_NORM,
-				QUASI,
-				STRETCH,
-				JUMP_FIT
-			};
-
-    public: // public constructor, destructor and functions
-      /// Default Constructor
-      IndirectBayes(QWidget *parent = 0);
-      ///Destructor
-      ~IndirectBayes();
-      /// Interface name
-      static std::string name() { return "Bayes"; }
-      // This interface's categories.
-      static QString categoryInfo() { return "Indirect"; }
-      virtual void initLayout();
-
-    private slots:
-      // Run the appropriate action depending based on the selected tab
-
-      /// Slot for clicking on the run button
-      void runClicked();
-      /// Slot for clicking on the hlep button
-      void helpClicked();
-      /// Slot for clicking on the manage directories button
-      void manageUserDirectories();
-      /// Slot showing a message box to the user
-      void showMessageBox(const QString& message);
-
-		private:
-      /// Called upon a close event.
-      virtual void closeEvent(QCloseEvent*);
-      /// handle POCO event
-      void handleDirectoryChange(Mantid::Kernel::ConfigValChangeNotification_ptr pNf);
-      /// Load default interface settings for each tab
-      void loadSettings();
-
-      /// Map of tabs indexed by position on the window
-			std::map<unsigned int, IndirectBayesTab*> m_bayesTabs;
-      /// Change Observer for ConfigService (monitors user directories)
-      Poco::NObserver<IndirectBayes, Mantid::Kernel::ConfigValChangeNotification> m_changeObserver;
-      ///Main interface window
-      Ui::IndirectBayes m_uiForm;
-    };
-  }
+namespace MantidQt {
+namespace CustomInterfaces {
+/**
+This class defines the Indirect Bayes interface. It handles the creation of the
+interface window and handles the interaction between the child tabs on the
+window.
+
+@author Samuel Jackson, STFC
+
+Copyright &copy; 2010 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 IndirectBayes : public MantidQt::API::UserSubWindow {
+  Q_OBJECT
+
+public: // public constants and enums
+  /// Enumeration for the index of each tab
+  enum TabChoice { RES_NORM, QUASI, STRETCH };
+
+public: // public constructor, destructor and functions
+  /// Default Constructor
+  IndirectBayes(QWidget *parent = 0);
+  /// Destructor
+  ~IndirectBayes();
+  /// Interface name
+  static std::string name() { return "Bayes"; }
+  // This interface's categories.
+  static QString categoryInfo() { return "Indirect"; }
+  virtual void initLayout();
+
+private slots:
+  // Run the appropriate action depending based on the selected tab
+
+  /// Slot for clicking on the run button
+  void runClicked();
+  /// Slot for clicking on the hlep button
+  void helpClicked();
+  /// Slot for clicking on the manage directories button
+  void manageUserDirectories();
+  /// Slot showing a message box to the user
+  void showMessageBox(const QString &message);
+
+private:
+  /// Called upon a close event.
+  virtual void closeEvent(QCloseEvent *);
+  /// handle POCO event
+  void
+  handleDirectoryChange(Mantid::Kernel::ConfigValChangeNotification_ptr pNf);
+  /// Load default interface settings for each tab
+  void loadSettings();
+
+  /// Map of tabs indexed by position on the window
+  std::map<unsigned int, IndirectBayesTab *> m_bayesTabs;
+  /// Change Observer for ConfigService (monitors user directories)
+  Poco::NObserver<IndirectBayes, Mantid::Kernel::ConfigValChangeNotification>
+      m_changeObserver;
+  /// Main interface window
+  Ui::IndirectBayes m_uiForm;
+};
+}
 }
 
 #endif
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.ui
index 82a56bbfdfbc7e739f117779d89c31ecbd760bff..a258af6592862e57f2f471a7ec5d87ef1ac82e44 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayes.ui
@@ -35,11 +35,6 @@
        <string>Stretch</string>
       </attribute>
      </widget>
-     <widget class="QWidget" name="JumpFit">
-      <attribute name="title">
-       <string>JumpFit</string>
-      </attribute>
-     </widget>
     </widget>
    </item>
    <item>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayesTab.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayesTab.h
index cbb391a48c3b784856c5ca431bca8945caff7e3f..bc8f10d5a5d1303245b290762bab677977c565d5 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayesTab.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectBayesTab.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_INDIRECTBAYESTAB_H_
 #define MANTID_CUSTOMINTERFACES_INDIRECTBAYESTAB_H_
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "IndirectTab.h"
 #include "MantidQtMantidWidgets/RangeSelector.h"
 #include "MantidQtAPI/AlgorithmRunner.h"
@@ -20,95 +20,84 @@
 
 // Suppress a warning coming out of code that isn't ours
 #if defined(__INTEL_COMPILER)
-  #pragma warning disable 1125
+#pragma warning disable 1125
 #elif defined(__GNUC__)
-  #if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6 )
-    #pragma GCC diagnostic push
-  #endif
-  #pragma GCC diagnostic ignored "-Woverloaded-virtual"
+#if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6)
+#pragma GCC diagnostic push
+#endif
+#pragma GCC diagnostic ignored "-Woverloaded-virtual"
 #endif
 #include "DoubleEditorFactory.h"
 #if defined(__INTEL_COMPILER)
-  #pragma warning enable 1125
+#pragma warning enable 1125
 #elif defined(__GNUC__)
-  #if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6 )
-    #pragma GCC diagnostic pop
-  #endif
+#if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6)
+#pragma GCC diagnostic pop
+#endif
 #endif
 
-namespace MantidQt
-{
-	namespace CustomInterfaces
-	{
-		/**
-			This class defines a abstract base class for the different tabs of the Indirect Bayes interface.
-			Any joint functionality shared between each of the tabs should be implemented here as well as defining
-			shared member functions.
-
-			@author Samuel Jackson, STFC
-
-			Copyright &copy; 2013 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>
-		*/
-
-		/// precision of double properties in bayes tabs
-		static const unsigned int NUM_DECIMALS = 6;
-		/// precision for integer properties in bayes tabs
-		static const unsigned int INT_DECIMALS = 0;
-
-		class DLLExport IndirectBayesTab : public IndirectTab
-		{
-			Q_OBJECT
-
-		public:
-			IndirectBayesTab(QWidget * parent = 0);
-			~IndirectBayesTab();
-
-			/// Base methods implemented in derived classes
-			virtual void loadSettings(const QSettings& settings) = 0;
-
-		signals:
-			/// Send signal to parent window to show a message box to user
-			void showMessageBox(const QString& message);
-
-    protected slots:
-			/// Slot to update the guides when the range properties change
-			virtual void updateProperties(QtProperty* prop, double val) = 0;
-
-		protected:
-			/// Function to run a string as python code
-			void runPythonScript(const QString& pyInput);
-			/// Function to read an instrument's resolution from the IPF using a string
-    	bool getInstrumentResolution(const QString& filename, QPair<double, double> & res);
-			/// Function to read an instrument's resolution from the IPF using a workspace pointer
-			bool getInstrumentResolution(Mantid::API::MatrixWorkspace_const_sptr ws, QPair<double, double> & res);
-			/// Function to set the position of the lower guide on the plot
-	    void updateLowerGuide(MantidQt::MantidWidgets::RangeSelector* rs, QtProperty* lower, QtProperty* upper, double value);
-			/// Function to set the position of the upper guide on the plot
-	    void updateUpperGuide(MantidQt::MantidWidgets::RangeSelector* rs, QtProperty* lower, QtProperty* upper, double value);
-
-			/// Tree of the properties
-			QtTreePropertyBrowser* m_propTree;
-
-		};
-	} // namespace CustomInterfaces
+namespace MantidQt {
+namespace CustomInterfaces {
+/**
+This class defines a abstract base class for the different tabs of the Indirect
+Bayes interface.
+Any joint functionality shared between each of the tabs should be implemented
+here as well as defining shared member functions.
+
+@author Samuel Jackson, STFC
+
+Copyright &copy; 2013 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>
+*/
+
+/// precision of double properties in bayes tabs
+static const unsigned int NUM_DECIMALS = 6;
+/// precision for integer properties in bayes tabs
+static const unsigned int INT_DECIMALS = 0;
+
+class DLLExport IndirectBayesTab : public IndirectTab {
+  Q_OBJECT
+
+public:
+  IndirectBayesTab(QWidget *parent = 0);
+  ~IndirectBayesTab();
+
+  /// Base methods implemented in derived classes
+  virtual void loadSettings(const QSettings &settings) = 0;
+
+signals:
+  /// Send signal to parent window to show a message box to user
+  void showMessageBox(const QString &message);
+
+protected slots:
+  /// Slot to update the guides when the range properties change
+  virtual void updateProperties(QtProperty *prop, double val) = 0;
+
+protected:
+  /// Function to run a string as python code
+  void runPythonScript(const QString &pyInput);
+  /// Tree of the properties
+  QtTreePropertyBrowser *m_propTree;
+};
+} // namespace CustomInterfaces
 } // namespace Mantid
 
 #endif
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectCorrections.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectCorrections.h
new file mode 100644
index 0000000000000000000000000000000000000000..7834f259b4ee5bdd30f1d690197b21b1b83186fe
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectCorrections.h
@@ -0,0 +1,94 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_INDIRECTCORRECTIONS_H_
+#define MANTIDQTCUSTOMINTERFACES_INDIRECTCORRECTIONS_H_
+
+//----------------------
+// Includes
+//----------------------
+#include "ui_IndirectCorrections.h"
+#include "MantidQtAPI/UserSubWindow.h"
+#include "IndirectTab.h"
+
+#include <Poco/NObserver.h>
+#include "MantidKernel/ConfigService.h"
+
+class DoubleEditorFactory;
+class QtCheckBoxFactory;
+class QtStringPropertyManager;
+
+namespace MantidQt
+{
+namespace CustomInterfaces
+{
+  // The assumption is made elsewhere that the ordering of these enums matches the ordering of the
+  // tabs as they appear in the interface itself.
+  enum CorrectionTabChoice
+  {
+    CALC_CORR,
+    APPLY_CORR,
+    ABSORPTION_CORRECTIONS
+  };
+
+  // Forward Declaration
+  class CorrectionsTab;
+
+  /**
+   * The IndirectCorrections class is the main class that handles the interface and controls
+   * its tabs.
+   *
+   * Is a friend to the CorrectionsTab class.
+   */
+  class IndirectCorrections : public MantidQt::API::UserSubWindow
+  {
+    Q_OBJECT
+
+    /// Allow CorrectionsTab to have access.
+    friend class CorrectionsTab;
+
+  public:
+    /// The name of the interface as registered into the factory
+    static std::string name() { return "Corrections"; }
+    // This interface's categories.
+    static QString categoryInfo() { return "Indirect"; }
+    /// Default Constructor
+    IndirectCorrections(QWidget *parent = 0);
+
+  private:
+    /// Initialize the layout
+    virtual void initLayout();
+    /// Initialize Python-dependent sections
+    virtual void initLocalPython();
+    /// Load the settings of the interface (and child tabs).
+    void loadSettings();
+
+    /// Called upon a close event.
+    virtual void closeEvent(QCloseEvent*);
+    /// handle POCO event
+    void handleDirectoryChange(Mantid::Kernel::ConfigValChangeNotification_ptr pNf);
+
+  private slots:
+    /// Called when the user clicks the Py button
+    void exportTabPython();
+    /// Called when the Run button is pressed.  Runs current tab.
+    void run();
+    /// Opens a directory dialog.
+    void openDirectoryDialog();
+    /// Opens the Mantid Wiki web page of the current tab.
+    void help();
+    /// Slot showing a message box to the user
+    void showMessageBox(const QString& message);
+
+  private:
+    /// UI form containing all Qt elements.
+    Ui::IndirectCorrections m_uiForm;
+
+    /// Change Observer for ConfigService (monitors user directories)
+    Poco::NObserver<IndirectCorrections, Mantid::Kernel::ConfigValChangeNotification> m_changeObserver;
+
+    /// Map of unsigned int (TabChoice enum values) to tabs.
+    std::map<unsigned int, CorrectionsTab*> m_tabs;
+
+  };
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif /* MANTIDQTCUSTOMINTERFACES_INDIRECTCORRECTIONS_H_ */
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectCorrections.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectCorrections.ui
new file mode 100644
index 0000000000000000000000000000000000000000..362ff31f3e9bd6efeeb6582b62928885bfc699a2
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectCorrections.ui
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IndirectCorrections</class>
+ <widget class="QMainWindow" name="IndirectCorrections">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>700</width>
+    <height>700</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Indirect Corrections</string>
+  </property>
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <widget class="QTabWidget" name="twTabs">
+      <property name="enabled">
+       <bool>true</bool>
+      </property>
+      <property name="tabShape">
+       <enum>QTabWidget::Rounded</enum>
+      </property>
+      <property name="currentIndex">
+       <number>0</number>
+      </property>
+      <widget class="QWidget" name="tabCalculatePaalmanPings">
+       <attribute name="title">
+        <string>Calculate Paalman Pings</string>
+       </attribute>
+      </widget>
+      <widget class="QWidget" name="tabApplyPaalmanPings">
+       <attribute name="title">
+        <string>Apply Paalman Pings</string>
+       </attribute>
+      </widget>
+      <widget class="QWidget" name="tabAbsorptionCorrections">
+       <attribute name="title">
+        <string>Absorption</string>
+       </attribute>
+      </widget>
+     </widget>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="layout_bottom">
+      <item>
+       <widget class="QPushButton" name="pbHelp">
+        <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="maximumSize">
+         <size>
+          <width>25</width>
+          <height>25</height>
+         </size>
+        </property>
+        <property name="toolTip">
+         <string>Open interface help page in your web browser.</string>
+        </property>
+        <property name="text">
+         <string>?</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QPushButton" name="pbPythonExport">
+        <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="maximumSize">
+         <size>
+          <width>30</width>
+          <height>25</height>
+         </size>
+        </property>
+        <property name="toolTip">
+         <string>Export a Python script for the algorithms run on this tab.</string>
+        </property>
+        <property name="text">
+         <string>Py</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer_14">
+        <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="pbRun">
+        <property name="text">
+         <string>Run</string>
+        </property>
+       </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>
+      <item>
+       <widget class="QPushButton" name="pbManageDirs">
+        <property name="text">
+         <string>Manage Directories</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <tabstops>
+  <tabstop>twTabs</tabstop>
+  <tabstop>pbHelp</tabstop>
+  <tabstop>pbRun</tabstop>
+  <tabstop>pbManageDirs</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.h
index b7a6e8d38dcad15f3dad547f513f198be5b434a5..1be679e74d3d80abd193d97db933b02311ec971b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.h
@@ -15,93 +15,82 @@ class DoubleEditorFactory;
 class QtCheckBoxFactory;
 class QtStringPropertyManager;
 
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-namespace IDA
-{
-  // The assumption is made elsewhere that the ordering of these enums matches the ordering of the
-  // tabs as they appear in the interface itself.
-  enum TabChoice
-  {
-    ELWIN,
-    MSD_FIT,
-    IQT,
-    IQT_FIT,
-    CONV_FIT,
-    CALC_CORR,
-    APPLY_CORR,
-    ABSORPTION_CORRECTIONS
-  };
-
-  // Number of decimal places in property browsers.
-  static const unsigned int NUM_DECIMALS = 6;
-
-  // Forward Declaration
-  class IDATab;
-
-  /**
-   * The IndirectDataAnalysis class is the main class that handles the interface and controls
-   * its tabs.
-   *
-   * Is a friend to the IDATab class.
-   */
-  class IndirectDataAnalysis : public MantidQt::API::UserSubWindow
-  {
-    Q_OBJECT
-
-    /// Allow IDATab to have access.
-    friend class IDATab;
-
-  public:
-    /// The name of the interface as registered into the factory
-    static std::string name() { return "Data Analysis"; }
-    // This interface's categories.
-    static QString categoryInfo() { return "Indirect"; }
-    /// Default Constructor
-    IndirectDataAnalysis(QWidget *parent = 0);
-
-  private:
-    /// Initialize the layout
-    virtual void initLayout();
-    /// Initialize Python-dependent sections
-    virtual void initLocalPython();
-    /// Load the settings of the interface (and child tabs).
-    void loadSettings();
-
-    /// Called upon a close event.
-    virtual void closeEvent(QCloseEvent*);
-    /// handle POCO event
-    void handleDirectoryChange(Mantid::Kernel::ConfigValChangeNotification_ptr pNf);
-
-  private slots:
-    /// Called when the user clicks the Py button
-    void exportTabPython();
-    /// Called when the Run button is pressed.  Runs current tab.
-    void run();
-    /// Opens a directory dialog.
-    void openDirectoryDialog();
-    /// Opens the Mantid Wiki web page of the current tab.
-    void help();
-    /// Slot showing a message box to the user
-    void showMessageBox(const QString& message);
-
-  private:
-    /// UI form containing all Qt elements.
-    Ui::IndirectDataAnalysis m_uiForm;
-    /// Integer validator
-    QIntValidator* m_valInt;
-    /// Double validator
-    QDoubleValidator* m_valDbl;
-
-    /// Change Observer for ConfigService (monitors user directories)
-    Poco::NObserver<IndirectDataAnalysis, Mantid::Kernel::ConfigValChangeNotification> m_changeObserver;
-
-    /// Map of unsigned int (TabChoice enum values) to tabs.
-    std::map<unsigned int, IDATab*> m_tabs;
-
-  };
+namespace MantidQt {
+namespace CustomInterfaces {
+namespace IDA {
+// The assumption is made elsewhere that the ordering of these enums matches the
+// ordering of the
+// tabs as they appear in the interface itself.
+enum IDATabChoice { ELWIN, MSD_FIT, IQT, IQT_FIT, CONV_FIT, JUMP_FIT };
+
+// Number of decimal places in property browsers.
+static const unsigned int NUM_DECIMALS = 6;
+
+// Forward Declaration
+class IndirectDataAnalysisTab;
+
+/**
+ * The IndirectDataAnalysis class is the main class that handles the interface
+ *and controls
+ * its tabs.
+ *
+ * Is a friend to the IndirectDataAnalysisTab class.
+ */
+class IndirectDataAnalysis : public MantidQt::API::UserSubWindow {
+  Q_OBJECT
+
+  /// Allow IndirectDataAnalysisTab to have access.
+  friend class IndirectDataAnalysisTab;
+
+public:
+  /// The name of the interface as registered into the factory
+  static std::string name() { return "Data Analysis"; }
+  // This interface's categories.
+  static QString categoryInfo() { return "Indirect"; }
+  /// Default Constructor
+  IndirectDataAnalysis(QWidget *parent = 0);
+
+private:
+  /// Initialize the layout
+  virtual void initLayout();
+  /// Initialize Python-dependent sections
+  virtual void initLocalPython();
+  /// Load the settings of the interface (and child tabs).
+  void loadSettings();
+
+  /// Called upon a close event.
+  virtual void closeEvent(QCloseEvent *);
+  /// handle POCO event
+  void
+  handleDirectoryChange(Mantid::Kernel::ConfigValChangeNotification_ptr pNf);
+
+private slots:
+  /// Called when the user clicks the Py button
+  void exportTabPython();
+  /// Called when the Run button is pressed.  Runs current tab.
+  void run();
+  /// Opens a directory dialog.
+  void openDirectoryDialog();
+  /// Opens the Mantid Wiki web page of the current tab.
+  void help();
+  /// Slot showing a message box to the user
+  void showMessageBox(const QString &message);
+
+private:
+  /// UI form containing all Qt elements.
+  Ui::IndirectDataAnalysis m_uiForm;
+  /// Integer validator
+  QIntValidator *m_valInt;
+  /// Double validator
+  QDoubleValidator *m_valDbl;
+
+  /// Change Observer for ConfigService (monitors user directories)
+  Poco::NObserver<IndirectDataAnalysis,
+                  Mantid::Kernel::ConfigValChangeNotification> m_changeObserver;
+
+  /// Map of unsigned int (TabChoice enum values) to tabs.
+  std::map<unsigned int, IndirectDataAnalysisTab *> m_tabs;
+};
 } // namespace IDA
 } // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.ui
index 0c5b776da6731ffdc733f600a9968daae3e76e6e..ff15d9e28daecb2774c91d8159e394fab3713440 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>850</width>
-    <height>700</height>
+    <width>700</width>
+    <height>600</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -51,21 +51,11 @@
         <string>ConvFit</string>
        </attribute>
       </widget>
-      <widget class="QWidget" name="tabCalcCorr">
-       <attribute name="title">
-        <string>Calculate Corrections</string>
-       </attribute>
-      </widget>
-      <widget class="QWidget" name="tabApplyCorr">
-       <attribute name="title">
-        <string>Apply Corrections</string>
-       </attribute>
-      </widget>
-      <widget class="QWidget" name="tabAbsorptionCorrections">
-       <attribute name="title">
-        <string>Absorption Corrections</string>
-       </attribute>
-      </widget>
+       <widget class="QWidget" name="tabJumpFit">
+        <attribute name="title">
+         <string>JumpFit</string>
+        </attribute>
+       </widget>
      </widget>
     </item>
     <item>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysisTab.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysisTab.h
new file mode 100644
index 0000000000000000000000000000000000000000..bc1402ede91ddaf2ddacab57ef0c894725445845
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDataAnalysisTab.h
@@ -0,0 +1,96 @@
+#ifndef MANTIDQTCUSTOMINTERFACESIDA_IDATAB_H_
+#define MANTIDQTCUSTOMINTERFACESIDA_IDATAB_H_
+
+#include "MantidAPI/AlgorithmManager.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "IndirectDataAnalysis.h"
+#include "IndirectTab.h"
+
+class QwtPlotCurve;
+class QwtPlot;
+class QSettings;
+class QString;
+
+namespace MantidQt
+{
+  namespace MantidWidgets
+  {
+    class RangeSelector;
+  }
+}
+
+// Suppress a warning coming out of code that isn't ours
+#if defined(__INTEL_COMPILER)
+  #pragma warning disable 1125
+#elif defined(__GNUC__)
+  #if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6 )
+    #pragma GCC diagnostic push
+  #endif
+  #pragma GCC diagnostic ignored "-Woverloaded-virtual"
+#endif
+#include "qttreepropertybrowser.h"
+#include "qtpropertymanager.h"
+#include "qteditorfactory.h"
+#include "DoubleEditorFactory.h"
+#if defined(__INTEL_COMPILER)
+  #pragma warning enable 1125
+#elif defined(__GNUC__)
+  #if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6 )
+    #pragma GCC diagnostic pop
+  #endif
+#endif
+
+namespace MantidQt
+{
+namespace CustomInterfaces
+{
+namespace IDA
+{
+  class DLLExport IndirectDataAnalysisTab : public IndirectTab
+  {
+    Q_OBJECT
+
+  public:
+    /// Constructor
+    IndirectDataAnalysisTab(QWidget * parent = 0);
+
+    /// Loads the tab's settings.
+    void loadTabSettings(const QSettings & settings);
+
+  signals:
+		/// Send signal to parent window to show a message box to user
+		void showMessageBox(const QString& message);
+
+  protected:
+    /// Function to run a string as python code
+    void runPythonScript(const QString& pyInput);
+
+    /// DoubleEditorFactory
+    DoubleEditorFactory* m_dblEdFac;
+    /// QtCheckBoxFactory
+    QtCheckBoxFactory* m_blnEdFac;
+
+  protected slots:
+    /// Slot that can be called when a user eidts an input.
+    void inputChanged();
+
+  private:
+    /// Overidden by child class.
+    virtual void setup() = 0;
+    /// Overidden by child class.
+    virtual void run() = 0;
+    /// Overidden by child class.
+    virtual bool validate() = 0;
+
+    /// Overidden by child class.
+    virtual void loadSettings(const QSettings & settings) = 0;
+
+    /// A pointer to the parent (friend) IndirectDataAnalysis object.
+    IndirectDataAnalysis * m_parent;
+
+  };
+} // namespace IDA
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif /* MANTIDQTCUSTOMINTERFACESIDA_IDATAB_H_ */
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.h
index 684be8368bd0770625039dfde2ec550efac68dbc..b34086cc7f2c634d4982b2f804395a9786dbcbfd 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.h
@@ -9,12 +9,9 @@
 #include "MantidQtAPI/BatchAlgorithmRunner.h"
 #include "MantidQtAPI/UserSubWindow.h"
 
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-class IndirectDiffractionReduction : public MantidQt::API::UserSubWindow
-{
+namespace MantidQt {
+namespace CustomInterfaces {
+class IndirectDiffractionReduction : public MantidQt::API::UserSubWindow {
   Q_OBJECT
 
 public:
@@ -29,9 +26,10 @@ public:
   ~IndirectDiffractionReduction();
 
 public slots:
-  void instrumentSelected(const QString & instrumentName, const QString & analyserName,
-      const QString & reflectionName);
-  void demonRun();
+  void instrumentSelected(const QString &instrumentName,
+                          const QString &analyserName,
+                          const QString &reflectionName);
+  void run();
   void openDirectoryDialog();
   void help();
   void plotResults(bool error);
@@ -51,23 +49,21 @@ private:
   bool validateVanCal();
 
   Mantid::API::MatrixWorkspace_sptr loadInstrument(std::string instrumentName,
-      std::string reflection = "");
+                                                   std::string reflection = "");
 
   void runGenericReduction(QString instName, QString mode);
   void saveGenericReductions();
   void runOSIRISdiffonlyReduction();
 
 private:
-  Ui::IndirectDiffractionReduction m_uiForm;  /// The form generated using Qt Designer
-  QIntValidator * m_valInt;
-  QDoubleValidator * m_valDbl;
-  QString m_settingsGroup;                    /// The settings group
+  Ui::IndirectDiffractionReduction
+      m_uiForm; /// The form generated using Qt Designer
+  QDoubleValidator *m_valDbl;
+  QString m_settingsGroup; /// The settings group
   MantidQt::API::BatchAlgorithmRunner *m_batchAlgoRunner;
   std::vector<std::string> m_plotWorkspaces;
-
 };
-
 }
 }
 
-#endif //MANTIDQTCUSTOMINTERFACES_INDIRECTDIFFRACTIONREDUCTION_H_
+#endif // MANTIDQTCUSTOMINTERFACES_INDIRECTDIFFRACTIONREDUCTION_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.ui
index 16bd3b464f97fe33f26ebf7636ff86022b6a6011..1905e08c0edc14ba5a6e6d97b4af01bc3fee9ee3 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectDiffractionReduction.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>495</width>
-    <height>500</height>
+    <width>500</width>
+    <height>600</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -59,60 +59,122 @@
       <property name="title">
        <string>Input</string>
       </property>
-      <layout class="QVBoxLayout" name="verticalLayout_4">
+      <layout class="QGridLayout" name="gridLayout">
        <property name="margin">
         <number>6</number>
        </property>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
-         <item>
-          <widget class="MantidQt::MantidWidgets::MWRunFiles" name="dem_rawFiles" native="true">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>41</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="label" stdset="0">
-            <string>Run Numbers</string>
-           </property>
-           <property name="multipleFiles" stdset="0">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QCheckBox" name="dem_ckSumFiles">
-           <property name="text">
-            <string>Sum Files</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
+       <item row="2" column="0">
+        <widget class="QLabel" name="lbSpecMin">
+         <property name="text">
+          <string>Spectra Min:</string>
+         </property>
+        </widget>
        </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_11">
-         <item>
-          <widget class="QLabel" name="label">
-           <property name="text">
-            <string>Spectra Min</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="set_leSpecMin"/>
-         </item>
-         <item>
-          <widget class="QLabel" name="label_2">
-           <property name="text">
-            <string>Spectra Max</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="set_leSpecMax"/>
-         </item>
-        </layout>
+       <item row="2" column="1">
+        <widget class="QSpinBox" name="spSpecMin">
+         <property name="minimum">
+          <number>1</number>
+         </property>
+         <property name="maximum">
+          <number>5000</number>
+         </property>
+        </widget>
+       </item>
+       <item row="5" column="0">
+        <widget class="QCheckBox" name="ckUseCan">
+         <property name="text">
+          <string>Use Container:</string>
+         </property>
+        </widget>
+       </item>
+       <item row="4" column="0">
+        <widget class="QLabel" name="lbSpecMax">
+         <property name="text">
+          <string>Spectra Max:</string>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="2">
+        <widget class="QCheckBox" name="ckSumFiles">
+         <property name="text">
+          <string>Sum Files</string>
+         </property>
+        </widget>
+       </item>
+       <item row="4" column="1">
+        <widget class="QSpinBox" name="spSpecMax">
+         <property name="minimum">
+          <number>1</number>
+         </property>
+         <property name="maximum">
+          <number>5000</number>
+         </property>
+        </widget>
+       </item>
+       <item row="4" column="2">
+        <widget class="QCheckBox" name="ckLoadLogs">
+         <property name="text">
+          <string>Load Log Files</string>
+         </property>
+         <property name="checked">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="5" column="1" colspan="2">
+        <widget class="MantidQt::MantidWidgets::MWRunFiles" name="rfCanFiles" native="true">
+         <property name="enabled">
+          <bool>false</bool>
+         </property>
+         <property name="label" stdset="0">
+          <string/>
+         </property>
+         <property name="multipleFiles" stdset="0">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="0" colspan="3">
+        <widget class="MantidQt::MantidWidgets::MWRunFiles" name="rfSampleFiles" native="true">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>41</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="label" stdset="0">
+          <string>Run Numbers</string>
+         </property>
+         <property name="multipleFiles" stdset="0">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="6" column="0">
+        <widget class="QCheckBox" name="ckCanScale">
+         <property name="enabled">
+          <bool>false</bool>
+         </property>
+         <property name="text">
+          <string>Scale Container:</string>
+         </property>
+        </widget>
+       </item>
+       <item row="6" column="1">
+        <widget class="QDoubleSpinBox" name="spCanScale">
+         <property name="enabled">
+          <bool>false</bool>
+         </property>
+         <property name="decimals">
+          <number>3</number>
+         </property>
+         <property name="singleStep">
+          <double>0.100000000000000</double>
+         </property>
+         <property name="value">
+          <double>1.000000000000000</double>
+         </property>
+        </widget>
        </item>
       </layout>
      </widget>
@@ -126,7 +188,7 @@
        </sizepolicy>
       </property>
       <property name="currentIndex">
-       <number>0</number>
+       <number>1</number>
       </property>
       <widget class="QWidget" name="pageCalibration">
        <property name="sizePolicy">
@@ -144,38 +206,73 @@
           <property name="title">
            <string>Calibration</string>
           </property>
-          <layout class="QVBoxLayout" name="verticalLayout">
+          <layout class="QGridLayout" name="gridLayout_2">
            <property name="margin">
             <number>6</number>
            </property>
-           <item>
-            <widget class="MantidQt::MantidWidgets::MWRunFiles" name="dem_calFile" native="true">
+           <item row="4" column="0" colspan="2">
+            <widget class="MantidQt::MantidWidgets::MWRunFiles" name="rfVanadiumFile" native="true">
+             <property name="enabled">
+              <bool>true</bool>
+             </property>
+             <property name="minimumSize">
+              <size>
+               <width>0</width>
+               <height>21</height>
+              </size>
+             </property>
              <property name="label" stdset="0">
-              <string>Cal File</string>
+              <string>Vanadium Runs</string>
              </property>
              <property name="multipleFiles" stdset="0">
-              <bool>false</bool>
+              <bool>true</bool>
              </property>
-             <property name="optional" stdset="0">
+             <property name="instrumentOverride" stdset="0">
+              <string>OSIRIS</string>
+             </property>
+            </widget>
+           </item>
+           <item row="5" column="1">
+            <widget class="QSpinBox" name="spDRange">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="fileExtensions" stdset="0">
-              <stringlist>
-               <string>.cal</string>
-              </stringlist>
+             <property name="minimum">
+              <number>1</number>
+             </property>
+             <property name="maximum">
+              <number>11</number>
              </property>
             </widget>
            </item>
-           <item>
-            <widget class="MantidQt::MantidWidgets::MWRunFiles" name="dem_vanadiumFile" native="true">
-             <property name="enabled">
-              <bool>true</bool>
+           <item row="5" column="0">
+            <widget class="QCheckBox" name="ckManualDRange">
+             <property name="text">
+              <string>Manual dRange:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="0" colspan="2">
+            <widget class="MantidQt::MantidWidgets::MWRunFiles" name="rfCalFile" native="true">
+             <property name="minimumSize">
+              <size>
+               <width>0</width>
+               <height>21</height>
+              </size>
              </property>
              <property name="label" stdset="0">
-              <string>Vanadium Runs</string>
+              <string>Cal File</string>
              </property>
              <property name="multipleFiles" stdset="0">
-              <bool>true</bool>
+              <bool>false</bool>
+             </property>
+             <property name="optional" stdset="0">
+              <bool>false</bool>
+             </property>
+             <property name="fileExtensions" stdset="0">
+              <stringlist>
+               <string>.cal</string>
+              </stringlist>
              </property>
             </widget>
            </item>
@@ -443,6 +540,94 @@
    <header>MantidQtMantidWidgets/IndirectInstrumentConfig.h</header>
   </customwidget>
  </customwidgets>
+ <tabstops>
+  <tabstop>iicInstrumentConfiguration</tabstop>
+  <tabstop>spSpecMin</tabstop>
+  <tabstop>ckSumFiles</tabstop>
+  <tabstop>spSpecMax</tabstop>
+  <tabstop>ckLoadLogs</tabstop>
+  <tabstop>ckUseCan</tabstop>
+  <tabstop>ckCanScale</tabstop>
+  <tabstop>spCanScale</tabstop>
+  <tabstop>leRebinStart</tabstop>
+  <tabstop>leRebinWidth</tabstop>
+  <tabstop>leRebinEnd</tabstop>
+  <tabstop>ckManualDRange</tabstop>
+  <tabstop>spDRange</tabstop>
+  <tabstop>ckIndividualGrouping</tabstop>
+  <tabstop>cbPlotType</tabstop>
+  <tabstop>ckGSS</tabstop>
+  <tabstop>ckNexus</tabstop>
+  <tabstop>ckAscii</tabstop>
+  <tabstop>pbHelp</tabstop>
+  <tabstop>pbRun</tabstop>
+  <tabstop>pbManageDirs</tabstop>
+ </tabstops>
  <resources/>
- <connections/>
+ <connections>
+  <connection>
+   <sender>ckManualDRange</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>spDRange</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>64</x>
+     <y>245</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>108</x>
+     <y>245</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>ckUseCan</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>rfCanFiles</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>90</x>
+     <y>174</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>371</x>
+     <y>174</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>ckUseCan</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>ckCanScale</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>54</x>
+     <y>168</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>55</x>
+     <y>184</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>ckCanScale</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>spCanScale</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>141</x>
+     <y>194</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>199</x>
+     <y>194</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
 </ui>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectSqw.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectSqw.ui
index 9a81c1049d56bde2eff280c7806d9d64ce0b9e82..06b46e78bb083acb1f1f257a0c57bd38974399ef 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectSqw.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectSqw.ui
@@ -186,7 +186,7 @@
          </widget>
         </item>
         <item row="0" column="0">
-         <widget class="QLabel" name="lbRebinType">
+         <widget class="QLabel" name="lbMethod">
           <property name="minimumSize">
            <size>
             <width>43</width>
@@ -194,7 +194,7 @@
            </size>
           </property>
           <property name="text">
-           <string>Rebin Type:</string>
+           <string>Method:</string>
           </property>
          </widget>
         </item>
@@ -345,7 +345,7 @@
          </widget>
         </item>
         <item row="0" column="1">
-         <widget class="QComboBox" name="cbRebinType">
+         <widget class="QComboBox" name="cbMethod">
           <property name="sizePolicy">
            <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
             <horstretch>0</horstretch>
@@ -369,12 +369,12 @@
           </property>
           <item>
            <property name="text">
-            <string>Parallelepiped</string>
+            <string>Polygon</string>
            </property>
           </item>
           <item>
            <property name="text">
-            <string>Parallelepiped/Fractional Area</string>
+            <string>NormalisedPolygon</string>
            </property>
           </item>
          </widget>
@@ -474,7 +474,7 @@
   </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>cbRebinType</tabstop>
+  <tabstop>cbMethod</tabstop>
   <tabstop>spQLow</tabstop>
   <tabstop>spQWidth</tabstop>
   <tabstop>spQHigh</tabstop>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectSymmetrise.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectSymmetrise.h
index 777315639238cc1efd601185eabe5999e87ac7b2..90ecbbba29bed2ff19763741ad67dc5eae67f52d 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectSymmetrise.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectSymmetrise.h
@@ -4,7 +4,7 @@
 #include "IndirectDataReductionTab.h"
 
 #include "ui_IndirectSymmetrise.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/System.h"
 
 // Suppress a warning coming out of code that isn't ours
@@ -67,6 +67,7 @@ namespace CustomInterfaces
     virtual bool validate();
 
   private slots:
+    void algorithmComplete(bool error);
     void plotRawInput(const QString &workspaceName);
     void updateMiniPlots();
     void replotNewSpectrum(QtProperty *prop, double value);
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectTab.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectTab.h
index 49f4af6321455c56f529ea016a88fb7801ddbdd5..f9aba668947bbeedae26e1678eee6d60dc3646c0 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectTab.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IndirectTab.h
@@ -22,168 +22,184 @@
 
 // Suppress a warning coming out of code that isn't ours
 #if defined(__INTEL_COMPILER)
-  #pragma warning disable 1125
+#pragma warning disable 1125
 #elif defined(__GNUC__)
-  #if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6 )
-    #pragma GCC diagnostic push
-  #endif
-  #pragma GCC diagnostic ignored "-Woverloaded-virtual"
+#if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6)
+#pragma GCC diagnostic push
+#endif
+#pragma GCC diagnostic ignored "-Woverloaded-virtual"
 #endif
 #include "DoubleEditorFactory.h"
 #if defined(__INTEL_COMPILER)
-  #pragma warning enable 1125
+#pragma warning enable 1125
 #elif defined(__GNUC__)
-  #if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6 )
-    #pragma GCC diagnostic pop
-  #endif
+#if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 6)
+#pragma GCC diagnostic pop
+#endif
 #endif
 
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-  /** IndirectTab
-
-    Provided common functionality of all indirect interface tabs.
-
-    @author Dan Nixon
-    @date 08/10/2014
-
-    Copyright &copy; 2013 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge National Laboratory & European Spallation Source
-
-    This file is part of Mantid.
+namespace MantidQt {
+namespace CustomInterfaces {
+/** IndirectTab
+
+  Provided common functionality of all indirect interface tabs.
+
+  @author Dan Nixon
+  @date 08/10/2014
+
+  Copyright &copy; 2013 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 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.
+  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 IndirectTab : public QObject {
+  Q_OBJECT
 
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+public:
+  IndirectTab(QObject *parent = 0);
+  virtual ~IndirectTab();
 
-    File change history is stored at: <https://github.com/mantidproject/mantid>
-    Code Documentation is available at: <http://doxygen.mantidproject.org>
-  */
-  class DLLExport IndirectTab : public QObject
-  {
-    Q_OBJECT
-
-  public:
-    IndirectTab(QObject* parent = 0);
-    virtual ~IndirectTab();
-
-  public slots:
-    void runTab();
-    void setupTab();
-    bool validateTab();
-    void exportPythonScript();
-
-  protected slots:
-    /// Slot to handle when an algorithm finishes running
-    virtual void algorithmFinished(bool error);
-
-  protected:
-    /// Run the load algorithm with the given file name, output name and spectrum range
-    bool loadFile(const QString& filename, const QString& outputName, const int specMin = -1, const int specMax = -1);
-
-    /// Add a SaveNexusProcessed step to the batch queue
-    void addSaveWorkspaceToQueue(const QString & wsName, const QString & filename = "");
-
-    /// Plot a spectrum plot with a given spectrum index
-    void plotSpectrum(const QStringList & workspaceNames, int specIndex = 0);
-    /// Plot a spectrum plot of a given workspace
-    void plotSpectrum(const QString & workspaceName, int specIndex = 0);
-
-    /// Plot a spectrum plot with a given spectra range
-    void plotSpectrum(const QStringList & workspaceNames, int specStart, int specEnd);
-    /// Plot a spectrum plot with a given spectra range of a given workspace
-    void plotSpectrum(const QString & workspaceName, int specStart, int specEnd);
-
-    /// Plot a time bin plot given a list of workspace names
-    void plotTimeBin(const QStringList & workspaceNames, int specIndex = 0);
-    /// Plot a time bin plot of a given workspace
-    void plotTimeBin(const QString & workspaceName, int specIndex = 0);
-
-    /// Plot a contour plot of a given workspace
-    void plot2D(const QString & workspaceName);
-
-    /// Function to set the range limits of the plot
-    void setPlotPropertyRange(MantidQt::MantidWidgets::RangeSelector * rs,
-                              QtProperty* min, QtProperty* max,
-                              const QPair<double, double> & bounds);
-    /// Function to set the range selector on the mini plot
-    void setRangeSelector(MantidQt::MantidWidgets::RangeSelector * rs,
-                          QtProperty* lower, QtProperty* upper,
-                          const QPair<double, double> & bounds);
-
-    /// Function to get energy mode from a workspace
-    std::string getEMode(Mantid::API::MatrixWorkspace_sptr ws);
-
-    /// Function to get eFixed from a workspace
-    double getEFixed(Mantid::API::MatrixWorkspace_sptr ws);
-
-    /// Function to run an algorithm on a seperate thread
-    void runAlgorithm(const Mantid::API::IAlgorithm_sptr algorithm);
-
-    QString runPythonCode(QString vode, bool no_output = false);
-
-    /// Parent QWidget (if applicable)
-    QWidget *m_parentWidget;
-
-    /// Tree of the properties
-    std::map<QString, QtTreePropertyBrowser *> m_propTrees;
-
-    /// Internal list of the properties
-    QMap<QString, QtProperty*> m_properties;
-
-    /// Double manager to create properties
-    QtDoublePropertyManager* m_dblManager;
-    /// Boolean manager to create properties
-    QtBoolPropertyManager* m_blnManager;
-    /// Group manager to create properties
-    QtGroupPropertyManager* m_grpManager;
-
-    /// Double editor facotry for the properties browser
-    DoubleEditorFactory* m_dblEdFac;
-
-    /// Algorithm runner object to execute chains algorithms on a seperate thread from the GUI
-    MantidQt::API::BatchAlgorithmRunner *m_batchAlgoRunner;
-
-    /// Use a Python runner for when we need the output of a script
-    MantidQt::API::PythonRunner m_pythonRunner;
-
-    /// Validator for int inputs
-    QIntValidator *m_valInt;
-    /// Validator for double inputs
-    QDoubleValidator *m_valDbl;
-    /// Validator for positive double inputs
-    QDoubleValidator *m_valPosDbl;
-
-  signals:
-    /// Send signal to parent window to show a message box to user
-    void showMessageBox(const QString& message);
-    /// Run a python script
-    void runAsPythonScript(const QString & code, bool noOutput = false);
-
-  protected:
-    /// Overidden by child class.
-    virtual void setup() = 0;
-    /// Overidden by child class.
-    virtual void run() = 0;
-    /// Overidden by child class.
-    virtual bool validate() = 0;
-
-    Mantid::Kernel::DateAndTime m_tabStartTime;
-    Mantid::Kernel::DateAndTime m_tabEndTime;
-    std::string m_pythonExportWsName;
-
-  };
+public slots:
+  void runTab();
+  void setupTab();
+  bool validateTab();
+  void exportPythonScript();
+
+protected slots:
+  /// Slot to handle when an algorithm finishes running
+  virtual void algorithmFinished(bool error);
+
+protected:
+  /// Run the load algorithm with the given file name, output name and spectrum
+  /// range
+  bool loadFile(const QString &filename, const QString &outputName,
+                const int specMin = -1, const int specMax = -1);
+
+  /// Add a SaveNexusProcessed step to the batch queue
+  void addSaveWorkspaceToQueue(const QString &wsName,
+                               const QString &filename = "");
+
+  /// Gets the workspace suffix of a workspace name
+  QString getWorkspaceSuffix(const QString &wsName);
+  /// Gets the base name of a workspace
+  QString getWorkspaceBasename(const QString &wsName);
+
+  /// Plot a spectrum plot with a given spectrum index
+  void plotSpectrum(const QStringList &workspaceNames, int specIndex = 0);
+  /// Plot a spectrum plot of a given workspace
+  void plotSpectrum(const QString &workspaceName, int specIndex = 0);
+
+  /// Plot a spectrum plot with a given spectra range
+  void plotSpectrum(const QStringList &workspaceNames, int specStart,
+                    int specEnd);
+  /// Plot a spectrum plot with a given spectra range of a given workspace
+  void plotSpectrum(const QString &workspaceName, int specStart, int specEnd);
+
+  /// Plot a time bin plot given a list of workspace names
+  void plotTimeBin(const QStringList &workspaceNames, int specIndex = 0);
+  /// Plot a time bin plot of a given workspace
+  void plotTimeBin(const QString &workspaceName, int specIndex = 0);
+
+  /// Plot a contour plot of a given workspace
+  void plot2D(const QString &workspaceName);
+
+  /// Function to set the range limits of the plot
+  void setPlotPropertyRange(MantidQt::MantidWidgets::RangeSelector *rs,
+                            QtProperty *min, QtProperty *max,
+                            const QPair<double, double> &bounds);
+  /// Function to set the range selector on the mini plot
+  void setRangeSelector(MantidQt::MantidWidgets::RangeSelector *rs,
+                        QtProperty *lower, QtProperty *upper,
+                        const QPair<double, double> &bounds);
+
+  /// Function to get energy mode from a workspace
+  std::string getEMode(Mantid::API::MatrixWorkspace_sptr ws);
+
+  /// Function to get eFixed from a workspace
+  double getEFixed(Mantid::API::MatrixWorkspace_sptr ws);
+
+  /// Function to read an instrument's resolution from the IPF using a string
+  bool getResolutionRangeFromWs(const QString &filename,
+                                QPair<double, double> &res);
+
+  /// Function to read an instrument's resolution from the IPF using a workspace
+  /// pointer
+  bool getResolutionRangeFromWs(Mantid::API::MatrixWorkspace_const_sptr ws,
+                                QPair<double, double> &res);
+
+  /// Function to run an algorithm on a seperate thread
+  void runAlgorithm(const Mantid::API::IAlgorithm_sptr algorithm);
+
+  QString runPythonCode(QString vode, bool no_output = false);
+
+  /// Parent QWidget (if applicable)
+  QWidget *m_parentWidget;
+
+  /// Tree of the properties
+  std::map<QString, QtTreePropertyBrowser *> m_propTrees;
+
+  /// Internal list of the properties
+  QMap<QString, QtProperty *> m_properties;
+
+  /// Double manager to create properties
+  QtDoublePropertyManager *m_dblManager;
+  /// Boolean manager to create properties
+  QtBoolPropertyManager *m_blnManager;
+  /// Group manager to create properties
+  QtGroupPropertyManager *m_grpManager;
+
+  /// Double editor facotry for the properties browser
+  DoubleEditorFactory *m_dblEdFac;
+
+  /// Algorithm runner object to execute chains algorithms on a seperate thread
+  /// from the GUI
+  MantidQt::API::BatchAlgorithmRunner *m_batchAlgoRunner;
+
+  /// Use a Python runner for when we need the output of a script
+  MantidQt::API::PythonRunner m_pythonRunner;
+
+  /// Validator for int inputs
+  QIntValidator *m_valInt;
+  /// Validator for double inputs
+  QDoubleValidator *m_valDbl;
+  /// Validator for positive double inputs
+  QDoubleValidator *m_valPosDbl;
+
+signals:
+  /// Send signal to parent window to show a message box to user
+  void showMessageBox(const QString &message);
+  /// Run a python script
+  void runAsPythonScript(const QString &code, bool noOutput = false);
+
+protected:
+  /// Overidden by child class.
+  virtual void setup() = 0;
+  /// Overidden by child class.
+  virtual void run() = 0;
+  /// Overidden by child class.
+  virtual bool validate() = 0;
+
+  Mantid::Kernel::DateAndTime m_tabStartTime;
+  Mantid::Kernel::DateAndTime m_tabEndTime;
+  std::string m_pythonExportWsName;
+};
 } // namespace CustomInterfaces
 } // namespace Mantid
 
-#endif  /* MANTID_CUSTOMINTERFACES_INDIRECTTAB_H_ */
+#endif /* MANTID_CUSTOMINTERFACES_INDIRECTTAB_H_ */
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Iqt.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Iqt.h
index 95fbf39837b272dbd5428729a59c3a9343ecfd7b..c7c43630b3564730e70f037edbf564c2e34d02ef 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Iqt.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Iqt.h
@@ -2,7 +2,7 @@
 #define MANTIDQTCUSTOMINTERFACESIDA_IQT_H_
 
 #include "ui_Iqt.h"
-#include "IDATab.h"
+#include "IndirectDataAnalysisTab.h"
 
 namespace MantidQt
 {
@@ -10,7 +10,7 @@ namespace CustomInterfaces
 {
 namespace IDA
 {
-  class DLLExport Iqt : public IDATab
+  class DLLExport Iqt : public IndirectDataAnalysisTab
   {
     Q_OBJECT
 
@@ -24,6 +24,7 @@ namespace IDA
     virtual void loadSettings(const QSettings & settings);
 
   private slots:
+    void algorithmComplete(bool error);
     void plotInput(const QString& wsname);
     void rsRangeChangedLazy(double min, double max);
     void updateRS(QtProperty* prop, double val);
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IqtFit.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IqtFit.h
index 526075458a29b7c7e3f36470d014b30e3cb1e7ef..b97c218dc8dfa11753229a92201512a0bf445cc8 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IqtFit.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/IqtFit.h
@@ -2,9 +2,9 @@
 #define MANTIDQTCUSTOMINTERFACESIDA_IQTFIT_H_
 
 #include "ui_IqtFit.h"
-#include "IDATab.h"
+#include "IndirectDataAnalysisTab.h"
 #include "MantidAPI/CompositeFunction.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Mantid
 {
@@ -21,7 +21,7 @@ namespace CustomInterfaces
 {
 namespace IDA
 {
-  class DLLExport IqtFit : public IDATab
+  class DLLExport IqtFit : public IndirectDataAnalysisTab
   {
     Q_OBJECT
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/JumpFit.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/JumpFit.h
index c57d7c880326e2d204068fb631c5f6bd0a1e0243..65a3c1799775e1c3ab1608249dd7b350af4abf84 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/JumpFit.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/JumpFit.h
@@ -2,54 +2,61 @@
 #define MANTIDQTCUSTOMINTERFACES_JUMPFIT_H_
 
 #include "ui_JumpFit.h"
-#include "IndirectBayesTab.h"
-
-namespace MantidQt
-{
-	namespace CustomInterfaces
-	{
-		class DLLExport JumpFit : public IndirectBayesTab
-		{
-			Q_OBJECT
-
-		public:
-			JumpFit(QWidget * parent = 0);
-
-			// Inherited methods from IndirectBayesTab
-      void setup();
-			bool validate();
-			void run();
-      void runImpl(bool plot = false, bool save = false);
-			/// Load default settings into the interface
-			void loadSettings(const QSettings& settings);
-
-		private slots:
-			/// Handle when the sample input is ready
-			void handleSampleInputReady(const QString& filename);
-			/// Slot to handle plotting a different spectrum of the workspace
-			void handleWidthChange(const QString& text);
-			/// Slot for when the range on the range selector changes
-			void qRangeChanged(double min, double max);
-			/// Slot to update the guides when the range properties change
-			void updateProperties(QtProperty* prop, double val);
-			/// Find all spectra with width data in the workspace
-			void findAllWidths(Mantid::API::MatrixWorkspace_const_sptr ws);
-      /// Handles plotting results of algorithm on miniplot
-      void fitAlgDone(bool error);
-      /// Handles running preview algorithm
-      void runPreviewAlgorithm();
-
-		private:
-			// The UI form
-			Ui::JumpFit m_uiForm;
-
-			// Map of axis labels to spectrum number
-			std::map<std::string, int> m_spectraList;
-
-      Mantid::API::IAlgorithm_sptr fitAlg;
-
-		};
-	} // namespace CustomInterfaces
+#include "IndirectDataAnalysisTab.h"
+
+namespace MantidQt {
+namespace CustomInterfaces {
+namespace IDA {
+class DLLExport JumpFit : public IndirectDataAnalysisTab {
+  Q_OBJECT
+
+public:
+  JumpFit(QWidget *parent = 0);
+
+  // Inherited methods from IndirectDataAnalysisTab
+  void setup();
+  bool validate();
+  void run();
+  void runImpl(bool plot = false, bool save = false);
+  /// Load default settings into the interface
+  void loadSettings(const QSettings &settings);
+
+private slots:
+  /// Handle when the sample input is ready
+  void handleSampleInputReady(const QString &filename);
+  /// Slot to handle plotting a different spectrum of the workspace
+  void handleWidthChange(const QString &text);
+  /// Slot for when the range on the range selector changes
+  void qRangeChanged(double min, double max);
+  /// Slot to update the guides when the range properties change
+  void updateProperties(QtProperty *prop, double val);
+  /// Find all spectra with width data in the workspace
+  void findAllWidths(Mantid::API::MatrixWorkspace_const_sptr ws);
+  /// Handles plotting results of algorithm on miniplot
+  void fitAlgDone(bool error);
+  /// Handles plotting fit result in MantidPlot
+  void plotFitResult(bool error);
+  /// Handles running preview algorithm
+  void runPreviewAlgorithm();
+  /// Handles a fit algorithm being selected
+  void fitFunctionSelected(const QString &functionName);
+
+private:
+  /// Gets a list of parameter names for a given fit function
+  QStringList getFunctionParameters(const QString &functionName);
+
+  // The UI form
+  Ui::JumpFit m_uiForm;
+
+  // Map of axis labels to spectrum number
+  std::map<std::string, int> m_spectraList;
+
+  QtTreePropertyBrowser* m_jfTree;
+
+  Mantid::API::IAlgorithm_sptr m_fitAlg;
+};
+} // namespace IDA
+} // namespace CustomInterfaces
 } // namespace MantidQt
 
 #endif
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/JumpFit.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/JumpFit.ui
index af311b1f891404b934c0148cf1d4de9ae5f913b4..ef38b4bebe2f6f4c07ad63225148e181610ac3f8 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/JumpFit.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/JumpFit.ui
@@ -53,22 +53,22 @@
       <widget class="QComboBox" name="cbFunction">
        <item>
         <property name="text">
-         <string>Chudley-Elliott</string>
+         <string>ChudleyElliot</string>
         </property>
        </item>
        <item>
         <property name="text">
-         <string>Hall-Ross</string>
+         <string>HallRoss</string>
         </property>
        </item>
        <item>
         <property name="text">
-         <string>Fick Diffusion</string>
+         <string>FickDiffusion</string>
         </property>
        </item>
        <item>
         <property name="text">
-         <string>Teixeira Water</string>
+         <string>TeixeiraWater</string>
         </property>
        </item>
       </widget>
@@ -121,6 +121,11 @@
        <property name="showLegend" stdset="0">
         <bool>true</bool>
        </property>
+       <property name="curveErrorBars" stdset="0">
+        <stringlist>
+         <string>Sample</string>
+        </stringlist>
+       </property>
       </widget>
      </item>
     </layout>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/MSDFit.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/MSDFit.h
index d561a10ee3d63e6ec2fa0a53771fd88774a9a136..aea016307cda8f78143eecd01e7dd75212077159 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/MSDFit.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/MSDFit.h
@@ -2,7 +2,7 @@
 #define MANTIDQTCUSTOMINTERFACESIDA_MSDFIT_H_
 
 #include "ui_MSDFit.h"
-#include "IDATab.h"
+#include "IndirectDataAnalysisTab.h"
 
 namespace MantidQt
 {
@@ -10,7 +10,7 @@ namespace CustomInterfaces
 {
 namespace IDA
 {
-  class DLLExport MSDFit : public IDATab
+  class DLLExport MSDFit : public IndirectDataAnalysisTab
   {
     Q_OBJECT
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/MSDFit.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/MSDFit.ui
index 27cb65f3956a00106380d39836008b955eb55e0e..f9a03aa9952d154b1f75d53070a25065b3c7f2ee 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/MSDFit.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/MSDFit.ui
@@ -58,6 +58,11 @@
          <property name="showLegend" stdset="0">
           <bool>true</bool>
          </property>
+         <property name="curveErrorBars" stdset="0">
+          <stringlist>
+           <string>Sample</string>
+          </stringlist>
+         </property>
          <property name="canvasColour" stdset="0">
           <color>
            <red>255</red>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Quasi.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Quasi.h
index bb2ae2f047ef172dba37ecab034e5c33c4bee452..08ae4d6a6445c267a962a0dc04e0d3feb873dce9 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Quasi.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/Quasi.h
@@ -31,6 +31,8 @@ namespace MantidQt
 			void updateProperties(QtProperty* prop, double val);
 			/// Slot to handle when a new sample file is available
 			void handleSampleInputReady(const QString& filename);
+			/// Slot to handle when a new resolution file is available
+			void handleResolutionInputReady(const QString& wsName);
 			/// slot to handle when the user changes the program to be used
 			void handleProgramChange(int index);
       /// Slot to handle setting a new preview spectrum
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ResNorm.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ResNorm.h
index 02f36d574c1d8a8848374832d2fee5a56f9cea55..4eb232cddeded910f1da5c1ca72ef7b2f2b42152 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ResNorm.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ResNorm.h
@@ -4,44 +4,44 @@
 #include "ui_ResNorm.h"
 #include "IndirectBayesTab.h"
 
-namespace MantidQt
-{
-	namespace CustomInterfaces
-	{
-		class DLLExport ResNorm : public IndirectBayesTab
-		{
-			Q_OBJECT
-
-		public:
-			ResNorm(QWidget * parent = 0);
-
-			// Inherited methods from IndirectBayesTab
-      void setup();
-			bool validate();
-			void run();
-			/// Load default settings into the interface
-			void loadSettings(const QSettings& settings);
-
-		private slots:
-			/// Handle when the vanadium input is ready
-			void handleVanadiumInputReady(const QString& filename);
-			/// Slot for when the min range on the range selector changes
-			void minValueChanged(double min);
-			/// Slot for when the min range on the range selector changes
-			void maxValueChanged(double max);
-			/// Slot to update the guides when the range properties change
-			void updateProperties(QtProperty* prop, double val);
-      /// Slot to handle the preview spectrum being changed
-      void previewSpecChanged(int value);
-
-		private:
-      /// Current preview spectrum
-      int m_previewSpec;
-			/// The ui form
-			Ui::ResNorm m_uiForm;
-
-		};
-	} // namespace CustomInterfaces
+namespace MantidQt {
+namespace CustomInterfaces {
+class DLLExport ResNorm : public IndirectBayesTab {
+  Q_OBJECT
+
+public:
+  ResNorm(QWidget *parent = 0);
+
+  // Inherited methods from IndirectBayesTab
+  void setup();
+  bool validate();
+  void run();
+  /// Load default settings into the interface
+  void loadSettings(const QSettings &settings);
+
+private slots:
+  /// Handle completion of the algorithm
+  void handleAlgorithmComplete(bool error);
+  /// Handle when the vanadium input is ready
+  void handleVanadiumInputReady(const QString &filename);
+  /// Handle when the resolution input is ready
+  void handleResolutionInputReady(const QString &filename);
+  /// Slot for when the min range on the range selector changes
+  void minValueChanged(double min);
+  /// Slot for when the min range on the range selector changes
+  void maxValueChanged(double max);
+  /// Slot to update the guides when the range properties change
+  void updateProperties(QtProperty *prop, double val);
+  /// Slot to handle the preview spectrum being changed
+  void previewSpecChanged(int value);
+
+private:
+  /// Current preview spectrum
+  int m_previewSpec;
+  /// The ui form
+  Ui::ResNorm m_uiForm;
+};
+} // namespace CustomInterfaces
 } // namespace MantidQt
 
 #endif
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ResNorm.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ResNorm.ui
index a948780a326ca57f35e0f76b4ce6fb4e5e64677d..6ab31d7e3b16d87f8d569b8cda7257983a957210 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ResNorm.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Indirect/ResNorm.ui
@@ -208,14 +208,14 @@
          </spacer>
         </item>
         <item>
-         <widget class="QCheckBox" name="chkSave">
+         <widget class="QCheckBox" name="ckSave">
           <property name="text">
            <string>Save Result</string>
           </property>
          </widget>
         </item>
        </layout>
-       <zorder>chkSave</zorder>
+       <zorder>ckSave</zorder>
        <zorder>lblPlot</zorder>
        <zorder>cbPlot</zorder>
       </widget>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDatasetPlotData.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDatasetPlotData.h
index 6c93de1956fddaa2c3e422a78cb9e7ddfabe73c0..66b3e4bc728dc52ba65221cea52bb00bb7d7511e 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDatasetPlotData.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFDatasetPlotData.h
@@ -17,6 +17,13 @@ namespace API
 }
 }
 
+namespace MantidQt
+{
+namespace MantidWidgets
+{
+  class ErrorCurve;
+}
+}
 
 namespace MantidQt
 {
@@ -24,7 +31,6 @@ namespace CustomInterfaces
 {
 namespace MDF
 {
-class ErrorCurve;
 
 /**
  * Contains graphics for a single data set: fitting data, claculated result, difference.
@@ -46,7 +52,7 @@ private:
   /// Curve object for the fit data (spectrum).
   QwtPlotCurve *m_dataCurve;
   /// Error bar curve for the data
-  ErrorCurve *m_dataErrorCurve;
+  MantidQt::MantidWidgets::ErrorCurve *m_dataErrorCurve;
   /// Curve object for the calculated spectrum after a fit.
   QwtPlotCurve *m_calcCurve;
   /// Curve object for the difference spectrum.
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFPlotController.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFPlotController.h
index e194c9d9dedee9ef08db22ae70e5c580b478eab3..24d19db1ad88871f4b89e29e7f150beb95632c6c 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFPlotController.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFPlotController.h
@@ -60,6 +60,8 @@ public slots:
   void enableRange();
   void updateRange(int index);
   void showDataErrors(bool);
+  void resetRange();
+  void zoomToRange();
 private slots:
   void tableUpdated();
   void prevPlot();
@@ -71,9 +73,6 @@ private:
   void disableAllTools();
   template<class Tool>
   void enableTool(Tool* tool, int cursor);
-  bool eventFilter(QObject *widget, QEvent *evn);
-  void resetRange();
-  void zoomToRange();
   boost::shared_ptr<DatasetPlotData> getData(int i);
 
   /// The plot widget
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h
index dc99c26083257f54aff33cd7fbb63838793d855c..c89adb98b1243722541ae8ed799ce3fd6172c165 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h
@@ -88,6 +88,8 @@ private slots:
   void enableZoom();
   void enablePan();
   void enableRange();
+  void checkFittingType();
+  void setLogNames();
 
 protected:
   virtual void initLayout();
@@ -104,6 +106,8 @@ private:
   void removeSpectra(QList<int> rows);
   void loadSettings();
   void saveSettings() const;
+  void fitSequential();
+  void fitSimultaneous();
 
   /// The form generated by Qt Designer
   Ui::MultiDatasetFit m_uiForm;
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.ui
index b7e3815b0dc1defe873ea77eb63289937a87c7d7..e0374765b54320b165c7dda85238a3ec6be703c8 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.ui
@@ -220,11 +220,37 @@
              </property>
              <item>
               <widget class="QCheckBox" name="cbShowDataErrors">
+               <property name="toolTip">
+                <string>Show the error bars on the data curve.</string>
+               </property>
                <property name="text">
                 <string>Show data errors</string>
                </property>
               </widget>
              </item>
+             <item>
+              <widget class="QToolButton" name="btnToFittingRange">
+               <property name="toolTip">
+                <string>Zoom to current fitting range.</string>
+               </property>
+               <property name="text">
+                <string>To Fitting Range</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>
            </widget>
            <widget class="QWidget" name="RangePage">
@@ -234,11 +260,24 @@
              </property>
              <item>
               <widget class="QCheckBox" name="cbApplyRangeToAll">
+               <property name="toolTip">
+                <string>Apply selected fitting range to all spectra.</string>
+               </property>
                <property name="text">
                 <string>Apply to all spectra</string>
                </property>
               </widget>
              </item>
+             <item>
+              <widget class="QToolButton" name="btnToVisibleRange">
+               <property name="toolTip">
+                <string>Set fitting range to visible region.</string>
+               </property>
+               <property name="text">
+                <string>To Visible</string>
+               </property>
+              </widget>
+             </item>
              <item>
               <spacer name="horizontalSpacer_3">
                <property name="orientation">
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingModel.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingModel.h
index 5391083016a74eecbda66e6da25ed1477582f529..d309b79e32c23789b7aa681cd280848cbb92b44f 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingModel.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingModel.h
@@ -4,6 +4,7 @@
 #include "MantidKernel/System.h"
 #include "MantidQtCustomInterfaces/DllConfig.h"
 
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidQtCustomInterfaces/Muon/IALCBaselineModellingModel.h"
 
 using namespace Mantid::API;
@@ -56,6 +57,9 @@ namespace CustomInterfaces
     /// Set the data we should fit baseline for
     void setData(MatrixWorkspace_const_sptr data);
 
+    /// Set the corrected data resulting from fit
+    void setCorrectedData(MatrixWorkspace_const_sptr data);
+
     /// Export data + baseline + corrected data as a single workspace
     MatrixWorkspace_sptr exportWorkspace();
 
@@ -80,9 +84,11 @@ namespace CustomInterfaces
     std::vector<Section> m_sections;
 
     // Setters for convenience
-    void setCorrectedData(MatrixWorkspace_const_sptr data);
     void setFittedFunction(IFunction_const_sptr function);
 
+    // Set errors in the ws after the fit
+    void setErrorsAfterFit(MatrixWorkspace_sptr data);
+
     /// Disables points which shouldn't be used for fitting
     static void disableUnwantedPoints(MatrixWorkspace_sptr ws, const std::vector<Section>& sections);
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingView.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingView.h
index 4a1ac7f13fcad9d61f162e657996fe3a687ab23e..a6b72f65f76b91c92af1c62d53bac166a5cff6ff 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingView.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCBaselineModellingView.h
@@ -11,6 +11,14 @@
 
 #include <qwt_plot_curve.h>
 
+namespace MantidQt
+{
+namespace MantidWidgets
+{
+  class ErrorCurve;
+}
+}
+
 namespace MantidQt
 {
 namespace CustomInterfaces
@@ -47,6 +55,7 @@ namespace CustomInterfaces
 
   public:
     ALCBaselineModellingView(QWidget* widget);
+    ~ALCBaselineModellingView();
 
   // -- IALCBaselineModellingView interface --------------------------------------------------------
   public:
@@ -57,8 +66,9 @@ namespace CustomInterfaces
 
   public slots:
     void initialize();
-    void setDataCurve(const QwtData& data);
-    void setCorrectedCurve(const QwtData& data);
+    void setDataCurve(const QwtData &data, const std::vector<double> &errors);
+    void setCorrectedCurve(const QwtData &data,
+                           const std::vector<double> &errors);
     void setBaselineCurve(const QwtData& data);
     void setFunction(Mantid::API::IFunction_const_sptr func);
     void setNoOfSectionRows(int rows);
@@ -88,6 +98,10 @@ namespace CustomInterfaces
     /// Plot curves
     QwtPlotCurve *m_dataCurve, *m_fitCurve, *m_correctedCurve;
 
+    /// Error curves
+    MantidQt::MantidWidgets::ErrorCurve *m_dataErrorCurve,
+        *m_correctedErrorCurve;
+
     /// Range selectors
     std::map<int, RangeSelector*> m_rangeSelectors;
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingPresenter.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingPresenter.h
index 0446b0dc2dec02362f0fae866fa5f75841354c6d..547a57a971839b7bc5c39b0e742665ed0f7ee1c2 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingPresenter.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingPresenter.h
@@ -50,6 +50,9 @@ namespace CustomInterfaces
     /// @return Loaded data as MatrixWorkspace_sptr
     MatrixWorkspace_sptr exportWorkspace();
 
+    /// Sets some data
+    void setData (MatrixWorkspace_const_sptr data);
+
   private slots:
     /// Load new data and update the view accordingly
     void load();
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingView.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingView.h
index d7c83fe4e883ac297bde1176a339a75c6e883d72..d9329f7144829ae550b54e047e56440b3d27c514 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingView.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCDataLoadingView.h
@@ -11,6 +11,14 @@
 
 #include <qwt_plot_curve.h>
 
+namespace MantidQt
+{
+namespace MantidWidgets
+{
+  class ErrorCurve;
+}
+}
+
 namespace MantidQt
 {
 namespace CustomInterfaces
@@ -45,6 +53,7 @@ namespace CustomInterfaces
   {
   public:
     ALCDataLoadingView(QWidget* widget);
+    ~ALCDataLoadingView();
 
     // -- IALCDataLoadingView interface ------------------------------------------------------------
 
@@ -65,7 +74,7 @@ namespace CustomInterfaces
     std::string calculationType() const;
     boost::optional< std::pair<double,double> > timeRange() const;
 
-    void setDataCurve(const QwtData& data);
+    void setDataCurve(const QwtData &data, const std::vector<double> &errors);
     void displayError(const std::string &error);
     void setAvailableLogs(const std::vector<std::string> &logs);
     void setAvailablePeriods(const std::vector<std::string> &periods);
@@ -86,6 +95,10 @@ namespace CustomInterfaces
 
     /// Loaded data curve
     QwtPlotCurve* m_dataCurve;
+
+    /// Loaded errors
+    MantidQt::MantidWidgets::ErrorCurve* m_dataErrorCurve;
+
   };
 
 } // namespace CustomInterfaces
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCHelper.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCHelper.h
index 410f357dbccf6a67c5684b0bfd29554b8e613c01..37fd9cf08d346760ffc3be94a1ab8a1c1db6b7d3 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCHelper.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCHelper.h
@@ -2,7 +2,7 @@
 #define MANTID_CUSTOMINTERFACES_ALCHELPER_H_
 
 #include "MantidKernel/System.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/IFunction.h"
 
 #include "qwt_data.h"
@@ -18,6 +18,9 @@ namespace ALCHelper
   /// Create Qwt curve data from a workspace
   boost::shared_ptr<QwtData> curveDataFromWs(MatrixWorkspace_const_sptr ws, size_t wsIndex);
 
+  /// Create error vector from a workspace
+  std::vector<double> curveErrorsFromWs(MatrixWorkspace_const_sptr ws, size_t wsIndex);
+
   /// Create Qwt curve data from a function
   boost::shared_ptr<QwtData> curveDataFromFunction(IFunction_const_sptr func,
                                                  const std::vector<double>& xValues);
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCInterface.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCInterface.h
index 451a5402d63176276337d6b056db277e38c754ef..9666c82a6418790fd9a1f62af32a50421f9350a0 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCInterface.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCInterface.h
@@ -5,13 +5,6 @@
 
 #include "MantidQtCustomInterfaces/DllConfig.h"
 
-#include "MantidQtCustomInterfaces/Muon/ALCDataLoadingPresenter.h"
-#include "MantidQtCustomInterfaces/Muon/ALCBaselineModellingPresenter.h"
-#include "MantidQtCustomInterfaces/Muon/ALCPeakFittingPresenter.h"
-
-#include "MantidQtCustomInterfaces/Muon/ALCBaselineModellingModel.h"
-#include "MantidQtCustomInterfaces/Muon/ALCPeakFittingModel.h"
-
 #include "MantidQtAPI/UserSubWindow.h"
 
 #include "ui_ALCInterface.h"
@@ -23,6 +16,14 @@ namespace MantidQt
 namespace CustomInterfaces
 {
 
+  class ALCDataLoadingPresenter;
+
+  class ALCBaselineModellingPresenter;
+  class ALCBaselineModellingModel;
+
+  class ALCPeakFittingPresenter;
+  class ALCPeakFittingModel;
+
   /** ALCInterface : Custom interface for Avoided Level Crossing analysis
     
     Copyright &copy; 2014 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge National Laboratory & European Spallation Source
@@ -65,6 +66,7 @@ namespace CustomInterfaces
     void switchStep(int newStepIndex);
 
     void exportResults();
+    void importResults();
 
   private:
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCInterface.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCInterface.ui
index 6e6edd8903e33e454abb3230b80fafe87c3c034e..65b029f401b9c14a9ba406b0a6f8efb5f7b121a1 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCInterface.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCInterface.ui
@@ -83,14 +83,21 @@
      </item>
      <item row="0" column="0">
       <layout class="QHBoxLayout" name="horizontalLayout_2">
-       <item>
+        <item>
         <widget class="QPushButton" name="previousStep">
          <property name="text">
           <string>%PREV%</string>
          </property>
         </widget>
        </item>
-       <item>
+        <item>
+          <widget class="QPushButton" name="importResults">
+            <property name="text">
+              <string>Import results...</string>
+            </property>
+          </widget>
+        </item>
+        <item>
         <spacer name="horizontalSpacer">
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingModel.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingModel.h
index 91fff1ba9c3f22397b7784497700236a41b42fa5..f747333e0a2b87fe9c58105a3dfcd5c32724c8cb 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingModel.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingModel.h
@@ -5,6 +5,7 @@
 
 #include "MantidQtCustomInterfaces/DllConfig.h"
 #include "MantidQtCustomInterfaces/Muon/IALCPeakFittingModel.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 using namespace Mantid::API;
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingView.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingView.h
index 102df05d9b3fca7ea77189a98ac6843b71b3ed62..c45d9fd91981e5b8a921b394a5104bcd4f56c067 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingView.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/ALCPeakFittingView.h
@@ -12,6 +12,14 @@
 #include <QWidget>
 #include <qwt_plot_curve.h>
 
+namespace MantidQt
+{
+namespace MantidWidgets
+{
+  class ErrorCurve;
+}
+}
+
 namespace MantidQt
 {
 namespace CustomInterfaces
@@ -43,6 +51,7 @@ namespace CustomInterfaces
   {
   public:
     ALCPeakFittingView(QWidget* widget);
+    ~ALCPeakFittingView();
 
     // -- IALCPeakFitting interface ----------------------------------------------------------------
 
@@ -53,7 +62,7 @@ namespace CustomInterfaces
   public slots:
 
     void initialize();
-    void setDataCurve(const QwtData& data);
+    void setDataCurve(const QwtData &data, const std::vector<double> &errors);
     void setFittedCurve(const QwtData& data);
     void setFunction(const IFunction_const_sptr& newFunction);
     void setParameter(const QString& funcIndex, const QString& paramName, double value);
@@ -74,6 +83,9 @@ namespace CustomInterfaces
     /// Plot curves
     QwtPlotCurve *m_dataCurve, *m_fittedCurve;
 
+    /// Error curves
+    MantidQt::MantidWidgets::ErrorCurve *m_dataErrorCurve;
+
     /// Peak picker tool - only one on the plot at any given moment
     MantidWidgets::PeakPicker* m_peakPicker;
   };
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingModel.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingModel.h
index 69364e4352a6db0d48d76c569005ea082c3f838d..5f1c629d8349eb239aebec43314d02af6076f66f 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingModel.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingModel.h
@@ -5,7 +5,7 @@
 
 #include "MantidQtCustomInterfaces/DllConfig.h"
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/IFunction.h"
 
 #include <QObject>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingView.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingView.h
index bf1594ea77ac274bbf20597395d8ed070cc0aa91..18a8723f363786c06ef32e327551ea80548d562b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingView.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCBaselineModellingView.h
@@ -72,14 +72,18 @@ namespace CustomInterfaces
     /**
      * Update displayed data curve
      * @param data :: New curve data
+     * @param errors :: Curve errors
      */
-    virtual void setDataCurve(const QwtData& data) = 0;
+    virtual void setDataCurve(const QwtData &data,
+                              const std::vector<double> &errors) = 0;
 
     /**
      * Update displayed corrected data curve
      * @param data :: New curve data
+     * @param errors :: Curve errors
      */
-    virtual void setCorrectedCurve(const QwtData& data) = 0;
+    virtual void setCorrectedCurve(const QwtData &data,
+                                   const std::vector<double> &errors) = 0;
 
     /**
      * Update displayed baseline curve
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCDataLoadingView.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCDataLoadingView.h
index efaca810f28db3f72f575275ae32856d11fba377..c5772cdbea8abb1c925a670eb17131d0e9741511 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCDataLoadingView.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCDataLoadingView.h
@@ -1,7 +1,7 @@
 #ifndef MANTIDQT_CUSTOMINTERFACES_IALCDATALOADINGVIEW_H_
 #define MANTIDQT_CUSTOMINTERFACES_IALCDATALOADINGVIEW_H_
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include "MantidQtCustomInterfaces/DllConfig.h"
 #include "MantidKernel/System.h"
@@ -93,7 +93,9 @@ namespace CustomInterfaces
 
     /// Updates the data curve
     /// @param data :: New curve data to set
-    virtual void setDataCurve(const QwtData& data) = 0;
+    /// @param errors :: New curve errors to set
+    virtual void setDataCurve(const QwtData &data,
+                              const std::vector<double> &errors) = 0;
 
     /// Displays an error
     /// @param error :: Error message to display
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingModel.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingModel.h
index 111b54279bdbc740aed291195477d66c7533559e..fa15d33e9976ac157a158ca9d59b5b219398d188 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingModel.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingModel.h
@@ -5,7 +5,7 @@
 #include "MantidKernel/System.h"
 
 #include "MantidAPI/IFunction.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include <QObject>
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingView.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingView.h
index d03360376a02a6d2f5f54c33b75d7e5d50b9a738..3f8468c83fb287f13595e11b1ced81192911a46c 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingView.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/IALCPeakFittingView.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/IPeakFunction.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include "MantidQtCustomInterfaces/DllConfig.h"
 
@@ -62,7 +62,9 @@ namespace CustomInterfaces
 
     /// Update the data curve displayed
     /// @param data :: New curve data
-    virtual void setDataCurve(const QwtData& data) = 0;
+    /// @param errors :: New curve errors
+    virtual void setDataCurve(const QwtData &data,
+                              const std::vector<double> &errors) = 0;
 
     /// Update the fitted curve displayed
     /// @param data :: New curve data
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.h
index f1d3a6507b8ffaabdf81e5c51ce401eea1dac2a0..075a7b0a94ed5c1fa75bff7a522693630a25bf5a 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.h
@@ -7,8 +7,8 @@
 #include "ui_MuonAnalysis.h"
 
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 
 #include "MantidGeometry/Instrument.h"
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysisFitDataTab.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysisFitDataTab.h
index bde3d5826b0a7cebc9ab00cd9ec8ff1e64df6063..6d387a8aa514eaba5762a721530ebac286f48a23 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysisFitDataTab.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysisFitDataTab.h
@@ -8,7 +8,7 @@
 #include "MantidQtAPI/UserSubWindow.h"
 
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 namespace Ui
 {
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysisHelper.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysisHelper.h
index 01e629b101e6bff2723df67a1d985857b3630b6a..79948118c2aff13b51c22123f8af83d30994e701 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysisHelper.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysisHelper.h
@@ -3,7 +3,9 @@
 
 #include "MantidQtCustomInterfaces/DllConfig.h"
 #include "MantidKernel/System.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/Workspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidKernel/Logger.h"
 
 #include <QSettings>
 #include <QVector>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/PrecompiledHeader.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/PrecompiledHeader.h
index ee68b882111e16f2e1978ec8ea98b4819ebd82ad..e7dfab8e858aa38442bc17555f1cb7d636bd768b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/PrecompiledHeader.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/PrecompiledHeader.h
@@ -4,7 +4,7 @@
 // Mantid
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 // Qt
 #include <QWidget>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/QReflTableModel.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/QReflTableModel.h
index 0ea7d9a8454385e64ccb3e394311a3ae746bfcd3..e815574bc2a39b908da71734bff7f564dc8e47de 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/QReflTableModel.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/QReflTableModel.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_QREFLTABLEMODEL_H_
 #define MANTID_CUSTOMINTERFACES_QREFLTABLEMODEL_H_
 
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include <QAbstractTableModel>
 #include <boost/shared_ptr.hpp>
 #include <map>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflMainView.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflMainView.h
index 52a90b0084bbde14a2811fc3d95c66b0401754c8..d614cd7ee5c5f3d883a1065966d1ff9c44bee51d 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflMainView.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflMainView.h
@@ -7,6 +7,10 @@
 #include "MantidQtCustomInterfaces/QReflTableModel.h"
 #include "MantidQtMantidWidgets/HintStrategy.h"
 
+#include <map>
+#include <set>
+#include <string>
+
 namespace MantidQt
 {
   namespace CustomInterfaces
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflMainViewPresenter.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflMainViewPresenter.h
index 92c1ca41ee41fa4d362d2c4f2319f8bbc03247b0..655b97c528ff9237f2e18c043fd166bfd5b6ea3c 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflMainViewPresenter.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflMainViewPresenter.h
@@ -2,7 +2,7 @@
 #define MANTID_CUSTOMINTERFACES_REFLMAINVIEWPRESENTER_H
 
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidKernel/System.h"
 #include "MantidQtCustomInterfaces/IReflPresenter.h"
 #include "MantidQtCustomInterfaces/IReflSearcher.h"
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflSearchModel.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflSearchModel.h
index 9ed15d654e6beb102fd1222976f4ef71ea95fcc6..0e9ede64c176e5092e9e7a77157b21df6541953b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflSearchModel.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/ReflSearchModel.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_REFLSEARCHMODEL_H_
 #define MANTID_CUSTOMINTERFACES_REFLSEARCHMODEL_H_
 
-#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
 #include <QAbstractTableModel>
 #include <boost/shared_ptr.hpp>
 #include <map>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSAddFiles.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSAddFiles.h
index 0a7847201897c41c6a9e1f990950e1b9ec66d8dc..15bf132635a9720a3ec9ceef01d50bda475bf8bc 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSAddFiles.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSAddFiles.h
@@ -39,6 +39,23 @@ private:
 
   Poco::NObserver<SANSAddFiles, Mantid::Kernel::ConfigValChangeNotification> m_newOutDir;
 
+  /// Cache for custom binning string
+  QString m_customBinning;
+  /// Text for label for custom binning
+  QString m_customBinningText;
+  /// Text for tooltip for custom binning
+  QString m_customBinningToolTip;
+  /// Text for label for save event data
+  QString m_saveEventDataText;
+  /// Text for tooltip for save event data
+  QString m_saveEventDataToolTip;
+  /// Set the bin field
+  void setHistogramUiLogic(QString label, QString toolTip, QString lineEditText,bool enabled);
+  /// Set the histo gram input enabled or disabled
+  void setInputEnabled(bool enabled);
+  /// Create Python string list
+  QString createPythonStringList(QString inputString);
+
   void initLayout();
   void setToolTips();
   QListWidgetItem* insertListFront(const QString &text);
@@ -46,6 +63,7 @@ private:
   void setOutDir(std::string dir);
   void readSettings();
   void saveSettings();
+  bool checkValidityTimeShiftsForAddedEventFiles();
 
 private slots:
   ///insert another row into the files to sum table (tbRunsToAdd), in response to a click on the pbNewRow button
@@ -65,6 +83,8 @@ private slots:
   void enableSumming();
   /// reacts to changges of the combo box selection for the histogram options for event data
   void onCurrentIndexChangedForHistogramChoice(int index);
+  /// reacts to changes of the overlay check box
+  void onStateChangedForOverlayCheckBox(int);
 };
 
 }
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSDiagnostics.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSDiagnostics.h
index cb283cf77d37dabfb0590b285d59e601e5d3d5ca..bf20e0cf11319c9c5f590db5b136d620048b4297 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSDiagnostics.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSDiagnostics.h
@@ -3,8 +3,8 @@
 
 #include "ui_SANSRunWindow.h"
 #include "MantidQtAPI/UserSubWindow.h"
-#include "MantidAPI/Workspace.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/Workspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/IDetector.h"
 
 namespace MantidQt
@@ -141,7 +141,7 @@ private:
 
   // This method executes loadraw and sumrow column algorithm
   void IntegralClicked(const QString& range,const QString& orientation,const QString& specMin,
-                                          const QString& specMax,const QString& opws,bool bMask,bool time_pixel);
+                                          const QString& specMax,const QString& detectorName, const QString& integrationType,bool bMask,bool time_pixel);
 
   // This method executes sumspectra algorithm
   void TimeIntegralClicked(const QString& range, const QString& specMin, const QString& specMax,
@@ -188,7 +188,8 @@ private:
   void maskDetector(const QString& wsName,bool bMask,bool time_pixel);
   //getvalues of HVMin and HvMax values for sumrowcolumn algorithm
   void HVMinHVMaxStringValues(const int minVal,const int maxVal,QString& hvMin,QString& hvMax);
-
+  /// Create the name for the outputworkspace
+  QString createOutputWorkspaceName(QString originalWorkspaceName, QString detectorName, QString integrationType, QString min, QString max);
 
 private:
   QString m_dataDir; ///< default data search directory
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSRunWindow.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSRunWindow.h
index 262e3655f20e609f268899c31d3ddc2a4fb3f57a..0421203748361efd6b75632e7889fb0cc5aa72c6 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSRunWindow.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSRunWindow.h
@@ -16,7 +16,7 @@
 #include <QStringList>
 #include <Poco/NObserver.h>
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/ConfigService.h"
 #include <vector>
 
@@ -201,11 +201,17 @@ private:
   int addBatchLine(QString csv_line, QString separator = "");
   ///Save the batch file
   QString saveBatchGrid(const QString & filename = "");
+  /// Check that the workspace can have the zero errors removed
+  bool isValidWsForRemovingZeroErrors(QString& originalWorkspaceName);
   //@}
- 
   public slots:
      /// apply mask
   void applyMask(const QString& wsName,bool time_pixel);
+  /// Create a zero error free clone for the specified workspace
+  void createZeroErrorFreeClone(QString& originalWorkspaceName, QString& clonedWorkspaceName);
+  /// Destroy a zero error free cloned workspace
+  void deleteZeroErrorFreeClone(QString& clonedWorkspaceName);
+
 
 private slots:
   /// phi masking has changed 
@@ -269,6 +275,14 @@ private slots:
   void handleSlicePushButton();
   /// Open the help page of whichever tab the user is currently viewing.
   void openHelpPage();
+  /// Transmission setting for M3
+  void onTransmissionM3CheckboxChanged();
+  /// Transmission setting for M4
+  void onTransmissionM4CheckboxChanged();
+  /// Transmission setting for Radius
+  void onTransmissionRadiusCheckboxChanged();
+  /// Transmission setting for ROI files
+  void onTransmissionROIFilesCheckboxChanged();
 
 private:
   /// used to specify the range of validation to do
@@ -279,6 +293,13 @@ private:
     RUN                                                     ///< for checking the run validators only
   };
 
+  enum TransSettings {
+    M3,
+    M4,
+    RADIUS,
+    ROI
+  };
+
   /// holds pointer to validators and their locations
   typedef std::map<QWidget * const, std::pair<QWidget *, QWidget *> > ValMap;
   /// The form generated by Qt Designer
@@ -348,7 +369,10 @@ private:
   QAction *m_batch_clear;
   //Time/Pixel mask string
   QString m_maskScript;
-
+  /// Success keyword
+  static const QString m_pythonSuccessKeyword;
+  /// Keyword for empty return value in python
+  static const QString m_pythonEmptyKeyword;
   /// Stores the URL of each tab's help page.
   QMap<Tab, QString> m_helpPageUrls;
   
@@ -363,6 +387,29 @@ private:
   QString reduceSingleRun() const;
   void setValidators();
 
+  /// set logic for M3 or M4 selection
+  void setM3M4Logic(TransSettings setting, bool isNowChecked);
+  /// set logic for beam stop selection
+  void setBeamStopLogic(TransSettings setting, bool isNowChecked);
+  /// set logic for radius and mask
+  void setRadiusAndMaskLogic(bool isNowChecked);
+  /// set logic for ROI and mask
+  void setROIAndMaskLogic(bool isNowChecked);
+  /// validate float input
+  //void validateNumericInput(QString numericInput);
+  /// validate file input
+  //void valideateFileInput(QString fileInput);
+  /// set the transmission settings
+  //void sendTransmissionSettings();
+  /// get the transmission settings
+  void setTransmissionSettingsFromUserFile();
+  /// write the transmission settings to a python script
+  void writeTransmissionSettingsToPythonScript(QString& pythonCode);
+  /// initialize the connections for the transmission settings
+  void initTransmissionSettings();
+  /// Set all trans fields to a certain enabled state
+  void resetAllTransFields();
+
   UserSubWindow * slicingWindow;
 
 };
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSRunWindow.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSRunWindow.ui
index 631aee3be348a7cf1cd0c165ff0739c37ae13ff6..58f52aa2e93a89fcb203d6aadf2a7c71833bfb0a 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSRunWindow.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SANSRunWindow.ui
@@ -93,7 +93,7 @@
        <string notr="true"/>
       </property>
       <property name="currentIndex">
-       <number>1</number>
+       <number>0</number>
       </property>
       <property name="elideMode">
        <enum>Qt::ElideNone</enum>
@@ -650,6 +650,11 @@
                 <string>Output Name</string>
                </property>
               </column>
+              <column>
+               <property name="text">
+                <string>User File</string>
+               </property>
+              </column>
              </widget>
             </item>
            </layout>
@@ -837,6 +842,17 @@
                </property>
               </widget>
              </item>
+             <item row="4" column="0">
+              <widget class="QCheckBox" name="zeroErrorCheckBox">
+               <property name="toolTip">
+                <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Errors with a value of 0 will be inflated to have to a value of 10^6. Only reduced workspaces can have this method applied to them. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+               </property>
+               <property name="text">
+                <string>Inflate
+Zero Error</string>
+               </property>
+              </widget>
+             </item>
             </layout>
            </widget>
           </item>
@@ -1604,83 +1620,113 @@ intermediate ranges are there for comparison</string>
         <item row="1" column="1">
          <layout class="QVBoxLayout" name="verticalLayout_8">
           <item>
-           <widget class="QGroupBox" name="groupBox_14">
+           <widget class="QGroupBox" name="groupBox_18">
             <property name="title">
-             <string>Incident Monitors</string>
+             <string>Transmission Settings</string>
             </property>
-            <layout class="QGridLayout" name="gridLayout_9">
-             <item row="0" column="0">
-              <widget class="QLabel" name="label_41">
-               <property name="text">
-                <string>For scattering</string>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="1">
-              <widget class="QLineEdit" name="monitor_spec">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="Expanding" vsizetype="Maximum">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
-               <property name="maximumSize">
-                <size>
-                 <width>40</width>
-                 <height>16777215</height>
-                </size>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="3">
-              <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>
-               </property>
-              </spacer>
-             </item>
-             <item row="0" column="2">
-              <widget class="QCheckBox" name="monitor_interp">
-               <property name="text">
-                <string>Interpolate</string>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="0">
-              <widget class="QLabel" name="label_39">
-               <property name="text">
-                <string>For transmissions</string>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="1">
-              <widget class="QLineEdit" name="trans_monitor">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
-               <property name="maximumSize">
-                <size>
-                 <width>40</width>
-                 <height>16777215</height>
-                </size>
-               </property>
-              </widget>
+            <layout class="QVBoxLayout" name="verticalLayout_15">
+             <item>
+              <layout class="QGridLayout" name="gridLayout_32">
+               <item row="1" column="4">
+                <widget class="QLineEdit" name="trans_roi_files_line_edit">
+                 <property name="minimumSize">
+                  <size>
+                   <width>200</width>
+                   <height>0</height>
+                  </size>
+                 </property>
+                </widget>
+               </item>
+               <item row="1" column="2">
+                <widget class="QLineEdit" name="trans_radius_line_edit"/>
+               </item>
+               <item row="0" column="0">
+                <layout class="QHBoxLayout" name="horizontalLayout_25">
+                 <item>
+                  <widget class="QCheckBox" name="trans_M3_check_box">
+                   <property name="text">
+                    <string>M3</string>
+                   </property>
+                  </widget>
+                 </item>
+                 <item>
+                  <widget class="QCheckBox" name="trans_M4_check_box">
+                   <property name="text">
+                    <string>M4</string>
+                   </property>
+                  </widget>
+                 </item>
+                </layout>
+               </item>
+               <item row="0" column="2">
+                <widget class="QCheckBox" name="trans_radius_check_box">
+                 <property name="text">
+                  <string>Radius</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="0" column="4">
+                <widget class="QCheckBox" name="trans_roi_files_checkbox">
+                 <property name="text">
+                  <string>ROI files</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="0" column="1" rowspan="2">
+                <widget class="QFrame" name="frame">
+                 <property name="frameShape">
+                  <enum>QFrame::VLine</enum>
+                 </property>
+                 <property name="frameShadow">
+                  <enum>QFrame::Raised</enum>
+                 </property>
+                 <property name="lineWidth">
+                  <number>1</number>
+                 </property>
+                </widget>
+               </item>
+               <item row="0" column="3" rowspan="2">
+                <widget class="QFrame" name="frame_2">
+                 <property name="frameShape">
+                  <enum>QFrame::VLine</enum>
+                 </property>
+                 <property name="frameShadow">
+                  <enum>QFrame::Raised</enum>
+                 </property>
+                 <property name="lineWidth">
+                  <number>1</number>
+                 </property>
+                </widget>
+               </item>
+               <item row="1" column="0">
+                <layout class="QHBoxLayout" name="horizontalLayout_28">
+                 <item>
+                  <widget class="QLabel" name="label_17">
+                   <property name="text">
+                    <string>Shift:</string>
+                   </property>
+                  </widget>
+                 </item>
+                 <item>
+                  <widget class="QLineEdit" name="trans_M3M4_line_edit"/>
+                 </item>
+                </layout>
+               </item>
+              </layout>
              </item>
-             <item row="1" column="2">
-              <widget class="QCheckBox" name="trans_interp">
-               <property name="text">
-                <string>Interpolate</string>
-               </property>
-              </widget>
+             <item>
+              <layout class="QHBoxLayout" name="horizontalLayout_26">
+               <item>
+                <widget class="QLabel" name="label_16">
+                 <property name="text">
+                  <string>Masking files:</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QLineEdit" name="trans_masking_line_edit"/>
+               </item>
+              </layout>
              </item>
             </layout>
            </widget>
@@ -2183,6 +2229,92 @@ intermediate ranges are there for comparison</string>
           </item>
          </layout>
         </item>
+        <item row="0" column="1">
+         <layout class="QHBoxLayout" name="horizontalLayout_24">
+          <item>
+           <widget class="QGroupBox" name="groupBox_14">
+            <property name="title">
+             <string>Incident Monitors</string>
+            </property>
+            <layout class="QGridLayout" name="gridLayout_9">
+             <item row="0" column="0">
+              <widget class="QLabel" name="label_41">
+               <property name="text">
+                <string>For scattering</string>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="1">
+              <widget class="QLineEdit" name="monitor_spec">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Expanding" vsizetype="Maximum">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>40</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="2">
+              <widget class="QCheckBox" name="monitor_interp">
+               <property name="text">
+                <string>Interp.</string>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="3">
+              <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>
+               </property>
+              </spacer>
+             </item>
+             <item row="0" column="6">
+              <widget class="QCheckBox" name="trans_interp">
+               <property name="text">
+                <string>Interp.</string>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="5">
+              <widget class="QLineEdit" name="trans_monitor">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>40</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="4">
+              <widget class="QLabel" name="label_39">
+               <property name="text">
+                <string>For transmissions</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </widget>
+          </item>
+         </layout>
+        </item>
        </layout>
       </widget>
       <widget class="QWidget" name="tab_4">
@@ -3952,13 +4084,6 @@ p, li { white-space: pre-wrap; }
           </property>
          </widget>
         </item>
-        <item row="12" column="2">
-         <widget class="QLineEdit" name="eventToHistBinning">
-          <property name="text">
-           <string>5.5,45.5,50.0, 50.0,1000.0, 500.0,1500.0, 750.0,99750.0, 255.0,100005.0</string>
-          </property>
-         </widget>
-        </item>
         <item row="10" column="2">
          <widget class="QComboBox" name="comboBox_histogram_choice">
           <item>
@@ -3978,6 +4103,37 @@ p, li { white-space: pre-wrap; }
           </item>
          </widget>
         </item>
+        <item row="11" column="2">
+         <widget class="QCheckBox" name="overlayCheckBox">
+          <property name="text">
+           <string>OverlayEventWorkspaces</string>
+          </property>
+         </widget>
+        </item>
+        <item row="12" column="2">
+         <layout class="QHBoxLayout" name="horizontalLayout_24">
+          <item>
+           <widget class="QLabel" name="labelBinning">
+            <property name="minimumSize">
+             <size>
+              <width>70</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="text">
+             <string>Bin Settings:</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLineEdit" name="eventToHistBinning">
+            <property name="text">
+             <string>5.5,45.5,50.0, 50.0,1000.0, 500.0,1500.0, 750.0,99750.0, 255.0,100005.0</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
        </layout>
       </widget>
       <widget class="QWidget" name="widget">
@@ -4308,8 +4464,6 @@ p, li { white-space: pre-wrap; }
   <tabstop>wavRanges</tabstop>
   <tabstop>monitor_spec</tabstop>
   <tabstop>monitor_interp</tabstop>
-  <tabstop>trans_monitor</tabstop>
-  <tabstop>trans_interp</tabstop>
   <tabstop>tof_min</tabstop>
   <tabstop>tof_max</tabstop>
   <tabstop>scale_factor</tabstop>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SampleTransmission.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SampleTransmission.h
index c40016894a5b1451eac456145386e88c3b82a794..011bb3a66047906911a09944388bd5005410547a 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SampleTransmission.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SampleTransmission.h
@@ -8,7 +8,7 @@
 #include "MantidQtAPI/AlgorithmRunner.h"
 #include "MantidQtAPI/UserSubWindow.h"
 #include "MantidQtAPI/WorkspaceObserver.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 
 namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SampleTransmission.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SampleTransmission.ui
index cb9b0b849dbbc5f98f378bf60ee5d8c62f54dd54..7fdb9efac28f61005e227d841369c5d04cf43f9b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SampleTransmission.ui
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/SampleTransmission.ui
@@ -82,6 +82,9 @@
            </item>
            <item>
             <widget class="QDoubleSpinBox" name="spSingleLow">
+             <property name="decimals">
+              <number>3</number>
+             </property>
              <property name="minimum">
               <double>-99.989999999999995</double>
              </property>
@@ -99,6 +102,9 @@
            </item>
            <item>
             <widget class="QDoubleSpinBox" name="spSingleWidth">
+             <property name="decimals">
+              <number>3</number>
+             </property>
              <property name="minimum">
               <double>-99.989999999999995</double>
              </property>
@@ -116,6 +122,9 @@
            </item>
            <item>
             <widget class="QDoubleSpinBox" name="spSingleHigh">
+             <property name="decimals">
+              <number>3</number>
+             </property>
              <property name="minimum">
               <double>-99.989999999999995</double>
              </property>
@@ -175,7 +184,10 @@
        <item row="1" column="1">
         <widget class="QDoubleSpinBox" name="spNumberDensity">
          <property name="suffix">
-          <string> Ã…^3</string>
+          <string notr="true"> atoms/ų</string>
+         </property>
+         <property name="decimals">
+          <number>5</number>
          </property>
          <property name="singleStep">
           <double>0.100000000000000</double>
@@ -190,6 +202,9 @@
          <property name="suffix">
           <string> cm</string>
          </property>
+         <property name="decimals">
+          <number>5</number>
+         </property>
          <property name="singleStep">
           <double>0.100000000000000</double>
          </property>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/StepScan.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/StepScan.h
index 65b831af8a6f781ab8b0c215e28a9c9105d89335..1ddbc82798e3adadfafea9d3a4e5e94a2370e5fb 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/StepScan.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/StepScan.h
@@ -7,7 +7,7 @@
 #include "ui_StepScan.h"
 #include "MantidQtAPI/UserSubWindow.h"
 #include "MantidQtAPI/AlgorithmRunner.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/IAlgorithm.h"
 
 namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.ui
deleted file mode 100644
index 36c09ab446ee5c1cd056829c04004045090db97e..0000000000000000000000000000000000000000
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.ui
+++ /dev/null
@@ -1,1293 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>TomoReconstruction</class>
- <widget class="QMainWindow" name="TomoReconstruction">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>1059</width>
-    <height>705</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>IMAT Tomographic Reconstruction</string>
-  </property>
-  <widget class="QWidget" name="mainWidget">
-   <layout class="QGridLayout" name="gridLayout_4">
-    <property name="margin">
-     <number>3</number>
-    </property>
-    <property name="spacing">
-     <number>1</number>
-    </property>
-    <item row="0" column="0">
-     <widget class="QTabWidget" name="tabMain">
-      <property name="toolTip">
-       <string/>
-      </property>
-      <property name="currentIndex">
-       <number>0</number>
-      </property>
-      <widget class="QWidget" name="runTab">
-       <property name="enabled">
-        <bool>true</bool>
-       </property>
-       <attribute name="title">
-        <string>Run</string>
-       </attribute>
-       <layout class="QGridLayout" name="gridLayout_17">
-        <item row="0" column="0">
-         <widget class="QSplitter" name="splitter_run_main_vertical">
-          <property name="orientation">
-           <enum>Qt::Vertical</enum>
-          </property>
-          <widget class="QSplitter" name="splitter_image_resource">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="opaqueResize">
-            <bool>true</bool>
-           </property>
-           <widget class="QWidget" name="layoutWidget_5">
-            <layout class="QGridLayout" name="gridLayout_11">
-             <item row="0" column="0">
-              <layout class="QGridLayout" name="gridLayout_12">
-               <item row="0" column="0">
-                <widget class="QLabel" name="label_image_title">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="text">
-                  <string>Image:</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="0" column="2">
-                <widget class="QPushButton" name="pushButton_browse_image">
-                 <property name="text">
-                  <string>Browse</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="0" column="1">
-                <widget class="QLabel" name="label_image_name">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                   <horstretch>1</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="text">
-                  <string>none</string>
-                 </property>
-                </widget>
-               </item>
-              </layout>
-             </item>
-             <item row="1" column="0">
-              <widget class="QFrame" name="frame_image">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                 <horstretch>2</horstretch>
-                 <verstretch>2</verstretch>
-                </sizepolicy>
-               </property>
-               <property name="frameShape">
-                <enum>QFrame::StyledPanel</enum>
-               </property>
-               <property name="frameShadow">
-                <enum>QFrame::Raised</enum>
-               </property>
-               <layout class="QGridLayout" name="gridLayout_13">
-                <property name="margin">
-                 <number>3</number>
-                </property>
-                <property name="spacing">
-                 <number>2</number>
-                </property>
-                <item row="0" column="0">
-                 <widget class="QScrollArea" name="scrollArea_image">
-                  <property name="widgetResizable">
-                   <bool>true</bool>
-                  </property>
-                  <property name="alignment">
-                   <set>Qt::AlignCenter</set>
-                  </property>
-                  <widget class="QWidget" name="scrollAreaWidgetContents">
-                   <property name="geometry">
-                    <rect>
-                     <x>0</x>
-                     <y>0</y>
-                     <width>374</width>
-                     <height>278</height>
-                    </rect>
-                   </property>
-                   <layout class="QGridLayout" name="gridLayout_5">
-                    <property name="margin">
-                     <number>0</number>
-                    </property>
-                    <property name="spacing">
-                     <number>0</number>
-                    </property>
-                    <item row="0" column="0">
-                     <widget class="QLabel" name="label_image">
-                      <property name="text">
-                       <string/>
-                      </property>
-                     </widget>
-                    </item>
-                   </layout>
-                  </widget>
-                 </widget>
-                </item>
-               </layout>
-              </widget>
-             </item>
-            </layout>
-           </widget>
-           <widget class="QWidget" name="layoutWidget_6">
-            <layout class="QGridLayout" name="gridLayout_14">
-             <item row="1" column="1">
-              <widget class="QPushButton" name="pushButton_reconstruct">
-               <property name="minimumSize">
-                <size>
-                 <width>115</width>
-                 <height>0</height>
-                </size>
-               </property>
-               <property name="maximumSize">
-                <size>
-                 <width>115</width>
-                 <height>16777215</height>
-                </size>
-               </property>
-               <property name="toolTip">
-                <string/>
-               </property>
-               <property name="statusTip">
-                <string/>
-               </property>
-               <property name="text">
-                <string>Reconstruct</string>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="2">
-              <spacer name="horizontalSpacer_6">
-               <property name="orientation">
-                <enum>Qt::Horizontal</enum>
-               </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>13</width>
-                 <height>20</height>
-                </size>
-               </property>
-              </spacer>
-             </item>
-             <item row="2" column="1">
-              <spacer name="verticalSpacer_4">
-               <property name="orientation">
-                <enum>Qt::Vertical</enum>
-               </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>20</width>
-                 <height>40</height>
-                </size>
-               </property>
-              </spacer>
-             </item>
-             <item row="0" column="0" colspan="3">
-              <widget class="QGroupBox" name="groupBox_6">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
-               <property name="minimumSize">
-                <size>
-                 <width>0</width>
-                 <height>70</height>
-                </size>
-               </property>
-               <property name="title">
-                <string>Compute resource</string>
-               </property>
-               <layout class="QGridLayout" name="gridLayout_15">
-                <item row="1" column="0">
-                 <layout class="QHBoxLayout" name="horizontalLayout_4">
-                  <item>
-                   <spacer name="horizontalSpacer_8">
-                    <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_12">
-                    <property name="text">
-                     <string>Status:</string>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <widget class="QPushButton" name="pushButton_remote_status">
-                    <property name="text">
-                     <string>Offline</string>
-                    </property>
-                    <property name="flat">
-                     <bool>true</bool>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <spacer name="horizontalSpacer_9">
-                    <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="QComboBox" name="comboBox_run_compute_resource">
-                  <item>
-                   <property name="text">
-                    <string>SCARF</string>
-                   </property>
-                  </item>
-                  <item>
-                   <property name="text">
-                    <string>Local</string>
-                   </property>
-                  </item>
-                 </widget>
-                </item>
-                <item row="2" column="0">
-                 <widget class="QGroupBox" name="groupBox_7">
-                  <property name="title">
-                   <string>Reconstruction tool</string>
-                  </property>
-                  <layout class="QGridLayout" name="gridLayout_18">
-                   <item row="0" column="0">
-                    <widget class="QComboBox" name="comboBox_run_tool">
-                     <item>
-                      <property name="text">
-                       <string>TomoPy</string>
-                      </property>
-                     </item>
-                     <item>
-                      <property name="text">
-                       <string>Astra</string>
-                      </property>
-                     </item>
-                     <item>
-                      <property name="text">
-                       <string>CCPi CGLS</string>
-                      </property>
-                     </item>
-                     <item>
-                      <property name="text">
-                       <string>Savu</string>
-                      </property>
-                     </item>
-                     <item>
-                      <property name="text">
-                       <string>Custom command</string>
-                      </property>
-                     </item>
-                    </widget>
-                   </item>
-                   <item row="0" column="1">
-                    <widget class="QPushButton" name="pushButton_run_tool_setup">
-                     <property name="toolTip">
-                      <string>Define specific settings for the tool selected</string>
-                     </property>
-                     <property name="statusTip">
-                      <string/>
-                     </property>
-                     <property name="text">
-                      <string>Setup</string>
-                     </property>
-                     <property name="autoRepeat">
-                      <bool>false</bool>
-                     </property>
-                     <property name="autoExclusive">
-                      <bool>false</bool>
-                     </property>
-                     <property name="flat">
-                      <bool>false</bool>
-                     </property>
-                    </widget>
-                   </item>
-                  </layout>
-                 </widget>
-                </item>
-               </layout>
-              </widget>
-             </item>
-             <item row="1" column="0">
-              <spacer name="horizontalSpacer_7">
-               <property name="orientation">
-                <enum>Qt::Horizontal</enum>
-               </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>17</width>
-                 <height>20</height>
-                </size>
-               </property>
-              </spacer>
-             </item>
-            </layout>
-           </widget>
-          </widget>
-          <widget class="QWidget" name="layoutWidget_7">
-           <layout class="QVBoxLayout" name="verticalLayout_7">
-            <item>
-             <widget class="QLabel" name="label_11">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="text">
-               <string>Reconstruction jobs:</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QSplitter" name="splitter_run_jobs">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <widget class="QTableWidget" name="tableWidget_run_jobs">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-                 <horstretch>1</horstretch>
-                 <verstretch>1</verstretch>
-                </sizepolicy>
-               </property>
-               <property name="selectionBehavior">
-                <enum>QAbstractItemView::SelectRows</enum>
-               </property>
-               <attribute name="horizontalHeaderStretchLastSection">
-                <bool>true</bool>
-               </attribute>
-               <column>
-                <property name="text">
-                 <string>Running on</string>
-                </property>
-               </column>
-               <column>
-                <property name="text">
-                 <string>Name</string>
-                </property>
-               </column>
-               <column>
-                <property name="text">
-                 <string>ID</string>
-                </property>
-               </column>
-               <column>
-                <property name="text">
-                 <string>Status</string>
-                </property>
-               </column>
-               <column>
-                <property name="text">
-                 <string>Command line</string>
-                </property>
-               </column>
-              </widget>
-              <widget class="QWidget" name="layoutWidget_8">
-               <layout class="QGridLayout" name="gridLayout_16">
-                <item row="2" column="0">
-                 <widget class="QPushButton" name="pushButton_run_job_visualize">
-                  <property name="text">
-                   <string>Visualize</string>
-                  </property>
-                 </widget>
-                </item>
-                <item row="4" column="0">
-                 <widget class="QPushButton" name="pushButton_run_job_cancel">
-                  <property name="text">
-                   <string>Cancel</string>
-                  </property>
-                 </widget>
-                </item>
-                <item row="3" column="0">
-                 <spacer name="verticalSpacer_5">
-                  <property name="orientation">
-                   <enum>Qt::Vertical</enum>
-                  </property>
-                  <property name="sizeHint" stdset="0">
-                   <size>
-                    <width>20</width>
-                    <height>40</height>
-                   </size>
-                  </property>
-                 </spacer>
-                </item>
-                <item row="1" column="0">
-                 <widget class="QPushButton" name="pushButton_run_refresh">
-                  <property name="text">
-                   <string>Refresh</string>
-                  </property>
-                 </widget>
-                </item>
-               </layout>
-              </widget>
-             </widget>
-            </item>
-           </layout>
-          </widget>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-      <widget class="QWidget" name="setupTab">
-       <property name="enabled">
-        <bool>true</bool>
-       </property>
-       <attribute name="title">
-        <string>Setup</string>
-       </attribute>
-       <layout class="QGridLayout" name="gridLayout_7">
-        <item row="0" column="0">
-         <widget class="QGroupBox" name="groupBox">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-            <horstretch>0</horstretch>
-            <verstretch>1</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="minimumSize">
-           <size>
-            <width>0</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="title">
-           <string>Compute resource</string>
-          </property>
-          <layout class="QGridLayout" name="gridLayout_25">
-           <property name="margin">
-            <number>3</number>
-           </property>
-           <property name="spacing">
-            <number>2</number>
-           </property>
-           <item row="0" column="0">
-            <widget class="QTabWidget" name="tabWidget_comp_resource">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-               <horstretch>0</horstretch>
-               <verstretch>1</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="minimumSize">
-              <size>
-               <width>0</width>
-               <height>0</height>
-              </size>
-             </property>
-             <property name="currentIndex">
-              <number>0</number>
-             </property>
-             <widget class="QWidget" name="tab_SCARF">
-              <attribute name="title">
-               <string>SCARF</string>
-              </attribute>
-              <layout class="QGridLayout" name="gridLayout_6">
-               <item row="0" column="0">
-                <layout class="QHBoxLayout" name="horizontalLayout_7">
-                 <item>
-                  <widget class="QLabel" name="label_SCARF_username">
-                   <property name="text">
-                    <string>Username:</string>
-                   </property>
-                   <property name="minimumSize">
-                    <size>
-                     <width>90</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QLineEdit" name="lineEdit_SCARF_username">
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="minimumSize">
-                    <size>
-                     <width>140</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                   <property name="toolTip">
-                    <string>Type your username on the remote compute resource</string>
-                   </property>
-                   <property name="text">
-                    <string/>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <spacer name="horizontalSpacer_15">
-                   <property name="orientation">
-                    <enum>Qt::Horizontal</enum>
-                   </property>
-                   <property name="sizeHint" stdset="0">
-                    <size>
-                     <width>738</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </spacer>
-                 </item>
-                </layout>
-               </item>
-               <item row="1" column="0">
-                <layout class="QHBoxLayout" name="horizontalLayout_5">
-                 <item>
-                  <widget class="QLabel" name="label_SCARF_password">
-                   <property name="text">
-                    <string>Password:</string>
-                   </property>
-                   <property name="minimumSize">
-                    <size>
-                     <width>90</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QLineEdit" name="lineEdit_SCARF_password">
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="minimumSize">
-                    <size>
-                     <width>140</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                   <property name="toolTip">
-                    <string>Type your password. It will be used just for authentication. It won't be displayed or saved anywhere</string>
-                   </property>
-                   <property name="text">
-                    <string/>
-                   </property>
-                   <property name="echoMode">
-                    <enum>QLineEdit::Password</enum>
-                   </property>
-                   <property name="cursorPosition">
-                    <number>0</number>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <spacer name="horizontalSpacer_20">
-                   <property name="orientation">
-                    <enum>Qt::Horizontal</enum>
-                   </property>
-                   <property name="sizeHint" stdset="0">
-                    <size>
-                     <width>748</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </spacer>
-                 </item>
-                </layout>
-               </item>
-               <item row="2" column="0">
-                <layout class="QHBoxLayout" name="horizontalLayout_8">
-                 <item>
-                  <widget class="QPushButton" name="pushButton_SCARF_login">
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="minimumSize">
-                    <size>
-                     <width>0</width>
-                     <height>22</height>
-                    </size>
-                   </property>
-                   <property name="text">
-                    <string>Log in</string>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QPushButton" name="pushButton_SCARF_logout">
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="minimumSize">
-                    <size>
-                     <width>0</width>
-                     <height>22</height>
-                    </size>
-                   </property>
-                   <property name="text">
-                    <string>Log out</string>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <spacer name="horizontalSpacer_12">
-                   <property name="orientation">
-                    <enum>Qt::Horizontal</enum>
-                   </property>
-                   <property name="sizeHint" stdset="0">
-                    <size>
-                     <width>198</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </spacer>
-                 </item>
-                </layout>
-               </item>
-               <item row="3" column="0">
-                <widget class="QGroupBox" name="groupBox_3">
-                 <property name="title">
-                  <string>Options:</string>
-                 </property>
-                 <layout class="QGridLayout" name="gridLayout_3">
-                  <item row="2" column="0">
-                   <layout class="QHBoxLayout" name="horizontalLayout_11">
-                    <item>
-                     <widget class="QLabel" name="label_23">
-                      <property name="text">
-                       <string>Number of nodes:</string>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <widget class="QSpinBox" name="spinBox_SCARFnumNodes">
-                      <property name="minimumSize">
-                       <size>
-                        <width>0</width>
-                        <height>20</height>
-                       </size>
-                      </property>
-                      <property name="minimum">
-                       <number>1</number>
-                      </property>
-                      <property name="maximum">
-                       <number>99</number>
-                      </property>
-                      <property name="value">
-                       <number>1</number>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <spacer name="horizontalSpacer_16">
-                      <property name="orientation">
-                       <enum>Qt::Horizontal</enum>
-                      </property>
-                      <property name="sizeHint" stdset="0">
-                       <size>
-                        <width>678</width>
-                        <height>20</height>
-                       </size>
-                      </property>
-                     </spacer>
-                    </item>
-                   </layout>
-                  </item>
-                  <item row="0" column="0">
-                   <layout class="QHBoxLayout" name="horizontalLayout_10">
-                    <item>
-                     <widget class="QLabel" name="label_22">
-                      <property name="text">
-                       <string>Main path on the SCARF file system:</string>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <widget class="QLineEdit" name="lineEdit_SCARF_path">
-                      <property name="minimumSize">
-                       <size>
-                        <width>0</width>
-                        <height>20</height>
-                       </size>
-                      </property>
-                      <property name="text">
-                       <string>/work/imat/runs/test</string>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <spacer name="horizontalSpacer_2">
-                      <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="3" column="0">
-                   <layout class="QHBoxLayout" name="horizontalLayout_12">
-                    <item>
-                     <widget class="QLabel" name="label_24">
-                      <property name="text">
-                       <string>Number of cores:</string>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <widget class="QSpinBox" name="spinBox_SCARFnumCores">
-                      <property name="minimumSize">
-                       <size>
-                        <width>0</width>
-                        <height>20</height>
-                       </size>
-                      </property>
-                      <property name="minimum">
-                       <number>1</number>
-                      </property>
-                      <property name="maximum">
-                       <number>99</number>
-                      </property>
-                      <property name="value">
-                       <number>8</number>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <spacer name="horizontalSpacer_17">
-                      <property name="orientation">
-                       <enum>Qt::Horizontal</enum>
-                      </property>
-                      <property name="sizeHint" stdset="0">
-                       <size>
-                        <width>434</width>
-                        <height>20</height>
-                       </size>
-                      </property>
-                     </spacer>
-                    </item>
-                   </layout>
-                  </item>
-                  <item row="1" column="0">
-                   <layout class="QHBoxLayout" name="horizontalLayout_2">
-                    <item>
-                     <widget class="QLabel" name="label">
-                      <property name="text">
-                       <string>Base path for tools/scripts:</string>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <widget class="QLineEdit" name="lineEdit_scripts_base_dir">
-                      <property name="text">
-                       <string>/work/imat/runs-scripts</string>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <widget class="QPushButton" name="pushButton_reset_scripts_base_dir">
-                      <property name="text">
-                       <string>Reset</string>
-                      </property>
-                     </widget>
-                    </item>
-                   </layout>
-                  </item>
-                 </layout>
-                </widget>
-               </item>
-              </layout>
-             </widget>
-             <widget class="QWidget" name="tab_local">
-              <attribute name="title">
-               <string>Local</string>
-              </attribute>
-              <layout class="QGridLayout" name="gridLayout_28">
-               <item row="1" column="0">
-                <spacer name="verticalSpacer_9">
-                 <property name="orientation">
-                  <enum>Qt::Vertical</enum>
-                 </property>
-                 <property name="sizeHint" stdset="0">
-                  <size>
-                   <width>20</width>
-                   <height>82</height>
-                  </size>
-                 </property>
-                </spacer>
-               </item>
-               <item row="0" column="0">
-                <widget class="QGroupBox" name="groupBox_4">
-                 <property name="title">
-                  <string>Options:</string>
-                 </property>
-                 <layout class="QGridLayout" name="gridLayout_8">
-                  <item row="0" column="0">
-                   <layout class="QHBoxLayout" name="horizontalLayout_6">
-                    <item>
-                     <widget class="QLabel" name="label_25">
-                      <property name="text">
-                       <string>Number of cores:</string>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <widget class="QSpinBox" name="spinBox_localNumCores">
-                      <property name="minimumSize">
-                       <size>
-                        <width>0</width>
-                        <height>10</height>
-                       </size>
-                      </property>
-                      <property name="maximum">
-                       <number>99</number>
-                      </property>
-                      <property name="value">
-                       <number>8</number>
-                      </property>
-                     </widget>
-                    </item>
-                    <item>
-                     <spacer name="horizontalSpacer_18">
-                      <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>
-              </layout>
-             </widget>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QGroupBox" name="groupBox_2">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-            <horstretch>0</horstretch>
-            <verstretch>1</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="minimumSize">
-           <size>
-            <width>0</width>
-            <height>100</height>
-           </size>
-          </property>
-          <property name="title">
-           <string>Select base directories/folders for images:</string>
-          </property>
-          <layout class="QGridLayout" name="gridLayout">
-           <property name="margin">
-            <number>3</number>
-           </property>
-           <property name="spacing">
-            <number>2</number>
-           </property>
-           <item row="0" column="0">
-            <widget class="QLabel" name="label_5">
-             <property name="minimumSize">
-              <size>
-               <width>120</width>
-               <height>0</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>101</width>
-               <height>16777215</height>
-              </size>
-             </property>
-             <property name="text">
-              <string>Samples directory:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QLineEdit" name="lineEdit_path_FITS">
-             <property name="text">
-              <string/>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="2">
-            <widget class="QPushButton" name="pushButton_fits_dir">
-             <property name="maximumSize">
-              <size>
-               <width>75</width>
-               <height>16777215</height>
-              </size>
-             </property>
-             <property name="text">
-              <string>Browse...</string>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="0">
-            <widget class="QLabel" name="label_6">
-             <property name="minimumSize">
-              <size>
-               <width>120</width>
-               <height>0</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>101</width>
-               <height>16777215</height>
-              </size>
-             </property>
-             <property name="text">
-              <string>Open beam dir.:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="QLineEdit" name="lineEdit_path_flat"/>
-           </item>
-           <item row="1" column="2">
-            <widget class="QPushButton" name="pushButton_flat_dir">
-             <property name="maximumSize">
-              <size>
-               <width>75</width>
-               <height>16777215</height>
-              </size>
-             </property>
-             <property name="text">
-              <string>Browse...</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="0">
-            <widget class="QLabel" name="label_7">
-             <property name="minimumSize">
-              <size>
-               <width>120</width>
-               <height>0</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>101</width>
-               <height>16777215</height>
-              </size>
-             </property>
-             <property name="text">
-              <string>Dark field dir.:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="1">
-            <widget class="QLineEdit" name="lineEdit_path_dark"/>
-           </item>
-           <item row="2" column="2">
-            <widget class="QPushButton" name="pushButton_dark_dir">
-             <property name="maximumSize">
-              <size>
-               <width>75</width>
-               <height>16777215</height>
-              </size>
-             </property>
-             <property name="text">
-              <string>Browse...</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-          <zorder>lineEdit_path_FITS</zorder>
-          <zorder>lineEdit_path_flat</zorder>
-          <zorder>lineEdit_path_dark</zorder>
-          <zorder>label_5</zorder>
-          <zorder>label_6</zorder>
-          <zorder>label_7</zorder>
-          <zorder>pushButton_fits_dir</zorder>
-          <zorder>pushButton_flat_dir</zorder>
-          <zorder>pushButton_dark_dir</zorder>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QGroupBox" name="groupBox_run_config">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-            <horstretch>0</horstretch>
-            <verstretch>1</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="minimumSize">
-           <size>
-            <width>0</width>
-            <height>100</height>
-           </size>
-          </property>
-          <property name="title">
-           <string>Run Configuration</string>
-          </property>
-          <layout class="QGridLayout" name="gridLayout_2">
-           <property name="margin">
-            <number>3</number>
-           </property>
-           <property name="spacing">
-            <number>2</number>
-           </property>
-           <item row="1" column="0">
-            <widget class="QFrame" name="frame">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>16777215</width>
-               <height>60</height>
-              </size>
-             </property>
-             <property name="frameShape">
-              <enum>QFrame::StyledPanel</enum>
-             </property>
-             <property name="frameShadow">
-              <enum>QFrame::Raised</enum>
-             </property>
-             <layout class="QHBoxLayout" name="horizontalLayout">
-              <property name="leftMargin">
-               <number>8</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="checkBox">
-                <property name="text">
-                 <string>Automatically Reconstruct every </string>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <widget class="QSpinBox" name="spinBox">
-                <property name="minimum">
-                 <number>1</number>
-                </property>
-                <property name="maximum">
-                 <number>5000</number>
-                </property>
-                <property name="value">
-                 <number>1</number>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <widget class="QLabel" name="label_3">
-                <property name="text">
-                 <string>files.</string>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <spacer name="horizontalSpacer_4">
-                <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
-                </property>
-                <property name="sizeHint" stdset="0">
-                 <size>
-                  <width>683</width>
-                  <height>20</height>
-                 </size>
-                </property>
-               </spacer>
-              </item>
-             </layout>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="3" column="0">
-         <spacer name="verticalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Vertical</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>20</width>
-            <height>120</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </widget>
-     </widget>
-    </item>
-    <item row="1" column="0">
-     <layout class="QHBoxLayout" name="horizontalLayout_3">
-      <item>
-       <widget class="QPushButton" name="pushButton_help">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="maximumSize">
-         <size>
-          <width>25</width>
-          <height>25</height>
-         </size>
-        </property>
-        <property name="text">
-         <string>?</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>158</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item>
-       <widget class="QPushButton" name="pushButton_close">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text">
-         <string>Close</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </item>
-   </layout>
-  </widget>
-  <action name="actionOpen">
-   <property name="text">
-    <string>&amp;Open...</string>
-   </property>
-  </action>
-  <action name="actionSave">
-   <property name="text">
-    <string>&amp;Save</string>
-   </property>
-  </action>
-  <action name="actionSaveAs">
-   <property name="text">
-    <string>Save As</string>
-   </property>
-  </action>
- </widget>
- <tabstops>
-  <tabstop>lineEdit_SCARF_username</tabstop>
-  <tabstop>lineEdit_SCARF_password</tabstop>
-  <tabstop>lineEdit_SCARF_path</tabstop>
-  <tabstop>spinBox_SCARFnumNodes</tabstop>
-  <tabstop>spinBox_SCARFnumCores</tabstop>
-  <tabstop>pushButton_SCARF_login</tabstop>
-  <tabstop>lineEdit_path_FITS</tabstop>
-  <tabstop>lineEdit_path_flat</tabstop>
-  <tabstop>lineEdit_path_dark</tabstop>
-  <tabstop>tabWidget_comp_resource</tabstop>
-  <tabstop>pushButton_SCARF_logout</tabstop>
-  <tabstop>tabMain</tabstop>
-  <tabstop>spinBox_localNumCores</tabstop>
-  <tabstop>pushButton_fits_dir</tabstop>
-  <tabstop>pushButton_flat_dir</tabstop>
-  <tabstop>pushButton_dark_dir</tabstop>
-  <tabstop>checkBox</tabstop>
-  <tabstop>spinBox</tabstop>
-  <tabstop>pushButton_browse_image</tabstop>
-  <tabstop>pushButton_reconstruct</tabstop>
-  <tabstop>pushButton_remote_status</tabstop>
-  <tabstop>comboBox_run_compute_resource</tabstop>
-  <tabstop>comboBox_run_tool</tabstop>
-  <tabstop>pushButton_run_tool_setup</tabstop>
-  <tabstop>tableWidget_run_jobs</tabstop>
-  <tabstop>pushButton_run_job_visualize</tabstop>
-  <tabstop>pushButton_run_job_cancel</tabstop>
-  <tabstop>pushButton_run_refresh</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/ToolSettings.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/ToolSettings.h
deleted file mode 100644
index db26452e7152a2da16583ae985b79fd519d89995..0000000000000000000000000000000000000000
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/ToolSettings.h
+++ /dev/null
@@ -1,182 +0,0 @@
-#ifndef MANTIDQTCUSTOMINTERFACES_TOOLSETTINGS_H_
-#define MANTIDQTCUSTOMINTERFACES_TOOLSETTINGS_H_
-
-#include <string>
-
-namespace MantidQt {
-namespace CustomInterfaces {
-
-/**
-Third party tool settings for the tomographic reconstruction GUI. This
-is under heavy development, and as it is not necessarily related to
-custom interfaces might be moved out of here.
-
-Copyright &copy; 2014,205 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>
-*/
-
-/**
- * General tool settings. This class represents the settings of a
- * third party or external tool/program/module/etc. that Mantid would
- * run either locally or on a remote computer. The purpose here is to
- * produce the command line or similar that will run the third party
- * tool for certain user requirements/settings/options/preferences.
- *
- * TODO: a related class to represent third party tools should be
- * added that would take care of platform specificities, tool
- * availability, execute permissions, etc.
- */
-class ToolSettings {
-public:
-  /**
-   * Construct a settings object, given a 'runnable', which can be an
-   * application, executable, script, etc. - the access point to a
-   * third party tool. If this class is developed to be smart enough,
-   * and with the help of the additional '3rd party tool' class, it
-   * should be able to translate application names into binary paths
-   * and similar internally.
-   *
-   * @param runnable name of the runnable object (application, executable,
-   * etc.). This can be a full path, an application name, etc. At
-   * present it is used in its simplest form: platform and machine
-   * dependent full path to an execuatable or script.
-   */
-  ToolSettings(const std::string &runnable) : m_runnable(runnable) {}
-
-  /**
-   * validate that it is possible to produce a sensible command line
-   * from this settings object.
-   *
-   * @return the tool and its settings are consistent and it looks
-   * like it should be possible to run it.
-   */
-  virtual bool valid() const { return true; }
-
-  /**
-   * Produce a command line to run this tool with these settings.
-   *
-   * @return command line ready to run on a certain platform
-   */
-  virtual std::string toCommand() const {
-    return makeExecutable() + " " + makeCmdLineOptions();
-  }
-
-  /**
-   * Produces a string with the command line options derived from the
-   * different options set.
-   *
-   * @return command line options string
-   */
-  virtual std::string makeCmdLineOptions() const = 0;
-
-  /**
-   * Produces an string that describes the executable, ready to run
-   * as a binary, python or other type of scripts, etc. Normally you
-   * append command line options to this.
-   */
-  virtual std::string makeExecutable() const = 0;
-
-protected:
-  std::string m_runnable;
-
-private:
-  ToolSettings(ToolSettings &);
-};
-
-/**
- * Custom command line settings. To run a command of the user's choice
- * with free-form options.
- */
-class ToolSettingsCustom : public ToolSettings {
-public:
-  ToolSettingsCustom(const std::string &runnable, const std::string &cmdOptions)
-      : ToolSettings(runnable), m_opts(cmdOptions) {}
-
-protected:
-  virtual std::string makeCmdLineOptions() const { return m_opts; }
-
-  virtual std::string makeExecutable() const { return m_runnable; };
-
-private:
-  ToolSettingsCustom(ToolSettings &);
-
-  std::string m_opts;
-};
-
-/**
- * Third party tool settings class specialized for the settings of the
- * TomoPy tomographic reconstruction tool (Python + C++):
- * https://www1.aps.anl.gov/Science/Scientific-Software/TomoPy
- */
-class ToolSettingsTomoPy : public ToolSettings {
-public:
-  ToolSettingsTomoPy(const std::string &runnable, const std::string &pathOut,
-                     const std::string &pathDark, const std::string &pathOpen,
-                     const std::string &pathSample, double centerRot,
-                     double angleMin, double angleMax);
-
-protected:
-  virtual std::string makeCmdLineOptions() const;
-
-  virtual std::string makeExecutable() const { return m_runnable; };
-
-private:
-  std::string m_pathOut;
-  std::string m_pathDark;
-  std::string m_pathOpen;
-  std::string m_pathSample;
-  double m_centerRot;
-  double m_angleMin;
-  double m_angleMax;
-};
-
-/**
- * Third party tool settings class specialized for the settings of the
- * Astra Toolbox tomographic reconstruction tool (C++): Astra Toolbox
- * <http://sourceforge.net/p/astra-toolbox/wiki/Home/
- */
-class ToolSettingsAstraToolbox : public ToolSettings {
-public:
-  ToolSettingsAstraToolbox(const std::string &runnable, double centerRot,
-                           double angleMin, double angleMax,
-                           const std::string &pathOut,
-                           const std::string &pathDark,
-                           const std::string &pathOpen,
-                           const std::string &pathSample);
-
-protected:
-  virtual std::string makeCmdLineOptions() const;
-
-  virtual std::string makeExecutable() const { return m_runnable; };
-
-private:
-  double m_centerRot;
-  double m_angleMin;
-  double m_angleMax;
-  std::string m_pathOut;
-  std::string m_pathDark;
-  std::string m_pathOpen;
-  std::string m_pathSample;
-};
-}
-}
-
-#endif // MANTIDQTCUSTOMINTERFACES_TOOLSETTINGS_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ITomographyIfacePresenter.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ITomographyIfacePresenter.h
new file mode 100644
index 0000000000000000000000000000000000000000..77f46747a077d353afc005a2a3bbe7461230e8e3
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ITomographyIfacePresenter.h
@@ -0,0 +1,69 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_ITOMOGRAPHYIFACEPRESENTER_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_ITOMOGRAPHYIFACEPRESENTER_H_
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+Interface for what the presenter of the tomography GUI needs to
+implement. Here the term presenter is used as in the MVP
+(Model-View-Presenter) pattern. The (passive) view will use this.
+
+Copyright &copy; 2014,205 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 ITomographyIfacePresenter {
+public:
+  virtual ~ITomographyIfacePresenter() {}
+
+  /// These are user actions, triggered from the (passive) view, that need
+  /// handling by the presenter
+  enum Notification {
+    SetupResourcesAndTools, ///< Setup what are available, normally at startup
+    CompResourceChanged,    ///< 'current' compute resource changed
+    ToolChanged,        ///< 'current' tomographic reconstruction tool changed
+    TomoPathsChanged,   ///< user manipulates tomography data paths
+    LogInRequested,     ///< user hits 'log in' or similar
+    LogOutRequested,    ///< user hits 'log out' or similar
+    SetupReconTool,     ///< To start the setup (open dialog, etc.)
+    RunReconstruct,     ///< user hits 'reconstruct' or similar
+    RefreshJobs,        ///< get updated jobs info in the table/tree
+    CancelJobFromTable, ///< cancel one job from the list
+    VisualizeJobFromTable, ///< open visualization window for one job
+    ViewImg,               ///< user wants to view an image (2D)
+    LogMsg,                ///< need to send a message to the Mantid log system
+    ShutDown               ///< closing the interface
+  };
+
+  /**
+   * Notifications sent through the presenter when something changes
+   * in the view. This plays the role of signals emitted by the view
+   * to this presenter.
+   *
+   * @param notif Type of notification to process.
+   */
+  virtual void notify(ITomographyIfacePresenter::Notification notif) = 0;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_ITOMOGRAPHYIFACEPRESENTER_H_
\ No newline at end of file
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ITomographyIfaceView.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ITomographyIfaceView.h
new file mode 100644
index 0000000000000000000000000000000000000000..3802a4b2b8cece79b1dc96f4b9dc12c18349e24c
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ITomographyIfaceView.h
@@ -0,0 +1,258 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_ITOMOGRAPHYIFACEVIEW_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_ITOMOGRAPHYIFACEVIEW_H_
+
+#include "MantidAPI/IRemoteJobManager.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
+#include "MantidQtCustomInterfaces/Tomography/TomoPathsConfig.h"
+#include "MantidQtCustomInterfaces/Tomography/TomoReconToolsUserSettings.h"
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+Tomography GUI. Base class / interface for the view of the tomo GUI
+(view in the sense of the MVP pattern). This class is Qt-free. Qt
+specific functionality/dependencies are added in a class derived from
+this.
+
+Copyright &copy; 2014,205 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 ITomographyIfaceView {
+
+public:
+  ITomographyIfaceView(){};
+  virtual ~ITomographyIfaceView(){};
+
+  /**
+   * Display a warning to the user (for example as a pop-up window).
+   *
+   * @param warn warning title, should be short and would normally be
+   * shown as the title of the window or a big banner.
+   *
+   * @param description longer, free form description of the issue.
+   */
+  virtual void userWarning(const std::string &warn,
+                           const std::string &description) = 0;
+
+  /**
+   * Display an error message (for example as a pop-up window).
+   *
+   * @param err Error title, should be short and would normally be
+   * shown as the title of the window or a big banner.
+   *
+   * @param description longer, free form description of the issue.
+   */
+  virtual void userError(const std::string &err,
+                         const std::string &description) = 0;
+
+  /**
+   * Set the compute resources available (remote and/or local). Note
+   * that the order of the list is/can be important.
+   *
+   * @param resources identifiers for the resources (their display names
+   * normally). Order matters
+   *
+   * @param enabled tell if the resources are enabled or usable (which
+   * should have an effect on how they are displayed and if they can be
+   * used (for example, selected) in the interface.
+   */
+  virtual void setComputeResources(const std::vector<std::string> &resources,
+                                   const std::vector<bool> &enabled) = 0;
+
+  /**
+   * Set the tools available on a compute resource.
+   *
+   * @param tools identifiers of the tools that can or could be run.
+   * Order matters
+   *
+   * @param enabled tells if the tools are actually usable (which
+   * should have an effect on how they are displayed and if they can
+   * be used in the GUI (for example, if they can be selected at all).
+   */
+  virtual void setReconstructionTools(const std::vector<std::string> &tools,
+                                      const std::vector<bool> &enabled) = 0;
+
+  /**
+   * Gives messages that this View wants to send to the logging
+   * system.
+   *
+   * @return list of messages to log, one by one.
+   */
+  virtual std::vector<std::string> logMsgs() const = 0;
+
+  /**
+   * Username entered by the user
+   *
+   * @return username to log in to the compute resource
+   */
+  virtual std::string getUsername() const = 0;
+
+  /**
+   * Password entered by the user
+   *
+   * @return password to authenticate / log in to the compute resource
+   */
+  virtual std::string getPassword() const = 0;
+
+  virtual std::vector<std::string> processingJobsIDs() const = 0;
+
+  /**
+   * Get the current reconstruction tooll settings set by the user.
+   *
+   * @return Settings for the set of supported tools.
+   */
+  virtual TomoReconToolsUserSettings reconToolsSettings() const = 0;
+
+  /**
+   * Gets the compute resource that is currently selected by the user.
+   * This calls a validation method that can throw in case of
+   * inconsistencies.
+   *
+   * @return Name of the compute resource as a string.
+   */
+  virtual std::string currentComputeResource() const = 0;
+
+  /**
+   * What's the reconstruction tool currently used and/or set up by
+   * the user.
+   *
+   * @return name of the tool as a human readable string
+   */
+  virtual std::string currentReconTool() const = 0;
+
+  /**
+   * Updates buttons and banners related to the current login
+   * status. For example, when we are logged in, the 'log in' button
+   * should be disabled, but some other widget may be enabled or some
+   * way displaying the 'in' status.
+   *
+   * @param loggedIn if we're logged in.
+   */
+  virtual void updateLoginControls(bool loggedIn) = 0;
+
+  /**
+   * To enable/disable the actions that require being logged in. This
+   * can include for example: submit jobs, get or refresh status of
+   * jobs, setup parameters for the remote compute resource, logout,
+   * etc.
+   *
+   * @param enable True to enable, or allow the user to use buttons
+   * and widgets to trigger those actions.
+   */
+  virtual void enableLoggedActions(bool enable) = 0;
+
+  /**
+   * Whether to enable (allow the user to open or use) the tool
+   * specific configuration dialog.
+   *
+   * @param on enable the button or mechanism to open the dialog
+   */
+  virtual void enableConfigTool(bool on) = 0;
+
+  /**
+   * Set the state of the 'reconstruct' button or similar to start
+   * reconstruction jobs.
+   *
+   * @param on whether to enable / allow the user to run it
+   */
+  virtual void enableRunReconstruct(bool on) = 0;
+
+  /**
+   * Path to the image (2D) being shown on the interface.
+   *
+   * @return path as a string
+   */
+  virtual std::string showImagePath() const = 0;
+
+  /**
+   * Draw an image on the visualization tab/interface, from a path to
+   * a recognized image format. Here recognized format means something
+   * that is supported natively by the widgets library, in practice
+   * Qt. Normally you can expect that .tiff and .png images are
+   * supported.
+   *
+   * @param path path to the image file.
+   */
+  virtual void showImage(const std::string &path) = 0;
+
+  /**
+   * Draw an image on the visualization tab/interface, from a matrix
+   * workspace (for example when elsewhere you load a FITS or similar
+   * format that is loaded through a Mantid algorithm, say LoadFITS,
+   * and you want to display it here). This should check dimensions
+   * and workspace structure and shows user warning/error messages
+   * appropriately. But in principle it should not raise any
+   * exceptions under reasonable circumstances. It assumes that the
+   * workspace contains an image in the form in which LoadFITS loads
+   * FITS images (or spectrum per row, all of them with the same
+   * number of data points (columns)).
+   *
+   * @param ws Workspace where a FITS or similar image has been loaded
+   * with LoadFITS or similar algorithm.
+   */
+  virtual void showImage(const Mantid::API::MatrixWorkspace_sptr &ws) = 0;
+
+  /**
+   * Paths to the sample, open beam, etc. data (image) files.
+   *
+   * @return paths configuration object
+   */
+  virtual TomoPathsConfig currentPathsConfig() const = 0;
+
+  /**
+   * Show a tool specific configuration dialog for the user to set it up
+   *
+   * @param name human readable name of the tool, as a string
+   */
+  virtual void showToolConfig(const std::string &name) = 0;
+
+  /**
+   * Refresh the table, tree etc. that displays info on the running/finished
+   *jobs.
+   *
+   * @param status Job information, as produced for example by the
+   * Mantid remote algorithms.
+   */
+  virtual void updateJobsInfoDisplay(const std::vector<
+      Mantid::API::IRemoteJobManager::RemoteJobInfo> &status) = 0;
+
+  /**
+   * Save settings (normally when closing the interface). This refers
+   * to purely GUI settings, such as window max/min status and  geometry,
+   * preferences and niceties of the user interface.
+   */
+  virtual void saveSettings() const = 0;
+
+  /**
+   * If using the keep alive mechanism, what's the period for the
+   * query to the remote compute resources? 0 == disabled (by default)
+   *
+   * @return period (in seconds) for the keep alive mechanism, when
+   * using it; 0 otherwise.
+   */
+  virtual int keepAlivePeriod() { return 0; }
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_ITOMOGRAPHYIFACEVIEW_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoPathsConfig.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoPathsConfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..92400342f4a0363d6d52588065ae557fc58994c3
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoPathsConfig.h
@@ -0,0 +1,123 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOPATHSCONFIG_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOPATHSCONFIG_H_
+
+#include "MantidKernel/System.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigAstraToolbox.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigCustom.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigTomoPy.h"
+
+#include <string>
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+Represents one particular configuration of paths for tomography
+jobs. These paths point to sample, open bean, flat etc. data (images)
+that define where the data for a particular dataset can be found, and
+that are normally required to run reconstruction tools but also pre-
+and post- processing steps.
+
+Copyright &copy; 2014,205 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 TomoPathsConfig {
+public:
+  /**
+   * Default constructor, makes a paths configuration which probably
+   * needs additional input from the user before being usable (see
+   * validate()).
+   */
+  TomoPathsConfig();
+
+  /**
+   * If the result of this validation is true, that must be
+   * interpreted as: "this is ready to be used to run reconstruction
+   * or other types of tools." Answers the question: is it non-empty
+   * and apparently correct and usable? This will be false if it is
+   * not initialized or any inconsistency can be detected.
+   *
+   * @return whether this configuration seems to be ready to be used.
+   */
+  bool validate() const;
+
+  /**
+   * Path to the sample files (sample images, typically FITS files)
+   *
+   * @return path (full or relative) as a string.
+   */
+  std::string pathSamples() const { return m_pathFITS; }
+
+  void updatePathSamples(const std::string &p) { m_pathFITS = p; }
+
+  /**
+   * Path to the open beam file(s) (sample images, typically FITS files)
+   * Note: open bean a.k.a. 'flat' or 'white'
+   *
+   * @return path (full or relative, directory or file) as a string.
+   */
+  std::string pathOpenBeam() const { return m_pathFlat; }
+
+  void updatePathOpenBeam(const std::string &p) { m_pathFlat = p; }
+
+  /**
+   * Path to the dark image file(s)
+   *
+   * @return path (full or relative, directory or file) as a string.
+   */
+  std::string pathDark() const { return m_pathDark; }
+
+  void updatePathDark(const std::string &p) { m_pathDark = p; }
+
+  /**
+   * Path to a base directory (for data usually). All other paths
+   * could be absolute or relative to this one.
+   *
+   * @return path (full, directory) as a string.
+   */
+  std::string pathBase() const { return m_pathBase; }
+
+  void updatePathBase(const std::string &p) { m_pathBase = p; }
+
+  std::string pathSavuConfig() const;
+
+  std::string pathScriptsTools() const { return m_pathScriptsTools; }
+
+  void updatePathScriptsTools(const std::string &p) { m_pathScriptsTools = p; }
+
+private:
+  /// file paths, base dir on scarf
+  std::string m_pathBase;
+  /// path to fits file (sample data)
+  std::string m_pathFITS;
+  /// path to flat/open beam/bright image
+  std::string m_pathFlat;
+  /// path to dark image
+  std::string m_pathDark;
+
+  /// path to scripts/binaries
+  std::string m_pathScriptsTools;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOPATHSCONFIG_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoRecToolConfig.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoRecToolConfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..1ff91bd3933bcec2ee31c120f04e8e814e78bc12
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoRecToolConfig.h
@@ -0,0 +1,108 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMORECTOOLCONFIG_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMORECTOOLCONFIG_H_
+
+#include <string>
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+Configuration of a third party tomographic reconstruction tool. This
+is under development, and as it is not necessarily related to custom
+interfaces this class and some derived ones might be moved out of
+here.
+
+Copyright &copy; 2014,205 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>
+*/
+
+/**
+ * General tomographic reconstruction tool configuration. This class
+ * represents the configuration (or run options/settings) of a third
+ * party or external tool/program/module/etc. that Mantid would run
+ * either locally or on a remote computer. The purpose here is to
+ * produce the command line or similar that will run the third party
+ * tool for certain user requirements/settings/options/preferences.
+ *
+ * TODO: a related class to represent third party tools should be
+ * added that would take care of platform specificities, tool
+ * availability, execute permissions, etc.
+ */
+class TomoRecToolConfig {
+public:
+  /**
+   * Construct a config object, given a 'runnable', which can be an
+   * application, executable, script, etc. - the access point to a
+   * third party tool. If this class is developed to be smart enough,
+   * and with the help of the additional '3rd party tool' class, it
+   * should be able to translate application names into binary paths
+   * and similar internally.
+   *
+   * @param runnable name of the runnable object (application, executable,
+   * etc.). This can be a full path, an application name, etc. At
+   * present it is used in its simplest form: platform and machine
+   * dependent full path to an execuatable or script.
+   */
+  TomoRecToolConfig(const std::string &runnable="") : m_runnable(runnable) {}
+
+  virtual ~TomoRecToolConfig() {}
+
+  /**
+   * validate that it is possible to produce a sensible command line
+   * from this config object.
+   *
+   * @return the tool and its config are consistent and it looks
+   * like it should be possible to run it.
+   */
+  virtual bool valid() const { return true; }
+
+  /**
+   * Produce a command line to run this tool with this configuration.
+   *
+   * @return command line ready to run on a certain platform
+   */
+  virtual std::string toCommand() const {
+    return makeExecutable() + " " + makeCmdLineOptions();
+  }
+
+  /**
+   * Produces a string with the command line options derived from the
+   * different options set.
+   *
+   * @return command line options string
+   */
+  virtual std::string makeCmdLineOptions() const = 0;
+
+  /**
+   * Produces an string that describes the executable, ready to run
+   * as a binary, python or other type of scripts, etc. Normally you
+   * append command line options to this.
+   */
+  virtual std::string makeExecutable() const = 0;
+
+protected:
+  std::string m_runnable;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMORECTOOLCONFIG_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoReconToolsUserSettings.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoReconToolsUserSettings.h
new file mode 100644
index 0000000000000000000000000000000000000000..25857af9e1a9827251c4b52c3453429c8837cb7a
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoReconToolsUserSettings.h
@@ -0,0 +1,52 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMORECONTOOLSUSERSETTINGS_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMORECONTOOLSUSERSETTINGS_H_
+
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigAstraToolbox.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigCustom.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigTomoPy.h"
+
+#include <string>
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+Settings for a set of tomographic reconstruction tools supported.
+
+Copyright &copy; 2014,205 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>
+*/
+struct TomoReconToolsUserSettings {
+  // This is just too basic at the moment. We probably want to store
+  // here the real settings objects for all the tools, and rather than
+  // this horror have a dictionary of tools-settings or
+  // similar. Waiting to see what happens with Savu and others.
+  MantidQt::CustomInterfaces::ToolConfigTomoPy tomoPy;
+  MantidQt::CustomInterfaces::ToolConfigAstraToolbox astra;
+  std::string CCPi;
+  std::string savu;
+  MantidQt::CustomInterfaces::ToolConfigCustom custom;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMORECONTOOLSUSERSETTINGS_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigAstra.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigAstra.ui
similarity index 100%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigAstra.ui
rename to Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigAstra.ui
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigCustom.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigCustom.ui
similarity index 100%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigCustom.ui
rename to Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigCustom.ui
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigDialog.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigDialog.h
similarity index 98%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigDialog.h
rename to Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigDialog.h
index 8b0ac868aec5a39ee3012f0ee9dff4cc769d310c..64cfc7a36aed82bdc7e6a1585e4b6895eb15ca0b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigDialog.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigDialog.h
@@ -1,7 +1,6 @@
 #ifndef MANTIDQTCUSTOMINTERFACES_TOMOTOOLCONFIGDIALOG_H_
 #define MANTIDQTCUSTOMINTERFACES_TOMOTOOLCONFIGDIALOG_H_
 
-#include "ui_TomoReconstruction.h"
 #include "ui_TomoToolConfigAstra.h"
 #include "ui_TomoToolConfigCustom.h"
 #include "ui_TomoToolConfigSavu.h"
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigSavu.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigSavu.ui
similarity index 100%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigSavu.ui
rename to Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigSavu.ui
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigTomoPy.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigTomoPy.ui
similarity index 100%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigTomoPy.ui
rename to Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomoToolConfigTomoPy.ui
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceModel.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceModel.h
new file mode 100644
index 0000000000000000000000000000000000000000..a915f0c9ed1f7e54df8fa5b8249154eaef3410f8
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceModel.h
@@ -0,0 +1,188 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOGRAPHYIFACEMODEL_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOGRAPHYIFACEMODEL_H_
+
+#include "MantidAPI/IRemoteJobManager.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
+#include "MantidKernel/System.h"
+#include "MantidQtCustomInterfaces/Tomography/TomoPathsConfig.h"
+#include "MantidQtCustomInterfaces/Tomography/TomoReconToolsUserSettings.h"
+
+// Qt classes forward declarations
+class QMutex;
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+Tomography GUI. Model for the interface (as in the MVP
+(Model-View-Presenter) pattern). In principle, in a strict MVP setup,
+signals from this model should always be handled through the presenter
+and never go directly to the view.
+
+Copyright &copy; 2014,205 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 TomographyIfaceModel {
+  // For now, there is no need to  make this a Q_OBJECT (and derive from
+  // QObject, but this class may become a "full" Q_OBJECT as soon as a Qt
+  // model (table, tree, etc.), with its signals, is used here
+  // Q_OBJECT
+
+public:
+  /// Default constructor
+  TomographyIfaceModel();
+  virtual ~TomographyIfaceModel();
+
+  void setupComputeResource();
+  void setupRunTool(const std::string &compRes);
+
+  /// is the current facility supported? (only ISIS for now)
+  bool facilitySupported();
+
+  /// the compure resources supported and their status/availability
+  std::vector<std::string> computeResources() { return m_computeRes; }
+  std::vector<bool> computeResourcesStatus() { return m_computeResStatus; }
+
+  /// the reconstruction tools supported and their status/availability
+  std::vector<std::string> reconTools() { return m_reconTools; }
+  std::vector<bool> reconToolsStatus() { return m_reconToolsStatus; }
+
+  // Mantid::Kernel::Logger & logger() const;
+
+  const std::vector<Mantid::API::IRemoteJobManager::RemoteJobInfo>
+  jobsStatus() const {
+    return m_jobsStatus;
+  }
+
+  /// Username last logged in, if any.
+  std::string loggedIn() const { return m_loggedInUser; }
+  // TODO: add companion currentComputeResource where LoggedIn() is in
+  void usingTool(const std::string &tool) { m_currentTool = tool; }
+  std::string usingTool() const { return m_currentTool; }
+
+  /// ping the (remote) compute resource
+  bool doPing(const std::string &compRes);
+  /// Log into the (remote or local) compute resource
+  void doLogin(const std::string &compRes, const std::string &user,
+               const std::string &pw);
+  /// Log out from the (remote or local) compute resource
+  void doLogout(const std::string &compRes, const std::string &username);
+  /// Query the status of running (and recent) jobs
+  void doQueryJobStatus(const std::string &compRes,
+                        std::vector<std::string> &ids,
+                        std::vector<std::string> &names,
+                        std::vector<std::string> &status,
+                        std::vector<std::string> &cmds);
+  /// Submit a new job to the (remote or local) compute resource
+  void doSubmitReconstructionJob(const std::string &compRes);
+  /// Cancel a previously submitted job
+  void doCancelJobs(const std::string &compRes,
+                    const std::vector<std::string> &id);
+  /// Get fresh status information on running/recent jobs
+  void doRefreshJobsInfo(const std::string &compRes);
+
+  /// Update to the current setings given by the user
+  void updateReconToolsSettings(const TomoReconToolsUserSettings &ts) {
+    m_toolsSettings = ts;
+  }
+
+  /// loads an image/picture in FITS format
+  Mantid::API::WorkspaceGroup_sptr loadFITSImage(const std::string &path);
+
+  /// Log this message through the system logging
+  void logMsg(const std::string &msg);
+
+  /// for clean destruction
+  void cleanup();
+
+  std::string localComputeResource() const { return m_localCompName; }
+
+  void updateTomoPathsConfig(const TomoPathsConfig &tc) { m_pathsConfig = tc; }
+
+  // Names of image reconstruction tools
+  static const std::string g_TomoPyTool;
+  static const std::string g_AstraTool;
+  static const std::string g_CCPiTool;
+  static const std::string g_SavuTool;
+  static const std::string g_customCmdTool;
+
+private:
+  /// retrieve info from compute resource into status table
+  void getJobStatusInfo(const std::string &compRes);
+
+  std::string validateCompResource(const std::string &res);
+
+  /// makes the command line string to run on the remote/local
+  void makeRunnableWithOptions(const std::string &comp, std::string &run,
+                               std::string &opt);
+
+  void checkWarningToolNotSetup(const std::string &tool,
+                                const std::string &settings,
+                                const std::string &cmd, const std::string &opt);
+
+  void splitCmdLine(const std::string &cmd, std::string &run,
+                    std::string &opts);
+
+  void checkDataPathsSet();
+
+  /// username last logged in (empty if not in login status), from local
+  /// perspective
+  std::string m_loggedInUser;
+  std::string m_loggedInComp;
+
+  /// facility for the remote compute resource
+  const std::string m_facility;
+  /// display name of the "local" compute resource
+  const std::string m_localCompName;
+
+  /// compute resources suppoted by this GUI (remote ones, clusters, etc.)
+  std::vector<std::string> m_computeRes;
+  /// status of the compute resources: availalbe/unavailable or usable/unusable
+  std::vector<bool> m_computeResStatus;
+  /// identifiers of reconstruction tools supported, given a compute resource
+  std::vector<std::string> m_reconTools;
+  std::vector<bool> m_reconToolsStatus;
+
+  // status of remote jobs
+  std::vector<Mantid::API::IRemoteJobManager::RemoteJobInfo> m_jobsStatus;
+
+  /// reconstruction tools available on SCARF
+  std::vector<std::string> m_SCARFtools;
+
+  // Name of the remote compute resource
+  static const std::string g_SCARFName;
+
+  std::string m_currentTool;
+
+  TomoPathsConfig m_pathsConfig;
+
+  // Settings for the third party (tomographic reconstruction) tools
+  TomoReconToolsUserSettings m_toolsSettings;
+
+  // mutex for the job status info update operations
+  QMutex *m_statusMutex;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOGRAPHYIFACEMODEL_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfacePresenter.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfacePresenter.h
new file mode 100644
index 0000000000000000000000000000000000000000..f37b5569d582d5b09be32ecb775cd754c73d6b22
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfacePresenter.h
@@ -0,0 +1,111 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOGRAPHYIFACEPRESENTER_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOGRAPHYIFACEPRESENTER_H_
+
+#include "MantidQtCustomInterfaces/DllConfig.h"
+#include "MantidQtCustomInterfaces/Tomography/ITomographyIfacePresenter.h"
+#include "MantidQtCustomInterfaces/Tomography/ITomographyIfaceView.h"
+#include "MantidQtCustomInterfaces/Tomography/TomographyIfaceModel.h"
+
+#include <boost/scoped_ptr.hpp>
+#include <QMutex>
+#include <QObject>
+
+// Qt classes forward declarations
+class QThread;
+class QTimer;
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+Tomography GUI. Presenter for the GUI (as in the MVP
+(Model-View-Presenter) pattern). In principle, in a strict MVP setup,
+signals from the model should always be handled through this presenter
+and never go directly to the view, and viceversa.
+
+Copyright &copy; 2014,205 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 MANTIDQT_CUSTOMINTERFACES_DLL TomographyIfacePresenter
+    : public QObject,
+      public ITomographyIfacePresenter {
+  // Q_OBJECT for the 'keep alive' signals
+  Q_OBJECT
+
+public:
+  /// Default constructor - normally used from the concrete view
+  TomographyIfacePresenter(ITomographyIfaceView *view);
+  virtual ~TomographyIfacePresenter();
+
+  virtual void notify(ITomographyIfacePresenter::Notification notif);
+
+protected:
+  void initialize();
+
+  /// clean shut down of model, view, etc.
+  void cleanup();
+
+  void processSetup();
+  void processCompResourceChange();
+  void processToolChange();
+  void processTomoPathsChanged();
+  void processLogin();
+  void processLogout();
+  void processSetupReconTool();
+  void processRunRecon();
+
+protected slots:
+  /// It may be run on user request, or periodically from a timer/thread
+  void processRefreshJobs();
+
+protected:
+  void processCancelJobs();
+  void processVisualizeJobs();
+  void processViewImg();
+  void processLogMsg();
+  void processShutDown();
+
+  void doVisualize(const std::vector<std::string> &ids);
+
+  /// Starts a periodic query just to keep sessions alive when logged in
+  void startKeepAliveMechanism(int period);
+  /// Stops/kills the periodic query (for example if the user logs out)
+  void killKeepAliveMechanism();
+
+private:
+  /// Associated view for this presenter (MVP pattern)
+  ITomographyIfaceView *const m_view;
+
+  /// Associated model for this presenter (MVP pattern)
+  const boost::scoped_ptr<TomographyIfaceModel> m_model;
+
+  // mutex for the job status info update operations on the view
+  QMutex *m_statusMutex;
+
+  // for periodic update of the job status table/tree
+  QTimer *m_keepAliveTimer;
+  QThread *m_keepAliveThread;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOGRAPHYIFACEPRESENTER_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtGUI.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtGUI.ui
new file mode 100644
index 0000000000000000000000000000000000000000..0c3e4253364b191d9a78b378f777d4d799caa685
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtGUI.ui
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>TomographyIfaceQtGUI</class>
+ <widget class="QMainWindow" name="TomographyIfaceQtGUI">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>1059</width>
+    <height>700</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>IMAT Imaging and Tomography</string>
+  </property>
+  <widget class="QWidget" name="mainWidget">
+   <layout class="QGridLayout" name="gridLayout_4">
+    <property name="margin">
+     <number>3</number>
+    </property>
+    <property name="spacing">
+     <number>1</number>
+    </property>
+    <item row="1" column="0">
+     <layout class="QHBoxLayout" name="horizontalLayout_3">
+      <item>
+       <widget class="QPushButton" name="pushButton_help">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>25</width>
+          <height>25</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>?</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>158</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QPushButton" name="pushButton_close">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>Close</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item row="0" column="0">
+     <widget class="QTabWidget" name="tabMain">
+      <property name="toolTip">
+       <string/>
+      </property>
+      <property name="currentIndex">
+       <number>-1</number>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <action name="actionOpen">
+   <property name="text">
+    <string>&amp;Open...</string>
+   </property>
+  </action>
+  <action name="actionSave">
+   <property name="text">
+    <string>&amp;Save</string>
+   </property>
+  </action>
+  <action name="actionSaveAs">
+   <property name="text">
+    <string>Save As</string>
+   </property>
+  </action>
+ </widget>
+ <tabstops>
+  <tabstop>tabMain</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtTabRun.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtTabRun.ui
new file mode 100644
index 0000000000000000000000000000000000000000..ecfc5ff939ec2a361cae319847285f9d52c70162
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtTabRun.ui
@@ -0,0 +1,453 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>TomographyIfaceQtTabRun</class>
+ <widget class="QWidget" name="TomographyIfaceQtTabRun">
+  <property name="enabled">
+   <bool>true</bool>
+  </property>
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>462</width>
+    <height>460</height>
+   </rect>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0">
+    <widget class="QSplitter" name="splitter_run_main_vertical">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <widget class="QSplitter" name="splitter_image_resource">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="opaqueResize">
+       <bool>true</bool>
+      </property>
+      <widget class="QWidget" name="layoutWidget_5">
+       <layout class="QGridLayout" name="gridLayout_11">
+        <item row="0" column="0">
+         <layout class="QGridLayout" name="gridLayout_12">
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_image_title">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>Image:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="2">
+           <widget class="QPushButton" name="pushButton_browse_image">
+            <property name="text">
+             <string>Browse</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLabel" name="label_image_name">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+              <horstretch>1</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>none</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item row="1" column="0">
+         <widget class="QFrame" name="frame_image">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+            <horstretch>2</horstretch>
+            <verstretch>2</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="frameShape">
+           <enum>QFrame::StyledPanel</enum>
+          </property>
+          <property name="frameShadow">
+           <enum>QFrame::Raised</enum>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_13">
+           <property name="margin">
+            <number>3</number>
+           </property>
+           <property name="spacing">
+            <number>2</number>
+           </property>
+           <item row="0" column="0">
+            <widget class="QScrollArea" name="scrollArea_image">
+             <property name="widgetResizable">
+              <bool>true</bool>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignCenter</set>
+             </property>
+             <widget class="QWidget" name="scrollAreaWidgetContents">
+              <property name="geometry">
+               <rect>
+                <x>0</x>
+                <y>0</y>
+                <width>151</width>
+                <height>180</height>
+               </rect>
+              </property>
+              <layout class="QGridLayout" name="gridLayout_5">
+               <property name="margin">
+                <number>0</number>
+               </property>
+               <property name="spacing">
+                <number>0</number>
+               </property>
+               <item row="0" column="0">
+                <widget class="QLabel" name="label_image">
+                 <property name="text">
+                  <string/>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+      <widget class="QWidget" name="layoutWidget_6">
+       <layout class="QGridLayout" name="gridLayout_14">
+        <item row="1" column="1">
+         <widget class="QPushButton" name="pushButton_reconstruct">
+          <property name="minimumSize">
+           <size>
+            <width>115</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>115</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="toolTip">
+           <string/>
+          </property>
+          <property name="statusTip">
+           <string/>
+          </property>
+          <property name="text">
+           <string>Reconstruct</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="2">
+         <spacer name="horizontalSpacer_6">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>13</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item row="2" column="1">
+         <spacer name="verticalSpacer_4">
+          <property name="orientation">
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item row="0" column="0" colspan="3">
+         <widget class="QGroupBox" name="groupBox_6">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>70</height>
+           </size>
+          </property>
+          <property name="title">
+           <string>Compute resource</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_15">
+           <item row="1" column="0">
+            <layout class="QHBoxLayout" name="horizontalLayout_4">
+             <item>
+              <spacer name="horizontalSpacer_8">
+               <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_12">
+               <property name="text">
+                <string>Status:</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="pushButton_remote_status">
+               <property name="text">
+                <string>Offline</string>
+               </property>
+               <property name="flat">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="horizontalSpacer_9">
+               <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="QComboBox" name="comboBox_run_compute_resource">
+             <item>
+              <property name="text">
+               <string>SCARF</string>
+              </property>
+             </item>
+             <item>
+              <property name="text">
+               <string>Local</string>
+              </property>
+             </item>
+            </widget>
+           </item>
+           <item row="2" column="0">
+            <widget class="QGroupBox" name="groupBox_7">
+             <property name="title">
+              <string>Reconstruction tool</string>
+             </property>
+             <layout class="QGridLayout" name="gridLayout_18">
+              <item row="0" column="0">
+               <widget class="QComboBox" name="comboBox_run_tool">
+                <item>
+                 <property name="text">
+                  <string>TomoPy</string>
+                 </property>
+                </item>
+                <item>
+                 <property name="text">
+                  <string>Astra</string>
+                 </property>
+                </item>
+                <item>
+                 <property name="text">
+                  <string>CCPi CGLS</string>
+                 </property>
+                </item>
+                <item>
+                 <property name="text">
+                  <string>Savu</string>
+                 </property>
+                </item>
+                <item>
+                 <property name="text">
+                  <string>Custom command</string>
+                 </property>
+                </item>
+               </widget>
+              </item>
+              <item row="0" column="1">
+               <widget class="QPushButton" name="pushButton_run_tool_setup">
+                <property name="toolTip">
+                 <string>Define specific settings for the tool selected</string>
+                </property>
+                <property name="statusTip">
+                 <string/>
+                </property>
+                <property name="text">
+                 <string>Setup</string>
+                </property>
+                <property name="autoRepeat">
+                 <bool>false</bool>
+                </property>
+                <property name="autoExclusive">
+                 <bool>false</bool>
+                </property>
+                <property name="flat">
+                 <bool>false</bool>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item row="1" column="0">
+         <spacer name="horizontalSpacer_7">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>17</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </widget>
+     </widget>
+     <widget class="QWidget" name="layoutWidget_7">
+      <layout class="QVBoxLayout" name="verticalLayout_7">
+       <item>
+        <widget class="QLabel" name="label_11">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>Reconstruction jobs:</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QSplitter" name="splitter_run_jobs">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <widget class="QTableWidget" name="tableWidget_run_jobs">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+            <horstretch>1</horstretch>
+            <verstretch>1</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="selectionBehavior">
+           <enum>QAbstractItemView::SelectRows</enum>
+          </property>
+          <attribute name="horizontalHeaderStretchLastSection">
+           <bool>true</bool>
+          </attribute>
+          <column>
+           <property name="text">
+            <string>Running on</string>
+           </property>
+          </column>
+          <column>
+           <property name="text">
+            <string>Name</string>
+           </property>
+          </column>
+          <column>
+           <property name="text">
+            <string>ID</string>
+           </property>
+          </column>
+          <column>
+           <property name="text">
+            <string>Status</string>
+           </property>
+          </column>
+          <column>
+           <property name="text">
+            <string>Command line</string>
+           </property>
+          </column>
+         </widget>
+         <widget class="QWidget" name="layoutWidget_8">
+          <layout class="QGridLayout" name="gridLayout_16">
+           <item row="2" column="0">
+            <widget class="QPushButton" name="pushButton_run_job_visualize">
+             <property name="text">
+              <string>Visualize</string>
+             </property>
+            </widget>
+           </item>
+           <item row="4" column="0">
+            <widget class="QPushButton" name="pushButton_run_job_cancel">
+             <property name="text">
+              <string>Cancel</string>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="0">
+            <spacer name="verticalSpacer_5">
+             <property name="orientation">
+              <enum>Qt::Vertical</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>20</width>
+               <height>40</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+           <item row="1" column="0">
+            <widget class="QPushButton" name="pushButton_run_refresh">
+             <property name="text">
+              <string>Refresh</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtTabSetup.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtTabSetup.ui
new file mode 100644
index 0000000000000000000000000000000000000000..ebb4d3ea5f69a3466f07d916f4a09273cd4f0ccf
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceQtTabSetup.ui
@@ -0,0 +1,729 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>TomographyIfaceQtTabSetup</class>
+ <widget class="QWidget" name="TomographyIfaceQtTabSetup">
+  <property name="enabled">
+   <bool>true</bool>
+  </property>
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>834</width>
+    <height>550</height>
+   </rect>
+  </property>
+  <layout class="QGridLayout" name="gridLayout_7">
+   <item row="0" column="0">
+    <widget class="QGroupBox" name="groupBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>1</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="title">
+      <string>Compute resource</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_25">
+      <property name="margin">
+       <number>3</number>
+      </property>
+      <property name="spacing">
+       <number>2</number>
+      </property>
+      <item row="0" column="0">
+       <widget class="QTabWidget" name="tabWidget_comp_resource">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+          <horstretch>0</horstretch>
+          <verstretch>1</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="minimumSize">
+         <size>
+          <width>0</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="currentIndex">
+         <number>0</number>
+        </property>
+        <widget class="QWidget" name="tab_SCARF">
+         <attribute name="title">
+          <string>SCARF</string>
+         </attribute>
+         <layout class="QGridLayout" name="gridLayout_6">
+          <item row="0" column="0">
+           <layout class="QHBoxLayout" name="horizontalLayout_7">
+            <item>
+             <widget class="QLabel" name="label_SCARF_username">
+              <property name="minimumSize">
+               <size>
+                <width>90</width>
+                <height>20</height>
+               </size>
+              </property>
+              <property name="text">
+               <string>Username:</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QLineEdit" name="lineEdit_SCARF_username">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="minimumSize">
+               <size>
+                <width>140</width>
+                <height>20</height>
+               </size>
+              </property>
+              <property name="toolTip">
+               <string>Type your username on the remote compute resource</string>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_15">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>738</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item row="1" column="0">
+           <layout class="QHBoxLayout" name="horizontalLayout_5">
+            <item>
+             <widget class="QLabel" name="label_SCARF_password">
+              <property name="minimumSize">
+               <size>
+                <width>90</width>
+                <height>20</height>
+               </size>
+              </property>
+              <property name="text">
+               <string>Password:</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QLineEdit" name="lineEdit_SCARF_password">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="minimumSize">
+               <size>
+                <width>140</width>
+                <height>20</height>
+               </size>
+              </property>
+              <property name="toolTip">
+               <string>Type your password. It will be used just for authentication. It won't be displayed or saved anywhere</string>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+              <property name="echoMode">
+               <enum>QLineEdit::Password</enum>
+              </property>
+              <property name="cursorPosition">
+               <number>0</number>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_20">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>748</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item row="2" column="0">
+           <layout class="QHBoxLayout" name="horizontalLayout_8">
+            <item>
+             <widget class="QPushButton" name="pushButton_SCARF_login">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="minimumSize">
+               <size>
+                <width>0</width>
+                <height>22</height>
+               </size>
+              </property>
+              <property name="text">
+               <string>Log in</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushButton_SCARF_logout">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="minimumSize">
+               <size>
+                <width>0</width>
+                <height>22</height>
+               </size>
+              </property>
+              <property name="text">
+               <string>Log out</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_12">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>198</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item row="3" column="0">
+           <widget class="QGroupBox" name="groupBox_3">
+            <property name="title">
+             <string>Options:</string>
+            </property>
+            <layout class="QGridLayout" name="gridLayout_3">
+             <item row="2" column="0">
+              <layout class="QHBoxLayout" name="horizontalLayout_11">
+               <item>
+                <widget class="QLabel" name="label_23">
+                 <property name="text">
+                  <string>Number of nodes:</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QSpinBox" name="spinBox_SCARFnumNodes">
+                 <property name="minimumSize">
+                  <size>
+                   <width>0</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                 <property name="minimum">
+                  <number>1</number>
+                 </property>
+                 <property name="maximum">
+                  <number>99</number>
+                 </property>
+                 <property name="value">
+                  <number>1</number>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <spacer name="horizontalSpacer_16">
+                 <property name="orientation">
+                  <enum>Qt::Horizontal</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>678</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+              </layout>
+             </item>
+             <item row="0" column="0">
+              <layout class="QHBoxLayout" name="horizontalLayout_10">
+               <item>
+                <widget class="QLabel" name="label_22">
+                 <property name="text">
+                  <string>Main path on the SCARF file system:</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QLineEdit" name="lineEdit_SCARF_path">
+                 <property name="minimumSize">
+                  <size>
+                   <width>0</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                 <property name="text">
+                  <string>/work/imat/runs/test</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <spacer name="horizontalSpacer_2">
+                 <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="3" column="0">
+              <layout class="QHBoxLayout" name="horizontalLayout_12">
+               <item>
+                <widget class="QLabel" name="label_24">
+                 <property name="text">
+                  <string>Number of cores:</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QSpinBox" name="spinBox_SCARFnumCores">
+                 <property name="minimumSize">
+                  <size>
+                   <width>0</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                 <property name="minimum">
+                  <number>1</number>
+                 </property>
+                 <property name="maximum">
+                  <number>99</number>
+                 </property>
+                 <property name="value">
+                  <number>8</number>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <spacer name="horizontalSpacer_17">
+                 <property name="orientation">
+                  <enum>Qt::Horizontal</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>434</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+              </layout>
+             </item>
+             <item row="1" column="0">
+              <layout class="QHBoxLayout" name="horizontalLayout_2">
+               <item>
+                <widget class="QLabel" name="label">
+                 <property name="text">
+                  <string>Base path for tools/scripts:</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QLineEdit" name="lineEdit_scripts_base_dir">
+                 <property name="text">
+                  <string>/work/imat/runs-scripts</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QPushButton" name="pushButton_reset_scripts_base_dir">
+                 <property name="text">
+                  <string>Reset</string>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </item>
+            </layout>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+        <widget class="QWidget" name="tab_local">
+         <attribute name="title">
+          <string>Local</string>
+         </attribute>
+         <layout class="QGridLayout" name="gridLayout_28">
+          <item row="1" column="0">
+           <spacer name="verticalSpacer_9">
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>82</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="0" column="0">
+           <widget class="QGroupBox" name="groupBox_4">
+            <property name="title">
+             <string>Options:</string>
+            </property>
+            <layout class="QGridLayout" name="gridLayout_8">
+             <item row="0" column="0">
+              <layout class="QHBoxLayout" name="horizontalLayout_6">
+               <item>
+                <widget class="QLabel" name="label_25">
+                 <property name="text">
+                  <string>Number of cores:</string>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QSpinBox" name="spinBox_localNumCores">
+                 <property name="minimumSize">
+                  <size>
+                   <width>0</width>
+                   <height>10</height>
+                  </size>
+                 </property>
+                 <property name="maximum">
+                  <number>99</number>
+                 </property>
+                 <property name="value">
+                  <number>8</number>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <spacer name="horizontalSpacer_18">
+                 <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>
+         </layout>
+        </widget>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <widget class="QGroupBox" name="groupBox_2">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>1</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>100</height>
+      </size>
+     </property>
+     <property name="title">
+      <string>Select base directories/folders for images:</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout">
+      <property name="margin">
+       <number>3</number>
+      </property>
+      <property name="spacing">
+       <number>2</number>
+      </property>
+      <item row="0" column="0">
+       <widget class="QLabel" name="label_5">
+        <property name="minimumSize">
+         <size>
+          <width>120</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>101</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Samples directory:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="lineEdit_path_FITS">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2">
+       <widget class="QPushButton" name="pushButton_fits_dir">
+        <property name="maximumSize">
+         <size>
+          <width>75</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Browse...</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="label_6">
+        <property name="minimumSize">
+         <size>
+          <width>120</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>101</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Open beam dir.:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="lineEdit_path_flat"/>
+      </item>
+      <item row="1" column="2">
+       <widget class="QPushButton" name="pushButton_flat_dir">
+        <property name="maximumSize">
+         <size>
+          <width>75</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Browse...</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="label_7">
+        <property name="minimumSize">
+         <size>
+          <width>120</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>101</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Dark field dir.:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="QLineEdit" name="lineEdit_path_dark"/>
+      </item>
+      <item row="2" column="2">
+       <widget class="QPushButton" name="pushButton_dark_dir">
+        <property name="maximumSize">
+         <size>
+          <width>75</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Browse...</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+     <zorder>lineEdit_path_FITS</zorder>
+     <zorder>lineEdit_path_flat</zorder>
+     <zorder>lineEdit_path_dark</zorder>
+     <zorder>label_5</zorder>
+     <zorder>label_6</zorder>
+     <zorder>label_7</zorder>
+     <zorder>pushButton_fits_dir</zorder>
+     <zorder>pushButton_flat_dir</zorder>
+     <zorder>pushButton_dark_dir</zorder>
+    </widget>
+   </item>
+   <item row="2" column="0">
+    <widget class="QGroupBox" name="groupBox_run_config">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>1</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>100</height>
+      </size>
+     </property>
+     <property name="title">
+      <string>Run Configuration</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_2">
+      <property name="margin">
+       <number>3</number>
+      </property>
+      <property name="spacing">
+       <number>2</number>
+      </property>
+      <item row="1" column="0">
+       <widget class="QFrame" name="frame">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>16777215</width>
+          <height>60</height>
+         </size>
+        </property>
+        <property name="frameShape">
+         <enum>QFrame::StyledPanel</enum>
+        </property>
+        <property name="frameShadow">
+         <enum>QFrame::Raised</enum>
+        </property>
+        <layout class="QHBoxLayout" name="horizontalLayout">
+         <property name="leftMargin">
+          <number>8</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="checkBox">
+           <property name="text">
+            <string>Automatically Reconstruct every </string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QSpinBox" name="spinBox">
+           <property name="minimum">
+            <number>1</number>
+           </property>
+           <property name="maximum">
+            <number>5000</number>
+           </property>
+           <property name="value">
+            <number>1</number>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLabel" name="label_3">
+           <property name="text">
+            <string>files.</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_4">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>683</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="3" column="0">
+    <spacer name="verticalSpacer_2">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>120</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceViewQtGUI.h
similarity index 53%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.h
rename to Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceViewQtGUI.h
index 07870e7915f5adce0fbf17680be7910b4a73a618..010abf23fbeaea0ce1a7fe1b47d4a7fe60bbecf7 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/TomographyIfaceViewQtGUI.h
@@ -1,28 +1,34 @@
-#ifndef MANTIDQTCUSTOMINTERFACES_TOMORECONSTRUCTION_H_
-#define MANTIDQTCUSTOMINTERFACES_TOMORECONSTRUCTION_H_
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOGRAPHYIFACEVIEWQTGUI_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOGRAPHYIFACEVIEWQTGUI_H_
 
-#include "MantidAPI/IRemoteJobManager.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/ITableWorkspace_fwd.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/TableRow.h"
-#include "MantidAPI/WorkspaceGroup.h"
 #include "MantidQtAPI/UserSubWindow.h"
-#include "MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigDialog.h"
-
+#include "MantidQtCustomInterfaces/DllConfig.h"
+#include "MantidQtCustomInterfaces/Tomography/ITomographyIfacePresenter.h"
+#include "MantidQtCustomInterfaces/Tomography/ITomographyIfaceView.h"
+#include "MantidQtCustomInterfaces/Tomography/TomoToolConfigDialog.h"
+#include "ui_TomographyIfaceQtGUI.h"
+#include "ui_TomographyIfaceQtTabSetup.h"
+#include "ui_TomographyIfaceQtTabRun.h"
+
+#include <boost/scoped_ptr.hpp>
 #include <json/json.h>
-#include <QMutex>
 
 // Qt classes forward declarations
-class QLineEdit;
-class QThread;
-class QTimer;
-class QTreeWidgetItem;
+class QMutex;
 
 namespace MantidQt {
 namespace CustomInterfaces {
+
 /**
-Tomographic reconstruction GUI. Interface for editing parameters,
-running and monitoring reconstruction jobs, quick image inspection,
-launching visualization windows, etc.
+Qt-based view of the Tomography GUI. Provides a concrete view for the
+graphical interface for tomography functionality in Mantid. This view
+is Qt-based and it is probably the only one that will be implemented
+in a foreseeable horizon. The interface of this class is given by
+ITomographyIfaceView so that it fits in the MVP (Model-View-Presenter)
+design of the tomography GUI.
 
 Copyright &copy; 2014,205 ISIS Rutherford Appleton Laboratory, NScD
 Oak Ridge National Laboratory & European Spallation Source
@@ -45,60 +51,84 @@ 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 TomoReconstruction : public MantidQt::API::UserSubWindow {
+class MANTIDQT_CUSTOMINTERFACES_DLL TomographyIfaceViewQtGUI
+    : public MantidQt::API::UserSubWindow,
+      public ITomographyIfaceView {
   Q_OBJECT
 
-public: // public constructor, destructor and functions
+public:
   /// Default Constructor
-  TomoReconstruction(QWidget *parent = 0);
+  TomographyIfaceViewQtGUI(QWidget *parent = 0);
   /// Destructor
-  virtual ~TomoReconstruction();
+  virtual ~TomographyIfaceViewQtGUI();
+
   /// Interface name
   static std::string name() { return "Tomographic Reconstruction"; }
   /// This interface's categories.
   static QString categoryInfo() { return "Diffraction"; }
-  /// Setup tab UI
-  virtual void initLayout();
 
-public slots:
-  void periodicStatusUpdateRequested();
+  void userWarning(const std::string &warn, const std::string &description);
+
+  void userError(const std::string &err, const std::string &description);
+
+  std::vector<std::string> logMsgs() const { return m_logMsgs; }
+
+  void setComputeResources(const std::vector<std::string> &resources,
+                           const std::vector<bool> &enabled);
+
+  void setReconstructionTools(const std::vector<std::string> &tools,
+                              const std::vector<bool> &enabled);
+
+  std::string getUsername() const;
+
+  std::string getPassword() const;
+
+  void updateLoginControls(bool loggedIn);
+
+  void enableLoggedActions(bool enable);
+
+  /// possible for the user to define the configuration of a tool
+  void enableConfigTool(bool on);
+
+  /// possible for the user to run / submit a job
+  void enableRunReconstruct(bool on);
+
+  void updateCompResourceStatus(bool online);
+
+  void updateJobsInfoDisplay(
+      const std::vector<Mantid::API::IRemoteJobManager::RemoteJobInfo> &status);
+
+  std::vector<std::string> processingJobsIDs() const {
+    return m_processingJobsIDs;
+  }
+
+  /// Get the current reconstruction tooll settings set by the user
+  TomoReconToolsUserSettings reconToolsSettings() const {
+    return m_toolsSettings;
+  }
 
+  std::string currentComputeResource() const { return m_currentComputeRes; }
+  std::string currentReconTool() const { return m_currentReconTool; }
+
+  /// get the path to the image that the user has requested to visualize
+  std::string visImagePath() const;
+
+  std::string showImagePath() const { return m_imgPath; }
+  void showImage(const Mantid::API::MatrixWorkspace_sptr &wsg);
+  void showImage(const std::string &path);
+
+  int keepAlivePeriod() { return m_settings.useKeepAlive; }
+
+  TomoPathsConfig currentPathsConfig() const { return m_pathsConfig; }
+
+private slots:
   /// for buttons, run tab, and similar
   void reconstructClicked();
   void toolSetupClicked();
   void runVisualizeClicked();
   void jobCancelClicked();
   void jobTableRefreshClicked();
-  void getJobStatusInfo();
-
-protected:
-  bool doPing();
-  void doLogin(const std::string &pw);
-  void doLogout();
-  void doQueryJobStatus(std::vector<std::string> &ids,
-                        std::vector<std::string> &names,
-                        std::vector<std::string> &status,
-                        std::vector<std::string> &cmds);
-  void doSubmitReconstructionJob();
-  void doCancelJob(const std::string &id);
-
-  void updateJobsTable();
-
-  void cleanup();
-
-  void makeRunnableWithOptions(std::string &run, std::string &opt);
-  std::string getComputeResource();
-  std::string getUsername();
-  std::string getPassword();
-
-  // current paths set by the user
-  std::string currentPathSCARF();
-  std::string currentPathFITS();
-  std::string currentPathFlat();
-  std::string currentPathDark();
-  std::string currentPathSavuConfig();
 
-private slots:
   void compResourceIndexChanged(int);
   void runToolIndexChanged(int);
   void SCARFLoginClicked();
@@ -126,56 +156,27 @@ private slots:
   void expandedItem(QTreeWidgetItem *);
 
 private:
+  /// Setup the interface (tab UI)
+  virtual void initLayout();
+
   void doSetupSectionSetup();
-  void doSetupSectionParameters();
   void doSetupSectionRun();
   void doSetupGeneralWidgets();
-
-  void setupComputeResource();
-  void setupRunTool();
-
-  void enableLoggedActions(bool enable);
-  void updateCompResourceStatus(bool online);
-
-  void processPathBrowseClick(QLineEdit *le, std::string &data);
-
-  /// Show a tool specific configuration dialog
-  void showToolConfig(const std::string &name);
-
-  std::string validateCompResource(const std::string &res);
-
-  Mantid::API::WorkspaceGroup_sptr loadFITSImage(const std::string &path);
-
-  void drawImage(const Mantid::API::MatrixWorkspace_sptr &ws);
-
-  void splitCmdLine(const std::string &cmd, std::string &run,
-                    std::string &opts);
-
-  void checkDataPathsSet();
-
-  void checkWarningToolNotSetup(const std::string &tool,
-                                const std::string &settings);
-
-  void userWarning(const std::string &err, const std::string &description);
-
-  void userError(const std::string &err, const std::string &description);
+  void doSetupSavu();
 
   /// Load default interface settings for each tab, normally on startup
   void readSettings();
   /// save settings (before closing)
-  void saveSettings();
+  void saveSettings() const;
 
-  /// Starts a periodic query just to keep sessions alive when logged in
-  void startKeepAliveMechanism(int period);
-  /// Stops/kills the periodic query (for example if the user logs out)
-  void killKeepAliveMechanism();
+  void showToolConfig(const std::string &name);
 
   virtual void closeEvent(QCloseEvent *ev);
 
-  std::string paramValStringFromArray(const Json::Value &jsonVal,
-                                      const std::string &name);
-  std::string pluginParamValString(const Json::Value &jsonVal,
-                                   const std::string &name);
+  void processPathBrowseClick(QLineEdit *le, std::string &data);
+
+  // Begin of Savu related functionality. This will grow and will need
+  // separation
 
   /// to load plugins (savu classification / API)
   void loadAvailablePlugins();
@@ -196,8 +197,22 @@ private:
   void loadSavuTomoConfig(std::string &filePath,
                           Mantid::API::ITableWorkspace_sptr &currentPlugins);
 
-  /// Main interface window
-  Ui::TomoReconstruction m_ui;
+  std::string paramValStringFromArray(const Json::Value &jsonVal,
+                                      const std::string &name);
+  std::string pluginParamValString(const Json::Value &jsonVal,
+                                   const std::string &name);
+
+  static size_t g_nameSeqNo;
+
+  // end of Savu related methods
+
+  /// Interface definition with widgets for the main interface window
+  Ui::TomographyIfaceQtGUI m_ui;
+  // And its sections/tabs. Note that for compactness they're called simply
+  // 'tabs'
+  // but they could be separate dialogs, widgets, etc.
+  Ui::TomographyIfaceQtTabSetup m_uiTabSetup;
+  Ui::TomographyIfaceQtTabRun m_uiTabRun;
 
   /// Tool specific setup dialogs
   Ui::TomoToolConfigAstra m_uiAstra;
@@ -205,58 +220,30 @@ private:
   Ui::TomoToolConfigSavu m_uiSavu;
   Ui::TomoToolConfigTomoPy m_uiTomoPy;
 
-  /// login status (from local perspective)
-  bool m_loggedIn;
-
-  /// facility for the remote compute resource
-  const std::string m_facility;
-  /// compute resources suppoted by this GUI (remote ones, clusters, etc.)
-  std::vector<std::string> m_computeRes;
-  /// display name of the "local" compute resource
-  const std::string m_localCompName;
+  std::vector<std::string> m_processingJobsIDs;
 
-  /// reduction tools
-  std::vector<std::string> m_SCARFtools;
+  std::string m_currentComputeRes;
+  std::string m_currentReconTool;
 
-  /// file paths, base dir on scarf
-  std::string m_pathSCARFbase;
-  /// path to fits file (sample data)
-  std::string m_pathFITS;
-  /// path to flat/open beam/bright image
-  std::string m_pathFlat;
-  /// path to dark image
-  std::string m_pathDark;
+  std::string m_imgPath;
 
   static const std::string g_SCARFName;
+  // a general (all tools in principle) default output path
+  static const std::string g_defOutPath;
 
-  // Names of image reconstruction tools
   static const std::string g_TomoPyTool;
   static const std::string g_AstraTool;
   static const std::string g_CCPiTool;
   static const std::string g_SavuTool;
-  static const std::string g_CustomCmdTool;
-
-  // plugins for savu config files
-  // std::vector<Mantid::API::ITableWorkspace_sptr> m_availPlugins;
-  Mantid::API::ITableWorkspace_sptr m_availPlugins;
-  // std::vector<Mantid::API::ITableWorkspace_sptr> m_currPlugins;
-  Mantid::API::ITableWorkspace_sptr m_currPlugins;
-  std::string m_currentParamPath;
-  static size_t g_nameSeqNo;
+  static const std::string g_customCmdTool;
 
-  // status of remote jobs
-  std::vector<Mantid::API::IRemoteJobManager::RemoteJobInfo> m_jobsStatus;
-  std::vector<std::string> m_jobsStatusCmds;
+  TomoPathsConfig m_pathsConfig;
 
-  static const std::string g_defOutPath;
-  // path name for persistent settings
-  std::string m_settingsGroup;
+  // here the view puts messages before notifying the presenter to show them
+  std::vector<std::string> m_logMsgs;
 
-  // for periodic update of the job status table/tree
-  QTimer *m_keepAliveTimer;
-  QThread *m_keepAliveThread;
-  // mutex for the "job status info -> job status table " operations
-  QMutex m_statusMutex;
+  /// Settings for the third party (tomographic reconstruction) tools
+  TomoReconToolsUserSettings m_toolsSettings;
 
   // Basic representation of user settings, read/written on startup/close.
   // TODO: this could be done more sophisticated, with a class using
@@ -273,20 +260,20 @@ private:
   };
   UserSettings m_settings;
 
-  /// Settings for the third party (tomographic reconstruction) tools
-  struct UserToolsSettings {
-    // This is just too basic at the moment. We probably want to store
-    // here the real settings objects, and rather than this horror have a
-    // dictionary of tools-settings
-    std::string tomoPy;
-    std::string astra;
-    std::string CCPi;
-    std::string savu;
-    std::string custom;
-  };
-  UserToolsSettings m_toolsSettings;
+  // path name for persistent settings
+  std::string m_settingsGroup;
+
+  // TODO? move to TomographyIfaceModel or TomographyIfaceSavuModel.h
+  // plugins for Savu config files
+  Mantid::API::ITableWorkspace_sptr m_availPlugins;
+  Mantid::API::ITableWorkspace_sptr m_currPlugins;
+  std::string m_currentParamPath;
+
+  // presenter as in the model-view-presenter
+  boost::scoped_ptr<ITomographyIfacePresenter> m_presenter;
 };
-}
-}
 
-#endif // MANTIDQTCUSTOMINTERFACES_TOMORECONSTRUCTION_H_
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOMOGRAPHYIFACEVIEWQTGUI_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ToolConfigAstraToolbox.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ToolConfigAstraToolbox.h
new file mode 100644
index 0000000000000000000000000000000000000000..80d2b62a64138bcac14062a62289bb451a62e20e
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ToolConfigAstraToolbox.h
@@ -0,0 +1,70 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOOLCONFIGATRATOOLBOX_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOOLCONFIGATRATOOLBOX_H_
+
+#include <string>
+
+#include "MantidKernel/System.h"
+#include "MantidQtCustomInterfaces/Tomography/TomoRecToolConfig.h"
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+
+Configuration of a third party tomographic reconstruction tool
+specialized for the Astra Toolbox tomographic reconstruction tool
+(C++, CUDA): Astra Toolbox <http://sourceforge.net/p/astra-toolbox/wiki/Home/
+
+Copyright &copy; 2014,205 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 ToolConfigAstraToolbox : public TomoRecToolConfig {
+public:
+  ToolConfigAstraToolbox() { }
+
+  ToolConfigAstraToolbox(const std::string &runnable, double centerRot,
+                         double angleMin, double angleMax,
+                         const std::string &pathOut,
+                         const std::string &pathDark,
+                         const std::string &pathOpen,
+                         const std::string &pathSample);
+
+  ~ToolConfigAstraToolbox() { }
+
+protected:
+  virtual std::string makeCmdLineOptions() const;
+
+  virtual std::string makeExecutable() const { return m_runnable; };
+
+private:
+  double m_centerRot;
+  double m_angleMin;
+  double m_angleMax;
+  std::string m_pathOut;
+  std::string m_pathDark;
+  std::string m_pathOpen;
+  std::string m_pathSample;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOOLCONFIGATRATOOLBOX_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ToolConfigCustom.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ToolConfigCustom.h
new file mode 100644
index 0000000000000000000000000000000000000000..fe02d914dc2a9d2db490682fa9daf8e9fdaa845d
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ToolConfigCustom.h
@@ -0,0 +1,63 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOOLCONFIGCUSTOM_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOOLCONFIGCUSTOM_H_
+
+#include <string>
+
+#include "MantidQtCustomInterfaces/Tomography/TomoRecToolConfig.h"
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+Configuration of a third party tomographic reconstruction tool as a
+Custom command line. To run a reconstruction tool via a command of the
+user's choice with free-form options.
+
+This is under development, and as it is not necessarily related to
+custom interfaces might be moved out of here. Tools of other type
+might be added, and then this should not be a sublcass of
+TomoRecToolConfig but of a more general ToolConfig class.
+
+Copyright &copy; 2014,205 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 ToolConfigCustom : public TomoRecToolConfig {
+public:
+  ToolConfigCustom() {}
+
+  ToolConfigCustom(const std::string &runnable, const std::string &cmdOptions)
+      : TomoRecToolConfig(runnable), m_opts(cmdOptions) {}
+
+  ~ToolConfigCustom() {}
+
+protected:
+  virtual std::string makeCmdLineOptions() const { return m_opts; }
+
+  virtual std::string makeExecutable() const { return m_runnable; };
+
+private:
+  std::string m_opts;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOOLCONFIGCUSTOM_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ToolConfigTomoPy.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ToolConfigTomoPy.h
new file mode 100644
index 0000000000000000000000000000000000000000..56eec90cbd50d02bc126f34a091192f029621a78
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Tomography/ToolConfigTomoPy.h
@@ -0,0 +1,67 @@
+#ifndef MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOOLCONFIGTOMOPY_H_
+#define MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOOLCONFIGTOMOPY_H_
+
+#include <string>
+
+#include "MantidKernel/System.h"
+#include "MantidQtCustomInterfaces/Tomography/TomoRecToolConfig.h"
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+/**
+Third party tomographic reconstruction tool configuration class
+specialized for TomoPy (Python + C++):
+https://www1.aps.anl.gov/Science/Scientific-Software/TomoPy
+
+Copyright &copy; 2014,205 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 ToolConfigTomoPy : public TomoRecToolConfig {
+public:
+  ToolConfigTomoPy() { }
+
+  ToolConfigTomoPy(const std::string &runnable, const std::string &pathOut,
+                   const std::string &pathDark, const std::string &pathOpen,
+                   const std::string &pathSample, double centerRot,
+                   double angleMin, double angleMax);
+
+  ~ToolConfigTomoPy() { }
+
+protected:
+  virtual std::string makeCmdLineOptions() const;
+
+  virtual std::string makeExecutable() const { return m_runnable; };
+
+private:
+  std::string m_pathOut;
+  std::string m_pathDark;
+  std::string m_pathOpen;
+  std::string m_pathSample;
+  double m_centerRot;
+  double m_angleMin;
+  double m_angleMax;
+};
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
+
+#endif // MANTIDQTCUSTOMINTERFACES_TOMOGRAPHY_TOOLCONFIGTOMOPY_H_
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/AbsorptionCorrections.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/AbsorptionCorrections.cpp
index 2b9d6abbe276be9ae8ea472dc4fa3fd9f602e6c7..31940830dfea287355da2957a1038e5fda87ff47 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/AbsorptionCorrections.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/AbsorptionCorrections.cpp
@@ -15,11 +15,9 @@ namespace
 namespace MantidQt
 {
 namespace CustomInterfaces
-{
-namespace IDA
 {
   AbsorptionCorrections::AbsorptionCorrections(QWidget * parent) :
-    IDATab(parent)
+    CorrectionsTab(parent)
   {
     m_uiForm.setupUi(parent);
 
@@ -274,6 +272,5 @@ namespace IDA
     }
   }
 
-} // namespace IDA
 } // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ApplyCorr.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ApplyCorr.cpp
deleted file mode 100644
index fa888e2368ab4f8065d811aed6b3717a8c581e6d..0000000000000000000000000000000000000000
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ApplyCorr.cpp
+++ /dev/null
@@ -1,444 +0,0 @@
-#include "MantidQtCustomInterfaces/Indirect/ApplyCorr.h"
-#include "MantidQtCustomInterfaces/UserInputValidator.h"
-#include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/TextAxis.h"
-
-#include <QStringList>
-
-
-using namespace Mantid::API;
-
-namespace
-{
-  Mantid::Kernel::Logger g_log("ApplyCorr");
-}
-
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-namespace IDA
-{
-  ApplyCorr::ApplyCorr(QWidget * parent) :
-    IDATab(parent)
-  {
-    m_uiForm.setupUi(parent);
-
-    connect(m_uiForm.cbGeometry, SIGNAL(currentIndexChanged(int)), this, SLOT(handleGeometryChange(int)));
-    connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString&)), this, SLOT(newData(const QString&)));
-    connect(m_uiForm.spPreviewSpec, SIGNAL(valueChanged(int)), this, SLOT(plotPreview(int)));
-
-    m_uiForm.spPreviewSpec->setMinimum(0);
-    m_uiForm.spPreviewSpec->setMaximum(0);
-  }
-
-
-  void ApplyCorr::setup()
-  {
-  }
-
-
-  /**
-   * Disables corrections when using S(Q, w) as input data.
-   *
-   * @param dataName Name of new data source
-   */
-  void ApplyCorr::newData(const QString &dataName)
-  {
-    const MatrixWorkspace_sptr sampleWs =  AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(dataName.toStdString());
-    m_uiForm.spPreviewSpec->setMaximum(static_cast<int>(sampleWs->getNumberHistograms()) - 1);
-
-    // Plot the sample curve
-    m_uiForm.ppPreview->clear();
-    m_uiForm.ppPreview->addSpectrum("Sample", sampleWs, 0, Qt::black);
-  }
-
-
-  void ApplyCorr::run()
-  {
-    API::BatchAlgorithmRunner::AlgorithmRuntimeProps absCorProps;
-    IAlgorithm_sptr applyCorrAlg = AlgorithmManager::Instance().create("ApplyPaalmanPingsCorrection");
-    applyCorrAlg->initialize();
-
-    QString sampleWsName = m_uiForm.dsSample->getCurrentDataName();
-    MatrixWorkspace_sptr sampleWs = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(sampleWsName.toStdString());
-    m_originalSampleUnits = sampleWs->getAxis(0)->unit()->unitID();
-
-    // If not in wavelength then do conversion
-    if(m_originalSampleUnits != "Wavelength")
-    {
-      g_log.information("Sample workspace not in wavelength, need to convert to continue.");
-      absCorProps["SampleWorkspace"] = addConvertUnitsStep(sampleWs, "Wavelength");
-    }
-    else
-    {
-      absCorProps["SampleWorkspace"] = sampleWsName.toStdString();
-    }
-
-    bool useCan = m_uiForm.ckUseCan->isChecked();
-    if(useCan)
-    {
-      QString canWsName = m_uiForm.dsContainer->getCurrentDataName();
-      MatrixWorkspace_sptr canWs = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(canWsName.toStdString());
-
-      // If not in wavelength then do conversion
-      std::string originalCanUnits = canWs->getAxis(0)->unit()->unitID();
-      if(originalCanUnits != "Wavelength")
-      {
-        g_log.information("Container workspace not in wavelength, need to convert to continue.");
-        absCorProps["CanWorkspace"] = addConvertUnitsStep(canWs, "Wavelength");
-      }
-      else
-      {
-        absCorProps["CanWorkspace"] = canWsName.toStdString();
-      }
-
-      bool useCanScale = m_uiForm.ckScaleCan->isChecked();
-      if(useCanScale)
-      {
-        double canScaleFactor = m_uiForm.spCanScale->value();
-        applyCorrAlg->setProperty("CanScaleFactor", canScaleFactor);
-      }
-
-      // Check for same binning across sample and container
-      if(!checkWorkspaceBinningMatches(sampleWs, canWs))
-      {
-        QString text = "Binning on sample and container does not match."
-                       "Would you like to rebin the sample to match the container?";
-
-        int result = QMessageBox::question(NULL, tr("Rebin sample?"), tr(text),
-                                           QMessageBox::Yes, QMessageBox::No, QMessageBox::NoButton);
-
-        if(result == QMessageBox::Yes)
-        {
-          addRebinStep(sampleWsName, canWsName);
-        }
-        else
-        {
-          m_batchAlgoRunner->clearQueue();
-          g_log.error("Cannot apply absorption corrections using a sample and container with different binning.");
-          return;
-        }
-      }
-    }
-
-    bool useCorrections = m_uiForm.ckUseCorrections->isChecked();
-    if(useCorrections)
-    {
-      QString correctionsWsName = m_uiForm.dsCorrections->getCurrentDataName();
-
-      WorkspaceGroup_sptr corrections = AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(correctionsWsName.toStdString());
-      bool interpolateAll = false;
-      for(size_t i = 0; i < corrections->size(); i++)
-      {
-        MatrixWorkspace_sptr factorWs = boost::dynamic_pointer_cast<MatrixWorkspace>(corrections->getItem(i));
-
-        // Check for matching binning
-        if(sampleWs && (sampleWs->blocksize() != factorWs->blocksize()))
-        {
-          int result;
-          if(interpolateAll)
-          {
-            result = QMessageBox::Yes;
-          }
-          else
-          {
-            QString text = "Number of bins on sample and "
-                         + QString::fromStdString(factorWs->name())
-                         + " workspace does not match.\n"
-                         + "Would you like to interpolate this workspace to match the sample?";
-
-            result = QMessageBox::question(NULL, tr("Interpolate corrections?"), tr(text),
-                                           QMessageBox::YesToAll, QMessageBox::Yes, QMessageBox::No);
-          }
-
-          switch(result)
-          {
-            case QMessageBox::YesToAll:
-              interpolateAll = true;
-            case QMessageBox::Yes:
-              addInterpolationStep(factorWs, absCorProps["SampleWorkspace"]);
-              break;
-            default:
-              m_batchAlgoRunner->clearQueue();
-              g_log.error("ApplyCorr cannot run with corrections that do not match sample binning.");
-              return;
-          }
-        }
-      }
-
-      applyCorrAlg->setProperty("CorrectionsWorkspace", correctionsWsName.toStdString());
-    }
-
-    // Generate output workspace name
-    int nameCutIndex = sampleWsName.lastIndexOf("_");
-    if(nameCutIndex == -1)
-      nameCutIndex = sampleWsName.length();
-
-    QString correctionType;
-    switch(m_uiForm.cbGeometry->currentIndex())
-    {
-      case 0:
-        correctionType = "flt";
-        break;
-      case 1:
-        correctionType = "cyl";
-        break;
-    }
-    const QString outputWsName = sampleWsName.left(nameCutIndex) + + "_" + correctionType + "_Corrected";
-
-    applyCorrAlg->setProperty("OutputWorkspace", outputWsName.toStdString());
-
-    // Add corrections algorithm to queue
-    m_batchAlgoRunner->addAlgorithm(applyCorrAlg, absCorProps);
-
-    // Run algorithm queue
-    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(absCorComplete(bool)));
-    m_batchAlgoRunner->executeBatchAsync();
-
-    // Set the result workspace for Python script export
-    m_pythonExportWsName = outputWsName.toStdString();
-  }
-
-
-  /**
-   * Adds a rebin to workspace step to the calculation for when using a sample and container that
-   * have different binning.
-   *
-   * @param toRebin
-   * @param toMatch
-   */
-  void ApplyCorr::addRebinStep(QString toRebin, QString toMatch)
-  {
-    API::BatchAlgorithmRunner::AlgorithmRuntimeProps rebinProps;
-    rebinProps["WorkspaceToMatch"] = toMatch.toStdString();
-
-    IAlgorithm_sptr rebinAlg = AlgorithmManager::Instance().create("RebinToWorkspace");
-    rebinAlg->initialize();
-
-    rebinAlg->setProperty("WorkspaceToRebin", toRebin.toStdString());
-    rebinAlg->setProperty("OutputWorkspace", toRebin.toStdString());
-
-    m_batchAlgoRunner->addAlgorithm(rebinAlg, rebinProps);
-  }
-
-
-  /**
-   * Adds a spline interpolation as a step in the calculation for using legacy correction factor
-   * workspaces.
-   *
-   * @param toInterpolate Pointer to the workspace to interpolate
-   * @param toMatch Name of the workspace to match
-   */
-  void ApplyCorr::addInterpolationStep(MatrixWorkspace_sptr toInterpolate, std::string toMatch)
-  {
-    API::BatchAlgorithmRunner::AlgorithmRuntimeProps interpolationProps;
-    interpolationProps["WorkspaceToMatch"] = toMatch;
-
-    IAlgorithm_sptr interpolationAlg = AlgorithmManager::Instance().create("SplineInterpolation");
-    interpolationAlg->initialize();
-
-    interpolationAlg->setProperty("WorkspaceToInterpolate", toInterpolate->name());
-    interpolationAlg->setProperty("OutputWorkspace", toInterpolate->name());
-
-    m_batchAlgoRunner->addAlgorithm(interpolationAlg, interpolationProps);
-  }
-
-
-  /**
-   * Handles completion of the abs. correction algorithm.
-   *
-   * @param error True if algorithm failed.
-   */
-  void ApplyCorr::absCorComplete(bool error)
-  {
-    disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(absCorComplete(bool)));
-
-    if(error)
-    {
-      emit showMessageBox("Unable to apply corrections.\nSee Results Log for more details.");
-      return;
-    }
-
-    // Convert back to original sample units
-    if(m_originalSampleUnits != "Wavelength")
-    {
-      auto ws = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(m_pythonExportWsName);
-      addConvertUnitsStep(ws, m_originalSampleUnits, "");
-    }
-
-    // Add save algorithms if required
-    bool save = m_uiForm.ckSave->isChecked();
-    if(save)
-      addSaveWorkspaceToQueue(QString::fromStdString(m_pythonExportWsName));
-
-    // Run algorithm queue
-    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(postProcessComplete(bool)));
-    m_batchAlgoRunner->executeBatchAsync();
-  }
-
-
-  /**
-   * Handles completion of the unit conversion and saving algorithm.
-   *
-   * @param error True if algorithm failed.
-   */
-  void ApplyCorr::postProcessComplete(bool error)
-  {
-    disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(postProcessComplete(bool)));
-
-    if(error)
-    {
-      emit showMessageBox("Unable to process corrected workspace.\nSee Results Log for more details.");
-      return;
-    }
-
-    // Handle preview plot
-    plotPreview(m_uiForm.spPreviewSpec->value());
-
-    // Handle Mantid plotting
-    QString plotType = m_uiForm.cbPlotOutput->currentText();
-
-    if(plotType == "Spectra" || plotType == "Both")
-      plotSpectrum(QString::fromStdString(m_pythonExportWsName));
-
-    if(plotType == "Contour" || plotType == "Both")
-      plot2D(QString::fromStdString(m_pythonExportWsName));
-  }
-
-
-  bool ApplyCorr::validate()
-  {
-    UserInputValidator uiv;
-
-    uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
-
-    MatrixWorkspace_sptr sampleWs;
-
-    bool useCan = m_uiForm.ckUseCan->isChecked();
-    bool useCorrections = m_uiForm.ckUseCorrections->isChecked();
-
-    if(!(useCan || useCorrections))
-      uiv.addErrorMessage("Must use either container subtraction or corrections");
-
-    if(useCan)
-    {
-      uiv.checkDataSelectorIsValid("Container", m_uiForm.dsContainer);
-
-      // Check can and sample workspaces are the same "type" (reduced or S(Q, w))
-      QString sample = m_uiForm.dsSample->getCurrentDataName();
-      QString sampleType = sample.right(sample.length() - sample.lastIndexOf("_"));
-      QString container = m_uiForm.dsContainer->getCurrentDataName();
-      QString containerType = container.right(container.length() - container.lastIndexOf("_"));
-
-      g_log.debug() << "Sample type is: " << sampleType.toStdString() << std::endl;
-      g_log.debug() << "Can type is: " << containerType.toStdString() << std::endl;
-
-      if(containerType != sampleType)
-        uiv.addErrorMessage("Sample and can workspaces must contain the same type of data.");
-    }
-
-    if(useCorrections)
-    {
-      uiv.checkDataSelectorIsValid("Corrections", m_uiForm.dsCorrections);
-
-      QString correctionsWsName = m_uiForm.dsCorrections->getCurrentDataName();
-      WorkspaceGroup_sptr corrections = AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(correctionsWsName.toStdString());
-      for(size_t i = 0; i < corrections->size(); i++)
-      {
-        // Check it is a MatrixWorkspace
-        MatrixWorkspace_sptr factorWs = boost::dynamic_pointer_cast<MatrixWorkspace>(corrections->getItem(i));
-        if(!factorWs)
-        {
-          QString msg = "Correction factor workspace "
-                      + QString::number(i)
-                      + " is not a MatrixWorkspace";
-          uiv.addErrorMessage(msg);
-          continue;
-        }
-
-        // Check X unit is wavelength
-        Mantid::Kernel::Unit_sptr xUnit = factorWs->getAxis(0)->unit();
-        if(xUnit->caption() != "Wavelength")
-        {
-          QString msg = "Correction factor workspace "
-                      + QString::fromStdString(factorWs->name())
-                      + " is not in wavelength";
-          uiv.addErrorMessage(msg);
-        }
-      }
-    }
-
-    // Show errors if there are any
-    if(!uiv.isAllInputValid())
-      emit showMessageBox(uiv.generateErrorMessage());
-
-    return uiv.isAllInputValid();
-  }
-
-
-  void ApplyCorr::loadSettings(const QSettings & settings)
-  {
-    m_uiForm.dsCorrections->readSettings(settings.group());
-    m_uiForm.dsContainer->readSettings(settings.group());
-    m_uiForm.dsSample->readSettings(settings.group());
-  }
-
-
-  /**
-   * Handles when the type of geometry changes
-   *
-   * Updates the file extension to search for
-   */
-  void ApplyCorr::handleGeometryChange(int index)
-  {
-    QString ext("");
-    switch(index)
-    {
-      case 0:
-        // Geometry is flat
-        ext = "_flt_abs";
-        break;
-      case 1:
-        // Geometry is cylinder
-        ext = "_cyl_abs";
-        break;
-      case 2:
-        // Geometry is annulus
-        ext = "_ann_abs";
-        break;
-    }
-    m_uiForm.dsCorrections->setWSSuffixes(QStringList(ext));
-    m_uiForm.dsCorrections->setFBSuffixes(QStringList(ext + ".nxs"));
-  }
-
-
-  /**
-   * Replots the preview plot.
-   *
-   * @param specIndex Spectrum index to plot
-   */
-  void ApplyCorr::plotPreview(int specIndex)
-  {
-    bool useCan = m_uiForm.ckUseCan->isChecked();
-
-    m_uiForm.ppPreview->clear();
-
-    // Plot sample
-    m_uiForm.ppPreview->addSpectrum("Sample", m_uiForm.dsSample->getCurrentDataName(),
-                                    specIndex, Qt::black);
-
-    // Plot result
-    if(!m_pythonExportWsName.empty())
-      m_uiForm.ppPreview->addSpectrum("Corrected", QString::fromStdString(m_pythonExportWsName),
-                                      specIndex, Qt::green);
-
-    // Plot can
-    if(useCan)
-      m_uiForm.ppPreview->addSpectrum("Can", m_uiForm.dsContainer->getCurrentDataName(),
-                                      specIndex, Qt::red);
-  }
-
-} // namespace IDA
-} // namespace CustomInterfaces
-} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ApplyPaalmanPings.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ApplyPaalmanPings.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..90dba8e19241ff63f4a371e4d806b2a703d5dece
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ApplyPaalmanPings.cpp
@@ -0,0 +1,432 @@
+#include "MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.h"
+#include "MantidQtCustomInterfaces/UserInputValidator.h"
+#include "MantidAPI/AnalysisDataService.h"
+#include "MantidAPI/TextAxis.h"
+
+#include <QStringList>
+
+using namespace Mantid::API;
+
+namespace {
+Mantid::Kernel::Logger g_log("ApplyPaalmanPings");
+}
+
+namespace MantidQt {
+namespace CustomInterfaces {
+ApplyPaalmanPings::ApplyPaalmanPings(QWidget *parent) : CorrectionsTab(parent) {
+  m_uiForm.setupUi(parent);
+
+  connect(m_uiForm.cbGeometry, SIGNAL(currentIndexChanged(int)), this,
+          SLOT(handleGeometryChange(int)));
+  connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString &)), this,
+          SLOT(newData(const QString &)));
+  connect(m_uiForm.spPreviewSpec, SIGNAL(valueChanged(int)), this,
+          SLOT(plotPreview(int)));
+
+  m_uiForm.spPreviewSpec->setMinimum(0);
+  m_uiForm.spPreviewSpec->setMaximum(0);
+}
+
+void ApplyPaalmanPings::setup() {}
+
+/**
+ * Disables corrections when using S(Q, w) as input data.
+ *
+ * @param dataName Name of new data source
+ */
+void ApplyPaalmanPings::newData(const QString &dataName) {
+  const MatrixWorkspace_sptr sampleWs =
+      AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+          dataName.toStdString());
+  m_uiForm.spPreviewSpec->setMaximum(
+      static_cast<int>(sampleWs->getNumberHistograms()) - 1);
+
+  // Plot the sample curve
+  m_uiForm.ppPreview->clear();
+  m_uiForm.ppPreview->addSpectrum("Sample", sampleWs, 0, Qt::black);
+}
+
+void ApplyPaalmanPings::run() {
+  API::BatchAlgorithmRunner::AlgorithmRuntimeProps absCorProps;
+  IAlgorithm_sptr applyCorrAlg =
+      AlgorithmManager::Instance().create("ApplyPaalmanPingsCorrection");
+  applyCorrAlg->initialize();
+
+  QString sampleWsName = m_uiForm.dsSample->getCurrentDataName();
+  MatrixWorkspace_sptr sampleWs =
+      AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+          sampleWsName.toStdString());
+  m_originalSampleUnits = sampleWs->getAxis(0)->unit()->unitID();
+
+  // If not in wavelength then do conversion
+  if (m_originalSampleUnits != "Wavelength") {
+    g_log.information(
+        "Sample workspace not in wavelength, need to convert to continue.");
+    absCorProps["SampleWorkspace"] =
+        addConvertUnitsStep(sampleWs, "Wavelength");
+  } else {
+    absCorProps["SampleWorkspace"] = sampleWsName.toStdString();
+  }
+
+  bool useCan = m_uiForm.ckUseCan->isChecked();
+  if (useCan) {
+    QString canWsName = m_uiForm.dsContainer->getCurrentDataName();
+    MatrixWorkspace_sptr canWs =
+        AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+            canWsName.toStdString());
+
+    // If not in wavelength then do conversion
+    std::string originalCanUnits = canWs->getAxis(0)->unit()->unitID();
+    if (originalCanUnits != "Wavelength") {
+      g_log.information("Container workspace not in wavelength, need to "
+                        "convert to continue.");
+      absCorProps["CanWorkspace"] = addConvertUnitsStep(canWs, "Wavelength");
+    } else {
+      absCorProps["CanWorkspace"] = canWsName.toStdString();
+    }
+
+    bool useCanScale = m_uiForm.ckScaleCan->isChecked();
+    if (useCanScale) {
+      double canScaleFactor = m_uiForm.spCanScale->value();
+      applyCorrAlg->setProperty("CanScaleFactor", canScaleFactor);
+    }
+
+    // Check for same binning across sample and container
+    if (!checkWorkspaceBinningMatches(sampleWs, canWs)) {
+      QString text =
+          "Binning on sample and container does not match."
+          "Would you like to rebin the sample to match the container?";
+
+      int result = QMessageBox::question(NULL, tr("Rebin sample?"), tr(text),
+                                         QMessageBox::Yes, QMessageBox::No,
+                                         QMessageBox::NoButton);
+
+      if (result == QMessageBox::Yes) {
+        addRebinStep(sampleWsName, canWsName);
+      } else {
+        m_batchAlgoRunner->clearQueue();
+        g_log.error("Cannot apply absorption corrections using a sample and "
+                    "container with different binning.");
+        return;
+      }
+    }
+  }
+
+  bool useCorrections = m_uiForm.ckUseCorrections->isChecked();
+  if (useCorrections) {
+    QString correctionsWsName = m_uiForm.dsCorrections->getCurrentDataName();
+
+    WorkspaceGroup_sptr corrections =
+        AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(
+            correctionsWsName.toStdString());
+    bool interpolateAll = false;
+    for (size_t i = 0; i < corrections->size(); i++) {
+      MatrixWorkspace_sptr factorWs =
+          boost::dynamic_pointer_cast<MatrixWorkspace>(corrections->getItem(i));
+
+      // Check for matching binning
+      if (sampleWs && (sampleWs->blocksize() != factorWs->blocksize())) {
+        int result;
+        if (interpolateAll) {
+          result = QMessageBox::Yes;
+        } else {
+          QString text = "Number of bins on sample and " +
+                         QString::fromStdString(factorWs->name()) +
+                         " workspace does not match.\n" +
+                         "Would you like to interpolate this workspace to "
+                         "match the sample?";
+
+          result = QMessageBox::question(NULL, tr("Interpolate corrections?"),
+                                         tr(text), QMessageBox::YesToAll,
+                                         QMessageBox::Yes, QMessageBox::No);
+        }
+
+        switch (result) {
+        case QMessageBox::YesToAll:
+          interpolateAll = true;
+        case QMessageBox::Yes:
+          addInterpolationStep(factorWs, absCorProps["SampleWorkspace"]);
+          break;
+        default:
+          m_batchAlgoRunner->clearQueue();
+          g_log.error("ApplyPaalmanPings cannot run with corrections that do "
+                      "not match sample binning.");
+          return;
+        }
+      }
+    }
+
+    applyCorrAlg->setProperty("CorrectionsWorkspace",
+                              correctionsWsName.toStdString());
+  }
+
+  // Generate output workspace name
+  int nameCutIndex = sampleWsName.lastIndexOf("_");
+  if (nameCutIndex == -1)
+    nameCutIndex = sampleWsName.length();
+
+  QString correctionType;
+  switch (m_uiForm.cbGeometry->currentIndex()) {
+  case 0:
+    correctionType = "flt";
+    break;
+  case 1:
+    correctionType = "cyl";
+    break;
+  }
+  const QString outputWsName =
+      sampleWsName.left(nameCutIndex) + +"_" + correctionType + "_Corrected";
+
+  applyCorrAlg->setProperty("OutputWorkspace", outputWsName.toStdString());
+
+  // Add corrections algorithm to queue
+  m_batchAlgoRunner->addAlgorithm(applyCorrAlg, absCorProps);
+
+  // Run algorithm queue
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(absCorComplete(bool)));
+  m_batchAlgoRunner->executeBatchAsync();
+
+  // Set the result workspace for Python script export
+  m_pythonExportWsName = outputWsName.toStdString();
+}
+
+/**
+ * Adds a rebin to workspace step to the calculation for when using a sample and
+ *container that
+ * have different binning.
+ *
+ * @param toRebin
+ * @param toMatch
+ */
+void ApplyPaalmanPings::addRebinStep(QString toRebin, QString toMatch) {
+  API::BatchAlgorithmRunner::AlgorithmRuntimeProps rebinProps;
+  rebinProps["WorkspaceToMatch"] = toMatch.toStdString();
+
+  IAlgorithm_sptr rebinAlg =
+      AlgorithmManager::Instance().create("RebinToWorkspace");
+  rebinAlg->initialize();
+
+  rebinAlg->setProperty("WorkspaceToRebin", toRebin.toStdString());
+  rebinAlg->setProperty("OutputWorkspace", toRebin.toStdString());
+
+  m_batchAlgoRunner->addAlgorithm(rebinAlg, rebinProps);
+}
+
+/**
+ * Adds a spline interpolation as a step in the calculation for using legacy
+ *correction factor
+ * workspaces.
+ *
+ * @param toInterpolate Pointer to the workspace to interpolate
+ * @param toMatch Name of the workspace to match
+ */
+void ApplyPaalmanPings::addInterpolationStep(MatrixWorkspace_sptr toInterpolate,
+                                             std::string toMatch) {
+  API::BatchAlgorithmRunner::AlgorithmRuntimeProps interpolationProps;
+  interpolationProps["WorkspaceToMatch"] = toMatch;
+
+  IAlgorithm_sptr interpolationAlg =
+      AlgorithmManager::Instance().create("SplineInterpolation");
+  interpolationAlg->initialize();
+
+  interpolationAlg->setProperty("WorkspaceToInterpolate",
+                                toInterpolate->name());
+  interpolationAlg->setProperty("OutputWorkspace", toInterpolate->name());
+
+  m_batchAlgoRunner->addAlgorithm(interpolationAlg, interpolationProps);
+}
+
+/**
+ * Handles completion of the abs. correction algorithm.
+ *
+ * @param error True if algorithm failed.
+ */
+void ApplyPaalmanPings::absCorComplete(bool error) {
+  disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+             SLOT(absCorComplete(bool)));
+
+  if (error) {
+    emit showMessageBox(
+        "Unable to apply corrections.\nSee Results Log for more details.");
+    return;
+  }
+
+  // Convert back to original sample units
+  if (m_originalSampleUnits != "Wavelength") {
+    auto ws = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+        m_pythonExportWsName);
+    std::string eMode("");
+    if (m_originalSampleUnits == "dSpacing")
+      eMode = "Elastic";
+    addConvertUnitsStep(ws, m_originalSampleUnits, "", eMode);
+  }
+
+  // Add save algorithms if required
+  bool save = m_uiForm.ckSave->isChecked();
+  if (save)
+    addSaveWorkspaceToQueue(QString::fromStdString(m_pythonExportWsName));
+
+  // Run algorithm queue
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(postProcessComplete(bool)));
+  m_batchAlgoRunner->executeBatchAsync();
+}
+
+/**
+ * Handles completion of the unit conversion and saving algorithm.
+ *
+ * @param error True if algorithm failed.
+ */
+void ApplyPaalmanPings::postProcessComplete(bool error) {
+  disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+             SLOT(postProcessComplete(bool)));
+
+  if (error) {
+    emit showMessageBox("Unable to process corrected workspace.\nSee Results "
+                        "Log for more details.");
+    return;
+  }
+
+  // Handle preview plot
+  plotPreview(m_uiForm.spPreviewSpec->value());
+
+  // Handle Mantid plotting
+  QString plotType = m_uiForm.cbPlotOutput->currentText();
+
+  if (plotType == "Spectra" || plotType == "Both")
+    plotSpectrum(QString::fromStdString(m_pythonExportWsName));
+
+  if (plotType == "Contour" || plotType == "Both")
+    plot2D(QString::fromStdString(m_pythonExportWsName));
+}
+
+bool ApplyPaalmanPings::validate() {
+  UserInputValidator uiv;
+
+  uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
+
+  MatrixWorkspace_sptr sampleWs;
+
+  bool useCan = m_uiForm.ckUseCan->isChecked();
+  bool useCorrections = m_uiForm.ckUseCorrections->isChecked();
+
+  if (!(useCan || useCorrections))
+    uiv.addErrorMessage("Must use either container subtraction or corrections");
+
+  if (useCan) {
+    uiv.checkDataSelectorIsValid("Container", m_uiForm.dsContainer);
+
+    // Check can and sample workspaces are the same "type" (reduced or S(Q, w))
+    QString sample = m_uiForm.dsSample->getCurrentDataName();
+    QString sampleType =
+        sample.right(sample.length() - sample.lastIndexOf("_"));
+    QString container = m_uiForm.dsContainer->getCurrentDataName();
+    QString containerType =
+        container.right(container.length() - container.lastIndexOf("_"));
+
+    g_log.debug() << "Sample type is: " << sampleType.toStdString()
+                  << std::endl;
+    g_log.debug() << "Can type is: " << containerType.toStdString()
+                  << std::endl;
+
+    if (containerType != sampleType)
+      uiv.addErrorMessage(
+          "Sample and can workspaces must contain the same type of data.");
+  }
+
+  if (useCorrections) {
+    uiv.checkDataSelectorIsValid("Corrections", m_uiForm.dsCorrections);
+
+    QString correctionsWsName = m_uiForm.dsCorrections->getCurrentDataName();
+    WorkspaceGroup_sptr corrections =
+        AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(
+            correctionsWsName.toStdString());
+    for (size_t i = 0; i < corrections->size(); i++) {
+      // Check it is a MatrixWorkspace
+      MatrixWorkspace_sptr factorWs =
+          boost::dynamic_pointer_cast<MatrixWorkspace>(corrections->getItem(i));
+      if (!factorWs) {
+        QString msg = "Correction factor workspace " + QString::number(i) +
+                      " is not a MatrixWorkspace";
+        uiv.addErrorMessage(msg);
+        continue;
+      }
+
+      // Check X unit is wavelength
+      Mantid::Kernel::Unit_sptr xUnit = factorWs->getAxis(0)->unit();
+      if (xUnit->caption() != "Wavelength") {
+        QString msg = "Correction factor workspace " +
+                      QString::fromStdString(factorWs->name()) +
+                      " is not in wavelength";
+        uiv.addErrorMessage(msg);
+      }
+    }
+  }
+
+  // Show errors if there are any
+  if (!uiv.isAllInputValid())
+    emit showMessageBox(uiv.generateErrorMessage());
+
+  return uiv.isAllInputValid();
+}
+
+void ApplyPaalmanPings::loadSettings(const QSettings &settings) {
+  m_uiForm.dsCorrections->readSettings(settings.group());
+  m_uiForm.dsContainer->readSettings(settings.group());
+  m_uiForm.dsSample->readSettings(settings.group());
+}
+
+/**
+ * Handles when the type of geometry changes
+ *
+ * Updates the file extension to search for
+ */
+void ApplyPaalmanPings::handleGeometryChange(int index) {
+  QString ext("");
+  switch (index) {
+  case 0:
+    // Geometry is flat
+    ext = "_flt_abs";
+    break;
+  case 1:
+    // Geometry is cylinder
+    ext = "_cyl_abs";
+    break;
+  case 2:
+    // Geometry is annulus
+    ext = "_ann_abs";
+    break;
+  }
+  m_uiForm.dsCorrections->setWSSuffixes(QStringList(ext));
+  m_uiForm.dsCorrections->setFBSuffixes(QStringList(ext + ".nxs"));
+}
+
+/**
+ * Replots the preview plot.
+ *
+ * @param specIndex Spectrum index to plot
+ */
+void ApplyPaalmanPings::plotPreview(int specIndex) {
+  bool useCan = m_uiForm.ckUseCan->isChecked();
+
+  m_uiForm.ppPreview->clear();
+
+  // Plot sample
+  m_uiForm.ppPreview->addSpectrum(
+      "Sample", m_uiForm.dsSample->getCurrentDataName(), specIndex, Qt::black);
+
+  // Plot result
+  if (!m_pythonExportWsName.empty())
+    m_uiForm.ppPreview->addSpectrum(
+        "Corrected", QString::fromStdString(m_pythonExportWsName), specIndex,
+        Qt::green);
+
+  // Plot can
+  if (useCan)
+    m_uiForm.ppPreview->addSpectrum(
+        "Can", m_uiForm.dsContainer->getCurrentDataName(), specIndex, Qt::red);
+}
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/CalcCorr.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/CalcCorr.cpp
deleted file mode 100644
index 39acdebbae9ffb9814f7b1874a2272c3b3d815a8..0000000000000000000000000000000000000000
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/CalcCorr.cpp
+++ /dev/null
@@ -1,405 +0,0 @@
-#include "MantidAPI/AnalysisDataService.h"
-#include "MantidQtCustomInterfaces/Indirect/CalcCorr.h"
-#include "MantidQtCustomInterfaces/UserInputValidator.h"
-#include "MantidQtMantidWidgets/WorkspaceSelector.h"
-
-#include <QLineEdit>
-#include <QList>
-#include <QValidator>
-#include <QDoubleValidator>
-#include <QRegExpValidator>
-
-using namespace Mantid::API;
-
-namespace
-{
-  Mantid::Kernel::Logger g_log("CalcCorr");
-}
-
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-namespace IDA
-{
-  CalcCorr::CalcCorr(QWidget * parent) :
-    IDATab(parent)
-  {
-    m_uiForm.setupUi(parent);
-
-    connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString&)), this, SLOT(getBeamWidthFromWorkspace(const QString&)));
-
-    QRegExp regex("[A-Za-z0-9\\-\\(\\)]*");
-    QValidator *formulaValidator = new QRegExpValidator(regex, this);
-    m_uiForm.leSampleChemicalFormula->setValidator(formulaValidator);
-    m_uiForm.leCanChemicalFormula->setValidator(formulaValidator);
-  }
-
-
-  void CalcCorr::setup()
-  {
-    doValidation(true);
-  }
-
-
-  void CalcCorr::run()
-  {
-    // Get correct corrections algorithm
-    QString sampleShape = m_uiForm.cbSampleShape->currentText();
-    QString algorithmName = sampleShape.replace(" ", "") + "PaalmanPingsCorrection";
-    algorithmName = algorithmName.replace("Annulus", "Cylinder"); // Use the cylinder algorithm for annulus
-
-    API::BatchAlgorithmRunner::AlgorithmRuntimeProps absCorProps;
-    IAlgorithm_sptr absCorAlgo = AlgorithmManager::Instance().create(algorithmName.toStdString());
-    absCorAlgo->initialize();
-
-    // Sample details
-    QString sampleWsName = m_uiForm.dsSample->getCurrentDataName();
-    MatrixWorkspace_sptr sampleWs = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(sampleWsName.toStdString());
-
-    // If not in wavelength then do conversion
-    Mantid::Kernel::Unit_sptr sampleXUnit = sampleWs->getAxis(0)->unit();
-    if(sampleXUnit->caption() != "Wavelength")
-    {
-      g_log.information("Sample workspace not in wavelength, need to convert to continue.");
-      absCorProps["SampleWorkspace"] = addConvertUnitsStep(sampleWs, "Wavelength");
-    }
-    else
-    {
-      absCorProps["SampleWorkspace"] = sampleWsName.toStdString();
-    }
-
-    double sampleNumberDensity = m_uiForm.spSampleNumberDensity->value();
-    absCorAlgo->setProperty("SampleNumberDensity", sampleNumberDensity);
-
-    QString sampleChemicalFormula = m_uiForm.leSampleChemicalFormula->text();
-    absCorAlgo->setProperty("SampleChemicalFormula", sampleChemicalFormula.toStdString());
-
-    addShapeSpecificSampleOptions(absCorAlgo, sampleShape);
-
-    // Can details
-    bool useCan = m_uiForm.ckUseCan->isChecked();
-    if(useCan)
-    {
-      QString canWsName = m_uiForm.dsContainer->getCurrentDataName();
-      MatrixWorkspace_sptr canWs = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(canWsName.toStdString());
-
-      // If not in wavelength then do conversion
-      Mantid::Kernel::Unit_sptr canXUnit = canWs->getAxis(0)->unit();
-      if(canXUnit->caption() != "Wavelength")
-      {
-        g_log.information("Container workspace not in wavelength, need to convert to continue.");
-        absCorProps["CanWorkspace"] = addConvertUnitsStep(canWs, "Wavelength");
-      }
-      else
-      {
-        absCorProps["CanWorkspace"] = canWsName.toStdString();
-      }
-
-      double canNumberDensity = m_uiForm.spCanNumberDensity->value();
-      absCorAlgo->setProperty("CanNumberDensity", canNumberDensity);
-
-      QString canChemicalFormula = m_uiForm.leCanChemicalFormula->text();
-      absCorAlgo->setProperty("CanChemicalFormula", canChemicalFormula.toStdString());
-
-      addShapeSpecificCanOptions(absCorAlgo, sampleShape);
-    }
-
-    std::string eMode = getEMode(sampleWs);
-    absCorAlgo->setProperty("EMode", eMode);
-    if(eMode == "Indirect")
-      absCorAlgo->setProperty("EFixed", getEFixed(sampleWs));
-
-    // Generate workspace names
-    int nameCutIndex = sampleWsName.lastIndexOf("_");
-    if(nameCutIndex == -1)
-      nameCutIndex = sampleWsName.length();
-
-    QString correctionType;
-    switch(m_uiForm.cbSampleShape->currentIndex())
-    {
-      case 0:
-        correctionType = "flt";
-        break;
-      case 1:
-        correctionType = "cyl";
-        break;
-      case 2:
-        correctionType = "ann";
-        break;
-    }
-
-    const QString outputWsName = sampleWsName.left(nameCutIndex) + "_" + correctionType + "_abs";
-    absCorAlgo->setProperty("OutputWorkspace", outputWsName.toStdString());
-
-    // Add corrections algorithm to queue
-    m_batchAlgoRunner->addAlgorithm(absCorAlgo, absCorProps);
-
-    // Add save algorithms if required
-    bool save = m_uiForm.ckSave->isChecked();
-    if(save)
-      addSaveWorkspaceToQueue(outputWsName);
-
-    // Run algorithm queue
-    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(absCorComplete(bool)));
-    m_batchAlgoRunner->executeBatchAsync();
-
-    // Set the result workspace for Python script export
-    m_pythonExportWsName = outputWsName.toStdString();
-  }
-
-
-  bool CalcCorr::validate()
-  {
-    return doValidation();
-  }
-
-
-  /**
-   * Does validation on the user input.
-   *
-   * @param silent Set to true to avoid creating an error message
-   * @return True if all user input is valid
-   */
-  bool CalcCorr::doValidation(bool silent)
-  {
-    UserInputValidator uiv;
-
-    uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
-
-    // Validate chemical formula
-    if(uiv.checkFieldIsNotEmpty("Sample Chemical Formula", m_uiForm.leSampleChemicalFormula, m_uiForm.valSampleChemicalFormula))
-      uiv.checkFieldIsValid("Sample Chemical Formula", m_uiForm.leSampleChemicalFormula, m_uiForm.valSampleChemicalFormula);
-
-    bool useCan = m_uiForm.ckUseCan->isChecked();
-    if(useCan)
-    {
-      uiv.checkDataSelectorIsValid("Can", m_uiForm.dsContainer);
-
-      // Validate chemical formula
-      if(uiv.checkFieldIsNotEmpty("Can Chemical Formula", m_uiForm.leCanChemicalFormula, m_uiForm.valCanChemicalFormula))
-        uiv.checkFieldIsValid("Can Chemical Formula", m_uiForm.leCanChemicalFormula, m_uiForm.valCanChemicalFormula);
-
-      // Ensure sample and container are the same kind of data
-      QString sampleWsName = m_uiForm.dsSample->getCurrentDataName();
-      QString sampleType = sampleWsName.right(sampleWsName.length() - sampleWsName.lastIndexOf("_"));
-      QString containerWsName = m_uiForm.dsContainer->getCurrentDataName();
-      QString containerType = containerWsName.right(containerWsName.length() - containerWsName.lastIndexOf("_"));
-
-      g_log.debug() << "Sample type is: " << sampleType.toStdString() << std::endl;
-      g_log.debug() << "Can type is: " << containerType.toStdString() << std::endl;
-
-      if(containerType != sampleType)
-        uiv.addErrorMessage("Sample and can workspaces must contain the same type of data.");
-    }
-
-    // Show error mssage if needed
-    if(!uiv.isAllInputValid() && !silent)
-      emit showMessageBox(uiv.generateErrorMessage());
-
-    return uiv.isAllInputValid();
-  }
-
-
-  /**
-   * Handles completion of the correction algorithm.
-   *
-   * @param error True of the algorithm failed
-   */
-  void CalcCorr::absCorComplete(bool error)
-  {
-    disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(absCorComplete(bool)));
-
-    if(error)
-    {
-      emit showMessageBox("Absorption correction calculation failed.\nSee Results Log for more details.");
-      return;
-    }
-
-    // Convert the spectrum axis of correction factors to Q
-    WorkspaceGroup_sptr corrections = AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(m_pythonExportWsName);
-    for(size_t i = 0; i < corrections->size(); i++)
-    {
-      MatrixWorkspace_sptr factorWs = boost::dynamic_pointer_cast<MatrixWorkspace>(corrections->getItem(i));
-      if(!factorWs)
-        continue;
-
-      std::string eMode = getEMode(factorWs);
-
-      API::BatchAlgorithmRunner::AlgorithmRuntimeProps convertSpecProps;
-      IAlgorithm_sptr convertSpecAlgo = AlgorithmManager::Instance().create("ConvertSpectrumAxis");
-      convertSpecAlgo->initialize();
-      convertSpecAlgo->setProperty("InputWorkspace", factorWs);
-      convertSpecAlgo->setProperty("OutputWorkspace", factorWs->name());
-      convertSpecAlgo->setProperty("Target", "ElasticQ");
-      convertSpecAlgo->setProperty("EMode", eMode);
-
-      if(eMode == "Indirect")
-        convertSpecAlgo->setProperty("EFixed", getEFixed(factorWs));
-
-      m_batchAlgoRunner->addAlgorithm(convertSpecAlgo);
-    }
-
-    // Run algorithm queue
-    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(postProcessComplete(bool)));
-    m_batchAlgoRunner->executeBatchAsync();
-  }
-
-
-  /**
-   * Handles completion of the post processing algorithms.
-   *
-   * @param error True of the algorithm failed
-   */
-  void CalcCorr::postProcessComplete(bool error)
-  {
-    disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(postProcessComplete(bool)));
-
-    if(error)
-    {
-      emit showMessageBox("Correction factor post processing failed.\nSee Results Log for more details.");
-      return;
-    }
-
-    // Handle Mantid plotting
-    QString plotType = m_uiForm.cbPlotOutput->currentText();
-
-    if(plotType == "Both" || plotType == "Wavelength")
-      plotSpectrum(QString::fromStdString(m_pythonExportWsName));
-
-    if(plotType == "Both" || plotType == "Angle")
-      plotTimeBin(QString::fromStdString(m_pythonExportWsName));
-  }
-
-
-  void CalcCorr::loadSettings(const QSettings & settings)
-  {
-    m_uiForm.dsSample->readSettings(settings.group());
-    m_uiForm.dsContainer->readSettings(settings.group());
-  }
-
-
-  /**
-   * Gets the beam width from the instrument parameters on a given workspace
-   * and update the relevant options on the UI.
-   *
-   * @param wsName Name of the workspace
-   */
-  void CalcCorr::getBeamWidthFromWorkspace(const QString& wsName)
-  {
-    auto ws = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(wsName.toStdString());
-
-    if(!ws)
-    {
-      g_log.warning() << "Failed to find workspace " << wsName.toStdString() << std::endl;
-      return;
-    }
-
-    auto instrument = ws->getInstrument();
-
-    const std::string beamWidthParamName = "Workflow.beam-width";
-    if(instrument->hasParameter(beamWidthParamName))
-    {
-      QString beamWidth = QString::fromStdString(instrument->getStringParameter(beamWidthParamName)[0]);
-      double beamWidthValue = beamWidth.toDouble();
-
-      m_uiForm.spCylBeamWidth->setValue(beamWidthValue);
-      m_uiForm.spAnnBeamWidth->setValue(beamWidthValue);
-    }
-
-    const std::string beamHeightParamName = "Workflow.beam-height";
-    if(instrument->hasParameter(beamHeightParamName))
-    {
-      QString beamHeight = QString::fromStdString(instrument->getStringParameter(beamHeightParamName)[0]);
-      double beamHeightValue = beamHeight.toDouble();
-
-      m_uiForm.spCylBeamHeight->setValue(beamHeightValue);
-      m_uiForm.spAnnBeamHeight->setValue(beamHeightValue);
-    }
-  }
-
-
-  /**
-   * Sets algorithm properties specific to the sample for a given shape.
-   *
-   * @param alg Algorithm to set properties of
-   * @param shape Sample shape
-   */
-  void CalcCorr::addShapeSpecificSampleOptions(IAlgorithm_sptr alg, QString shape)
-  {
-    if(shape == "FlatPlate")
-    {
-      double sampleThickness = m_uiForm.spFlatSampleThickness->value();
-      alg->setProperty("SampleThickness", sampleThickness);
-
-      double sampleAngle = m_uiForm.spFlatSampleAngle->value();
-      alg->setProperty("SampleAngle", sampleAngle);
-    }
-    else if(shape == "Cylinder")
-    {
-      alg->setProperty("SampleInnerRadius", 0.0);
-
-      double sampleOuterRadius = m_uiForm.spCylSampleOuterRadius->value();
-      alg->setProperty("SampleOuterRadius", sampleOuterRadius);
-
-      double beamWidth = m_uiForm.spCylBeamWidth->value();
-      alg->setProperty("BeamWidth", beamWidth);
-
-      double beamHeight = m_uiForm.spCylBeamHeight->value();
-      alg->setProperty("BeamHeight", beamHeight);
-
-      double stepSize = m_uiForm.spCylStepSize->value();
-      alg->setProperty("StepSize", stepSize);
-    }
-    else if(shape == "Annulus")
-    {
-      double sampleInnerRadius = m_uiForm.spAnnSampleInnerRadius->value();
-      alg->setProperty("SampleInnerRadius", sampleInnerRadius);
-
-      double sampleOuterRadius = m_uiForm.spAnnSampleOuterRadius->value();
-      alg->setProperty("SampleOuterRadius", sampleOuterRadius);
-
-      double beamWidth = m_uiForm.spAnnBeamWidth->value();
-      alg->setProperty("BeamWidth", beamWidth);
-
-      double beamHeight = m_uiForm.spAnnBeamHeight->value();
-      alg->setProperty("BeamHeight", beamHeight);
-
-      double stepSize = m_uiForm.spAnnStepSize->value();
-      alg->setProperty("StepSize", stepSize);
-    }
-  }
-
-
-  /**
-   * Sets algorithm properties specific to the container for a given shape.
-   *
-   * @param alg Algorithm to set properties of
-   * @param shape Sample shape
-   */
-  void CalcCorr::addShapeSpecificCanOptions(IAlgorithm_sptr alg, QString shape)
-  {
-    if(shape == "FlatPlate")
-    {
-      double canFrontThickness = m_uiForm.spFlatCanFrontThickness->value();
-      alg->setProperty("CanFrontThickness", canFrontThickness);
-
-      double canBackThickness = m_uiForm.spFlatCanBackThickness->value();
-      alg->setProperty("SampleThickness", canBackThickness);
-    }
-    else if(shape == "Cylinder")
-    {
-      double canOuterRadius = m_uiForm.spCylCanOuterRadius->value();
-      alg->setProperty("CanOuterRadius", canOuterRadius);
-    }
-    else if(shape == "Annulus")
-    {
-      double canOuterRadius = m_uiForm.spAnnCanOuterRadius->value();
-      alg->setProperty("CanOuterRadius", canOuterRadius);
-    }
-  }
-
-
-} // namespace IDA
-} // namespace CustomInterfaces
-} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/CalculatePaalmanPings.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/CalculatePaalmanPings.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..81277fad6d9919ec6d2057026a52be6716bff9c2
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/CalculatePaalmanPings.cpp
@@ -0,0 +1,399 @@
+#include "MantidAPI/AnalysisDataService.h"
+#include "MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.h"
+#include "MantidQtCustomInterfaces/UserInputValidator.h"
+#include "MantidQtMantidWidgets/WorkspaceSelector.h"
+
+#include <QLineEdit>
+#include <QList>
+#include <QValidator>
+#include <QDoubleValidator>
+#include <QRegExpValidator>
+
+using namespace Mantid::API;
+
+namespace {
+Mantid::Kernel::Logger g_log("CalculatePaalmanPings");
+}
+
+namespace MantidQt {
+namespace CustomInterfaces {
+CalculatePaalmanPings::CalculatePaalmanPings(QWidget *parent)
+    : CorrectionsTab(parent) {
+  m_uiForm.setupUi(parent);
+
+  connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString &)), this,
+          SLOT(getBeamWidthFromWorkspace(const QString &)));
+
+  QRegExp regex("[A-Za-z0-9\\-\\(\\)]*");
+  QValidator *formulaValidator = new QRegExpValidator(regex, this);
+  m_uiForm.leSampleChemicalFormula->setValidator(formulaValidator);
+  m_uiForm.leCanChemicalFormula->setValidator(formulaValidator);
+}
+
+void CalculatePaalmanPings::setup() { doValidation(true); }
+
+void CalculatePaalmanPings::run() {
+  // Get correct corrections algorithm
+  QString sampleShape = m_uiForm.cbSampleShape->currentText();
+  QString algorithmName =
+      sampleShape.replace(" ", "") + "PaalmanPingsCorrection";
+  algorithmName = algorithmName.replace(
+      "Annulus", "Cylinder"); // Use the cylinder algorithm for annulus
+
+  API::BatchAlgorithmRunner::AlgorithmRuntimeProps absCorProps;
+  IAlgorithm_sptr absCorAlgo =
+      AlgorithmManager::Instance().create(algorithmName.toStdString());
+  absCorAlgo->initialize();
+
+  // Sample details
+  QString sampleWsName = m_uiForm.dsSample->getCurrentDataName();
+  MatrixWorkspace_sptr sampleWs =
+      AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+          sampleWsName.toStdString());
+
+  // If not in wavelength then do conversion
+  Mantid::Kernel::Unit_sptr sampleXUnit = sampleWs->getAxis(0)->unit();
+  if (sampleXUnit->caption() != "Wavelength") {
+    g_log.information(
+        "Sample workspace not in wavelength, need to convert to continue.");
+    absCorProps["SampleWorkspace"] =
+        addConvertUnitsStep(sampleWs, "Wavelength");
+  } else {
+    absCorProps["SampleWorkspace"] = sampleWsName.toStdString();
+  }
+
+  double sampleNumberDensity = m_uiForm.spSampleNumberDensity->value();
+  absCorAlgo->setProperty("SampleNumberDensity", sampleNumberDensity);
+
+  QString sampleChemicalFormula = m_uiForm.leSampleChemicalFormula->text();
+  absCorAlgo->setProperty("SampleChemicalFormula",
+                          sampleChemicalFormula.toStdString());
+
+  addShapeSpecificSampleOptions(absCorAlgo, sampleShape);
+
+  // Can details
+  bool useCan = m_uiForm.ckUseCan->isChecked();
+  if (useCan) {
+    QString canWsName = m_uiForm.dsContainer->getCurrentDataName();
+    MatrixWorkspace_sptr canWs =
+        AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+            canWsName.toStdString());
+
+    // If not in wavelength then do conversion
+    Mantid::Kernel::Unit_sptr canXUnit = canWs->getAxis(0)->unit();
+    if (canXUnit->caption() != "Wavelength") {
+      g_log.information("Container workspace not in wavelength, need to "
+                        "convert to continue.");
+      absCorProps["CanWorkspace"] = addConvertUnitsStep(canWs, "Wavelength");
+    } else {
+      absCorProps["CanWorkspace"] = canWsName.toStdString();
+    }
+
+    double canNumberDensity = m_uiForm.spCanNumberDensity->value();
+    absCorAlgo->setProperty("CanNumberDensity", canNumberDensity);
+
+    QString canChemicalFormula = m_uiForm.leCanChemicalFormula->text();
+    absCorAlgo->setProperty("CanChemicalFormula",
+                            canChemicalFormula.toStdString());
+
+    addShapeSpecificCanOptions(absCorAlgo, sampleShape);
+  }
+
+  std::string eMode = getEMode(sampleWs);
+  absCorAlgo->setProperty("EMode", eMode);
+  if (eMode == "Indirect")
+    absCorAlgo->setProperty("EFixed", getEFixed(sampleWs));
+
+  // Generate workspace names
+  int nameCutIndex = sampleWsName.lastIndexOf("_");
+  if (nameCutIndex == -1)
+    nameCutIndex = sampleWsName.length();
+
+  QString correctionType;
+  switch (m_uiForm.cbSampleShape->currentIndex()) {
+  case 0:
+    correctionType = "flt";
+    break;
+  case 1:
+    correctionType = "cyl";
+    break;
+  case 2:
+    correctionType = "ann";
+    break;
+  }
+
+  const QString outputWsName =
+      sampleWsName.left(nameCutIndex) + "_" + correctionType + "_abs";
+  absCorAlgo->setProperty("OutputWorkspace", outputWsName.toStdString());
+
+  // Add corrections algorithm to queue
+  m_batchAlgoRunner->addAlgorithm(absCorAlgo, absCorProps);
+
+  // Add save algorithms if required
+  bool save = m_uiForm.ckSave->isChecked();
+  if (save)
+    addSaveWorkspaceToQueue(outputWsName);
+
+  // Run algorithm queue
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(absCorComplete(bool)));
+  m_batchAlgoRunner->executeBatchAsync();
+
+  // Set the result workspace for Python script export
+  m_pythonExportWsName = outputWsName.toStdString();
+}
+
+bool CalculatePaalmanPings::validate() { return doValidation(); }
+
+/**
+ * Does validation on the user input.
+ *
+ * @param silent Set to true to avoid creating an error message
+ * @return True if all user input is valid
+ */
+bool CalculatePaalmanPings::doValidation(bool silent) {
+  UserInputValidator uiv;
+
+  uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
+
+  // Validate chemical formula
+  if (uiv.checkFieldIsNotEmpty("Sample Chemical Formula",
+                               m_uiForm.leSampleChemicalFormula,
+                               m_uiForm.valSampleChemicalFormula))
+    uiv.checkFieldIsValid("Sample Chemical Formula",
+                          m_uiForm.leSampleChemicalFormula,
+                          m_uiForm.valSampleChemicalFormula);
+
+  bool useCan = m_uiForm.ckUseCan->isChecked();
+  if (useCan) {
+    uiv.checkDataSelectorIsValid("Can", m_uiForm.dsContainer);
+
+    // Validate chemical formula
+    if (uiv.checkFieldIsNotEmpty("Can Chemical Formula",
+                                 m_uiForm.leCanChemicalFormula,
+                                 m_uiForm.valCanChemicalFormula))
+      uiv.checkFieldIsValid("Can Chemical Formula",
+                            m_uiForm.leCanChemicalFormula,
+                            m_uiForm.valCanChemicalFormula);
+
+    // Ensure sample and container are the same kind of data
+    QString sampleWsName = m_uiForm.dsSample->getCurrentDataName();
+    QString sampleType = sampleWsName.right(sampleWsName.length() -
+                                            sampleWsName.lastIndexOf("_"));
+    QString containerWsName = m_uiForm.dsContainer->getCurrentDataName();
+    QString containerType = containerWsName.right(
+        containerWsName.length() - containerWsName.lastIndexOf("_"));
+
+    g_log.debug() << "Sample type is: " << sampleType.toStdString()
+                  << std::endl;
+    g_log.debug() << "Can type is: " << containerType.toStdString()
+                  << std::endl;
+
+    if (containerType != sampleType)
+      uiv.addErrorMessage(
+          "Sample and can workspaces must contain the same type of data.");
+  }
+
+  // Show error mssage if needed
+  if (!uiv.isAllInputValid() && !silent)
+    emit showMessageBox(uiv.generateErrorMessage());
+
+  return uiv.isAllInputValid();
+}
+
+/**
+ * Handles completion of the correction algorithm.
+ *
+ * @param error True of the algorithm failed
+ */
+void CalculatePaalmanPings::absCorComplete(bool error) {
+  disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+             SLOT(absCorComplete(bool)));
+
+  if (error) {
+    emit showMessageBox("Absorption correction calculation failed.\nSee "
+                        "Results Log for more details.");
+    return;
+  }
+
+  // Convert the spectrum axis of correction factors to Q
+  QString sampleWsName = m_uiForm.dsSample->getCurrentDataName();
+  MatrixWorkspace_sptr sampleWs =
+      AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+          sampleWsName.toStdString());
+  WorkspaceGroup_sptr corrections =
+      AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(
+          m_pythonExportWsName);
+  for (size_t i = 0; i < corrections->size(); i++) {
+    MatrixWorkspace_sptr factorWs =
+        boost::dynamic_pointer_cast<MatrixWorkspace>(corrections->getItem(i));
+    if (!factorWs || !sampleWs)
+      continue;
+
+    std::string eMode = getEMode(sampleWs);
+
+    if (eMode == "Indirect") {
+      API::BatchAlgorithmRunner::AlgorithmRuntimeProps convertSpecProps;
+      IAlgorithm_sptr convertSpecAlgo =
+          AlgorithmManager::Instance().create("ConvertSpectrumAxis");
+      convertSpecAlgo->initialize();
+      convertSpecAlgo->setProperty("InputWorkspace", factorWs);
+      convertSpecAlgo->setProperty("OutputWorkspace", factorWs->name());
+      convertSpecAlgo->setProperty("Target", "ElasticQ");
+      convertSpecAlgo->setProperty("EMode", "Indirect");
+
+      try {
+        convertSpecAlgo->setProperty("EFixed", getEFixed(factorWs));
+      } catch (std::runtime_error &) {
+      }
+
+      m_batchAlgoRunner->addAlgorithm(convertSpecAlgo);
+    }
+  }
+
+  // Run algorithm queue
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(postProcessComplete(bool)));
+  m_batchAlgoRunner->executeBatchAsync();
+}
+
+/**
+ * Handles completion of the post processing algorithms.
+ *
+ * @param error True of the algorithm failed
+ */
+void CalculatePaalmanPings::postProcessComplete(bool error) {
+  disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+             SLOT(postProcessComplete(bool)));
+
+  if (error) {
+    emit showMessageBox("Correction factor post processing failed.\nSee "
+                        "Results Log for more details.");
+    return;
+  }
+
+  // Handle Mantid plotting
+  QString plotType = m_uiForm.cbPlotOutput->currentText();
+
+  if (plotType == "Both" || plotType == "Wavelength")
+    plotSpectrum(QString::fromStdString(m_pythonExportWsName));
+
+  if (plotType == "Both" || plotType == "Angle")
+    plotTimeBin(QString::fromStdString(m_pythonExportWsName));
+}
+
+void CalculatePaalmanPings::loadSettings(const QSettings &settings) {
+  m_uiForm.dsSample->readSettings(settings.group());
+  m_uiForm.dsContainer->readSettings(settings.group());
+}
+
+/**
+ * Gets the beam width from the instrument parameters on a given workspace
+ * and update the relevant options on the UI.
+ *
+ * @param wsName Name of the workspace
+ */
+void CalculatePaalmanPings::getBeamWidthFromWorkspace(const QString &wsName) {
+  auto ws = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+      wsName.toStdString());
+
+  if (!ws) {
+    g_log.warning() << "Failed to find workspace " << wsName.toStdString()
+                    << std::endl;
+    return;
+  }
+
+  auto instrument = ws->getInstrument();
+
+  const std::string beamWidthParamName = "Workflow.beam-width";
+  if (instrument->hasParameter(beamWidthParamName)) {
+    QString beamWidth = QString::fromStdString(
+        instrument->getStringParameter(beamWidthParamName)[0]);
+    double beamWidthValue = beamWidth.toDouble();
+
+    m_uiForm.spCylBeamWidth->setValue(beamWidthValue);
+    m_uiForm.spAnnBeamWidth->setValue(beamWidthValue);
+  }
+
+  const std::string beamHeightParamName = "Workflow.beam-height";
+  if (instrument->hasParameter(beamHeightParamName)) {
+    QString beamHeight = QString::fromStdString(
+        instrument->getStringParameter(beamHeightParamName)[0]);
+    double beamHeightValue = beamHeight.toDouble();
+
+    m_uiForm.spCylBeamHeight->setValue(beamHeightValue);
+    m_uiForm.spAnnBeamHeight->setValue(beamHeightValue);
+  }
+}
+
+/**
+ * Sets algorithm properties specific to the sample for a given shape.
+ *
+ * @param alg Algorithm to set properties of
+ * @param shape Sample shape
+ */
+void CalculatePaalmanPings::addShapeSpecificSampleOptions(IAlgorithm_sptr alg,
+                                                          QString shape) {
+  if (shape == "FlatPlate") {
+    double sampleThickness = m_uiForm.spFlatSampleThickness->value();
+    alg->setProperty("SampleThickness", sampleThickness);
+
+    double sampleAngle = m_uiForm.spFlatSampleAngle->value();
+    alg->setProperty("SampleAngle", sampleAngle);
+  } else if (shape == "Cylinder") {
+    alg->setProperty("SampleInnerRadius", 0.0);
+
+    double sampleOuterRadius = m_uiForm.spCylSampleOuterRadius->value();
+    alg->setProperty("SampleOuterRadius", sampleOuterRadius);
+
+    double beamWidth = m_uiForm.spCylBeamWidth->value();
+    alg->setProperty("BeamWidth", beamWidth);
+
+    double beamHeight = m_uiForm.spCylBeamHeight->value();
+    alg->setProperty("BeamHeight", beamHeight);
+
+    double stepSize = m_uiForm.spCylStepSize->value();
+    alg->setProperty("StepSize", stepSize);
+  } else if (shape == "Annulus") {
+    double sampleInnerRadius = m_uiForm.spAnnSampleInnerRadius->value();
+    alg->setProperty("SampleInnerRadius", sampleInnerRadius);
+
+    double sampleOuterRadius = m_uiForm.spAnnSampleOuterRadius->value();
+    alg->setProperty("SampleOuterRadius", sampleOuterRadius);
+
+    double beamWidth = m_uiForm.spAnnBeamWidth->value();
+    alg->setProperty("BeamWidth", beamWidth);
+
+    double beamHeight = m_uiForm.spAnnBeamHeight->value();
+    alg->setProperty("BeamHeight", beamHeight);
+
+    double stepSize = m_uiForm.spAnnStepSize->value();
+    alg->setProperty("StepSize", stepSize);
+  }
+}
+
+/**
+ * Sets algorithm properties specific to the container for a given shape.
+ *
+ * @param alg Algorithm to set properties of
+ * @param shape Sample shape
+ */
+void CalculatePaalmanPings::addShapeSpecificCanOptions(IAlgorithm_sptr alg,
+                                                       QString shape) {
+  if (shape == "FlatPlate") {
+    double canFrontThickness = m_uiForm.spFlatCanFrontThickness->value();
+    alg->setProperty("CanFrontThickness", canFrontThickness);
+
+    double canBackThickness = m_uiForm.spFlatCanBackThickness->value();
+    alg->setProperty("SampleThickness", canBackThickness);
+  } else if (shape == "Cylinder") {
+    double canOuterRadius = m_uiForm.spCylCanOuterRadius->value();
+    alg->setProperty("CanOuterRadius", canOuterRadius);
+  } else if (shape == "Annulus") {
+    double canOuterRadius = m_uiForm.spAnnCanOuterRadius->value();
+    alg->setProperty("CanOuterRadius", canOuterRadius);
+  }
+}
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ConvFit.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ConvFit.cpp
index 213a3d5e9b6588d9d7b0a8ac8171454c8a363f76..4d64f9a09be1b757859df468806500a9475d9e6a 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ConvFit.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ConvFit.cpp
@@ -28,7 +28,7 @@ namespace CustomInterfaces
 namespace IDA
 {
   ConvFit::ConvFit(QWidget * parent) :
-    IDATab(parent),
+    IndirectDataAnalysisTab(parent),
     m_stringManager(NULL), m_cfTree(NULL),
     m_fixedProps(),
     m_cfInputWS(), m_cfInputWSName(),
@@ -231,14 +231,14 @@ namespace IDA
     pyInput +=
       "bg = '" + bgType + "'\n"
       "ftype = '" + fitType + "'\n"
-      "confitSeq(input, func, startx, endx, ftype, bg, temp, specMin, specMax, convolve, max_iterations=max_iterations, minimizer=minimizer, Plot=plot, Save=save)\n";
+      "rws = confitSeq(input, func, startx, endx, ftype, bg, temp, specMin, specMax, convolve, max_iterations=max_iterations, minimizer=minimizer, Plot=plot, Save=save)\n"
+      "AddSampleLog(Workspace=rws, LogName='res_workspace', LogText='" + m_uiForm.dsResInput->getCurrentDataName() + "')\n"
+      "print rws\n";
 
     QString pyOutput = runPythonCode(pyInput);
 
     // Set the result workspace for Python script export
-    QString inputWsName = QString::fromStdString(m_cfInputWS->getName());
-    QString resultWsName = inputWsName.left(inputWsName.lastIndexOf("_")) + "_conv_" + fitType + bgType + specMin + "_to_" + specMax + "_Workspaces";
-    m_pythonExportWsName = resultWsName.toStdString();
+    m_pythonExportWsName = pyOutput.toStdString();
 
     updatePlot();
   }
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IDATab.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/CorrectionsTab.cpp
similarity index 71%
rename from Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IDATab.cpp
rename to Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/CorrectionsTab.cpp
index 6f9cd09fecb731e0ca795c808d882c30eac66db8..4797b73095dc705f84c166f4df4fdd73f996788a 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IDATab.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/CorrectionsTab.cpp
@@ -1,4 +1,4 @@
-#include "MantidQtCustomInterfaces/Indirect/IDATab.h"
+#include "MantidQtCustomInterfaces/Indirect/CorrectionsTab.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "boost/shared_ptr.hpp"
@@ -13,20 +13,15 @@ using namespace Mantid::API;
 namespace MantidQt
 {
 namespace CustomInterfaces
-{
-namespace IDA
 {
   /**
    * Constructor.
    *
-   * @param parent :: the parent widget (an IndirectDataAnalysis object).
+   * @param parent :: the parent widget
    */
-  IDATab::IDATab(QWidget * parent) : IndirectTab(parent),
-    m_dblEdFac(NULL), m_blnEdFac(NULL),
-    m_parent(NULL)
+  CorrectionsTab::CorrectionsTab(QWidget * parent) : IndirectTab(parent),
+    m_dblEdFac(NULL), m_blnEdFac(NULL)
   {
-    m_parent = dynamic_cast<IndirectDataAnalysis*>(parent);
-
     // Create Editor Factories
     m_dblEdFac = new DoubleEditorFactory(this);
     m_blnEdFac = new QtCheckBoxFactory(this);
@@ -40,7 +35,7 @@ namespace IDA
    *
    * @param settings :: the QSettings object from which to load
    */
-  void IDATab::loadTabSettings(const QSettings & settings)
+  void CorrectionsTab::loadTabSettings(const QSettings & settings)
   {
     loadSettings(settings);
   }
@@ -49,7 +44,7 @@ namespace IDA
   /**
    * Slot that can be called when a user edits an input.
    */
-  void IDATab::inputChanged()
+  void CorrectionsTab::inputChanged()
   {
     validate();
   }
@@ -63,7 +58,7 @@ namespace IDA
   * @return whether the binning matches
   * @throws std::runtime_error if one of the workspaces is an invalid pointer
   */
-  bool IDATab::checkWorkspaceBinningMatches(MatrixWorkspace_const_sptr left, MatrixWorkspace_const_sptr right)
+  bool CorrectionsTab::checkWorkspaceBinningMatches(MatrixWorkspace_const_sptr left, MatrixWorkspace_const_sptr right)
   {
     if (left && right) //check the workspaces actually point to something first
     {
@@ -73,7 +68,7 @@ namespace IDA
     }
     else
     {
-      throw std::runtime_error("IDATab: One of the operands is an invalid MatrixWorkspace pointer");
+      throw std::runtime_error("CorrectionsTab: One of the operands is an invalid MatrixWorkspace pointer");
     }
   }
 
@@ -81,12 +76,15 @@ namespace IDA
   /**
    * Adds a unit converstion step to the batch algorithm queue.
    *
+   * Note that if converting diffraction data in wavelength then eMode must be set.
+   *
    * @param ws Pointer to the workspace to convert
    * @param unitID ID of unit to convert to
    * @param suffix Suffix to append to output workspace name
+   * @param eMode Emode to use (if not set will determine based on current X unit)
    * @return Name of output workspace
    */
-  std::string IDATab::addConvertUnitsStep(MatrixWorkspace_sptr ws, const std::string & unitID, const std::string & suffix)
+  std::string CorrectionsTab::addConvertUnitsStep(MatrixWorkspace_sptr ws, const std::string & unitID, const std::string & suffix, std::string eMode)
   {
     std::string outputName = ws->name();
 
@@ -103,7 +101,9 @@ namespace IDA
     convertAlg->setProperty("OutputWorkspace", outputName);
     convertAlg->setProperty("Target", unitID);
 
-    std::string eMode = getEMode(ws);
+    if(eMode.empty())
+      eMode = getEMode(ws);
+
     convertAlg->setProperty("EMode", eMode);
 
     if(eMode == "Indirect")
@@ -114,6 +114,5 @@ namespace IDA
     return outputName;
   }
 
-} // namespace IDA
 } // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/DensityOfStates.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/DensityOfStates.cpp
index 412fc565ca8c06bc32d3b33caed44f3d37954fe2..7006beac4b6975edfa95b11c4dafcffbcdaac03b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/DensityOfStates.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/DensityOfStates.cpp
@@ -2,256 +2,240 @@
 
 #include "MantidQtCustomInterfaces/UserInputValidator.h"
 
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/TableRow.h"
+
 #include <QFileInfo>
 #include <QString>
 
 using namespace Mantid::API;
 using MantidQt::API::BatchAlgorithmRunner;
 
-namespace
-{
-  Mantid::Kernel::Logger g_log("DensityOfStates");
+namespace {
+Mantid::Kernel::Logger g_log("DensityOfStates");
 }
 
+namespace MantidQt {
+namespace CustomInterfaces {
+DensityOfStates::DensityOfStates(QWidget *parent)
+    : IndirectSimulationTab(parent) {
+  m_uiForm.setupUi(parent);
 
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-  DensityOfStates::DensityOfStates(QWidget * parent) :
-    IndirectSimulationTab(parent)
-  {
-    m_uiForm.setupUi(parent);
-
-    connect(m_uiForm.mwInputFile, SIGNAL(filesFound()), this, SLOT(handleFileChange()));
-
-    m_uiForm.lwIons->setSelectionMode(QAbstractItemView::MultiSelection);
-  }
-
-
-  void DensityOfStates::setup()
-  {
-  }
-
-
-  /**
-   * Validate the form to check the program can be run.
-   *
-   * @return Whether the form was valid
-   */
-  bool DensityOfStates::validate()
-  {
-    UserInputValidator uiv;
-
-    // Ensure there are ions selected when using DensityOfStates sectrum with .phonon file
-    QString filename = m_uiForm.mwInputFile->getFirstFilename();
-    QFileInfo fileInfo(filename);
-    bool canDoPartialDoS = fileInfo.suffix() == "phonon";
-
-    QString specType = m_uiForm.cbSpectrumType->currentText();
-    auto items = m_uiForm.lwIons->selectedItems();
-
-    if(specType == "DensityOfStates" && canDoPartialDoS && items.size() < 1)
-      uiv.addErrorMessage("Must select at least one ion for DensityOfStates.");
-
-    // Give error message when there are errors
-    if(!uiv.isAllInputValid())
-      emit showMessageBox(uiv.generateErrorMessage());
-
-    return uiv.isAllInputValid();
-  }
+  connect(m_uiForm.mwInputFile, SIGNAL(filesFound()), this,
+          SLOT(handleFileChange()));
 
+  m_uiForm.lwIons->setSelectionMode(QAbstractItemView::MultiSelection);
+}
 
-  /**
-   * Configures and executes the LoadSassena algorithm.
-   */
-  void DensityOfStates::run()
-  {
-    // Get the DensityOfStates algorithm
-    IAlgorithm_sptr dosAlgo = AlgorithmManager::Instance().create("DensityOfStates");
+void DensityOfStates::setup() {}
 
-    QString filename = m_uiForm.mwInputFile->getFirstFilename();
-    QFileInfo inputFileInfo(filename);
-    QString specType = m_uiForm.cbSpectrumType->currentText();
+/**
+ * Validate the form to check the program can be run.
+ *
+ * @return Whether the form was valid
+ */
+bool DensityOfStates::validate() {
+  UserInputValidator uiv;
 
-    m_outputWsName = inputFileInfo.baseName() + "_" + specType;
+  // Ensure there are ions selected when using DensityOfStates sectrum with
+  // .phonon file
+  QString filename = m_uiForm.mwInputFile->getFirstFilename();
+  QFileInfo fileInfo(filename);
+  bool canDoPartialDoS = fileInfo.suffix() == "phonon";
 
-    // Set common properties
-    dosAlgo->setProperty("File", filename.toStdString());
-    dosAlgo->setProperty("OutputWorkspace", m_outputWsName.toStdString());
+  QString specType = m_uiForm.cbSpectrumType->currentText();
+  auto items = m_uiForm.lwIons->selectedItems();
 
-    QString peakShape = m_uiForm.cbPeakShape->currentText();
-    dosAlgo->setProperty("Function", peakShape.toStdString());
+  if (specType == "DensityOfStates" && canDoPartialDoS && items.size() < 1)
+    uiv.addErrorMessage("Must select at least one ion for DensityOfStates.");
 
-    double peakWidth = m_uiForm.spPeakWidth->value();
-    dosAlgo->setProperty("PeakWidth", peakWidth);
+  // Give error message when there are errors
+  if (!uiv.isAllInputValid())
+    emit showMessageBox(uiv.generateErrorMessage());
 
-    double binWidth = m_uiForm.spBinWidth->value();
-    dosAlgo->setProperty("BinWidth", binWidth);
+  return uiv.isAllInputValid();
+}
 
-    double zeroThreshold = m_uiForm.spZeroThreshold->value();
-    dosAlgo->setProperty("ZeroThreshold", zeroThreshold);
+/**
+ * Configures and executes the LoadSassena algorithm.
+ */
+void DensityOfStates::run() {
+  // Get the SimulatedDensityOfStates algorithm
+  IAlgorithm_sptr dosAlgo =
+      AlgorithmManager::Instance().create("SimulatedDensityOfStates");
 
-    bool scale = m_uiForm.ckScale->isChecked();
-    double scaleFactor = m_uiForm.spScale->value();
-    if(scale)
-      dosAlgo->setProperty("Scale", scaleFactor);
+  QString filename = m_uiForm.mwInputFile->getFirstFilename();
+  QFileInfo inputFileInfo(filename);
+  QString specType = m_uiForm.cbSpectrumType->currentText();
 
-    // Set spectrum type specific properties
-    if(specType == "DensityOfStates")
-    {
-      dosAlgo->setProperty("SpectrumType", "DOS");
+  m_outputWsName = inputFileInfo.baseName() + "_" + specType;
 
-      bool crossSectionScale = m_uiForm.ckCrossSectionScale->isChecked();
-      QString crossSectionScaleType = m_uiForm.cbCrossSectionScale->currentText();
-      if(crossSectionScale)
-        dosAlgo->setProperty("ScaleByCrossSection", crossSectionScaleType.toStdString());
+  // Set common properties
+  dosAlgo->setProperty("File", filename.toStdString());
+  dosAlgo->setProperty("OutputWorkspace", m_outputWsName.toStdString());
 
-      bool sumContributions = m_uiForm.ckSumContributions->isChecked();
-      dosAlgo->setProperty("SumContributions", sumContributions);
+  QString peakShape = m_uiForm.cbPeakShape->currentText();
+  dosAlgo->setProperty("Function", peakShape.toStdString());
 
-      std::vector<std::string> selectedIons;
-      auto items = m_uiForm.lwIons->selectedItems();
-      for(auto it = items.begin(); it != items.end(); ++it)
-        selectedIons.push_back((*it)->text().toStdString());
-      dosAlgo->setProperty("Ions", selectedIons);
-    }
-    else if(specType == "IR")
-    {
-      dosAlgo->setProperty("SpectrumType", "IR_Active");
-    }
-    else if(specType == "Raman")
-    {
-      dosAlgo->setProperty("SpectrumType", "Raman_Active");
+  double peakWidth = m_uiForm.spPeakWidth->value();
+  dosAlgo->setProperty("PeakWidth", peakWidth);
 
-      double temperature = m_uiForm.spTemperature->value();
-      dosAlgo->setProperty("Temperature", temperature);
-    }
+  double binWidth = m_uiForm.spBinWidth->value();
+  dosAlgo->setProperty("BinWidth", binWidth);
 
-    m_batchAlgoRunner->addAlgorithm(dosAlgo);
+  double zeroThreshold = m_uiForm.spZeroThreshold->value();
+  dosAlgo->setProperty("ZeroThreshold", zeroThreshold);
 
-    // Setup save algorithm if needed
-    if(m_uiForm.ckSave->isChecked())
-    {
-      BatchAlgorithmRunner::AlgorithmRuntimeProps saveProps;
-      saveProps["InputWorkspace"] = m_outputWsName.toStdString();
+  bool scale = m_uiForm.ckScale->isChecked();
+  double scaleFactor = m_uiForm.spScale->value();
+  if (scale)
+    dosAlgo->setProperty("Scale", scaleFactor);
 
-      QString filename = m_outputWsName + ".nxs";
+  // Set spectrum type specific properties
+  if (specType == "DensityOfStates") {
+    dosAlgo->setProperty("SpectrumType", "DOS");
 
-      IAlgorithm_sptr saveAlgo = AlgorithmManager::Instance().create("SaveNexusProcessed");
-      saveAlgo->setProperty("Filename", filename.toStdString());
+    bool crossSectionScale = m_uiForm.ckCrossSectionScale->isChecked();
+    QString crossSectionScaleType = m_uiForm.cbCrossSectionScale->currentText();
+    if (crossSectionScale)
+      dosAlgo->setProperty("ScaleByCrossSection",
+                           crossSectionScaleType.toStdString());
 
-      m_batchAlgoRunner->addAlgorithm(saveAlgo, saveProps);
-    }
+    bool sumContributions = m_uiForm.ckSumContributions->isChecked();
+    dosAlgo->setProperty("SumContributions", sumContributions);
 
-    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(dosAlgoComplete(bool)));
-    m_batchAlgoRunner->executeBatchAsync();
+    std::vector<std::string> selectedIons;
+    auto items = m_uiForm.lwIons->selectedItems();
+    for (auto it = items.begin(); it != items.end(); ++it)
+      selectedIons.push_back((*it)->text().toStdString());
+    dosAlgo->setProperty("Ions", selectedIons);
+  } else if (specType == "IR") {
+    dosAlgo->setProperty("SpectrumType", "IR_Active");
+  } else if (specType == "Raman") {
+    dosAlgo->setProperty("SpectrumType", "Raman_Active");
+
+    double temperature = m_uiForm.spTemperature->value();
+    dosAlgo->setProperty("Temperature", temperature);
   }
 
+  m_batchAlgoRunner->addAlgorithm(dosAlgo);
 
-  /**
-   * Handles completion of the DensityOfStates algorithm.
-   *
-   * @param error If the algorithm failed
-   */
-  void DensityOfStates::dosAlgoComplete(bool error)
-  {
-    disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(dosAlgoComplete(bool)));
+  // Setup save algorithm if needed
+  if (m_uiForm.ckSave->isChecked()) {
+    BatchAlgorithmRunner::AlgorithmRuntimeProps saveProps;
+    saveProps["InputWorkspace"] = m_outputWsName.toStdString();
 
-    if(error)
-      return;
-
-    // Handle spectra plotting
-    if(m_uiForm.ckPlot->isChecked())
-      plotSpectrum(m_outputWsName);
-  }
+    QString filename = m_outputWsName + ".nxs";
 
+    IAlgorithm_sptr saveAlgo =
+        AlgorithmManager::Instance().create("SaveNexusProcessed");
+    saveAlgo->setProperty("Filename", filename.toStdString());
 
-  /**
-   * Handles a new file being selected by the browser.
-   */
-  void DensityOfStates::handleFileChange()
-  {
-    QString filename = m_uiForm.mwInputFile->getFirstFilename();
-
-    // Check if we have a .phonon file
-    QFileInfo fileInfo(filename);
-    bool canDoPartialDoS = fileInfo.suffix() == "phonon";
-
-    // Need a .phonon file for ion contributions
-    if(canDoPartialDoS)
-    {
-      // Load the ion table to populate the list of ions
-      IAlgorithm_sptr ionTableAlgo = AlgorithmManager::Instance().create("DensityOfStates");
-      ionTableAlgo->initialize();
-      ionTableAlgo->setProperty("File", filename.toStdString());
-      ionTableAlgo->setProperty("SpectrumType", "IonTable");
-      ionTableAlgo->setProperty("OutputWorkspace", "__dos_ions");
-
-      m_batchAlgoRunner->addAlgorithm(ionTableAlgo);
-
-      connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(ionLoadComplete(bool)));
-      m_batchAlgoRunner->executeBatchAsync();
-    }
-    else
-    {
-      m_uiForm.lwIons->clear();
-      m_uiForm.ckSumContributions->setChecked(false);
-      m_uiForm.ckCrossSectionScale->setChecked(false);
-    }
-
-    // Enable partial DOS related optons when they can be used
-    m_uiForm.lwIons->setEnabled(canDoPartialDoS);
-    m_uiForm.pbSelectAllIons->setEnabled(canDoPartialDoS);
-    m_uiForm.pbDeselectAllIons->setEnabled(canDoPartialDoS);
-    m_uiForm.ckSumContributions->setEnabled(canDoPartialDoS);
-    m_uiForm.ckCrossSectionScale->setEnabled(canDoPartialDoS);
+    m_batchAlgoRunner->addAlgorithm(saveAlgo, saveProps);
   }
 
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(dosAlgoComplete(bool)));
+  m_batchAlgoRunner->executeBatchAsync();
+}
 
-  /**
-   * Handles the algorithm loading the list of ions in a file
-   * being completed.
-   *
-   * @param error If the algorithm failed
-   */
-  void DensityOfStates::ionLoadComplete(bool error)
-  {
-    disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(ionLoadComplete(bool)));
-
-    if(error)
-      g_log.error("Could not get a list of ions from .phonon file");
-
-    // Get the list of ions from algorithm
-    ITableWorkspace_sptr ionTable = AnalysisDataService::Instance().retrieveWS<ITableWorkspace>("__dos_ions");
-    Column_sptr ionColumn = ionTable->getColumn("Ion");
-    size_t numIons = ionColumn->size();
+/**
+ * Handles completion of the SimulatedDensityOfStates algorithm.
+ *
+ * @param error If the algorithm failed
+ */
+void DensityOfStates::dosAlgoComplete(bool error) {
+  disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+             SLOT(dosAlgoComplete(bool)));
+
+  if (error)
+    return;
+
+  // Handle spectra plotting
+  if (m_uiForm.ckPlot->isChecked())
+    plotSpectrum(m_outputWsName);
+}
 
-    // Remove old ions
+/**
+ * Handles a new file being selected by the browser.
+ */
+void DensityOfStates::handleFileChange() {
+  QString filename = m_uiForm.mwInputFile->getFirstFilename();
+
+  // Check if we have a .phonon file
+  QFileInfo fileInfo(filename);
+  bool canDoPartialDoS = fileInfo.suffix() == "phonon";
+
+  // Need a .phonon file for ion contributions
+  if (canDoPartialDoS) {
+    // Load the ion table to populate the list of ions
+    IAlgorithm_sptr ionTableAlgo =
+        AlgorithmManager::Instance().create("SimulatedDensityOfStates");
+    ionTableAlgo->initialize();
+    ionTableAlgo->setProperty("File", filename.toStdString());
+    ionTableAlgo->setProperty("SpectrumType", "IonTable");
+    ionTableAlgo->setProperty("OutputWorkspace", "__dos_ions");
+
+    m_batchAlgoRunner->addAlgorithm(ionTableAlgo);
+
+    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+            SLOT(ionLoadComplete(bool)));
+    m_batchAlgoRunner->executeBatchAsync();
+  } else {
     m_uiForm.lwIons->clear();
+    m_uiForm.ckSumContributions->setChecked(false);
+    m_uiForm.ckCrossSectionScale->setChecked(false);
+  }
 
-    // Add ions to list
-    for(size_t ion = 0; ion < numIons; ion++)
-    {
-      const std::string ionName = ionColumn->cell<std::string>(ion);
-      m_uiForm.lwIons->addItem(QString::fromStdString(ionName));
-    }
+  // Enable partial DOS related optons when they can be used
+  m_uiForm.lwIons->setEnabled(canDoPartialDoS);
+  m_uiForm.pbSelectAllIons->setEnabled(canDoPartialDoS);
+  m_uiForm.pbDeselectAllIons->setEnabled(canDoPartialDoS);
+  m_uiForm.ckSumContributions->setEnabled(canDoPartialDoS);
+  m_uiForm.ckCrossSectionScale->setEnabled(canDoPartialDoS);
+}
 
-    // Select all ions by default
-    m_uiForm.lwIons->selectAll();
+/**
+ * Handles the algorithm loading the list of ions in a file
+ * being completed.
+ *
+ * @param error If the algorithm failed
+ */
+void DensityOfStates::ionLoadComplete(bool error) {
+  disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+             SLOT(ionLoadComplete(bool)));
+
+  if (error)
+    g_log.error("Could not get a list of ions from .phonon file");
+
+  // Get the list of ions from algorithm
+  ITableWorkspace_sptr ionTable =
+      AnalysisDataService::Instance().retrieveWS<ITableWorkspace>("__dos_ions");
+  Column_sptr ionColumn = ionTable->getColumn("Ion");
+  size_t numIons = ionColumn->size();
+
+  // Remove old ions
+  m_uiForm.lwIons->clear();
+
+  // Add ions to list
+  for (size_t ion = 0; ion < numIons; ion++) {
+    const std::string ionName = ionColumn->cell<std::string>(ion);
+    m_uiForm.lwIons->addItem(QString::fromStdString(ionName));
   }
 
+  // Select all ions by default
+  m_uiForm.lwIons->selectAll();
+}
 
-  /**
-   * Set the data selectors to use the default save directory
-   * when browsing for input files.
-   *
-   * @param settings :: The settings to loading into the interface
-   */
-  void DensityOfStates::loadSettings(const QSettings& settings)
-  {
-    m_uiForm.mwInputFile->readSettings(settings.group());
-  }
+/**
+ * Set the data selectors to use the default save directory
+ * when browsing for input files.
+ *
+ * @param settings :: The settings to loading into the interface
+ */
+void DensityOfStates::loadSettings(const QSettings &settings) {
+  m_uiForm.mwInputFile->readSettings(settings.group());
+}
 
 } // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Elwin.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Elwin.cpp
index 9e3c233044a3e9d9280a6b2a936b404bc7b7cf2c..f5f70ce464622991a9cddbba855de36d7ac57862 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Elwin.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Elwin.cpp
@@ -22,7 +22,7 @@ namespace CustomInterfaces
 namespace IDA
 {
   Elwin::Elwin(QWidget * parent) :
-    IDATab(parent),
+    IndirectDataAnalysisTab(parent),
     m_elwTree(NULL)
   {
     m_uiForm.setupUi(parent);
@@ -153,8 +153,8 @@ namespace IDA
 
     if(m_blnManager->value(m_properties["BackgroundSubtraction"]))
     {
-      elwinMultAlg->setProperty("BackgroundRangeStart", boost::lexical_cast<std::string>(m_dblManager->value(m_properties["BackgroundStart"])));
-      elwinMultAlg->setProperty("BackgroundRangeEnd", boost::lexical_cast<std::string>(m_dblManager->value(m_properties["BackgroundEnd"])));
+      elwinMultAlg->setProperty("BackgroundRangeStart", m_dblManager->value(m_properties["BackgroundStart"]));
+      elwinMultAlg->setProperty("BackgroundRangeEnd", m_dblManager->value(m_properties["BackgroundEnd"]));
     }
 
     if(m_blnManager->value(m_properties["Normalise"]))
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISCalibration.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISCalibration.cpp
index d1ad9e91dd2a6b0b0f09f76ae665f749c4ef269a..b5611286e01eea33d0b823f1c7028b39764d1d3c 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISCalibration.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISCalibration.cpp
@@ -169,21 +169,20 @@ namespace CustomInterfaces
     QString outputWorkspaceNameStem = firstFileInfo.baseName() + "_" + getInstrumentConfiguration()->getAnalyserName()
                                       + getInstrumentConfiguration()->getReflectionName();
 
-    QString calibrationWsName = outputWorkspaceNameStem;
+    m_outputCalibrationName = outputWorkspaceNameStem;
     if(filenameList.size() > 1)
-        calibrationWsName += "_multi";
-    calibrationWsName += "_calib";
+        m_outputCalibrationName += "_multi";
+    m_outputCalibrationName += "_calib";
 
     // Configure the calibration algorithm
     IAlgorithm_sptr calibrationAlg = AlgorithmManager::Instance().create("IndirectCalibration");
     calibrationAlg->initialize();
 
     calibrationAlg->setProperty("InputFiles", filenames.toStdString());
-    calibrationAlg->setProperty("OutputWorkspace", calibrationWsName.toStdString());
+    calibrationAlg->setProperty("OutputWorkspace", m_outputCalibrationName.toStdString());
     calibrationAlg->setProperty("DetectorRange", instDetectorRange.toStdString());
     calibrationAlg->setProperty("PeakRange", peakRange.toStdString());
     calibrationAlg->setProperty("BackgroundRange", backgroundRange.toStdString());
-    calibrationAlg->setProperty("Plot", m_uiForm.ckPlot->isChecked());
 
     if(m_uiForm.ckScale->isChecked())
     {
@@ -191,32 +190,24 @@ namespace CustomInterfaces
       calibrationAlg->setProperty("ScaleFactor", scale);
     }
 
+    bool save = m_uiForm.ckSave->isChecked();
+
     m_batchAlgoRunner->addAlgorithm(calibrationAlg);
 
     // Initially take the calibration workspace as the result
-    m_pythonExportWsName = calibrationWsName.toStdString();
-
-    // Properties for algorithms that use data from calibration as an input
-    BatchAlgorithmRunner::AlgorithmRuntimeProps inputFromCalProps;
-    inputFromCalProps["InputWorkspace"] = calibrationWsName.toStdString();
+    m_pythonExportWsName = m_outputCalibrationName.toStdString();
 
     // Add save algorithm to queue if ticked
-    if( m_uiForm.ckSave->isChecked() )
-    {
-      IAlgorithm_sptr saveAlg = AlgorithmManager::Instance().create("SaveNexusProcessed");
-      saveAlg->initialize();
-      saveAlg->setProperty("Filename", calibrationWsName.toStdString() + ".nxs");
-
-      m_batchAlgoRunner->addAlgorithm(saveAlg, inputFromCalProps);
-    }
+    if(save)
+      addSaveWorkspaceToQueue(m_outputCalibrationName);
 
     // Configure the resolution algorithm
     if(m_uiForm.ckCreateResolution->isChecked())
     {
-      QString resolutionWsName = outputWorkspaceNameStem;
+      m_outputResolutionName = outputWorkspaceNameStem;
       if(filenameList.size() > 1)
-        resolutionWsName += "_multi";
-      resolutionWsName += "_res";
+        m_outputResolutionName += "_multi";
+      m_outputResolutionName += "_res";
 
       QString resDetectorRange = QString::number(m_dblManager->value(m_properties["ResSpecMin"])) + ","
           + QString::number(m_dblManager->value(m_properties["ResSpecMax"]));
@@ -229,7 +220,6 @@ namespace CustomInterfaces
           + QString::number(m_dblManager->value(m_properties["ResEnd"]));
 
       bool smooth = m_uiForm.ckSmoothResolution->isChecked();
-      bool save = m_uiForm.ckSave->isChecked();
 
       IAlgorithm_sptr resAlg = AlgorithmManager::Instance().create("IndirectResolution", -1);
       resAlg->initialize();
@@ -241,20 +231,14 @@ namespace CustomInterfaces
       resAlg->setProperty("RebinParam", rebinString.toStdString());
       resAlg->setProperty("DetectorRange", resDetectorRange.toStdString());
       resAlg->setProperty("BackgroundRange", background.toStdString());
-      resAlg->setProperty("Save", save);
 
       if(m_uiForm.ckResolutionScale->isChecked())
         resAlg->setProperty("ScaleFactor", m_uiForm.spScale->value());
 
       if(smooth)
-      {
-        resAlg->setProperty("OutputWorkspace", resolutionWsName.toStdString() + "_pre_smooth");
-      }
+        resAlg->setProperty("OutputWorkspace", m_outputResolutionName.toStdString() + "_pre_smooth");
       else
-      {
-        resAlg->setProperty("OutputWorkspace", resolutionWsName.toStdString());
-        resAlg->setProperty("Plot", m_uiForm.ckPlot->isChecked());
-      }
+        resAlg->setProperty("OutputWorkspace", m_outputResolutionName.toStdString());
 
       m_batchAlgoRunner->addAlgorithm(resAlg);
 
@@ -262,44 +246,45 @@ namespace CustomInterfaces
       {
         IAlgorithm_sptr smoothAlg = AlgorithmManager::Instance().create("WienerSmooth");
         smoothAlg->initialize();
-        smoothAlg->setProperty("OutputWorkspace", resolutionWsName.toStdString());
+        smoothAlg->setProperty("OutputWorkspace", m_outputResolutionName.toStdString());
 
         BatchAlgorithmRunner::AlgorithmRuntimeProps smoothAlgInputProps;
-        smoothAlgInputProps["InputWorkspace"] = resolutionWsName.toStdString() + "_pre_smooth";
+        smoothAlgInputProps["InputWorkspace"] = m_outputResolutionName.toStdString() + "_pre_smooth";
 
         m_batchAlgoRunner->addAlgorithm(smoothAlg, smoothAlgInputProps);
-
-        if(save)
-        {
-          IAlgorithm_sptr saveAlg = AlgorithmManager::Instance().create("SaveNexusProcessed");
-          saveAlg->initialize();
-
-          BatchAlgorithmRunner::AlgorithmRuntimeProps inputFromSmoothProps;
-          inputFromSmoothProps["InputWorkspace"] = calibrationWsName.toStdString();
-          saveAlg->setProperty("Filename", resolutionWsName.toStdString() + ".nxs");
-
-          m_batchAlgoRunner->addAlgorithm(saveAlg, inputFromSmoothProps);
-        }
       }
 
+      if(save)
+        addSaveWorkspaceToQueue(m_outputResolutionName);
+
       // When creating resolution file take the resolution workspace as the result
-      m_pythonExportWsName = resolutionWsName.toStdString();
+      m_pythonExportWsName = m_outputResolutionName.toStdString();
     }
 
     m_batchAlgoRunner->executeBatchAsync();
   }
 
+  /*
+   * Handle completion of the calibration and resolution algorithms.
+   *
+   * @param error If the algorithms failed.
+   */
   void ISISCalibration::algorithmComplete(bool error)
   {
     if(error)
       return;
 
-    // Plot the smoothed workspace if required
-    if(m_uiForm.ckSmoothResolution->isChecked() && m_uiForm.ckPlot->isChecked())
+    if(m_uiForm.ckPlot->isChecked())
     {
+      plotTimeBin(m_outputCalibrationName);
+
       QStringList plotWorkspaces;
-      plotWorkspaces << QString::fromStdString(m_pythonExportWsName)
-                     << QString::fromStdString(m_pythonExportWsName) + "_pre_smooth";
+      if(m_uiForm.ckCreateResolution->isChecked())
+      {
+        plotWorkspaces << m_outputResolutionName;
+        if(m_uiForm.ckSmoothResolution->isChecked())
+          plotWorkspaces << m_outputResolutionName + "_pre_smooth";
+      }
       plotSpectrum(plotWorkspaces);
     }
   }
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISDiagnostics.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISDiagnostics.cpp
index f2666a2587724e0a400487777b78b4067974bc56..cca30c373762b5ee2bde38bc143c0cf148456bf9 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISDiagnostics.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISDiagnostics.cpp
@@ -107,9 +107,6 @@ namespace CustomInterfaces
 
     connect(m_blnManager, SIGNAL(valueChanged(QtProperty*, bool)), this, SLOT(updatePreviewPlot()));
 
-    // Update preview plot when slice algorithm completes
-    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(sliceAlgDone(bool)));
-
     // Set default UI state
     sliceTwoRanges(0, false);
     m_uiForm.ckUseCalibration->setChecked(false);
@@ -147,8 +144,6 @@ namespace CustomInterfaces
     sliceAlg->setProperty("InputFiles", filenames.toStdString());
     sliceAlg->setProperty("SpectraRange", spectraRange);
     sliceAlg->setProperty("PeakRange", peakRange);
-    sliceAlg->setProperty("Plot", m_uiForm.ckPlot->isChecked());
-    sliceAlg->setProperty("Save", m_uiForm.ckSave->isChecked());
     sliceAlg->setProperty("OutputNameSuffix", suffix.toStdString());
     sliceAlg->setProperty("OutputWorkspace", "IndirectDiagnostics_Workspaces");
 
@@ -166,6 +161,7 @@ namespace CustomInterfaces
       sliceAlg->setProperty("BackgroundRange", backgroundRange);
     }
 
+    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(algorithmComplete(bool)));
     runAlgorithm(sliceAlg);
   }
 
@@ -205,6 +201,42 @@ namespace CustomInterfaces
     return !isError;
   }
 
+  /**
+   * Handles completion of the algorithm.
+   *
+   * @param error If the algorithm failed
+   */
+  void ISISDiagnostics::algorithmComplete(bool error)
+  {
+    disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(algorithmComplete(bool)));
+
+    if(error)
+      return;
+
+    WorkspaceGroup_sptr sliceOutputGroup = AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>("IndirectDiagnostics_Workspaces");
+    if(sliceOutputGroup->size() == 0)
+    {
+      g_log.warning("No result workspaces, cannot plot preview.");
+      return;
+    }
+
+    for(size_t i = 0; i < sliceOutputGroup->size(); i++)
+    {
+      QString wsName = QString::fromStdString(sliceOutputGroup->getItem(i)->name());
+
+      if(m_uiForm.ckPlot->isChecked())
+        plotSpectrum(wsName);
+
+      if(m_uiForm.ckSave->isChecked())
+        addSaveWorkspaceToQueue(wsName);
+    }
+
+    // Update the preview plots
+    sliceAlgDone(false);
+
+    m_batchAlgoRunner->executeBatchAsync();
+  }
+
   /**
    * Sets default spectra, peak and background ranges.
    */
@@ -365,8 +397,6 @@ namespace CustomInterfaces
     sliceAlg->setProperty("InputFiles", filenames.toStdString());
     sliceAlg->setProperty("SpectraRange", spectraRange);
     sliceAlg->setProperty("PeakRange", peakRange);
-    sliceAlg->setProperty("Plot", false);
-    sliceAlg->setProperty("Save", false);
     sliceAlg->setProperty("OutputNameSuffix", suffix.toStdString());
     sliceAlg->setProperty("OutputWorkspace", "IndirectDiagnostics_Workspaces");
 
@@ -386,7 +416,12 @@ namespace CustomInterfaces
 
     // Stop the algorithm conflicting with it's self if it is already running
     if(m_batchAlgoRunner->queueLength() == 0)
+    {
+      // Update preview plot when slice algorithm completes
+      connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(sliceAlgDone(bool)));
+
       runAlgorithm(sliceAlg);
+    }
   }
 
   /**
@@ -396,6 +431,8 @@ namespace CustomInterfaces
    */
   void ISISDiagnostics::sliceAlgDone(bool error)
   {
+    disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(sliceAlgDone(bool)));
+
     if(error)
       return;
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISEnergyTransfer.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISEnergyTransfer.cpp
index adfd4246a5ed9fbb41e0c495093fc33f6aa8e71d..4c213b4662bd641eaaa571e0a739a850731cbc12 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISEnergyTransfer.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ISISEnergyTransfer.cpp
@@ -118,6 +118,7 @@ namespace CustomInterfaces
     reductionAlg->setProperty("InputFiles", files.toStdString());
 
     reductionAlg->setProperty("SumFiles", m_uiForm.ckSumFiles->isChecked());
+    reductionAlg->setProperty("LoadLogFiles", m_uiForm.ckLoadLogFiles->isChecked());
 
     if(m_uiForm.ckUseCalib->isChecked())
     {
@@ -163,7 +164,7 @@ namespace CustomInterfaces
 
     if(grouping.first == "Workspace")
       reductionRuntimeProps["GroupingWorkspace"] = grouping.second.toStdString();
-    else if(grouping.second == "File")
+    else if(grouping.first == "File")
       reductionAlg->setProperty("MapFile", grouping.second.toStdString());
 
     reductionAlg->setProperty("FoldMultipleFrames", m_uiForm.ckFold->isChecked());
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectBayes.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectBayes.cpp
index 5b804a41d51346611690e28960ba8c15dab8bbc5..ac7d94624d70411b5838f336c552674004b85185 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectBayes.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectBayes.cpp
@@ -1,7 +1,6 @@
 #include "MantidQtAPI/HelpWindow.h"
 #include "MantidQtAPI/ManageUserDirectories.h"
 #include "MantidQtCustomInterfaces/Indirect/IndirectBayes.h"
-#include "MantidQtCustomInterfaces/Indirect/JumpFit.h"
 #include "MantidQtCustomInterfaces/Indirect/Quasi.h"
 #include "MantidQtCustomInterfaces/Indirect/ResNorm.h"
 #include "MantidQtCustomInterfaces/Indirect/Stretch.h"
@@ -9,56 +8,56 @@
 #include <QDesktopServices>
 #include <QUrl>
 
-//Add this class to the list of specialised dialogs in this namespace
-namespace MantidQt
-{
-  namespace CustomInterfaces
-  {
-    DECLARE_SUBWINDOW(IndirectBayes)
-  }
+// Add this class to the list of specialised dialogs in this namespace
+namespace MantidQt {
+namespace CustomInterfaces {
+DECLARE_SUBWINDOW(IndirectBayes)
+}
 }
 
 using namespace MantidQt::CustomInterfaces;
 
-IndirectBayes::IndirectBayes(QWidget *parent) : UserSubWindow(parent),
-	m_changeObserver(*this, &IndirectBayes::handleDirectoryChange)
-{
-	m_uiForm.setupUi(this);
+IndirectBayes::IndirectBayes(QWidget *parent)
+    : UserSubWindow(parent),
+      m_changeObserver(*this, &IndirectBayes::handleDirectoryChange) {
+  m_uiForm.setupUi(this);
 
   // Connect Poco Notification Observer
   Mantid::Kernel::ConfigService::Instance().addObserver(m_changeObserver);
 
-	//insert each tab into the interface on creation
-	m_bayesTabs.insert(std::make_pair(RES_NORM, new ResNorm(m_uiForm.indirectBayesTabs->widget(RES_NORM))));
-	m_bayesTabs.insert(std::make_pair(QUASI, new Quasi(m_uiForm.indirectBayesTabs->widget(QUASI))));
-	m_bayesTabs.insert(std::make_pair(STRETCH, new Stretch(m_uiForm.indirectBayesTabs->widget(STRETCH))));
-	m_bayesTabs.insert(std::make_pair(JUMP_FIT, new JumpFit(m_uiForm.indirectBayesTabs->widget(JUMP_FIT))));
-
-	//Connect each tab to the actions available in this GUI
-	std::map<unsigned int, IndirectBayesTab*>::iterator iter;
-	for (iter = m_bayesTabs.begin(); iter != m_bayesTabs.end(); ++iter)
-	{
-		connect(iter->second, SIGNAL(runAsPythonScript(const QString&, bool)), this, SIGNAL(runAsPythonScript(const QString&, bool)));
-		connect(iter->second, SIGNAL(showMessageBox(const QString&)), this, SLOT(showMessageBox(const QString&)));
-	}
-
-	loadSettings();
-
-	//Connect statements for the buttons shared between all tabs on the Indirect Bayes interface
-	connect(m_uiForm.pbRun, SIGNAL(clicked()), this, SLOT(runClicked()));
-	connect(m_uiForm.pbHelp, SIGNAL(clicked()), this, SLOT(helpClicked()));
-	connect(m_uiForm.pbManageDirs, SIGNAL(clicked()), this, SLOT(manageUserDirectories()));
-}
+  // insert each tab into the interface on creation
+  m_bayesTabs.insert(std::make_pair(
+      RES_NORM, new ResNorm(m_uiForm.indirectBayesTabs->widget(RES_NORM))));
+  m_bayesTabs.insert(std::make_pair(
+      QUASI, new Quasi(m_uiForm.indirectBayesTabs->widget(QUASI))));
+  m_bayesTabs.insert(std::make_pair(
+      STRETCH, new Stretch(m_uiForm.indirectBayesTabs->widget(STRETCH))));
+
+  // Connect each tab to the actions available in this GUI
+  std::map<unsigned int, IndirectBayesTab *>::iterator iter;
+  for (iter = m_bayesTabs.begin(); iter != m_bayesTabs.end(); ++iter) {
+    connect(iter->second, SIGNAL(runAsPythonScript(const QString &, bool)),
+            this, SIGNAL(runAsPythonScript(const QString &, bool)));
+    connect(iter->second, SIGNAL(showMessageBox(const QString &)), this,
+            SLOT(showMessageBox(const QString &)));
+  }
+
+  loadSettings();
 
-void IndirectBayes::initLayout()
-{
+  // Connect statements for the buttons shared between all tabs on the Indirect
+  // Bayes interface
+  connect(m_uiForm.pbRun, SIGNAL(clicked()), this, SLOT(runClicked()));
+  connect(m_uiForm.pbHelp, SIGNAL(clicked()), this, SLOT(helpClicked()));
+  connect(m_uiForm.pbManageDirs, SIGNAL(clicked()), this,
+          SLOT(manageUserDirectories()));
 }
 
+void IndirectBayes::initLayout() {}
+
 /**
  * @param :: the detected close event
  */
-void IndirectBayes::closeEvent(QCloseEvent*)
-{
+void IndirectBayes::closeEvent(QCloseEvent *) {
   Mantid::Kernel::ConfigService::Instance().removeObserver(m_changeObserver);
 }
 
@@ -67,71 +66,69 @@ void IndirectBayes::closeEvent(QCloseEvent*)
  *
  * @param pNf :: notification
  */
-void IndirectBayes::handleDirectoryChange(Mantid::Kernel::ConfigValChangeNotification_ptr pNf)
-{
+void IndirectBayes::handleDirectoryChange(
+    Mantid::Kernel::ConfigValChangeNotification_ptr pNf) {
   std::string key = pNf->key();
 
-  if ( key == "defaultsave.directory" )
+  if (key == "defaultsave.directory")
     loadSettings();
 }
 
 /**
  * Load the setting for each tab on the interface.
  *
- * This includes setting the default browsing directory to be the default save directory.
+ * This includes setting the default browsing directory to be the default save
+ *directory.
  */
-void IndirectBayes::loadSettings()
-{
+void IndirectBayes::loadSettings() {
   QSettings settings;
   QString settingsGroup = "CustomInterfaces/IndirectAnalysis/";
-  QString saveDir = QString::fromStdString(Mantid::Kernel::ConfigService::Instance().getString("defaultsave.directory"));
+  QString saveDir = QString::fromStdString(
+      Mantid::Kernel::ConfigService::Instance().getString(
+          "defaultsave.directory"));
 
   settings.beginGroup(settingsGroup + "ProcessedFiles");
   settings.setValue("last_directory", saveDir);
 
-	std::map<unsigned int, IndirectBayesTab*>::iterator iter;
-	for (iter = m_bayesTabs.begin(); iter != m_bayesTabs.end(); ++iter)
-	{
-  	iter->second->loadSettings(settings);
+  std::map<unsigned int, IndirectBayesTab *>::iterator iter;
+  for (iter = m_bayesTabs.begin(); iter != m_bayesTabs.end(); ++iter) {
+    iter->second->loadSettings(settings);
   }
 
   settings.endGroup();
 }
 
-
 /**
  * Slot to run the underlying algorithm code based on the currently selected
  * tab.
- * 
+ *
  * This method checks the tabs validate method is passing before calling
  * the run method.
  */
-void IndirectBayes::runClicked()
-{
-	int tabIndex = m_uiForm.indirectBayesTabs->currentIndex();
-
-	if(m_bayesTabs[tabIndex]->validateTab())
-	{
-		m_bayesTabs[tabIndex]->runTab();
-	}
+void IndirectBayes::runClicked() {
+  int tabIndex = m_uiForm.indirectBayesTabs->currentIndex();
+
+  if (m_bayesTabs[tabIndex]->validateTab()) {
+    m_bayesTabs[tabIndex]->runTab();
+  }
 }
 
 /**
  * Slot to open a new browser window and navigate to the help page
  * on the wiki for the currently selected tab.
  */
-void IndirectBayes::helpClicked()
-{
-  MantidQt::API::HelpWindow::showCustomInterface(NULL, QString("Indirect_Bayes"));
+void IndirectBayes::helpClicked() {
+  MantidQt::API::HelpWindow::showCustomInterface(NULL,
+                                                 QString("Indirect_Bayes"));
 }
 
 /**
  * Slot to show the manage user dicrectories dialog when the user clicks
  * the button on the interface.
  */
-void IndirectBayes::manageUserDirectories()
-{
-  MantidQt::API::ManageUserDirectories *ad = new MantidQt::API::ManageUserDirectories(this);
+void IndirectBayes::manageUserDirectories() {
+  MantidQt::API::ManageUserDirectories *ad =
+      new MantidQt::API::ManageUserDirectories(this);
   ad->show();
   ad->setFocus();
 }
@@ -139,14 +136,11 @@ void IndirectBayes::manageUserDirectories()
 /**
  * Slot to wrap the protected showInformationBox method defined
  * in UserSubWindow and provide access to composed tabs.
- * 
+ *
  * @param message :: The message to display in the message box
  */
-void IndirectBayes::showMessageBox(const QString& message)
-{
+void IndirectBayes::showMessageBox(const QString &message) {
   showInformationBox(message);
 }
 
-IndirectBayes::~IndirectBayes()
-{
-}
+IndirectBayes::~IndirectBayes() {}
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectBayesTab.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectBayesTab.cpp
index 2b9891b2d865564d1cd3b8bca7f27348a956d6ee..c3e169fbbdd19f6d491fc828064ceb411188eb64 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectBayesTab.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectBayesTab.cpp
@@ -6,115 +6,35 @@
 
 using MantidQt::MantidWidgets::RangeSelector;
 
-namespace MantidQt
-{
-	namespace CustomInterfaces
-	{
-
-    //----------------------------------------------------------------------------------------------
-    /** Constructor
-     */
-    IndirectBayesTab::IndirectBayesTab(QWidget * parent) : IndirectTab(parent),
-      m_propTree(new QtTreePropertyBrowser())
-    {
-      m_propTree->setFactoryForManager(m_dblManager, m_dblEdFac);
-
-      // Connect double maneger signals
-      connect(m_dblManager, SIGNAL(valueChanged(QtProperty*, double)), this, SLOT(updateProperties(QtProperty*, double)));
-    }
-
-    //----------------------------------------------------------------------------------------------
-    /** Destructor
-     */
-    IndirectBayesTab::~IndirectBayesTab()
-    {
-    }
-
-    /**
-     * Emits a signal to run a python script using the method in the parent
-     * UserSubWindow
-     *
-     * @param pyInput :: A string of python code to execute
-     */
-    void IndirectBayesTab::runPythonScript(const QString& pyInput)
-    {
-      emit runAsPythonScript(pyInput, true);
-    }
-
-    /**
-     * Checks the workspace's intrument for a resolution parameter to use as
-     * a default for the energy range on the mini plot
-     *
-     * @param workspace :: Name of the workspace to use
-     * @param res :: The retrieved values for the resolution parameter (if one was found)
-     */
-    bool IndirectBayesTab::getInstrumentResolution(const QString& workspace, QPair<double, double> & res)
-    {
-      auto ws = Mantid::API::AnalysisDataService::Instance().retrieveWS<const Mantid::API::MatrixWorkspace>(workspace.toStdString());
-      return getInstrumentResolution(ws, res);
-    }
-
-    /**
-     * Checks the workspace's intrument for a resolution parameter to use as
-     * a default for the energy range on the mini plot
-     *
-     * @param ws :: Pointer to the workspace to use
-     * @param res :: The retrieved values for the resolution parameter (if one was found)
-     */
-    bool IndirectBayesTab::getInstrumentResolution(Mantid::API::MatrixWorkspace_const_sptr ws, QPair<double, double> & res)
-    {
-      auto inst = ws->getInstrument();
-      auto analyser = inst->getStringParameter("analyser");
-
-      if(analyser.size() > 0)
-      {
-        auto comp = inst->getComponentByName(analyser[0]);
-        auto params = comp->getNumberParameter("resolution", true);
-
-        //set the default instrument resolution
-        if(params.size() > 0)
-        {
-          res = qMakePair(-params[0], params[0]);
-          return true;
-        }
-      }
-
-      return false;
-    }
-
-    /**
-     * Set the position of the lower guide on the mini plot
-     *
-     * @param rs :: Range selector to update
-     * @param lower :: The lower guide property in the property browser
-     * @param upper :: The upper guide property in the property browser
-     * @param value :: The value of the lower guide
-     */
-    void IndirectBayesTab::updateLowerGuide(RangeSelector* rs, QtProperty* lower, QtProperty* upper, double value)
-    {
-      // Check if the user is setting the max less than the min
-      if(value > m_dblManager->value(upper))
-        m_dblManager->setValue(lower, m_dblManager->value(upper));
-      else
-        rs->setMinimum(value);
-    }
-
-    /**
-     * Set the position of the upper guide on the mini plot
-     *
-     * @param rs :: Range selector to update
-     * @param lower :: The lower guide property in the property browser
-     * @param upper :: The upper guide property in the property browser
-     * @param value :: The value of the upper guide
-     */
-    void IndirectBayesTab::updateUpperGuide(RangeSelector* rs, QtProperty* lower, QtProperty* upper, double value)
-    {
-      // Check if the user is setting the min greater than the max
-      if(value < m_dblManager->value(lower))
-        m_dblManager->setValue(upper, m_dblManager->value(lower));
-      else
-        rs->setMaximum(value);
-    }
-
-  }
+namespace MantidQt {
+namespace CustomInterfaces {
+
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+IndirectBayesTab::IndirectBayesTab(QWidget *parent)
+    : IndirectTab(parent), m_propTree(new QtTreePropertyBrowser()) {
+  m_propTree->setFactoryForManager(m_dblManager, m_dblEdFac);
+
+  // Connect double maneger signals
+  connect(m_dblManager, SIGNAL(valueChanged(QtProperty *, double)), this,
+          SLOT(updateProperties(QtProperty *, double)));
+}
+
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+IndirectBayesTab::~IndirectBayesTab() {}
+
+/**
+ * Emits a signal to run a python script using the method in the parent
+ * UserSubWindow
+ *
+ * @param pyInput :: A string of python code to execute
+ */
+void IndirectBayesTab::runPythonScript(const QString &pyInput) {
+  emit runAsPythonScript(pyInput, true);
+}
+
+}
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectCorrections.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectCorrections.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ab988fcc81353d0eb31f67bbc6bfba9b90cb8d1e
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectCorrections.cpp
@@ -0,0 +1,165 @@
+//----------------------
+// Includes
+//----------------------
+#include "MantidQtCustomInterfaces/Indirect/IndirectCorrections.h"
+
+#include "MantidQtCustomInterfaces/Indirect/CalculatePaalmanPings.h"
+#include "MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.h"
+#include "MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.h"
+
+#include "MantidQtAPI/HelpWindow.h"
+#include "MantidQtAPI/ManageUserDirectories.h"
+
+#include "MantidAPI/AnalysisDataService.h"
+
+#include <QDesktopServices>
+#include <QUrl>
+
+namespace MantidQt
+{
+namespace CustomInterfaces
+{
+  // Add this class to the list of specialised dialogs in this namespace
+  DECLARE_SUBWINDOW(IndirectCorrections)
+
+  /**
+   * Constructor.
+   *
+   * @param parent :: the parent QWidget.
+   */
+  IndirectCorrections::IndirectCorrections(QWidget *parent) :
+    UserSubWindow(parent),
+    m_changeObserver(*this, &IndirectCorrections::handleDirectoryChange)
+  {
+    m_uiForm.setupUi(this);
+
+    // Allows us to get a handle on a tab using an enum, for example "m_tabs[ELWIN]".
+    // All tabs MUST appear here to be shown in interface.
+    // We make the assumption that each map key corresponds to the order in which the tabs appear.
+    m_tabs.insert(std::make_pair(CALC_CORR,  new CalculatePaalmanPings(m_uiForm.twTabs->widget(CALC_CORR))));
+    m_tabs.insert(std::make_pair(APPLY_CORR, new ApplyPaalmanPings(m_uiForm.twTabs->widget(APPLY_CORR))));
+    m_tabs.insert(std::make_pair(ABSORPTION_CORRECTIONS, new AbsorptionCorrections(m_uiForm.twTabs->widget(ABSORPTION_CORRECTIONS))));
+  }
+
+  /**
+   * @param :: the detected close event
+   */
+  void IndirectCorrections::closeEvent(QCloseEvent*)
+  {
+    Mantid::Kernel::ConfigService::Instance().removeObserver(m_changeObserver);
+  }
+
+  /**
+   * Handles a change in directory.
+   *
+   * @param pNf :: notification
+   */
+  void IndirectCorrections::handleDirectoryChange(Mantid::Kernel::ConfigValChangeNotification_ptr pNf)
+  {
+    std::string key = pNf->key();
+
+    if ( key == "defaultsave.directory" )
+      loadSettings();
+  }
+
+  /**
+   * Initialised the layout of the interface.  MUST be called.
+   */
+  void IndirectCorrections::initLayout()
+  {
+    // Connect Poco Notification Observer
+    Mantid::Kernel::ConfigService::Instance().addObserver(m_changeObserver);
+
+    // Set up all tabs
+    for(auto tab = m_tabs.begin(); tab != m_tabs.end(); ++tab)
+    {
+      tab->second->setupTab();
+      connect(tab->second, SIGNAL(runAsPythonScript(const QString&, bool)), this, SIGNAL(runAsPythonScript(const QString&, bool)));
+      connect(tab->second, SIGNAL(showMessageBox(const QString&)), this, SLOT(showMessageBox(const QString&)));
+    }
+
+    connect(m_uiForm.pbPythonExport, SIGNAL(clicked()), this, SLOT(exportTabPython()));
+    connect(m_uiForm.pbHelp, SIGNAL(clicked()), this, SLOT(help()));
+    connect(m_uiForm.pbRun, SIGNAL(clicked()), this, SLOT(run()));
+    connect(m_uiForm.pbManageDirs, SIGNAL(clicked()), this, SLOT(openDirectoryDialog()));
+  }
+
+  /**
+   * Allow Python to be called locally.
+   */
+  void IndirectCorrections::initLocalPython()
+  {
+    QString pyInput = "from mantid.simpleapi import *";
+    QString pyOutput = runPythonCode(pyInput).trimmed();
+    loadSettings();
+  }
+
+  /**
+   * Load the settings saved for this interface.
+   */
+  void IndirectCorrections::loadSettings()
+  {
+    QSettings settings;
+    QString settingsGroup = "CustomInterfaces/IndirectAnalysis/";
+    QString saveDir = QString::fromStdString(Mantid::Kernel::ConfigService::Instance().getString("defaultsave.directory"));
+
+    settings.beginGroup(settingsGroup + "ProcessedFiles");
+    settings.setValue("last_directory", saveDir);
+
+    // Load each tab's settings.
+    auto tab = m_tabs.begin();
+    for( ; tab != m_tabs.end(); ++tab )
+      tab->second->loadTabSettings(settings);
+
+    settings.endGroup();
+  }
+
+  /**
+   * Private slot, called when the Run button is pressed.  Runs current tab.
+   */
+  void IndirectCorrections::run()
+  {
+    const unsigned int currentTab = m_uiForm.twTabs->currentIndex();
+    m_tabs[currentTab]->runTab();
+  }
+
+  /**
+   * Opens a directory dialog.
+   */
+  void IndirectCorrections::openDirectoryDialog()
+  {
+    MantidQt::API::ManageUserDirectories *ad = new MantidQt::API::ManageUserDirectories(this);
+    ad->show();
+    ad->setFocus();
+  }
+
+  /**
+   * Opens the Mantid Wiki web page of the current tab.
+   */
+  void IndirectCorrections::help()
+  {
+    MantidQt::API::HelpWindow::showCustomInterface(NULL, QString("Indirect_Corrections"));
+  }
+
+  /**
+   * Handles exporting a Python script for the current tab.
+   */
+  void IndirectCorrections::exportTabPython()
+  {
+    unsigned int currentTab = m_uiForm.twTabs->currentIndex();
+    m_tabs[currentTab]->exportPythonScript();
+  }
+
+  /**
+   * Slot to wrap the protected showInformationBox method defined
+   * in UserSubWindow and provide access to composed tabs.
+   *
+   * @param message The message to display in the message box
+   */
+  void IndirectCorrections::showMessageBox(const QString& message)
+  {
+    showInformationBox(message);
+  }
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDataAnalysis.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDataAnalysis.cpp
index 927466e1bc11a887420308535eea620d1ed1bd5c..65a320526006333cb9a84f7b38a33233b9d537a7 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDataAnalysis.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDataAnalysis.cpp
@@ -3,15 +3,12 @@
 //----------------------
 #include "MantidQtCustomInterfaces/Indirect/IndirectDataAnalysis.h"
 
-// IDATab subclasses:
 #include "MantidQtCustomInterfaces/Indirect/Elwin.h"
 #include "MantidQtCustomInterfaces/Indirect/MSDFit.h"
 #include "MantidQtCustomInterfaces/Indirect/Iqt.h"
 #include "MantidQtCustomInterfaces/Indirect/IqtFit.h"
+#include "MantidQtCustomInterfaces/Indirect/JumpFit.h"
 #include "MantidQtCustomInterfaces/Indirect/ConvFit.h"
-#include "MantidQtCustomInterfaces/Indirect/CalcCorr.h"
-#include "MantidQtCustomInterfaces/Indirect/ApplyCorr.h"
-#include "MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.h"
 
 #include "MantidQtAPI/HelpWindow.h"
 #include "MantidQtAPI/ManageUserDirectories.h"
@@ -21,159 +18,157 @@
 #include <QDesktopServices>
 #include <QUrl>
 
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-namespace IDA
-{
-  // Add this class to the list of specialised dialogs in this namespace
-  DECLARE_SUBWINDOW(IndirectDataAnalysis)
-
-  /**
-   * Constructor.
-   *
-   * @param parent :: the parent QWidget.
-   */
-  IndirectDataAnalysis::IndirectDataAnalysis(QWidget *parent) :
-    UserSubWindow(parent),
-    m_valInt(NULL), m_valDbl(NULL),
-    m_changeObserver(*this, &IndirectDataAnalysis::handleDirectoryChange)
-  {
-    m_uiForm.setupUi(this);
-
-    // Allows us to get a handle on a tab using an enum, for example "m_tabs[ELWIN]".
-    // All tabs MUST appear here to be shown in interface.
-    // We make the assumption that each map key corresponds to the order in which the tabs appear.
-    m_tabs.insert(std::make_pair(ELWIN,      new Elwin(m_uiForm.twIDATabs->widget(ELWIN))));
-    m_tabs.insert(std::make_pair(MSD_FIT,    new MSDFit(m_uiForm.twIDATabs->widget(MSD_FIT))));
-    m_tabs.insert(std::make_pair(IQT,        new Iqt(m_uiForm.twIDATabs->widget(IQT))));
-    m_tabs.insert(std::make_pair(IQT_FIT,    new IqtFit(m_uiForm.twIDATabs->widget(IQT_FIT))));
-    m_tabs.insert(std::make_pair(CONV_FIT,   new ConvFit(m_uiForm.twIDATabs->widget(CONV_FIT))));
-    m_tabs.insert(std::make_pair(CALC_CORR,  new CalcCorr(m_uiForm.twIDATabs->widget(CALC_CORR))));
-    m_tabs.insert(std::make_pair(APPLY_CORR, new ApplyCorr(m_uiForm.twIDATabs->widget(APPLY_CORR))));
-    m_tabs.insert(std::make_pair(ABSORPTION_CORRECTIONS, new AbsorptionCorrections(m_uiForm.twIDATabs->widget(ABSORPTION_CORRECTIONS))));
-  }
-
-  /**
-   * @param :: the detected close event
-   */
-  void IndirectDataAnalysis::closeEvent(QCloseEvent*)
-  {
-    Mantid::Kernel::ConfigService::Instance().removeObserver(m_changeObserver);
-  }
-
-  /**
-   * Handles a change in directory.
-   *
-   * @param pNf :: notification
-   */
-  void IndirectDataAnalysis::handleDirectoryChange(Mantid::Kernel::ConfigValChangeNotification_ptr pNf)
-  {
-    std::string key = pNf->key();
-
-    if ( key == "defaultsave.directory" )
-      loadSettings();
-  }
-
-  /**
-   * Initialised the layout of the interface.  MUST be called.
-   */
-  void IndirectDataAnalysis::initLayout()
-  {
-    // Connect Poco Notification Observer
-    Mantid::Kernel::ConfigService::Instance().addObserver(m_changeObserver);
-
-    // Set up all tabs
-    for(auto tab = m_tabs.begin(); tab != m_tabs.end(); ++tab)
-    {
-      tab->second->setupTab();
-      connect(tab->second, SIGNAL(runAsPythonScript(const QString&, bool)), this, SIGNAL(runAsPythonScript(const QString&, bool)));
-      connect(tab->second, SIGNAL(showMessageBox(const QString&)), this, SLOT(showMessageBox(const QString&)));
-    }
-
-    connect(m_uiForm.pbPythonExport, SIGNAL(clicked()), this, SLOT(exportTabPython()));
-    connect(m_uiForm.pbHelp, SIGNAL(clicked()), this, SLOT(help()));
-    connect(m_uiForm.pbRun, SIGNAL(clicked()), this, SLOT(run()));
-    connect(m_uiForm.pbManageDirs, SIGNAL(clicked()), this, SLOT(openDirectoryDialog()));
-  }
-
-  /**
-   * Allow Python to be called locally.
-   */
-  void IndirectDataAnalysis::initLocalPython()
-  {
-    QString pyInput = "from mantid.simpleapi import *";
-    QString pyOutput = runPythonCode(pyInput).trimmed();
+namespace MantidQt {
+namespace CustomInterfaces {
+namespace IDA {
+// Add this class to the list of specialised dialogs in this namespace
+DECLARE_SUBWINDOW(IndirectDataAnalysis)
+
+/**
+ * Constructor.
+ *
+ * @param parent :: the parent QWidget.
+ */
+IndirectDataAnalysis::IndirectDataAnalysis(QWidget *parent)
+    : UserSubWindow(parent), m_valInt(NULL), m_valDbl(NULL),
+      m_changeObserver(*this, &IndirectDataAnalysis::handleDirectoryChange) {
+  m_uiForm.setupUi(this);
+
+  // Allows us to get a handle on a tab using an enum, for example
+  // "m_tabs[ELWIN]".
+  // All tabs MUST appear here to be shown in interface.
+  // We make the assumption that each map key corresponds to the order in which
+  // the tabs appear.
+  m_tabs.insert(
+      std::make_pair(ELWIN, new Elwin(m_uiForm.twIDATabs->widget(ELWIN))));
+  m_tabs.insert(
+      std::make_pair(MSD_FIT, new MSDFit(m_uiForm.twIDATabs->widget(MSD_FIT))));
+  m_tabs.insert(std::make_pair(IQT, new Iqt(m_uiForm.twIDATabs->widget(IQT))));
+  m_tabs.insert(
+      std::make_pair(IQT_FIT, new IqtFit(m_uiForm.twIDATabs->widget(IQT_FIT))));
+  m_tabs.insert(std::make_pair(
+      CONV_FIT, new ConvFit(m_uiForm.twIDATabs->widget(CONV_FIT))));
+  m_tabs.insert(std::make_pair(
+      JUMP_FIT, new JumpFit(m_uiForm.twIDATabs->widget(JUMP_FIT))));
+}
+
+/**
+ * @param :: the detected close event
+ */
+void IndirectDataAnalysis::closeEvent(QCloseEvent *) {
+  Mantid::Kernel::ConfigService::Instance().removeObserver(m_changeObserver);
+}
+
+/**
+ * Handles a change in directory.
+ *
+ * @param pNf :: notification
+ */
+void IndirectDataAnalysis::handleDirectoryChange(
+    Mantid::Kernel::ConfigValChangeNotification_ptr pNf) {
+  std::string key = pNf->key();
+
+  if (key == "defaultsave.directory")
     loadSettings();
+}
+
+/**
+ * Initialised the layout of the interface.  MUST be called.
+ */
+void IndirectDataAnalysis::initLayout() {
+  // Connect Poco Notification Observer
+  Mantid::Kernel::ConfigService::Instance().addObserver(m_changeObserver);
+
+  // Set up all tabs
+  for (auto tab = m_tabs.begin(); tab != m_tabs.end(); ++tab) {
+    tab->second->setupTab();
+    connect(tab->second, SIGNAL(runAsPythonScript(const QString &, bool)), this,
+            SIGNAL(runAsPythonScript(const QString &, bool)));
+    connect(tab->second, SIGNAL(showMessageBox(const QString &)), this,
+            SLOT(showMessageBox(const QString &)));
   }
 
-  /**
-   * Load the settings saved for this interface.
-   */
-  void IndirectDataAnalysis::loadSettings()
-  {
-    QSettings settings;
-    QString settingsGroup = "CustomInterfaces/IndirectAnalysis/";
-    QString saveDir = QString::fromStdString(Mantid::Kernel::ConfigService::Instance().getString("defaultsave.directory"));
-
-    settings.beginGroup(settingsGroup + "ProcessedFiles");
-    settings.setValue("last_directory", saveDir);
-
-    // Load each tab's settings.
-    auto tab = m_tabs.begin();
-    for( ; tab != m_tabs.end(); ++tab )
-      tab->second->loadTabSettings(settings);
-
-    settings.endGroup();
-  }
-
-  /**
-   * Private slot, called when the Run button is pressed.  Runs current tab.
-   */
-  void IndirectDataAnalysis::run()
-  {
-    const unsigned int currentTab = m_uiForm.twIDATabs->currentIndex();
-    m_tabs[currentTab]->runTab();
-  }
-
-  /**
-   * Opens a directory dialog.
-   */
-  void IndirectDataAnalysis::openDirectoryDialog()
-  {
-    MantidQt::API::ManageUserDirectories *ad = new MantidQt::API::ManageUserDirectories(this);
-    ad->show();
-    ad->setFocus();
-  }
-
-  /**
-   * Opens the Mantid Wiki web page of the current tab.
-   */
-  void IndirectDataAnalysis::help()
-  {
-    MantidQt::API::HelpWindow::showCustomInterface(NULL, QString("Indirect_DataAnalysis"));
-  }
-
-  /**
-   * Handles exporting a Python script for the current tab.
-   */
-  void IndirectDataAnalysis::exportTabPython()
-  {
-    unsigned int currentTab = m_uiForm.twIDATabs->currentIndex();
-    m_tabs[currentTab]->exportPythonScript();
-  }
-
-  /**
-   * Slot to wrap the protected showInformationBox method defined
-   * in UserSubWindow and provide access to composed tabs.
-   *
-   * @param message The message to display in the message box
-   */
-  void IndirectDataAnalysis::showMessageBox(const QString& message)
-  {
-    showInformationBox(message);
-  }
+  connect(m_uiForm.pbPythonExport, SIGNAL(clicked()), this,
+          SLOT(exportTabPython()));
+  connect(m_uiForm.pbHelp, SIGNAL(clicked()), this, SLOT(help()));
+  connect(m_uiForm.pbRun, SIGNAL(clicked()), this, SLOT(run()));
+  connect(m_uiForm.pbManageDirs, SIGNAL(clicked()), this,
+          SLOT(openDirectoryDialog()));
+}
+
+/**
+ * Allow Python to be called locally.
+ */
+void IndirectDataAnalysis::initLocalPython() {
+  QString pyInput = "from mantid.simpleapi import *";
+  QString pyOutput = runPythonCode(pyInput).trimmed();
+  loadSettings();
+}
+
+/**
+ * Load the settings saved for this interface.
+ */
+void IndirectDataAnalysis::loadSettings() {
+  QSettings settings;
+  QString settingsGroup = "CustomInterfaces/IndirectAnalysis/";
+  QString saveDir = QString::fromStdString(
+      Mantid::Kernel::ConfigService::Instance().getString(
+          "defaultsave.directory"));
+
+  settings.beginGroup(settingsGroup + "ProcessedFiles");
+  settings.setValue("last_directory", saveDir);
+
+  // Load each tab's settings.
+  auto tab = m_tabs.begin();
+  for (; tab != m_tabs.end(); ++tab)
+    tab->second->loadTabSettings(settings);
+
+  settings.endGroup();
+}
+
+/**
+ * Private slot, called when the Run button is pressed.  Runs current tab.
+ */
+void IndirectDataAnalysis::run() {
+  const unsigned int currentTab = m_uiForm.twIDATabs->currentIndex();
+  m_tabs[currentTab]->runTab();
+}
+
+/**
+ * Opens a directory dialog.
+ */
+void IndirectDataAnalysis::openDirectoryDialog() {
+  MantidQt::API::ManageUserDirectories *ad =
+      new MantidQt::API::ManageUserDirectories(this);
+  ad->show();
+  ad->setFocus();
+}
+
+/**
+ * Opens the Mantid Wiki web page of the current tab.
+ */
+void IndirectDataAnalysis::help() {
+  MantidQt::API::HelpWindow::showCustomInterface(
+      NULL, QString("Indirect_DataAnalysis"));
+}
+
+/**
+ * Handles exporting a Python script for the current tab.
+ */
+void IndirectDataAnalysis::exportTabPython() {
+  unsigned int currentTab = m_uiForm.twIDATabs->currentIndex();
+  m_tabs[currentTab]->exportPythonScript();
+}
+
+/**
+ * Slot to wrap the protected showInformationBox method defined
+ * in UserSubWindow and provide access to composed tabs.
+ *
+ * @param message The message to display in the message box
+ */
+void IndirectDataAnalysis::showMessageBox(const QString &message) {
+  showInformationBox(message);
+}
 
 } // namespace IDA
 } // namespace CustomInterfaces
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDataAnalysisTab.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDataAnalysisTab.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..aa5f7a069f69ec64eebd32fbc1385697cce6e721
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDataAnalysisTab.cpp
@@ -0,0 +1,59 @@
+#include "MantidQtCustomInterfaces/Indirect/IndirectDataAnalysisTab.h"
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/AnalysisDataService.h"
+#include "boost/shared_ptr.hpp"
+
+#include <qwt_plot.h>
+#include <qwt_plot_curve.h>
+#include <QSettings>
+#include <QString>
+
+using namespace Mantid::API;
+
+namespace MantidQt
+{
+namespace CustomInterfaces
+{
+namespace IDA
+{
+  /**
+   * Constructor.
+   *
+   * @param parent :: the parent widget (an IndirectDataAnalysis object).
+   */
+  IndirectDataAnalysisTab::IndirectDataAnalysisTab(QWidget * parent) : IndirectTab(parent),
+    m_dblEdFac(NULL), m_blnEdFac(NULL),
+    m_parent(NULL)
+  {
+    m_parent = dynamic_cast<IndirectDataAnalysis*>(parent);
+
+    // Create Editor Factories
+    m_dblEdFac = new DoubleEditorFactory(this);
+    m_blnEdFac = new QtCheckBoxFactory(this);
+  }
+
+
+  /**
+   * Loads the tab's settings.
+   *
+   * Calls overridden version of loadSettings() in child class.
+   *
+   * @param settings :: the QSettings object from which to load
+   */
+  void IndirectDataAnalysisTab::loadTabSettings(const QSettings & settings)
+  {
+    loadSettings(settings);
+  }
+
+
+  /**
+   * Slot that can be called when a user edits an input.
+   */
+  void IndirectDataAnalysisTab::inputChanged()
+  {
+    validate();
+  }
+
+} // namespace IDA
+} // namespace CustomInterfaces
+} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDiffractionReduction.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDiffractionReduction.cpp
index 3af30aedd35e61b6676b16143ad5bb9dfc96f87b..63ea70dcf4b798ab11e18ecca19d65dbbb03793c 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDiffractionReduction.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectDiffractionReduction.cpp
@@ -15,22 +15,18 @@
 using namespace Mantid::API;
 using namespace Mantid::Geometry;
 
-//Add this class to the list of specialised dialogs in this namespace
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-
-namespace // anon
-{
-  /// static logger
-  Mantid::Kernel::Logger g_log("IndirectDiffractionReduction");
-
-  // Helper function for use with std::transform.
-  std::string toStdString(const QString & qString)
-  {
-    return qString.toStdString();
-  }
+// Add this class to the list of specialised dialogs in this namespace
+namespace MantidQt {
+namespace CustomInterfaces {
+
+namespace {
+/// static logger
+Mantid::Kernel::Logger g_log("IndirectDiffractionReduction");
+
+// Helper function for use with std::transform.
+std::string toStdString(const QString &qString) {
+  return qString.toStdString();
+}
 } // anon namespace
 
 DECLARE_SUBWINDOW(IndirectDiffractionReduction)
@@ -43,53 +39,51 @@ using MantidQt::API::BatchAlgorithmRunner;
 //----------------------
 // Public member functions
 //----------------------
-///Constructor
-IndirectDiffractionReduction::IndirectDiffractionReduction(QWidget *parent) :
-  UserSubWindow(parent), m_valInt(NULL), m_valDbl(NULL),
-  m_settingsGroup("CustomInterfaces/DEMON"),
-  m_batchAlgoRunner(new BatchAlgorithmRunner(parent))
-{
-}
-
-
-///Destructor
-IndirectDiffractionReduction::~IndirectDiffractionReduction()
-{
+/// Constructor
+IndirectDiffractionReduction::IndirectDiffractionReduction(QWidget *parent)
+    : UserSubWindow(parent), m_valDbl(NULL),
+      m_settingsGroup("CustomInterfaces/DEMON"),
+      m_batchAlgoRunner(new BatchAlgorithmRunner(parent)) {}
+
+/// Destructor
+IndirectDiffractionReduction::~IndirectDiffractionReduction() {
   saveSettings();
 }
 
-
 /**
  * Sets up UI components and Qt signal/slot connections.
  */
-void IndirectDiffractionReduction::initLayout()
-{
+void IndirectDiffractionReduction::initLayout() {
   m_uiForm.setupUi(this);
 
   connect(m_uiForm.pbHelp, SIGNAL(clicked()), this, SLOT(help()));
-  connect(m_uiForm.pbManageDirs, SIGNAL(clicked()), this, SLOT(openDirectoryDialog()));
-  connect(m_uiForm.pbRun, SIGNAL(clicked()), this, SLOT(demonRun()));
+  connect(m_uiForm.pbManageDirs, SIGNAL(clicked()), this,
+          SLOT(openDirectoryDialog()));
+  connect(m_uiForm.pbRun, SIGNAL(clicked()), this, SLOT(run()));
 
-  connect(m_uiForm.iicInstrumentConfiguration, SIGNAL(instrumentConfigurationUpdated(const QString &, const QString &, const QString &)),
-          this, SLOT(instrumentSelected(const QString &, const QString &, const QString &)));
+  connect(m_uiForm.iicInstrumentConfiguration,
+          SIGNAL(instrumentConfigurationUpdated(
+              const QString &, const QString &, const QString &)),
+          this, SLOT(instrumentSelected(const QString &, const QString &,
+                                        const QString &)));
 
   // Update run button based on state of raw files field
-  connect(m_uiForm.dem_rawFiles, SIGNAL(fileTextChanged(const QString &)), this, SLOT(runFilesChanged()));
-  connect(m_uiForm.dem_rawFiles, SIGNAL(findingFiles()), this, SLOT(runFilesFinding()));
-  connect(m_uiForm.dem_rawFiles, SIGNAL(fileFindingFinished()), this, SLOT(runFilesFound()));
+  connect(m_uiForm.rfSampleFiles, SIGNAL(fileTextChanged(const QString &)),
+          this, SLOT(runFilesChanged()));
+  connect(m_uiForm.rfSampleFiles, SIGNAL(findingFiles()), this,
+          SLOT(runFilesFinding()));
+  connect(m_uiForm.rfSampleFiles, SIGNAL(fileFindingFinished()), this,
+          SLOT(runFilesFound()));
 
-  m_valInt = new QIntValidator(this);
   m_valDbl = new QDoubleValidator(this);
 
-  m_uiForm.set_leSpecMin->setValidator(m_valInt);
-  m_uiForm.set_leSpecMax->setValidator(m_valInt);
-
   m_uiForm.leRebinStart->setValidator(m_valDbl);
   m_uiForm.leRebinWidth->setValidator(m_valDbl);
   m_uiForm.leRebinEnd->setValidator(m_valDbl);
 
   // Update the list of plot options when individual grouping is toggled
-  connect(m_uiForm.ckIndividualGrouping, SIGNAL(stateChanged(int)), this, SLOT(individualGroupingToggled(int)));
+  connect(m_uiForm.ckIndividualGrouping, SIGNAL(stateChanged(int)), this,
+          SLOT(individualGroupingToggled(int)));
 
   loadSettings();
 
@@ -103,26 +97,22 @@ void IndirectDiffractionReduction::initLayout()
 /**
  * Runs a diffraction reduction when the user clicks Run.
  */
-void IndirectDiffractionReduction::demonRun()
-{
+void IndirectDiffractionReduction::run() {
   QString instName = m_uiForm.iicInstrumentConfiguration->getInstrumentName();
   QString mode = m_uiForm.iicInstrumentConfiguration->getReflectionName();
 
-  if(instName == "OSIRIS" && mode == "diffonly")
-  {
-    if(!m_uiForm.dem_rawFiles->isValid() || !validateVanCal())
-    {
-      showInformationBox("Invalid input.\nIncorrect entries marked with red star.");
+  if (instName == "OSIRIS" && mode == "diffonly") {
+    if (!m_uiForm.rfSampleFiles->isValid() || !validateVanCal()) {
+      showInformationBox(
+          "Invalid input.\nIncorrect entries marked with red star.");
       return;
     }
 
     runOSIRISdiffonlyReduction();
-  }
-  else
-  {
-    if(!m_uiForm.dem_rawFiles->isValid() || !validateRebin())
-    {
-      showInformationBox("Invalid input.\nIncorrect entries marked with red star.");
+  } else {
+    if (!m_uiForm.rfSampleFiles->isValid() || !validateRebin()) {
+      showInformationBox(
+          "Invalid input.\nIncorrect entries marked with red star.");
       return;
     }
 
@@ -130,28 +120,29 @@ void IndirectDiffractionReduction::demonRun()
   }
 }
 
-
 /**
  * Handles plotting result spectra from algorithm chains.
  *
  * @param error True if the chain was stopped due to error
  */
-void IndirectDiffractionReduction::plotResults(bool error)
-{
+void IndirectDiffractionReduction::plotResults(bool error) {
   // Handles completion of the diffraction algorithm chain
-  disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(plotResults(bool)));
+  disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+             SLOT(plotResults(bool)));
 
   // Nothing can be plotted
-  if(error)
-  {
-    showInformationBox("Error running diffraction reduction.\nSee Results Log for details.");
+  if (error) {
+    showInformationBox(
+        "Error running diffraction reduction.\nSee Results Log for details.");
     return;
   }
 
   // Ungroup the output workspace if generic reducer was used
-  if(AnalysisDataService::Instance().doesExist("IndirectDiffraction_Workspaces"))
-  {
-    WorkspaceGroup_sptr diffResultsGroup = AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>("IndirectDiffraction_Workspaces");
+  if (AnalysisDataService::Instance().doesExist(
+          "IndirectDiffraction_Workspaces")) {
+    WorkspaceGroup_sptr diffResultsGroup =
+        AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(
+            "IndirectDiffraction_Workspaces");
 
     m_plotWorkspaces.clear();
     m_plotWorkspaces = diffResultsGroup->getNames();
@@ -169,37 +160,32 @@ void IndirectDiffractionReduction::plotResults(bool error)
 
   QString pyInput = "from mantidplot import plotSpectrum, plot2D\n";
 
-  if(plotType == "Spectra" || plotType == "Both")
-  {
-    for(auto it = m_plotWorkspaces.begin(); it != m_plotWorkspaces.end(); ++it)
+  if (plotType == "Spectra" || plotType == "Both") {
+    for (auto it = m_plotWorkspaces.begin(); it != m_plotWorkspaces.end(); ++it)
       pyInput += "plotSpectrum('" + QString::fromStdString(*it) + "', 0)\n";
   }
 
-  if(plotType == "Contour" || plotType == "Both")
-  {
-    for(auto it = m_plotWorkspaces.begin(); it != m_plotWorkspaces.end(); ++it)
+  if (plotType == "Contour" || plotType == "Both") {
+    for (auto it = m_plotWorkspaces.begin(); it != m_plotWorkspaces.end(); ++it)
       pyInput += "plot2D('" + QString::fromStdString(*it) + "')\n";
   }
 
   runPythonCode(pyInput);
 }
 
-
 /**
  * Handles saving the reductions from the generic algorithm.
  */
-void IndirectDiffractionReduction::saveGenericReductions()
-{
-  for(auto it = m_plotWorkspaces.begin(); it != m_plotWorkspaces.end(); ++it)
-  {
+void IndirectDiffractionReduction::saveGenericReductions() {
+  for (auto it = m_plotWorkspaces.begin(); it != m_plotWorkspaces.end(); ++it) {
     std::string wsName = *it;
 
-    if(m_uiForm.ckGSS->isChecked())
-    {
+    if (m_uiForm.ckGSS->isChecked()) {
       std::string tofWsName = wsName + "_tof";
 
       // Convert to TOF for GSS
-      IAlgorithm_sptr convertUnits = AlgorithmManager::Instance().create("ConvertUnits");
+      IAlgorithm_sptr convertUnits =
+          AlgorithmManager::Instance().create("ConvertUnits");
       convertUnits->initialize();
       convertUnits->setProperty("InputWorkspace", wsName);
       convertUnits->setProperty("OutputWorkspace", tofWsName);
@@ -217,22 +203,22 @@ void IndirectDiffractionReduction::saveGenericReductions()
       m_batchAlgoRunner->addAlgorithm(saveGSS, inputFromConvUnitsProps);
     }
 
-    if(m_uiForm.ckNexus->isChecked())
-    {
+    if (m_uiForm.ckNexus->isChecked()) {
       // Save NEXus using SaveNexusProcessed
       std::string nexusFilename = wsName + ".nxs";
-      IAlgorithm_sptr saveNexus = AlgorithmManager::Instance().create("SaveNexusProcessed");
+      IAlgorithm_sptr saveNexus =
+          AlgorithmManager::Instance().create("SaveNexusProcessed");
       saveNexus->initialize();
       saveNexus->setProperty("InputWorkspace", wsName);
       saveNexus->setProperty("Filename", nexusFilename);
       m_batchAlgoRunner->addAlgorithm(saveNexus);
     }
 
-    if(m_uiForm.ckAscii->isChecked())
-    {
+    if (m_uiForm.ckAscii->isChecked()) {
       // Save ASCII using SaveAscii version 1
       std::string asciiFilename = wsName + ".dat";
-      IAlgorithm_sptr saveASCII = AlgorithmManager::Instance().create("SaveAscii", 1);
+      IAlgorithm_sptr saveASCII =
+          AlgorithmManager::Instance().create("SaveAscii", 1);
       saveASCII->initialize();
       saveASCII->setProperty("InputWorkspace", wsName);
       saveASCII->setProperty("Filename", asciiFilename);
@@ -243,99 +229,143 @@ void IndirectDiffractionReduction::saveGenericReductions()
   m_batchAlgoRunner->executeBatchAsync();
 }
 
-
 /**
  * Runs a diffraction reduction for any instrument in any mode.
  *
  * @param instName Name of the instrument
  * @param mode Mode instrument is operating in (diffspec/diffonly)
  */
-void IndirectDiffractionReduction::runGenericReduction(QString instName, QString mode)
-{
+void IndirectDiffractionReduction::runGenericReduction(QString instName,
+                                                       QString mode) {
   // Get rebin string
   QString rebinStart = m_uiForm.leRebinStart->text();
   QString rebinWidth = m_uiForm.leRebinWidth->text();
   QString rebinEnd = m_uiForm.leRebinEnd->text();
 
   QString rebin = "";
-  if(!rebinStart.isEmpty() && !rebinWidth.isEmpty() && !rebinEnd.isEmpty())
-      rebin = rebinStart + "," + rebinWidth + "," + rebinEnd;
+  if (!rebinStart.isEmpty() && !rebinWidth.isEmpty() && !rebinEnd.isEmpty())
+    rebin = rebinStart + "," + rebinWidth + "," + rebinEnd;
 
   // Get detector range
   std::vector<long> detRange;
-  detRange.push_back(m_uiForm.set_leSpecMin->text().toLong());
-  detRange.push_back(m_uiForm.set_leSpecMax->text().toLong());
+  detRange.push_back(static_cast<long>(m_uiForm.spSpecMin->value()));
+  detRange.push_back(static_cast<long>(m_uiForm.spSpecMax->value()));
 
   // Get generic reduction algorithm instance
-  IAlgorithm_sptr msgDiffReduction = AlgorithmManager::Instance().create("ISISIndirectDiffractionReduction");
+  IAlgorithm_sptr msgDiffReduction =
+      AlgorithmManager::Instance().create("ISISIndirectDiffractionReduction");
   msgDiffReduction->initialize();
 
   // Get save formats
   std::vector<std::string> saveFormats;
-  if(m_uiForm.ckGSS->isChecked())   saveFormats.push_back("gss");
-  if(m_uiForm.ckNexus->isChecked()) saveFormats.push_back("nxs");
-  if(m_uiForm.ckAscii->isChecked()) saveFormats.push_back("ascii");
+  if (m_uiForm.ckGSS->isChecked())
+    saveFormats.push_back("gss");
+  if (m_uiForm.ckNexus->isChecked())
+    saveFormats.push_back("nxs");
+  if (m_uiForm.ckAscii->isChecked())
+    saveFormats.push_back("ascii");
 
   // Set algorithm properties
   msgDiffReduction->setProperty("Instrument", instName.toStdString());
   msgDiffReduction->setProperty("Mode", mode.toStdString());
-  msgDiffReduction->setProperty("SumFiles", m_uiForm.dem_ckSumFiles->isChecked());
-  msgDiffReduction->setProperty("InputFiles", m_uiForm.dem_rawFiles->getFilenames().join(",").toStdString());
+  msgDiffReduction->setProperty("SumFiles", m_uiForm.ckSumFiles->isChecked());
+  msgDiffReduction->setProperty("LoadLogFiles",
+                                m_uiForm.ckLoadLogs->isChecked());
+  msgDiffReduction->setProperty(
+      "InputFiles",
+      m_uiForm.rfSampleFiles->getFilenames().join(",").toStdString());
   msgDiffReduction->setProperty("SpectraRange", detRange);
   msgDiffReduction->setProperty("RebinParam", rebin.toStdString());
-  msgDiffReduction->setProperty("OutputWorkspace", "IndirectDiffraction_Workspaces");
+  msgDiffReduction->setProperty("OutputWorkspace",
+                                "IndirectDiffraction_Workspaces");
+
+  if (m_uiForm.ckUseCan->isChecked()) {
+    msgDiffReduction->setProperty(
+        "ContainerFiles",
+        m_uiForm.rfCanFiles->getFilenames().join(",").toStdString());
+    if (m_uiForm.ckCanScale->isChecked())
+      msgDiffReduction->setProperty("ContainerScaleFactor",
+                                    m_uiForm.spCanScale->value());
+  }
 
   // Add the pproperty for grouping policy if needed
-  if(m_uiForm.ckIndividualGrouping->isChecked())
+  if (m_uiForm.ckIndividualGrouping->isChecked())
     msgDiffReduction->setProperty("GroupingPolicy", "Individual");
 
   m_batchAlgoRunner->addAlgorithm(msgDiffReduction);
 
   // Handles completion of the diffraction algorithm chain
-  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(plotResults(bool)));
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(plotResults(bool)));
 
   m_batchAlgoRunner->executeBatchAsync();
 }
 
-
 /**
- * Runs a diffraction reduction for OSIRIS operating in diffonly mode using the OSIRISDiffractionReduction algorithm.
+ * Runs a diffraction reduction for OSIRIS operating in diffonly mode using the
+ * OSIRISDiffractionReduction algorithm.
  */
-void IndirectDiffractionReduction::runOSIRISdiffonlyReduction()
-{
-  // Get the files names from MWRunFiles widget, and convert them from Qt forms into stl equivalents.
-  QStringList fileNames = m_uiForm.dem_rawFiles->getFilenames();
+void IndirectDiffractionReduction::runOSIRISdiffonlyReduction() {
+  // Get the files names from MWRunFiles widget, and convert them from Qt forms
+  // into stl equivalents.
+  QStringList fileNames = m_uiForm.rfSampleFiles->getFilenames();
   std::vector<std::string> stlFileNames;
   stlFileNames.reserve(fileNames.size());
-  std::transform(fileNames.begin(),fileNames.end(),std::back_inserter(stlFileNames), toStdString);
+  std::transform(fileNames.begin(), fileNames.end(),
+                 std::back_inserter(stlFileNames), toStdString);
 
-  // Use the file names to suggest a workspace name to use.  Report to logger and stop if unable to parse correctly.
+  // Use the file names to suggest a workspace name to use.  Report to logger
+  // and stop if unable to parse correctly.
   QString drangeWsName;
   QString tofWsName;
-  try
-  {
-    QString nameBase = QString::fromStdString(Mantid::Kernel::MultiFileNameParsing::suggestWorkspaceName(stlFileNames));
+  try {
+    QString nameBase = QString::fromStdString(
+        Mantid::Kernel::MultiFileNameParsing::suggestWorkspaceName(
+            stlFileNames));
     tofWsName = nameBase + "_tof";
     drangeWsName = nameBase + "_dRange";
-  }
-  catch(std::runtime_error & re)
-  {
+  } catch (std::runtime_error &re) {
     g_log.error(re.what());
     return;
   }
 
-  IAlgorithm_sptr osirisDiffReduction = AlgorithmManager::Instance().create("OSIRISDiffractionReduction");
+  bool manualDRange(m_uiForm.ckManualDRange->isChecked());
+
+  IAlgorithm_sptr osirisDiffReduction =
+      AlgorithmManager::Instance().create("OSIRISDiffractionReduction");
   osirisDiffReduction->initialize();
-  osirisDiffReduction->setProperty("Sample", m_uiForm.dem_rawFiles->getFilenames().join(",").toStdString());
-  osirisDiffReduction->setProperty("Vanadium", m_uiForm.dem_vanadiumFile->getFilenames().join(",").toStdString());
-  osirisDiffReduction->setProperty("CalFile", m_uiForm.dem_calFile->getFirstFilename().toStdString());
-  osirisDiffReduction->setProperty("OutputWorkspace", drangeWsName.toStdString());
+  osirisDiffReduction->setProperty(
+      "Sample", m_uiForm.rfSampleFiles->getFilenames().join(",").toStdString());
+  osirisDiffReduction->setProperty(
+      "Vanadium",
+      m_uiForm.rfVanadiumFile->getFilenames().join(",").toStdString());
+  osirisDiffReduction->setProperty(
+      "CalFile", m_uiForm.rfCalFile->getFirstFilename().toStdString());
+  osirisDiffReduction->setProperty("LoadLogFiles",
+                                   m_uiForm.ckLoadLogs->isChecked());
+  osirisDiffReduction->setProperty("OutputWorkspace",
+                                   drangeWsName.toStdString());
+
+  osirisDiffReduction->setProperty("DetectDRange", !manualDRange);
+  if (manualDRange)
+    osirisDiffReduction->setProperty(
+        "DRange", static_cast<long>(m_uiForm.spDRange->value()));
+
+  if (m_uiForm.ckUseCan->isChecked()) {
+    osirisDiffReduction->setProperty(
+        "Container", m_uiForm.rfCanFiles->getFirstFilename().toStdString());
+    if (m_uiForm.ckCanScale->isChecked())
+      osirisDiffReduction->setProperty("ContainerScaleFactor",
+                                       m_uiForm.spCanScale->value());
+  }
+
   m_batchAlgoRunner->addAlgorithm(osirisDiffReduction);
 
   BatchAlgorithmRunner::AlgorithmRuntimeProps inputFromReductionProps;
   inputFromReductionProps["InputWorkspace"] = drangeWsName.toStdString();
 
-  IAlgorithm_sptr convertUnits = AlgorithmManager::Instance().create("ConvertUnits");
+  IAlgorithm_sptr convertUnits =
+      AlgorithmManager::Instance().create("ConvertUnits");
   convertUnits->initialize();
   convertUnits->setProperty("OutputWorkspace", tofWsName.toStdString());
   convertUnits->setProperty("Target", "TOF");
@@ -344,8 +374,7 @@ void IndirectDiffractionReduction::runOSIRISdiffonlyReduction()
   BatchAlgorithmRunner::AlgorithmRuntimeProps inputFromConvUnitsProps;
   inputFromConvUnitsProps["InputWorkspace"] = tofWsName.toStdString();
 
-  if ( m_uiForm.ckGSS->isChecked() )
-  {
+  if (m_uiForm.ckGSS->isChecked()) {
     QString gssFilename = tofWsName + ".gss";
     IAlgorithm_sptr saveGSS = AlgorithmManager::Instance().create("SaveGSS");
     saveGSS->initialize();
@@ -353,19 +382,19 @@ void IndirectDiffractionReduction::runOSIRISdiffonlyReduction()
     m_batchAlgoRunner->addAlgorithm(saveGSS, inputFromConvUnitsProps);
   }
 
-  if ( m_uiForm.ckNexus->isChecked() )
-  {
+  if (m_uiForm.ckNexus->isChecked()) {
     QString nexusFilename = drangeWsName + ".nxs";
-    IAlgorithm_sptr saveNexus = AlgorithmManager::Instance().create("SaveNexusProcessed");
+    IAlgorithm_sptr saveNexus =
+        AlgorithmManager::Instance().create("SaveNexusProcessed");
     saveNexus->initialize();
     saveNexus->setProperty("Filename", nexusFilename.toStdString());
     m_batchAlgoRunner->addAlgorithm(saveNexus, inputFromReductionProps);
   }
 
-  if ( m_uiForm.ckAscii->isChecked() )
-  {
+  if (m_uiForm.ckAscii->isChecked()) {
     QString asciiFilename = drangeWsName + ".dat";
-    IAlgorithm_sptr saveASCII = AlgorithmManager::Instance().create("SaveAscii");
+    IAlgorithm_sptr saveASCII =
+        AlgorithmManager::Instance().create("SaveAscii");
     saveASCII->initialize();
     saveASCII->setProperty("Filename", asciiFilename.toStdString());
     m_batchAlgoRunner->addAlgorithm(saveASCII, inputFromReductionProps);
@@ -376,26 +405,31 @@ void IndirectDiffractionReduction::runOSIRISdiffonlyReduction()
   m_plotWorkspaces.push_back(drangeWsName.toStdString());
 
   // Handles completion of the diffraction algorithm chain
-  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(plotResults(bool)));
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(plotResults(bool)));
 
   m_batchAlgoRunner->executeBatchAsync();
 }
 
-
 /**
  * Loads an empty instrument and returns a pointer to the workspace.
  *
  * Optionally loads an IPF if a reflection was provided.
  *
- * @param instrumentName Name of an inelastic indiretc instrument (IRIS, OSIRIN, TOSCA, VESUVIO)
- * @param reflection Reflection mode to load parameters for (diffspec or diffonly)
+ * @param instrumentName Name of an inelastic indiretc instrument (IRIS, OSIRIN,
+ *TOSCA, VESUVIO)
+ * @param reflection Reflection mode to load parameters for (diffspec or
+ *diffonly)
  */
-MatrixWorkspace_sptr IndirectDiffractionReduction::loadInstrument(std::string instrumentName, std::string reflection)
-{
-  std::string idfPath = Mantid::Kernel::ConfigService::Instance().getString("instrumentDefinition.directory");
+MatrixWorkspace_sptr
+IndirectDiffractionReduction::loadInstrument(std::string instrumentName,
+                                             std::string reflection) {
+  std::string idfPath = Mantid::Kernel::ConfigService::Instance().getString(
+      "instrumentDefinition.directory");
 
   std::string parameterFilename = idfPath + instrumentName + "_Definition.xml";
-  IAlgorithm_sptr loadAlg = AlgorithmManager::Instance().create("LoadEmptyInstrument");
+  IAlgorithm_sptr loadAlg =
+      AlgorithmManager::Instance().create("LoadEmptyInstrument");
   loadAlg->setChild(true);
   loadAlg->initialize();
   loadAlg->setProperty("Filename", parameterFilename);
@@ -404,10 +438,11 @@ MatrixWorkspace_sptr IndirectDiffractionReduction::loadInstrument(std::string in
   MatrixWorkspace_sptr instWorkspace = loadAlg->getProperty("OutputWorkspace");
 
   // Load parameter file if a reflection was given
-  if(!reflection.empty())
-  {
-    std::string ipfFilename = idfPath + instrumentName + "_diffraction_" + reflection + "_Parameters.xml";
-    IAlgorithm_sptr loadParamAlg = AlgorithmManager::Instance().create("LoadParameterFile");
+  if (!reflection.empty()) {
+    std::string ipfFilename = idfPath + instrumentName + "_diffraction_" +
+                              reflection + "_Parameters.xml";
+    IAlgorithm_sptr loadParamAlg =
+        AlgorithmManager::Instance().create("LoadParameterFile");
     loadParamAlg->setChild(true);
     loadParamAlg->initialize();
     loadParamAlg->setProperty("Filename", ipfFilename);
@@ -418,161 +453,156 @@ MatrixWorkspace_sptr IndirectDiffractionReduction::loadInstrument(std::string in
   return instWorkspace;
 }
 
-
 /**
- * Handles setting default spectra range when an instrument configuration is selected.
+ * Handles setting default spectra range when an instrument configuration is
+ *selected.
  *
  * @param instrumentName Name of selected instrument
- * @param analyserName Name of selected analyser (should always be "diffraction")
+ * @param analyserName Name of selected analyser (should always be
+ *"diffraction")
  * @param reflectionName Name of diffraction mode selected
  */
-void IndirectDiffractionReduction::instrumentSelected(const QString & instrumentName, const QString & analyserName,
-    const QString & reflectionName)
-{
+void IndirectDiffractionReduction::instrumentSelected(
+    const QString &instrumentName, const QString &analyserName,
+    const QString &reflectionName) {
   UNUSED_ARG(analyserName);
 
   // Set the search instrument for runs
-  m_uiForm.dem_rawFiles->setInstrumentOverride(instrumentName);
+  m_uiForm.rfSampleFiles->setInstrumentOverride(instrumentName);
+  m_uiForm.rfCanFiles->setInstrumentOverride(instrumentName);
 
-  MatrixWorkspace_sptr instWorkspace = loadInstrument(instrumentName.toStdString(), reflectionName.toStdString());
+  MatrixWorkspace_sptr instWorkspace = loadInstrument(
+      instrumentName.toStdString(), reflectionName.toStdString());
   Instrument_const_sptr instrument = instWorkspace->getInstrument();
 
   // Get default spectra range
   double specMin = instrument->getNumberParameter("spectra-min")[0];
   double specMax = instrument->getNumberParameter("spectra-max")[0];
 
-  m_uiForm.set_leSpecMin->setText(QString::number(specMin));
-  m_uiForm.set_leSpecMax->setText(QString::number(specMax));
+  m_uiForm.spSpecMin->setValue(static_cast<int>(specMin));
+  m_uiForm.spSpecMax->setValue(static_cast<int>(specMax));
 
   // Determine whether we need vanadium input
-  std::vector<std::string> correctionVector = instrument->getStringParameter("Workflow.Diffraction.Correction");
+  std::vector<std::string> correctionVector =
+      instrument->getStringParameter("Workflow.Diffraction.Correction");
   bool vanadiumNeeded = false;
-  if(correctionVector.size() > 0)
+  if (correctionVector.size() > 0)
     vanadiumNeeded = (correctionVector[0] == "Vanadium");
 
-  if(vanadiumNeeded)
+  if (vanadiumNeeded)
     m_uiForm.swVanadium->setCurrentIndex(0);
   else
     m_uiForm.swVanadium->setCurrentIndex(1);
 
   // Hide options that the current instrument config cannot process
-  if(instrumentName == "OSIRIS" && reflectionName == "diffonly")
-  {
+  if (instrumentName == "OSIRIS" && reflectionName == "diffonly") {
     // Disable individual grouping
-    m_uiForm.ckIndividualGrouping->setToolTip("OSIRIS cannot group detectors individually in diffonly mode");
+    m_uiForm.ckIndividualGrouping->setToolTip(
+        "OSIRIS cannot group detectors individually in diffonly mode");
     m_uiForm.ckIndividualGrouping->setEnabled(false);
     m_uiForm.ckIndividualGrouping->setChecked(false);
 
     // Disable sum files
-    m_uiForm.dem_ckSumFiles->setToolTip("OSIRIS cannot sum files in diffonly mode");
-    m_uiForm.dem_ckSumFiles->setEnabled(false);
-    m_uiForm.dem_ckSumFiles->setChecked(false);
-  }
-  else
-  {
+    m_uiForm.ckSumFiles->setToolTip("OSIRIS cannot sum files in diffonly mode");
+    m_uiForm.ckSumFiles->setEnabled(false);
+    m_uiForm.ckSumFiles->setChecked(false);
+
+    // Disable spectra range
+    m_uiForm.spSpecMin->setEnabled(false);
+    m_uiForm.spSpecMax->setEnabled(false);
+  } else {
     // Re-enable sum files
-    m_uiForm.dem_ckSumFiles->setToolTip("");
-    m_uiForm.dem_ckSumFiles->setEnabled(true);
-    m_uiForm.dem_ckSumFiles->setChecked(true);
+    m_uiForm.ckSumFiles->setToolTip("");
+    m_uiForm.ckSumFiles->setEnabled(true);
+    m_uiForm.ckSumFiles->setChecked(true);
 
     // Re-enable individual grouping
     m_uiForm.ckIndividualGrouping->setToolTip("");
     m_uiForm.ckIndividualGrouping->setEnabled(true);
+
+    // Re-enable spectra range
+    m_uiForm.spSpecMin->setEnabled(true);
+    m_uiForm.spSpecMax->setEnabled(true);
   }
 }
 
-
 /**
  * Handles opening the directory manager window.
  */
-void IndirectDiffractionReduction::openDirectoryDialog()
-{
-  MantidQt::API::ManageUserDirectories *ad = new MantidQt::API::ManageUserDirectories(this);
+void IndirectDiffractionReduction::openDirectoryDialog() {
+  MantidQt::API::ManageUserDirectories *ad =
+      new MantidQt::API::ManageUserDirectories(this);
   ad->show();
   ad->setFocus();
 }
 
-
 /**
  * Handles the user clicking the help button.
  */
-void IndirectDiffractionReduction::help()
-{
-  MantidQt::API::HelpWindow::showCustomInterface(NULL, QString("Indirect_Diffraction"));
-}
-
-
-void IndirectDiffractionReduction::initLocalPython()
-{
+void IndirectDiffractionReduction::help() {
+  MantidQt::API::HelpWindow::showCustomInterface(
+      NULL, QString("Indirect_Diffraction"));
 }
 
+void IndirectDiffractionReduction::initLocalPython() {}
 
-void IndirectDiffractionReduction::loadSettings()
-{
+void IndirectDiffractionReduction::loadSettings() {
   QSettings settings;
-  QString dataDir = QString::fromStdString(Mantid::Kernel::ConfigService::Instance().getString("datasearch.directories")).split(";")[0];
+  QString dataDir = QString::fromStdString(
+                        Mantid::Kernel::ConfigService::Instance().getString(
+                            "datasearch.directories")).split(";")[0];
 
   settings.beginGroup(m_settingsGroup);
   settings.setValue("last_directory", dataDir);
-  m_uiForm.dem_rawFiles->readSettings(settings.group());
-  m_uiForm.dem_calFile->readSettings(settings.group());
-  m_uiForm.dem_calFile->setUserInput(settings.value("last_cal_file").toString());
-  m_uiForm.dem_vanadiumFile->setUserInput(settings.value("last_van_files").toString());
+  m_uiForm.rfSampleFiles->readSettings(settings.group());
+  m_uiForm.rfCalFile->readSettings(settings.group());
+  m_uiForm.rfCalFile->setUserInput(settings.value("last_cal_file").toString());
+  m_uiForm.rfVanadiumFile->setUserInput(
+      settings.value("last_van_files").toString());
   settings.endGroup();
 }
 
-
-void IndirectDiffractionReduction::saveSettings()
-{
+void IndirectDiffractionReduction::saveSettings() {
   QSettings settings;
 
   settings.beginGroup(m_settingsGroup);
-  settings.setValue("last_cal_file", m_uiForm.dem_calFile->getText());
-  settings.setValue("last_van_files", m_uiForm.dem_vanadiumFile->getText());
+  settings.setValue("last_cal_file", m_uiForm.rfCalFile->getText());
+  settings.setValue("last_van_files", m_uiForm.rfVanadiumFile->getText());
   settings.endGroup();
 }
 
-
 /**
  * Validates the rebinning fields and updates invalid markers.
  *
  * @returns True if reinning options are valid, flase otherwise
  */
-bool IndirectDiffractionReduction::validateRebin()
-{
+bool IndirectDiffractionReduction::validateRebin() {
   QString rebStartTxt = m_uiForm.leRebinStart->text();
   QString rebStepTxt = m_uiForm.leRebinWidth->text();
   QString rebEndTxt = m_uiForm.leRebinEnd->text();
 
   bool rebinValid = true;
   // Need all or none
-  if(rebStartTxt.isEmpty() && rebStepTxt.isEmpty() && rebEndTxt.isEmpty())
-  {
+  if (rebStartTxt.isEmpty() && rebStepTxt.isEmpty() && rebEndTxt.isEmpty()) {
     rebinValid = true;
     m_uiForm.valRebinStart->setText("");
     m_uiForm.valRebinWidth->setText("");
     m_uiForm.valRebinEnd->setText("");
+  } else {
+#define CHECK_VALID(text, validator)                                           \
+  if (text.isEmpty()) {                                                        \
+    rebinValid = false;                                                        \
+    validator->setText("*");                                                   \
+  } else {                                                                     \
+    rebinValid = true;                                                         \
+    validator->setText("");                                                    \
   }
-  else
-  {
-#define CHECK_VALID(text,validator)\
-    if(text.isEmpty())\
-    {\
-      rebinValid = false;\
-      validator->setText("*");\
-    }\
-    else\
-    {\
-      rebinValid = true;\
-      validator->setText("");\
-    }
 
-    CHECK_VALID(rebStartTxt,m_uiForm.valRebinStart);
-    CHECK_VALID(rebStepTxt,m_uiForm.valRebinWidth);
-    CHECK_VALID(rebEndTxt,m_uiForm.valRebinEnd);
+    CHECK_VALID(rebStartTxt, m_uiForm.valRebinStart);
+    CHECK_VALID(rebStepTxt, m_uiForm.valRebinWidth);
+    CHECK_VALID(rebEndTxt, m_uiForm.valRebinEnd);
 
-    if(rebinValid && rebStartTxt.toDouble() >= rebEndTxt.toDouble())
-    {
+    if (rebinValid && rebStartTxt.toDouble() >= rebEndTxt.toDouble()) {
       rebinValid = false;
       m_uiForm.valRebinStart->setText("*");
       m_uiForm.valRebinEnd->setText("*");
@@ -582,95 +612,83 @@ bool IndirectDiffractionReduction::validateRebin()
   return rebinValid;
 }
 
-
 /**
  * Checks to see if the vanadium and cal file fields are valid.
  *
  * @returns True fo vanadium and calibration files are valid, false otherwise
  */
-bool IndirectDiffractionReduction::validateVanCal()
-{
-  if(!m_uiForm.dem_calFile->isValid())
+bool IndirectDiffractionReduction::validateVanCal() {
+  if (!m_uiForm.rfCalFile->isValid())
     return false;
 
-  if(!m_uiForm.dem_vanadiumFile->isValid())
+  if (!m_uiForm.rfVanadiumFile->isValid())
     return false;
 
   return true;
 }
 
-
 /**
- * Disables and shows message on run button indicating that run files have benn changed.
+ * Disables and shows message on run button indicating that run files have benn
+ * changed.
  */
-void IndirectDiffractionReduction::runFilesChanged()
-{
+void IndirectDiffractionReduction::runFilesChanged() {
   m_uiForm.pbRun->setEnabled(false);
   m_uiForm.pbRun->setText("Editing...");
 }
 
-
 /**
- * Disables and shows message on run button to indicate searching for data files.
+ * Disables and shows message on run button to indicate searching for data
+ * files.
  */
-void IndirectDiffractionReduction::runFilesFinding()
-{
+void IndirectDiffractionReduction::runFilesFinding() {
   m_uiForm.pbRun->setEnabled(false);
   m_uiForm.pbRun->setText("Finding files...");
 }
 
-
 /**
  * Updates run button with result of file search.
  */
-void IndirectDiffractionReduction::runFilesFound()
-{
-  bool valid = m_uiForm.dem_rawFiles->isValid();
+void IndirectDiffractionReduction::runFilesFound() {
+  bool valid = m_uiForm.rfSampleFiles->isValid();
   m_uiForm.pbRun->setEnabled(valid);
 
-  if(valid)
+  if (valid)
     m_uiForm.pbRun->setText("Run");
   else
     m_uiForm.pbRun->setText("Invalid Run");
 
   // Disable sum files if only one file is given
-  int fileCount = m_uiForm.dem_rawFiles->getFilenames().size();
-  if(fileCount < 2)
-    m_uiForm.dem_ckSumFiles->setChecked(false);
+  int fileCount = m_uiForm.rfSampleFiles->getFilenames().size();
+  if (fileCount < 2)
+    m_uiForm.ckSumFiles->setChecked(false);
 }
 
-
 /**
  * Handles the user toggling the individual grouping check box.
  *
  * @param state The selection state of the check box
  */
-void IndirectDiffractionReduction::individualGroupingToggled(int state)
-{
+void IndirectDiffractionReduction::individualGroupingToggled(int state) {
   int itemCount = m_uiForm.cbPlotType->count();
 
-  switch(state)
-  {
-    case Qt::Unchecked:
-      if(itemCount == 4)
-      {
-        m_uiForm.cbPlotType->removeItem(3);
-        m_uiForm.cbPlotType->removeItem(2);
-      }
-      break;
-
-    case Qt::Checked:
-      if(itemCount == 2)
-      {
-        m_uiForm.cbPlotType->insertItem(2, "Contour");
-        m_uiForm.cbPlotType->insertItem(3, "Both");
-      }
-      break;
-
-    default:
-      return;
+  switch (state) {
+  case Qt::Unchecked:
+    if (itemCount == 4) {
+      m_uiForm.cbPlotType->removeItem(3);
+      m_uiForm.cbPlotType->removeItem(2);
+    }
+    break;
+
+  case Qt::Checked:
+    if (itemCount == 2) {
+      m_uiForm.cbPlotType->insertItem(2, "Contour");
+      m_uiForm.cbPlotType->insertItem(3, "Both");
+    }
+    break;
+
+  default:
+    return;
   }
 }
-
 }
 }
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectSqw.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectSqw.cpp
index 84912376515932c000de10622c06fd9b0ae14340..b9af18ebe087c9d62fdb0c5f7b440378fd8af05b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectSqw.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectSqw.cpp
@@ -63,6 +63,7 @@ namespace CustomInterfaces
     QString sampleWsName = m_uiForm.dsSampleInput->getCurrentDataName();
     QString sqwWsName = sampleWsName.left(sampleWsName.length() - 4) + "_sqw";
     QString eRebinWsName = sampleWsName.left(sampleWsName.length() - 4) + "_r";
+    QString method = m_uiForm.cbMethod->currentText();
 
     QString rebinString = m_uiForm.spQLow->text() + "," + m_uiForm.spQWidth->text() +
       "," + m_uiForm.spQHigh->text();
@@ -87,14 +88,6 @@ namespace CustomInterfaces
     QString eFixed = getInstrumentDetails()["Efixed"];
 
     IAlgorithm_sptr sqwAlg = AlgorithmManager::Instance().create("SofQW");
-    QString rebinType = m_uiForm.cbRebinType->currentText();
-
-    if(rebinType == "Parallelepiped")
-      sqwAlg->setProperty("Method", "Polygon");
-    else if(rebinType == "Parallelepiped/Fractional Area")
-      sqwAlg->setProperty("Method", "NormalisedPolygon");
-
-    // S(Q, w) algorithm
     sqwAlg->initialize();
 
     BatchAlgorithmRunner::AlgorithmRuntimeProps sqwInputProps;
@@ -107,6 +100,7 @@ namespace CustomInterfaces
     sqwAlg->setProperty("QAxisBinning", rebinString.toStdString());
     sqwAlg->setProperty("EMode", "Indirect");
     sqwAlg->setProperty("EFixed", eFixed.toStdString());
+    sqwAlg->setProperty("Method", method.toStdString());
 
     m_batchAlgoRunner->addAlgorithm(sqwAlg, sqwInputProps);
 
@@ -116,7 +110,7 @@ namespace CustomInterfaces
 
     sampleLogAlg->setProperty("LogName", "rebin_type");
     sampleLogAlg->setProperty("LogType", "String");
-    sampleLogAlg->setProperty("LogText", rebinType.toStdString());
+    sampleLogAlg->setProperty("LogText", method.toStdString());
 
     BatchAlgorithmRunner::AlgorithmRuntimeProps inputToAddSampleLogProps;
     inputToAddSampleLogProps["Workspace"] = sqwWsName.toStdString();
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectSymmetrise.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectSymmetrise.cpp
index b5de049ce9573a3de4f6ff19193b0c7fbd4e9466..666a817cc0f6001528d8a84d7f54d211b697e802 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectSymmetrise.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectSymmetrise.cpp
@@ -170,27 +170,51 @@ namespace CustomInterfaces
     QString workspaceName = m_uiForm.dsInput->getCurrentDataName();
     QString outputWorkspaceName = workspaceName.left(workspaceName.length() - 4) + "_sym" + workspaceName.right(4);
 
-    bool plot = m_uiForm.ckPlot->isChecked();
-    bool save = m_uiForm.ckSave->isChecked();
-
     double e_min = m_dblManager->value(m_properties["EMin"]);
     double e_max = m_dblManager->value(m_properties["EMax"]);
 
     IAlgorithm_sptr symmetriseAlg = AlgorithmManager::Instance().create("Symmetrise", -1);
     symmetriseAlg->initialize();
-    symmetriseAlg->setProperty("Sample", workspaceName.toStdString());
+    symmetriseAlg->setProperty("InputWorkspace", workspaceName.toStdString());
     symmetriseAlg->setProperty("XMin", e_min);
     symmetriseAlg->setProperty("XMax", e_max);
-    symmetriseAlg->setProperty("Plot", plot);
-    symmetriseAlg->setProperty("Save", save);
     symmetriseAlg->setProperty("OutputWorkspace", outputWorkspaceName.toStdString());
     symmetriseAlg->setProperty("OutputPropertiesTable", "__SymmetriseProps_temp");
 
+    m_batchAlgoRunner->addAlgorithm(symmetriseAlg);
+
+    if(m_uiForm.ckSave->isChecked())
+      addSaveWorkspaceToQueue(outputWorkspaceName);
+
     // Set the workspace name for Python script export
     m_pythonExportWsName = outputWorkspaceName.toStdString();
 
+    // Handle algorithm completion signal
+    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(algorithmComplete(bool)));
+
     // Execute algorithm on seperate thread
-    runAlgorithm(symmetriseAlg);
+    m_batchAlgoRunner->executeBatchAsync();
+  }
+
+  /**
+   * Handle plotting result workspace.
+   *
+   * @param error If the algorithm failed
+   */
+  void IndirectSymmetrise::algorithmComplete(bool error)
+  {
+    disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(algorithmComplete(bool)));
+
+    if(error)
+      return;
+
+    if(m_uiForm.ckPlot->isChecked())
+    {
+      QStringList workspaces;
+      workspaces << m_uiForm.dsInput->getCurrentDataName()
+                 << QString::fromStdString(m_pythonExportWsName);
+      plotSpectrum(workspaces);
+    }
   }
 
   /**
@@ -361,11 +385,9 @@ namespace CustomInterfaces
     // Run the algorithm on the preview spectrum only
     IAlgorithm_sptr symmetriseAlg = AlgorithmManager::Instance().create("Symmetrise", -1);
     symmetriseAlg->initialize();
-    symmetriseAlg->setProperty("Sample", workspaceName.toStdString());
+    symmetriseAlg->setProperty("InputWorkspace", workspaceName.toStdString());
     symmetriseAlg->setProperty("XMin", e_min);
     symmetriseAlg->setProperty("XMax", e_max);
-    symmetriseAlg->setProperty("Plot", false);
-    symmetriseAlg->setProperty("Save", false);
     symmetriseAlg->setProperty("SpectraRange", spectraRange);
     symmetriseAlg->setProperty("OutputWorkspace", "__Symmetrise_temp");
     symmetriseAlg->setProperty("OutputPropertiesTable", "__SymmetriseProps_temp");
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectTab.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectTab.cpp
index 27c0e8a8aa42227bba34e3b055bf67bb2b1921e1..d43adde5238c7ddc477c8ad0f1be41305809e62e 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectTab.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectTab.cpp
@@ -13,451 +13,519 @@ using namespace Mantid::Geometry;
 using namespace Mantid::Kernel;
 using namespace MantidQt::MantidWidgets;
 
-namespace
-{
-  Mantid::Kernel::Logger g_log("IndirectTab");
+namespace {
+Mantid::Kernel::Logger g_log("IndirectTab");
 }
 
-namespace MantidQt
-{
-namespace CustomInterfaces
-{
-  //----------------------------------------------------------------------------------------------
-  /** Constructor
-   */
-  IndirectTab::IndirectTab(QObject* parent) : QObject(parent),
-      m_properties(),
-      m_dblManager(new QtDoublePropertyManager()), m_blnManager(new QtBoolPropertyManager()), m_grpManager(new QtGroupPropertyManager()),
-      m_dblEdFac(new DoubleEditorFactory()),
-      m_pythonRunner(),
-      m_tabStartTime(DateAndTime::getCurrentTime()), m_tabEndTime(DateAndTime::maximum())
-  {
-    m_parentWidget = dynamic_cast<QWidget *>(parent);
-
-    m_batchAlgoRunner = new MantidQt::API::BatchAlgorithmRunner(m_parentWidget);
-    m_valInt = new QIntValidator(m_parentWidget);
-    m_valDbl = new QDoubleValidator(m_parentWidget);
-    m_valPosDbl = new QDoubleValidator(m_parentWidget);
-
-    const double tolerance = 0.00001;
-    m_valPosDbl->setBottom(tolerance);
-
-    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(algorithmFinished(bool)));
-    connect(&m_pythonRunner, SIGNAL(runAsPythonScript(const QString&, bool)), this, SIGNAL(runAsPythonScript(const QString&, bool)));
-  }
-
-
-  //----------------------------------------------------------------------------------------------
-  /** Destructor
-   */
-  IndirectTab::~IndirectTab()
-  {
-  }
-
-
-  void IndirectTab::runTab()
-  {
-    if(validate())
-    {
-      m_tabStartTime = DateAndTime::getCurrentTime();
-      run();
-    }
-    else
-    {
-      g_log.warning("Failed to validate indirect tab input!");
-    }
-  }
-
-
-  void IndirectTab::setupTab()
-  {
-    setup();
-  }
-
-
-  bool IndirectTab::validateTab()
-  {
-    return validate();
-  }
-
-
-  /**
-   * Handles generating a Python script for the algorithms run on the current tab.
-   */
-  void IndirectTab::exportPythonScript()
-  {
-    g_log.information() << "Python export for workspace: " << m_pythonExportWsName <<
-      ", between " << m_tabStartTime << " and " << m_tabEndTime << std::endl;
-
-    // Take the search times to be a second either side of the actual times, just in case
-    DateAndTime startSearchTime = m_tabStartTime - 1.0;
-    DateAndTime endSearchTime = m_tabEndTime + 1.0;
-
-    // Don't let the user change the time range
-    QStringList enabled;
-    enabled << "Filename" << "InputWorkspace" << "UnrollAll" << "SpecifyAlgorithmVersions";
-
-    // Give some indication to the user that they will have to specify the workspace
-    if(m_pythonExportWsName.empty())
-      g_log.warning("This tab has not specified a result workspace name.");
-
-    // Set default properties
-    QHash<QString, QString> props;
-    props["Filename"] = "IndirectInterfacePythonExport.py";
-    props["InputWorkspace"] = QString::fromStdString(m_pythonExportWsName);
-    props["SpecifyAlgorithmVersions"] = "Specify All";
-    props["UnrollAll"] = "1";
-    props["StartTimestamp"] = QString::fromStdString(startSearchTime.toISO8601String());
-    props["EndTimestamp"] = QString::fromStdString(endSearchTime.toISO8601String());
-
-    // Create an algorithm dialog for the script export algorithm
-    MantidQt::API::InterfaceManager interfaceManager;
-    MantidQt::API::AlgorithmDialog *dlg = interfaceManager.createDialogFromName("GeneratePythonScript", -1,
-        NULL, false, props, "", enabled);
-
-    // Show the dialog
-    dlg->show();
-    dlg->raise();
-    dlg->activateWindow();
-  }
-
-
-  /**
-   * Run the load algorithm with the supplied filename and spectrum range
-   *
-   * @param filename :: The name of the file to load
-   * @param outputName :: The name of the output workspace
-   * @param specMin :: Lower spectra bound
-   * @param specMax :: Upper spectra bound
-   * @return If the algorithm was successful
-   */
-  bool IndirectTab::loadFile(const QString& filename, const QString& outputName,
-      const int specMin, const int specMax)
-  {
-    Algorithm_sptr load = AlgorithmManager::Instance().createUnmanaged("Load", -1);
-    load->initialize();
-
-    load->setProperty("Filename", filename.toStdString());
-    load->setProperty("OutputWorkspace", outputName.toStdString());
-
-    if(specMin != -1)
-      load->setPropertyValue("SpectrumMin", boost::lexical_cast<std::string>(specMin));
-
-    if(specMax != -1)
-      load->setPropertyValue("SpectrumMax", boost::lexical_cast<std::string>(specMax));
-
-    load->execute();
-
-    // If reloading fails we're out of options
-    return load->isExecuted();
-  }
-
+namespace MantidQt {
+namespace CustomInterfaces {
+//----------------------------------------------------------------------------------------------
+/** Constructor
+ */
+IndirectTab::IndirectTab(QObject *parent)
+    : QObject(parent), m_properties(),
+      m_dblManager(new QtDoublePropertyManager()),
+      m_blnManager(new QtBoolPropertyManager()),
+      m_grpManager(new QtGroupPropertyManager()),
+      m_dblEdFac(new DoubleEditorFactory()), m_pythonRunner(),
+      m_tabStartTime(DateAndTime::getCurrentTime()),
+      m_tabEndTime(DateAndTime::maximum()) {
+  m_parentWidget = dynamic_cast<QWidget *>(parent);
+
+  m_batchAlgoRunner = new MantidQt::API::BatchAlgorithmRunner(m_parentWidget);
+  m_valInt = new QIntValidator(m_parentWidget);
+  m_valDbl = new QDoubleValidator(m_parentWidget);
+  m_valPosDbl = new QDoubleValidator(m_parentWidget);
+
+  const double tolerance = 0.00001;
+  m_valPosDbl->setBottom(tolerance);
+
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(algorithmFinished(bool)));
+  connect(&m_pythonRunner, SIGNAL(runAsPythonScript(const QString &, bool)),
+          this, SIGNAL(runAsPythonScript(const QString &, bool)));
+}
 
-  /**
-   * Configures the SaveNexusProcessed algorithm to save a workspace in the default
-   * save directory and adds the algorithm to the batch queue.
-   *
-   * This uses the plotSpectrum function from the Python API.
-   *
-   * @param wsName Name of workspace to save
-   * @param filename Name of file to save as (including extension)
-   */
-  void IndirectTab::addSaveWorkspaceToQueue(const QString & wsName, const QString & filename)
-  {
-    // Setup the input workspace property
-    API::BatchAlgorithmRunner::AlgorithmRuntimeProps saveProps;
-    saveProps["InputWorkspace"] = wsName.toStdString();
-
-    // Setup the algorithm
-    IAlgorithm_sptr saveAlgo = AlgorithmManager::Instance().create("SaveNexusProcessed");
-    saveAlgo->initialize();
-
-    if(filename.isEmpty())
-      saveAlgo->setProperty("Filename", wsName.toStdString() + ".nxs");
-    else
-      saveAlgo->setProperty("Filename", filename.toStdString());
-
-    // Add the save algorithm to the batch
-    m_batchAlgoRunner->addAlgorithm(saveAlgo, saveProps);
+//----------------------------------------------------------------------------------------------
+/** Destructor
+ */
+IndirectTab::~IndirectTab() {}
+
+void IndirectTab::runTab() {
+  if (validate()) {
+    m_tabStartTime = DateAndTime::getCurrentTime();
+    run();
+  } else {
+    g_log.warning("Failed to validate indirect tab input!");
   }
+}
 
+void IndirectTab::setupTab() { setup(); }
+
+bool IndirectTab::validateTab() { return validate(); }
+
+/**
+ * Handles generating a Python script for the algorithms run on the current tab.
+ */
+void IndirectTab::exportPythonScript() {
+  g_log.information() << "Python export for workspace: " << m_pythonExportWsName
+                      << ", between " << m_tabStartTime << " and "
+                      << m_tabEndTime << std::endl;
+
+  // Take the search times to be a second either side of the actual times, just
+  // in case
+  DateAndTime startSearchTime = m_tabStartTime - 1.0;
+  DateAndTime endSearchTime = m_tabEndTime + 1.0;
+
+  // Don't let the user change the time range
+  QStringList enabled;
+  enabled << "Filename"
+          << "InputWorkspace"
+          << "UnrollAll"
+          << "SpecifyAlgorithmVersions";
+
+  // Give some indication to the user that they will have to specify the
+  // workspace
+  if (m_pythonExportWsName.empty())
+    g_log.warning("This tab has not specified a result workspace name.");
+
+  // Set default properties
+  QHash<QString, QString> props;
+  props["Filename"] = "IndirectInterfacePythonExport.py";
+  props["InputWorkspace"] = QString::fromStdString(m_pythonExportWsName);
+  props["SpecifyAlgorithmVersions"] = "Specify All";
+  props["UnrollAll"] = "1";
+  props["StartTimestamp"] =
+      QString::fromStdString(startSearchTime.toISO8601String());
+  props["EndTimestamp"] =
+      QString::fromStdString(endSearchTime.toISO8601String());
+
+  // Create an algorithm dialog for the script export algorithm
+  MantidQt::API::InterfaceManager interfaceManager;
+  MantidQt::API::AlgorithmDialog *dlg = interfaceManager.createDialogFromName(
+      "GeneratePythonScript", -1, NULL, false, props, "", enabled);
+
+  // Show the dialog
+  dlg->show();
+  dlg->raise();
+  dlg->activateWindow();
+}
 
-  /**
-   * Creates a spectrum plot of one or more workspaces at a given spectrum
-   * index.
-   *
-   * This uses the plotSpectrum function from the Python API.
-   *
-   * @param workspaceNames List of names of workspaces to plot
-   * @param specIndex Index of spectrum from each workspace to plot
-   */
-  void IndirectTab::plotSpectrum(const QStringList & workspaceNames, int specIndex)
-  {
-    QString pyInput = "from mantidplot import plotSpectrum\n";
-
-    pyInput += "plotSpectrum(['";
-    pyInput += workspaceNames.join("','");
-    pyInput += "'], ";
-    pyInput += QString::number(specIndex);
-    pyInput += ")\n";
-
-    m_pythonRunner.runPythonCode(pyInput);
-  }
-
+/**
+ * Run the load algorithm with the supplied filename and spectrum range
+ *
+ * @param filename :: The name of the file to load
+ * @param outputName :: The name of the output workspace
+ * @param specMin :: Lower spectra bound
+ * @param specMax :: Upper spectra bound
+ * @return If the algorithm was successful
+ */
+bool IndirectTab::loadFile(const QString &filename, const QString &outputName,
+                           const int specMin, const int specMax) {
+  Algorithm_sptr load =
+      AlgorithmManager::Instance().createUnmanaged("Load", -1);
+  load->initialize();
+
+  load->setProperty("Filename", filename.toStdString());
+  load->setProperty("OutputWorkspace", outputName.toStdString());
+
+  if (specMin != -1)
+    load->setPropertyValue("SpectrumMin",
+                           boost::lexical_cast<std::string>(specMin));
+
+  if (specMax != -1)
+    load->setPropertyValue("SpectrumMax",
+                           boost::lexical_cast<std::string>(specMax));
+
+  load->execute();
+
+  // If reloading fails we're out of options
+  return load->isExecuted();
+}
 
-  /**
-   * Creates a spectrum plot of a single workspace at a given spectrum
-   * index.
-   *
-   * @param workspaceName Names of workspace to plot
-   * @param specIndex Index of spectrum to plot
-   */
-  void IndirectTab::plotSpectrum(const QString & workspaceName, int specIndex)
-  {
-    QStringList workspaceNames;
-    workspaceNames << workspaceName;
-    plotSpectrum(workspaceNames, specIndex);
-  }
+/**
+ * Configures the SaveNexusProcessed algorithm to save a workspace in the
+ *default
+ * save directory and adds the algorithm to the batch queue.
+ *
+ * This uses the plotSpectrum function from the Python API.
+ *
+ * @param wsName Name of workspace to save
+ * @param filename Name of file to save as (including extension)
+ */
+void IndirectTab::addSaveWorkspaceToQueue(const QString &wsName,
+                                          const QString &filename) {
+  // Setup the input workspace property
+  API::BatchAlgorithmRunner::AlgorithmRuntimeProps saveProps;
+  saveProps["InputWorkspace"] = wsName.toStdString();
+
+  // Setup the algorithm
+  IAlgorithm_sptr saveAlgo =
+      AlgorithmManager::Instance().create("SaveNexusProcessed");
+  saveAlgo->initialize();
+
+  if (filename.isEmpty())
+    saveAlgo->setProperty("Filename", wsName.toStdString() + ".nxs");
+  else
+    saveAlgo->setProperty("Filename", filename.toStdString());
+
+  // Add the save algorithm to the batch
+  m_batchAlgoRunner->addAlgorithm(saveAlgo, saveProps);
+}
 
+/**
+ * Gets the suffix of a workspace (i.e. part after last underscore (red, sqw)).
+ *
+ * @param wsName Name of workspace
+ * @return Suffix, or empty string if no underscore
+ */
+QString IndirectTab::getWorkspaceSuffix(const QString &wsName) {
+  int lastUnderscoreIndex = wsName.lastIndexOf("_");
+  if (lastUnderscoreIndex == -1)
+    return QString();
+
+  return wsName.right(lastUnderscoreIndex);
+}
 
-  /**
-   * Creates a spectrum plot of one or more workspaces with the range of
-   * spectra [specStart, specEnd)
-   *
-   * This uses the plotSpectrum function from the Python API.
-   *
-   * @param workspaceNames List of names of workspaces to plot
-   * @param specStart Range start index
-   * @param specEnd Range end index
-   */
-  void IndirectTab::plotSpectrum(const QStringList & workspaceNames, int specStart, int specEnd)
-  {
-    QString pyInput = "from mantidplot import plotSpectrum\n";
-
-    pyInput += "plotSpectrum(['";
-    pyInput += workspaceNames.join("','");
-    pyInput += "'], range(";
-    pyInput += QString::number(specStart);
-    pyInput += ",";
-    pyInput += QString::number(specEnd);
-    pyInput += "))\n";
-
-    m_pythonRunner.runPythonCode(pyInput);
-  }
+/**
+ * Returns the basename of a workspace (i.e. the part before the last
+ *underscore)
+ *
+ * e.g. basename of irs26176_graphite002_red is irs26176_graphite002
+ *
+ * @param wsName Name of workspace
+ * @return Base name, or wsName if no underscore
+ */
+QString IndirectTab::getWorkspaceBasename(const QString &wsName) {
+  int lastUnderscoreIndex = wsName.lastIndexOf("_");
+  if (lastUnderscoreIndex == -1)
+    return QString(wsName);
+
+  return wsName.left(lastUnderscoreIndex);
+}
 
+/**
+ * Creates a spectrum plot of one or more workspaces at a given spectrum
+ * index.
+ *
+ * This uses the plotSpectrum function from the Python API.
+ *
+ * @param workspaceNames List of names of workspaces to plot
+ * @param specIndex Index of spectrum from each workspace to plot
+ */
+void IndirectTab::plotSpectrum(const QStringList &workspaceNames,
+                               int specIndex) {
+  if (workspaceNames.isEmpty())
+    return;
+
+  QString pyInput = "from mantidplot import plotSpectrum\n";
+
+  pyInput += "plotSpectrum(['";
+  pyInput += workspaceNames.join("','");
+  pyInput += "'], ";
+  pyInput += QString::number(specIndex);
+  pyInput += ")\n";
+
+  m_pythonRunner.runPythonCode(pyInput);
+}
 
-  /**
-   * Creates a spectrum plot of a single workspace with the range of
-   * spectra [specStart, specEnd)
-   *
-   * This uses the plotSpectrum function from the Python API.
-   *
-   * @param workspaceName Names of workspace to plot
-   * @param specStart Range start index
-   * @param specEnd Range end index
-   */
-  void IndirectTab::plotSpectrum(const QString & workspaceName, int specStart, int specEnd)
-  {
-    QStringList workspaceNames;
-    workspaceNames << workspaceName;
-    plotSpectrum(workspaceNames, specStart, specEnd);
-  }
+/**
+ * Creates a spectrum plot of a single workspace at a given spectrum
+ * index.
+ *
+ * @param workspaceName Names of workspace to plot
+ * @param specIndex Index of spectrum to plot
+ */
+void IndirectTab::plotSpectrum(const QString &workspaceName, int specIndex) {
+  if (workspaceName.isEmpty())
+    return;
+
+  QStringList workspaceNames;
+  workspaceNames << workspaceName;
+  plotSpectrum(workspaceNames, specIndex);
+}
 
+/**
+ * Creates a spectrum plot of one or more workspaces with the range of
+ * spectra [specStart, specEnd)
+ *
+ * This uses the plotSpectrum function from the Python API.
+ *
+ * @param workspaceNames List of names of workspaces to plot
+ * @param specStart Range start index
+ * @param specEnd Range end index
+ */
+void IndirectTab::plotSpectrum(const QStringList &workspaceNames, int specStart,
+                               int specEnd) {
+  if (workspaceNames.isEmpty())
+    return;
+
+  QString pyInput = "from mantidplot import plotSpectrum\n";
+
+  pyInput += "plotSpectrum(['";
+  pyInput += workspaceNames.join("','");
+  pyInput += "'], range(";
+  pyInput += QString::number(specStart);
+  pyInput += ",";
+  pyInput += QString::number(specEnd + 1);
+  pyInput += "))\n";
+
+  m_pythonRunner.runPythonCode(pyInput);
+}
 
-  /**
-   * Plots a contour (2D) plot of a given workspace.
-   *
-   * This uses the plot2D function from the Python API.
-   *
-   * @param workspaceName Name of workspace to plot
-   */
-  void IndirectTab::plot2D(const QString & workspaceName)
-  {
-    QString pyInput = "from mantidplot import plot2D\n";
+/**
+ * Creates a spectrum plot of a single workspace with the range of
+ * spectra [specStart, specEnd)
+ *
+ * This uses the plotSpectrum function from the Python API.
+ *
+ * @param workspaceName Names of workspace to plot
+ * @param specStart Range start index
+ * @param specEnd Range end index
+ */
+void IndirectTab::plotSpectrum(const QString &workspaceName, int specStart,
+                               int specEnd) {
+  if (workspaceName.isEmpty())
+    return;
+
+  QStringList workspaceNames;
+  workspaceNames << workspaceName;
+  plotSpectrum(workspaceNames, specStart, specEnd);
+}
 
-    pyInput += "plot2D('";
-    pyInput += workspaceName;
-    pyInput += "')\n";
+/**
+ * Plots a contour (2D) plot of a given workspace.
+ *
+ * This uses the plot2D function from the Python API.
+ *
+ * @param workspaceName Name of workspace to plot
+ */
+void IndirectTab::plot2D(const QString &workspaceName) {
+  if (workspaceName.isEmpty())
+    return;
 
-    m_pythonRunner.runPythonCode(pyInput);
-  }
+  QString pyInput = "from mantidplot import plot2D\n";
 
+  pyInput += "plot2D('";
+  pyInput += workspaceName;
+  pyInput += "')\n";
 
-  /**
-   * Creates a time bin plot of one or more workspaces at a given spectrum
-   * index.
-   *
-   * This uses the plotTimeBin function from the Python API.
-   *
-   * @param workspaceNames List of names of workspaces to plot
-   * @param specIndex Index of spectrum from each workspace to plot
-   */
-  void IndirectTab::plotTimeBin(const QStringList & workspaceNames, int specIndex)
-  {
-    QString pyInput = "from mantidplot import plotTimeBin\n";
-
-    pyInput += "plotTimeBin(['";
-    pyInput += workspaceNames.join("','");
-    pyInput += "'], ";
-    pyInput += QString::number(specIndex);
-    pyInput += ")\n";
-
-    m_pythonRunner.runPythonCode(pyInput);
-  }
+  m_pythonRunner.runPythonCode(pyInput);
+}
 
+/**
+ * Creates a time bin plot of one or more workspaces at a given spectrum
+ * index.
+ *
+ * This uses the plotTimeBin function from the Python API.
+ *
+ * @param workspaceNames List of names of workspaces to plot
+ * @param specIndex Index of spectrum from each workspace to plot
+ */
+void IndirectTab::plotTimeBin(const QStringList &workspaceNames,
+                              int specIndex) {
+  if (workspaceNames.isEmpty())
+    return;
+
+  QString pyInput = "from mantidplot import plotTimeBin\n";
+
+  pyInput += "plotTimeBin(['";
+  pyInput += workspaceNames.join("','");
+  pyInput += "'], ";
+  pyInput += QString::number(specIndex);
+  pyInput += ")\n";
+
+  m_pythonRunner.runPythonCode(pyInput);
+}
 
-  /**
-   * Creates a time bin plot of a single workspace at a given spectrum
-   * index.
-   *
-   * @param workspaceName Names of workspace to plot
-   * @param specIndex Index of spectrum to plot
-   */
-  void IndirectTab::plotTimeBin(const QString & workspaceName, int specIndex)
-  {
-    QStringList workspaceNames;
-    workspaceNames << workspaceName;
-    plotTimeBin(workspaceNames, specIndex);
-  }
+/**
+ * Creates a time bin plot of a single workspace at a given spectrum
+ * index.
+ *
+ * @param workspaceName Names of workspace to plot
+ * @param specIndex Index of spectrum to plot
+ */
+void IndirectTab::plotTimeBin(const QString &workspaceName, int specIndex) {
+  if (workspaceName.isEmpty())
+    return;
+
+  QStringList workspaceNames;
+  workspaceNames << workspaceName;
+  plotTimeBin(workspaceNames, specIndex);
+}
 
+/**
+ * Sets the edge bounds of plot to prevent the user inputting invalid values
+ * Also sets limits for range selector movement
+ *
+ * @param rs :: Pointer to the RangeSelector
+ * @param min :: The lower bound property in the property browser
+ * @param max :: The upper bound property in the property browser
+ * @param bounds :: The upper and lower bounds to be set
+ */
+void IndirectTab::setPlotPropertyRange(RangeSelector *rs, QtProperty *min,
+                                       QtProperty *max,
+                                       const QPair<double, double> &bounds) {
+  m_dblManager->setMinimum(min, bounds.first);
+  m_dblManager->setMaximum(min, bounds.second);
+  m_dblManager->setMinimum(max, bounds.first);
+  m_dblManager->setMaximum(max, bounds.second);
+  rs->setRange(bounds.first, bounds.second);
+}
 
-  /**
-   * Sets the edge bounds of plot to prevent the user inputting invalid values
-   * Also sets limits for range selector movement
-   *
-   * @param rs :: Pointer to the RangeSelector
-   * @param min :: The lower bound property in the property browser
-   * @param max :: The upper bound property in the property browser
-   * @param bounds :: The upper and lower bounds to be set
-   */
-  void IndirectTab::setPlotPropertyRange(RangeSelector * rs, QtProperty* min, QtProperty* max,
-      const QPair<double, double> & bounds)
-  {
-    m_dblManager->setMinimum(min, bounds.first);
-    m_dblManager->setMaximum(min, bounds.second);
-    m_dblManager->setMinimum(max, bounds.first);
-    m_dblManager->setMaximum(max, bounds.second);
-    rs->setRange(bounds.first, bounds.second);
-  }
+/**
+ * Set the position of the range selectors on the mini plot
+ *
+ * @param rs :: Pointer to the RangeSelector
+ * @param lower :: The lower bound property in the property browser
+ * @param upper :: The upper bound property in the property browser
+ * @param bounds :: The upper and lower bounds to be set
+ */
+void IndirectTab::setRangeSelector(RangeSelector *rs, QtProperty *lower,
+                                   QtProperty *upper,
+                                   const QPair<double, double> &bounds) {
+  m_dblManager->setValue(lower, bounds.first);
+  m_dblManager->setValue(upper, bounds.second);
+  rs->setMinimum(bounds.first);
+  rs->setMaximum(bounds.second);
+}
 
+/**
+ * Gets the energy mode from a workspace based on the X unit.
+ *
+ * Units of dSpacing typically denote diffraction, hence Elastic.
+ * All other units default to spectroscopy, therefore Indirect.
+ *
+ * @param ws Pointer to the workspace
+ * @return Energy mode
+ */
+std::string IndirectTab::getEMode(Mantid::API::MatrixWorkspace_sptr ws) {
+  Mantid::Kernel::Unit_sptr xUnit = ws->getAxis(0)->unit();
+  std::string xUnitName = xUnit->caption();
+
+  g_log.debug() << "X unit name is: " << xUnitName << std::endl;
+
+  if (boost::algorithm::find_first(xUnitName, "d-Spacing"))
+    return "Elastic";
+
+  return "Indirect";
+}
 
-  /**
-   * Set the position of the range selectors on the mini plot
-   *
-   * @param rs :: Pointer to the RangeSelector
-   * @param lower :: The lower bound property in the property browser
-   * @param upper :: The upper bound property in the property browser
-   * @param bounds :: The upper and lower bounds to be set
-   */
-  void IndirectTab::setRangeSelector(RangeSelector * rs, QtProperty* lower, QtProperty* upper,
-      const QPair<double, double> & bounds)
-  {
-    m_dblManager->setValue(lower, bounds.first);
-    m_dblManager->setValue(upper, bounds.second);
-    rs->setMinimum(bounds.first);
-    rs->setMaximum(bounds.second);
+/**
+ * Gets the eFixed value from the workspace using the instrument parameters.
+ *
+ * @param ws Pointer to the workspace
+ * @return eFixed value
+ */
+double IndirectTab::getEFixed(Mantid::API::MatrixWorkspace_sptr ws) {
+  Mantid::Geometry::Instrument_const_sptr inst = ws->getInstrument();
+  if (!inst)
+    throw std::runtime_error("No instrument on workspace");
+
+  // Try to get the parameter form the base instrument
+  if (inst->hasParameter("Efixed"))
+    return inst->getNumberParameter("Efixed")[0];
+
+  // Try to get it form the analyser component
+  if (inst->hasParameter("analyser")) {
+    std::string analyserName = inst->getStringParameter("analyser")[0];
+    auto analyserComp = inst->getComponentByName(analyserName);
+
+    if (analyserComp && analyserComp->hasParameter("Efixed"))
+      return analyserComp->getNumberParameter("Efixed")[0];
   }
 
+  throw std::runtime_error("Instrument has no efixed parameter");
+}
 
-  /**
-   * Gets the energy mode from a workspace based on the X unit.
-   *
-   * Units of dSpacing typically denote diffraction, hence Elastic.
-   * All other units default to spectroscopy, therefore Indirect.
-   *
-   * @param ws Pointer to the workspace
-   * @return Energy mode
-   */
-  std::string IndirectTab::getEMode(Mantid::API::MatrixWorkspace_sptr ws)
-  {
-    Mantid::Kernel::Unit_sptr xUnit = ws->getAxis(0)->unit();
-    std::string xUnitName = xUnit->caption();
-
-    g_log.debug() << "X unit name is: " << xUnitName << std::endl;
-
-    if(boost::algorithm::find_first(xUnitName, "d-Spacing"))
-      return "Elastic";
-
-    return "Indirect";
-  }
-
+/**
+ * Checks the workspace's intrument for a resolution parameter to use as
+ * a default for the energy range on the mini plot
+ *
+ * @param workspace :: Name of the workspace to use
+ * @param res :: The retrieved values for the resolution parameter (if one was
+ *found)
+ */
+bool IndirectTab::getResolutionRangeFromWs(const QString &workspace,
+                                           QPair<double, double> &res) {
+  auto ws = Mantid::API::AnalysisDataService::Instance()
+                .retrieveWS<const Mantid::API::MatrixWorkspace>(
+                    workspace.toStdString());
+  return getResolutionRangeFromWs(ws, res);
+}
 
-  /**
-   * Gets the eFixed value from the workspace using the instrument parameters.
-   *
-   * @param ws Pointer to the workspace
-   * @return eFixed value
-   */
-  double IndirectTab::getEFixed(Mantid::API::MatrixWorkspace_sptr ws)
-  {
-    Mantid::Geometry::Instrument_const_sptr inst = ws->getInstrument();
-    if(!inst)
-      throw std::runtime_error("No instrument on workspace");
-
-    // Try to get the parameter form the base instrument
-    if(inst->hasParameter("Efixed"))
-      return inst->getNumberParameter("Efixed")[0];
-
-    // Try to get it form the analyser component
-    if(inst->hasParameter("analyser"))
-    {
-      std::string analyserName = inst->getStringParameter("analyser")[0];
-      auto analyserComp = inst->getComponentByName(analyserName);
-
-      if(analyserComp && analyserComp->hasParameter("Efixed"))
-        return analyserComp->getNumberParameter("Efixed")[0];
+/**
+ * Checks the workspace's intrument for a resolution parameter to use as
+ * a default for the energy range on the mini plot
+ *
+ * @param ws :: Pointer to the workspace to use
+ * @param res :: The retrieved values for the resolution parameter (if one was
+ *found)
+ */
+bool IndirectTab::getResolutionRangeFromWs(
+    Mantid::API::MatrixWorkspace_const_sptr ws, QPair<double, double> &res) {
+  auto inst = ws->getInstrument();
+  auto analyser = inst->getStringParameter("analyser");
+
+  if (analyser.size() > 0) {
+    auto comp = inst->getComponentByName(analyser[0]);
+    if (comp) {
+      auto params = comp->getNumberParameter("resolution", true);
+
+      // set the default instrument resolution
+      if (params.size() > 0) {
+        res = qMakePair(-params[0], params[0]);
+        return true;
+      }
     }
-
-    throw std::runtime_error("Instrument has no efixed parameter");
-  }
-
-
-  /**
-   * Runs an algorithm async
-   *
-   * @param algorithm :: The algorithm to be run
-   */
-  void IndirectTab::runAlgorithm(const Mantid::API::IAlgorithm_sptr algorithm)
-  {
-    algorithm->setRethrows(true);
-
-    // There should never really be unexecuted algorithms in the queue, but it is worth warning in case of possible weirdness
-    size_t batchQueueLength = m_batchAlgoRunner->queueLength();
-    if(batchQueueLength > 0)
-      g_log.warning() << "Batch queue already contains " << batchQueueLength << " algorithms!" << std::endl;
-
-    m_batchAlgoRunner->addAlgorithm(algorithm);
-    m_batchAlgoRunner->executeBatchAsync();
   }
 
+  return false;
+}
 
-  /**
-   * Handles getting the results of an algorithm running async
-   *
-   * @param error :: True if execution failed, false otherwise
-   */
-  void IndirectTab::algorithmFinished(bool error)
-  {
-    m_tabEndTime = DateAndTime::getCurrentTime();
+/**
+ * Runs an algorithm async
+ *
+ * @param algorithm :: The algorithm to be run
+ */
+void IndirectTab::runAlgorithm(const Mantid::API::IAlgorithm_sptr algorithm) {
+  algorithm->setRethrows(true);
+
+  // There should never really be unexecuted algorithms in the queue, but it is
+  // worth warning in case of possible weirdness
+  size_t batchQueueLength = m_batchAlgoRunner->queueLength();
+  if (batchQueueLength > 0)
+    g_log.warning() << "Batch queue already contains " << batchQueueLength
+                    << " algorithms!" << std::endl;
+
+  m_batchAlgoRunner->addAlgorithm(algorithm);
+  m_batchAlgoRunner->executeBatchAsync();
+}
 
-    if(error)
-    {
-      emit showMessageBox("Error running algorithm. \nSee results log for details.");
-    }
+/**
+ * Handles getting the results of an algorithm running async
+ *
+ * @param error :: True if execution failed, false otherwise
+ */
+void IndirectTab::algorithmFinished(bool error) {
+  m_tabEndTime = DateAndTime::getCurrentTime();
+
+  if (error) {
+    emit showMessageBox(
+        "Error running algorithm. \nSee results log for details.");
   }
+}
 
-
-  /**
-   * Run Python code and return anything printed to stdout.
-   *
-   * @param code Python code the execute
-   * @param no_output Enable to ignore any output
-   * @returns What was printed to stdout
-   */
-  QString IndirectTab::runPythonCode(QString code, bool no_output)
-  {
-    return m_pythonRunner.runPythonCode(code, no_output);
-  }
+/**
+ * Run Python code and return anything printed to stdout.
+ *
+ * @param code Python code the execute
+ * @param no_output Enable to ignore any output
+ * @returns What was printed to stdout
+ */
+QString IndirectTab::runPythonCode(QString code, bool no_output) {
+  return m_pythonRunner.runPythonCode(code, no_output);
+}
 
 } // namespace CustomInterfaces
 } // namespace Mantid
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectTransmission.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectTransmission.cpp
index 874594b291bc86b5fef92f044881a33405579d9b..e65ff61d9205be15f9b99ca5716e70225126b627 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectTransmission.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IndirectTransmission.cpp
@@ -49,10 +49,12 @@ namespace CustomInterfaces
     transAlg->setProperty("CanWorkspace", canWsName.toStdString());
     transAlg->setProperty("OutputWorkspace", outWsName.toStdString());
 
-    transAlg->setProperty("Plot", m_uiForm.ckPlot->isChecked());
-    transAlg->setProperty("Save", m_uiForm.ckSave->isChecked());
+    m_batchAlgoRunner->addAlgorithm(transAlg);
 
-    runAlgorithm(transAlg);
+    if(m_uiForm.ckSave->isChecked())
+      addSaveWorkspaceToQueue(outWsName);
+
+    m_batchAlgoRunner->executeBatchAsync();
   }
 
   bool IndirectTransmission::validate()
@@ -92,9 +94,6 @@ namespace CustomInterfaces
     transAlg->setProperty("CanWorkspace", canWsName.toStdString());
     transAlg->setProperty("OutputWorkspace", outWsName.toStdString());
 
-    transAlg->setProperty("Plot", false);
-    transAlg->setProperty("Save", false);
-
     // Set the workspace name for Python script export
     m_pythonExportWsName = sampleWsName.toStdString() + "_Trans";
 
@@ -109,6 +108,9 @@ namespace CustomInterfaces
     QString sampleWsName = m_uiForm.dsSampleInput->getCurrentDataName();
     QString outWsName = sampleWsName + "_trans";
 
+    if(m_uiForm.ckPlot->isChecked())
+      plotSpectrum(outWsName);
+
     WorkspaceGroup_sptr resultWsGroup = AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(outWsName.toStdString());
     std::vector<std::string> resultWsNames = resultWsGroup->getNames();
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Iqt.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Iqt.cpp
index ced56c51a16d6fd996cdd61ccf86f82c22644ee4..a27a5fbff59658ea0d5834cdf9be966eaf9fe684 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Iqt.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Iqt.cpp
@@ -1,5 +1,6 @@
 #include "MantidQtCustomInterfaces/Indirect/Iqt.h"
 
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidQtCustomInterfaces/UserInputValidator.h"
 #include "MantidQtMantidWidgets/RangeSelector.h"
 
@@ -23,7 +24,7 @@ namespace CustomInterfaces
 {
 namespace IDA
 {
-  Iqt::Iqt(QWidget * parent) : IDATab(parent),
+  Iqt::Iqt(QWidget * parent) : IndirectDataAnalysisTab(parent),
     m_furTree(NULL),
     m_furyResFileType()
   {
@@ -76,6 +77,7 @@ namespace IDA
     connect(m_dblManager, SIGNAL(valueChanged(QtProperty*, double)), this, SLOT(updatePropertyValues(QtProperty*, double)));
     connect(m_uiForm.dsInput, SIGNAL(dataReady(const QString&)), this, SLOT(plotInput(const QString&)));
     connect(m_uiForm.dsResolution, SIGNAL(dataReady(const QString&)), this, SLOT(calculateBinning()));
+    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(algorithmComplete(bool)));
   }
 
   void Iqt::run()
@@ -91,10 +93,7 @@ namespace IDA
     double energyMax = m_dblManager->value(m_properties["EHigh"]);
     double numBins = m_dblManager->value(m_properties["SampleBinning"]);
 
-    bool plot = m_uiForm.ckPlot->isChecked();
-    bool save = m_uiForm.ckSave->isChecked();
-
-    IAlgorithm_sptr furyAlg = AlgorithmManager::Instance().create("TransformToIqt", -1);
+    IAlgorithm_sptr furyAlg = AlgorithmManager::Instance().create("TransformToIqt");
     furyAlg->initialize();
 
     furyAlg->setProperty("SampleWorkspace", wsName.toStdString());
@@ -104,15 +103,33 @@ namespace IDA
     furyAlg->setProperty("EnergyMax", energyMax);
     furyAlg->setProperty("BinReductionFactor", numBins);
 
-    furyAlg->setProperty("Plot", plot);
-    furyAlg->setProperty("Save", save);
     furyAlg->setProperty("DryRun", false);
 
-    runAlgorithm(furyAlg);
+    m_batchAlgoRunner->addAlgorithm(furyAlg);
 
     // Set the result workspace for Python script export
     QString sampleName = m_uiForm.dsInput->getCurrentDataName();
     m_pythonExportWsName = sampleName.left(sampleName.lastIndexOf("_")).toStdString() + "_iqt";
+
+    // Add save step
+    if(m_uiForm.ckSave->isChecked())
+      addSaveWorkspaceToQueue(QString::fromStdString(m_pythonExportWsName));
+
+    m_batchAlgoRunner->executeBatchAsync();
+  }
+
+  /**
+   * Handle algorithm completion.
+   *
+   * @param error If the algorithm failed
+   */
+  void Iqt::algorithmComplete(bool error)
+  {
+    if(error)
+      return;
+
+    if(m_uiForm.ckPlot->isChecked())
+      plotSpectrum(QString::fromStdString(m_pythonExportWsName));
   }
 
   /**
@@ -203,8 +220,6 @@ namespace IDA
     furyAlg->setProperty("EnergyMax", energyMax);
     furyAlg->setProperty("BinReductionFactor", numBins);
 
-    furyAlg->setProperty("Plot", false);
-    furyAlg->setProperty("Save", false);
     furyAlg->setProperty("DryRun", true);
 
     furyAlg->execute();
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IqtFit.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IqtFit.cpp
index fb9e16d6f6dc5923f89ef04d90264af0ebe87a69..73551bd016c94b0fe116358e3a8051c4b20dd6a6 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IqtFit.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/IqtFit.cpp
@@ -29,7 +29,7 @@ namespace CustomInterfaces
 namespace IDA
 {
   IqtFit::IqtFit(QWidget * parent) :
-    IDATab(parent),
+    IndirectDataAnalysisTab(parent),
     m_stringManager(NULL), m_ffTree(NULL),
     m_ffRangeManager(NULL),
     m_fixedProps(),
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/JumpFit.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/JumpFit.cpp
index 8e4f96c8d6df3ee2305d9ef3d25a7c96f12c57a4..ec80e3a331cd57d508bf52d68fda61e0c0fc36e8 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/JumpFit.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/JumpFit.cpp
@@ -1,4 +1,7 @@
 #include "MantidAPI/AlgorithmManager.h"
+#include "MantidAPI/FunctionFactory.h"
+#include "MantidAPI/IFunction.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/Run.h"
 #include "MantidAPI/TextAxis.h"
 #include "MantidQtCustomInterfaces/Indirect/JumpFit.h"
@@ -9,350 +12,475 @@
 
 using namespace Mantid::API;
 
-namespace MantidQt
-{
-	namespace CustomInterfaces
-	{
-		JumpFit::JumpFit(QWidget * parent) :
-			IndirectBayesTab(parent)
-		{
-			m_uiForm.setupUi(parent);
-
-      // Create range selector
-      auto qRangeSelector = m_uiForm.ppPlot->addRangeSelector("JumpFitQ");
-      connect(qRangeSelector, SIGNAL(selectionChangedLazy(double, double)), this, SLOT(qRangeChanged(double, double)));
-
-			// Add the properties browser to the ui form
-			m_uiForm.treeSpace->addWidget(m_propTree);
-
-			m_properties["QMin"] = m_dblManager->addProperty("QMin");
-			m_properties["QMax"] = m_dblManager->addProperty("QMax");
-
-			m_dblManager->setDecimals(m_properties["QMin"], NUM_DECIMALS);
-			m_dblManager->setDecimals(m_properties["QMax"], NUM_DECIMALS);
-
-			m_propTree->addProperty(m_properties["QMin"]);
-			m_propTree->addProperty(m_properties["QMax"]);
-
-			m_uiForm.cbWidth->setEnabled(false);
-
-			// Connect data selector to handler method
-			connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString&)), this, SLOT(handleSampleInputReady(const QString&)));
-			// Connect width selector to handler method
-			connect(m_uiForm.cbWidth, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(handleWidthChange(const QString&)));
-
-      // Connect algorithm runner to completion handler function
-      connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this, SLOT(fitAlgDone(bool)));
-		}
-
-    void JumpFit::setup()
-    {
+namespace MantidQt {
+namespace CustomInterfaces {
+namespace IDA {
+
+JumpFit::JumpFit(QWidget *parent)
+    : IndirectDataAnalysisTab(parent), m_jfTree(NULL) {
+  m_uiForm.setupUi(parent);
+}
+
+void JumpFit::setup() {
+  // Create range selector
+  auto qRangeSelector = m_uiForm.ppPlot->addRangeSelector("JumpFitQ");
+  connect(qRangeSelector, SIGNAL(selectionChangedLazy(double, double)), this,
+          SLOT(qRangeChanged(double, double)));
+
+  // Add the properties browser to the ui form
+  m_jfTree = new QtTreePropertyBrowser();
+  m_jfTree->setFactoryForManager(m_dblManager, m_dblEdFac);
+  m_uiForm.treeSpace->addWidget(m_jfTree);
+
+  // Fitting range
+  m_properties["QMin"] = m_dblManager->addProperty("QMin");
+  m_properties["QMax"] = m_dblManager->addProperty("QMax");
+
+  m_dblManager->setDecimals(m_properties["QMin"], NUM_DECIMALS);
+  m_dblManager->setDecimals(m_properties["QMax"], NUM_DECIMALS);
+
+  m_jfTree->addProperty(m_properties["QMin"]);
+  m_jfTree->addProperty(m_properties["QMax"]);
+
+  // Fitting function
+  m_properties["FitFunction"] = m_grpManager->addProperty("Fitting Parameters");
+  m_jfTree->addProperty(m_properties["FitFunction"]);
+
+  m_uiForm.cbWidth->setEnabled(false);
+
+  // Connect data selector to handler method
+  connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString &)), this,
+          SLOT(handleSampleInputReady(const QString &)));
+  // Connect width selector to handler method
+  connect(m_uiForm.cbWidth, SIGNAL(currentIndexChanged(const QString &)), this,
+          SLOT(handleWidthChange(const QString &)));
+
+  // Connect algorithm runner to completion handler function
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(fitAlgDone(bool)));
+
+  // Update fit parameters in browser when function is selected
+  connect(m_uiForm.cbFunction, SIGNAL(currentIndexChanged(const QString &)),
+          this, SLOT(fitFunctionSelected(const QString &)));
+
+  connect(m_dblManager, SIGNAL(valueChanged(QtProperty *, double)), this,
+          SLOT(updateProperties(QtProperty *, double)));
+
+  fitFunctionSelected(m_uiForm.cbFunction->currentText());
+}
+
+/**
+ * Validate the form to check the program can be run
+ *
+ * @return :: Whether the form was valid
+ */
+bool JumpFit::validate() {
+  UserInputValidator uiv;
+  uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
+
+  // this workspace doesn't have any valid widths
+  if (m_spectraList.size() == 0) {
+    uiv.addErrorMessage(
+        "Input workspace doesn't appear to contain any width data.");
+  }
+
+  QString errors = uiv.generateErrorMessage();
+  if (!errors.isEmpty()) {
+    emit showMessageBox(errors);
+    return false;
+  }
+
+  return true;
+}
+
+/**
+ * Collect the settings on the GUI and build a python
+ * script that runs JumpFit
+ */
+void JumpFit::run() {
+  bool plot = m_uiForm.chkPlot->isChecked();
+  bool save = m_uiForm.chkSave->isChecked();
+  runImpl(plot, save);
+}
+
+/**
+ * Runs the JumpFit algorithm with preview parameters to update the preview
+ * plot.
+ */
+void JumpFit::runPreviewAlgorithm() { runImpl(); }
+
+/**
+ * Runs algorithm.
+ *
+ * @param plot Enable/disable plotting
+ * @param save Enable/disable saving
+ */
+void JumpFit::runImpl(bool plot, bool save) {
+  // Do noting with invalid data
+  if (!m_uiForm.dsSample->isValid())
+    return;
+
+  if (m_batchAlgoRunner->queueLength() > 0)
+    return;
+
+  // Fit function to use
+  QString functionName = m_uiForm.cbFunction->currentText();
+  QString functionString = "name=" + functionName;
+
+  // Build function string
+  QStringList parameters = getFunctionParameters(functionName);
+  for (auto it = parameters.begin(); it != parameters.end(); ++it) {
+    QString parameterName = *it;
+
+    // Get the value form double manager
+    QString name = "parameter_" + *it;
+    double value = m_dblManager->value(m_properties[name]);
+    QString parameterValue = QString::number(value);
+
+    functionString += "," + parameterName + "=" + parameterValue;
+  }
+
+  std::string widthText = m_uiForm.cbWidth->currentText().toStdString();
+  int width = m_spectraList[widthText];
+  QString sample = m_uiForm.dsSample->getCurrentDataName();
+  QString outputName =
+      getWorkspaceBasename(sample) + "_" + functionName + "_fit";
+
+  // Setup fit algorithm
+  m_fitAlg = AlgorithmManager::Instance().create("Fit");
+  m_fitAlg->initialize();
+
+  m_fitAlg->setProperty("Function", functionString.toStdString());
+  m_fitAlg->setProperty("InputWorkspace", sample.toStdString());
+  m_fitAlg->setProperty("WorkspaceIndex", width);
+  m_fitAlg->setProperty("IgnoreInvalidData", true);
+  m_fitAlg->setProperty("StartX", m_dblManager->value(m_properties["QMin"]));
+  m_fitAlg->setProperty("EndX", m_dblManager->value(m_properties["QMax"]));
+  m_fitAlg->setProperty("CreateOutput", true);
+  m_fitAlg->setProperty("Output", outputName.toStdString());
+
+  m_batchAlgoRunner->addAlgorithm(m_fitAlg);
+
+  // Add save step if required
+  if (save) {
+    QString outWsName = outputName + "_Workspace";
+    addSaveWorkspaceToQueue(outWsName);
+  }
+
+  // Process plotting in MantidPlot
+  if (plot)
+    connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+            SLOT(plotFitResult(bool)));
+
+  m_batchAlgoRunner->executeBatchAsync();
+}
+
+/**
+ * Handles the JumpFit algorithm finishing, used to plot fit in miniplot.
+ *
+ * @param error True if the algorithm failed, false otherwise
+ */
+void JumpFit::fitAlgDone(bool error) {
+  // Ignore errors
+  if (error)
+    return;
+
+  std::string outName = m_fitAlg->getPropertyValue("Output");
+
+  // Get output workspace name
+  std::string outWsName = outName + "_Workspace";
+
+  // Get the output workspace group
+  MatrixWorkspace_sptr outputWorkspace =
+      AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(outWsName);
+  TextAxis *axis = dynamic_cast<TextAxis *>(outputWorkspace->getAxis(1));
+
+  // Find the fit and diff curves (data should already be plotted)
+  for (unsigned int histIndex = 0;
+       histIndex < outputWorkspace->getNumberHistograms(); histIndex++) {
+    QString specName = QString::fromStdString(axis->label(histIndex));
+
+    // Fit curve is red
+    if (specName == "Calc")
+      m_uiForm.ppPlot->addSpectrum("Fit", outputWorkspace, histIndex, Qt::red);
+
+    // Difference curve is green
+    if (specName == "Diff")
+      m_uiForm.ppPlot->addSpectrum("Diff", outputWorkspace, histIndex,
+                                   Qt::green);
+  }
+
+  // Update parameters in UI
+  std::string paramTableName = outName + "_Parameters";
+
+  ITableWorkspace_sptr paramTable =
+      AnalysisDataService::Instance().retrieveWS<ITableWorkspace>(
+          paramTableName);
+
+  // Don't run the algorithm when updating parameter values
+  disconnect(m_dblManager, SIGNAL(valueChanged(QtProperty *, double)), this,
+             SLOT(runPreviewAlgorithm()));
+
+  for (auto it = m_properties.begin(); it != m_properties.end(); ++it) {
+    QString propName(it.key());
+    if (propName.startsWith("parameter_")) {
+      size_t row(0), col(0);
+      paramTable->find(propName.split("_")[1].toStdString(), row, col);
+      col++;
+      double value = paramTable->cell<double>(row, col);
+      m_dblManager->setValue(m_properties[propName], value);
     }
+  }
+
+  connect(m_dblManager, SIGNAL(valueChanged(QtProperty *, double)), this,
+          SLOT(runPreviewAlgorithm()));
+}
+
+/**
+ * Handles plotting of results within MantidPlot plots
+ *
+ * @param error If the algorithm failed
+ */
+void JumpFit::plotFitResult(bool error) {
+  disconnect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+             SLOT(plotFitResult(bool)));
+
+  // Ignore errors
+  if (error)
+    return;
+
+  // Get output workspace name
+  std::string outWsName = m_fitAlg->getPropertyValue("Output") + "_Workspace";
+
+  // Plot in MantidPlot
+  plotSpectrum(QString::fromStdString(outWsName), 0, 2);
+}
+
+/**
+ * Set the data selectors to use the default save directory
+ * when browsing for input files.
+ *
+* @param settings :: The current settings
+ */
+void JumpFit::loadSettings(const QSettings &settings) {
+  m_uiForm.dsSample->readSettings(settings.group());
+}
+
+/**
+ * Plots the loaded file to the miniplot and sets the guides
+ * and the range
+ *
+ * @param filename :: The name of the workspace to plot
+ */
+void JumpFit::handleSampleInputReady(const QString &filename) {
+  // Disable things that run the preview algorithm
+  disconnect(m_dblManager, SIGNAL(valueChanged(QtProperty *, double)), this,
+             SLOT(runPreviewAlgorithm()));
+  disconnect(m_uiForm.cbWidth, SIGNAL(currentIndexChanged(const QString &)),
+             this, SLOT(runPreviewAlgorithm()));
+
+  // Scale to convert to HWHM
+  IAlgorithm_sptr scaleAlg = AlgorithmManager::Instance().create("Scale");
+  scaleAlg->initialize();
+  scaleAlg->setProperty("InputWorkspace", filename.toStdString());
+  scaleAlg->setProperty("OutputWorkspace", filename.toStdString());
+  scaleAlg->setProperty("Factor", 0.5);
+  scaleAlg->execute();
+
+  auto ws = Mantid::API::AnalysisDataService::Instance().retrieve(
+      filename.toStdString());
+  auto mws = boost::dynamic_pointer_cast<Mantid::API::MatrixWorkspace>(ws);
+
+  findAllWidths(mws);
+
+  auto qRangeSelector = m_uiForm.ppPlot->getRangeSelector("JumpFitQ");
+
+  if (m_spectraList.size() > 0) {
+    m_uiForm.cbWidth->setEnabled(true);
+
+    std::string currentWidth = m_uiForm.cbWidth->currentText().toStdString();
+
+    m_uiForm.ppPlot->clear();
+    m_uiForm.ppPlot->addSpectrum("Sample", filename,
+                                 m_spectraList[currentWidth]);
+
+    QPair<double, double> res;
+    QPair<double, double> range = m_uiForm.ppPlot->getCurveRange("Sample");
+
+    // Use the values from the instrument parameter file if we can
+    if (getResolutionRangeFromWs(filename, res))
+      setRangeSelector(qRangeSelector, m_properties["QMin"],
+                       m_properties["QMax"], res);
+    else
+      setRangeSelector(qRangeSelector, m_properties["QMin"],
+                       m_properties["QMax"], range);
+
+    setPlotPropertyRange(qRangeSelector, m_properties["QMin"],
+                         m_properties["QMax"], range);
+  } else {
+    m_uiForm.cbWidth->setEnabled(false);
+    emit showMessageBox("Workspace doesn't appear to contain any width data");
+  }
+
+  // Update preview plot
+  runPreviewAlgorithm();
+
+  // Re-enable things that run the preview algorithm
+  connect(m_dblManager, SIGNAL(valueChanged(QtProperty *, double)), this,
+          SLOT(runPreviewAlgorithm()));
+  connect(m_uiForm.cbWidth, SIGNAL(currentIndexChanged(const QString &)), this,
+          SLOT(runPreviewAlgorithm()));
+}
+
+/**
+ * Find all of the spectra in the workspace that have width data
+ *
+ * @param ws :: The workspace to search
+ */
+void JumpFit::findAllWidths(Mantid::API::MatrixWorkspace_const_sptr ws) {
+  m_uiForm.cbWidth->blockSignals(true);
+  m_uiForm.cbWidth->clear();
+  m_spectraList.clear();
+
+  for (size_t i = 0; i < ws->getNumberHistograms(); ++i) {
+    auto axis = dynamic_cast<Mantid::API::TextAxis *>(ws->getAxis(1));
+    if (!axis)
+      return;
+
+    std::string title = axis->label(i);
+
+    // check if the axis labels indicate this spectrum is width data
+    size_t qLinesWidthIndex = title.find(".Width");
+    size_t convFitWidthIndex = title.find(".FWHM");
+
+    bool qLinesWidth = qLinesWidthIndex != std::string::npos;
+    bool convFitWidth = convFitWidthIndex != std::string::npos;
+
+    // if we get a match, add this spectrum to the combobox
+    if (convFitWidth || qLinesWidth) {
+      std::string cbItemName = "";
+      size_t substrIndex = 0;
+
+      if (qLinesWidth) {
+        substrIndex = qLinesWidthIndex;
+      } else if (convFitWidth) {
+        substrIndex = convFitWidthIndex;
+      }
 
-		/**
-		 * Validate the form to check the program can be run
-		 *
-		 * @return :: Whether the form was valid
-		 */
-		bool JumpFit::validate()
-		{
-			UserInputValidator uiv;
-			uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
-
-			//this workspace doesn't have any valid widths
-			if(m_spectraList.size() == 0)
-			{
-				uiv.addErrorMessage("Input workspace doesn't appear to contain any width data.");
-			}
-
-			QString errors = uiv.generateErrorMessage();
-			if (!errors.isEmpty())
-			{
-				emit showMessageBox(errors);
-				return false;
-			}
-
-			return true;
-		}
-
-		/**
-		 * Collect the settings on the GUI and build a python
-		 * script that runs JumpFit
-		 */
-		void JumpFit::run()
-		{
-			bool save = m_uiForm.chkSave->isChecked();
-			bool plot = m_uiForm.chkPlot->isChecked();
-
-      runImpl(plot, save);
-		}
-
-    /**
-     * Runs the JumpFit algorithm with preview parameters to update the preview plot.
-     */
-    void JumpFit::runPreviewAlgorithm()
-    {
-      runImpl();
-    }
+      cbItemName = title.substr(0, substrIndex);
+      m_spectraList[cbItemName] = static_cast<int>(i);
+      m_uiForm.cbWidth->addItem(QString(cbItemName.c_str()));
 
-    /**
-     * Runs algorithm.
-     *
-     * @param plot Enable/disable plotting
-     * @param save Enable/disable saving
-     */
-    void JumpFit::runImpl(bool plot, bool save)
-    {
-      // Do noting with invalid data
-			if(!m_uiForm.dsSample->isValid())
+      // display widths f1.f1, f2.f1 and f2.f2
+      if (m_uiForm.cbWidth->count() == 3) {
         return;
-
-			// Fit function to use
-			QString fitFunction("ChudleyElliot");
-			switch(m_uiForm.cbFunction->currentIndex())
-			{
-				case 0:
-					fitFunction = "ChudleyElliot";
-					break;
-				case 1:
-					fitFunction = "HallRoss";
-					break;
-				case 2:
-					fitFunction = "FickDiffusion";
-					break;
-				case 3:
-					fitFunction = "TeixeiraWater";
-					break;
-			}
-
-      // Loaded workspace name
-			QString sample = m_uiForm.dsSample->getCurrentDataName();
-			auto ws = Mantid::API::AnalysisDataService::Instance().retrieve(sample.toStdString());
-
-			std::string widthText = m_uiForm.cbWidth->currentText().toStdString();
-      long width = m_spectraList[widthText];
-
-      fitAlg = AlgorithmManager::Instance().create("JumpFit");
-      fitAlg->initialize();
-
-      fitAlg->setProperty("InputWorkspace", ws);
-      fitAlg->setProperty("Function", fitFunction.toStdString());
-
-      fitAlg->setProperty("Width", width);
-      fitAlg->setProperty("QMin", m_dblManager->value(m_properties["QMin"]));
-      fitAlg->setProperty("QMax", m_dblManager->value(m_properties["QMax"]));
-
-      fitAlg->setProperty("Plot", plot);
-      fitAlg->setProperty("Save", save);
-
-      if(m_batchAlgoRunner->queueLength() < 1)
-        runAlgorithm(fitAlg);
+      }
     }
+  }
+  m_uiForm.cbWidth->blockSignals(false);
+}
+
+/**
+ * Plots the loaded file to the miniplot when the selected spectrum changes
+ *
+ * @param text :: The name spectrum index to plot
+ */
+void JumpFit::handleWidthChange(const QString &text) {
+  QString sampleName = m_uiForm.dsSample->getCurrentDataName();
+  QString samplePath = m_uiForm.dsSample->getFullFilePath();
+
+  if (!sampleName.isEmpty() && m_spectraList.size() > 0) {
+    if (validate()) {
+      m_uiForm.ppPlot->clear();
+      m_uiForm.ppPlot->addSpectrum("Sample", sampleName,
+                                   m_spectraList[text.toStdString()]);
+    }
+  }
+}
+
+/**
+ * Updates the property manager when the range selector is moved on the mini
+ *plot.
+ *
+ * @param min :: The new value of the lower guide
+ * @param max :: The new value of the upper guide
+ */
+void JumpFit::qRangeChanged(double min, double max) {
+  m_dblManager->setValue(m_properties["QMin"], min);
+  m_dblManager->setValue(m_properties["QMax"], max);
+}
+
+/**
+ * Handles when properties in the property manager are updated.
+ *
+ * @param prop :: The property being updated
+ * @param val :: The new value for the property
+ */
+void JumpFit::updateProperties(QtProperty *prop, double val) {
+  UNUSED_ARG(val);
+
+  auto qRangeSelector = m_uiForm.ppPlot->getRangeSelector("JumpFitQ");
+
+  if (prop == m_properties["QMin"] || prop == m_properties["QMax"]) {
+    auto bounds = qMakePair(m_dblManager->value(m_properties["QMin"]),
+                            m_dblManager->value(m_properties["QMax"]));
+    setRangeSelector(qRangeSelector, m_properties["QMin"], m_properties["QMax"],
+                     bounds);
+  }
+}
+
+/**
+ * Gets a list of parameters for a given fit function.
+ *
+ * @return List fo parameters
+ */
+QStringList JumpFit::getFunctionParameters(const QString &functionName) {
+  QStringList parameters;
+
+  IFunction_sptr func =
+      FunctionFactory::Instance().createFunction(functionName.toStdString());
+
+  for (size_t i = 0; i < func->nParams(); i++)
+    parameters << QString::fromStdString(func->parameterName(i));
+
+  return parameters;
+}
+
+/**
+ * Handles a new fit function being selected.
+ *
+ * @param functionName Name of new fit function
+ */
+void JumpFit::fitFunctionSelected(const QString &functionName) {
+  // Remove current parameter elements
+  for (auto it = m_properties.begin(); it != m_properties.end();) {
+    if (it.key().startsWith("parameter_")) {
+      delete it.value();
+      it = m_properties.erase(it);
+    } else {
+      ++it;
+    }
+  }
 
-    /**
-     * Handles the JumpFit algorithm finishing, used to plot fit in miniplot.
-     *
-     * @param error True if the algorithm failed, false otherwise
-     */
-    void JumpFit::fitAlgDone(bool error)
-    {
-      // Ignore errors
-      if(error)
-        return;
-
-      std::string outWsName = fitAlg->getPropertyValue("Output") + "_Workspace";
-      MatrixWorkspace_sptr outputWorkspace = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(outWsName);
-      TextAxis* axis = dynamic_cast<TextAxis*>(outputWorkspace->getAxis(1));
-
-      for(unsigned int histIndex = 0; histIndex < outputWorkspace->getNumberHistograms(); histIndex++)
-      {
-        QString specName = QString::fromStdString(axis->label(histIndex));
+  // Don't run the algorithm when updating parameter values
+  disconnect(m_dblManager, SIGNAL(valueChanged(QtProperty *, double)), this,
+             SLOT(runPreviewAlgorithm()));
 
-        if(specName == "Calc")
-          m_uiForm.ppPlot->addSpectrum("Fit", outputWorkspace, histIndex, Qt::red);
+  // Add new parameter elements
+  QStringList parameters = getFunctionParameters(functionName);
+  for (auto it = parameters.begin(); it != parameters.end(); ++it) {
+    QString name = "parameter_" + *it;
+    m_properties[name] = m_dblManager->addProperty(*it);
+    m_dblManager->setValue(m_properties[name], 1.0);
+    m_properties["FitFunction"]->addSubProperty(m_properties[name]);
+  }
 
-        if(specName == "Diff")
-          m_uiForm.ppPlot->addSpectrum("Diff", outputWorkspace, histIndex, Qt::green);
-      }
-    }
+  connect(m_dblManager, SIGNAL(valueChanged(QtProperty *, double)), this,
+          SLOT(runPreviewAlgorithm()));
 
-		/**
-		 * Set the data selectors to use the default save directory
-		 * when browsing for input files.
-		 *
-     * @param settings :: The current settings
-		 */
-		void JumpFit::loadSettings(const QSettings& settings)
-		{
-			m_uiForm.dsSample->readSettings(settings.group());
-		}
-
-		/**
-		 * Plots the loaded file to the miniplot and sets the guides
-		 * and the range
-		 *
-		 * @param filename :: The name of the workspace to plot
-		 */
-		void JumpFit::handleSampleInputReady(const QString& filename)
-		{
-      // Disable things that run the preview algorithm
-      disconnect(m_dblManager, SIGNAL(valueChanged(QtProperty*, double)), this, SLOT(runPreviewAlgorithm()));
-			disconnect(m_uiForm.cbFunction, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(runPreviewAlgorithm()));
-			disconnect(m_uiForm.cbWidth, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(runPreviewAlgorithm()));
-
-      // Scale to convert to HWHM
-      IAlgorithm_sptr scaleAlg = AlgorithmManager::Instance().create("Scale");
-      scaleAlg->initialize();
-      scaleAlg->setProperty("InputWorkspace", filename.toStdString());
-      scaleAlg->setProperty("OutputWorkspace", filename.toStdString());
-      scaleAlg->setProperty("Factor", 0.5);
-      scaleAlg->execute();
-
-			auto ws = Mantid::API::AnalysisDataService::Instance().retrieve(filename.toStdString());
-			auto mws = boost::dynamic_pointer_cast<Mantid::API::MatrixWorkspace>(ws);
-
-			findAllWidths(mws);
-
-      auto qRangeSelector = m_uiForm.ppPlot->getRangeSelector("JumpFitQ");
-
-			if(m_spectraList.size() > 0)
-			{
-				m_uiForm.cbWidth->setEnabled(true);
-
-				std::string currentWidth = m_uiForm.cbWidth->currentText().toStdString();
-
-        m_uiForm.ppPlot->clear();
-        m_uiForm.ppPlot->addSpectrum("Sample", filename, m_spectraList[currentWidth]);
-
-				QPair<double, double> res;
-				QPair<double, double> range = m_uiForm.ppPlot->getCurveRange("Sample");
-
-				// Use the values from the instrument parameter file if we can
-				if(getInstrumentResolution(filename, res))
-					setRangeSelector(qRangeSelector, m_properties["QMin"], m_properties["QMax"], res);
-				else
-					setRangeSelector(qRangeSelector, m_properties["QMin"], m_properties["QMax"], range);
-
-				setPlotPropertyRange(qRangeSelector, m_properties["QMin"], m_properties["QMax"], range);
-			}
-			else
-			{
-				m_uiForm.cbWidth->setEnabled(false);
-				emit showMessageBox("Workspace doesn't appear to contain any width data");
-			}
-
-      // Update preview plot
-      runPreviewAlgorithm();
-
-      // Re-enable things that run the preview algorithm
-      connect(m_dblManager, SIGNAL(valueChanged(QtProperty*, double)), this, SLOT(runPreviewAlgorithm()));
-			connect(m_uiForm.cbFunction, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(runPreviewAlgorithm()));
-			connect(m_uiForm.cbWidth, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(runPreviewAlgorithm()));
-		}
-
-		/**
-		 * Find all of the spectra in the workspace that have width data
-		 *
-		 * @param ws :: The workspace to search
-		 */
-		void JumpFit::findAllWidths(Mantid::API::MatrixWorkspace_const_sptr ws)
-		{
-			m_uiForm.cbWidth->clear();
-			m_spectraList.clear();
-
-			for (size_t i = 0; i < ws->getNumberHistograms(); ++i)
-			{
-				auto axis = dynamic_cast<Mantid::API::TextAxis*>(ws->getAxis(1));
-        if(!axis)
-          return;
-
-        std::string title = axis->label(i);
-
-				//check if the axis labels indicate this spectrum is width data
-				size_t qLinesWidthIndex = title.find(".Width");
-				size_t convFitWidthIndex = title.find(".FWHM");
-
-				bool qLinesWidth = qLinesWidthIndex != std::string::npos;
-				bool convFitWidth = convFitWidthIndex != std::string::npos;
-
-				//if we get a match, add this spectrum to the combobox
-				if(convFitWidth || qLinesWidth)
-				{
-					std::string cbItemName = "";
-					size_t substrIndex = 0;
-
-					if (qLinesWidth)
-					{
-						substrIndex = qLinesWidthIndex;
-					}
-					else if (convFitWidth)
-					{
-						substrIndex = convFitWidthIndex;
-					}
-
-					cbItemName = title.substr(0, substrIndex);
-					m_spectraList[cbItemName] = static_cast<int>(i);
-					m_uiForm.cbWidth->addItem(QString(cbItemName.c_str()));
-
-					//display widths f1.f1, f2.f1 and f2.f2
-					if (m_uiForm.cbWidth->count() == 3)
-					{
-						return;
-					}
-				}
-			}
-		}
-
-		/**
-		 * Plots the loaded file to the miniplot when the selected spectrum changes
-		 *
-		 * @param text :: The name spectrum index to plot
-		 */
-		void JumpFit::handleWidthChange(const QString& text)
-		{
-			QString sampleName = m_uiForm.dsSample->getCurrentDataName();
-			QString samplePath = m_uiForm.dsSample->getFullFilePath();
-
-			if(!sampleName.isEmpty() && m_spectraList.size() > 0)
-			{
-				if(validate())
-				{
-          m_uiForm.ppPlot->clear();
-          m_uiForm.ppPlot->addSpectrum("Sample", sampleName, m_spectraList[text.toStdString()]);
-				}
-			}
-		}
-
-		/**
-		 * Updates the property manager when the range selector is moved on the mini plot.
-		 *
-		 * @param min :: The new value of the lower guide
-		 * @param max :: The new value of the upper guide
-		 */
-		void JumpFit::qRangeChanged(double min, double max)
-    {
-      m_dblManager->setValue(m_properties["QMin"], min);
-			m_dblManager->setValue(m_properties["QMax"], max);
-    }
+  runPreviewAlgorithm();
+}
 
-		/**
-		 * Handles when properties in the property manager are updated.
-		 *
-		 * @param prop :: The property being updated
-		 * @param val :: The new value for the property
-		 */
-    void JumpFit::updateProperties(QtProperty* prop, double val)
-    {
-      auto qRangeSelector = m_uiForm.ppPlot->getRangeSelector("JumpFitQ");
-
-    	if(prop == m_properties["QMin"])
-    	{
-    		updateLowerGuide(qRangeSelector, m_properties["QMin"], m_properties["QMax"], val);
-    	}
-    	else if (prop == m_properties["QMax"])
-    	{
-				updateUpperGuide(qRangeSelector, m_properties["QMin"], m_properties["QMax"], val);
-    	}
-    }
-	} // namespace CustomInterfaces
+} // namespace IDA
+} // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/MSDFit.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/MSDFit.cpp
index 5b25bbf90a387579a68aac84e3158d482fa51e65..9820083fd191a7261e2e40d1344e33f062bd87de 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/MSDFit.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/MSDFit.cpp
@@ -1,5 +1,5 @@
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/WorkspaceGroup_fwd.h"
 #include "MantidQtCustomInterfaces/Indirect/MSDFit.h"
 #include "MantidQtCustomInterfaces/UserInputValidator.h"
 #include "MantidQtMantidWidgets/RangeSelector.h"
@@ -22,7 +22,7 @@ namespace CustomInterfaces
 {
 namespace IDA
 {
-  MSDFit::MSDFit(QWidget * parent) : IDATab(parent),
+  MSDFit::MSDFit(QWidget * parent) : IndirectDataAnalysisTab(parent),
     m_currentWsName(""), m_msdTree(NULL)
   {
     m_uiForm.setupUi(parent);
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Quasi.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Quasi.cpp
index 45f9cfb9f52c6980186d1fea721f2f2fbaccb101..5ecec24dba7de73b3a824424b43e05029e2e6e88 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Quasi.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Quasi.cpp
@@ -4,354 +4,367 @@
 
 using namespace Mantid::API;
 
-namespace MantidQt
-{
-	namespace CustomInterfaces
-	{
-		Quasi::Quasi(QWidget * parent) :
-			IndirectBayesTab(parent),
-      m_previewSpec(0)
-		{
-			m_uiForm.setupUi(parent);
-
-      // Create range selector
-      auto eRangeSelector = m_uiForm.ppPlot->addRangeSelector("QuasiERange");
-      connect(eRangeSelector, SIGNAL(minValueChanged(double)), this, SLOT(minValueChanged(double)));
-      connect(eRangeSelector, SIGNAL(maxValueChanged(double)), this, SLOT(maxValueChanged(double)));
-
-			// Add the properties browser to the UI form
-			m_uiForm.treeSpace->addWidget(m_propTree);
-
-			m_properties["EMin"] = m_dblManager->addProperty("EMin");
-			m_properties["EMax"] = m_dblManager->addProperty("EMax");
-			m_properties["SampleBinning"] = m_dblManager->addProperty("Sample Binning");
-			m_properties["ResBinning"] = m_dblManager->addProperty("Resolution Binning");
-
-			m_dblManager->setDecimals(m_properties["EMin"], NUM_DECIMALS);
-			m_dblManager->setDecimals(m_properties["EMax"], NUM_DECIMALS);
-			m_dblManager->setDecimals(m_properties["SampleBinning"], INT_DECIMALS);
-			m_dblManager->setDecimals(m_properties["ResBinning"], INT_DECIMALS);
-
-			m_propTree->addProperty(m_properties["EMin"]);
-			m_propTree->addProperty(m_properties["EMax"]);
-			m_propTree->addProperty(m_properties["SampleBinning"]);
-			m_propTree->addProperty(m_properties["ResBinning"]);
-
-			//Set default values
-			m_dblManager->setValue(m_properties["SampleBinning"], 1);
-			m_dblManager->setMinimum(m_properties["SampleBinning"], 1);
-			m_dblManager->setValue(m_properties["ResBinning"], 1);
-			m_dblManager->setMinimum(m_properties["ResBinning"], 1);
-
-			//Connect optional form elements with enabling checkboxes
-			connect(m_uiForm.chkFixWidth, SIGNAL(toggled(bool)), m_uiForm.mwFixWidthDat, SLOT(setEnabled(bool)));
-			connect(m_uiForm.chkUseResNorm, SIGNAL(toggled(bool)), m_uiForm.dsResNorm, SLOT(setEnabled(bool)));
-
-			//Connect the data selector for the sample to the mini plot
-			connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString&)), this, SLOT(handleSampleInputReady(const QString&)));
-
-      // Connect the progrm selector to its handler
-			connect(m_uiForm.cbProgram, SIGNAL(currentIndexChanged(int)), this, SLOT(handleProgramChange(int)));
-
-      // Connect preview spectrum spinner to handler
-      connect(m_uiForm.spPreviewSpectrum, SIGNAL(valueChanged(int)), this, SLOT(previewSpecChanged(int)));
-		}
-
-		/**
-		 * Set the data selectors to use the default save directory
-		 * when browsing for input files.
-		 *
-     * @param settings :: The current settings
-		 */
-		void Quasi::loadSettings(const QSettings& settings)
-		{
-			m_uiForm.dsSample->readSettings(settings.group());
-			m_uiForm.dsResolution->readSettings(settings.group());
-			m_uiForm.dsResNorm->readSettings(settings.group());
-			m_uiForm.mwFixWidthDat->readSettings(settings.group());
-		}
-
-    void Quasi::setup()
-    {
+namespace MantidQt {
+namespace CustomInterfaces {
+Quasi::Quasi(QWidget *parent) : IndirectBayesTab(parent), m_previewSpec(0) {
+  m_uiForm.setupUi(parent);
+
+  // Create range selector
+  auto eRangeSelector = m_uiForm.ppPlot->addRangeSelector("QuasiERange");
+  connect(eRangeSelector, SIGNAL(minValueChanged(double)), this,
+          SLOT(minValueChanged(double)));
+  connect(eRangeSelector, SIGNAL(maxValueChanged(double)), this,
+          SLOT(maxValueChanged(double)));
+
+  // Add the properties browser to the UI form
+  m_uiForm.treeSpace->addWidget(m_propTree);
+
+  m_properties["EMin"] = m_dblManager->addProperty("EMin");
+  m_properties["EMax"] = m_dblManager->addProperty("EMax");
+  m_properties["SampleBinning"] = m_dblManager->addProperty("Sample Binning");
+  m_properties["ResBinning"] = m_dblManager->addProperty("Resolution Binning");
+
+  m_dblManager->setDecimals(m_properties["EMin"], NUM_DECIMALS);
+  m_dblManager->setDecimals(m_properties["EMax"], NUM_DECIMALS);
+  m_dblManager->setDecimals(m_properties["SampleBinning"], INT_DECIMALS);
+  m_dblManager->setDecimals(m_properties["ResBinning"], INT_DECIMALS);
+
+  m_propTree->addProperty(m_properties["EMin"]);
+  m_propTree->addProperty(m_properties["EMax"]);
+  m_propTree->addProperty(m_properties["SampleBinning"]);
+  m_propTree->addProperty(m_properties["ResBinning"]);
+
+  // Set default values
+  m_dblManager->setValue(m_properties["SampleBinning"], 1);
+  m_dblManager->setMinimum(m_properties["SampleBinning"], 1);
+  m_dblManager->setValue(m_properties["ResBinning"], 1);
+  m_dblManager->setMinimum(m_properties["ResBinning"], 1);
+
+  // Connect optional form elements with enabling checkboxes
+  connect(m_uiForm.chkFixWidth, SIGNAL(toggled(bool)), m_uiForm.mwFixWidthDat,
+          SLOT(setEnabled(bool)));
+  connect(m_uiForm.chkUseResNorm, SIGNAL(toggled(bool)), m_uiForm.dsResNorm,
+          SLOT(setEnabled(bool)));
+
+  // Connect the data selector for the sample to the mini plot
+  connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString &)), this,
+          SLOT(handleSampleInputReady(const QString &)));
+
+  connect(m_uiForm.dsResolution, SIGNAL(dataReady(const QString &)), this,
+          SLOT(handleResolutionInputReady(const QString &)));
+
+  // Connect the progrm selector to its handler
+  connect(m_uiForm.cbProgram, SIGNAL(currentIndexChanged(int)), this,
+          SLOT(handleProgramChange(int)));
+
+  // Connect preview spectrum spinner to handler
+  connect(m_uiForm.spPreviewSpectrum, SIGNAL(valueChanged(int)), this,
+          SLOT(previewSpecChanged(int)));
+}
+
+/**
+ * Set the data selectors to use the default save directory
+ * when browsing for input files.
+ *
+* @param settings :: The current settings
+ */
+void Quasi::loadSettings(const QSettings &settings) {
+  m_uiForm.dsSample->readSettings(settings.group());
+  m_uiForm.dsResolution->readSettings(settings.group());
+  m_uiForm.dsResNorm->readSettings(settings.group());
+  m_uiForm.mwFixWidthDat->readSettings(settings.group());
+}
+
+void Quasi::setup() {}
+
+/**
+ * Validate the form to check the program can be run
+ *
+ * @return :: Whether the form was valid
+ */
+bool Quasi::validate() {
+  UserInputValidator uiv;
+  uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
+  uiv.checkDataSelectorIsValid("Resolution", m_uiForm.dsResolution);
+
+  // check that the ResNorm file is valid if we are using it
+  if (m_uiForm.chkUseResNorm->isChecked()) {
+    uiv.checkDataSelectorIsValid("ResNorm", m_uiForm.dsResNorm);
+  }
+
+  // check fixed width file exists
+  if (m_uiForm.chkFixWidth->isChecked() && !m_uiForm.mwFixWidthDat->isValid()) {
+    uiv.checkMWRunFilesIsValid("Width", m_uiForm.mwFixWidthDat);
+  }
+
+  QString errors = uiv.generateErrorMessage();
+  if (!errors.isEmpty()) {
+    emit showMessageBox(errors);
+    return false;
+  }
+
+  QString program = m_uiForm.cbProgram->currentText();
+  if (program == "Stretched Exponential") {
+    QString resName = m_uiForm.dsResolution->getCurrentDataName();
+    if (!resName.endsWith("_res")) {
+      emit showMessageBox("Stretched Exponential program can only be used with "
+                          "a resolution file.");
+      return false;
     }
-
-		/**
-		 * Validate the form to check the program can be run
-		 *
-		 * @return :: Whether the form was valid
-		 */
-		bool Quasi::validate()
-		{
-			UserInputValidator uiv;
-			uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
-			uiv.checkDataSelectorIsValid("Resolution", m_uiForm.dsResolution);
-
-			//check that the ResNorm file is valid if we are using it
-			if(m_uiForm.chkUseResNorm->isChecked())
-			{
-				uiv.checkDataSelectorIsValid("ResNorm", m_uiForm.dsResNorm);
-			}
-
-			//check fixed width file exists
-			if(m_uiForm.chkFixWidth->isChecked() &&
-					 !m_uiForm.mwFixWidthDat->isValid())
-			{
-				uiv.checkMWRunFilesIsValid("Width", m_uiForm.mwFixWidthDat);
-			}
-
-			QString errors = uiv.generateErrorMessage();
-			if (!errors.isEmpty())
-			{
-				emit showMessageBox(errors);
-				return false;
-			}
-
-			QString program = m_uiForm.cbProgram->currentText();
-      if(program == "Stretched Exponential")
-      {
-			  QString resName = m_uiForm.dsResolution->getCurrentDataName();
-        if(!resName.endsWith("_res"))
-        {
-          emit showMessageBox("Stretched Exponential program can only be used with a resolution file.");
-          return false;
-        }
-      }
-
-			return true;
-		}
-
-		/**
-		 * Collect the settings on the GUI and build a python
-		 * script that runs Quasi
-		 */
-		void Quasi::run()
-		{
-			// Using 1/0 instead of True/False for compatibility with underlying Fortran code
-			// in some places
-			QString save("False");
-			QString elasticPeak("False");
-			QString sequence("False");
-
-			QString fixedWidth("False");
-			QString fixedWidthFile("");
-
-			QString useResNorm("False");
-			QString resNormFile("");
-
-			QString pyInput =
-				"from IndirectBayes import QLRun\n";
-
-			QString sampleName = m_uiForm.dsSample->getCurrentDataName();
-			QString resName = m_uiForm.dsResolution->getCurrentDataName();
-
-			QString program = m_uiForm.cbProgram->currentText();
-
-			if(program == "Lorentzians")
-			{
-				program = "QL";
-			}
-			else
-			{
-				program = "QSe";
-			}
-
-			// Collect input from fit options section
-			QString background = m_uiForm.cbBackground->currentText();
-
-			if(m_uiForm.chkElasticPeak->isChecked()) { elasticPeak = "True"; }
-			if(m_uiForm.chkSequentialFit->isChecked()) { sequence = "True"; }
-
-			if(m_uiForm.chkFixWidth->isChecked())
-			{
-				fixedWidth = "True";
-				fixedWidthFile = m_uiForm.mwFixWidthDat->getFirstFilename();
-			}
-
-			if(m_uiForm.chkUseResNorm->isChecked())
-			{
-				useResNorm = "True";
-				resNormFile = m_uiForm.dsResNorm->getCurrentDataName();
-			}
-
-			QString fitOps = "[" + elasticPeak + ", '" + background + "', " + fixedWidth + ", " + useResNorm + "]";
-
-			// Collect input from the properties browser
-			QString eMin = m_properties["EMin"]->valueText();
-			QString eMax = m_properties["EMax"]->valueText();
-			QString eRange = "[" + eMin + "," + eMax + "]";
-
-			QString sampleBins = m_properties["SampleBinning"]->valueText();
-			QString resBins = m_properties["ResBinning"]->valueText();
-			QString nBins = "[" + sampleBins + "," + resBins + "]";
-
-			// Output options
-			if(m_uiForm.chkSave->isChecked()) { save = "True"; }
-			QString plot = m_uiForm.cbPlot->currentText();
-
-			pyInput += "QLRun('"+program+"','"+sampleName+"','"+resName+"','"+resNormFile+"',"+eRange+","
-										" "+nBins+","+fitOps+",'"+fixedWidthFile+"',"+sequence+", "
-										" Save="+save+", Plot='"+plot+"')\n";
-
-			runPythonScript(pyInput);
-
-      updateMiniPlot();
-		}
-
-    /**
-     * Updates the data and fit curves on the mini plot.
-     */
-    void Quasi::updateMiniPlot()
-    {
-      // Update sample plot
-      if(!m_uiForm.dsSample->isValid())
-        return;
-
-	  m_uiForm.ppPlot->clear();
-
-      QString sampleName = m_uiForm.dsSample->getCurrentDataName();
-	  m_uiForm.ppPlot->addSpectrum("Sample", sampleName, m_previewSpec);
-
-      // Update fit plot
-			QString program = m_uiForm.cbProgram->currentText();
-			if(program == "Lorentzians")
-				program = "QL";
-			else
-				program = "QSe";
-
-			QString resName = m_uiForm.dsResolution->getCurrentDataName();
-
-      // Should be either "red", "sqw" or "res"
-      QString resType = resName.right(3);
-
-      // Get the correct workspace name based on the type of resolution file
-      if(program == "QL")
-      {
-        if(resType == "res")
-          program += "r";
-        else
-          program += "d";
-      }
-
-      QString outWsName = sampleName.left(sampleName.size() - 3) + program + "_Workspace_" + QString::number(m_previewSpec);
-      if(!AnalysisDataService::Instance().doesExist(outWsName.toStdString()))
-        return;
-
-      MatrixWorkspace_sptr outputWorkspace = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(outWsName.toStdString());
-
-      TextAxis* axis = dynamic_cast<TextAxis*>(outputWorkspace->getAxis(1));
-
-      for(size_t histIndex = 0; histIndex < outputWorkspace->getNumberHistograms(); histIndex++)
-      {
-        QString specName = QString::fromStdString(axis->label(histIndex));
-        QColor curveColour;
-
-        if(specName.contains("fit.1"))
-          curveColour = Qt::red;
-        else if(specName.contains("fit.2"))
-          curveColour = Qt::magenta;
-
-        else if(specName.contains("diff.1"))
-          curveColour = Qt::green;
-        else if(specName.contains("diff.2"))
-          curveColour = Qt::cyan;
-
-        else
-          continue;
-
-        m_uiForm.ppPlot->addSpectrum(specName, outputWorkspace, histIndex, curveColour);
-      }
-    }
-
-		/**
-		 * Plots the loaded file to the miniplot and sets the guides
-		 * and the range
-		 *
-		 * @param filename :: The name of the workspace to plot
-		 */
-		void Quasi::handleSampleInputReady(const QString& filename)
-		{
-      MatrixWorkspace_sptr inWs = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(filename.toStdString());
-      int numHist = static_cast<int>(inWs->getNumberHistograms()) - 1;
-      m_uiForm.spPreviewSpectrum->setMaximum(numHist);
-      updateMiniPlot();
-
-			QPair<double, double> range = m_uiForm.ppPlot->getCurveRange("Sample");
-      auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("QuasiERange");
-
-			setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"], range);
-			setPlotPropertyRange(eRangeSelector, m_properties["EMin"], m_properties["EMax"], range);
-		}
-
-		/**
-		 * Updates the property manager when the lower guide is moved on the mini plot
-		 *
-		 * @param min :: The new value of the lower guide
-		 */
-		void Quasi::minValueChanged(double min)
-    {
-      m_dblManager->setValue(m_properties["EMin"], min);
-    }
-
-		/**
-		 * Updates the property manager when the upper guide is moved on the mini plot
-		 *
-		 * @param max :: The new value of the upper guide
-		 */
-    void Quasi::maxValueChanged(double max)
-    {
-			m_dblManager->setValue(m_properties["EMax"], max);
-    }
-
-		/**
-		 * Handles when properties in the property manager are updated.
-		 *
-		 * @param prop :: The property being updated
-		 * @param val :: The new value for the property
-		 */
-    void Quasi::updateProperties(QtProperty* prop, double val)
-    {
-      auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("QuasiERange");
-
-    	if(prop == m_properties["EMin"])
-    	{
-    		updateLowerGuide(eRangeSelector, m_properties["EMin"], m_properties["EMax"], val);
-    	}
-    	else if (prop == m_properties["EMax"])
-    	{
-				updateUpperGuide(eRangeSelector, m_properties["EMin"], m_properties["EMax"], val);
-    	}
-    }
-
-		/**
-		 * Handles when the slected item in the program combobox
-		 * is changed
-		 *
-		 * @param index :: The current index of the combobox
-		 */
-    void Quasi::handleProgramChange(int index)
-    {
-    	int numberOptions = m_uiForm.cbPlot->count();
-    	switch(index)
-    	{
-    		case 0:
-    			m_uiForm.cbPlot->setItemText(numberOptions-1, "Prob");
-    			break;
-    		case 1:
-    			m_uiForm.cbPlot->setItemText(numberOptions-1, "Beta");
-    			break;
-    	}
-    }
-
-    /**
-     * Handles setting a new preview spectrum on the preview plot.
-     *
-     * @param value Spectrum index
-     */
-    void Quasi::previewSpecChanged(int value)
-    {
-      m_previewSpec = value;
-      updateMiniPlot();
-    }
-
-	} // namespace CustomInterfaces
+  }
+
+  return true;
+}
+
+/**
+ * Collect the settings on the GUI and build a python
+ * script that runs Quasi
+ */
+void Quasi::run() {
+  // Using 1/0 instead of True/False for compatibility with underlying Fortran
+  // code
+  // in some places
+  QString save("False");
+  QString elasticPeak("False");
+  QString sequence("False");
+
+  QString fixedWidth("False");
+  QString fixedWidthFile("");
+
+  QString useResNorm("False");
+  QString resNormFile("");
+
+  QString pyInput = "from IndirectBayes import QLRun\n";
+
+  QString sampleName = m_uiForm.dsSample->getCurrentDataName();
+  QString resName = m_uiForm.dsResolution->getCurrentDataName();
+
+  QString program = m_uiForm.cbProgram->currentText();
+
+  if (program == "Lorentzians") {
+    program = "QL";
+  } else {
+    program = "QSe";
+  }
+
+  // Collect input from fit options section
+  QString background = m_uiForm.cbBackground->currentText();
+
+  if (m_uiForm.chkElasticPeak->isChecked()) {
+    elasticPeak = "True";
+  }
+  if (m_uiForm.chkSequentialFit->isChecked()) {
+    sequence = "True";
+  }
+
+  if (m_uiForm.chkFixWidth->isChecked()) {
+    fixedWidth = "True";
+    fixedWidthFile = m_uiForm.mwFixWidthDat->getFirstFilename();
+  }
+
+  if (m_uiForm.chkUseResNorm->isChecked()) {
+    useResNorm = "True";
+    resNormFile = m_uiForm.dsResNorm->getCurrentDataName();
+  }
+
+  QString fitOps = "[" + elasticPeak + ", '" + background + "', " + fixedWidth +
+                   ", " + useResNorm + "]";
+
+  // Collect input from the properties browser
+  QString eMin = m_properties["EMin"]->valueText();
+  QString eMax = m_properties["EMax"]->valueText();
+  QString eRange = "[" + eMin + "," + eMax + "]";
+
+  QString sampleBins = m_properties["SampleBinning"]->valueText();
+  QString resBins = m_properties["ResBinning"]->valueText();
+  QString nBins = "[" + sampleBins + "," + resBins + "]";
+
+  // Output options
+  if (m_uiForm.chkSave->isChecked()) {
+    save = "True";
+  }
+  QString plot = m_uiForm.cbPlot->currentText();
+
+  pyInput += "QLRun('" + program + "','" + sampleName + "','" + resName +
+             "','" + resNormFile + "'," + eRange + ","
+                                                   " " +
+             nBins + "," + fitOps + ",'" + fixedWidthFile + "'," + sequence +
+             ", "
+             " Save=" +
+             save + ", Plot='" + plot + "')\n";
+
+  runPythonScript(pyInput);
+
+  updateMiniPlot();
+}
+
+/**
+ * Updates the data and fit curves on the mini plot.
+ */
+void Quasi::updateMiniPlot() {
+  // Update sample plot
+  if (!m_uiForm.dsSample->isValid())
+    return;
+
+  m_uiForm.ppPlot->clear();
+
+  QString sampleName = m_uiForm.dsSample->getCurrentDataName();
+  m_uiForm.ppPlot->addSpectrum("Sample", sampleName, m_previewSpec);
+
+  // Update fit plot
+  QString program = m_uiForm.cbProgram->currentText();
+  if (program == "Lorentzians")
+    program = "QL";
+  else
+    program = "QSe";
+
+  QString resName = m_uiForm.dsResolution->getCurrentDataName();
+
+  // Should be either "red", "sqw" or "res"
+  QString resType = resName.right(3);
+
+  // Get the correct workspace name based on the type of resolution file
+  if (program == "QL") {
+    if (resType == "res")
+      program += "r";
+    else
+      program += "d";
+  }
+
+  QString outWsName = sampleName.left(sampleName.size() - 3) + program +
+                      "_Workspace_" + QString::number(m_previewSpec);
+  if (!AnalysisDataService::Instance().doesExist(outWsName.toStdString()))
+    return;
+
+  MatrixWorkspace_sptr outputWorkspace =
+      AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+          outWsName.toStdString());
+
+  TextAxis *axis = dynamic_cast<TextAxis *>(outputWorkspace->getAxis(1));
+
+  for (size_t histIndex = 0; histIndex < outputWorkspace->getNumberHistograms();
+       histIndex++) {
+    QString specName = QString::fromStdString(axis->label(histIndex));
+    QColor curveColour;
+
+    if (specName.contains("fit.1"))
+      curveColour = Qt::red;
+    else if (specName.contains("fit.2"))
+      curveColour = Qt::magenta;
+
+    else if (specName.contains("diff.1"))
+      curveColour = Qt::green;
+    else if (specName.contains("diff.2"))
+      curveColour = Qt::cyan;
+
+    else
+      continue;
+
+    m_uiForm.ppPlot->addSpectrum(specName, outputWorkspace, histIndex,
+                                 curveColour);
+  }
+}
+
+/**
+ * Plots the loaded file to the miniplot and sets the guides
+ * and the range
+ *
+ * @param filename :: The name of the workspace to plot
+ */
+void Quasi::handleSampleInputReady(const QString &filename) {
+  MatrixWorkspace_sptr inWs =
+      AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+          filename.toStdString());
+  int numHist = static_cast<int>(inWs->getNumberHistograms()) - 1;
+  m_uiForm.spPreviewSpectrum->setMaximum(numHist);
+  updateMiniPlot();
+
+  QPair<double, double> range = m_uiForm.ppPlot->getCurveRange("Sample");
+  auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("QuasiERange");
+
+  setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"],
+                   range);
+  setPlotPropertyRange(eRangeSelector, m_properties["EMin"],
+                       m_properties["EMax"], range);
+}
+
+/**
+ * Toggles the use ResNorm option depending on if the resolution file is a
+ * resolution or vanadoum reduction.
+ * @param wsName The name of the workspace loaded
+ */
+void Quasi::handleResolutionInputReady(const QString &wsName) {
+  bool isResolution(wsName.endsWith("_res"));
+
+  m_uiForm.chkUseResNorm->setEnabled(isResolution);
+  if (!isResolution)
+    m_uiForm.chkUseResNorm->setChecked(false);
+}
+
+/**
+ * Updates the property manager when the lower guide is moved on the mini plot
+ *
+ * @param min :: The new value of the lower guide
+ */
+void Quasi::minValueChanged(double min) {
+  m_dblManager->setValue(m_properties["EMin"], min);
+}
+
+/**
+ * Updates the property manager when the upper guide is moved on the mini plot
+ *
+ * @param max :: The new value of the upper guide
+ */
+void Quasi::maxValueChanged(double max) {
+  m_dblManager->setValue(m_properties["EMax"], max);
+}
+
+/**
+ * Handles when properties in the property manager are updated.
+ *
+ * @param prop :: The property being updated
+ * @param val :: The new value for the property
+ */
+void Quasi::updateProperties(QtProperty *prop, double val) {
+  UNUSED_ARG(val);
+
+  auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("QuasiERange");
+
+  if (prop == m_properties["EMin"] || prop == m_properties["EMax"]) {
+    auto bounds = qMakePair(m_dblManager->value(m_properties["EMin"]),
+                            m_dblManager->value(m_properties["EMax"]));
+    setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"],
+                     bounds);
+  }
+}
+
+/**
+ * Handles when the slected item in the program combobox
+ * is changed
+ *
+ * @param index :: The current index of the combobox
+ */
+void Quasi::handleProgramChange(int index) {
+  int numberOptions = m_uiForm.cbPlot->count();
+  switch (index) {
+  case 0:
+    m_uiForm.cbPlot->setItemText(numberOptions - 1, "Prob");
+    break;
+  case 1:
+    m_uiForm.cbPlot->setItemText(numberOptions - 1, "Beta");
+    break;
+  }
+}
+
+/**
+ * Handles setting a new preview spectrum on the preview plot.
+ *
+ * @param value Spectrum index
+ */
+void Quasi::previewSpecChanged(int value) {
+  m_previewSpec = value;
+  updateMiniPlot();
+}
+
+} // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ResNorm.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ResNorm.cpp
index ff425165cfb37cb57283e491ef3cf963f17448cb..07e6c8ca91ab67e0d4ee519f1a2b09072ebcaf2c 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ResNorm.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/ResNorm.cpp
@@ -1,211 +1,268 @@
 #include "MantidQtCustomInterfaces/Indirect/ResNorm.h"
+
 #include "MantidQtCustomInterfaces/UserInputValidator.h"
+#include "MantidAPI/WorkspaceFactory.h"
+#include "MantidAPI/ITableWorkspace.h"
 
 using namespace Mantid::API;
 
-namespace MantidQt
-{
-	namespace CustomInterfaces
-	{
-		ResNorm::ResNorm(QWidget * parent) :
-			IndirectBayesTab(parent),
-      m_previewSpec(0)
-		{
-			m_uiForm.setupUi(parent);
-
-      // Create range selector
-      auto eRangeSelector = m_uiForm.ppPlot->addRangeSelector("ResNormERange");
-      connect(eRangeSelector, SIGNAL(minValueChanged(double)), this, SLOT(minValueChanged(double)));
-      connect(eRangeSelector, SIGNAL(maxValueChanged(double)), this, SLOT(maxValueChanged(double)));
-
-			// Add the properties browser to the ui form
-			m_uiForm.treeSpace->addWidget(m_propTree);
-
-			m_properties["EMin"] = m_dblManager->addProperty("EMin");
-			m_properties["EMax"] = m_dblManager->addProperty("EMax");
-			m_properties["VanBinning"] = m_dblManager->addProperty("Van Binning");
-
-			m_dblManager->setDecimals(m_properties["EMin"], NUM_DECIMALS);
-			m_dblManager->setDecimals(m_properties["EMax"], NUM_DECIMALS);
-			m_dblManager->setDecimals(m_properties["VanBinning"], INT_DECIMALS);
-
-			m_propTree->addProperty(m_properties["EMin"]);
-			m_propTree->addProperty(m_properties["EMax"]);
-			m_propTree->addProperty(m_properties["VanBinning"]);
-
-			//set default values
-			m_dblManager->setValue(m_properties["VanBinning"], 1);
-			m_dblManager->setMinimum(m_properties["VanBinning"], 1);
-
-			// Connect data selector to handler method
-			connect(m_uiForm.dsVanadium, SIGNAL(dataReady(const QString&)), this, SLOT(handleVanadiumInputReady(const QString&)));
-
-      // Connect the preview spectrum selector
-      connect(m_uiForm.spPreviewSpectrum, SIGNAL(valueChanged(int)), this, SLOT(previewSpecChanged(int)));
-		}
-
-    void ResNorm::setup()
-    {
-    }
-
-		/**
-		 * Validate the form to check the program can be run
-		 *
-		 * @return :: Whether the form was valid
-		 */
-		bool ResNorm::validate()
-		{
-			UserInputValidator uiv;
-			uiv.checkDataSelectorIsValid("Vanadium", m_uiForm.dsVanadium);
-			uiv.checkDataSelectorIsValid("Resolution", m_uiForm.dsResolution);
-
-			QString errors = uiv.generateErrorMessage();
-			if (!errors.isEmpty())
-			{
-				emit showMessageBox(errors);
-				return false;
-			}
-
-			return true;
-		}
-
-		/**
-		 * Collect the settings on the GUI and build a python
-		 * script that runs ResNorm
-		 */
-		void ResNorm::run()
-		{
-			QString save("False");
-
-			QString pyInput =
-				"from IndirectBayes import ResNormRun\n";
-
-			// get the file names
-			QString VanName = m_uiForm.dsVanadium->getCurrentDataName();
-			QString ResName = m_uiForm.dsResolution->getCurrentDataName();
-
-			// get the parameters for ResNorm
-			QString EMin = m_properties["EMin"]->valueText();
-			QString EMax = m_properties["EMax"]->valueText();
-
-			QString ERange = "[" + EMin + "," + EMax + "]";
-
-			QString nBin = m_properties["VanBinning"]->valueText();
-
-			// get output options
-			if(m_uiForm.chkSave->isChecked()){ save ="True"; }
-			QString plot = m_uiForm.cbPlot->currentText();
-
-			pyInput += "ResNormRun('"+VanName+"', '"+ResName+"', "+ERange+", "+nBin+","
-										" Save="+save+", Plot='"+plot+"')\n";
-
-			runPythonScript(pyInput);
-
-      // Plot the fit curve
-      m_uiForm.ppPlot->addSpectrum("Fit", "Fit", m_previewSpec, Qt::red);
-		}
-
-		/**
-		 * Set the data selectors to use the default save directory
-		 * when browsing for input files.
-		 *
-     * @param settings :: The current settings
-		 */
-		void ResNorm::loadSettings(const QSettings& settings)
-		{
-			m_uiForm.dsVanadium->readSettings(settings.group());
-    	m_uiForm.dsResolution->readSettings(settings.group());
-		}
-
-		/**
-		 * Plots the loaded file to the miniplot and sets the guides
-		 * and the range
-		 *
-		 * @param filename :: The name of the workspace to plot
-		 */
-		void ResNorm::handleVanadiumInputReady(const QString& filename)
-		{
-			m_uiForm.ppPlot->addSpectrum("Vanadium", filename, m_previewSpec);
-			QPair<double, double> res;
-			QPair<double, double> range = m_uiForm.ppPlot->getCurveRange("Vanadium");
-
-      MatrixWorkspace_sptr vanWs = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(filename.toStdString());
-      m_uiForm.spPreviewSpectrum->setMaximum(static_cast<int>(vanWs->getNumberHistograms()) - 1);
-
-      auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("ResNormERange");
-
-			//Use the values from the instrument parameter file if we can
-			if(getInstrumentResolution(filename, res))
-			{
-				//ResNorm resolution should be +/- 10 * the IPF resolution
-				res.first = res.first * 10;
-				res.second = res.second * 10;
-
-				setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"], res);
-			}
-			else
-			{
-				setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"], range);
-			}
-
-			setPlotPropertyRange(eRangeSelector, m_properties["EMin"], m_properties["EMax"], range);
-		}
-
-		/**
-		 * Updates the property manager when the lower guide is moved on the mini plot
-		 *
-		 * @param min :: The new value of the lower guide
-		 */
-		void ResNorm::minValueChanged(double min)
-    {
-      m_dblManager->setValue(m_properties["EMin"], min);
-    }
-
-		/**
-		 * Updates the property manager when the upper guide is moved on the mini plot
-		 *
-		 * @param max :: The new value of the upper guide
-		 */
-    void ResNorm::maxValueChanged(double max)
-    {
-			m_dblManager->setValue(m_properties["EMax"], max);
-    }
-
-		/**
-		 * Handles when properties in the property manager are updated.
-		 *
-		 * @param prop :: The property being updated
-		 * @param val :: The new value for the property
-		 */
-    void ResNorm::updateProperties(QtProperty* prop, double val)
-    {
-      auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("ResNormERange");
-
-    	if(prop == m_properties["EMin"])
-    	{
-				updateLowerGuide(eRangeSelector, m_properties["EMin"], m_properties["EMax"], val);
-    	}
-    	else if (prop == m_properties["EMax"])
-    	{
-    		updateUpperGuide(eRangeSelector, m_properties["EMin"], m_properties["EMax"], val);
-			}
-    }
-
-    /**
-     * Sets a new preview spectrum for the mini plot.
-     *
-     * @param value Spectrum index
-     */
-    void ResNorm::previewSpecChanged(int value)
-    {
-      m_previewSpec = value;
-
-      if(m_uiForm.dsVanadium->isValid())
-  			m_uiForm.ppPlot->addSpectrum("Vanadium", m_uiForm.dsVanadium->getCurrentDataName(), m_previewSpec);
-
-      if(AnalysisDataService::Instance().doesExist("Fit"))
-        m_uiForm.ppPlot->addSpectrum("Fit", "Fit", m_previewSpec, Qt::red);
+namespace MantidQt {
+namespace CustomInterfaces {
+ResNorm::ResNorm(QWidget *parent) : IndirectBayesTab(parent), m_previewSpec(0) {
+  m_uiForm.setupUi(parent);
+
+  // Create range selector
+  auto eRangeSelector = m_uiForm.ppPlot->addRangeSelector("ResNormERange");
+  connect(eRangeSelector, SIGNAL(minValueChanged(double)), this,
+          SLOT(minValueChanged(double)));
+  connect(eRangeSelector, SIGNAL(maxValueChanged(double)), this,
+          SLOT(maxValueChanged(double)));
+
+  // Add the properties browser to the ui form
+  m_uiForm.treeSpace->addWidget(m_propTree);
+
+  m_properties["EMin"] = m_dblManager->addProperty("EMin");
+  m_properties["EMax"] = m_dblManager->addProperty("EMax");
+
+  m_dblManager->setDecimals(m_properties["EMin"], NUM_DECIMALS);
+  m_dblManager->setDecimals(m_properties["EMax"], NUM_DECIMALS);
+
+  m_propTree->addProperty(m_properties["EMin"]);
+  m_propTree->addProperty(m_properties["EMax"]);
+
+  // Connect data selector to handler method
+  connect(m_uiForm.dsVanadium, SIGNAL(dataReady(const QString &)), this,
+          SLOT(handleVanadiumInputReady(const QString &)));
+  connect(m_uiForm.dsResolution, SIGNAL(dataReady(const QString &)), this,
+          SLOT(handleResolutionInputReady(const QString &)));
+
+  // Connect the preview spectrum selector
+  connect(m_uiForm.spPreviewSpectrum, SIGNAL(valueChanged(int)), this,
+          SLOT(previewSpecChanged(int)));
+
+  connect(m_batchAlgoRunner, SIGNAL(batchComplete(bool)), this,
+          SLOT(handleAlgorithmComplete(bool)));
+}
+
+void ResNorm::setup() {}
+
+/**
+ * Validate the form to check the program can be run
+ *
+ * @return :: Whether the form was valid
+ */
+bool ResNorm::validate() {
+  UserInputValidator uiv;
+  uiv.checkDataSelectorIsValid("Vanadium", m_uiForm.dsVanadium);
+  uiv.checkDataSelectorIsValid("Resolution", m_uiForm.dsResolution);
+
+  QString errors = uiv.generateErrorMessage();
+  if (!errors.isEmpty()) {
+    emit showMessageBox(errors);
+    return false;
+  }
+
+  return true;
+}
+
+/**
+ * Run the ResNorm v2 algorithm.
+ */
+void ResNorm::run() {
+  QString vanWsName(m_uiForm.dsVanadium->getCurrentDataName());
+  QString resWsName(m_uiForm.dsResolution->getCurrentDataName());
+
+  double eMin(m_dblManager->value(m_properties["EMin"]));
+  double eMax(m_dblManager->value(m_properties["EMax"]));
+
+  QString outputWsName = getWorkspaceBasename(vanWsName) + "_ResNorm";
+
+  IAlgorithm_sptr resNorm = AlgorithmManager::Instance().create("ResNorm", 2);
+  resNorm->initialize();
+  resNorm->setProperty("VanadiumWorkspace", vanWsName.toStdString());
+  resNorm->setProperty("ResolutionWorkspace", resWsName.toStdString());
+  resNorm->setProperty("EnergyMin", eMin);
+  resNorm->setProperty("EnergyMax", eMax);
+  resNorm->setProperty("CreateOutput", true);
+  resNorm->setProperty("OutputWorkspace", outputWsName.toStdString());
+  m_batchAlgoRunner->addAlgorithm(resNorm);
+
+  // Handle saving
+  bool save(m_uiForm.ckSave->isChecked());
+  if (save)
+    addSaveWorkspaceToQueue(outputWsName);
+
+  m_pythonExportWsName = outputWsName.toStdString();
+  m_batchAlgoRunner->executeBatchAsync();
+}
+
+/**
+ * Handle completion of the algorithm.
+ *
+ * @param error If the algorithm failed
+ */
+void ResNorm::handleAlgorithmComplete(bool error) {
+  if (error)
+    return;
+
+  WorkspaceGroup_sptr fitWorkspaces =
+      AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(
+          m_pythonExportWsName + "_Fit_Workspaces");
+  QString fitWsName("");
+  if (fitWorkspaces)
+    fitWsName =
+        QString::fromStdString(fitWorkspaces->getItem(m_previewSpec)->name());
+
+  // MantidPlot plotting
+  QString plotOptions(m_uiForm.cbPlot->currentText());
+  if (plotOptions == "Intensity" || plotOptions == "All")
+    plotSpectrum(QString::fromStdString(m_pythonExportWsName) + "_Intensity");
+  if (plotOptions == "Stretch" || plotOptions == "All")
+    plotSpectrum(QString::fromStdString(m_pythonExportWsName) + "_Stretch");
+  if (plotOptions == "Fit" || plotOptions == "All")
+    plotSpectrum(fitWsName);
+
+  // Update preview plot
+  previewSpecChanged(m_previewSpec);
+}
+
+/**
+ * Set the data selectors to use the default save directory
+ * when browsing for input files.
+ *
+ * @param settings :: The current settings
+ */
+void ResNorm::loadSettings(const QSettings &settings) {
+  m_uiForm.dsVanadium->readSettings(settings.group());
+  m_uiForm.dsResolution->readSettings(settings.group());
+}
+
+/**
+ * Plots the loaded file to the miniplot and sets the guides
+ * and the range
+ *
+ * @param filename :: The name of the workspace to plot
+ */
+void ResNorm::handleVanadiumInputReady(const QString &filename) {
+  // Plot the vanadium
+  m_uiForm.ppPlot->addSpectrum("Vanadium", filename, m_previewSpec);
+
+  QPair<double, double> res;
+  QPair<double, double> range = m_uiForm.ppPlot->getCurveRange("Vanadium");
+
+  MatrixWorkspace_sptr vanWs =
+      AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+          filename.toStdString());
+  m_uiForm.spPreviewSpectrum->setMaximum(
+      static_cast<int>(vanWs->getNumberHistograms()) - 1);
+
+  auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("ResNormERange");
+
+  // Use the values from the instrument parameter file if we can
+  if (getResolutionRangeFromWs(filename, res)) {
+    // ResNorm resolution should be +/- 10 * the IPF resolution
+    res.first = res.first * 10;
+    res.second = res.second * 10;
+
+    setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"],
+                     res);
+  } else {
+    setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"],
+                     range);
+  }
+
+  setPlotPropertyRange(eRangeSelector, m_properties["EMin"],
+                       m_properties["EMax"], range);
+}
+
+/**
+ * Plots the loaded resolution file on the mini plot.
+ *
+ * @param filename Name of the workspace to plot
+ */
+void ResNorm::handleResolutionInputReady(const QString &filename) {
+  // Plot the resolution
+  m_uiForm.ppPlot->addSpectrum("Resolution", filename, 0, Qt::blue);
+}
+
+/**
+ * Updates the property manager when the lower guide is moved on the mini plot
+ *
+ * @param min :: The new value of the lower guide
+ */
+void ResNorm::minValueChanged(double min) {
+  m_dblManager->setValue(m_properties["EMin"], min);
+}
+
+/**
+ * Updates the property manager when the upper guide is moved on the mini plot
+ *
+ * @param max :: The new value of the upper guide
+ */
+void ResNorm::maxValueChanged(double max) {
+  m_dblManager->setValue(m_properties["EMax"], max);
+}
+
+/**
+ * Handles when properties in the property manager are updated.
+ *
+ * @param prop :: The property being updated
+ * @param val :: The new value for the property
+ */
+void ResNorm::updateProperties(QtProperty *prop, double val) {
+  UNUSED_ARG(val);
+
+  auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("ResNormERange");
+
+  if (prop == m_properties["EMin"] || prop == m_properties["EMax"]) {
+    auto bounds = qMakePair(m_dblManager->value(m_properties["EMin"]),
+                            m_dblManager->value(m_properties["EMax"]));
+    setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"],
+                     bounds);
+  }
+}
+
+/**
+ * Sets a new preview spectrum for the mini plot.
+ *
+ * @param value Spectrum index
+ */
+void ResNorm::previewSpecChanged(int value) {
+  m_previewSpec = value;
+
+  // Update vanadium plot
+  if (m_uiForm.dsVanadium->isValid())
+    m_uiForm.ppPlot->addSpectrum(
+        "Vanadium", m_uiForm.dsVanadium->getCurrentDataName(), m_previewSpec);
+
+  // Update fit plot
+  std::string fitWsGroupName(m_pythonExportWsName + "_Fit_Workspaces");
+  std::string fitParamsName(m_pythonExportWsName + "_Fit");
+  if (AnalysisDataService::Instance().doesExist(fitWsGroupName)) {
+    WorkspaceGroup_sptr fitWorkspaces =
+        AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(
+            fitWsGroupName);
+    ITableWorkspace_sptr fitParams =
+        AnalysisDataService::Instance().retrieveWS<ITableWorkspace>(
+            fitParamsName);
+    if (fitWorkspaces && fitParams) {
+      Column_const_sptr scaleFactors = fitParams->getColumn("Scaling");
+      std::string fitWsName(fitWorkspaces->getItem(m_previewSpec)->name());
+      MatrixWorkspace_const_sptr fitWs =
+          AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+              fitWsName);
+
+      MatrixWorkspace_sptr fit = WorkspaceFactory::Instance().create(fitWs, 1);
+      fit->setX(0, fitWs->readX(1));
+      fit->getSpectrum(0)->setData(fitWs->readY(1), fitWs->readE(1));
+
+      for (size_t i = 0; i < fit->blocksize(); i++)
+        fit->dataY(0)[i] /= scaleFactors->cell<double>(m_previewSpec);
+
+      m_uiForm.ppPlot->addSpectrum("Fit", fit, 0, Qt::red);
     }
+  }
+}
 
-	} // namespace CustomInterfaces
+} // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Stretch.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Stretch.cpp
index 22186a4b8c02300cdfb290e962f2099dd43f327c..dd90a8a463148ce2ce4185b6051b125570a55d0a 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Stretch.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Indirect/Stretch.cpp
@@ -1,202 +1,200 @@
 #include "MantidQtCustomInterfaces/Indirect/Stretch.h"
 #include "MantidQtCustomInterfaces/UserInputValidator.h"
 
-namespace
-{
-  Mantid::Kernel::Logger g_log("Stretch");
+namespace {
+Mantid::Kernel::Logger g_log("Stretch");
 }
 
-namespace MantidQt
-{
-	namespace CustomInterfaces
-	{
-		Stretch::Stretch(QWidget * parent) :
-			IndirectBayesTab(parent)
-		{
-			m_uiForm.setupUi(parent);
-
-
-      // Create range selector
-      auto eRangeSelector = m_uiForm.ppPlot->addRangeSelector("StretchERange");
-      connect(eRangeSelector, SIGNAL(minValueChanged(double)), this, SLOT(minValueChanged(double)));
-      connect(eRangeSelector, SIGNAL(maxValueChanged(double)), this, SLOT(maxValueChanged(double)));
-
-			// Add the properties browser to the ui form
-			m_uiForm.treeSpace->addWidget(m_propTree);
-
-			m_properties["EMin"] = m_dblManager->addProperty("EMin");
-			m_properties["EMax"] = m_dblManager->addProperty("EMax");
-			m_properties["SampleBinning"] = m_dblManager->addProperty("Sample Binning");
-			m_properties["Sigma"] = m_dblManager->addProperty("Sigma");
-			m_properties["Beta"] = m_dblManager->addProperty("Beta");
-
-			m_dblManager->setDecimals(m_properties["EMin"], NUM_DECIMALS);
-			m_dblManager->setDecimals(m_properties["EMax"], NUM_DECIMALS);
-			m_dblManager->setDecimals(m_properties["SampleBinning"], INT_DECIMALS);
-			m_dblManager->setDecimals(m_properties["Sigma"], INT_DECIMALS);
-			m_dblManager->setDecimals(m_properties["Beta"], INT_DECIMALS);
-
-			m_propTree->addProperty(m_properties["EMin"]);
-			m_propTree->addProperty(m_properties["EMax"]);
-			m_propTree->addProperty(m_properties["SampleBinning"]);
-			m_propTree->addProperty(m_properties["Sigma"]);
-			m_propTree->addProperty(m_properties["Beta"]);
-
-			//default values
-			m_dblManager->setValue(m_properties["Sigma"], 50);
-			m_dblManager->setMinimum(m_properties["Sigma"], 1);
-			m_dblManager->setMaximum(m_properties["Sigma"], 200);
-			m_dblManager->setValue(m_properties["Beta"], 50);
-			m_dblManager->setMinimum(m_properties["Beta"], 1);
-			m_dblManager->setMaximum(m_properties["Beta"], 200);
-			m_dblManager->setValue(m_properties["SampleBinning"], 1);
-			m_dblManager->setMinimum(m_properties["SampleBinning"], 1);
-
-			//Connect the data selector for the sample to the mini plot
-			connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString&)), this, SLOT(handleSampleInputReady(const QString&)));
-			connect(m_uiForm.chkSequentialFit, SIGNAL(toggled(bool)), m_uiForm.cbPlot, SLOT(setEnabled(bool)));
-		}
-
-    void Stretch::setup()
-    {
-    }
-
-		/**
-		 * Validate the form to check the program can be run
-		 *
-		 * @return :: Whether the form was valid
-		 */
-		bool Stretch::validate()
-		{
-			UserInputValidator uiv;
-			uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
-			uiv.checkDataSelectorIsValid("Resolution", m_uiForm.dsResolution);
-
-			QString errors = uiv.generateErrorMessage();
-			if (!errors.isEmpty())
-			{
-				emit showMessageBox(errors);
-				return false;
-			}
-
-			return true;
-		}
-
-		/**
-		 * Collect the settings on the GUI and build a python
-		 * script that runs Stretch
-		 */
-		void Stretch::run()
-		{
-      using namespace Mantid::API;
-
-			QString save("False");
-
-			QString elasticPeak("False");
-			QString sequence("False");
-
-			QString pyInput =
-				"from IndirectBayes import QuestRun\n";
-
-			QString sampleName = m_uiForm.dsSample->getCurrentDataName();
-			QString resName = m_uiForm.dsResolution->getCurrentDataName();
-
-			// Collect input from options section
-			QString background = m_uiForm.cbBackground->currentText();
-
-			if(m_uiForm.chkElasticPeak->isChecked()) { elasticPeak = "True"; }
-			if(m_uiForm.chkSequentialFit->isChecked()) { sequence = "True"; }
-
-			QString fitOps = "[" + elasticPeak + ", '" + background + "', False, False]";
-
-			//Collect input from the properties browser
-			QString eMin = m_properties["EMin"]->valueText();
-			QString eMax = m_properties["EMax"]->valueText();
-			QString eRange = "[" + eMin + "," + eMax + "]";
-
-			QString beta = m_properties["Beta"]->valueText();
-			QString sigma = m_properties["Sigma"]->valueText();
-			QString betaSig = "[" + beta + ", " + sigma + "]";
-
-			QString nBins = m_properties["SampleBinning"]->valueText();
-			nBins = "[" + nBins + ", 1]";
-
-			//Output options
-			if(m_uiForm.chkSave->isChecked()) { save = "True"; }
-			QString plot = m_uiForm.cbPlot->currentText();
-
-			pyInput += "QuestRun('"+sampleName+"','"+resName+"',"+betaSig+","+eRange+","+nBins+","+fitOps+","+sequence+","
-										" Save="+save+", Plot='"+plot+"')\n";
-
-			runPythonScript(pyInput);
-		}
-
-		/**
-		 * Set the data selectors to use the default save directory
-		 * when browsing for input files.
-		 *
-     * @param settings :: The current settings
-		 */
-		void Stretch::loadSettings(const QSettings& settings)
-		{
-			m_uiForm.dsSample->readSettings(settings.group());
-			m_uiForm.dsResolution->readSettings(settings.group());
-		}
-
-		/**
-		 * Plots the loaded file to the miniplot and sets the guides
-		 * and the range
-		 *
-		 * @param filename :: The name of the workspace to plot
-		 */
-		void Stretch::handleSampleInputReady(const QString& filename)
-		{
-			m_uiForm.ppPlot->addSpectrum("Sample", filename, 0);
-			QPair<double, double> range = m_uiForm.ppPlot->getCurveRange("Sample");
-      auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("StretchERange");
-			setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"], range);
-			setPlotPropertyRange(eRangeSelector, m_properties["EMin"], m_properties["EMax"], range);
-		}
-
-		/**
-		 * Updates the property manager when the lower guide is moved on the mini plot
-		 *
-		 * @param min :: The new value of the lower guide
-		 */
-		void Stretch::minValueChanged(double min)
-    {
-      m_dblManager->setValue(m_properties["EMin"], min);
-    }
-
-		/**
-		 * Updates the property manager when the upper guide is moved on the mini plot
-		 *
-		 * @param max :: The new value of the upper guide
-		 */
-    void Stretch::maxValueChanged(double max)
-    {
-			m_dblManager->setValue(m_properties["EMax"], max);
-    }
-
-		/**
-		 * Handles when properties in the property manager are updated.
-		 *
-		 * @param prop :: The property being updated
-		 * @param val :: The new value for the property
-		 */
-    void Stretch::updateProperties(QtProperty* prop, double val)
-    {
-      auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("StretchERange");
-
-    	if(prop == m_properties["EMin"])
-    	{
-    		updateLowerGuide(eRangeSelector, m_properties["EMin"], m_properties["EMax"], val);
-    	}
-    	else if (prop == m_properties["EMax"])
-    	{
-				updateUpperGuide(eRangeSelector, m_properties["EMin"], m_properties["EMax"], val);
-    	}
-    }
-
-	} // namespace CustomInterfaces
+namespace MantidQt {
+namespace CustomInterfaces {
+Stretch::Stretch(QWidget *parent) : IndirectBayesTab(parent) {
+  m_uiForm.setupUi(parent);
+
+  // Create range selector
+  auto eRangeSelector = m_uiForm.ppPlot->addRangeSelector("StretchERange");
+  connect(eRangeSelector, SIGNAL(minValueChanged(double)), this,
+          SLOT(minValueChanged(double)));
+  connect(eRangeSelector, SIGNAL(maxValueChanged(double)), this,
+          SLOT(maxValueChanged(double)));
+
+  // Add the properties browser to the ui form
+  m_uiForm.treeSpace->addWidget(m_propTree);
+
+  m_properties["EMin"] = m_dblManager->addProperty("EMin");
+  m_properties["EMax"] = m_dblManager->addProperty("EMax");
+  m_properties["SampleBinning"] = m_dblManager->addProperty("Sample Binning");
+  m_properties["Sigma"] = m_dblManager->addProperty("Sigma");
+  m_properties["Beta"] = m_dblManager->addProperty("Beta");
+
+  m_dblManager->setDecimals(m_properties["EMin"], NUM_DECIMALS);
+  m_dblManager->setDecimals(m_properties["EMax"], NUM_DECIMALS);
+  m_dblManager->setDecimals(m_properties["SampleBinning"], INT_DECIMALS);
+  m_dblManager->setDecimals(m_properties["Sigma"], INT_DECIMALS);
+  m_dblManager->setDecimals(m_properties["Beta"], INT_DECIMALS);
+
+  m_propTree->addProperty(m_properties["EMin"]);
+  m_propTree->addProperty(m_properties["EMax"]);
+  m_propTree->addProperty(m_properties["SampleBinning"]);
+  m_propTree->addProperty(m_properties["Sigma"]);
+  m_propTree->addProperty(m_properties["Beta"]);
+
+  // default values
+  m_dblManager->setValue(m_properties["Sigma"], 50);
+  m_dblManager->setMinimum(m_properties["Sigma"], 1);
+  m_dblManager->setMaximum(m_properties["Sigma"], 200);
+  m_dblManager->setValue(m_properties["Beta"], 50);
+  m_dblManager->setMinimum(m_properties["Beta"], 1);
+  m_dblManager->setMaximum(m_properties["Beta"], 200);
+  m_dblManager->setValue(m_properties["SampleBinning"], 1);
+  m_dblManager->setMinimum(m_properties["SampleBinning"], 1);
+
+  // Connect the data selector for the sample to the mini plot
+  connect(m_uiForm.dsSample, SIGNAL(dataReady(const QString &)), this,
+          SLOT(handleSampleInputReady(const QString &)));
+  connect(m_uiForm.chkSequentialFit, SIGNAL(toggled(bool)), m_uiForm.cbPlot,
+          SLOT(setEnabled(bool)));
+}
+
+void Stretch::setup() {}
+
+/**
+ * Validate the form to check the program can be run
+ *
+ * @return :: Whether the form was valid
+ */
+bool Stretch::validate() {
+  UserInputValidator uiv;
+  uiv.checkDataSelectorIsValid("Sample", m_uiForm.dsSample);
+  uiv.checkDataSelectorIsValid("Resolution", m_uiForm.dsResolution);
+
+  QString errors = uiv.generateErrorMessage();
+  if (!errors.isEmpty()) {
+    emit showMessageBox(errors);
+    return false;
+  }
+
+  return true;
+}
+
+/**
+ * Collect the settings on the GUI and build a python
+ * script that runs Stretch
+ */
+void Stretch::run() {
+  using namespace Mantid::API;
+
+  QString save("False");
+
+  QString elasticPeak("False");
+  QString sequence("False");
+
+  QString pyInput = "from IndirectBayes import QuestRun\n";
+
+  QString sampleName = m_uiForm.dsSample->getCurrentDataName();
+  QString resName = m_uiForm.dsResolution->getCurrentDataName();
+
+  // Collect input from options section
+  QString background = m_uiForm.cbBackground->currentText();
+
+  if (m_uiForm.chkElasticPeak->isChecked()) {
+    elasticPeak = "True";
+  }
+  if (m_uiForm.chkSequentialFit->isChecked()) {
+    sequence = "True";
+  }
+
+  QString fitOps = "[" + elasticPeak + ", '" + background + "', False, False]";
+
+  // Collect input from the properties browser
+  QString eMin = m_properties["EMin"]->valueText();
+  QString eMax = m_properties["EMax"]->valueText();
+  QString eRange = "[" + eMin + "," + eMax + "]";
+
+  QString beta = m_properties["Beta"]->valueText();
+  QString sigma = m_properties["Sigma"]->valueText();
+  QString betaSig = "[" + beta + ", " + sigma + "]";
+
+  QString nBins = m_properties["SampleBinning"]->valueText();
+  nBins = "[" + nBins + ", 1]";
+
+  // Output options
+  if (m_uiForm.chkSave->isChecked()) {
+    save = "True";
+  }
+  QString plot = m_uiForm.cbPlot->currentText();
+
+  pyInput += "QuestRun('" + sampleName + "','" + resName + "'," + betaSig +
+             "," + eRange + "," + nBins + "," + fitOps + "," + sequence +
+             ","
+             " Save=" +
+             save + ", Plot='" + plot + "')\n";
+
+  runPythonScript(pyInput);
+}
+
+/**
+ * Set the data selectors to use the default save directory
+ * when browsing for input files.
+ *
+* @param settings :: The current settings
+ */
+void Stretch::loadSettings(const QSettings &settings) {
+  m_uiForm.dsSample->readSettings(settings.group());
+  m_uiForm.dsResolution->readSettings(settings.group());
+}
+
+/**
+ * Plots the loaded file to the miniplot and sets the guides
+ * and the range
+ *
+ * @param filename :: The name of the workspace to plot
+ */
+void Stretch::handleSampleInputReady(const QString &filename) {
+  m_uiForm.ppPlot->addSpectrum("Sample", filename, 0);
+  QPair<double, double> range = m_uiForm.ppPlot->getCurveRange("Sample");
+  auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("StretchERange");
+  setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"],
+                   range);
+  setPlotPropertyRange(eRangeSelector, m_properties["EMin"],
+                       m_properties["EMax"], range);
+}
+
+/**
+ * Updates the property manager when the lower guide is moved on the mini plot
+ *
+ * @param min :: The new value of the lower guide
+ */
+void Stretch::minValueChanged(double min) {
+  m_dblManager->setValue(m_properties["EMin"], min);
+}
+
+/**
+ * Updates the property manager when the upper guide is moved on the mini plot
+ *
+ * @param max :: The new value of the upper guide
+ */
+void Stretch::maxValueChanged(double max) {
+  m_dblManager->setValue(m_properties["EMax"], max);
+}
+
+/**
+ * Handles when properties in the property manager are updated.
+ *
+ * @param prop :: The property being updated
+ * @param val :: The new value for the property
+ */
+void Stretch::updateProperties(QtProperty *prop, double val) {
+  UNUSED_ARG(val);
+
+  auto eRangeSelector = m_uiForm.ppPlot->getRangeSelector("StretchERange");
+
+  if (prop == m_properties["EMin"] || prop == m_properties["EMax"]) {
+    auto bounds = qMakePair(m_dblManager->value(m_properties["EMin"]),
+                            m_dblManager->value(m_properties["EMax"]));
+    setRangeSelector(eRangeSelector, m_properties["EMin"], m_properties["EMax"],
+                     bounds);
+  }
+}
+
+} // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFDatasetPlotData.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFDatasetPlotData.cpp
index 31868536e3f9c967e13214d360b0c5f53c2575fb..d32a80914f435c5134403bda33fa91b6f59d940b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFDatasetPlotData.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFDatasetPlotData.cpp
@@ -1,5 +1,5 @@
 #include "MantidQtCustomInterfaces/MultiDatasetFit/MDFDatasetPlotData.h"
-#include "MantidQtCustomInterfaces/MultiDatasetFit/MDFErrorCurve.h"
+#include "MantidQtMantidWidgets/ErrorCurve.h"
 
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/MatrixWorkspace.h"
@@ -24,7 +24,8 @@ DatasetPlotData::DatasetPlotData(const QString& wsName, int wsIndex, const QStri
   m_dataCurve(new QwtPlotCurve(wsName + QString(" (%1)").arg(wsIndex))),
   m_dataErrorCurve(NULL),
   m_calcCurve(NULL),
-  m_diffCurve(NULL)
+  m_diffCurve(NULL),
+  m_showDataErrorBars(false)
 {
   // get the data workspace
   auto ws = Mantid::API::AnalysisDataService::Instance().retrieveWS<Mantid::API::MatrixWorkspace>( wsName.toStdString() );
@@ -109,7 +110,7 @@ void DatasetPlotData::setData(const Mantid::API::MatrixWorkspace *ws, int wsInde
     m_dataErrorCurve->detach();
     delete m_dataErrorCurve;
   }
-  m_dataErrorCurve = new ErrorCurve(m_dataCurve, ws->readE(wsIndex));
+  m_dataErrorCurve = new MantidQt::MantidWidgets::ErrorCurve(m_dataCurve, ws->readE(wsIndex));
 
   if ( haveFitCurves )
   {
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFPlotController.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFPlotController.cpp
index 0ab62be42b10b590623ad4ff8d458dd4e74b4771..79717f8541fe074679783154b91765cc2ce2c622 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFPlotController.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFPlotController.cpp
@@ -5,6 +5,8 @@
 #include "MantidQtCustomInterfaces/MultiDatasetFit/MDFDatasetPlotData.h"
 
 #include "MantidQtMantidWidgets/RangeSelector.h"
+#include "MantidAPI/AnalysisDataService.h"
+#include "MantidAPI/WorkspaceGroup.h"
 
 #include <boost/make_shared.hpp>
 
@@ -57,9 +59,6 @@ PlotController::PlotController(MultiDatasetFit *parent, QwtPlot *plot,
   connect(m_rangeSelector,SIGNAL(selectionChanged(double, double)),this,SLOT(updateFittingRange(double, double)));
 
   disableAllTools();
-
-  m_plot->canvas()->installEventFilter(this);
-  
 }
 
 /// Destructor.
@@ -68,23 +67,6 @@ PlotController::~PlotController()
   m_plotData.clear();
 }
 
-/// Event fiter for intercepting mouse events of the plot
-bool PlotController::eventFilter(QObject *, QEvent *evn)
-{
-  if ( evn->type() == QEvent::MouseButtonDblClick )
-  {
-    if ( isRangeSelectorEnabled() )
-    {
-      resetRange();
-    }
-    else if ( isZoomEnabled() )
-    {
-      zoomToRange();
-    }
-  }
-  return false;
-}
-
 /// Slot. Respond to changes in the data table.
 void PlotController::tableUpdated()
 {
@@ -135,12 +117,15 @@ boost::shared_ptr<DatasetPlotData> PlotController::getData(int index)
     QString wsName = m_table->item( index, wsColumn )->text();
     int wsIndex = m_table->item( index, wsIndexColumn )->text().toInt();
     QString outputWorkspaceName = owner()->getOutputWorkspaceName();
-    if ( !outputWorkspaceName.isEmpty() )
-    {
-      outputWorkspaceName += QString("_%1").arg(index);
+    std::string outName = outputWorkspaceName.toStdString();
+    if (!outputWorkspaceName.isEmpty() &&
+        Mantid::API::AnalysisDataService::Instance().doesExist(outName)) {
+      auto ws = Mantid::API::AnalysisDataService::Instance().retrieve(outName);
+      if (auto  group = boost::dynamic_pointer_cast<Mantid::API::WorkspaceGroup>(ws)) {
+        outputWorkspaceName = QString::fromStdString(group->getItem(index)->name());
+      }
     }
-    try
-    {
+    try {
       data = boost::make_shared<DatasetPlotData>( wsName, wsIndex, outputWorkspaceName );
       m_plotData.insert(index, data );
     }
@@ -243,7 +228,11 @@ void PlotController::zoomToRange()
   QwtDoubleRect rect = m_zoomer->zoomRect();
   rect.setX( m_rangeSelector->getMinimum() );
   rect.setRight( m_rangeSelector->getMaximum() );
-  m_zoomer->zoom( rect );
+  // In case the scales were set by the panning tool we need to
+  // reset the zoomer first.
+  m_zoomer->zoom(-1);
+  // Set new zoom level.
+  m_zoomer->zoom(rect);
 }
 
 /// Disable all plot tools. It is a helper method 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp
index 389c23b062e84c15eff12dbc2e31476543947ac2..a8d5f4f86c76c36ba01a247d352fab6555c62b72 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp
@@ -4,6 +4,9 @@
 #include "MantidQtCustomInterfaces/MultiDatasetFit/MDFEditLocalParameterDialog.h"
 
 #include "MantidAPI/AlgorithmManager.h"
+#include "MantidAPI/FunctionFactory.h"
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidKernel/TimeSeriesProperty.h"
 
 #include "MantidQtAPI/AlgorithmRunner.h"
 #include "MantidQtMantidWidgets/FitOptionsBrowser.h"
@@ -72,8 +75,11 @@ void MultiDatasetFit::initLayout()
                                         m_uiForm.btnNext);
   connect(m_dataController,SIGNAL(dataTableUpdated()),m_plotController,SLOT(tableUpdated()));
   connect(m_dataController,SIGNAL(dataSetUpdated(int)),m_plotController,SLOT(updateRange(int)));
+  connect(m_dataController,SIGNAL(dataTableUpdated()),this,SLOT(setLogNames()));
   connect(m_plotController,SIGNAL(fittingRangeChanged(int, double, double)),m_dataController,SLOT(setFittingRange(int, double, double)));
   connect(m_uiForm.cbShowDataErrors,SIGNAL(toggled(bool)),m_plotController,SLOT(showDataErrors(bool)));
+  connect(m_uiForm.btnToVisibleRange,SIGNAL(clicked()),m_plotController,SLOT(resetRange()));
+  connect(m_uiForm.btnToFittingRange,SIGNAL(clicked()),m_plotController,SLOT(zoomToRange()));
 
   QSplitter* splitter = new QSplitter(Qt::Vertical,this);
 
@@ -82,12 +88,15 @@ void MultiDatasetFit::initLayout()
   splitter->addWidget( m_functionBrowser );
   connect(m_functionBrowser,SIGNAL(localParameterButtonClicked(const QString&)),this,SLOT(editLocalParameterValues(const QString&)));
   connect(m_functionBrowser,SIGNAL(functionStructureChanged()),this,SLOT(reset()));
+  connect(m_functionBrowser,SIGNAL(globalsChanged()),this,SLOT(checkFittingType()));
   connect(m_plotController,SIGNAL(currentIndexChanged(int)),m_functionBrowser,SLOT(setCurrentDataset(int)));
   connect(m_dataController,SIGNAL(spectraRemoved(QList<int>)),m_functionBrowser,SLOT(removeDatasets(QList<int>)));
   connect(m_dataController,SIGNAL(spectraAdded(int)),m_functionBrowser,SLOT(addDatasets(int)));
 
-  m_fitOptionsBrowser = new MantidQt::MantidWidgets::FitOptionsBrowser(NULL);
-  splitter->addWidget( m_fitOptionsBrowser );
+  m_fitOptionsBrowser = new MantidQt::MantidWidgets::FitOptionsBrowser(
+      NULL, MantidQt::MantidWidgets::FitOptionsBrowser::SimultaneousAndSequential);
+  connect(m_fitOptionsBrowser,SIGNAL(changedToSequentialFitting()),this,SLOT(setLogNames()));
+  splitter->addWidget(m_fitOptionsBrowser);
 
   m_uiForm.browserLayout->addWidget( splitter );
 
@@ -147,15 +156,54 @@ boost::shared_ptr<Mantid::API::IFunction> MultiDatasetFit::createFunction() cons
   return m_functionBrowser->getGlobalFunction();
 }
 
-/// Run the fitting algorithm.
-void MultiDatasetFit::fit()
+/// Fit the data sets sequentially if there are no global parameters.
+void MultiDatasetFit::fitSequential()
 {
-  if ( !m_functionBrowser->hasFunction() )
+  try
   {
-    QMessageBox::warning( this, "MantidPlot - Warning","Function wasn't set." );
-    return;
+    std::ostringstream input;
+
+    int n = getNumberOfSpectra();
+    for(int ispec = 0; ispec < n; ++ispec)
+    {
+      input << getWorkspaceName(ispec) << ",i" << getWorkspaceIndex(ispec) << ";";
+    }
+
+    auto fun = m_functionBrowser->getFunction();
+    auto fit = Mantid::API::AlgorithmManager::Instance().create("PlotPeakByLogValue");
+    fit->initialize();
+    fit->setPropertyValue("Function", fun->asString() );
+    fit->setPropertyValue("Input", input.str());
+    auto range = getFittingRange(0);
+    fit->setProperty( "StartX", range.first );
+    fit->setProperty( "EndX", range.second );
+
+    m_fitOptionsBrowser->copyPropertiesToAlgorithm(*fit);
+
+    m_outputWorkspaceName = m_fitOptionsBrowser->getProperty("OutputWorkspace").toStdString() + "_Workspaces";
+
+    m_fitRunner.reset( new API::AlgorithmRunner() );
+    connect( m_fitRunner.get(),SIGNAL(algorithmComplete(bool)), this, SLOT(finishFit(bool)), Qt::QueuedConnection );
+
+    m_fitRunner->startAlgorithm(fit);
+
+  }
+  catch(std::exception& e)
+  {
+    QString mess(e.what());
+    const int maxSize = 500;
+    if ( mess.size() > maxSize )
+    {
+      mess = mess.mid(0,maxSize);
+      mess += "...";
+    }
+    QMessageBox::critical( this, "MantidPlot - Error", QString("PlotPeakByLogValue failed:\n\n  %1").arg(mess) );
   }
+}
 
+/// Fit the data simultaneously.
+void MultiDatasetFit::fitSimultaneous()
+{
   try
   {
     auto fun = createFunction();
@@ -188,7 +236,7 @@ void MultiDatasetFit::fit()
       fit->setPropertyValue("Output",m_outputWorkspaceName);
       m_fitOptionsBrowser->setProperty("Output","out");
     }
-    m_outputWorkspaceName += "_Workspace";
+    m_outputWorkspaceName += "_Workspaces";
 
     m_fitRunner.reset( new API::AlgorithmRunner() );
     connect( m_fitRunner.get(),SIGNAL(algorithmComplete(bool)), this, SLOT(finishFit(bool)), Qt::QueuedConnection );
@@ -209,6 +257,31 @@ void MultiDatasetFit::fit()
   }
 }
 
+/// Run the fitting algorithm.
+void MultiDatasetFit::fit()
+{
+  if ( !m_functionBrowser->hasFunction() )
+  {
+    QMessageBox::warning( this, "MantidPlot - Warning","Function wasn't set." );
+    return;
+  }
+
+  auto fittingType = m_fitOptionsBrowser->getCurrentFittingType();
+  
+  if (fittingType == MantidWidgets::FitOptionsBrowser::Simultaneous)
+  {
+    fitSimultaneous();
+  }
+  else if (fittingType == MantidWidgets::FitOptionsBrowser::Sequential)
+  {
+    fitSequential();
+  }
+  else
+  {
+    throw std::logic_error("Unrecognised fitting type. Only Normal and Sequential are accepted.");
+  }
+}
+
 /// Get the workspace name of the i-th spectrum.
 /// @param i :: Index of a spectrum in the data table.
 std::string MultiDatasetFit::getWorkspaceName(int i) const
@@ -262,8 +335,37 @@ void MultiDatasetFit::finishFit(bool error)
   {
     m_plotController->clear();
     m_plotController->update();
-    Mantid::API::IFunction_sptr fun = m_fitRunner->getAlgorithm()->getProperty("Function");
-    updateParameters( *fun );
+    Mantid::API::IFunction_sptr fun;
+    if (m_fitOptionsBrowser->getCurrentFittingType() == MantidWidgets::FitOptionsBrowser::Simultaneous)
+    {
+      fun = m_fitRunner->getAlgorithm()->getProperty("Function");
+      updateParameters( *fun );
+    }
+    else 
+    {
+      auto paramsWSName = m_fitOptionsBrowser->getProperty("OutputWorkspace").toStdString();
+      if (!Mantid::API::AnalysisDataService::Instance().doesExist(paramsWSName)) return;
+      size_t nSpectra = getNumberOfSpectra();
+      if (nSpectra == 0) return;
+      fun = m_functionBrowser->getGlobalFunction();
+      auto nParams = fun->nParams() / nSpectra;
+      auto params = Mantid::API::AnalysisDataService::Instance().retrieveWS<Mantid::API::ITableWorkspace>(paramsWSName);
+      if (nParams * 2 + 2 != params->columnCount())
+      {
+        throw std::logic_error("Output table workspace has unexpected number of columns.");
+      }
+      for(size_t index = 0; index < nSpectra; ++index)
+      {
+        std::string prefix = "f" + boost::lexical_cast<std::string>(index) + ".";
+        for(size_t ip = 0; ip < nParams; ++ip)
+        {
+          auto colIndex = ip * 2 + 1;
+          auto column = params->getColumn(colIndex);
+          fun->setParameter(prefix + column->name(), column->toDouble(index));
+        }
+      }
+      updateParameters( *fun );
+    }
   }
 }
 
@@ -453,5 +555,49 @@ void MultiDatasetFit::saveSettings() const
   settings.setValue("ApplyRangeToAll",m_uiForm.cbApplyRangeToAll->isChecked());
 }
 
+/// Make sure that simultaneous fitting is on
+/// when the function has at least one global parameter.
+void MultiDatasetFit::checkFittingType()
+{
+  auto globals = m_functionBrowser->getGlobalParameters();
+  if (globals.isEmpty())
+  {
+    m_fitOptionsBrowser->unlockCurrentFittingType();
+  }
+  else
+  {
+    m_fitOptionsBrowser->lockCurrentFittingType(MantidWidgets::FitOptionsBrowser::Simultaneous);
+  }
+}
+
+/**
+ * Collect names of the logs in the data workspaces and pass them on to m_fitOptionsBrowser.
+ */
+void MultiDatasetFit::setLogNames()
+{
+  if (getNumberOfSpectra() > 0)
+  {
+    try
+    {
+      auto ws = Mantid::API::AnalysisDataService::Instance().retrieveWS<Mantid::API::MatrixWorkspace>(getWorkspaceName(0));
+      const std::vector<Mantid::Kernel::Property*> logs = ws->run().getLogData();
+      QStringList logNames;
+      for(int i=0;i<static_cast<int>(logs.size());++i)
+      {
+        if (dynamic_cast<Mantid::Kernel::TimeSeriesProperty<double>*>(logs[i]))
+        {
+          logNames << QString::fromStdString(logs[i]->name());
+        }
+      }
+      if (!logNames.isEmpty())
+      {
+        m_fitOptionsBrowser->setLogNames(logNames);
+      }
+    }
+    catch (...) 
+    {/*Maybe the data table hasn't updated yet*/}
+  }
+}
+
 } // CustomInterfaces
 } // MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingModel.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingModel.cpp
index 688b5f267c1bff5dde68cbc7b451c8cc9602dc37..eb949b4d52825ec1072264a8248736ed9487c066 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingModel.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingModel.cpp
@@ -5,6 +5,7 @@
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/TextAxis.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 
 using namespace Mantid::API;
@@ -43,6 +44,7 @@ namespace CustomInterfaces
     m_parameterTable = fit->getProperty("OutputParameters");
 
     enableDisabledPoints(fitOutput,m_data);
+    setErrorsAfterFit(fitOutput);
 
     setCorrectedData(fitOutput);
     setFittedFunction(funcToFit);
@@ -108,6 +110,15 @@ namespace CustomInterfaces
     destWs->dataE(0) = sourceWs->readE(0);
   }
 
+  /**
+   * Set errors in Diff spectrum after a fit
+   * @param data :: [input/output] Workspace containing spectrum to set errors to
+   */
+  void ALCBaselineModellingModel::setErrorsAfterFit (MatrixWorkspace_sptr data) {
+
+    data->dataE(2)=data->readE(0);
+  }
+
   MatrixWorkspace_sptr ALCBaselineModellingModel::exportWorkspace()
   {
     if ( m_data && m_data->getNumberHistograms() == 3 ) {
@@ -171,26 +182,34 @@ namespace CustomInterfaces
 
   MatrixWorkspace_const_sptr ALCBaselineModellingModel::data() const
   {
-    IAlgorithm_sptr extract = AlgorithmManager::Instance().create("ExtractSingleSpectrum");
-    extract->setChild(true);
-    extract->setProperty("InputWorkspace", boost::const_pointer_cast<MatrixWorkspace>(m_data));
-    extract->setProperty("WorkspaceIndex", 0);
-    extract->setProperty("OutputWorkspace", "__NotUsed__");
-    extract->execute();
-    MatrixWorkspace_const_sptr result = extract->getProperty("OutputWorkspace");
-    return result;
+    if (m_data) {
+      IAlgorithm_sptr extract = AlgorithmManager::Instance().create("ExtractSingleSpectrum");
+      extract->setChild(true);
+      extract->setProperty("InputWorkspace", boost::const_pointer_cast<MatrixWorkspace>(m_data));
+      extract->setProperty("WorkspaceIndex", 0);
+      extract->setProperty("OutputWorkspace", "__NotUsed__");
+      extract->execute();
+      MatrixWorkspace_const_sptr result = extract->getProperty("OutputWorkspace");
+      return result;
+    } else {
+      return MatrixWorkspace_const_sptr();
+    }
   }
 
   MatrixWorkspace_const_sptr ALCBaselineModellingModel::correctedData() const
   {
-    IAlgorithm_sptr extract = AlgorithmManager::Instance().create("ExtractSingleSpectrum");
-    extract->setChild(true);
-    extract->setProperty("InputWorkspace", boost::const_pointer_cast<MatrixWorkspace>(m_data));
-    extract->setProperty("WorkspaceIndex", 2);
-    extract->setProperty("OutputWorkspace", "__NotUsed__");
-    extract->execute();
-    MatrixWorkspace_const_sptr result = extract->getProperty("OutputWorkspace");
-    return result;
+    if (m_data && (m_data->getNumberHistograms()==3) ) {
+      IAlgorithm_sptr extract = AlgorithmManager::Instance().create("ExtractSingleSpectrum");
+      extract->setChild(true);
+      extract->setProperty("InputWorkspace", boost::const_pointer_cast<MatrixWorkspace>(m_data));
+      extract->setProperty("WorkspaceIndex", 2);
+      extract->setProperty("OutputWorkspace", "__NotUsed__");
+      extract->execute();
+      MatrixWorkspace_const_sptr result = extract->getProperty("OutputWorkspace");
+      return result;
+    } else {
+      return MatrixWorkspace_const_sptr();
+    }
   }
 
 } // namespace CustomInterfaces
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingPresenter.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingPresenter.cpp
index b24d160c5f2bff1b65306de641a4c73981667394..5144f135d761deb9664193668d635b15b2e657bd 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingPresenter.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingPresenter.cpp
@@ -84,16 +84,22 @@ namespace CustomInterfaces
    */
   void ALCBaselineModellingPresenter::addSection()
   {
-    double xMin = m_model->data()->getXMin();
-    double xMax = m_model->data()->getXMax();
+    if (MatrixWorkspace_const_sptr data = m_model->data()) {
+      double xMin = data->getXMin();
+      double xMax = data->getXMax();
 
-    int noOfSections = m_view->noOfSectionRows();
+      int noOfSections = m_view->noOfSectionRows();
 
-    m_view->setNoOfSectionRows(noOfSections + 1);
+      m_view->setNoOfSectionRows(noOfSections + 1);
 
-    m_view->setSectionRow(noOfSections, std::make_pair(QString::number(xMin), QString::number(xMax)));
+      m_view->setSectionRow(
+          noOfSections,
+          std::make_pair(QString::number(xMin), QString::number(xMax)));
 
-    m_view->addSectionSelector(noOfSections, std::make_pair(xMin, xMax));
+      m_view->addSectionSelector(noOfSections, std::make_pair(xMin, xMax));
+    } else {
+      m_view->displayError("Please load some data first");
+    }
   }
 
   /**
@@ -169,18 +175,21 @@ namespace CustomInterfaces
   {
     MatrixWorkspace_const_sptr data = m_model->data();
     assert(data);
-    m_view->setDataCurve(*(ALCHelper::curveDataFromWs(data, 0)));
+    m_view->setDataCurve(*(ALCHelper::curveDataFromWs(data, 0)),
+                         ALCHelper::curveErrorsFromWs(data, 0));
   }
 
   void ALCBaselineModellingPresenter::updateCorrectedCurve()
   {
     if(MatrixWorkspace_const_sptr correctedData = m_model->correctedData())
     {
-      m_view->setCorrectedCurve(*(ALCHelper::curveDataFromWs(correctedData, 0)));
+      m_view->setCorrectedCurve(*(ALCHelper::curveDataFromWs(correctedData, 0)),
+                                ALCHelper::curveErrorsFromWs(correctedData, 0));
     }
     else
     {
-      m_view->setCorrectedCurve(*(ALCHelper::emptyCurveData()));
+      m_view->setCorrectedCurve(*(ALCHelper::emptyCurveData()),
+                                std::vector<double>());
     }
   }
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingView.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingView.cpp
index 7ac4044e131007e3d15b2cf0398ab1c6803359fa..03be4452b122836f19f757ae37bcf69382d3a89b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingView.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCBaselineModellingView.cpp
@@ -4,6 +4,7 @@
 #include "MantidAPI/FunctionDomain1D.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidQtAPI/HelpWindow.h"
+#include "MantidQtMantidWidgets/ErrorCurve.h"
 
 #include <boost/scoped_array.hpp>
 
@@ -22,9 +23,26 @@ namespace CustomInterfaces
   ALCBaselineModellingView::ALCBaselineModellingView(QWidget* widget)
     : m_widget(widget), m_ui(),
       m_dataCurve(new QwtPlotCurve()), m_fitCurve(new QwtPlotCurve()),
-      m_correctedCurve(new QwtPlotCurve()), m_rangeSelectors(),
+      m_correctedCurve(new QwtPlotCurve()), m_dataErrorCurve(NULL), 
+      m_correctedErrorCurve(NULL), m_rangeSelectors(),
       m_selectorModifiedMapper(new QSignalMapper(this))
   {}
+
+  ALCBaselineModellingView::~ALCBaselineModellingView()
+  {
+    m_dataCurve->detach();
+    delete m_dataCurve;
+    m_correctedCurve->detach();
+    delete m_correctedCurve;
+    if (m_dataErrorCurve) {
+      m_dataErrorCurve->detach();
+      delete m_dataErrorCurve;
+    }
+    if (m_correctedErrorCurve) {
+      m_correctedErrorCurve->detach();
+      delete m_correctedErrorCurve;
+    }
+  }
     
   void ALCBaselineModellingView::initialize()
   {
@@ -91,15 +109,42 @@ namespace CustomInterfaces
     return m_ui.sections->rowCount();
   }
 
-  void ALCBaselineModellingView::setDataCurve(const QwtData &data)
+  void
+  ALCBaselineModellingView::setDataCurve(const QwtData &data,
+                                         const std::vector<double> &errors)
   {
+    // Set data
     m_dataCurve->setData(data);
+
+    // Set errors
+    if (m_dataErrorCurve) {
+      m_dataErrorCurve->detach();
+      delete m_dataErrorCurve;
+    }
+    m_dataErrorCurve =
+        new MantidQt::MantidWidgets::ErrorCurve(m_dataCurve, errors);
+    m_dataErrorCurve->attach(m_ui.dataPlot);
+
+    // Replot
     m_ui.dataPlot->replot();
   }
 
-  void ALCBaselineModellingView::setCorrectedCurve(const QwtData &data)
+  void ALCBaselineModellingView::setCorrectedCurve(
+      const QwtData &data, const std::vector<double> &errors) 
   {
+    // Set data
     m_correctedCurve->setData(data);
+
+    // Set errors
+    if (m_correctedErrorCurve) {
+      m_correctedErrorCurve->detach();
+      delete m_correctedErrorCurve;
+    }
+    m_correctedErrorCurve =
+        new MantidQt::MantidWidgets::ErrorCurve(m_correctedCurve, errors);
+    m_correctedErrorCurve->attach(m_ui.dataPlot);
+
+    // Replot
     m_ui.correctedPlot->replot();
   }
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCDataLoadingPresenter.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCDataLoadingPresenter.cpp
index deb5a91c29c5faf38cecaddda7877240c61eb25c..4492c6f91876c40633eb1ee49b7bd44d6d9eba94 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCDataLoadingPresenter.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCDataLoadingPresenter.cpp
@@ -38,22 +38,6 @@ namespace CustomInterfaces
   {
     m_view->setWaitingCursor();
 
-    // Check time limits
-    if (auto timeRange = m_view->timeRange()) {
-
-      double tmin = (*timeRange).first;
-      double tmax = (*timeRange).second;
-      if ( tmin >= tmax ){
-        m_view->restoreCursor();
-        m_view->displayError("Invalid time interval");
-        return;
-      }
-    } else {
-      m_view->restoreCursor();
-      m_view->displayError("No time interval");
-      return;
-    }
-
     try
     {
       IAlgorithm_sptr alg = AlgorithmManager::Instance().create("PlotAsymmetryByLogValue");
@@ -69,8 +53,13 @@ namespace CustomInterfaces
       // If time limiting requested, set min/max times
       if (auto timeRange = m_view->timeRange())
       {
-        alg->setProperty("TimeMin", timeRange->first);
-        alg->setProperty("TimeMax", timeRange->second);
+        double timeMin = (*timeRange).first;
+        double timeMax = (*timeRange).second;
+        if (timeMin>=timeMax) {
+          throw std::invalid_argument("Invalid time limits");
+        }
+        alg->setProperty("TimeMin", timeMin);
+        alg->setProperty("TimeMax", timeMax);
       }
 
       // If corrections from custom file requested, set file property
@@ -116,7 +105,8 @@ namespace CustomInterfaces
 
       // Plot spectrum 0. It is either red period (if subtract is unchecked) or 
       // red - green (if subtract is checked)
-      m_view->setDataCurve(*(ALCHelper::curveDataFromWs(m_loadedData, 0)));
+      m_view->setDataCurve(*(ALCHelper::curveDataFromWs(m_loadedData, 0)),
+                           ALCHelper::curveErrorsFromWs(m_loadedData, 0));
 
     }
     catch(std::exception& e)
@@ -194,5 +184,18 @@ namespace CustomInterfaces
     }
    }
 
+   void ALCDataLoadingPresenter::setData(MatrixWorkspace_const_sptr data) {
+
+     if (data) {
+       // Set the data
+       m_loadedData = data;
+       // Plot the data
+       m_view->setDataCurve(*(ALCHelper::curveDataFromWs(m_loadedData, 0)),
+         ALCHelper::curveErrorsFromWs(m_loadedData, 0));
+
+     } else {
+       std::invalid_argument("Cannot load an empty workspace");
+     }
+   }
 } // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCDataLoadingView.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCDataLoadingView.cpp
index 3ce8a882d78b5ce974a028f0ebee46654fc27c6a..f2e6c9712f4cc86af3f1eea2f66670ae8ed47cac 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCDataLoadingView.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCDataLoadingView.cpp
@@ -1,6 +1,7 @@
 #include "MantidQtCustomInterfaces/Muon/ALCDataLoadingView.h"
 
 #include "MantidQtAPI/HelpWindow.h"
+#include "MantidQtMantidWidgets/ErrorCurve.h"
 
 #include <QMessageBox>
 
@@ -11,9 +12,18 @@ namespace MantidQt
 namespace CustomInterfaces
 {
   ALCDataLoadingView::ALCDataLoadingView(QWidget* widget)
-    : m_widget(widget), m_dataCurve(new QwtPlotCurve())
+    : m_widget(widget), m_dataCurve(new QwtPlotCurve()), m_dataErrorCurve(NULL)
   {}
 
+  ALCDataLoadingView::~ALCDataLoadingView() {
+    m_dataCurve->detach();
+    delete m_dataCurve;
+    if (m_dataErrorCurve) {
+      m_dataErrorCurve->detach();
+      delete m_dataErrorCurve;
+    }
+  }
+
   void ALCDataLoadingView::initialize()
   {
     m_ui.setupUi(m_widget);
@@ -131,9 +141,21 @@ namespace CustomInterfaces
     return boost::make_optional(range);
   }
 
-  void ALCDataLoadingView::setDataCurve(const QwtData& data)
-  {
+  void ALCDataLoadingView::setDataCurve(const QwtData &data,
+                                        const std::vector<double> &errors) {
+
+    // Set data
     m_dataCurve->setData(data);
+
+    // Set errors
+    if (m_dataErrorCurve) {
+      m_dataErrorCurve->detach();
+      delete m_dataErrorCurve;
+    }
+    m_dataErrorCurve =
+        new MantidQt::MantidWidgets::ErrorCurve(m_dataCurve, errors);
+    m_dataErrorCurve->attach(m_ui.dataPlot);
+
     m_ui.dataPlot->replot();
   }
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCHelper.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCHelper.cpp
index c10a168c7a92be354de572df1540fde6b1e42fb0..76fdb1e3a91e56ae17f02e3f5dd8263629226a91 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCHelper.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCHelper.cpp
@@ -27,6 +27,17 @@ namespace ALCHelper
     return boost::make_shared<QwtArrayData>(x,y,size);
   }
 
+  /**
+   * Creates vector of errors using E values from the workspace spectra.
+   * @param ws :: Workspace with E values to use
+   * @param wsIndex :: Workspace index to use
+   * @return Vector of errors
+   */
+  std::vector<double> curveErrorsFromWs(MatrixWorkspace_const_sptr ws, size_t wsIndex)
+  {
+    return ws->readE(wsIndex);
+  }
+
   /**
    * Creates QwtData with Y values produced by the function for specified X values.
    * @param func :: Function to use
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCInterface.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCInterface.cpp
index 38f49382b818a59dd4dc3ac4e249aa581cfc5359..5e0703eea02248d71696be2ee0b2dfb78329222b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCInterface.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCInterface.cpp
@@ -4,12 +4,18 @@
 #include "MantidQtCustomInterfaces/Muon/ALCBaselineModellingView.h"
 #include "MantidQtCustomInterfaces/Muon/ALCPeakFittingView.h"
 
+#include "MantidQtCustomInterfaces/Muon/ALCDataLoadingPresenter.h"
+#include "MantidQtCustomInterfaces/Muon/ALCBaselineModellingPresenter.h"
+#include "MantidQtCustomInterfaces/Muon/ALCPeakFittingPresenter.h"
+
 #include "MantidQtCustomInterfaces/Muon/ALCBaselineModellingModel.h"
 #include "MantidQtCustomInterfaces/Muon/ALCPeakFittingModel.h"
 
 #include "QInputDialog"
 
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/WorkspaceGroup.h"
+#include "MantidAPI/ITableWorkspace.h"
 
 namespace MantidQt
 {
@@ -37,6 +43,7 @@ namespace CustomInterfaces
     connect(m_ui.nextStep, SIGNAL(clicked()), SLOT(nextStep()));
     connect(m_ui.previousStep, SIGNAL(clicked()), SLOT(previousStep()));
     connect(m_ui.exportResults, SIGNAL(clicked()), SLOT(exportResults()));
+    connect(m_ui.importResults, SIGNAL(clicked()), SLOT(importResults()));
 
     auto dataLoadingView = new ALCDataLoadingView(m_ui.dataLoadingView);
     m_dataLoading = new ALCDataLoadingPresenter(dataLoadingView);
@@ -68,11 +75,6 @@ namespace CustomInterfaces
       {
         m_baselineModellingModel->setData(m_dataLoading->loadedData());
       }
-      else
-      {
-        QMessageBox::critical(this, "Error", "Please load some data first");
-        return;
-      }
     }
     if (nextWidget == m_ui.peakFittingView)
     {
@@ -80,11 +82,6 @@ namespace CustomInterfaces
       {
         m_peakFittingModel->setData(m_baselineModellingModel->correctedData());
       }
-      else
-      {
-        QMessageBox::critical(this, "Error", "Please fit a baseline first");
-        return;
-      }
     }
 
     switchStep(next);
@@ -157,16 +154,20 @@ namespace CustomInterfaces
     results["Peaks_FitResults"] = m_peakFittingModel->exportFittedPeaks();
 
     // Check if any of the above is not empty
+    bool nothingToExport = true;
     for (auto it=results.begin(); it!=results.end(); ++it) {
     
       if ( it->second ) {
-        AnalysisDataService::Instance().addOrReplace(groupName, boost::make_shared<WorkspaceGroup>());
+        nothingToExport = false;
         break;
       }
     }
 
     // There is something to export
-    if (AnalysisDataService::Instance().doesExist(groupName)) {
+    if (!nothingToExport) {
+
+      // Add output group to the ADS
+      AnalysisDataService::Instance().addOrReplace(groupName, boost::make_shared<WorkspaceGroup>());
 
       for(auto it = results.begin(); it != results.end(); ++it)
       {
@@ -182,5 +183,114 @@ namespace CustomInterfaces
     }
   }
 
+  void ALCInterface::importResults() {
+
+    bool ok;
+    QString label = QInputDialog::getText(this, "Results label", "Label to assign to the results: ",
+      QLineEdit::Normal, "ALCResults", &ok);
+
+    if (!ok) // Cancelled
+    {
+      return;
+    }
+
+    std::string groupName = label.toStdString();
+
+    using namespace Mantid::API;
+
+    int currentStep = m_ui.stepView->currentIndex();
+
+    if (currentStep == 0) {
+      // DataLoading step
+
+      std::string wsData = groupName + "_Loaded_Data";
+
+      if(AnalysisDataService::Instance().doesExist(wsData)) {
+
+        MatrixWorkspace_sptr ws =
+            AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(wsData);
+
+        // Check that ws contains one spectrum only
+        if (ws->getNumberHistograms() != 1) {
+          QMessageBox::critical(this, "Error",
+                                "Workspace " + QString::fromStdString(wsData) +
+                                    " must contain one spectrum only");
+          return;
+        }
+
+        // Set the retrieved data
+        m_dataLoading->setData(ws);
+
+      } else {
+        // Error message
+        QMessageBox::critical(this, "Error",
+                              "Workspace " + QString::fromStdString(wsData) +
+                                  " was not found");
+      }
+
+
+    } else if (currentStep == 1) {
+      // BaselineModelling step
+
+      std::string wsData = groupName + "_Baseline_Workspace";
+
+      if (AnalysisDataService::Instance().doesExist(wsData)) {
+
+        MatrixWorkspace_sptr dataWs =
+            AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(wsData);
+
+        // Check that ws contains three spectra
+        if (dataWs->getNumberHistograms() != 3) {
+          QMessageBox::critical(this, "Error",
+                                "Workspace " + QString::fromStdString(wsData) +
+                                    " must contain three spectra");
+          return;
+        }
+
+        // Set the retrieved workspace
+        m_baselineModellingModel->setData(dataWs);
+        m_baselineModellingModel->setCorrectedData(dataWs);
+
+      } else {
+        // Error message
+        QMessageBox::critical(this, "Error",
+                              "Workspace " + QString::fromStdString(wsData) +
+                                  " was not found");
+      }
+
+    } else if (currentStep == 2) {
+      // PeakFitting step
+
+      std::string wsData = groupName + "_Peaks_Workspace";
+
+      if (AnalysisDataService::Instance().doesExist(wsData)) {
+
+        MatrixWorkspace_sptr data =
+            AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(wsData);
+
+        // Check that ws contains one spectrum only
+        if (data->getNumberHistograms() < 3) {
+          QMessageBox::critical(this, "Error",
+                                "Workspace " + QString::fromStdString(wsData) +
+                                    " must contain at least three spectra");
+          return;
+        }
+
+        // Set the retrieved data
+        m_peakFittingModel->setData(data);
+
+      } else {
+        // Error message
+        QMessageBox::critical(this, "Error",
+                              "Workspace " + QString::fromStdString(wsData) +
+                                  " was not found");
+      }
+
+    } else {
+      // Exception: we can never get here
+      throw std::runtime_error("Fatal error in ALC interface");
+    }
+  }
+
 } // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingModel.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingModel.cpp
index 6344cde474d0d8c95329486d446062d82b6d944a..99f394d37690df2d78de1956a3edfa803e92116c 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingModel.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingModel.cpp
@@ -4,6 +4,7 @@
 
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/TextAxis.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/CompositeFunction.h"
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingPresenter.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingPresenter.cpp
index d9e6894ab05bffd76db4c765c16885fe031f6cbe..7259a2d0189d2bd6cad70cd96d651839a512f9d6 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingPresenter.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingPresenter.cpp
@@ -108,7 +108,8 @@ namespace CustomInterfaces
 
   void ALCPeakFittingPresenter::onDataChanged()
   {
-    m_view->setDataCurve(*(ALCHelper::curveDataFromWs(m_model->data(), 0)));
+    m_view->setDataCurve(*(ALCHelper::curveDataFromWs(m_model->data(), 0)),
+                         ALCHelper::curveErrorsFromWs(m_model->data(), 0));
   }
 
 } // namespace CustomInterfaces
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingView.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingView.cpp
index 4b7e7297abaef8061aa5ed7ab4d214e297e3cfef..9388240c13adbbcad1072ad4864196b9a25b37da 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingView.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/ALCPeakFittingView.cpp
@@ -1,6 +1,7 @@
 #include "MantidQtCustomInterfaces/Muon/ALCPeakFittingView.h"
 
 #include "MantidQtAPI/HelpWindow.h"
+#include "MantidQtMantidWidgets/ErrorCurve.h"
 
 #include <QMessageBox>
 
@@ -13,9 +14,19 @@ namespace CustomInterfaces
 
 ALCPeakFittingView::ALCPeakFittingView(QWidget* widget)
   : m_widget(widget), m_ui(), m_dataCurve(new QwtPlotCurve()), m_fittedCurve(new QwtPlotCurve()),
-    m_peakPicker(NULL)
+    m_dataErrorCurve(NULL), m_peakPicker(NULL)
 {}
 
+ALCPeakFittingView::~ALCPeakFittingView()
+{
+  m_dataCurve->detach();
+  delete m_dataCurve;
+  if (m_dataErrorCurve) {
+    m_dataErrorCurve->detach();
+    delete m_dataErrorCurve;
+  }
+}
+
 IFunction_const_sptr ALCPeakFittingView::function(QString index) const
 {
   return m_ui.peaks->getFunctionByIndex(index);
@@ -62,9 +73,22 @@ void ALCPeakFittingView::initialize()
   connect(m_ui.help, SIGNAL(clicked()), this, SLOT(help()));
 }
 
-void ALCPeakFittingView::setDataCurve(const QwtData& data)
-{
+void ALCPeakFittingView::setDataCurve(const QwtData &data,
+                                      const std::vector<double> &errors) {
+
+  // Set data
   m_dataCurve->setData(data);
+
+  // Set errors
+  if (m_dataErrorCurve) {
+    m_dataErrorCurve->detach();
+    delete m_dataErrorCurve;
+  }
+  m_dataErrorCurve =
+      new MantidQt::MantidWidgets::ErrorCurve(m_dataCurve, errors);
+  m_dataErrorCurve->attach(m_ui.plot);
+
+  // Replot
   m_ui.plot->replot();
 }
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/IO_MuonGrouping.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/IO_MuonGrouping.cpp
index 2dbe11f09e64db45ee1f166c2e01fb46dcdb3b6e..c2069ddb6552c55674f80e250137526b28d09fcc 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/IO_MuonGrouping.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/IO_MuonGrouping.cpp
@@ -6,6 +6,7 @@
 #include "MantidQtCustomInterfaces/Muon/MuonAnalysis.h"
 #include "MantidQtCustomInterfaces/Muon/IO_MuonGrouping.h"
 
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidQtAPI/UserSubWindow.h"
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp
index cb0ee68ee1a4ae2db334523a394655418f9b1c32..0c430a5cf4e95a1e02f9dd085f6ac743b5892b53 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp
@@ -7,6 +7,7 @@
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/Run.h"
 #include "MantidAPI/ScopedWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/WorkspaceGroup.h"
 #include "MantidGeometry/IComponent.h"
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/MuonAnalysisResultTableTab.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/MuonAnalysisResultTableTab.cpp
index 5ac7a3a4f4c523e6586e71d2ef324a067d2dbd6b..e73c6ffeef00e6737ed27d4291222a4991f76907 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/MuonAnalysisResultTableTab.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Muon/MuonAnalysisResultTableTab.cpp
@@ -4,6 +4,7 @@
 #include "MantidQtCustomInterfaces/Muon/MuonAnalysisResultTableTab.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/TimeSeriesProperty.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 
 #include "MantidQtMantidWidgets/MuonSequentialFitDialog.h"
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/ReflCatalogSearcher.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/ReflCatalogSearcher.cpp
index b2600f66bb04379bee50d17502f94f3ac0ec4c1e..06e32c3a86caed49ad8b9fc31644622c397c263b 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/ReflCatalogSearcher.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/ReflCatalogSearcher.cpp
@@ -2,6 +2,7 @@
 
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/CatalogManager.h"
+#include "MantidAPI/ITableWorkspace.h"
 
 using namespace Mantid::API;
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/ReflMainViewPresenter.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/ReflMainViewPresenter.cpp
index a7b99b8508dca5abad42be3fdbada08a1c4e3ba2..7abb7d12b3ebfc67b69fea459558b46640c8e0e1 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/ReflMainViewPresenter.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/ReflMainViewPresenter.cpp
@@ -1044,7 +1044,9 @@ namespace MantidQt
     {
       if(!m_wsName.empty())
       {
-        AnalysisDataService::Instance().addOrReplace(m_wsName,boost::shared_ptr<ITableWorkspace>(m_ws->clone()));
+        AnalysisDataService::Instance().addOrReplace(
+            m_wsName,
+            boost::shared_ptr<ITableWorkspace>(m_ws->clone().release()));
         m_tableDirty = false;
       }
       else
@@ -1107,7 +1109,8 @@ namespace MantidQt
       ITableWorkspace_sptr origTable = AnalysisDataService::Instance().retrieveWS<ITableWorkspace>(toOpen);
 
       //We create a clone of the table for live editing. The original is not updated unless we explicitly save.
-      ITableWorkspace_sptr newTable = boost::shared_ptr<ITableWorkspace>(origTable->clone());
+      ITableWorkspace_sptr newTable =
+          boost::shared_ptr<ITableWorkspace>(origTable->clone().release());
       try
       {
         validateModel(newTable);
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/SANSAddFiles.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/SANSAddFiles.cpp
index 105195d6a8b7574d61a048b827994b3a8718d2b5..98a2b4272fee0a5199f291d388da03dc75203002 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/SANSAddFiles.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/SANSAddFiles.cpp
@@ -16,6 +16,11 @@
 
 #include <algorithm>
 
+
+namespace {
+  enum BINOPTIONS {CUSTOMBINNING, FROMMONITORS, SAVEASEVENTDATA};
+}
+
 namespace MantidQt
 {
 namespace CustomInterfaces
@@ -48,7 +53,12 @@ const QString SANSAddFiles::OUT_MSG("Output Directory: ");
 
 SANSAddFiles::SANSAddFiles(QWidget *parent, Ui::SANSRunWindow *ParWidgets) :
   m_SANSForm(ParWidgets), parForm(parent), m_pythonRunning(false),
-  m_newOutDir(*this, &SANSAddFiles::changeOutputDir)
+  m_newOutDir(*this, &SANSAddFiles::changeOutputDir), m_customBinning(""),
+  m_customBinningText("Bin Settings: "), m_customBinningToolTip("Sets the bin options for custom binning"),
+  m_saveEventDataText("Additional Time Shifts: "),
+  m_saveEventDataToolTip("Set optional, comma-separated time shifts in seconds.\n"
+                         "You can either specify non or N-1 time shifts for N files.\n"
+                         "Note that the time shifts are relative to the time of the workspace which was added last.")
 {
   initLayout();
 
@@ -124,6 +134,10 @@ void SANSAddFiles::initLayout()
   // Track changes in the selection of the histogram option
   connect(m_SANSForm->comboBox_histogram_choice, SIGNAL(currentIndexChanged (int)), this, SLOT(onCurrentIndexChangedForHistogramChoice(int)));
 
+  // Track changes in the overlay options 
+  m_SANSForm->overlayCheckBox->setEnabled(false);
+  m_customBinning = m_SANSForm->eventToHistBinning->text();
+  connect(m_SANSForm->overlayCheckBox, SIGNAL(stateChanged(int)), this, SLOT(onStateChangedForOverlayCheckBox(int)));
 }
 /**
  * Restore previous input
@@ -243,6 +257,11 @@ void SANSAddFiles::add2Runs2Add()
 */
 void SANSAddFiles::runPythonAddFiles()
 {
+  // Check the validty of the input for the 
+  if (!checkValidityTimeShiftsForAddedEventFiles()) {
+    return;
+  }
+
   if (m_pythonRunning)
   {//it is only possible to run one python script at a time
     return;
@@ -294,19 +313,22 @@ void SANSAddFiles::runPythonAddFiles()
   QString lowMem = m_SANSForm->loadSeparateEntries->isChecked()?"True":"False";
   code_torun += ", lowMem="+lowMem;
 
+  QString overlay = m_SANSForm->overlayCheckBox->isChecked()?"True":"False";
   // In case of event data, check if the user either wants 
   // 0. Custom historgram binning
   // 1. A binning which is set by the data set
   // 2. To save the actual event data
   switch (m_SANSForm->comboBox_histogram_choice->currentIndex())
   {
-    case 0:
+    case CUSTOMBINNING:
       code_torun += ", binning='" + m_SANSForm->eventToHistBinning->text() + "'";
       break;
-    case 1:
+    case FROMMONITORS:
       break;
-    case 2:
+    case SAVEASEVENTDATA:
       code_torun += ", saveAsEvent=True";
+      code_torun += ", isOverlay=" + overlay;
+      code_torun += ", time_shifts="+ createPythonStringList(m_SANSForm->eventToHistBinning->text());
       break;
     default:
       break;
@@ -432,15 +454,123 @@ void SANSAddFiles::enableSumming()
  */
 void SANSAddFiles::onCurrentIndexChangedForHistogramChoice(int index) 
 {
-  if (index == 0)
-  {
-    this->m_SANSForm->eventToHistBinning->setEnabled(true);
+  // Set the overlay checkbox enabled or disabled
+  // Set the input field enabled or disabled
+  switch(index) {
+    case CUSTOMBINNING: 
+      m_SANSForm->overlayCheckBox->setEnabled(false);
+      setHistogramUiLogic(m_customBinningText, m_customBinningToolTip, m_customBinning, true);
+      break;
+    case FROMMONITORS:
+      setHistogramUiLogic(m_customBinningText, m_customBinningToolTip, m_customBinning, false);
+      setInputEnabled(false);
+      break;
+    case SAVEASEVENTDATA:
+      m_customBinning = this->m_SANSForm->eventToHistBinning->text();
+      m_SANSForm->eventToHistBinning->setText("");
+
+      setHistogramUiLogic(m_saveEventDataText, m_saveEventDataToolTip, "", true);
+      m_SANSForm->overlayCheckBox->setEnabled(true);
+
+      setInputEnabled(m_SANSForm->overlayCheckBox->isChecked());
+      break;
+    default:
+      setInputEnabled(false);
+      break;
   }
-  else
-  {
-    this->m_SANSForm->eventToHistBinning->setEnabled(false);
+}
+
+/**
+ * Reacts to changes of the overlay check box when adding event data
+ * @param state the state of the check box
+ */
+void SANSAddFiles::onStateChangedForOverlayCheckBox(int state) {
+  setInputEnabled(state != 0);
+}
+
+/*
+ * Check the validity of the time shift input field for added event files
+ */
+bool SANSAddFiles::checkValidityTimeShiftsForAddedEventFiles() {
+  bool state = true;
+
+  if (m_SANSForm->comboBox_histogram_choice->currentIndex() == SAVEASEVENTDATA && m_SANSForm->overlayCheckBox->isChecked()) {
+    QString code_torun = "import ISISCommandInterface as i\n";
+    code_torun += "i.check_time_shifts_for_added_event_files(number_of_files=";
+    code_torun += QString::number(m_SANSForm->toAdd_List->count() - 1);
+    code_torun += ", time_shifts='" + m_SANSForm->eventToHistBinning->text() + "')\n";
+
+    QString status = runPythonCode(code_torun, false);
+    if (!status.isEmpty()) {
+      g_log.warning() << status.toStdString();
+    }
+
+    if (status.contains("Error")) {
+      state = false;
+    }
+  }
+
+  return state;
+}
+
+/**
+ * Set the UI logic for the histogram binning and saving as event data bit.
+ * @param label :: the label of the line edit field.
+ * @param toolTip :: the tooltip text.
+ * @param lineEditText :: text for the line edit field
+ * @param enabled :: if the input should be enabled.
+ */
+void SANSAddFiles::setHistogramUiLogic(QString label, QString toolTip, QString lineEditText, bool enabled) {
+  // Line edit field
+  m_SANSForm->eventToHistBinning->setText(lineEditText);
+  m_SANSForm->eventToHistBinning->setToolTip(toolTip);
+
+  // Label for line edit field
+  m_SANSForm->labelBinning->setText(label);
+  m_SANSForm->labelBinning->setToolTip(toolTip);
+
+  setInputEnabled(enabled);
+}
+
+/**
+ * Enables or disables the line editr field for histograms and time shifts, as well 
+ * as the corresponding labels
+ * @param enabled :: is enabled or not
+ */
+void SANSAddFiles::setInputEnabled(bool enabled) {
+  m_SANSForm->eventToHistBinning->setEnabled(enabled);
+  m_SANSForm->labelBinning->setEnabled(enabled);
+}
+
+/**
+ * Produces a Python string list of the format "['entry1', 'entry2', ...]"
+ * @param inputString :: This string has a format of "entry1, entry2, ..."
+ * @returns a Python list of strings
+ */
+QString SANSAddFiles::createPythonStringList(QString inputString) {
+  QString formattedString = "[";
+  QString finalizer = "]";
+  QString quotationMark = "'";
+  QString delimiter = ",";
+
+  if (inputString.isEmpty()) {
+    return formattedString + finalizer;
+  }
+
+  inputString.replace(" ", "");
+  auto inputStringList = inputString.split(delimiter);
+
+  for (auto it = inputStringList.begin(); it != inputStringList.end(); ++it) {
+
+    formattedString += quotationMark + *it + quotationMark + delimiter;
   }
+
+  formattedString.remove(formattedString.length()-delimiter.length(), delimiter.length());
+  formattedString += finalizer;
+  return formattedString;
 }
 
+
+
 }//namespace CustomInterfaces
 }//namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/SANSDiagnostics.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/SANSDiagnostics.cpp
index a8379bf48af3121f6c37608f5e400348f09eea57..da6d11542d60681ab759f8df3f515cee56bfd054 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/SANSDiagnostics.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/SANSDiagnostics.cpp
@@ -7,6 +7,9 @@
 #include "MantidGeometry/Instrument/RectangularDetector.h"
 #include "MantidGeometry/IDetector.h"
 
+#include <boost/shared_ptr.hpp>
+#include <boost/optional.hpp>
+
 using Mantid::specid_t;
 using Mantid::detid_t;
 
@@ -686,12 +689,12 @@ namespace MantidQt
       
       QString detName= getDetectorName(0);
       //give the detectorname_H for workspace
-      detName+="_H";
-      const QString opws(detName);
+      const QString integrationType ="H";
+
       ///horizontal integral range string
       QString hiRange=m_SANSForm->hirange_edit1->text();
      
-      IntegralClicked(hiRange,orientation,minSpec,maxSpec,opws,m_SANSForm->tcmask1->isChecked(),true);
+      IntegralClicked(hiRange,orientation,minSpec,maxSpec,detName, integrationType ,m_SANSForm->tcmask1->isChecked(),true);
          
     }
 
@@ -733,13 +736,11 @@ namespace MantidQt
       }
       QString detName= getDetectorName(0);
       //give the detectorname_V for workspace
-      detName+="_V";
-      QString opws(detName);
+      const QString integrationType ="V";
       ///horizontal integral range string
       QString viRange=m_SANSForm->virange_edit1->text();
       
-      IntegralClicked(viRange,orientation,minSpec,maxSpec,opws,m_SANSForm->tcmask2->isChecked(),true);
-
+      IntegralClicked(viRange,orientation,minSpec,maxSpec,detName,integrationType,m_SANSForm->tcmask2->isChecked(),true);
     }
 
 
@@ -798,12 +799,13 @@ namespace MantidQt
     * @param orientation orientation
     * @param specMin- minimum spectrum index
     * @param specMax - maximum spectrum index
-    * @param opws - output workspace.
+    * @param detectorName - name of the detector.
+    * @param integrationType - the type of the integration, i.e. H, V or T
     * @param bMask boolean used for masking
     * @param time_pixel true if time masking,false if pixel mask
     */
     void SANSDiagnostics::IntegralClicked(const QString& range,const QString& orientation,
-      const QString& specMin,const QString& specMax,const QString& opws,bool bMask,bool time_pixel)
+      const QString& specMin,const QString& specMax,const QString& detectorName, const QString& integrationType, bool bMask,bool time_pixel)
     {
       /// now run the load algorithm with the spec_min and spec_max
       if(!runLoadAlgorithm(m_fileName,specMin,specMax))
@@ -812,7 +814,7 @@ namespace MantidQt
       } 
       //get the workspace name
       QString loadedws = getWorkspaceToProcess(); 
-            
+
       //aplly mask
       if(bMask)
       {
@@ -823,6 +825,10 @@ namespace MantidQt
       {        
         QString HVMin,HVMax;
         HVMinHVMaxStringValues(Mantid::EMPTY_INT(),Mantid::EMPTY_INT(),HVMin,HVMax);
+
+        // Create output workspace name
+        QString opws = createOutputWorkspaceName(m_outws_load, detectorName, integrationType, HVMin, HVMax);
+
         if(!runsumRowColumn(loadedws,opws,orientation,HVMin,HVMax))
         {
           return ;
@@ -832,7 +838,6 @@ namespace MantidQt
         return;
       }
       //parse the range string
-      int count=0;
       UserStringParser parser;
       std::vector<std::vector<unsigned int> > parsedVals;
       try
@@ -853,8 +858,8 @@ namespace MantidQt
       QString wsPlotString;
       //loop through each element of the parsed value vector
       std::vector<std::vector<unsigned int> >::const_iterator parsedValcitr;
-      for(parsedValcitr=parsedVals.begin();parsedValcitr!=parsedVals.end();++parsedValcitr)
-	  {
+      for(parsedValcitr=parsedVals.begin();parsedValcitr!=parsedVals.end();++parsedValcitr) 
+      {
         if((*parsedValcitr).empty())
         {
           return;
@@ -881,20 +886,18 @@ namespace MantidQt
 
         QString HVMin,HVMax;
         HVMinHVMaxStringValues(min,max,HVMin,HVMax);
-        
-        ++count;
-        std::stringstream num;
-        num<<count;
-        QString outputwsname=opws+QString::fromStdString(num.str());
+
+        // Create output workspace name
+        QString opws = createOutputWorkspaceName(m_outws_load, detectorName, integrationType, HVMin, HVMax);
 
         //now execute sumrowcolumn with hvmin and havmax from the first and last vales from the vector
-        if(!runsumRowColumn(loadedws,outputwsname,orientation,HVMin,HVMax))
+        if(!runsumRowColumn(loadedws,opws,orientation,HVMin,HVMax))
         {
           return ;
         }
-               
+
         wsPlotString+="\"";
-        wsPlotString+=outputwsname;
+        wsPlotString+= opws;
         wsPlotString+="\"";
         wsPlotString+=",";
       }
@@ -1113,11 +1116,10 @@ namespace MantidQt
       }
       QString detName= getDetectorName(detNum);
       //give the detectorname_H for workspace
-      detName+="_H";
-      QString opws(detName);
+      QString integrationType = "H";
       ///horizontal integral range string
       QString hiRange=m_SANSForm->hirange_edit2->text();
-      IntegralClicked(hiRange,orientation,minSpec,maxSpec,opws,m_SANSForm->tcmask3->isChecked(),true);
+      IntegralClicked(hiRange,orientation,minSpec,maxSpec,detName, integrationType,m_SANSForm->tcmask3->isChecked(),true);
 
     }
     /// Handler for second detector horizontal integral button
@@ -1157,12 +1159,10 @@ namespace MantidQt
       }
       QString detName= getDetectorName(detNum);
       //give the detectorname_H for workspace
-      detName+="_V";
-      QString opws(detName);
-
+      QString integrationType = "V";
       ///horizontal integral range string
       QString viRange=m_SANSForm->virange_edit2->text();
-      IntegralClicked(viRange,orientation,minSpec,maxSpec,opws,m_SANSForm->tcmask4->isChecked(),true);
+      IntegralClicked(viRange,orientation,minSpec,maxSpec,detName,integrationType,m_SANSForm->tcmask4->isChecked(),true);
     }
     /// Handler for second detector horizontal integral button
     void SANSDiagnostics::secondDetectorTimeIntegralClicked()
@@ -1526,5 +1526,53 @@ namespace MantidQt
       m_SANSForm->pmask2->setEnabled(true);
     }
 
+    /**
+     * Rename the output workspace to a form {runnumber}-{detector}-detector
+     * @param originalWorkspaceName :: name of the original workspace
+     * @param detectorName :: name of the detector
+     * @param integrationType :: the type of integration, i.e. H, V or T
+     * @param min :: minimum as string
+     * @param max :: maximum as string
+     * @returns an output workspace name
+     */
+    QString SANSDiagnostics::createOutputWorkspaceName(QString originalWorkspaceName, QString detectorName, QString integrationType, QString min, QString max)
+    {
+      // Get run number from the loaded workspace
+      boost::optional<int> runNumber = boost::none;
+      try
+      {
+        Mantid::API::Workspace_sptr ws_sptr= Mantid::API::AnalysisDataService::Instance().retrieve(originalWorkspaceName.toStdString());
+        Mantid::API::MatrixWorkspace_sptr matrix_ws_sptr = boost::dynamic_pointer_cast<Mantid::API::MatrixWorkspace>(ws_sptr);
+
+        if (matrix_ws_sptr)
+        {
+          runNumber = matrix_ws_sptr->getRunNumber();
+        }
+      }
+      catch(...)
+      {
+        g_log.error()<<"Error when extracting the run number from the Workspace "+ originalWorkspaceName.toStdString()<<std::endl;
+      }
+
+      // Build the output name 
+      QString outputWorkspaceName;
+      if (runNumber)
+      {
+        outputWorkspaceName = QString::number(*runNumber);
+      }
+      else
+      {
+        g_log.error()<<"Error: It seems that workspace "+ originalWorkspaceName.toStdString()<< " does not have a run number." <<std::endl;
+        outputWorkspaceName = "xxxxx";
+      }
+
+      // Detector, Min value,  and Max values, 
+      QString appendix = "-" + detectorName + "-" + integrationType + min + "-" + integrationType + max;
+      outputWorkspaceName += appendix;
+
+      outputWorkspaceName.replace("-", "_");
+
+      return outputWorkspaceName;
+    }
   }
 }
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/SANSRunWindow.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/SANSRunWindow.cpp
index da2983690a9f01de2c10f705a46fba9825913c19..55ad4ebcedeeee13059944fb987fd94f3ccdfd7a 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/SANSRunWindow.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/SANSRunWindow.cpp
@@ -148,6 +148,12 @@ namespace
       settings->setProperty(name, value);
   }
 }
+
+//----------------------------------------------
+// Static key strings
+//----------------------------------------------
+const QString SANSRunWindow::m_pythonSuccessKeyword  = "pythonExecutionWasSuccessful";
+const QString SANSRunWindow::m_pythonEmptyKeyword = "None";
 //----------------------------------------------
 // Public member functions
 //----------------------------------------------
@@ -310,6 +316,10 @@ void SANSRunWindow::initLayout()
   connect(m_uiForm.slicePb, SIGNAL(clicked()), this, SLOT(handleSlicePushButton()));
   connect(m_uiForm.pushButton_Help, SIGNAL(clicked()), this, SLOT(openHelpPage()));
 
+
+  // Setup the Transmission Settings
+  initTransmissionSettings();
+
   // Set the validators
   setValidators();
 
@@ -422,13 +432,27 @@ void SANSRunWindow::saveWorkspacesDialog()
 {
   //Qt::WA_DeleteOnClose must be set for the dialog to aviod a memory leak
   m_saveWorkspaces =
-    new SaveWorkspaces(this, m_uiForm.outfile_edit->text(), m_savFormats);
+    new SaveWorkspaces(this, m_uiForm.outfile_edit->text(), m_savFormats, m_uiForm.zeroErrorCheckBox->isChecked());
   //this dialog sometimes needs to run Python, pass this to Mantidplot via our runAsPythonScript() signal
   connect(m_saveWorkspaces, SIGNAL(runAsPythonScript(const QString&, bool)),
     this, SIGNAL(runAsPythonScript(const QString&, bool)));
   //we need know if we have a pointer to a valid window or not
   connect(m_saveWorkspaces, SIGNAL(closing()),
     this, SLOT(saveWorkspacesClosed()));
+  // Connect the request for a zero-error-free workspace
+  // cpp-check does not understand that the input are two references
+  // cppcheck-suppress duplicateExpression
+  connect(m_saveWorkspaces, SIGNAL(createZeroErrorFreeWorkspace(QString& , QString&)),
+          // cppcheck-suppress duplicateExpression
+          this, SLOT(createZeroErrorFreeClone(QString&, QString&)));
+  // Connect the request for deleting a zero-error-free workspace
+  connect(m_saveWorkspaces, SIGNAL(deleteZeroErrorFreeWorkspace(QString&)),
+         this, SLOT(deleteZeroErrorFreeClone(QString&) ));
+  // Connect to change in the zero-error removal checkbox
+  connect(m_uiForm.zeroErrorCheckBox, SIGNAL(stateChanged(int)),
+          m_saveWorkspaces, SLOT(onSaveAsZeroErrorFreeChanged(int)));
+
+
   m_uiForm.saveSel_btn->setEnabled(false);
   m_saveWorkspaces->show();
 }
@@ -520,7 +544,7 @@ void SANSRunWindow::initWidgetMaps()
   m_allowed_batchtags.insert("background_trans",-1);
   m_allowed_batchtags.insert("background_direct_beam",-1);
   m_allowed_batchtags.insert("output_as",6);
-
+  m_allowed_batchtags.insert("user_file",7);
   //            detector info  
   // SANS2D det names/label map
     QHash<QString, QLabel*> labelsmap;
@@ -744,7 +768,7 @@ bool SANSRunWindow::loadUserFile()
     m_cfg_loaded = false;
     return false;
   }
-  
+
   QFile user_file(filetext);
   if( !user_file.open(QIODevice::ReadOnly) )
   {
@@ -754,14 +778,14 @@ bool SANSRunWindow::loadUserFile()
   }
 
   user_file.close();
-  
+
   //Clear the def masking info table.
   int mask_table_count = m_uiForm.mask_table->rowCount();
   for( int i = mask_table_count - 1; i >= 0; --i )
   {
     m_uiForm.mask_table->removeRow(i);
   }
-  
+
   QString pyCode = "i.Clean()";
   pyCode += "\ni." + getInstrumentClass();
   pyCode += "\ni.ReductionSingleton().user_settings =";
@@ -885,6 +909,9 @@ bool SANSRunWindow::loadUserFile()
     "print i.ReductionSingleton().transmission_calculator.interpolate"
     ).trimmed() == "True");
 
+  // Transmission settings
+  setTransmissionSettingsFromUserFile();
+
   //Direct efficiency correction
   m_uiForm.direct_file->setText(runReduceScriptFunction(
     "print i.ReductionSingleton().instrument.detector_file('rear')"));
@@ -907,7 +934,6 @@ bool SANSRunWindow::loadUserFile()
   m_uiForm.enableFrontFlood_ck->setChecked( ! m_uiForm.floodFrontFile->isEmpty() );
   m_uiForm.floodFrontFile->setEnabled(m_uiForm.enableFrontFlood_ck->checkState()
                                      == Qt::Checked);
-  
 
   //Scale factor
   dbl_param = runReduceScriptFunction(
@@ -963,6 +989,7 @@ bool SANSRunWindow::loadUserFile()
   ////Detector bank: support REAR, FRONT, HAB, BOTH, MERGED, MERGE options
   QString detName = runReduceScriptFunction(
     "print i.ReductionSingleton().instrument.det_selection").trimmed();
+
   if (detName == "REAR" || detName == "MAIN"){
      m_uiForm.detbank_sel->setCurrentIndex(0);
   }else if (detName == "FRONT" || detName == "HAB"){
@@ -2292,6 +2319,9 @@ QString SANSRunWindow::readUserFileGUIChanges(const States type)
   exec_reduce += m_uiForm.trans_interp->isChecked() ? "True" : "False";
   exec_reduce += ")\n";
 
+  //Set the Transmision settings
+  writeTransmissionSettingsToPythonScript(exec_reduce);
+
   // set the user defined center (Geometry Tab)
   // this information is used just after loading the data in order to move to the center
   // Introduced for #5942
@@ -2450,6 +2480,9 @@ void SANSRunWindow::handleReduceButtonClick(const QString & typeStr)
 
     py_code += "combineDet=";
     py_code += combineDetOption;
+    py_code += ",";
+    py_code += " save_as_zero_error_free=";
+    py_code += m_uiForm.zeroErrorCheckBox->isChecked() ? "True" : "False";
     py_code += ")";
   }
 
@@ -2498,6 +2531,7 @@ void SANSRunWindow::handleReduceButtonClick(const QString & typeStr)
   py_code += "\ni.ReductionSingleton().user_settings.execute(i.ReductionSingleton())";
 
   std::cout << "\n\n" << py_code.toStdString() << "\n\n";
+
   runReduceScriptFunction(py_code);
   }
   // Mark that a reload is necessary to rerun the same reduction
@@ -2794,6 +2828,17 @@ void SANSRunWindow::handleDefSaveClick()
     QMessageBox::warning(this, "Filename required", "A filename must be entered into the text box above to save this file");
   }
 
+  // If we save with a zero-error-free correction we need to swap the 
+  QString workspaceNameBuffer = m_outputWS;
+  QString clonedWorkspaceName = m_outputWS + "_cloned_temp";
+  if (m_uiForm.zeroErrorCheckBox->isChecked()) {
+    createZeroErrorFreeClone(m_outputWS, clonedWorkspaceName);
+    if (AnalysisDataService::Instance().doesExist(clonedWorkspaceName.toStdString())) {
+      m_outputWS = clonedWorkspaceName;
+    }
+  }
+
+
   const QStringList algs(getSaveAlgs());
   QString saveCommand;
   for(QStringList::const_iterator alg = algs.begin(); alg != algs.end(); ++alg)
@@ -2841,6 +2886,16 @@ void SANSRunWindow::handleDefSaveClick()
 
   saveCommand += "print 'success'\n";
   QString result = runPythonCode(saveCommand).trimmed();
+
+  // Revert changes and delete the zero-free workspace
+  if (this->m_uiForm.zeroErrorCheckBox->isChecked()) {
+    if (AnalysisDataService::Instance().doesExist(clonedWorkspaceName.toStdString())) {
+      deleteZeroErrorFreeClone(clonedWorkspaceName);
+    }
+  }
+  m_outputWS = workspaceNameBuffer;
+
+
   if ( result != "success" )
   {
     QMessageBox::critical(this, "Error saving workspace", "Problem encountered saving workspace, does it still exist. There may be more information in the results console?");
@@ -2971,10 +3026,15 @@ void SANSRunWindow::handleInstrumentChange()
   fillDetectNames(m_uiForm.detbank_sel);
   QString detect = runReduceScriptFunction(
     "print i.ReductionSingleton().instrument.cur_detector().name()");
-  int ind = m_uiForm.detbank_sel->findText(detect);  
-  if( ind != -1 )
-  {
-    m_uiForm.detbank_sel->setCurrentIndex(ind);
+  QString detectorSelection = runReduceScriptFunction(
+    "print i.ReductionSingleton().instrument.det_selection").trimmed();
+  int ind = m_uiForm.detbank_sel->findText(detect);
+  // We set the detector selection only if nothing is set yet.
+  // Previously, we didn't handle merged and both at this point
+  if (detectorSelection == m_pythonEmptyKeyword || detectorSelection.isEmpty()) {
+    if( ind != -1 ) {
+      m_uiForm.detbank_sel->setCurrentIndex(ind);
+    }
   }
 
   m_uiForm.beam_rmin->setText("60");
@@ -3819,8 +3879,357 @@ void SANSRunWindow::setValidators()
   m_uiForm.gravity_extra_length_line_edit->setValidator(mustBeDouble);
 }
 
-} //namespace CustomInterfaces
+/**
+ * Create a zero-error free workspace clone of a reduced workspace, ie one which has been through either
+ * Q1D or Qxy
+ * @param originalWorkspaceName :: The name of the original workspace which might contain errors with 0 value.
+ * @param clonedWorkspaceName :: The name of cloned workspace which should have its zero erros removed.
+ * @returns The name of the cloned workspace
+ */
+void SANSRunWindow::createZeroErrorFreeClone(QString& originalWorkspaceName, QString& clonedWorkspaceName) {
+  if (workspaceExists(originalWorkspaceName) && isValidWsForRemovingZeroErrors(originalWorkspaceName)) {
+    // Run the python script which creates the cloned workspace
+    QString pythonCode("print i.CreateZeroErrorFreeClonedWorkspace(input_workspace_name='");
+    pythonCode += originalWorkspaceName + "',";
+    pythonCode += " output_workspace_name='" + clonedWorkspaceName + "')\n";
+    pythonCode += "print '" + m_pythonSuccessKeyword + "'\n";
+    QString result(runPythonCode(pythonCode, false));
+    result = result.simplified();
+    if (result != m_pythonSuccessKeyword) {
+      result.replace(m_pythonSuccessKeyword, "");
+      g_log.warning("Error creating a zerror error free cloned workspace. Will save original workspace. More info: " + result.toStdString());
+    }
+  }
+}
 
-} //namespace MantidQt
+/**
+ * Destroy a zero-error free workspace clone.
+ * @param clonedWorkspaceName :: The name of cloned workspace which should have its zero erros removed.
+ */
+void SANSRunWindow::deleteZeroErrorFreeClone(QString& clonedWorkspaceName) {
+  if (workspaceExists(clonedWorkspaceName)) {
+    // Run the python script which destroys the cloned workspace
+    QString pythonCode("print i.DeleteZeroErrorFreeClonedWorkspace(input_workspace_name='");
+    pythonCode += clonedWorkspaceName + "')\n";
+    pythonCode += "print '" + m_pythonSuccessKeyword + "'\n";
+    QString result(runPythonCode(pythonCode, false));
+    result = result.simplified();
+    if (result != m_pythonSuccessKeyword) {
+      result.replace(m_pythonSuccessKeyword, "");
+      g_log.warning("Error deleting a zerror error free cloned workspace. More info: " + result.toStdString());
+    }
+  }
+}
 
+/**
+ * Check if the workspace can have a zero error correction performed on it
+ * @param wsName :: The name of the workspace.
+ */
+bool SANSRunWindow::isValidWsForRemovingZeroErrors(QString& wsName) {
+    QString pythonCode("\nprint i.IsValidWsForRemovingZeroErrors(input_workspace_name='");
+    pythonCode += wsName + "')";
+    pythonCode += "\nprint '" + m_pythonSuccessKeyword + "'";
+    QString result(runPythonCode(pythonCode, false));
+    result = result.simplified();
+    bool isValid = true;
+    if (result != m_pythonSuccessKeyword) {
+      result.replace(m_pythonSuccessKeyword, "");
+      g_log.warning("Not a valid workspace for zero error replacement. Will save original workspace. More info: " + result.toStdString());
+      isValid = false;
+    }
+    return isValid;
+}
 
+/**
+ * Set the M3M4 check box and line edit field logic
+ * @param setting :: the checked item
+ * @param isNowChecked :: What is the current check-state of the setting?
+ */
+void SANSRunWindow::setM3M4Logic(TransSettings setting, bool isNowChecked) {
+  switch (setting) {
+    case TransSettings::M3:
+      this->m_uiForm.trans_M4_check_box->setChecked(false);
+      break;
+    case TransSettings::M4:
+      this->m_uiForm.trans_M3_check_box->setChecked(false);
+      break;
+    default:
+      return;
+  }
+
+  // Disable all ROI, Radius and Mask related options
+  setRadiusAndMaskLogic(false);
+  setROIAndMaskLogic(false);
+
+  // Uncheck the both Radius and ROI
+  this->m_uiForm.trans_radius_check_box->setChecked(false);
+  this->m_uiForm.trans_roi_files_checkbox->setChecked(false);
+
+  // Enable the M3M4 line edit field
+  this->m_uiForm.trans_M3M4_line_edit->setEnabled(isNowChecked);
+}
+
+
+/**
+ * Set beam stop logic for Radius, ROI and Mask
+ * @param setting :: the checked item
+ * @param isNowChecked :: What is the current check-state of the setting?
+ */
+void SANSRunWindow::setBeamStopLogic(TransSettings setting, bool isNowChecked) {
+  if (setting == TransSettings::RADIUS) {
+    setRadiusAndMaskLogic(isNowChecked);
+    // If we are turning off the radius checkbox and have then ROI checkbox
+    // enabled, then we don' want to turn off the mask
+    if (this->m_uiForm.trans_roi_files_checkbox->isChecked() && !isNowChecked) {
+      this->m_uiForm.trans_masking_line_edit->setEnabled(true);
+    }
+  }
+  else if (setting == TransSettings::ROI) {
+    setROIAndMaskLogic(isNowChecked);
+    // If we are turning off the radius checkbox and have then ROI checkbox
+    // enabled, then we don' want to turn off the mask
+    if (this->m_uiForm.trans_radius_check_box->isChecked() && !isNowChecked) {
+      this->m_uiForm.trans_masking_line_edit->setEnabled(true);
+    }
+  } else {
+    return;
+  }
+
+  // Disable the M3M4 line edit field and uncheck the M3 and M4 box
+  if (isNowChecked) {
+    this->m_uiForm.trans_M3M4_line_edit->setEnabled(false);
+    this->m_uiForm.trans_M3_check_box->setChecked(false);
+    this->m_uiForm.trans_M4_check_box->setChecked(false);
+  }
+}
+
+/**
+ * Reads the transmission settings from the user file and sets it in the GUI
+ */
+void SANSRunWindow::setTransmissionSettingsFromUserFile() {
+  // Reset all trans-related fields
+  resetAllTransFields();
+
+  // Read the Radius settings
+  QString transmissionRadiusRequest("\nprint i.GetTransmissionRadiusInMM()");
+  QString resultTransmissionRadius(runPythonCode(transmissionRadiusRequest, false));
+  resultTransmissionRadius = resultTransmissionRadius.simplified();
+  if (resultTransmissionRadius != m_pythonEmptyKeyword) {
+      this->m_uiForm.trans_radius_line_edit->setText(resultTransmissionRadius);
+      this->m_uiForm.trans_radius_check_box->setChecked(true);
+      setBeamStopLogic(TransSettings::RADIUS, true);
+  }
+
+  // Read the ROI settings
+  QString transmissionROIRequest("\nprint i.GetTransmissionROI()");
+  QString resultTransmissionROI(runPythonCode(transmissionROIRequest, false));
+  resultTransmissionROI = resultTransmissionROI.simplified();
+  if (resultTransmissionROI != m_pythonEmptyKeyword) {
+      resultTransmissionROI = runPythonCode("\nprint i.ConvertFromPythonStringList(to_convert=" + resultTransmissionROI+ ")", false);
+      this->m_uiForm.trans_roi_files_line_edit->setText(resultTransmissionROI);
+      this->m_uiForm.trans_roi_files_checkbox->setChecked(true);
+      setBeamStopLogic(TransSettings::ROI, true);
+  }
+
+
+  // Read the MASK settings
+  QString transmissionMaskRequest("\nprint i.GetTransmissionMask()");
+  QString resultTransmissionMask(runPythonCode(transmissionMaskRequest, false));
+  resultTransmissionMask = resultTransmissionMask.simplified();
+  if (resultTransmissionMask != m_pythonEmptyKeyword) {
+    resultTransmissionMask = runPythonCode("\nprint i.ConvertFromPythonStringList(to_convert=" + resultTransmissionMask+ ")", false);
+    this->m_uiForm.trans_masking_line_edit->setText(resultTransmissionMask);
+  }
+
+  // Read the Transmission Monitor Spectrum Shift
+  QString transmissionMonitorSpectrumShiftRequest("\nprint i.GetTransmissionMonitorSpectrumShift()");
+  QString resultTransmissionMonitorSpectrumShift(runPythonCode(transmissionMonitorSpectrumShiftRequest, false));
+  resultTransmissionMonitorSpectrumShift = resultTransmissionMonitorSpectrumShift.simplified();
+  if (resultTransmissionMonitorSpectrumShift != m_pythonEmptyKeyword) {
+    this->m_uiForm.trans_M3M4_line_edit->setText(resultTransmissionMonitorSpectrumShift);
+  }
+
+  // Read Transmission Monitor Spectrum, we expect either 3 or 4. If this is selected, then this takes precedence over
+  // the radius, roi and mask settings
+  QString transmissionMonitorSpectrumRequest("\nprint i.GetTransmissionMonitorSpectrum()");
+  QString resultTransmissionMonitorSpectrum(runPythonCode(transmissionMonitorSpectrumRequest, false));
+  resultTransmissionMonitorSpectrum = resultTransmissionMonitorSpectrum.simplified();
+  if (resultTransmissionMonitorSpectrum != m_pythonEmptyKeyword) {
+    if (resultTransmissionMonitorSpectrum == "3") {
+      this->m_uiForm.trans_M3_check_box->setChecked(true);
+      setM3M4Logic(TransSettings::M3, true);
+    } else if (resultTransmissionMonitorSpectrum == "4") {
+      this->m_uiForm.trans_M4_check_box->setChecked(true);
+      setM3M4Logic(TransSettings::M4, true);
+    } else {
+      this->m_uiForm.trans_M3_check_box->setChecked(false);
+      this->m_uiForm.trans_M4_check_box->setChecked(false);
+      setM3M4Logic(TransSettings::M3,false);
+      setM3M4Logic(TransSettings::M4, false);
+      g_log.notice("No transmission monitor, transmission radius nor trasmission ROI was set. The reducer will use the default value.");
+    }
+  }
+}
+
+/**
+ * Initialize the transmission settings. We are setting up checkboxes
+ * and want to make use of the clicked signal in order to distinguish
+ * between user-induced and programmatic changes to the checkbox.
+ */
+void SANSRunWindow::initTransmissionSettings() {
+  QObject::connect(m_uiForm.trans_M3_check_box, SIGNAL(clicked()),
+                   this, SLOT(onTransmissionM3CheckboxChanged()));
+  QObject::connect(m_uiForm.trans_M4_check_box, SIGNAL(clicked()),
+                   this, SLOT(onTransmissionM4CheckboxChanged()));
+  QObject::connect(m_uiForm.trans_radius_check_box, SIGNAL(clicked()),
+                   this, SLOT(onTransmissionRadiusCheckboxChanged()));
+  QObject::connect(m_uiForm.trans_roi_files_checkbox, SIGNAL(clicked()),
+                   this, SLOT(onTransmissionROIFilesCheckboxChanged()));
+
+  // Set the Tooltips
+  const QString m3CB = "Selects the monitor spectrum 3\n"
+                       "for the transmission calculation.";
+  const QString m4CB = "Selects the monitor spectrum 4\n"
+                       "for the transmission calculation.";
+  const QString shift = "Sets the shift of the selected monitor in mm.";
+  const QString radiusCB = "Selects a radius when using the beam stop\n"
+                           "for the transmission calculation.";
+  const QString radius = "Sets a radius in mm when using the beam stop\n"
+                         "for the transmission calculation.";
+  const QString roiCB = "Selects a comma-separated list of ROI files\n"
+                        "when using the beam stop for the\n"
+                        "transmission calculation.";
+  const QString roi = "Sets a comma-separated list of ROI files\n"
+                      "when using the beam stop for the\n"
+                      "transmission calculation.";
+  const QString mask = "Sets a comma-separated list of Mask files\n"
+                       "when using the beam stop for the\n"
+                       "transmission calculation.";
+
+  m_uiForm.trans_M3_check_box->setToolTip(m3CB);
+  m_uiForm.trans_M4_check_box->setToolTip(m4CB);
+  m_uiForm.trans_M3M4_line_edit->setToolTip(shift);
+  m_uiForm.trans_radius_check_box->setToolTip(radiusCB);
+  m_uiForm.trans_radius_line_edit->setToolTip(radius);
+  m_uiForm.trans_roi_files_checkbox->setToolTip(roiCB);
+  m_uiForm.trans_roi_files_line_edit->setToolTip(roi);
+  m_uiForm.trans_masking_line_edit->setToolTip(mask);
+}
+
+/**
+ * React to a change of the M3 transmission monitor spectrum checkbox
+ */
+void SANSRunWindow::onTransmissionM3CheckboxChanged() {
+  setM3M4Logic(TransSettings::M3, this->m_uiForm.trans_M3_check_box->isChecked());
+}
+
+/**
+ * React to a change of the M3 transmission monitor spectrum checkbox
+ */
+void SANSRunWindow::onTransmissionM4CheckboxChanged() {
+  setM3M4Logic(TransSettings::M4, this->m_uiForm.trans_M4_check_box->isChecked());
+}
+
+/**
+ * React to the change of the Radius checkbox
+ */
+void SANSRunWindow::onTransmissionRadiusCheckboxChanged() {
+  setBeamStopLogic(TransSettings::RADIUS, this->m_uiForm.trans_radius_check_box->isChecked());
+}
+
+/**
+ * React to the change of the ROI file checkbox
+ */
+void SANSRunWindow::onTransmissionROIFilesCheckboxChanged() {
+  setBeamStopLogic(TransSettings::ROI, this->m_uiForm.trans_roi_files_checkbox->isChecked());
+}
+
+/**
+ * Set the radius and the mask logic
+ * @param isNowChecked :: The check state
+ */
+void SANSRunWindow::setRadiusAndMaskLogic(bool isNowChecked) {
+  this->m_uiForm.trans_masking_line_edit->setEnabled(isNowChecked);
+  this->m_uiForm.trans_radius_line_edit->setEnabled(isNowChecked);
+}
+
+/**
+ * Set the ROI and the mask logic
+ * @param isNowChecked :: The check state
+ */
+void SANSRunWindow::setROIAndMaskLogic(bool isNowChecked) {
+  this->m_uiForm.trans_masking_line_edit->setEnabled(isNowChecked);
+  this->m_uiForm.trans_roi_files_line_edit->setEnabled(isNowChecked);
+}
+
+/**
+ * Write the transmission settings to a python code string. If there
+ * is a transmission monitor set use it, otherwise check if there is
+ * a radius or a ROI being set.
+ * @param pythonCode :: The python code string
+ */
+void SANSRunWindow::writeTransmissionSettingsToPythonScript(QString& pythonCode) {
+  auto m3 = m_uiForm.trans_M3_check_box->isChecked();
+  auto m4 = m_uiForm.trans_M4_check_box->isChecked();
+
+  if (m3 || m4) {
+    // Handle M3/M4 settings and the TRANSPEC
+    auto spectrum = m3 ? 3 : 4;
+    pythonCode+="i.SetTransmissionMonitorSpectrum(trans_mon=" + QString::number(spectrum) + ")\n";
+
+    auto transSpec = m_uiForm.trans_M3M4_line_edit->text();
+    if (!transSpec.isEmpty()) {
+      pythonCode+="i.SetTransmissionMonitorSpectrumShift(trans_mon_shift=" + transSpec + ")\n";
+    }
+  } else {
+    // Handle Radius
+    auto radius = m_uiForm.trans_radius_line_edit->text();
+    if (m_uiForm.trans_radius_check_box->isChecked() && !radius.isEmpty()) {
+      pythonCode+="i.SetTransmissionRadiusInMM(trans_radius=" + radius + ")\n";
+    }
+    // Handle ROI
+    auto roi = m_uiForm.trans_roi_files_line_edit->text();
+    if (m_uiForm.trans_roi_files_checkbox->isChecked() && !roi.isEmpty()) {
+      roi = "'" + roi.simplified() + "'";
+      roi = runPythonCode("\nprint i.ConvertToPythonStringList(to_convert=" + roi + ")", false);
+      pythonCode+="i.SetTransmissionROI(trans_roi_files=" + roi + ")\n";
+    }
+    // Handle Mask
+    auto mask = m_uiForm.trans_masking_line_edit->text();
+    if (!mask.isEmpty()) {
+      mask = "'" + mask.simplified() + "'";
+      mask = runPythonCode("\nprint i.ConvertToPythonStringList(to_convert=" + mask + ")", false);
+      pythonCode+="i.SetTransmissionMask(trans_mask_files=" + mask + ")\n";
+    }
+
+    // Unset a potential monitor setting which had been set by the user file.
+     pythonCode+="i.UnsetTransmissionMonitorSpectrum()\n";
+  }
+}
+
+/**
+ * Set the enabled state for all trans-related fields
+ */
+void SANSRunWindow::resetAllTransFields() {
+  bool state = false;
+  m_uiForm.trans_radius_line_edit->setEnabled(state);
+  m_uiForm.trans_radius_line_edit->clear();
+
+  m_uiForm.trans_roi_files_line_edit->setEnabled(state);
+  m_uiForm.trans_roi_files_line_edit->clear();
+
+  m_uiForm.trans_masking_line_edit->setEnabled(state);
+  m_uiForm.trans_masking_line_edit->clear();
+
+  m_uiForm.trans_M3M4_line_edit->setEnabled(state);
+  m_uiForm.trans_M3M4_line_edit->clear();
+
+  m_uiForm.trans_M3_check_box->setChecked(state);
+  m_uiForm.trans_M4_check_box->setChecked(state);
+  m_uiForm.trans_roi_files_checkbox->setChecked(state);
+  m_uiForm.trans_radius_check_box->setChecked(state);
+}
+
+} //namespace CustomInterfaces
+
+} //namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/TomoReconstruction.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/TomoReconstruction.cpp
deleted file mode 100644
index 77ef25b865853ae98edd1c20edebb8227a27df4a..0000000000000000000000000000000000000000
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/TomoReconstruction.cpp
+++ /dev/null
@@ -1,1535 +0,0 @@
-#include "MantidAPI/TableRow.h"
-#include "MantidKernel/ConfigService.h"
-#include "MantidKernel/FacilityInfo.h"
-#include "MantidKernel/RemoteJobManager.h"
-#include "MantidQtAPI/AlgorithmInputHistory.h"
-#include "MantidQtAPI/AlgorithmRunner.h"
-#include "MantidQtAPI/HelpWindow.h"
-#include "MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.h"
-#include "MantidQtCustomInterfaces/TomoReconstruction/ToolSettings.h"
-
-#include <boost/lexical_cast.hpp>
-
-#include <QElapsedTimer>
-#include <QFileDialog>
-#include <QMessageBox>
-#include <QPainter>
-#include <QSettings>
-#include <QThread>
-#include <QTimer>
-
-using namespace Mantid::API;
-using namespace MantidQt::CustomInterfaces;
-
-namespace MantidQt {
-namespace CustomInterfaces {
-
-// Add this class to the list of specialised dialogs in this namespace
-DECLARE_SUBWINDOW(TomoReconstruction)
-
-namespace {
-Mantid::Kernel::Logger g_log("TomoReconstruction");
-}
-
-size_t TomoReconstruction::g_nameSeqNo = 0;
-
-// names by which we know compute resourcess
-const std::string TomoReconstruction::g_SCARFName = "SCARF@STFC";
-
-// names by which we know image/tomography reconstruction tools (3rd party)
-const std::string TomoReconstruction::g_TomoPyTool = "TomoPy";
-const std::string TomoReconstruction::g_AstraTool = "Astra";
-const std::string TomoReconstruction::g_CCPiTool = "CCPi CGLS";
-const std::string TomoReconstruction::g_SavuTool = "Savu";
-const std::string TomoReconstruction::g_CustomCmdTool = "Custom command";
-const std::string TomoReconstruction::g_defOutPath = "/work/imat/runs_output";
-
-/**
- * Almost default constructor, but note that this interface currently
- * relies on the SCARF cluster (only in ISIS facility) as the only
- * supported remote compute resource.
- *
- * @param parent Parent window (most likely the Mantid main app window).
- */
-TomoReconstruction::TomoReconstruction(QWidget *parent)
-    : UserSubWindow(parent), m_loggedIn(false), m_facility("ISIS"),
-      m_computeRes(), m_localCompName("Local"), m_SCARFtools(),
-      m_pathSCARFbase("/work/imat/recon/"),
-      m_pathFITS(m_pathSCARFbase + "data/fits"),
-      m_pathFlat(m_pathSCARFbase + "data/flat"),
-      m_pathDark(m_pathSCARFbase + "data/dark"), m_currentParamPath(),
-      m_settingsGroup("CustomInterfaces/TomoReconstruction"),
-      m_keepAliveTimer(NULL), m_keepAliveThread(NULL) {
-
-  m_computeRes.push_back(g_SCARFName);
-
-  m_SCARFtools.push_back(g_TomoPyTool);
-  m_SCARFtools.push_back(g_AstraTool);
-  m_SCARFtools.push_back(g_CCPiTool);
-  m_SCARFtools.push_back(g_SavuTool);
-  m_SCARFtools.push_back(g_CustomCmdTool);
-
-  m_availPlugins = Mantid::API::WorkspaceFactory::Instance().createTable();
-  m_availPlugins->addColumns("str", "name", 4);
-  m_currPlugins = Mantid::API::WorkspaceFactory::Instance().createTable();
-  m_currPlugins->addColumns("str", "name", 4);
-}
-
-TomoReconstruction::~TomoReconstruction() {
-  cleanup();
-  delete m_keepAliveTimer;
-  delete m_keepAliveThread;
-}
-
-/**
- * Close open sessions, kill timers/threads etc., save settings, etc. for a
- * graceful window close/destruct
- */
-void TomoReconstruction::cleanup() {
-  killKeepAliveMechanism();
-
-  saveSettings();
-
-  // be tidy and always log out if we're in.
-  if (m_loggedIn)
-    SCARFLogoutClicked();
-}
-
-void TomoReconstruction::doSetupSectionParameters() {
-  // TODO: should split the tabs out into their own files?
-
-  // geometry, etc. niceties
-  // on the left (just plugin names) 1/2, right: 2/3
-  QList<int> sizes;
-  sizes.push_back(100);
-  sizes.push_back(200);
-  m_uiSavu.splitterPlugins->setSizes(sizes);
-
-  // Setup Parameter editor tab
-  loadAvailablePlugins();
-  m_uiSavu.treeCurrentPlugins->setHeaderHidden(true);
-
-  // Lists/trees
-  connect(m_uiSavu.listAvailablePlugins, SIGNAL(itemSelectionChanged()), this,
-          SLOT(availablePluginSelected()));
-  connect(m_uiSavu.treeCurrentPlugins, SIGNAL(itemSelectionChanged()), this,
-          SLOT(currentPluginSelected()));
-  connect(m_uiSavu.treeCurrentPlugins, SIGNAL(itemExpanded(QTreeWidgetItem *)),
-          this, SLOT(expandedItem(QTreeWidgetItem *)));
-
-  // Buttons
-  connect(m_uiSavu.btnTransfer, SIGNAL(released()), this,
-          SLOT(transferClicked()));
-  connect(m_uiSavu.btnMoveUp, SIGNAL(released()), this, SLOT(moveUpClicked()));
-  connect(m_uiSavu.btnMoveDown, SIGNAL(released()), this,
-          SLOT(moveDownClicked()));
-  connect(m_uiSavu.btnRemove, SIGNAL(released()), this, SLOT(removeClicked()));
-
-  // Connect slots
-  // Menu Items
-  connect(m_ui.actionOpen, SIGNAL(triggered()), this, SLOT(menuOpenClicked()));
-  connect(m_ui.actionSave, SIGNAL(triggered()), this, SLOT(menuSaveClicked()));
-  connect(m_ui.actionSaveAs, SIGNAL(triggered()), this,
-          SLOT(menuSaveAsClicked()));
-}
-
-void TomoReconstruction::doSetupSectionSetup() {
-  // disable 'local' for now
-  m_ui.tabWidget_comp_resource->setTabEnabled(false, 1);
-  m_ui.tab_local->setEnabled(false);
-
-  m_ui.groupBox_run_config->setEnabled(false);
-
-  connect(m_ui.pushButton_SCARF_login, SIGNAL(released()), this,
-          SLOT(SCARFLoginClicked()));
-  connect(m_ui.pushButton_SCARF_logout, SIGNAL(released()), this,
-          SLOT(SCARFLogoutClicked()));
-
-  // 'browse' buttons
-  connect(m_ui.pushButton_fits_dir, SIGNAL(released()), this,
-          SLOT(fitsPathBrowseClicked()));
-  connect(m_ui.pushButton_flat_dir, SIGNAL(released()), this,
-          SLOT(flatPathBrowseClicked()));
-  connect(m_ui.pushButton_dark_dir, SIGNAL(released()), this,
-          SLOT(darkPathBrowseClicked()));
-}
-
-void TomoReconstruction::doSetupSectionRun() {
-  // geometry, etc. niceties
-  // on the left (just plugin names) 1/2, right: 2/3
-  QList<int> sizes;
-  sizes.push_back(420);
-  sizes.push_back(80);
-  m_ui.splitter_run_main_vertical->setSizes(sizes);
-
-  sizes[0] = 470;
-  sizes[1] = 30;
-  m_ui.splitter_image_resource->setSizes(sizes);
-
-  sizes[0] = 400;
-  sizes[1] = 100;
-  m_ui.splitter_run_jobs->setSizes(sizes);
-
-  m_ui.label_image_name->setText("none");
-
-  m_ui.pushButton_reconstruct->setEnabled(false);
-  m_ui.pushButton_run_tool_setup->setEnabled(false);
-  m_ui.pushButton_run_job_cancel->setEnabled(false);
-  m_ui.pushButton_run_job_visualize->setEnabled(false);
-
-  try {
-    setupComputeResource();
-    setupRunTool();
-  } catch (std::runtime_error &e) {
-    g_log.error() << "Failed to initialize remote compute resource(s). This "
-                     "custom interface will not work. Error description: "
-                  << e.what() << std::endl;
-  }
-
-  enableLoggedActions(m_loggedIn);
-
-  // Button signals
-  connect(m_ui.pushButton_browse_image, SIGNAL(released()), this,
-          SLOT(browseImageClicked()));
-  connect(m_ui.pushButton_reconstruct, SIGNAL(released()), this,
-          SLOT(reconstructClicked()));
-  connect(m_ui.pushButton_run_tool_setup, SIGNAL(released()), this,
-          SLOT(toolSetupClicked()));
-  connect(m_ui.pushButton_run_refresh, SIGNAL(released()), this,
-          SLOT(jobTableRefreshClicked()));
-  connect(m_ui.pushButton_run_job_visualize, SIGNAL(released()), this,
-          SLOT(runVisualizeClicked()));
-  connect(m_ui.pushButton_run_job_cancel, SIGNAL(released()), this,
-          SLOT(jobCancelClicked()));
-
-  // update tools for a resource
-  connect(m_ui.comboBox_run_compute_resource, SIGNAL(currentIndexChanged(int)),
-          this, SLOT(compResourceIndexChanged(int)));
-
-  connect(m_ui.comboBox_run_tool, SIGNAL(currentIndexChanged(int)), this,
-          SLOT(runToolIndexChanged(int)));
-
-  m_ui.pushButton_reconstruct->setEnabled(false);
-  m_ui.pushButton_run_tool_setup->setEnabled(true);
-  m_ui.pushButton_run_job_cancel->setEnabled(false);
-  m_ui.pushButton_run_job_visualize->setEnabled(false);
-}
-
-void TomoReconstruction::doSetupGeneralWidgets() {
-  connect(m_ui.pushButton_help, SIGNAL(released()), this, SLOT(openHelpWin()));
-  // note connection to the parent window, otherwise you'll be left
-  // with an empty frame window
-  connect(m_ui.pushButton_close, SIGNAL(released()), this->parent(),
-          SLOT(close()));
-}
-
-void TomoReconstruction::initLayout() {
-  m_ui.setupUi(this);
-
-  readSettings();
-
-  doSetupGeneralWidgets();
-  doSetupSectionSetup();
-  doSetupSectionRun();
-}
-
-/**
- * Enables/disables buttons that require the user to be logged into
- * the (remote) compute resource, for example: reconstruct (submit job),
- * cancel job, etc.
- */
-void TomoReconstruction::enableLoggedActions(bool enable) {
-  // TODO: this may not make sense anymore when/if the "Local" compute
-  // resource is used in the future (except when none of the tools
-  // supported are available/detected on "Local")
-  std::vector<QPushButton *> buttons;
-  buttons.push_back(m_ui.pushButton_run_refresh);
-  buttons.push_back(m_ui.pushButton_run_job_cancel);
-  // no visualization yet, need vsi etc. support
-  // buttons.push_back(m_ui.pushButton_run_job_visualize);
-  buttons.push_back(m_ui.pushButton_reconstruct);
-
-  for (size_t i = 0; i < buttons.size(); ++i) {
-    buttons[i]->setEnabled(enable);
-  }
-
-  if (!enable) {
-    m_ui.pushButton_reconstruct->setToolTip(
-        "Start reconstruction job. You need to be logged in to use this");
-  } else {
-    m_ui.pushButton_reconstruct->setToolTip("");
-  }
-}
-
-/**
- * Handle display of the current status of the remote/local compute resource
- * that is selected by the user.
- *
- * @param online whether to show good/working/online status
- */
-void TomoReconstruction::updateCompResourceStatus(bool online) {
-  const std::string res = getComputeResource();
-  if (res == g_SCARFName) {
-    if (online)
-      m_ui.pushButton_remote_status->setText("Online");
-    else
-      m_ui.pushButton_remote_status->setText("Offline");
-  } else if (res == m_localCompName) {
-    if (online)
-      m_ui.pushButton_remote_status->setText("Tools available");
-    else
-      m_ui.pushButton_remote_status->setText("No tools available!");
-  }
-}
-
-void TomoReconstruction::SCARFLoginClicked() {
-  try {
-    doLogin(getPassword());
-    m_loggedIn = true;
-  } catch (std::exception &e) {
-    throw(std::string("Problem when logging in. Error description: ") +
-          e.what());
-  }
-
-  try {
-    jobTableRefreshClicked();
-  } catch (std::exception &e) {
-    throw(std::string("The login operation went apparently fine but an issue "
-                      "was found while trying to retrieve the status of the "
-                      "jobs currently running on the remote resource. Error "
-                      "description: ") +
-          e.what());
-  }
-
-  enableLoggedActions(true);
-  updateCompResourceStatus(true);
-
-  m_ui.pushButton_SCARF_login->setEnabled(false);
-  m_ui.pushButton_SCARF_logout->setEnabled(true);
-
-  int kat = m_settings.useKeepAlive;
-  if (kat > 0) {
-    g_log.notice()
-        << "Reconstruction GUI: starting mechanism to periodically query the "
-           "status of jobs. This will update the status of running jobs every "
-        << kat << " seconds. You can also update it at any moment by clicking "
-                  "on the refresh button. This periodic update mechanism is "
-                  "also expected to keep sessions on remote compute resources "
-                  "alive after logging in." << std::endl;
-    startKeepAliveMechanism(kat);
-  }
-}
-
-void TomoReconstruction::SCARFLogoutClicked() {
-  try {
-    doLogout();
-  } catch (std::exception &e) {
-    throw(std::string("Problem when logging out. Error description: ") +
-          e.what());
-  }
-
-  enableLoggedActions(false);
-  m_loggedIn = false;
-
-  m_ui.pushButton_SCARF_login->setEnabled(true);
-  m_ui.pushButton_SCARF_logout->setEnabled(false);
-}
-
-/**
- * Load the settings for the tabs and widgets of the interface. This
- * relies on Qt settings functionality (QSettings class).
- *
- * This includes setting the default browsing directory to be the
- * default save directory.
- */
-void TomoReconstruction::readSettings() {
-  QSettings qs;
-  qs.beginGroup(QString::fromStdString(m_settingsGroup));
-
-  m_settings.SCARFBasePath =
-      qs.value("SCARF-base-path",
-               QString::fromStdString(m_settings.SCARFBasePath))
-          .toString()
-          .toStdString();
-  // WARNING: it's critical to keep 'false' as default value, otherwise
-  // scripted runs may have issues. The CI builds could get stuck when
-  // closing this interface.
-  m_settings.onCloseAskForConfirmation =
-      qs.value("on-close-ask-for-confirmation", false).toBool();
-
-  m_settings.useKeepAlive =
-      qs.value("use-keep-alive", m_settings.useKeepAlive).toInt();
-  restoreGeometry(qs.value("interface-win-geometry").toByteArray());
-  qs.endGroup();
-
-  m_ui.lineEdit_SCARF_path->setText(
-      QString::fromStdString(m_settings.SCARFBasePath));
-}
-
-/**
- * Save persistent settings. Qt based.
- */
-void TomoReconstruction::saveSettings() {
-  QSettings qs;
-  qs.beginGroup(QString::fromStdString(m_settingsGroup));
-  QString s = m_ui.lineEdit_SCARF_path->text();
-  qs.setValue("SCARF-base-path", s);
-  qs.setValue("on-close-ask-for-confirmation",
-              m_settings.onCloseAskForConfirmation);
-  qs.setValue("use-keep-alive", m_settings.useKeepAlive);
-  qs.setValue("interface-win-geometry", saveGeometry());
-  qs.endGroup();
-}
-
-/**
- * Load a savu tomo config file into the current plugin list, overwriting it.
- * Uses the algorithm LoadSavuTomoConfig
- */
-void TomoReconstruction::loadSavuTomoConfig(
-    std::string &filePath, Mantid::API::ITableWorkspace_sptr &currentPlugins) {
-  // try to load tomo reconstruction parametereization file
-  auto alg = Algorithm::fromString("LoadSavuTomoConfig");
-  alg->initialize();
-  alg->setPropertyValue("Filename", filePath);
-  alg->setPropertyValue("OutputWorkspace", createUniqueNameHidden());
-  try {
-    alg->execute();
-  } catch (std::runtime_error &e) {
-    throw std::runtime_error(
-        std::string("Error when trying to load tomographic reconstruction "
-                    "parameter file: ") +
-        e.what());
-  }
-
-  // new processing plugins list
-  try {
-    currentPlugins = alg->getProperty("OutputWorkspace");
-  } catch (std::exception &e) {
-    userError("Could not load config file", "Failed to load the file "
-                                            "with the following error: " +
-                                                std::string(e.what()));
-  }
-}
-
-// Build a unique (and hidden) name for the table ws
-std::string TomoReconstruction::createUniqueNameHidden() {
-  std::string name;
-  do {
-    // with __ prefix => hidden
-    name = "__TomoConfigTableWS_Seq_" +
-           boost::lexical_cast<std::string>(g_nameSeqNo++);
-  } while (AnalysisDataService::Instance().doesExist(name));
-
-  return name;
-}
-
-/**
- * Sets the compute resource that will be used to run reconstruction
- * jobs. It checks that the facility and compute resource are fine
- * (the one expected). Otherwise, shows an error and not much can be
- * done.
- */
-void TomoReconstruction::setupComputeResource() {
-  // set up the compute resource
-  QComboBox *cr = m_ui.comboBox_run_compute_resource;
-  if (cr) {
-    cr->clear();
-
-    const Mantid::Kernel::FacilityInfo &fac =
-        Mantid::Kernel::ConfigService::Instance().getFacility();
-    if (fac.name() != m_facility) {
-      g_log.error()
-          << "Facility not supported. This interface is designed "
-             "to be used at " +
-                 m_facility +
-                 ". You will probably not be able to use it in a useful way "
-                 "because your facility is " +
-                 fac.name() +
-                 ". If you have set that facility by mistake in your settings, "
-                 "please update it." << std::endl;
-      throw std::runtime_error(
-          "Failed to initialize because the facility is  " + fac.name() +
-          " (and not " + m_facility + ").");
-    }
-
-    if (m_computeRes.size() < 1) {
-      userWarning("No remote compute resource set!",
-                  "No remote compute "
-                  "resource has been set. Please note that without a "
-                  "remote compute resource the functionality of this "
-                  "interface might be limited.");
-    } else {
-      // assume the present reality: just SCARF
-      const std::string &required = m_computeRes.front();
-      std::vector<std::string> res = Mantid::Kernel::ConfigService::Instance()
-                                         .getFacility()
-                                         .computeResources();
-      if (res.end() == std::find(res.begin(), res.end(), required)) {
-        userError("Compute resource " + required + "not found ",
-                  "This interface requires the " + required +
-                      " compute resource. Even though your facility is " +
-                      fac.name() +
-                      ", the compute resource was not found. "
-                      "In principle the compute resource should have been "
-                      "defined in the facilities file for you facility. "
-                      "Please check your settings.");
-      }
-      cr->addItem(QString::fromStdString(required));
-    }
-
-    // put local but disable, as it's not yet sorted out how it will work
-    cr->addItem(QString::fromStdString(m_localCompName));
-    QModelIndex idx = cr->model()->index(1, 0);
-    QVariant disabled(0);
-    cr->model()->setData(idx, disabled, Qt::UserRole - 1);
-  }
-}
-
-void TomoReconstruction::setupRunTool() {
-  // set up the reconstruction tool
-  QComboBox *rt = m_ui.comboBox_run_tool;
-  if (rt) {
-    std::vector<std::string> tools;
-    // catch all the useable/relevant tools for the compute
-    // resources. For the time being this is rather simple (just
-    // SCARF) and will probably stay like this for a while.
-    const std::string res = getComputeResource();
-    if ("ISIS" == m_facility && g_SCARFName == res) {
-      tools = m_SCARFtools;
-    }
-    // others would/could come here
-
-    rt->clear();
-    for (size_t i = 0; i < tools.size(); i++) {
-      rt->addItem(QString::fromStdString(tools[i].c_str()));
-
-      // put CCPi but disable it, as it's not yet sorted out how it is
-      // configured / run
-      if (g_CCPiTool == tools[i]) {
-        QModelIndex idx = rt->model()->index(static_cast<int>(i), 0);
-        QVariant disabled(0);
-        rt->model()->setData(idx, disabled, Qt::UserRole - 1);
-      }
-
-      // We cannot run Savu at present
-      if (g_SavuTool == tools[i] || g_CCPiTool == tools[i]) {
-        m_ui.pushButton_reconstruct->setEnabled(false);
-      }
-    }
-  }
-}
-
-/// needs to at least update the 'tool' combo box
-void TomoReconstruction::compResourceIndexChanged(int i) {
-  UNUSED_ARG(i);
-  setupRunTool();
-}
-
-void TomoReconstruction::runToolIndexChanged(int /* i */) {
-  QComboBox *rt = m_ui.comboBox_run_tool;
-
-  if (!rt)
-    return;
-
-  std::string tool = rt->currentText().toStdString();
-  // disallow reconstruct on tools that don't run yet: Savu and CCPi
-  if (g_CCPiTool == tool) {
-    m_ui.pushButton_run_tool_setup->setEnabled(false);
-    m_ui.pushButton_reconstruct->setEnabled(false);
-  } else if (g_SavuTool == tool) {
-    // for now, show setup dialog, but cannot run
-    m_ui.pushButton_run_tool_setup->setEnabled(true);
-    m_ui.pushButton_reconstruct->setEnabled(false);
-  } else {
-    m_ui.pushButton_run_tool_setup->setEnabled(true);
-    m_ui.pushButton_reconstruct->setEnabled(m_loggedIn);
-  }
-}
-
-/**
- * Log into remote compute resource.
- *
- * @param pw Password/authentication credentials as a string
- */
-void TomoReconstruction::doLogin(const std::string &pw) {
-  if (m_loggedIn) {
-    userError("Better to logout before logging in again",
-              "You're currently logged in. Please, log out before logging in "
-              "again if that's what you meant.");
-  }
-
-  const std::string user = getUsername();
-  if (user.empty()) {
-    userError("Cannot log in",
-              "To log in you need to specify a username (and a password!).");
-    return;
-  }
-
-  // TODO (trac #11538): once the remote algorithms are rearranged
-  // into the 'RemoteJobManager' design, this will use...
-  // auto alg = Algorithm::fromString("Authenticate");
-  auto alg = Algorithm::fromString("SCARFTomoReconstruction");
-  alg->initialize();
-  alg->setPropertyValue("UserName", user);
-  alg->setPropertyValue("Action", "LogIn");
-  alg->setPropertyValue("Password", pw);
-  try {
-    alg->execute();
-  } catch (std::runtime_error &e) {
-    throw std::runtime_error(
-        "Error when trying to log into the remote compute resource " +
-        getComputeResource() + " with username " + user + ": " + e.what());
-  }
-}
-
-void TomoReconstruction::doLogout() {
-  // TODO: once the remote algorithms are rearranged into the
-  // 'RemoteJobManager' design, this will use...
-  // auto alg = Algorithm::fromString("???"); - need an alg for this
-  auto alg = Algorithm::fromString("SCARFTomoReconstruction");
-  alg->initialize();
-  const std::string user = getUsername();
-  alg->setPropertyValue("UserName", user);
-  alg->setPropertyValue("Action", "LogOut");
-  try {
-    alg->execute();
-  } catch (std::runtime_error &e) {
-    throw std::runtime_error(
-        "Error when trying to log out from the remote compute resource " +
-        getComputeResource() + " with username " + user + ": " + e.what());
-  }
-}
-
-/**
- * Ping the compute resource / server to check if it's alive and
- * responding.
- *
- * @return True if ping succeeded
- */
-bool TomoReconstruction::doPing() {
-  // TODO: once the remote algorithms are rearranged into the
-  // 'RemoteJobManager' design, this will use...
-  // auto alg = Algorithm::fromString("???");
-  auto alg = Algorithm::fromString("SCARFTomoReconstruction");
-  alg->initialize();
-  alg->setPropertyValue("UserName", getUsername());
-  alg->setPropertyValue("Action", "Ping");
-  try {
-    alg->execute();
-  } catch (std::runtime_error &e) {
-    throw std::runtime_error(
-        "Error when trying to ping the remote compute resource " +
-        getComputeResource() + ": " + e.what());
-  }
-  return true;
-}
-
-/**
- * Handle the job submission request relies on a submit algorithm.
- */
-void TomoReconstruction::doSubmitReconstructionJob() {
-  std::string run, opt;
-  try {
-    makeRunnableWithOptions(run, opt);
-  } catch (std::exception &e) {
-    g_log.warning() << "Could not prepare the requested reconstruction job "
-                       "submission. There was an error: " +
-                           std::string(e.what());
-  }
-
-  // TODO: once the remote algorithms are rearranged into the
-  // 'RemoteJobManager' design, this will use:
-  // auto transAlg = Algorithm::fromString("StartRemoteTransaction");
-  // auto submitAlg = Algorithm::fromString("SubmitRemoteJob");
-  // submitAlg->setPropertyValue("ComputeResource", res);
-  auto alg = Algorithm::fromString("SCARFTomoReconstruction");
-  alg->initialize();
-  alg->setPropertyValue("Action", "SubmitJob");
-  alg->setPropertyValue("UserName", getUsername());
-
-  alg->setProperty("RunnablePath", run);
-  alg->setProperty("JobOptions", opt);
-
-  try {
-    alg->execute();
-  } catch (std::runtime_error &e) {
-    throw std::runtime_error(
-        "Error when trying to cancel a reconstruction job: " +
-        std::string(e.what()));
-  }
-}
-
-/**
- * Build the components of the command line to run on the remote
- * compute resource.Produces a (normally full) path to a runnable, and
- * the options (quite like $0 and $* in scripts).
- *
- * @param run Path to a runnable application (script, python module, etc.)
- * @param opt Command line parameters to the application
- */
-void TomoReconstruction::makeRunnableWithOptions(std::string &run,
-                                                 std::string &opt) {
-  std::string comp =
-      m_ui.comboBox_run_compute_resource->currentText().toStdString();
-
-  checkDataPathsSet();
-
-  // For now we only know how to 'aproximately' run commands on SCARF
-  if (g_SCARFName == comp) {
-    const std::string tool =
-        m_ui.comboBox_run_tool->currentText().toStdString();
-
-    if (tool == g_TomoPyTool) {
-      checkWarningToolNotSetup(tool, m_toolsSettings.tomoPy);
-      // this should get something like:
-      // run = "/work/imat/z-tests-fedemp/scripts/tomopy/imat_recon_FBP.py";
-      // opt = "--input_dir " + base + currentPathFITS() + " " + "--dark " +
-      // base +
-      //      currentPathDark() + " " + "--white " + base + currentPathFlat();
-
-      // TODO this is very unreliable, it will go away better when the
-      // settings are properly stored as toool-settings objects
-      splitCmdLine(m_toolsSettings.tomoPy, run, opt);
-    } else if (tool == g_AstraTool) {
-      checkWarningToolNotSetup(tool, m_toolsSettings.astra);
-      // this should produce something like this:
-      // run = "/work/imat/scripts/astra/astra-3d-SIRT3D.py";
-      // opt = base + currentPathFITS();
-      splitCmdLine(m_toolsSettings.astra, run, opt);
-    } else if (tool == g_CustomCmdTool) {
-      checkWarningToolNotSetup(tool, m_toolsSettings.custom);
-      splitCmdLine(m_toolsSettings.custom, run, opt);
-    } else {
-      userWarning("Unable to use this tool",
-                  "I do not know how to submit jobs to use this tool: " + tool +
-                      ". It seems that this interface is "
-                      "misconfigured or there has been an unexpected "
-                      "failure.");
-    }
-  } else {
-    run = "error_dont_know_what_to_do";
-    opt = "no_options_known";
-
-    userWarning("Unrecognized remote compute resource",
-                "The remote compute resource that you are trying not used is "
-                "not known: " +
-                    comp + ". This seems to indicate that this interface is "
-                           "misconfigured or there has been an unexpected "
-                           "failure.");
-    throw std::runtime_error(
-        "Could not recognize the remote compute resource: " + comp);
-  }
-}
-
-void TomoReconstruction::doCancelJob(const std::string &id) {
-  // TODO: once the remote algorithms are rearranged into the
-  // 'RemoteJobManager' design, this will use:
-  // auto alg = Algorithm::fromString("EndRemoteTransaction");
-  auto alg = Algorithm::fromString("SCARFTomoReconstruction");
-  alg->initialize();
-  alg->setPropertyValue("UserName", getUsername());
-  alg->setPropertyValue("Action", "CancelJob");
-  alg->setPropertyValue("JobID", id);
-  try {
-    alg->execute();
-  } catch (std::runtime_error &e) {
-    throw std::runtime_error(
-        "Error when trying to cancel a reconstruction job: " +
-        std::string(e.what()));
-  }
-}
-
-void TomoReconstruction::toolSetupClicked() {
-  QComboBox *rt = m_ui.comboBox_run_tool;
-  if (!rt)
-    return;
-
-  const std::string tool = rt->currentText().toStdString();
-  if (g_CCPiTool != tool) {
-    showToolConfig(tool);
-  }
-}
-
-void TomoReconstruction::showToolConfig(const std::string &name) {
-  if (g_TomoPyTool == name) {
-    TomoToolConfigTomoPy tomopy;
-    m_uiTomoPy.setupUi(&tomopy);
-    int res = tomopy.exec();
-    if (QDialog::Accepted == res) {
-      // TODO: move this
-      int mi = m_uiTomoPy.comboBox_method->currentIndex();
-      QString run = m_uiTomoPy.lineEdit_runnable->text();
-      if (1 == mi) {
-        // hard-coded for now, this is a different script on SCARF that should
-        // be
-        // integrated with the FBP script
-        run = "/work/imat/runs-scripts/scripts/tomopy/imat_recon_SIRT.py";
-      }
-      double minAngle = m_uiTomoPy.doubleSpinBox_angle_min->value();
-      double maxAngle = m_uiTomoPy.doubleSpinBox_angle_max->value();
-      double cor = m_uiTomoPy.doubleSpinBox_center_rot->value();
-
-      ToolSettingsTomoPy settings(run.toStdString(), g_defOutPath,
-                                  currentPathDark(), currentPathFlat(),
-                                  currentPathFITS(), cor, minAngle, maxAngle);
-      m_toolsSettings.tomoPy = settings.toCommand();
-    }
-  } else if (g_AstraTool == name) {
-    TomoToolConfigAstra astra;
-    m_uiAstra.setupUi(&astra);
-    int res = astra.exec();
-    if (QDialog::Accepted == res) {
-      // TODO: move this
-      int mi = m_uiAstra.comboBox_method->currentIndex();
-      QString run = m_uiAstra.lineEdit_runnable->text();
-      if (1 == mi) {
-        // hard-coded for now, this is a different script on SCARF
-        run = "/work/imat/runs-scripts/scripts/astra/astra-3d-SIRT3D.py";
-      }
-      double cor = m_uiAstra.doubleSpinBox_center_rot->value();
-      double minAngle = m_uiAstra.doubleSpinBox_angle_min->value();
-      double maxAngle = m_uiAstra.doubleSpinBox_angle_max->value();
-
-      ToolSettingsAstraToolbox settings(
-          run.toStdString(), cor, minAngle, maxAngle, g_defOutPath,
-          currentPathDark(), currentPathFlat(), currentPathFITS());
-
-      m_toolsSettings.astra = settings.toCommand();
-    }
-  } else if (g_SavuTool == name) {
-    // TODO: savu not ready. This is a temporary kludge, it just shows
-    // the setup dialog so we can chat about it.
-    TomoToolConfigSavu savu;
-    m_uiSavu.setupUi(&savu);
-    doSetupSectionParameters();
-    savu.setWindowModality(Qt::ApplicationModal);
-    savu.show();
-    QEventLoop el;
-    connect(this, SIGNAL(destroyed()), &el, SLOT(quit()));
-    el.exec();
-  } else if (g_CustomCmdTool == name) {
-    TomoToolConfigCustom cmd;
-    m_uiCustom.setupUi(&cmd);
-    int res = cmd.exec();
-    if (QDialog::Accepted == res) {
-      // TODO: move this
-      QString run = m_uiCustom.lineEdit_runnable->text();
-      QString opts = m_uiCustom.textEdit_cl_opts->toPlainText();
-
-      ToolSettingsCustom settings(run.toStdString(), opts.toStdString());
-      m_toolsSettings.custom = settings.toCommand();
-    }
-  }
-  // TODO: 'CCPi CGLS' not ready
-}
-
-void TomoReconstruction::reconstructClicked() {
-  if (!m_loggedIn)
-    return;
-
-  const std::string &resource = getComputeResource();
-
-  if (m_localCompName != resource) {
-    doSubmitReconstructionJob();
-
-    jobTableRefreshClicked();
-  }
-}
-
-void TomoReconstruction::runVisualizeClicked() {
-  QTableWidget *tbl = m_ui.tableWidget_run_jobs;
-  const int idCol = 2;
-  QTableWidgetItem *hdr = tbl->horizontalHeaderItem(idCol);
-  if ("ID" != hdr->text())
-    throw std::runtime_error("Expected to get the Id of jobs from the "
-                             "second column of the table of jobs, but I "
-                             "found this at that column: " +
-                             hdr->text().toStdString());
-
-  QModelIndexList idSel = tbl->selectionModel()->selectedRows();
-  if (idSel.count() <= 0)
-    return;
-
-  const std::string id = tbl->item(idSel[0].row(), idCol)->text().toStdString();
-  if (idSel.count() > 1)
-    g_log.information() << " Visualizing only the first job: " << id
-                        << std::endl;
-}
-
-/// processes (cancels) all the jobs selected in the table
-void TomoReconstruction::jobCancelClicked() {
-  const std::string &resource = getComputeResource();
-
-  QTableWidget *tbl = m_ui.tableWidget_run_jobs;
-  const int idCol = 2;
-  QTableWidgetItem *hdr = tbl->horizontalHeaderItem(idCol);
-  if ("ID" != hdr->text())
-    throw std::runtime_error("Expected to get the Id of jobs from the "
-                             "second column of the table of jobs, but I "
-                             "found this at that column: " +
-                             hdr->text().toStdString());
-
-  QModelIndexList idSel = tbl->selectionModel()->selectedRows();
-  for (int i = 0; i < idSel.count(); ++i) {
-    std::string id = tbl->item(idSel[i].row(), idCol)->text().toStdString();
-    if (m_localCompName != resource) {
-      doCancelJob(id);
-    }
-  }
-}
-
-void TomoReconstruction::jobTableRefreshClicked() {
-  // get the info from the server into data members. This operation is subject
-  // to delays in the connection, etc.
-  try {
-    getJobStatusInfo();
-  } catch (std::runtime_error &e) {
-    g_log.warning() << "There was an issue while trying to retrieve job status "
-                       "information from the remote compute resource ("
-                    << getComputeResource()
-                    << "). Stopping periodic (automatic) status update to "
-                       "prevent more failures. You can start the automatic "
-                       "update mechanism again by logging in, as apparently "
-                       "there is some problem with the last session: "
-                    << e.what() << std::endl;
-  }
-
-  // update widgets from that info
-  updateJobsTable();
-}
-
-void TomoReconstruction::getJobStatusInfo() {
-  if (!m_loggedIn)
-    return;
-
-  std::vector<std::string> ids, names, status, cmds;
-  doQueryJobStatus(ids, names, status, cmds);
-
-  size_t jobMax = ids.size();
-  if (ids.size() != names.size() || ids.size() != status.size() ||
-      ids.size() != cmds.size()) {
-    // this should not really happen
-    jobMax = std::min(ids.size(), names.size());
-    jobMax = std::min(jobMax, status.size());
-    jobMax = std::min(jobMax, cmds.size());
-    userWarning("Problem retrieving job status information",
-                "The response from the compute resource did not seem "
-                "correct. The table of jobs may not be fully up to date.");
-  }
-
-  {
-    QMutexLocker lockit(&m_statusMutex);
-    m_jobsStatus.clear();
-    m_jobsStatusCmds.clear();
-    // TODO: udate when we update to remote algorithms v2
-    // As SCARF doesn't provide all the info at the moment, and as we're
-    // using the SCARFTomoReconstruction algorithm, the
-    // IRemoteJobManager::RemoteJobInfo struct is for now used only partially
-    // (cmds out). So this loop feels both incomplete and an unecessary second
-    // step that could be avoided.
-    for (size_t i = 0; i < ids.size(); ++i) {
-      IRemoteJobManager::RemoteJobInfo ji;
-      ji.id = ids[i];
-      ji.name = names[i];
-      ji.status = status[i];
-      m_jobsStatus.push_back(ji);
-      m_jobsStatusCmds.push_back(cmds[i]);
-    }
-  }
-}
-
-void TomoReconstruction::doQueryJobStatus(std::vector<std::string> &ids,
-                                          std::vector<std::string> &names,
-                                          std::vector<std::string> &status,
-                                          std::vector<std::string> &cmds) {
-  // TODO: once the remote algorithms are rearranged into the
-  // 'RemoteJobManager' design, this will use...
-  // auto alg = Algorithm::fromString("QueryAllRemoteJobs");
-  // and
-  // auto alg = Algorithm::fromString("QueryRemoteJob");
-
-  // output properties to get: RemoteJobsID, RemoteJobsNames,
-  //    RemoteJobsStatus, RemoteJobsCommands
-  auto alg = Algorithm::fromString("SCARFTomoReconstruction");
-  alg->initialize();
-  alg->setPropertyValue("UserName", getUsername());
-  alg->setPropertyValue("Action", "JobStatus");
-  try {
-    alg->execute();
-  } catch (std::runtime_error &e) {
-    throw std::runtime_error(
-        "Error when trying to query the status of jobs in " +
-        getComputeResource() + ": " + e.what());
-  }
-  ids = alg->getProperty("RemoteJobsID");
-  names = alg->getProperty("RemoteJobsNames");
-  status = alg->getProperty("RemoteJobsStatus");
-  cmds = alg->getProperty("RemoteJobsCommands");
-}
-
-/**
- * Update the job status and general info table/tree from the info
- * stored in this class' data members, which ideally should have
- * information from a recent query to the server.
- */
-void TomoReconstruction::updateJobsTable() {
-
-  QTableWidget *t = m_ui.tableWidget_run_jobs;
-  bool sort = t->isSortingEnabled();
-  t->setRowCount(static_cast<int>(m_jobsStatus.size()));
-
-  {
-    QMutexLocker lockit(&m_statusMutex);
-    for (size_t i = 0; i < m_jobsStatus.size(); ++i) {
-      int ii = static_cast<int>(i);
-      t->setItem(ii, 0,
-                 new QTableWidgetItem(QString::fromStdString(g_SCARFName)));
-      t->setItem(ii, 1, new QTableWidgetItem(
-                            QString::fromStdString(m_jobsStatus[i].name)));
-      t->setItem(ii, 2, new QTableWidgetItem(
-                            QString::fromStdString(m_jobsStatus[i].id)));
-      t->setItem(ii, 3, new QTableWidgetItem(
-                            QString::fromStdString(m_jobsStatus[i].status)));
-      t->setItem(ii, 4, new QTableWidgetItem(
-                            QString::fromStdString(m_jobsStatusCmds[i])));
-    }
-  }
-
-  t->setSortingEnabled(sort);
-}
-
-void TomoReconstruction::browseImageClicked() {
-  // get path
-  QString fitsStr = QString("Supported formats: FITS, TIFF and PNG "
-                            "(*.fits *.fit *.tiff *.tif *.png);;"
-                            "FITS, Flexible Image Transport System images "
-                            "(*.fits *.fit);;"
-                            "TIFF, Tagged Image File Format "
-                            "(*.tif *.tiff);;"
-                            "PNG, Portable Network Graphics "
-                            "(*.png);;"
-                            "Other extensions/all files (*.*)");
-  // Note that this could be done using UserSubWindow::openFileDialog(),
-  // but that method doesn't give much control over the text used for the
-  // allowed extensions.
-  QString prevPath =
-      MantidQt::API::AlgorithmInputHistory::Instance().getPreviousDirectory();
-  QString path(QFileDialog::getOpenFileName(this, tr("Open image file"),
-                                            prevPath, fitsStr));
-  if (!path.isEmpty()) {
-    MantidQt::API::AlgorithmInputHistory::Instance().setPreviousDirectory(
-        QFileInfo(path).absoluteDir().path());
-  } else {
-    return;
-  }
-
-  QString suf = QFileInfo(path).suffix();
-  bool loaded = false;
-  // This is not so great, as we check extensions and not really file
-  // content/headers, as it should be.
-  if ((0 == QString::compare(suf, "fit", Qt::CaseInsensitive)) ||
-      (0 == QString::compare(suf, "fits", Qt::CaseInsensitive))) {
-    WorkspaceGroup_sptr wsg = loadFITSImage(path.toStdString());
-    if (!wsg)
-      return;
-    MatrixWorkspace_sptr ws =
-        boost::dynamic_pointer_cast<MatrixWorkspace>(wsg->getItem(0));
-    if (!ws)
-      return;
-    drawImage(ws);
-    loaded = true;
-    // clean-up container group workspace
-    if (wsg)
-      AnalysisDataService::Instance().remove(wsg->getName());
-  } else if ((0 == QString::compare(suf, "tif", Qt::CaseInsensitive)) ||
-             (0 == QString::compare(suf, "tiff", Qt::CaseInsensitive)) ||
-             (0 == QString::compare(suf, "png", Qt::CaseInsensitive))) {
-    QImage rawImg(path);
-    QPainter painter;
-    QPixmap pix(rawImg.width(), rawImg.height());
-    painter.begin(&pix);
-    painter.drawImage(0, 0, rawImg);
-    painter.end();
-    m_ui.label_image->setPixmap(pix);
-    m_ui.label_image->show();
-    loaded = true;
-  } else {
-    userWarning("Failed to load image - format issue",
-                "Could not load image because the extension of the file " +
-                    path.toStdString() + ", suffix: " + suf.toStdString() +
-                    " does not correspond to FITS or TIFF files.");
-  }
-
-  if (loaded)
-    m_ui.label_image_name->setText(path);
-}
-
-/**
- * Helper to get a FITS image into a workspace. Uses the LoadFITS
- * algorithm. If the algorithm throws, this method shows user (pop-up)
- * warning/error messages but does not throw.
- *
- * This method returns a workspace group which most probably you want
- * to delete after using the image to draw it.
- *
- * @param path Path to a FITS image
- *
- * @return Group Workspace containing a Matrix workspace with a FITS
- * image, one pixel per histogram, as loaded by LoadFITS (can be empty
- * if the load goes wrong and the workspace is not available from the
- * ADS).
- */
-WorkspaceGroup_sptr TomoReconstruction::loadFITSImage(const std::string &path) {
-  // get fits file into workspace and retrieve it from the ADS
-  auto alg = Algorithm::fromString("LoadFITS");
-  alg->initialize();
-  alg->setPropertyValue("Filename", path);
-  std::string wsName = "__fits_ws_imat_tomography_gui";
-  alg->setProperty("OutputWorkspace", wsName);
-  try {
-    alg->execute();
-  } catch (std::exception &e) {
-    userWarning("Failed to load image", "Could not load this file as a "
-                                        "FITS image: " +
-                                            std::string(e.what()));
-    return WorkspaceGroup_sptr();
-  }
-  if (!alg->isExecuted()) {
-    userWarning("Failed to load image correctly",
-                "Note that even though "
-                "the image file has been loaded it seems to contain "
-                "errors.");
-  }
-  WorkspaceGroup_sptr wsg;
-  MatrixWorkspace_sptr ws;
-  try {
-    wsg = AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(wsName);
-    ws = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
-        wsg->getNames()[0]);
-  } catch (std::exception &e) {
-    userWarning("Could not load image contents",
-                "An unrecoverable error "
-                "happened when trying to load the image contents. Cannot "
-                "display it. Error details: " +
-                    std::string(e.what()));
-    return WorkspaceGroup_sptr();
-  }
-
-  // draw image from workspace
-  if (wsg && ws &&
-      Mantid::API::AnalysisDataService::Instance().doesExist(ws->name())) {
-    return wsg;
-  } else {
-    return WorkspaceGroup_sptr();
-  }
-}
-
-/**
- * Check that the selected compute resource is listed as supported and
- * usable for the remote manager (if it is not local). Local jobs are
- * not supported for the time being, so this currently raises an
- * exception if the local resource has been selected.
- *
- * This should never throw an exception if the
- * construction/initialization and setup steps went fine and the rest
- * of the code is kept consistent with those steps.
- *
- * @param res Name of the compute resource selected in the interface
- *
- * @return Name of a compute resource (which can be the 'Local' one)
- *
- * @throws std::runtime_error on inconsistent selection of compute
- * resource
- */
-std::string TomoReconstruction::validateCompResource(const std::string &res) {
-  if (res == m_localCompName) {
-    // Nothing yet
-    throw std::runtime_error("There is no support for the local compute "
-                             "resource. You should not have got here.");
-  }
-
-  if (m_computeRes.size() <= 0) {
-    throw std::runtime_error("No compute resource registered in the list "
-                             "of supported resources. This graphical interface "
-                             "is in an inconsistent status.");
-  }
-
-  const std::string supported = m_computeRes.front();
-  if (supported.empty()) {
-    throw std::runtime_error("The first compute resource registered in this "
-                             "interface has an empty name.");
-  }
-
-  if (res != supported) {
-    throw std::runtime_error("The compute resource selected (" + res +
-                             ") is not the one in principle supported by this "
-                             "interface: " +
-                             supported);
-  }
-
-  return supported;
-}
-
-/**
- * Gets the compute resource that is currently selected by the user.
- * This calls a validation method that can throw in case of
- * inconsistencies.
- *
- * @return Name of the compute resource as a string.
- */
-std::string TomoReconstruction::getComputeResource() {
-  QComboBox *cb = m_ui.comboBox_run_compute_resource;
-  QString rs = cb->currentText();
-  return validateCompResource(rs.toStdString());
-}
-
-/**
- * Retrieve the username being used for the selected compute resource.
- *
- * @return Username ready to be used in remote queries
- */
-std::string TomoReconstruction::getUsername() {
-  if (g_SCARFName ==
-      m_ui.comboBox_run_compute_resource->currentText().toStdString())
-    return m_ui.lineEdit_SCARF_username->text().toStdString();
-  else
-    return "invalid";
-}
-
-std::string TomoReconstruction::currentPathSCARF() {
-  return m_ui.lineEdit_SCARF_path->text().toStdString();
-}
-
-std::string TomoReconstruction::currentPathFITS() {
-  return m_ui.lineEdit_path_FITS->text().toStdString();
-}
-
-std::string TomoReconstruction::currentPathFlat() {
-  return m_ui.lineEdit_path_flat->text().toStdString();
-}
-
-std::string TomoReconstruction::currentPathDark() {
-  return m_ui.lineEdit_path_dark->text().toStdString();
-}
-
-void TomoReconstruction::fitsPathBrowseClicked() {
-  processPathBrowseClick(m_ui.lineEdit_path_FITS, m_pathFITS);
-}
-
-void TomoReconstruction::flatPathBrowseClicked() {
-  processPathBrowseClick(m_ui.lineEdit_path_flat, m_pathFlat);
-}
-
-void TomoReconstruction::darkPathBrowseClicked() {
-  processPathBrowseClick(m_ui.lineEdit_path_dark, m_pathDark);
-}
-
-/**
- * Get path from user and update a line edit and a variable.
- *
- * @param le a line edit where the path is shown.
- * @param data variable where the path is stored (in addition to the line
- * edit object).
- */
-void TomoReconstruction::processPathBrowseClick(QLineEdit *le,
-                                                std::string &data) {
-  QString algPrev =
-      MantidQt::API::AlgorithmInputHistory::Instance().getPreviousDirectory();
-  QString prev;
-  if (le->text().isEmpty()) {
-    prev = algPrev;
-  } else {
-    prev = le->text();
-  }
-
-  QString path(QFileDialog::getExistingDirectory(
-      this, tr("Open directory/folder"), prev));
-
-  if (!path.isEmpty()) {
-    std::string pp = path.toStdString();
-    // to UNIX, assuming SCARF or similar
-    boost::replace_all(pp, "\\", "/");
-    if (pp.length() >= 2 && ':' == pp[1]) {
-      if (2 == pp.length())
-        pp = ""; // don't accept '/'
-      else
-        pp = pp.substr(2);
-    }
-
-    le->setText(QString::fromStdString(pp));
-    data = pp;
-  }
-}
-
-/**
- * Retrieve the username being used for the selected compute resource.
- *
- * @return Username ready to be used in remote queries
- */
-std::string TomoReconstruction::getPassword() {
-  if (g_SCARFName ==
-      m_ui.comboBox_run_compute_resource->currentText().toStdString())
-    return m_ui.lineEdit_SCARF_password->text().toStdString();
-  else
-    return "none";
-}
-
-/**
- * draw an image on screen using Qt's QPixmap and QImage. It assumes
- * that the workspace contains an image in the form in which LoadFITS
- * loads FITS images. Checks dimensions and workspace structure and
- * shows user warning/error messages appropriately. But in principle
- * it should not raise any exceptions under reasonable circumstances.
- *
- * @param ws Workspace where a FITS image has been loaded with LoadFITS
- */
-void TomoReconstruction::drawImage(const MatrixWorkspace_sptr &ws) {
-  // From logs we expect a name "run_title", width "Axis1" and height "Axis2"
-  const size_t MAXDIM = 2048 * 16;
-  size_t width;
-  try {
-    width = boost::lexical_cast<size_t>(ws->run().getLogData("Axis1")->value());
-    // TODO: add a settings option for this (like max mem allocation for images)?
-    if (width >= MAXDIM)
-      width = MAXDIM;
-  } catch (std::exception &e) {
-    userError("Cannot load image", "There was a problem while trying to "
-                                   "find the width of the image: " +
-                                       std::string(e.what()));
-    return;
-  }
-  size_t height;
-  try {
-    height =
-        boost::lexical_cast<size_t>(ws->run().getLogData("Axis2")->value());
-    if (height >= MAXDIM)
-      height = MAXDIM;
-  } catch (std::exception &e) {
-    userError("Cannot load image", "There was a problem while trying to "
-                                   "find the height of the image: " +
-                                       std::string(e.what()));
-    return;
-  }
-  try {
-    std::string name = ws->run().getLogData("run_title")->value();
-    g_log.information() << " Visualizing image: " << name << std::endl;
-  } catch (std::exception &e) {
-    userWarning("Cannot load image information",
-                "There was a problem while "
-                " trying to find the name of the image: " +
-                    std::string(e.what()));
-  }
-
-  // images are loaded as 1 histogram == 1 pixel (1 bin per histogram):
-  if ((width * height) != ws->getNumberHistograms()) {
-    userError("Image dimensions do not match", "Could not load the expected "
-                                               "number of pixels.");
-    return;
-  }
-  // find min and max to scale pixel values
-  double min = std::numeric_limits<double>::max(),
-         max = std::numeric_limits<double>::min();
-  for (size_t i = 0; i < ws->getNumberHistograms(); ++i) {
-    const double &v = ws->readY(i)[0];
-    if (v < min)
-      min = v;
-    if (v > max)
-      max = v;
-  }
-  if (min >= max) {
-    userWarning("Empty image!",
-                "The image could be loaded but it contains "
-                "effectively no information, all pixels have the same value.");
-    // black picture
-    QPixmap pix(static_cast<int>(width), static_cast<int>(height));
-    pix.fill(QColor(0, 0, 0));
-    m_ui.label_image->setPixmap(pix);
-    m_ui.label_image->show();
-    return;
-  }
-
-  // load / transfer image into a QImage
-  QImage rawImg(QSize(static_cast<int>(width), static_cast<int>(height)),
-                QImage::Format_RGB32);
-  size_t i = 0;
-  double max_min = max - min;
-  for (size_t yi = 0; yi < width; ++yi) {
-    for (size_t xi = 0; xi < width; ++xi) {
-      const double &v = ws->readY(i)[0];
-      // color the range min-max in gray scale. To apply different color
-      // maps you'd need to use rawImg.setColorTable() or similar.
-      int scaled = static_cast<int>(255.0 * (v - min) / max_min);
-      QRgb vRgb = qRgb(scaled, scaled, scaled);
-      rawImg.setPixel(static_cast<int>(xi), static_cast<int>(yi), vRgb);
-      ++i;
-    }
-  }
-
-  // paint and show image
-  QPainter painter;
-  QPixmap pix(static_cast<int>(width), static_cast<int>(height));
-  painter.begin(&pix);
-  painter.drawImage(0, 0, rawImg);
-  painter.end();
-  m_ui.label_image->setPixmap(pix);
-  m_ui.label_image->show();
-}
-
-/**
-  * Temporary helper to do an operation that shouldn't be needed any longer when
-  * the code is reorganized to use the tool settings objetcs better.
-  */
-void TomoReconstruction::splitCmdLine(const std::string &cmd, std::string &run,
-                                      std::string &opts) {
-  if (cmd.empty())
-    return;
-
-  auto pos = cmd.find(' ');
-  if (std::string::npos == pos)
-    return;
-
-  run = cmd.substr(0, pos);
-  opts = cmd.substr(pos + 1);
-}
-
-/**
- * Make sure that the data paths (sample, dark, open beam) make
- * sense. Otherwise, warn the user and log error.
- *
- * @throw std::runtime_error if the required fields are not set
- * properly
- */
-void TomoReconstruction::checkDataPathsSet() {
-  if (currentPathFITS().empty() || currentPathFlat().empty() ||
-      currentPathDark().empty()) {
-    userWarning("Please define the paths to your dataset images",
-                "You have not defined some of the following paths: sample, "
-                "dark, or open beam images. "
-                "They are all required to run reconstruction jobs. Please "
-                "define these paths in the settings tab. ");
-    throw std::runtime_error("Cannot run any reconstruction job without the "
-                             "paths to the sample, dark and open beam images");
-  }
-}
-
-/**
- * A specific warning that can be shown for multiple tools
- *
- * @param tool Name of the tool this warning applies to
- * @param settings current settings for the tool
- */
-void TomoReconstruction::checkWarningToolNotSetup(const std::string &tool,
-                                                  const std::string &settings) {
-  if (settings.empty()) {
-    userWarning("Please define the settings of this tool",
-                "You have not defined any settings for this tool: " + tool +
-                    ". Before running it you need to define its settings "
-                    "(parameters). You can do so by clicking on the setup "
-                    "button.");
-    throw std::runtime_error("Cannot run the tool " + tool +
-                             " before its settings have been defined.");
-  }
-}
-
-/**
-* Show a warning message to the user (pop up)
-*
-* @param err Basic error title
-* @param description More detailed explanation, hints, additional
-* information, etc.
-*/
-void TomoReconstruction::userWarning(const std::string &err,
-                                     const std::string &description) {
-  QMessageBox::warning(this, QString::fromStdString(err),
-                       QString::fromStdString(description), QMessageBox::Ok,
-                       QMessageBox::Ok);
-}
-
-/**
- * Show an error (serious) message to the user (pop up)
- *
- * @param err Basic error title
- * @param description More detailed explanation, hints, additional
- * information, etc.
- */
-void TomoReconstruction::userError(const std::string &err,
-                                   const std::string &description) {
-  QMessageBox::critical(this, QString::fromStdString(err),
-                        QString::fromStdString(description), QMessageBox::Ok,
-                        QMessageBox::Ok);
-}
-
-void TomoReconstruction::openHelpWin() {
-  MantidQt::API::HelpWindow::showCustomInterface(
-      NULL, QString("Tomographic_Reconstruction"));
-}
-
-void TomoReconstruction::periodicStatusUpdateRequested() {
-  // does just the widgets update
-  updateJobsTable();
-}
-
-void TomoReconstruction::startKeepAliveMechanism(int period) {
-  if (m_keepAliveThread)
-    delete m_keepAliveThread;
-  QThread *m_keepAliveThread = new QThread();
-
-  if (m_keepAliveTimer)
-    delete m_keepAliveTimer;
-  m_keepAliveTimer = new QTimer(NULL); // no-parent so it can be moveToThread
-
-  m_keepAliveTimer->setInterval(1000 * period);
-  m_keepAliveTimer->moveToThread(m_keepAliveThread);
-  // direct connection from the thread
-  connect(m_keepAliveTimer, SIGNAL(timeout()), SLOT(jobTableRefreshClicked()),
-          Qt::DirectConnection);
-  QObject::connect(m_keepAliveThread, SIGNAL(started()), m_keepAliveTimer,
-                   SLOT(start()));
-  m_keepAliveThread->start();
-}
-
-void TomoReconstruction::killKeepAliveMechanism() {
-  if (m_keepAliveTimer)
-    m_keepAliveTimer->stop();
-}
-
-void TomoReconstruction::closeEvent(QCloseEvent *event) {
-  int answer = QMessageBox::AcceptRole;
-
-  bool ask = m_settings.onCloseAskForConfirmation;
-  if (ask) {
-    QMessageBox msgBox;
-    msgBox.setWindowTitle("Close the tomographic reconstruction interface");
-    // with something like this, we'd have layout issues:
-    // msgBox.setStandardButtons(QMessageBox::No | QMessageBox::Yes);
-    // msgBox.setDefaultButton(QMessageBox::Yes);
-    msgBox.setIconPixmap(QPixmap(":/win/unknown.png"));
-    QCheckBox confirmCheckBox("Always ask for confirmation", &msgBox);
-    confirmCheckBox.setCheckState(Qt::Checked);
-    msgBox.layout()->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding));
-    msgBox.layout()->addWidget(&confirmCheckBox);
-    QPushButton *bYes = msgBox.addButton("Yes", QMessageBox::YesRole);
-    bYes->setIcon(style()->standardIcon(QStyle::SP_DialogYesButton));
-    QPushButton *bNo = msgBox.addButton("No", QMessageBox::NoRole);
-    bNo->setIcon(style()->standardIcon(QStyle::SP_DialogNoButton));
-    msgBox.setDefaultButton(bNo);
-    msgBox.setText("You are about to close this interface");
-    msgBox.setInformativeText(
-        "If you close this interface you will need to log in again "
-        "and you might loose some of the current state. Jobs running on remote "
-        "compute resources will remain unaffected though. Are you sure?");
-
-    m_settings.onCloseAskForConfirmation = confirmCheckBox.isChecked();
-    answer = msgBox.exec();
-  }
-
-  if (answer == QMessageBox::AcceptRole) {
-    cleanup();
-    event->accept();
-  } else {
-    event->ignore();
-  }
-}
-
-} // namespace CustomInterfaces
-} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/SavuConfigDialog.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/SavuConfigDialog.cpp
similarity index 90%
rename from Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/SavuConfigDialog.cpp
rename to Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/SavuConfigDialog.cpp
index 5d3240b660ff63ad23f382113b0043fc3abe8652..0d7c8ae2da10649f8c4aba65cccca4db8a4b6d34 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/SavuConfigDialog.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/SavuConfigDialog.cpp
@@ -1,6 +1,7 @@
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidQtAPI/AlgorithmInputHistory.h"
 #include "MantidQtAPI/AlgorithmRunner.h"
-#include "MantidQtCustomInterfaces/TomoReconstruction/TomoReconstruction.h"
+#include "MantidQtCustomInterfaces/Tomography/TomographyIfaceViewQtGUI.h"
 
 #include <boost/lexical_cast.hpp>
 
@@ -17,7 +18,7 @@ namespace CustomInterfaces {
 // TODO: what's in this file should become a class of its own,
 // 'SavuConfigDialog' or similar
 
-void TomoReconstruction::loadAvailablePlugins() {
+void TomographyIfaceViewQtGUI::loadAvailablePlugins() {
   // TODO:: load actual plugins when we know them
   // creating a few relatively realistic choices for now (should crossh check
   //  with the savu api when finalized).
@@ -61,7 +62,7 @@ void TomoReconstruction::loadAvailablePlugins() {
 
 // Reloads the GUI list of available plugins from the data object ::
 // Populating only through this ensures correct indexing.
-void TomoReconstruction::refreshAvailablePluginListUI() {
+void TomographyIfaceViewQtGUI::refreshAvailablePluginListUI() {
   // Table WS structure, id/params/name/cite
   m_uiSavu.listAvailablePlugins->clear();
   for (size_t i = 0; i < m_availPlugins->rowCount(); ++i) {
@@ -73,14 +74,14 @@ void TomoReconstruction::refreshAvailablePluginListUI() {
 
 // Reloads the GUI list of current plugins from the data object ::
 // Populating only through this ensures correct indexing.
-void TomoReconstruction::refreshCurrentPluginListUI() {
+void TomographyIfaceViewQtGUI::refreshCurrentPluginListUI() {
   // Table WS structure, id/params/name/cite
   m_uiSavu.treeCurrentPlugins->clear();
   createPluginTreeEntries(m_currPlugins);
 }
 
 // Updates the selected plugin info from Available plugins list.
-void TomoReconstruction::availablePluginSelected() {
+void TomographyIfaceViewQtGUI::availablePluginSelected() {
   if (m_uiSavu.listAvailablePlugins->selectedItems().count() != 0) {
     size_t idx = static_cast<size_t>(
         m_uiSavu.listAvailablePlugins->currentIndex().row());
@@ -92,7 +93,7 @@ void TomoReconstruction::availablePluginSelected() {
 }
 
 // Updates the selected plugin info from Current plugins list.
-void TomoReconstruction::currentPluginSelected() {
+void TomographyIfaceViewQtGUI::currentPluginSelected() {
   if (m_uiSavu.treeCurrentPlugins->selectedItems().count() != 0) {
     auto currItem = m_uiSavu.treeCurrentPlugins->selectedItems()[0];
 
@@ -134,8 +135,8 @@ private:
 };
 
 // On user editing a parameter tree item, update the data object to match.
-void TomoReconstruction::paramValModified(QTreeWidgetItem *item,
-                                          int /*column*/) {
+void TomographyIfaceViewQtGUI::paramValModified(QTreeWidgetItem *item,
+                                                int /*column*/) {
   OwnTreeWidgetItem *ownItem = dynamic_cast<OwnTreeWidgetItem *>(item);
   if (!ownItem)
     return;
@@ -169,7 +170,7 @@ void TomoReconstruction::paramValModified(QTreeWidgetItem *item,
 
 // When a top level item is expanded, also expand its child items - if tree
 // items
-void TomoReconstruction::expandedItem(QTreeWidgetItem *item) {
+void TomographyIfaceViewQtGUI::expandedItem(QTreeWidgetItem *item) {
   if (item->parent() == NULL) {
     for (int i = 0; i < item->childCount(); ++i) {
       item->child(i)->setExpanded(true);
@@ -179,7 +180,7 @@ void TomoReconstruction::expandedItem(QTreeWidgetItem *item) {
 
 // Adds one plugin from the available plugins list into the list of
 // current plugins
-void TomoReconstruction::transferClicked() {
+void TomographyIfaceViewQtGUI::transferClicked() {
   if (0 == m_uiSavu.listAvailablePlugins->selectedItems().count())
     return;
 
@@ -191,7 +192,7 @@ void TomoReconstruction::transferClicked() {
   createPluginTreeEntry(row);
 }
 
-void TomoReconstruction::moveUpClicked() {
+void TomographyIfaceViewQtGUI::moveUpClicked() {
   if (0 == m_uiSavu.treeCurrentPlugins->selectedItems().count())
     return;
 
@@ -209,7 +210,7 @@ void TomoReconstruction::moveUpClicked() {
   }
 }
 
-void TomoReconstruction::moveDownClicked() {
+void TomographyIfaceViewQtGUI::moveDownClicked() {
   // TODO: this can be done with the same function as above...
   if (0 == m_uiSavu.treeCurrentPlugins->selectedItems().count())
     return;
@@ -228,7 +229,7 @@ void TomoReconstruction::moveDownClicked() {
   }
 }
 
-void TomoReconstruction::removeClicked() {
+void TomographyIfaceViewQtGUI::removeClicked() {
   // Also clear ADS entries
   if (0 == m_uiSavu.treeCurrentPlugins->selectedItems().count())
     return;
@@ -239,7 +240,7 @@ void TomoReconstruction::removeClicked() {
   refreshCurrentPluginListUI();
 }
 
-void TomoReconstruction::menuOpenClicked() {
+void TomographyIfaceViewQtGUI::menuOpenClicked() {
   QString s =
       QFileDialog::getOpenFileName(0, "Open file", QDir::currentPath(),
                                    "NeXus files (*.nxs);;All files (*.*)",
@@ -269,8 +270,8 @@ void TomoReconstruction::menuOpenClicked() {
   }
 }
 
-void TomoReconstruction::menuSaveClicked() {
-  if (m_currentParamPath == "") {
+void TomographyIfaceViewQtGUI::menuSaveClicked() {
+  if (m_currentParamPath.empty()) {
     menuSaveAsClicked();
     return;
   }
@@ -297,7 +298,7 @@ void TomoReconstruction::menuSaveClicked() {
   }
 }
 
-void TomoReconstruction::menuSaveAsClicked() {
+void TomographyIfaceViewQtGUI::menuSaveAsClicked() {
   QString s =
       QFileDialog::getSaveFileName(0, "Save file", QDir::currentPath(),
                                    "NeXus files (*.nxs);;All files (*.*)",
@@ -310,8 +311,8 @@ void TomoReconstruction::menuSaveAsClicked() {
   menuSaveClicked();
 }
 
-QString TomoReconstruction::tableWSRowToString(ITableWorkspace_sptr table,
-                                               size_t i) {
+QString TomographyIfaceViewQtGUI::tableWSRowToString(ITableWorkspace_sptr table,
+                                                     size_t i) {
   std::stringstream msg;
   msg << "ID: " << table->cell<std::string>(i, 0) << std::endl
       << "Params: " << table->cell<std::string>(i, 1) << std::endl
@@ -325,7 +326,7 @@ QString TomoReconstruction::tableWSRowToString(ITableWorkspace_sptr table,
  *
  * @param row Row from a table workspace with each row specfying a savu plugin
  */
-void TomoReconstruction::createPluginTreeEntry(TableRow &row) {
+void TomographyIfaceViewQtGUI::createPluginTreeEntry(TableRow &row) {
   QStringList idStr, nameStr, citeStr, paramsStr;
   idStr.push_back(QString::fromStdString("ID: " + row.cell<std::string>(0)));
   nameStr.push_back(
@@ -410,8 +411,8 @@ void TomoReconstruction::createPluginTreeEntry(TableRow &row) {
  * separated by commas
  */
 std::string
-TomoReconstruction::paramValStringFromArray(const Json::Value &jsonVal,
-                                            const std::string &name) {
+TomographyIfaceViewQtGUI::paramValStringFromArray(const Json::Value &jsonVal,
+                                                  const std::string &name) {
   std::string s;
   s = "[";
   for (Json::ArrayIndex i = 0; i < jsonVal.size(); ++i) {
@@ -451,8 +452,9 @@ TomoReconstruction::paramValStringFromArray(const Json::Value &jsonVal,
  *
  * @return String with a parameter value
  */
-std::string TomoReconstruction::pluginParamValString(const Json::Value &jsonVal,
-                                                     const std::string &name) {
+std::string
+TomographyIfaceViewQtGUI::pluginParamValString(const Json::Value &jsonVal,
+                                               const std::string &name) {
   std::string s;
   // string and numeric values can (normally) be converted to string but arrays
   // cannot
@@ -474,7 +476,8 @@ std::string TomoReconstruction::pluginParamValString(const Json::Value &jsonVal,
   return s;
 }
 
-void TomoReconstruction::createPluginTreeEntries(ITableWorkspace_sptr table) {
+void
+TomographyIfaceViewQtGUI::createPluginTreeEntries(ITableWorkspace_sptr table) {
   for (size_t i = 0; i < table->rowCount(); ++i) {
     TableRow r = table->getRow(i);
     createPluginTreeEntry(r);
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomoPathsConfig.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomoPathsConfig.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..67a88e62a047cc9b037246f20b25a6d82b8550d1
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomoPathsConfig.cpp
@@ -0,0 +1,19 @@
+#include "MantidQtCustomInterfaces/Tomography/TomoPathsConfig.h"
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+TomoPathsConfig::TomoPathsConfig()
+    : m_pathBase("/work/imat/phase_commissioning/"),      
+      m_pathFITS(m_pathBase + "data/sample"),
+      m_pathFlat(m_pathBase + "data/ob"),
+      m_pathDark(m_pathBase + "data/di"),
+      m_pathScriptsTools(m_pathBase + "runs_scripts"){}
+
+bool TomoPathsConfig::validate() const {
+  // TODO: too simple for now
+  return (!m_pathFITS.empty() && !m_pathFlat.empty() && !m_pathDark.empty());
+}
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/TomoToolConfigDialog.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomoToolConfigDialog.cpp
similarity index 94%
rename from Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/TomoToolConfigDialog.cpp
rename to Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomoToolConfigDialog.cpp
index 7739cc8c7330af4ca0cee3cd2a62cc7d031ee101..d92ac766f89accf755e85a5ab30b825e64d3dea6 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/TomoToolConfigDialog.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomoToolConfigDialog.cpp
@@ -1,4 +1,4 @@
-#include "MantidQtCustomInterfaces/TomoReconstruction/TomoToolConfigDialog.h"
+#include "MantidQtCustomInterfaces/Tomography/TomoToolConfigDialog.h"
 
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomographyIfaceModel.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomographyIfaceModel.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..15c9f4550e6d57228cd464e6c3cb350e47c23449
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomographyIfaceModel.cpp
@@ -0,0 +1,620 @@
+#include "MantidKernel/FacilityInfo.h"
+#include "MantidQtAPI/AlgorithmRunner.h"
+#include "MantidQtCustomInterfaces/Tomography/TomographyIfaceModel.h"
+
+#include <QMutex>
+
+using namespace Mantid::API;
+using namespace MantidQt::CustomInterfaces;
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+namespace {
+Mantid::Kernel::Logger g_log("TomographyGUI");
+}
+
+// names by which we know compute resourcess
+const std::string TomographyIfaceModel::g_SCARFName = "SCARF@STFC";
+
+// names by which we know image/tomography reconstruction tools (3rd party)
+const std::string TomographyIfaceModel::g_TomoPyTool = "TomoPy";
+const std::string TomographyIfaceModel::g_AstraTool = "Astra";
+const std::string TomographyIfaceModel::g_CCPiTool = "CCPi CGLS";
+const std::string TomographyIfaceModel::g_SavuTool = "Savu";
+const std::string TomographyIfaceModel::g_customCmdTool = "Custom command";
+
+/**
+ * Default constructor, but note that this currently relies on the
+ * SCARF cluster (only in ISIS facility) as the only supported remote
+ * compute resource.
+ */
+TomographyIfaceModel::TomographyIfaceModel()
+    : m_loggedInUser(""), m_loggedInComp(""), m_facility("ISIS"),
+      m_localCompName("Local"), m_computeRes(), m_computeResStatus(),
+      m_reconTools(), m_reconToolsStatus(), m_jobsStatus(), m_SCARFtools(),
+      m_toolsSettings(), m_statusMutex(NULL) {
+
+  m_computeRes.push_back(g_SCARFName);
+  m_computeRes.push_back(m_localCompName);
+
+  m_SCARFtools.push_back(g_TomoPyTool);
+  m_SCARFtools.push_back(g_AstraTool);
+  m_SCARFtools.push_back(g_CCPiTool);
+  m_SCARFtools.push_back(g_SavuTool);
+  m_SCARFtools.push_back(g_customCmdTool);
+
+  m_currentTool = m_SCARFtools.front();
+
+  m_statusMutex = new QMutex();
+}
+
+TomographyIfaceModel::~TomographyIfaceModel() {
+  if (m_statusMutex)
+    delete m_statusMutex;
+}
+
+void TomographyIfaceModel::cleanup() {
+  const std::string user = loggedIn();
+  if (!user.empty()) {
+    doLogout(m_loggedInComp, user);
+    m_loggedInUser = "";
+  }
+}
+
+/**
+ * Check that the selected compute resource is listed as supported and
+ * usable for the remote manager (if it is not local). Local jobs are
+ * not supported for the time being, so this currently raises an
+ * exception if the local resource has been selected.
+ *
+ * This should never throw an exception if the
+ * construction/initialization and setup steps went fine and the rest
+ * of the code is kept consistent with those steps.
+ *
+ * @param res Name of the compute resource selected in the interface
+ *
+ * @return Name of a compute resource (which can be the 'Local' one)
+ *
+ * @throws std::runtime_error on inconsistent selection of compute
+ * resource
+ */
+std::string TomographyIfaceModel::validateCompResource(const std::string &res) {
+  if (res == m_localCompName) {
+    // Nothing yet
+    throw std::runtime_error("There is no support for the local compute "
+                             "resource. You should not have got here.");
+  }
+
+  if (m_computeRes.size() <= 0) {
+    throw std::runtime_error("No compute resource registered in the list "
+                             "of supported resources. This graphical interface "
+                             "is in an inconsistent status.");
+  }
+
+  const std::string supported = m_computeRes.front();
+  if (supported.empty()) {
+    throw std::runtime_error("The first compute resource registered in this "
+                             "interface has an empty name.");
+  }
+
+  if (res != supported) {
+    throw std::runtime_error("The compute resource selected (" + res +
+                             ") is not the one in principle supported by this "
+                             "interface: " +
+                             supported);
+  }
+
+  return supported;
+}
+
+/**
+ * Sets the compute resource that will be used to run reconstruction
+ * or other types of jobs. It checks that the facility and compute
+ * resource are fine (the one expected). Otherwise, shows an error
+ * and not much can be done.
+ */
+void TomographyIfaceModel::setupComputeResource() {
+  // m_computeRes is initialized in the constructor and doesn't change
+  m_computeResStatus.clear();
+
+  if (!facilitySupported()) {
+    const std::string facName =
+        Mantid::Kernel::ConfigService::Instance().getFacility().name();
+    throw std::runtime_error(
+        "Failed to initialize because the facility is  " + facName +
+        " (and not " + m_facility +
+        "). "
+        "Facility not supported. This interface is designed "
+        "to be used at " +
+        m_facility +
+        ". You will probably not be able to use it in a useful way "
+        "because your facility is " +
+        facName +
+        ". If you have set that facility by mistake in your settings, "
+        "please update it.");
+  }
+
+  // this implies a nearly empty / no functionality interface
+  if (m_computeRes.size() < 1) {
+    return;
+  }
+
+  // assume the present reality: just SCARF
+  const std::string &required = m_computeRes.front();
+  std::vector<std::string> res = Mantid::Kernel::ConfigService::Instance()
+                                     .getFacility()
+                                     .computeResources();
+  if (res.end() == std::find(res.begin(), res.end(), required)) {
+    throw std::runtime_error(
+        "Required compute resource: '" + required +
+        "' not found. "
+        "This interface requires the " +
+        required + " compute resource. Even though your current facility is " +
+        "in principle supported, the compute resource was not found. "
+        "In principle the compute resource should have been "
+        "defined in the facilities file for you facility. "
+        "Please check your settings.");
+  }
+  m_computeResStatus.push_back(true);
+
+  // put local as second compute resource, but disable, as it's not yet sorted
+  // out how it will work
+  m_computeResStatus.push_back(false);
+}
+
+/**
+ * Sets the tools that can be run once we know the compute resource
+ * where they're going to run. This is very dependent on how the
+ * facility and compute resource is adminstered and what the resource
+ * provides.
+ *
+ * @param compRes compute resource for which the tools have to be set
+ * up. If empty, the default resource is assumed
+ */
+void TomographyIfaceModel::setupRunTool(const std::string &compRes) {
+  m_reconToolsStatus.clear();
+
+  // catch all the useable/relevant tools for the compute
+  // resources. For the time being this is rather simple (just
+  // SCARF) and will probably stay like this for a while.
+  if ("ISIS" == m_facility && (compRes.empty() || g_SCARFName == compRes)) {
+    m_reconTools = m_SCARFtools;
+  } else {
+    throw std::runtime_error("Cannot setup this interface for the facility: " +
+                             m_facility +
+                             ". There is no information about tools for it. ");
+  }
+  // others would/could come here
+
+  for (size_t i = 0; i < m_reconTools.size(); i++) {
+    // put CCPi but disable it, as it's not yet sorted out how it is
+    // configured / run
+    if (g_CCPiTool == m_reconTools[i] ||
+        // also, we cannot run Savu at present, and CCPi is not available
+        g_SavuTool == m_reconTools[i]) {
+      m_reconToolsStatus.push_back(false);
+    } else {
+      m_reconToolsStatus.push_back(true);
+    }
+  }
+}
+
+bool TomographyIfaceModel::facilitySupported() {
+  const Mantid::Kernel::FacilityInfo &fac =
+      Mantid::Kernel::ConfigService::Instance().getFacility();
+
+  return (fac.name() == m_facility);
+}
+
+/**
+ * Ping the compute resource / server to check if it's alive and
+ * responding.
+ *
+ * @return True if ping succeeded
+ */
+bool TomographyIfaceModel::doPing(const std::string &compRes) {
+  // This actually does more than a simple ping. Ping and check that a
+  // transaction can be created succesfully
+  auto alg = Algorithm::fromString("StartRemoteTransaction");
+  alg->initialize();
+  alg->setProperty("ComputeResource", compRes);
+  std::string tid;
+  try {
+    alg->execute();
+    tid = alg->getPropertyValue("TransactionID");
+    g_log.information() << "Pinged '" << compRes
+                        << "'succesfully. Checked that a transaction could "
+                           "be created, with ID: " << tid << std::endl;
+  } catch (std::runtime_error &e) {
+    throw std::runtime_error("Error. Failed to ping and start a transaction on "
+                             "the remote resource." +
+                             std::string(e.what()));
+  }
+
+  return true;
+}
+
+/**
+ * Log into remote compute resource.
+ *
+ * @param compRes Name of the compute resource where to login
+ * @param user Username
+ * @param pw Password/authentication credentials as a string
+ */
+void TomographyIfaceModel::doLogin(const std::string &compRes,
+                                   const std::string &user,
+                                   const std::string &pw) {
+  auto alg = Algorithm::fromString("Authenticate");
+  alg->initialize();
+  alg->setPropertyValue("UserName", user);
+  alg->setPropertyValue("ComputeResource", compRes);
+  alg->setPropertyValue("Password", pw);
+  try {
+    alg->execute();
+  } catch (std::runtime_error &e) {
+    throw std::runtime_error(
+        "Error when trying to log into the remote compute resource " + compRes +
+        " with username " + user + ": " + e.what());
+  }
+
+  m_loggedInUser = user;
+  m_loggedInComp = compRes;
+}
+
+void TomographyIfaceModel::doLogout(const std::string &compRes,
+                                    const std::string &username) {
+  auto alg = Algorithm::fromString("Logout");
+  alg->initialize();
+  alg->setProperty("ComputeResource", compRes);
+  alg->setProperty("UserName", username);
+  try {
+    alg->execute();
+  } catch (std::runtime_error &e) {
+    throw std::runtime_error(
+        "Error when trying to log out from the remote compute resource " +
+        compRes + " with username " + username + ": " + e.what());
+  }
+
+  m_loggedInUser = "";
+}
+
+void TomographyIfaceModel::doQueryJobStatus(const std::string &compRes,
+                                            std::vector<std::string> &ids,
+                                            std::vector<std::string> &names,
+                                            std::vector<std::string> &status,
+                                            std::vector<std::string> &cmds) {
+  auto alg = Algorithm::fromString("QueryAllRemoteJobs");
+  alg->initialize();
+  alg->setPropertyValue("ComputeResource", compRes);
+  try {
+    alg->execute();
+  } catch (std::runtime_error &e) {
+    throw std::runtime_error(
+        "Error when trying to query the status of jobs in " + compRes + ": " +
+        e.what());
+  }
+  ids = alg->getProperty("JobId");
+  names = alg->getProperty("JobName");
+  status = alg->getProperty("JobStatusString");
+  cmds = alg->getProperty("CommandLine");
+}
+
+/**
+ * Handle the job submission request relies on a submit algorithm.
+ */
+void
+TomographyIfaceModel::doSubmitReconstructionJob(const std::string &compRes) {
+  std::string run, opt;
+  try {
+    makeRunnableWithOptions(compRes, run, opt);
+  } catch (std::exception &e) {
+    g_log.error() << "Could not prepare the requested reconstruction job "
+                     "submission. There was an error: " +
+                         std::string(e.what());
+    throw;
+  }
+
+  // with SCARF we use one (pseudo)-transaction for every submission
+  auto transAlg = Algorithm::fromString("StartRemoteTransaction");
+  transAlg->initialize();
+  transAlg->setProperty("ComputeResource", compRes);
+  std::string tid;
+  try {
+    transAlg->execute();
+    tid = transAlg->getPropertyValue("TransactionID");
+  } catch (std::runtime_error &e) {
+    throw std::runtime_error("Error when trying to start a transaction right "
+                             "before submitting a reconstruction job: " +
+                             std::string(e.what()));
+  }
+
+  auto submitAlg = Algorithm::fromString("SubmitRemoteJob");
+  submitAlg->initialize();
+  submitAlg->setProperty("ComputeResource", compRes);
+  submitAlg->setProperty("TaskName", "Mantid tomographic reconstruction job");
+  submitAlg->setProperty("TransactionID", tid);
+  submitAlg->setProperty("ScriptName", run);
+  submitAlg->setProperty("ScriptParams", opt);
+  try {
+    submitAlg->execute();
+  } catch (std::runtime_error &e) {
+    throw std::runtime_error(
+        "Error when trying to submit a reconstruction job: " +
+        std::string(e.what()));
+  }
+}
+
+void TomographyIfaceModel::doCancelJobs(const std::string &compRes,
+                                        const std::vector<std::string> &ids) {
+  for (size_t i = 0; i < ids.size(); i++) {
+    const std::string id = ids[i];
+    auto algJob = Algorithm::fromString("AbortRemoteJob");
+    algJob->initialize();
+    algJob->setPropertyValue("ComputeResource", compRes);
+    algJob->setPropertyValue("JobID", id);
+    try {
+      algJob->execute();
+    } catch (std::runtime_error &e) {
+      throw std::runtime_error(
+          "Error when trying to cancel a reconstruction job: " +
+          std::string(e.what()));
+    }
+  }
+  // doesn't do StopRemoteTransaction. If there are multiple jobs per
+  // transaction there could be others that are still running.
+}
+
+void TomographyIfaceModel::doRefreshJobsInfo(const std::string &compRes) {
+  // get the info from the server into data members. This operation is subject
+  // to delays in the connection, etc.
+  try {
+    getJobStatusInfo(compRes);
+  } catch (std::runtime_error &e) {
+    g_log.warning() << "There was an issue while trying to retrieve job status "
+                       "information from the remote compute resource ("
+                    << compRes
+                    << "). Stopping periodic (automatic) status update to "
+                       "prevent more failures. You can start the automatic "
+                       "update mechanism again by logging in, as apparently "
+                       "there is some problem with the last session: "
+                    << e.what() << std::endl;
+  }
+}
+
+void TomographyIfaceModel::getJobStatusInfo(const std::string &compRes) {
+  if (m_loggedInUser.empty())
+    return;
+
+  std::vector<std::string> ids, names, status, cmds;
+  doQueryJobStatus(compRes, ids, names, status, cmds);
+
+  size_t jobMax = ids.size();
+  if (ids.size() != names.size() || ids.size() != status.size() ||
+      ids.size() != cmds.size()) {
+    // this should not really happen
+    jobMax = std::min(ids.size(), names.size());
+    jobMax = std::min(jobMax, status.size());
+    jobMax = std::min(jobMax, cmds.size());
+    g_log.warning()
+        << "Problem retrieving job status information. "
+           "The response from the compute resource did not seem "
+           "correct. The table of jobs may not be fully up to date.";
+  }
+
+  {
+    QMutexLocker lockit(m_statusMutex);
+    m_jobsStatus.clear();
+    // TODO: udate when we update to remote algorithms v2 and more
+    // info might become available from SCARF.
+    // As SCARF doesn't provide all the info at the moment, the
+    // IRemoteJobManager::RemoteJobInfo struct is for now used only
+    // partially (cmds out). So this loop feels both incomplete and an
+    // unecessary second step that could be avoided.
+    for (size_t i = 0; i < ids.size(); ++i) {
+      IRemoteJobManager::RemoteJobInfo ji;
+      ji.id = ids[i];
+      ji.name = names[i];
+      ji.status = status[i];
+      ji.cmdLine = cmds[i];
+      m_jobsStatus.push_back(ji);
+    }
+  }
+}
+
+/**
+ * Make sure that the data paths (sample, dark, open beam) make
+ * sense. Otherwise, warn the user and log error.
+ *
+ * @throw std::runtime_error if the required fields are not set
+ * properly
+ */
+void TomographyIfaceModel::checkDataPathsSet() {
+  if (!m_pathsConfig.validate()) {
+    const std::string detail =
+        "Please define the paths to your dataset images. "
+        "You have not defined some of the following paths: sample, "
+        "dark, or open beam images. "
+        "They are all required to run reconstruction jobs. Please "
+        "define these paths in the settings of the interface. ";
+    throw std::runtime_error(
+        "Cannot run any reconstruction job without the "
+        "paths to the sample, dark and open beam images. " +
+        detail);
+  }
+}
+
+/**
+ * Build the components of the command line to run on the remote
+ * compute resource.Produces a (normally full) path to a runnable, and
+ * the options (quite like $0 and $* in scripts).
+ *
+ * @param comp Compute resource for which the command line is being prepared
+ * @param run Path to a runnable application (script, python module, etc.)
+ * @param opt Command line parameters to the application
+ */
+void TomographyIfaceModel::makeRunnableWithOptions(const std::string &comp,
+                                                   std::string &run,
+                                                   std::string &opt) {
+  checkDataPathsSet();
+
+  // For now we only know how to 'aproximately' run commands on SCARF
+  if (g_SCARFName == comp) {
+    const std::string tool = usingTool();
+    std::string cmd;
+
+    // TODO this is still incomplete, not all tools ready
+    if (tool == g_TomoPyTool) {
+      cmd = m_toolsSettings.tomoPy.toCommand();
+      // this will make something like:
+      // run = "/work/imat/z-tests-fedemp/scripts/tomopy/imat_recon_FBP.py";
+      // opt = "--input_dir " + base + currentPathFITS() + " " + "--dark " +
+      // base +
+      //      currentPathDark() + " " + "--white " + base + currentPathFlat();
+    } else if (tool == g_AstraTool) {
+      cmd = m_toolsSettings.astra.toCommand();
+      // this will produce something like this:
+      // run = "/work/imat/scripts/astra/astra-3d-SIRT3D.py";
+      // opt = base + currentPathFITS();
+    } else if (tool == g_customCmdTool) {
+      cmd = m_toolsSettings.custom.toCommand();
+    } else {
+      throw std::runtime_error(
+          "Unable to use this tool. "
+          "I do not know how to submit jobs to use this tool: " +
+          tool + ". It seems that this interface is "
+                 "misconfigured or there has been an unexpected "
+                 "failure.");
+    }
+
+    splitCmdLine(cmd, run, opt);
+    checkWarningToolNotSetup(tool, cmd, run, opt);
+  } else {
+    run = "error_do_not_know_what_to_do";
+    opt = "no_options_known";
+
+    const std::string details =
+        "Unrecognized remote compute resource. "
+        "The remote compute resource that you are trying not used is "
+        "not known: " +
+        comp + ". This seems to indicate that this interface is "
+               "misconfigured or there has been an unexpected failure.";
+    throw std::runtime_error(
+        "Could not recognize the remote compute resource: '" + comp + "'. " +
+        details);
+  }
+}
+
+/**
+ * This can produce a tool-specific warning that can be shown for
+ * different tools when they are not fully setup (any required
+ * parameter is missing).
+ *
+ * @param tool Name of the tool this warning applies to
+ * @param settings current settings for the tool
+ * @param cmd command/script/executable derived from the settings
+ * @param opt options for that command/script/executable derived from the
+ * settings
+ */
+void TomographyIfaceModel::checkWarningToolNotSetup(const std::string &tool,
+                                                    const std::string &settings,
+                                                    const std::string &cmd,
+                                                    const std::string &opt) {
+  if (tool.empty() || settings.empty() || cmd.empty() || opt.empty()) {
+    const std::string detail =
+        "Please define the settings of this tool. "
+        "You have not defined any settings for this tool: " +
+        tool + ". Before running it you need to define its settings "
+               "(parameters). You can do so by clicking on the setup "
+               "button.";
+    throw std::runtime_error("Cannot run the tool " + tool +
+                             " before its settings have been defined." +
+                             detail);
+  }
+}
+
+/**
+ * Temporary helper to do an operation that shouldn't be needed any longer when
+ * the code is reorganized to use the tool settings objetcs better.
+ */
+void TomographyIfaceModel::splitCmdLine(const std::string &cmd,
+                                        std::string &run, std::string &opts) {
+  if (cmd.empty())
+    return;
+
+  auto pos = cmd.find(' ');
+  if (std::string::npos == pos)
+    return;
+
+  run = cmd.substr(0, pos);
+  opts = cmd.substr(pos + 1);
+}
+
+/**
+* Helper to get a FITS image into a workspace. Uses the LoadFITS
+* algorithm. If the algorithm throws, this method shows user (pop-up)
+* warning/error messages but does not throw.
+*
+* This method returns a workspace group which most probably you want
+* to delete after using the image to draw it.
+*
+* @param path Path to a FITS image
+*
+* @return Group Workspace containing a Matrix workspace with a FITS
+* image, one pixel per histogram, as loaded by LoadFITS (can be empty
+* if the load goes wrong and the workspace is not available from the
+* ADS).
+*/
+WorkspaceGroup_sptr
+TomographyIfaceModel::loadFITSImage(const std::string &path) {
+  // get fits file into workspace and retrieve it from the ADS
+  auto alg = Algorithm::fromString("LoadFITS");
+  alg->initialize();
+  alg->setPropertyValue("Filename", path);
+  std::string wsName = "__fits_ws_tomography_gui";
+  alg->setProperty("OutputWorkspace", wsName);
+  // this is way faster when loading into a MatrixWorkspace
+  alg->setProperty("LoadAsRectImg", true);
+  try {
+    alg->execute();
+  } catch (std::exception &e) {
+    throw std::runtime_error(
+        "Failed to load image. Could not load this file as a "
+        "FITS image: " +
+        std::string(e.what()));
+    return WorkspaceGroup_sptr();
+  }
+  if (!alg->isExecuted()) {
+    throw std::runtime_error(
+        "Failed to load image correctly. Note that even though "
+        "the image file has been loaded it seems to contain errors.");
+  }
+  WorkspaceGroup_sptr wsg;
+  MatrixWorkspace_sptr ws;
+  try {
+    wsg = AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>(wsName);
+    ws = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+        wsg->getNames()[0]);
+  } catch (std::exception &e) {
+    throw std::runtime_error(
+        "Could not load image contents. An unrecoverable error "
+        "happened when trying to load the image contents. Cannot "
+        "display it. Error details: " +
+        std::string(e.what()));
+  }
+
+  // draw image from workspace
+  if (wsg && ws &&
+      Mantid::API::AnalysisDataService::Instance().doesExist(ws->name())) {
+    return wsg;
+  } else {
+    return WorkspaceGroup_sptr();
+  }
+}
+
+void TomographyIfaceModel::logMsg(const std::string &msg) {
+  g_log.notice() << msg << std::endl;
+}
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomographyIfacePresenter.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomographyIfacePresenter.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..59ae96f3caed1ffa8f76c7fbb143fcdb94a95c34
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomographyIfacePresenter.cpp
@@ -0,0 +1,397 @@
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/TableRow.h"
+#include "MantidAPI/WorkspaceGroup.h"
+#include "MantidKernel/ConfigService.h"
+#include "MantidKernel/FacilityInfo.h"
+#include "MantidQtCustomInterfaces/Tomography/TomographyIfaceModel.h"
+#include "MantidQtCustomInterfaces/Tomography/TomographyIfacePresenter.h"
+#include "MantidQtCustomInterfaces/Tomography/ITomographyIfaceView.h"
+
+#include <boost/lexical_cast.hpp>
+
+#include <QFileInfo>
+#include <QMutex>
+#include <QString>
+#include <QThread>
+#include <QTimer>
+
+using namespace Mantid::API;
+using namespace MantidQt::CustomInterfaces;
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+TomographyIfacePresenter::TomographyIfacePresenter(ITomographyIfaceView *view)
+    : m_view(view), m_model(new TomographyIfaceModel()), m_statusMutex(NULL),
+      m_keepAliveTimer(NULL), m_keepAliveThread(NULL) {
+  if (!m_view) {
+    throw std::runtime_error("Severe inconsistency found. Presenter created "
+                             "with an empty/null view (tomography interface). "
+                             "Cannot continue.");
+  }
+  m_statusMutex = new QMutex();
+}
+
+TomographyIfacePresenter::~TomographyIfacePresenter() {
+  cleanup();
+
+  if (m_keepAliveThread)
+    delete m_keepAliveThread;
+
+  if (m_keepAliveTimer)
+    delete m_keepAliveTimer;
+
+  if (m_statusMutex)
+    delete m_statusMutex;
+}
+
+/**
+ * Close open sessions, kill timers/threads etc., save settings, etc. for a
+ * graceful window close/destruct
+ */
+void TomographyIfacePresenter::cleanup() {
+  killKeepAliveMechanism();
+  m_model->cleanup();
+}
+
+void TomographyIfacePresenter::notify(
+    ITomographyIfacePresenter::Notification notif) {
+
+  switch (notif) {
+
+  case ITomographyIfacePresenter::SetupResourcesAndTools:
+    processSetup();
+    break;
+
+  case ITomographyIfacePresenter::CompResourceChanged:
+    processCompResourceChange();
+    break;
+
+  case ITomographyIfacePresenter::ToolChanged:
+    processToolChange();
+    break;
+
+  case ITomographyIfacePresenter::TomoPathsChanged:
+    processTomoPathsChanged();
+    break;
+
+  case ITomographyIfacePresenter::LogInRequested:
+    processLogin();
+    break;
+
+  case ITomographyIfacePresenter::LogOutRequested:
+    processLogout();
+    break;
+
+  case ITomographyIfacePresenter::SetupReconTool:
+    processSetupReconTool();
+    break;
+
+  case ITomographyIfacePresenter::RunReconstruct:
+    processRunRecon();
+    break;
+
+  case ITomographyIfacePresenter::RefreshJobs:
+    processRefreshJobs();
+    break;
+
+  case ITomographyIfacePresenter::CancelJobFromTable:
+    processCancelJobs();
+    break;
+
+  case ITomographyIfacePresenter::VisualizeJobFromTable:
+    processVisualizeJobs();
+    break;
+
+  case ITomographyIfacePresenter::ViewImg:
+    processViewImg();
+    break;
+
+  case ITomographyIfacePresenter::LogMsg:
+    processLogMsg();
+    break;
+
+  case ITomographyIfacePresenter::ShutDown:
+    processShutDown();
+    break;
+  }
+}
+
+void TomographyIfacePresenter::processSetup() {
+  try {
+    m_model->setupComputeResource();
+    if (m_model->computeResources().size() < 1) {
+      m_view->userWarning("No remote compute resource could be set up!",
+                          "No remote compute resource has been set up. Please "
+                          "note that without a "
+                          "remote compute resource the functionality of this "
+                          "interface might be limited.");
+    }
+    m_model->setupRunTool("");
+    processTomoPathsChanged();
+
+    m_view->enableLoggedActions(!m_model->loggedIn().empty());
+
+    m_view->setComputeResources(m_model->computeResources(),
+                                m_model->computeResourcesStatus());
+    m_view->setReconstructionTools(m_model->reconTools(),
+                                   m_model->reconToolsStatus());
+  } catch (std::runtime_error &e) {
+    const std::string msg =
+        "Failed to initialize remote compute resource(s). This "
+        "custom interface will not work. Error description: " +
+        std::string(e.what());
+
+    m_view->enableLoggedActions(false);
+    // This would ideally be shown to the user as a "fatal error" pop-up, as
+    // itis an unrecoverable error. But in facilities other than ISIS this
+    // would block the builds (docs-qthelp).
+    // m_view->userError("Fatal error", msg);
+    m_model->logMsg(msg);
+  }
+}
+
+void TomographyIfacePresenter::processCompResourceChange() {
+  const std::string comp = m_view->currentComputeResource();
+
+  m_model->setupRunTool(comp);
+}
+
+void TomographyIfacePresenter::processToolChange() {
+  const std::string tool = m_view->currentReconTool();
+
+  // disallow reconstruct on tools that don't run yet: Savu and CCPi
+  if (TomographyIfaceModel::g_CCPiTool == tool) {
+    m_view->enableRunReconstruct(false);
+    m_view->enableConfigTool(false);
+  } else if (TomographyIfaceModel::g_SavuTool == tool) {
+    // for now, show setup dialog, but cannot run
+    m_view->enableRunReconstruct(false);
+    m_view->enableConfigTool(true);
+  } else {
+    m_view->enableRunReconstruct(!(m_model->loggedIn().empty()));
+    m_view->enableConfigTool(true);
+  }
+
+  m_model->usingTool(tool);
+}
+
+void TomographyIfacePresenter::processTomoPathsChanged() {
+  m_model->updateTomoPathsConfig(m_view->currentPathsConfig());
+}
+
+void TomographyIfacePresenter::processLogin() {
+  if (!m_model->facilitySupported()) {
+    m_view->userError(
+        "Fatal error",
+        "Cannot do any login operation because the current facility is not "
+        "supported by this interface. Please check the log messages for more "
+        "details.");
+    return;
+  }
+
+  if (!m_model->loggedIn().empty()) {
+    m_view->userError(
+        "Better to logout before logging in again",
+        "You're currently logged in. Please, log out before logging in "
+        "again if that's what you meant.");
+  }
+
+  const std::string compRes = m_view->currentComputeResource();
+  try {
+    const std::string user = m_view->getUsername();
+    if (user.empty()) {
+      m_view->userError(
+          "Cannot log in",
+          "To log in you need to specify a username (and a password!).");
+      return;
+    }
+
+    m_model->doLogin(compRes, m_view->getUsername(), m_view->getPassword());
+  } catch (std::exception &e) {
+    throw(std::string("Problem when logging in. Error description: ") +
+          e.what());
+  }
+
+  m_view->updateLoginControls(true);
+  m_view->enableLoggedActions(!m_model->loggedIn().empty());
+
+  try {
+    m_model->doRefreshJobsInfo(compRes);
+  } catch (std::exception &e) {
+    throw(std::string("The login operation went apparently fine but an issue "
+                      "was found while trying to retrieve the status of the "
+                      "jobs currently running on the remote resource. Error "
+                      "description: ") +
+          e.what());
+  }
+
+  startKeepAliveMechanism(m_view->keepAlivePeriod());
+  // show table for the first time
+  processRefreshJobs();
+}
+
+void TomographyIfacePresenter::processLogout() {
+  if (m_model->loggedIn().empty()) {
+    m_model->logMsg("Cannot log out: not logged into any resource.");
+    return;
+  }
+
+  try {
+    m_model->doLogout(m_view->currentComputeResource(), m_view->getUsername());
+  } catch (std::exception &e) {
+    throw(std::string("Problem when logging out. Error description: ") +
+          e.what());
+  }
+
+  m_view->updateLoginControls(false);
+}
+
+void TomographyIfacePresenter::processSetupReconTool() {
+  if (TomographyIfaceModel::g_CCPiTool != m_view->currentReconTool()) {
+    m_view->showToolConfig(m_view->currentReconTool());
+    m_model->updateReconToolsSettings(m_view->reconToolsSettings());
+  }
+}
+
+void TomographyIfacePresenter::processRunRecon() {
+  if (m_model->loggedIn().empty())
+    return;
+
+  const std::string &resource = m_view->currentComputeResource();
+
+  if (m_model->localComputeResource() != resource) {
+    try {
+      m_model->doSubmitReconstructionJob(resource);
+    } catch (std::exception &e) {
+      m_view->userWarning("Issue when trying to start a job", e.what());
+    }
+
+    processRefreshJobs();
+  }
+}
+
+void TomographyIfacePresenter::processRefreshJobs() {
+  if (m_model->loggedIn().empty())
+    return;
+
+  const std::string &comp = m_view->currentComputeResource();
+  m_model->doRefreshJobsInfo(comp);
+
+  {
+    // update widgets from that info
+    QMutexLocker lockit(m_statusMutex);
+
+    m_view->updateJobsInfoDisplay(m_model->jobsStatus());
+  }
+}
+
+void TomographyIfacePresenter::processCancelJobs() {
+  if (m_model->loggedIn().empty())
+    return;
+
+  const std::string &resource = m_view->currentComputeResource();
+  if (m_model->localComputeResource() != resource) {
+    m_model->doCancelJobs(resource, m_view->processingJobsIDs());
+  }
+}
+
+void TomographyIfacePresenter::processVisualizeJobs() {
+  doVisualize(m_view->processingJobsIDs());
+}
+
+void
+TomographyIfacePresenter::doVisualize(const std::vector<std::string> &ids) {
+  m_model->logMsg(" Visualizing results from job: " + ids.front());
+  // TODO: open dialog, send to Paraview, etc.
+}
+
+void TomographyIfacePresenter::processLogMsg() {
+  std::vector<std::string> msgs = m_view->logMsgs();
+  for (size_t i = 0; i < msgs.size(); i++) {
+    m_model->logMsg(msgs[i]);
+    break;
+  }
+}
+
+void TomographyIfacePresenter::processShutDown() {
+  m_view->saveSettings();
+  cleanup();
+}
+
+void TomographyIfacePresenter::processViewImg() {
+  std::string ip = m_view->showImagePath();
+  QString suf = QFileInfo(QString::fromStdString(ip)).suffix();
+  // This is not so great, as we check extensions and not really file
+  // content/headers, as it should be.
+  if ((0 == QString::compare(suf, "fit", Qt::CaseInsensitive)) ||
+      (0 == QString::compare(suf, "fits", Qt::CaseInsensitive))) {
+    WorkspaceGroup_sptr wsg = m_model->loadFITSImage(ip);
+    if (!wsg)
+      return;
+    MatrixWorkspace_sptr ws =
+        boost::dynamic_pointer_cast<MatrixWorkspace>(wsg->getItem(0));
+    if (!ws)
+      return;
+
+    m_view->showImage(ws);
+
+    // clean-up container group workspace
+    if (wsg)
+      AnalysisDataService::Instance().remove(wsg->getName());
+  } else if ((0 == QString::compare(suf, "tif", Qt::CaseInsensitive)) ||
+             (0 == QString::compare(suf, "tiff", Qt::CaseInsensitive)) ||
+             (0 == QString::compare(suf, "png", Qt::CaseInsensitive))) {
+    m_view->showImage(ip);
+  } else {
+    m_view->userWarning(
+        "Failed to load image - format issue",
+        "Could not load image because the extension of the file " + ip +
+            ", suffix: " + suf.toStdString() +
+            " does not correspond to FITS or TIFF files.");
+  }
+}
+
+void TomographyIfacePresenter::startKeepAliveMechanism(int period) {
+  if (period <= 0) {
+    m_model->logMsg("Tomography GUI: not starting the keep-alive mechanism. "
+                    "You might be logged out by the remote compute resource "
+                    "after some minutes "
+                    "depending on system configuration.");
+    return;
+  }
+
+  m_model->logMsg(
+      "Tomography GUI: starting mechanism to periodically query the "
+      "status of jobs. This will update the status of running jobs every " +
+      boost::lexical_cast<std::string>(period) +
+      " seconds. You can also update it at any moment by clicking "
+      "on the refresh button. This periodic update mechanism is "
+      "also expected to keep sessions on remote compute resources "
+      "alive after logging in.");
+
+  if (m_keepAliveThread)
+    delete m_keepAliveThread;
+  QThread *m_keepAliveThread = new QThread();
+
+  if (m_keepAliveTimer)
+    delete m_keepAliveTimer;
+  m_keepAliveTimer = new QTimer(NULL); // no-parent so it can be moveToThread
+
+  m_keepAliveTimer->setInterval(1000 * period); // interval in ms
+  m_keepAliveTimer->moveToThread(m_keepAliveThread);
+  // direct connection from the thread
+  connect(m_keepAliveTimer, SIGNAL(timeout()), SLOT(processRefreshJobs()),
+          Qt::DirectConnection);
+  QObject::connect(m_keepAliveThread, SIGNAL(started()), m_keepAliveTimer,
+                   SLOT(start()));
+  m_keepAliveThread->start();
+}
+
+void TomographyIfacePresenter::killKeepAliveMechanism() {
+  if (m_keepAliveTimer)
+    m_keepAliveTimer->stop();
+}
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomographyIfaceViewQtGUI.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomographyIfaceViewQtGUI.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c280ce58fce36a8d851ee1ad68804b38bf4fdd47
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/TomographyIfaceViewQtGUI.cpp
@@ -0,0 +1,929 @@
+#include "MantidAPI/ITableWorkspace.h"
+#include "MantidAPI/WorkspaceFactory.h"
+#include "MantidQtAPI/AlgorithmInputHistory.h"
+#include "MantidQtAPI/AlgorithmRunner.h"
+#include "MantidQtAPI/HelpWindow.h"
+#include "MantidQtCustomInterfaces/Tomography/TomographyIfaceViewQtGUI.h"
+#include "MantidQtCustomInterfaces/Tomography/TomographyIfacePresenter.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigAstraToolbox.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigCustom.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigTomoPy.h"
+
+using namespace Mantid::API;
+using namespace MantidQt::CustomInterfaces;
+
+#include <boost/lexical_cast.hpp>
+
+#include <QFileDialog>
+#include <QMessageBox>
+#include <QPainter>
+#include <QSettings>
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+size_t TomographyIfaceViewQtGUI::g_nameSeqNo = 0;
+
+const std::string TomographyIfaceViewQtGUI::g_SCARFName = "SCARF@STFC";
+const std::string TomographyIfaceViewQtGUI::g_defOutPath =
+    "/work/imat/runs_output";
+
+// names by which we know image/tomography reconstruction tools (3rd party)
+const std::string TomographyIfaceViewQtGUI::g_TomoPyTool = "TomoPy";
+const std::string TomographyIfaceViewQtGUI::g_AstraTool = "Astra";
+const std::string TomographyIfaceViewQtGUI::g_CCPiTool = "CCPi CGLS";
+const std::string TomographyIfaceViewQtGUI::g_SavuTool = "Savu";
+const std::string TomographyIfaceViewQtGUI::g_customCmdTool = "Custom command";
+
+// Add this class to the list of specialised dialogs in this namespace
+DECLARE_SUBWINDOW(TomographyIfaceViewQtGUI)
+
+/**
+ * Default constructor, but note that this interface currently
+ * relies on the SCARF cluster (only in ISIS facility) as the only
+ * supported remote compute resource.
+ *
+ * @param parent Parent window (most likely the Mantid main app window).
+ */
+TomographyIfaceViewQtGUI::TomographyIfaceViewQtGUI(QWidget *parent)
+    : UserSubWindow(parent), ITomographyIfaceView(), m_processingJobsIDs(),
+      m_currentComputeRes(""), m_currentReconTool(""), m_imgPath(""),
+      m_logMsgs(), m_toolsSettings(), m_settings(),
+      m_settingsGroup("CustomInterfaces/Tomography"), m_availPlugins(),
+      m_currPlugins(), m_currentParamPath(), m_presenter(NULL) {
+
+  // TODO: find a better place for this Savu stuff - see other TODOs
+  m_availPlugins = Mantid::API::WorkspaceFactory::Instance().createTable();
+  m_availPlugins->addColumns("str", "name", 4);
+  m_currPlugins = Mantid::API::WorkspaceFactory::Instance().createTable();
+  m_currPlugins->addColumns("str", "name", 4);
+}
+
+TomographyIfaceViewQtGUI::~TomographyIfaceViewQtGUI() {}
+
+void TomographyIfaceViewQtGUI::initLayout() {
+  // setup container ui
+  m_ui.setupUi(this);
+  // add tab contents and set up their ui's
+  QWidget *tab1w = new QWidget(m_ui.tabMain);
+  m_uiTabRun.setupUi(tab1w);
+  m_ui.tabMain->addTab(tab1w, QString("Run"));
+  QWidget *tab2w = new QWidget(m_ui.tabMain);
+  m_uiTabSetup.setupUi(tab2w);
+  m_ui.tabMain->addTab(tab2w, QString("Setup"));
+
+  readSettings();
+
+  // basic UI setup
+  doSetupGeneralWidgets();
+  doSetupSectionSetup();
+  doSetupSectionRun();
+
+  // presenter that knows how to handle a ITomographyIfaceView should take care
+  // of all the logic
+  // note the view needs to now the concrete presenter
+  m_presenter.reset(new TomographyIfacePresenter(this));
+
+  // it will know what compute resources and tools we have available:
+  // This view doesn't even know the names of compute resources, etc.
+  m_presenter->notify(ITomographyIfacePresenter::SetupResourcesAndTools);
+}
+
+void TomographyIfaceViewQtGUI::doSetupGeneralWidgets() {
+  // Menu Items
+  connect(m_ui.actionOpen, SIGNAL(triggered()), this, SLOT(menuOpenClicked()));
+  connect(m_ui.actionSave, SIGNAL(triggered()), this, SLOT(menuSaveClicked()));
+  connect(m_ui.actionSaveAs, SIGNAL(triggered()), this,
+          SLOT(menuSaveAsClicked()));
+
+  connect(m_ui.pushButton_help, SIGNAL(released()), this, SLOT(openHelpWin()));
+  // note connection to the parent window, otherwise you'd be left
+  // with an empty frame window
+  connect(m_ui.pushButton_close, SIGNAL(released()), this->parent(),
+          SLOT(close()));
+}
+
+void TomographyIfaceViewQtGUI::doSetupSectionSetup() {
+  // disable 'local' for now
+  m_uiTabSetup.tabWidget_comp_resource->setTabEnabled(false, 1);
+  m_uiTabSetup.tab_local->setEnabled(false);
+
+  m_uiTabSetup.groupBox_run_config->setEnabled(false);
+
+  connect(m_uiTabSetup.pushButton_SCARF_login, SIGNAL(released()), this,
+          SLOT(SCARFLoginClicked()));
+  connect(m_uiTabSetup.pushButton_SCARF_logout, SIGNAL(released()), this,
+          SLOT(SCARFLogoutClicked()));
+
+  // populate setup values from defaults
+  m_uiTabSetup.lineEdit_path_FITS->setText(
+      QString::fromStdString(m_pathsConfig.pathSamples()));
+  m_uiTabSetup.lineEdit_path_flat->setText(
+      QString::fromStdString(m_pathsConfig.pathOpenBeam()));
+  m_uiTabSetup.lineEdit_path_dark->setText(
+      QString::fromStdString(m_pathsConfig.pathDark()));
+  m_uiTabSetup.lineEdit_SCARF_path->setText(
+      QString::fromStdString(m_pathsConfig.pathBase()));
+  m_uiTabSetup.lineEdit_scripts_base_dir->setText(
+      QString::fromStdString(m_pathsConfig.pathScriptsTools()));
+
+  // 'browse' buttons
+  connect(m_uiTabSetup.pushButton_fits_dir, SIGNAL(released()), this,
+          SLOT(fitsPathBrowseClicked()));
+  connect(m_uiTabSetup.pushButton_flat_dir, SIGNAL(released()), this,
+          SLOT(flatPathBrowseClicked()));
+  connect(m_uiTabSetup.pushButton_dark_dir, SIGNAL(released()), this,
+          SLOT(darkPathBrowseClicked()));
+}
+
+void TomographyIfaceViewQtGUI::doSetupSectionRun() {
+  // geometry, etc. niceties
+  // on the left (just plugin names) 1/2, right: 2/3
+  QList<int> sizes;
+  sizes.push_back(420);
+  sizes.push_back(80);
+  m_uiTabRun.splitter_run_main_vertical->setSizes(sizes);
+
+  sizes[0] = 470;
+  sizes[1] = 30;
+  m_uiTabRun.splitter_image_resource->setSizes(sizes);
+
+  sizes[0] = 400;
+  sizes[1] = 100;
+  m_uiTabRun.splitter_run_jobs->setSizes(sizes);
+
+  m_uiTabRun.label_image_name->setText("none");
+
+  m_uiTabRun.pushButton_reconstruct->setEnabled(false);
+  m_uiTabRun.pushButton_run_tool_setup->setEnabled(false);
+  m_uiTabRun.pushButton_run_job_cancel->setEnabled(false);
+  m_uiTabRun.pushButton_run_job_visualize->setEnabled(false);
+
+  // Button signals
+  connect(m_uiTabRun.pushButton_browse_image, SIGNAL(released()), this,
+          SLOT(browseImageClicked()));
+  connect(m_uiTabRun.pushButton_reconstruct, SIGNAL(released()), this,
+          SLOT(reconstructClicked()));
+  connect(m_uiTabRun.pushButton_run_tool_setup, SIGNAL(released()), this,
+          SLOT(toolSetupClicked()));
+  connect(m_uiTabRun.pushButton_run_refresh, SIGNAL(released()), this,
+          SLOT(jobTableRefreshClicked()));
+  connect(m_uiTabRun.pushButton_run_job_visualize, SIGNAL(released()), this,
+          SLOT(runVisualizeClicked()));
+  connect(m_uiTabRun.pushButton_run_job_cancel, SIGNAL(released()), this,
+          SLOT(jobCancelClicked()));
+
+  // update tools for a resource
+  connect(m_uiTabRun.comboBox_run_compute_resource,
+          SIGNAL(currentIndexChanged(int)), this,
+          SLOT(compResourceIndexChanged(int)));
+
+  connect(m_uiTabRun.comboBox_run_tool, SIGNAL(currentIndexChanged(int)), this,
+          SLOT(runToolIndexChanged(int)));
+}
+
+void TomographyIfaceViewQtGUI::setComputeResources(
+    const std::vector<std::string> &resources,
+    const std::vector<bool> &enabled) {
+  // set up the compute resource
+  QComboBox *cr = m_uiTabRun.comboBox_run_compute_resource;
+  if (!cr || resources.size() != enabled.size())
+    return;
+
+  cr->clear();
+
+  for (size_t ri = 0; ri < resources.size(); ri++) {
+    cr->addItem(QString::fromStdString(resources[ri]));
+
+    if (!enabled[ri]) {
+      // trick to display the text in a disabled row
+      QModelIndex idx = cr->model()->index(static_cast<int>(ri), 0);
+      QVariant disabled(0);
+      cr->model()->setData(idx, disabled, Qt::UserRole - 1);
+    }
+  }
+}
+
+// This is here while savu becomes available and we find a better place for savu
+// stuff
+void TomographyIfaceViewQtGUI::doSetupSavu() {
+  // geometry, etc. niceties
+  // on the left (just plugin names) 1/2, right: 2/3
+  QList<int> sizes;
+  sizes.push_back(100);
+  sizes.push_back(200);
+  m_uiSavu.splitterPlugins->setSizes(sizes);
+
+  // Setup Parameter editor tab
+  loadAvailablePlugins();
+  m_uiSavu.treeCurrentPlugins->setHeaderHidden(true);
+
+  // Connect slots
+
+  // Lists/trees
+  connect(m_uiSavu.listAvailablePlugins, SIGNAL(itemSelectionChanged()), this,
+          SLOT(availablePluginSelected()));
+  connect(m_uiSavu.treeCurrentPlugins, SIGNAL(itemSelectionChanged()), this,
+          SLOT(currentPluginSelected()));
+  connect(m_uiSavu.treeCurrentPlugins, SIGNAL(itemExpanded(QTreeWidgetItem *)),
+          this, SLOT(expandedItem(QTreeWidgetItem *)));
+
+  // Buttons
+  connect(m_uiSavu.btnTransfer, SIGNAL(released()), this,
+          SLOT(transferClicked()));
+  connect(m_uiSavu.btnMoveUp, SIGNAL(released()), this, SLOT(moveUpClicked()));
+  connect(m_uiSavu.btnMoveDown, SIGNAL(released()), this,
+          SLOT(moveDownClicked()));
+  connect(m_uiSavu.btnRemove, SIGNAL(released()), this, SLOT(removeClicked()));
+}
+
+void TomographyIfaceViewQtGUI::setReconstructionTools(
+    const std::vector<std::string> &tools, const std::vector<bool> &enabled) {
+
+  // set up the reconstruction tool
+  QComboBox *rt = m_uiTabRun.comboBox_run_tool;
+  if (!rt || tools.size() != enabled.size())
+    return;
+
+  rt->clear();
+
+  for (size_t ti = 0; ti < tools.size(); ti++) {
+    rt->addItem(QString::fromStdString(tools[ti]));
+
+    if (!enabled[ti]) {
+      // trick to display it in a disabled row
+      QModelIndex idx = rt->model()->index(static_cast<int>(ti), 0);
+      QVariant disabled(0);
+      rt->model()->setData(idx, disabled, Qt::UserRole - 1);
+    }
+  }
+}
+
+/**
+ * Enables/disables buttons that require the user to be logged into
+ * the (remote) compute resource, for example: reconstruct (submit job),
+ * cancel job, etc.
+ */
+void TomographyIfaceViewQtGUI::enableLoggedActions(bool enable) {
+  // TODO: this may not make sense anymore when/if the "Local" compute
+  // resource is used in the future (except when none of the tools
+  // supported are available/detected on "Local")
+  std::vector<QPushButton *> buttons;
+  buttons.push_back(m_uiTabRun.pushButton_run_refresh);
+  buttons.push_back(m_uiTabRun.pushButton_run_job_cancel);
+  // no visualization yet, need vsi etc. support
+  // buttons.push_back(m_uiTabSetup.pushButton_run_job_visualize);
+  buttons.push_back(m_uiTabRun.pushButton_reconstruct);
+
+  for (size_t i = 0; i < buttons.size(); ++i) {
+    buttons[i]->setEnabled(enable);
+  }
+
+  if (!enable) {
+    m_uiTabRun.pushButton_reconstruct->setToolTip(
+        "Start reconstruction job. You need to be logged in to use this");
+  } else {
+    m_uiTabRun.pushButton_reconstruct->setToolTip("");
+  }
+}
+
+/**
+ * Handle display of the current status of the remote/local compute resource
+ * that is selected by the user.
+ *
+ * @param online whether to show good/working/online status
+ */
+void TomographyIfaceViewQtGUI::updateCompResourceStatus(bool online) {
+  if (online)
+    m_uiTabRun.pushButton_remote_status->setText("Online");
+  else
+    m_uiTabRun.pushButton_remote_status->setText("Offline");
+}
+
+/**
+ * Load the settings for the tabs and widgets of the interface. This
+ * relies on Qt settings functionality (QSettings class).
+ *
+ * This includes setting the default browsing directory to be the
+ * default save directory.
+ */
+void TomographyIfaceViewQtGUI::readSettings() {
+  QSettings qs;
+  qs.beginGroup(QString::fromStdString(m_settingsGroup));
+
+  m_settings.SCARFBasePath =
+      qs.value("SCARF-base-path",
+               QString::fromStdString(m_settings.SCARFBasePath))
+          .toString()
+          .toStdString();
+  // WARNING: it's critical to keep 'false' as default value, otherwise
+  // scripted runs may have issues. The CI builds could get stuck when
+  // closing this interface.
+  m_settings.onCloseAskForConfirmation =
+      qs.value("on-close-ask-for-confirmation", false).toBool();
+
+  m_settings.useKeepAlive =
+      qs.value("use-keep-alive", m_settings.useKeepAlive).toInt();
+  restoreGeometry(qs.value("interface-win-geometry").toByteArray());
+  qs.endGroup();
+
+  m_uiTabSetup.lineEdit_SCARF_path->setText(
+      QString::fromStdString(m_settings.SCARFBasePath));
+}
+
+/**
+ * Save persistent settings. Qt based.
+ */
+void TomographyIfaceViewQtGUI::saveSettings() const {
+  QSettings qs;
+  qs.beginGroup(QString::fromStdString(m_settingsGroup));
+  QString s = m_uiTabSetup.lineEdit_SCARF_path->text();
+  qs.setValue("SCARF-base-path", s);
+  qs.setValue("on-close-ask-for-confirmation",
+              m_settings.onCloseAskForConfirmation);
+  qs.setValue("use-keep-alive", m_settings.useKeepAlive);
+  qs.setValue("interface-win-geometry", saveGeometry());
+  qs.endGroup();
+}
+
+/**
+ * Load a savu tomo config file into the current plugin list, overwriting it.
+ * Uses the algorithm LoadSavuTomoConfig
+ */
+void TomographyIfaceViewQtGUI::loadSavuTomoConfig(
+    std::string &filePath, Mantid::API::ITableWorkspace_sptr &currentPlugins) {
+  // try to load tomo reconstruction parametereization file
+  auto alg = Algorithm::fromString("LoadSavuTomoConfig");
+  alg->initialize();
+  alg->setPropertyValue("Filename", filePath);
+  alg->setPropertyValue("OutputWorkspace", createUniqueNameHidden());
+  try {
+    alg->execute();
+  } catch (std::runtime_error &e) {
+    throw std::runtime_error(
+        std::string("Error when trying to load tomographic reconstruction "
+                    "parameter file: ") +
+        e.what());
+  }
+
+  // new processing plugins list
+  try {
+    currentPlugins = alg->getProperty("OutputWorkspace");
+  } catch (std::exception &e) {
+    userError("Could not load config file", "Failed to load the file "
+                                            "with the following error: " +
+                                                std::string(e.what()));
+  }
+}
+
+// Build a unique (and hidden) name for the table ws
+std::string TomographyIfaceViewQtGUI::createUniqueNameHidden() {
+  std::string name;
+  do {
+    // with __ prefix => hidden
+    name = "__TomoConfigTableWS_Seq_" +
+           boost::lexical_cast<std::string>(g_nameSeqNo++);
+  } while (AnalysisDataService::Instance().doesExist(name));
+
+  return name;
+}
+
+/// needs to at least update the 'tool' combo box
+void TomographyIfaceViewQtGUI::compResourceIndexChanged(int /* i */) {
+  QComboBox *rt = m_uiTabRun.comboBox_run_compute_resource;
+  if (!rt)
+    return;
+
+  // TODO validateCompResource(rt->currentText().toStdString());
+  m_currentComputeRes = rt->currentText().toStdString();
+  m_presenter->notify(ITomographyIfacePresenter::CompResourceChanged);
+}
+
+void TomographyIfaceViewQtGUI::runToolIndexChanged(int /* i */) {
+  QComboBox *rt = m_uiTabRun.comboBox_run_tool;
+  if (!rt)
+    return;
+
+  m_currentReconTool = rt->currentText().toStdString();
+  m_presenter->notify(ITomographyIfacePresenter::ToolChanged);
+}
+
+void TomographyIfaceViewQtGUI::enableConfigTool(bool on) {
+  m_uiTabRun.pushButton_run_tool_setup->setEnabled(on);
+}
+
+void TomographyIfaceViewQtGUI::enableRunReconstruct(bool on) {
+  m_uiTabRun.pushButton_reconstruct->setEnabled(on);
+}
+
+/**
+ * Update or toggle on/off the log in/out control widgets (like
+ * enabling/disabling push buttons, updating a display that tells the
+ * user if we're logged in, etc.).
+ *
+ * @param loggedIn Status (true when logged in)
+ */
+void TomographyIfaceViewQtGUI::updateLoginControls(bool loggedIn) {
+  m_uiTabSetup.pushButton_SCARF_login->setEnabled(!loggedIn);
+  m_uiTabSetup.pushButton_SCARF_logout->setEnabled(loggedIn);
+
+  enableLoggedActions(loggedIn);
+  updateCompResourceStatus(loggedIn);
+}
+
+/**
+ * Slot for when the 'login' or similar button is clicked (released)
+ */
+void TomographyIfaceViewQtGUI::SCARFLoginClicked() {
+  m_presenter->notify(ITomographyIfacePresenter::LogInRequested);
+}
+
+/**
+ * Slot for when the 'logout' or similar button is clicked (released)
+ */
+void TomographyIfaceViewQtGUI::SCARFLogoutClicked() {
+  m_presenter->notify(ITomographyIfacePresenter::LogOutRequested);
+}
+
+/**
+ * Slot for when the user requests to open the tool specific setup dialog.
+ */
+void TomographyIfaceViewQtGUI::toolSetupClicked() {
+  QComboBox *rt = m_uiTabRun.comboBox_run_tool;
+  if (!rt)
+    return;
+
+  m_presenter->notify(ITomographyIfacePresenter::SetupReconTool);
+}
+
+/**
+ * Displays and gets the results of a tool specific configuration dialog.
+ *
+ * @param name Name of the (tomographic reconstruction) tool
+ */
+void TomographyIfaceViewQtGUI::showToolConfig(const std::string &name) {
+  if (g_TomoPyTool == name) {
+    TomoToolConfigTomoPy tomopy;
+    m_uiTomoPy.setupUi(&tomopy);
+    int res = tomopy.exec();
+    if (QDialog::Accepted == res) {
+      // TODO: move this
+      int mi = m_uiTomoPy.comboBox_method->currentIndex();
+      QString run = m_uiTomoPy.lineEdit_runnable->text();
+      if (1 == mi) {
+        // hard-coded for now, this is a different script on SCARF that should
+        // be
+        // integrated with the FBP script
+        run = "/work/imat/runs-scripts/scripts/tomopy/imat_recon_SIRT.py";
+      }
+      double minAngle = m_uiTomoPy.doubleSpinBox_angle_min->value();
+      double maxAngle = m_uiTomoPy.doubleSpinBox_angle_max->value();
+      double cor = m_uiTomoPy.doubleSpinBox_center_rot->value();
+
+      TomoPathsConfig paths = currentPathsConfig();
+      m_toolsSettings.tomoPy = ToolConfigTomoPy(
+          run.toStdString(), g_defOutPath, paths.pathDark(),
+          paths.pathOpenBeam(), paths.pathSamples(), cor, minAngle, maxAngle);
+    }
+  } else if (g_AstraTool == name) {
+    TomoToolConfigAstra astra;
+    m_uiAstra.setupUi(&astra);
+    int res = astra.exec();
+    if (QDialog::Accepted == res) {
+      // TODO: move this
+      int mi = m_uiAstra.comboBox_method->currentIndex();
+      QString run = m_uiAstra.lineEdit_runnable->text();
+      if (1 == mi) {
+        // hard-coded for now, this is a different script on SCARF
+        run = "/work/imat/runs-scripts/scripts/astra/astra-3d-SIRT3D.py";
+      }
+      double cor = m_uiAstra.doubleSpinBox_center_rot->value();
+      double minAngle = m_uiAstra.doubleSpinBox_angle_min->value();
+      double maxAngle = m_uiAstra.doubleSpinBox_angle_max->value();
+
+      TomoPathsConfig paths = currentPathsConfig();
+      m_toolsSettings.astra = ToolConfigAstraToolbox(
+          run.toStdString(), cor, minAngle, maxAngle, g_defOutPath,
+          paths.pathDark(), paths.pathOpenBeam(), paths.pathSamples());
+    }
+  } else if (g_SavuTool == name) {
+    // TODO: savu not ready. This is a temporary kludge, it just shows
+    // the setup dialog so we can chat about it.
+    TomoToolConfigSavu savu;
+    m_uiSavu.setupUi(&savu);
+    doSetupSavu();
+    savu.setWindowModality(Qt::ApplicationModal);
+    savu.show();
+    QEventLoop el;
+    connect(this, SIGNAL(destroyed()), &el, SLOT(quit()));
+    el.exec();
+  } else if (g_customCmdTool == name) {
+    TomoToolConfigCustom cmd;
+    m_uiCustom.setupUi(&cmd);
+    int res = cmd.exec();
+    if (QDialog::Accepted == res) {
+      // TODO: move this
+      QString run = m_uiCustom.lineEdit_runnable->text();
+      QString opts = m_uiCustom.textEdit_cl_opts->toPlainText();
+
+      m_toolsSettings.custom =
+          ToolConfigCustom(run.toStdString(), opts.toStdString());
+    }
+  }
+  // TODO: 'CCPi CGLS' tool maybe in the future. Tool not ready.
+}
+
+/**
+ * Slot - when the user clicks the 'reconstruct data' or similar button.
+ */
+void TomographyIfaceViewQtGUI::reconstructClicked() {
+  m_presenter->notify(ITomographyIfacePresenter::RunReconstruct);
+}
+
+/**
+ * Slot - when the user clicks the 'visualize job results' or similar button.
+ */
+void TomographyIfaceViewQtGUI::runVisualizeClicked() {
+  QTableWidget *tbl = m_uiTabRun.tableWidget_run_jobs;
+  const int idCol = 2;
+  QTableWidgetItem *hdr = tbl->horizontalHeaderItem(idCol);
+  if ("ID" != hdr->text())
+    throw std::runtime_error("Expected to get the Id of jobs from the "
+                             "second column of the table of jobs, but I "
+                             "found this at that column: " +
+                             hdr->text().toStdString());
+
+  QModelIndexList idSel = tbl->selectionModel()->selectedRows();
+  if (idSel.count() <= 0)
+    return;
+
+  const std::string id = tbl->item(idSel[0].row(), idCol)->text().toStdString();
+  if (idSel.count() > 1) {
+    m_processingJobsIDs.clear();
+    m_processingJobsIDs.push_back(id);
+    m_presenter->notify(ITomographyIfacePresenter::VisualizeJobFromTable);
+  }
+}
+
+/**
+ * Slot - when the user clicks the 'cancel job' or similar button.
+ */
+void TomographyIfaceViewQtGUI::jobCancelClicked() {
+  m_processingJobsIDs.clear();
+  QTableWidget *tbl = m_uiTabRun.tableWidget_run_jobs;
+  const int idCol = 2;
+  QTableWidgetItem *hdr = tbl->horizontalHeaderItem(idCol);
+  if ("ID" != hdr->text())
+    throw std::runtime_error("Expected to get the Id of jobs from the "
+                             "second column of the table of jobs, but I "
+                             "found this at that column: " +
+                             hdr->text().toStdString());
+
+  QModelIndexList idSel = tbl->selectionModel()->selectedRows();
+  for (int i = 0; i < idSel.count(); ++i) {
+    const std::string id =
+        tbl->item(idSel[i].row(), idCol)->text().toStdString();
+    m_processingJobsIDs.push_back(id);
+  }
+
+  m_presenter->notify(ITomographyIfacePresenter::CancelJobFromTable);
+}
+
+/**
+ * Slot - when the user clicks the 'refresh job list/table' or similar button.
+ */
+void TomographyIfaceViewQtGUI::jobTableRefreshClicked() {
+  m_presenter->notify(ITomographyIfacePresenter::RefreshJobs);
+}
+
+/**
+ * Slot - user clicks the 'open/browse image' or similar button.
+ */
+void TomographyIfaceViewQtGUI::browseImageClicked() {
+  // get path
+  QString fitsStr = QString("Supported formats: FITS, TIFF and PNG "
+                            "(*.fits *.fit *.tiff *.tif *.png);;"
+                            "FITS, Flexible Image Transport System images "
+                            "(*.fits *.fit);;"
+                            "TIFF, Tagged Image File Format "
+                            "(*.tif *.tiff);;"
+                            "PNG, Portable Network Graphics "
+                            "(*.png);;"
+                            "Other extensions/all files (*.*)");
+  // Note that this could be done using UserSubWindow::openFileDialog(),
+  // but that method doesn't give much control over the text used for the
+  // allowed extensions.
+  QString prevPath =
+      MantidQt::API::AlgorithmInputHistory::Instance().getPreviousDirectory();
+  QString path(QFileDialog::getOpenFileName(this, tr("Open image file"),
+                                            prevPath, fitsStr));
+  if (!path.isEmpty()) {
+    MantidQt::API::AlgorithmInputHistory::Instance().setPreviousDirectory(
+        QFileInfo(path).absoluteDir().path());
+  } else {
+    return;
+  }
+
+  m_imgPath = path.toStdString();
+  m_presenter->notify(ITomographyIfacePresenter::ViewImg);
+}
+
+/**
+ * Update the job status and general info table/tree from the info
+ * stored in this class' data members, which ideally should have
+ * information from a recent query to the server.
+ */
+void TomographyIfaceViewQtGUI::updateJobsInfoDisplay(
+    const std::vector<Mantid::API::IRemoteJobManager::RemoteJobInfo> &status) {
+
+  QTableWidget *t = m_uiTabRun.tableWidget_run_jobs;
+  bool sort = t->isSortingEnabled();
+  t->setRowCount(static_cast<int>(status.size()));
+
+  for (size_t i = 0; i < status.size(); ++i) {
+    int ii = static_cast<int>(i);
+    t->setItem(ii, 0,
+               new QTableWidgetItem(QString::fromStdString(g_SCARFName)));
+    t->setItem(ii, 1,
+               new QTableWidgetItem(QString::fromStdString(status[i].name)));
+    t->setItem(ii, 2,
+               new QTableWidgetItem(QString::fromStdString(status[i].id)));
+    t->setItem(ii, 3,
+               new QTableWidgetItem(QString::fromStdString(status[i].status)));
+    t->setItem(ii, 4,
+               new QTableWidgetItem(QString::fromStdString(status[i].cmdLine)));
+  }
+
+  t->setSortingEnabled(sort);
+}
+
+std::string TomographyIfaceViewQtGUI::getUsername() const {
+  if (g_SCARFName ==
+      m_uiTabRun.comboBox_run_compute_resource->currentText().toStdString())
+    return m_uiTabSetup.lineEdit_SCARF_username->text().toStdString();
+  else
+    return "invalid";
+}
+
+/**
+ * Retrieve the username being used for the selected compute resource.
+ *
+ * @return Username ready to be used in remote queries
+ */
+std::string TomographyIfaceViewQtGUI::getPassword() const {
+  if (g_SCARFName ==
+      m_uiTabRun.comboBox_run_compute_resource->currentText().toStdString())
+    return m_uiTabSetup.lineEdit_SCARF_password->text().toStdString();
+  else
+    return "none";
+}
+
+void TomographyIfaceViewQtGUI::fitsPathBrowseClicked() {
+  std::string str;
+  processPathBrowseClick(m_uiTabSetup.lineEdit_path_FITS, str);
+  m_pathsConfig.updatePathSamples(str);
+  m_presenter->notify(ITomographyIfacePresenter::TomoPathsChanged);
+}
+
+void TomographyIfaceViewQtGUI::flatPathBrowseClicked() {
+  std::string str;
+  processPathBrowseClick(m_uiTabSetup.lineEdit_path_flat, str);
+  m_pathsConfig.updatePathOpenBeam(str);
+  m_presenter->notify(ITomographyIfacePresenter::TomoPathsChanged);
+}
+
+void TomographyIfaceViewQtGUI::darkPathBrowseClicked() {
+  std::string str;
+  processPathBrowseClick(m_uiTabSetup.lineEdit_path_dark, str);
+  m_pathsConfig.updatePathDark(str);
+  m_presenter->notify(ITomographyIfacePresenter::TomoPathsChanged);
+}
+
+/**
+ * Get path from user and update a line edit and a variable.
+ *
+ * @param le a line edit where the path is shown.
+ * @param data variable where the path is stored (in addition to the line
+ * edit object).
+ */
+void TomographyIfaceViewQtGUI::processPathBrowseClick(QLineEdit *le,
+                                                      std::string &data) {
+  QString algPrev =
+      MantidQt::API::AlgorithmInputHistory::Instance().getPreviousDirectory();
+  QString prev;
+  if (le->text().isEmpty()) {
+    prev = algPrev;
+  } else {
+    prev = le->text();
+  }
+
+  QString path(QFileDialog::getExistingDirectory(
+      this, tr("Open directory/folder"), prev));
+
+  if (!path.isEmpty()) {
+    std::string pp = path.toStdString();
+    // to UNIX, assuming SCARF or similar
+    boost::replace_all(pp, "\\", "/");
+    if (pp.length() >= 2 && ':' == pp[1]) {
+      if (2 == pp.length())
+        pp = ""; // don't accept '/'
+      else
+        pp = pp.substr(2);
+    }
+
+    le->setText(QString::fromStdString(pp));
+    data = pp;
+  }
+}
+
+void TomographyIfaceViewQtGUI::showImage(const std::string &path) {
+  QString qpath = QString::fromStdString(path);
+  QImage rawImg(qpath);
+  QPainter painter;
+  QPixmap pix(rawImg.width(), rawImg.height());
+  painter.begin(&pix);
+  painter.drawImage(0, 0, rawImg);
+  painter.end();
+  m_uiTabRun.label_image->setPixmap(pix);
+  m_uiTabRun.label_image->show();
+
+  m_uiTabRun.label_image_name->setText(qpath);
+}
+
+void TomographyIfaceViewQtGUI::showImage(const MatrixWorkspace_sptr &ws) {
+  // This draw an image on screen using Qt's QPixmap and QImage.
+  // From logs we expect a name "run_title", width "Axis1" and height "Axis2"
+  const size_t MAXDIM = 2048 * 16;
+  size_t width;
+  try {
+    width = boost::lexical_cast<size_t>(ws->run().getLogData("Axis1")->value());
+    // TODO: add a settings option for this (like max mem allocation for
+    // images)?
+    if (width >= MAXDIM)
+      width = MAXDIM;
+  } catch (std::exception &e) {
+    userError("Cannot load image", "There was a problem while trying to "
+                                   "find the width of the image: " +
+                                       std::string(e.what()));
+    return;
+  }
+
+  size_t height;
+  try {
+    height =
+        boost::lexical_cast<size_t>(ws->run().getLogData("Axis2")->value());
+    if (height >= MAXDIM)
+      height = MAXDIM;
+  } catch (std::exception &e) {
+    userError("Cannot load image", "There was a problem while trying to "
+                                   "find the height of the image: " +
+                                       std::string(e.what()));
+    return;
+  }
+
+  std::string name;
+  try {
+    name = ws->run().getLogData("run_title")->value();
+    m_logMsgs.push_back(" Visualizing image: " + name);
+    m_presenter->notify(ITomographyIfacePresenter::LogMsg);
+    m_logMsgs.clear();
+  } catch (std::exception &e) {
+    userWarning("Cannot load image information",
+                "There was a problem while "
+                " trying to find the name of the image: " +
+                    std::string(e.what()));
+  }
+
+  // images are loaded as 1 histogram == 1 pixel (1 bin per histogram):
+  if (height != ws->getNumberHistograms() || width != ws->blocksize()) {
+    userError("Image dimensions do not match in the input image workspace",
+              "Could not load the expected "
+              "number of rows and columns.");
+    return;
+  }
+  // find min and max to scale pixel values
+  double min = std::numeric_limits<double>::max(),
+         max = std::numeric_limits<double>::min();
+  for (size_t i = 0; i < ws->getNumberHistograms(); ++i) {
+    for (size_t j = 0; j < ws->blocksize(); ++j) {
+      const double &v = ws->readY(i)[j];
+      if (v < min)
+        min = v;
+      if (v > max)
+        max = v;
+    }
+  }
+  if (min >= max) {
+    userWarning("Empty image!",
+                "The image could be loaded but it contains "
+                "effectively no information, all pixels have the same value.");
+    // black picture
+    QPixmap pix(static_cast<int>(width), static_cast<int>(height));
+    pix.fill(QColor(0, 0, 0));
+    m_uiTabRun.label_image->setPixmap(pix);
+    m_uiTabRun.label_image->show();
+    return;
+  }
+
+  // load / transfer image into a QImage
+  QImage rawImg(QSize(static_cast<int>(width), static_cast<int>(height)),
+                QImage::Format_RGB32);
+  const double max_min = max - min;
+  const double scaleFactor = 255.0/max_min;
+  for (size_t yi = 0; yi < width; ++yi) {
+    for (size_t xi = 0; xi < width; ++xi) {
+      const double &v = ws->readY(yi)[xi];
+      // color the range min-max in gray scale. To apply different color
+      // maps you'd need to use rawImg.setColorTable() or similar.
+      const int scaled = static_cast<int>(scaleFactor * (v - min));
+      QRgb vRgb = qRgb(scaled, scaled, scaled);
+      rawImg.setPixel(static_cast<int>(xi), static_cast<int>(yi), vRgb);
+    }
+  }
+
+  // paint and show image
+  QPainter painter;
+  QPixmap pix(static_cast<int>(width), static_cast<int>(height));
+  painter.begin(&pix);
+  painter.drawImage(0, 0, rawImg);
+  painter.end();
+  m_uiTabRun.label_image->setPixmap(pix);
+  m_uiTabRun.label_image->show();
+
+  m_uiTabRun.label_image_name->setText(QString::fromStdString(name));
+}
+
+/**
+* Show a warning message to the user (pop up)
+*
+* @param err Basic error title
+* @param description More detailed explanation, hints, additional
+* information, etc.
+*/
+void TomographyIfaceViewQtGUI::userWarning(const std::string &err,
+                                           const std::string &description) {
+  QMessageBox::warning(this, QString::fromStdString(err),
+                       QString::fromStdString(description), QMessageBox::Ok,
+                       QMessageBox::Ok);
+}
+
+/**
+ * Show an error (serious) message to the user (pop up)
+ *
+ * @param err Basic error title
+ * @param description More detailed explanation, hints, additional
+ * information, etc.
+ */
+void TomographyIfaceViewQtGUI::userError(const std::string &err,
+                                         const std::string &description) {
+  QMessageBox::critical(this, QString::fromStdString(err),
+                        QString::fromStdString(description), QMessageBox::Ok,
+                        QMessageBox::Ok);
+}
+
+void TomographyIfaceViewQtGUI::closeEvent(QCloseEvent *event) {
+  int answer = QMessageBox::AcceptRole;
+
+  bool ask = m_settings.onCloseAskForConfirmation;
+  if (ask) {
+    QMessageBox msgBox;
+    msgBox.setWindowTitle("Close the tomographic reconstruction interface");
+    // with something like this, we'd have layout issues:
+    // msgBox.setStandardButtons(QMessageBox::No | QMessageBox::Yes);
+    // msgBox.setDefaultButton(QMessageBox::Yes);
+    msgBox.setIconPixmap(QPixmap(":/win/unknown.png"));
+    QCheckBox confirmCheckBox("Always ask for confirmation", &msgBox);
+    confirmCheckBox.setCheckState(Qt::Checked);
+    msgBox.layout()->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding));
+    msgBox.layout()->addWidget(&confirmCheckBox);
+    QPushButton *bYes = msgBox.addButton("Yes", QMessageBox::YesRole);
+    bYes->setIcon(style()->standardIcon(QStyle::SP_DialogYesButton));
+    QPushButton *bNo = msgBox.addButton("No", QMessageBox::NoRole);
+    bNo->setIcon(style()->standardIcon(QStyle::SP_DialogNoButton));
+    msgBox.setDefaultButton(bNo);
+    msgBox.setText("You are about to close this interface");
+    msgBox.setInformativeText(
+        "If you close this interface you will need to log in again "
+        "and you might loose some of the current state. Jobs running on remote "
+        "compute resources will remain unaffected though. Are you sure?");
+
+    m_settings.onCloseAskForConfirmation = confirmCheckBox.isChecked();
+    answer = msgBox.exec();
+  }
+
+  if (answer == QMessageBox::AcceptRole) {
+    // TODO? cleanup();
+    m_presenter->notify(ITomographyIfacePresenter::ShutDown);
+    event->accept();
+  } else {
+    event->ignore();
+  }
+}
+
+void TomographyIfaceViewQtGUI::openHelpWin() {
+  MantidQt::API::HelpWindow::showCustomInterface(
+      NULL, QString("Tomographic_Reconstruction"));
+}
+
+} // namespace CustomInterfaces
+} // namespace MantidQt
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/ToolSettings.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/ToolConfig.cpp
similarity index 54%
rename from Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/ToolSettings.cpp
rename to Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/ToolConfig.cpp
index 43e36d203e22c3ff886c6232478305d5c7d6178c..08391894c2eca282554ed2106c4db5f3a7f05a86 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/TomoReconstruction/ToolSettings.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Tomography/ToolConfig.cpp
@@ -1,22 +1,25 @@
-#include "MantidQtCustomInterfaces/TomoReconstruction/ToolSettings.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigAstraToolbox.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigCustom.h"
+#include "MantidQtCustomInterfaces/Tomography/ToolConfigTomoPy.h"
+
 
 #include <boost/lexical_cast.hpp>
 
 namespace MantidQt {
 namespace CustomInterfaces {
 
-ToolSettingsTomoPy::ToolSettingsTomoPy(const std::string &runnable,
-                                       const std::string &pathOut,
-                                       const std::string &pathDark,
-                                       const std::string &pathOpen,
-                                       const std::string &pathSample,
-                                       double centerRot, double angleMin,
-                                       double angleMax)
-    : ToolSettings(runnable), m_pathOut(pathOut), m_pathDark(pathDark),
+ToolConfigTomoPy::ToolConfigTomoPy(const std::string &runnable,
+                                   const std::string &pathOut,
+                                   const std::string &pathDark,
+                                   const std::string &pathOpen,
+                                   const std::string &pathSample,
+                                   double centerRot, double angleMin,
+                                   double angleMax)
+    : TomoRecToolConfig(runnable), m_pathOut(pathOut), m_pathDark(pathDark),
       m_pathOpen(pathOpen), m_pathSample(pathSample), m_centerRot(centerRot),
       m_angleMin(angleMin), m_angleMax(angleMax) {}
 
-std::string ToolSettingsTomoPy::makeCmdLineOptions() const {
+std::string ToolConfigTomoPy::makeCmdLineOptions() const {
   return "--input_dir " + m_pathSample + " --dark " + m_pathDark + " --white " +
          m_pathOpen + " --output " + m_pathOut + " --start_angle " +
          boost::lexical_cast<std::string>(m_angleMin) + " --end_angle " +
@@ -25,19 +28,19 @@ std::string ToolSettingsTomoPy::makeCmdLineOptions() const {
          boost::lexical_cast<std::string>(m_centerRot);
 }
 
-ToolSettingsAstraToolbox::ToolSettingsAstraToolbox(
+ToolConfigAstraToolbox::ToolConfigAstraToolbox(
     const std::string &runnable, double centerRot, double angleMin,
     double angleMax, const std::string &pathOut, const std::string &pathDark,
     const std::string &pathOpen, const std::string &pathSample)
-    : ToolSettings(runnable), m_centerRot(centerRot), m_angleMin(angleMin),
+    : TomoRecToolConfig(runnable), m_centerRot(centerRot), m_angleMin(angleMin),
       m_angleMax(angleMax), m_pathOut(pathOut), m_pathDark(pathDark),
       m_pathOpen(pathOpen), m_pathSample(pathSample) {}
 
-std::string ToolSettingsAstraToolbox::makeCmdLineOptions() const {
+std::string ToolConfigAstraToolbox::makeCmdLineOptions() const {
   return "--start_slice " + boost::lexical_cast<std::string>(m_angleMin) +
          " --end_slice " + boost::lexical_cast<std::string>(m_angleMax) +
          " --center_of_rotation " +
-         boost::lexical_cast<std::string>(m_centerRot) + "--input_dir " +
+         boost::lexical_cast<std::string>(m_centerRot) + " --input_dir " +
          m_pathSample + " --dark " + m_pathDark + " --white " + m_pathOpen +
          " --output " + m_pathOut;
 }
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCBaselineModellingModelTest.h b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCBaselineModellingModelTest.h
index fdffada96387f32aa510d35426a04e0c9ddde52f..94f797544ca1234e55a2918efd4d20ffca374790 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCBaselineModellingModelTest.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCBaselineModellingModelTest.h
@@ -9,6 +9,7 @@
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/FrameworkManager.h"
+#include "MantidAPI/ITableWorkspace.h"
 
 #include "MantidQtCustomInterfaces/Muon/ALCBaselineModellingModel.h"
 
@@ -66,10 +67,12 @@ public:
 
   void test_fit()
   {
+    std::vector<double> e = boost::assign::list_of(10.0)(1.0)(1.41)(10.0)(10.0)(1.73)(2.0)(2.5)(10.0);
     std::vector<double> y = boost::assign::list_of(100)(1)(2)(100)(100)(3)(4)(5)(100);
     std::vector<double> x = boost::assign::list_of(1)(2)(3)(4)(5)(6)(7)(8)(9);
 
     MatrixWorkspace_sptr data = WorkspaceFactory::Instance().create("Workspace2D", 1, y.size(), y.size());
+    data->dataE(0) = e;
     data->dataY(0) = y;
     data->dataX(0) = x;
 
@@ -90,8 +93,8 @@ public:
     if (fittedFunc)
     {
       TS_ASSERT_EQUALS(fittedFunc->name(), "FlatBackground");
-      TS_ASSERT_DELTA(fittedFunc->getParameter("A0"), 3, 1E-8);
-      TS_ASSERT_DELTA(fittedFunc->getError(0),0.447214,1E-6);
+      TS_ASSERT_DELTA(fittedFunc->getParameter("A0"), 2.13979, 1E-5);
+      TS_ASSERT_DELTA(fittedFunc->getError(0),0.66709,1E-5);
     }
 
     MatrixWorkspace_const_sptr corrected = m_model->correctedData();
@@ -102,10 +105,12 @@ public:
       TS_ASSERT_EQUALS(corrected->getNumberHistograms(), 1);
       TS_ASSERT_EQUALS(corrected->blocksize(), 9);
 
-      TS_ASSERT_DELTA(corrected->readY(0)[0], 97, 1E-8);
-      TS_ASSERT_DELTA(corrected->readY(0)[2], -1, 1E-8);
-      TS_ASSERT_DELTA(corrected->readY(0)[5], 0.0, 1E-8);
-      TS_ASSERT_DELTA(corrected->readY(0)[8], 97, 1E-8);
+      TS_ASSERT_DELTA(corrected->readY(0)[0], 97.86021, 1E-5);
+      TS_ASSERT_DELTA(corrected->readY(0)[2], -0.13979, 1E-5);
+      TS_ASSERT_DELTA(corrected->readY(0)[5], 0.86021, 1E-5);
+      TS_ASSERT_DELTA(corrected->readY(0)[8], 97.86021, 1E-5);
+
+      TS_ASSERT_EQUALS (corrected->readE(0), data->readE(0));
     }
 
     ITableWorkspace_sptr parameters = m_model->parameterTable();
@@ -119,10 +124,10 @@ public:
 
       // Check table entries
       TS_ASSERT_EQUALS(parameters->String(0,0), "A0");
-      TS_ASSERT_EQUALS(parameters->Double(0,1), 3);
-      TS_ASSERT_DELTA (parameters->Double(0,2), 0.447214,1E-6);
+      TS_ASSERT_DELTA (parameters->Double(0,1), 2.13978, 1E-5);
+      TS_ASSERT_DELTA (parameters->Double(0,2), 0.66709, 1E-5);
       TS_ASSERT_EQUALS(parameters->String(1,0), "Cost function value");
-      TS_ASSERT_DELTA (parameters->Double(1,1), 1.250000,1E-6);
+      TS_ASSERT_DELTA (parameters->Double(1,1), 0.46627, 1E-5);
       TS_ASSERT_EQUALS(parameters->Double(1,2), 0);
     }
 
@@ -144,6 +149,16 @@ public:
     TS_ASSERT_THROWS_NOTHING(m_model->exportModel());
   }
 
+  void test_noData()
+  {
+    // Set a null shared pointer
+    MatrixWorkspace_const_sptr data = MatrixWorkspace_const_sptr();
+    m_model->setData(data);
+
+    TS_ASSERT_THROWS_NOTHING(m_model->data());
+    TS_ASSERT_THROWS_NOTHING(m_model->correctedData());
+  }
+
 };
 
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCBaselineModellingPresenterTest.h b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCBaselineModellingPresenterTest.h
index 9dda8ed8f64a95e07797254eb4b5e45114efaad7..78e138774dc32a23c425de12acb9d05fb21d39f0 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCBaselineModellingPresenterTest.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCBaselineModellingPresenterTest.h
@@ -31,8 +31,8 @@ public:
   MOCK_CONST_METHOD0(function, QString());
   MOCK_CONST_METHOD1(sectionRow, SectionRow(int));
 
-  MOCK_METHOD1(setDataCurve, void(const QwtData&));
-  MOCK_METHOD1(setCorrectedCurve, void(const QwtData&));
+  MOCK_METHOD2(setDataCurve, void(const QwtData&, const std::vector<double>&));
+  MOCK_METHOD2(setCorrectedCurve, void(const QwtData&, const std::vector<double>&));
   MOCK_METHOD1(setBaselineCurve, void(const QwtData&));
   MOCK_METHOD1(setFunction, void(IFunction_const_sptr));
 
@@ -76,6 +76,7 @@ MATCHER_P3(FunctionParameter, param, value, delta, "")
 
 MATCHER_P3(QwtDataX, i, value, delta, "") { return fabs(arg.x(i) - value) < delta; }
 MATCHER_P3(QwtDataY, i, value, delta, "") { return fabs(arg.y(i) - value) < delta; }
+MATCHER_P3(VectorValue, i, value, delta, "") { return fabs(arg.at(i) - value) < delta; }
 
 class ALCBaselineModellingPresenterTest : public CxxTest::TestSuite
 {
@@ -150,7 +151,10 @@ public:
 
     EXPECT_CALL(*m_view, setDataCurve(AllOf(Property(&QwtData::size, 3),
                                             QwtDataX(0, 1, 1E-8), QwtDataX(2, 3, 1E-8),
-                                            QwtDataY(0, 2, 1E-8), QwtDataY(2, 4, 1E-8))));
+                                            QwtDataY(0, 2, 1E-8), QwtDataY(2, 4, 1E-8)),
+                                      AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0, 1, 1E-6),
+                                            VectorValue(2, 1, 1E-6))));
 
     m_model->changeData();
   }
@@ -161,7 +165,10 @@ public:
 
     EXPECT_CALL(*m_view, setCorrectedCurve(AllOf(Property(&QwtData::size, 3),
                                             QwtDataX(0, 1, 1E-8), QwtDataX(2, 3, 1E-8),
-                                            QwtDataY(0, 3, 1E-8), QwtDataY(2, 5, 1E-8))));
+                                            QwtDataY(0, 3, 1E-8), QwtDataY(2, 5, 1E-8)),
+                                           AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0, 1, 1E-6),
+                                            VectorValue(2, 1, 1E-6))));
 
     m_model->changeCorrectedData();
   }
@@ -170,7 +177,7 @@ public:
   {
     ON_CALL(*m_model, correctedData()).WillByDefault(Return(MatrixWorkspace_const_sptr()));
 
-    EXPECT_CALL(*m_view, setCorrectedCurve(Property(&QwtData::size, 0)));
+    EXPECT_CALL(*m_view, setCorrectedCurve(Property(&QwtData::size, 0),_));
 
     m_model->changeCorrectedData();
   }
@@ -214,6 +221,18 @@ public:
     m_view->requestAddSection();
   }
 
+  void test_addSection_toEmptyWS()
+  {
+    ON_CALL(*m_model, data()).WillByDefault(Return(MatrixWorkspace_const_sptr()));
+
+    EXPECT_CALL(*m_view, noOfSectionRows()).Times(0);
+    EXPECT_CALL(*m_view, setSectionRow(_,_)).Times(0);
+    EXPECT_CALL(*m_view, addSectionSelector(_,_)).Times(0);
+    EXPECT_CALL(*m_view, displayError(_)).Times(1);
+
+    m_view->requestAddSection();
+  }
+
   void test_removeSection()
   {
     ON_CALL(*m_view, noOfSectionRows()).WillByDefault(Return(3));
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCDataLoadingPresenterTest.h b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCDataLoadingPresenterTest.h
index 5a3719b79caff74783d6c2fb011412804962b998..7a240ba45fd79df592c317749a2ae37e09a501a1 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCDataLoadingPresenterTest.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCDataLoadingPresenterTest.h
@@ -45,7 +45,7 @@ public:
   MOCK_CONST_METHOD0(subtractIsChecked, bool());
 
   MOCK_METHOD0(initialize, void());
-  MOCK_METHOD1(setDataCurve, void(const QwtData&));
+  MOCK_METHOD2(setDataCurve, void(const QwtData&, const std::vector<double>&));
   MOCK_METHOD1(displayError, void(const std::string&));
   MOCK_METHOD1(setAvailableLogs, void(const std::vector<std::string>&));
   MOCK_METHOD1(setAvailablePeriods, void(const std::vector<std::string>&));
@@ -61,6 +61,7 @@ public:
 
 MATCHER_P3(QwtDataX, i, value, delta, "") { return fabs(arg.x(i) - value) < delta; }
 MATCHER_P3(QwtDataY, i, value, delta, "") { return fabs(arg.y(i) - value) < delta; }
+MATCHER_P3(VectorValue, i, value, delta, "") { return fabs(arg.at(i) - value) < delta; }
 
 class ALCDataLoadingPresenterTest : public CxxTest::TestSuite
 {
@@ -123,7 +124,11 @@ public:
                                             QwtDataX(2, 1370, 1E-8),
                                             QwtDataY(0, 0.150, 1E-3),
                                             QwtDataY(1, 0.143, 1E-3),
-                                            QwtDataY(2, 0.128, 1E-3))));
+                                            QwtDataY(2, 0.128, 1E-3)),
+                                      AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0,1.285E-3,1E-6),
+                                            VectorValue(1,1.284E-3,1E-6),
+                                            VectorValue(2,1.280E-3,1E-6))));
 
     EXPECT_CALL(*m_view, restoreCursor());
 
@@ -138,7 +143,11 @@ public:
     EXPECT_CALL(*m_view, setDataCurve(AllOf(Property(&QwtData::size,3),
                                             QwtDataY(0, 3.00349, 1E-3),
                                             QwtDataY(1, 2.3779, 1E-3),
-                                            QwtDataY(2, 2.47935, 1E-3))));
+                                            QwtDataY(2, 2.47935, 1E-3)),
+                                      AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0,0.539,1E-3),
+                                            VectorValue(1,0.535,1E-3),
+                                            VectorValue(2,0.541,1E-3))));
 
     m_view->requestLoading();
   }
@@ -151,18 +160,29 @@ public:
     EXPECT_CALL(*m_view, setDataCurve(AllOf(Property(&QwtData::size,3),
                                             QwtDataY(0, 0.137, 1E-3),
                                             QwtDataY(1, 0.141, 1E-3),
-                                            QwtDataY(2, 0.111, 1E-3))));
+                                            QwtDataY(2, 0.111, 1E-3)),
+                                      AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0,4.244E-3,1E-6),
+                                            VectorValue(1,4.243E-3,1E-6),
+                                            VectorValue(2,4.200E-3,1E-6))));
 
     m_view->requestLoading();
   }
 
-  void test_updateAvailableLogs()
+  void test_updateAvailableInfo()
   {
     EXPECT_CALL(*m_view, firstRun()).WillRepeatedly(Return("MUSR00015189.nxs"));
+    // Test logs
     EXPECT_CALL(*m_view, setAvailableLogs(AllOf(Property(&std::vector<std::string>::size, 37),
                                                 Contains("run_number"),
                                                 Contains("sample_magn_field"),
-                                                Contains("Field_Danfysik"))));
+                                                Contains("Field_Danfysik")))).Times(1);
+    // Test periods
+    EXPECT_CALL(*m_view, setAvailablePeriods(AllOf(Property(&std::vector<std::string>::size, 2),
+                                                Contains("1"),
+                                                Contains("2")))).Times(1);
+    // Test time limits
+    EXPECT_CALL(*m_view, setTimeLimits(Le(-0.54),Ge(31.44))).Times(1);
     m_view->selectFirstRun();
   }
 
@@ -184,7 +204,7 @@ public:
   {
     // Set last run to one of the different instrument - should cause error within algorithms exec
     ON_CALL(*m_view, lastRun()).WillByDefault(Return("EMU00006473.nxs"));
-    EXPECT_CALL(*m_view, setDataCurve(_)).Times(0);
+    EXPECT_CALL(*m_view, setDataCurve(_,_)).Times(0);
     EXPECT_CALL(*m_view, displayError(StrNe(""))).Times(1);
     m_view->requestLoading();
   }
@@ -192,7 +212,7 @@ public:
   void test_load_invalidRun()
   {
     ON_CALL(*m_view, firstRun()).WillByDefault(Return(""));
-    EXPECT_CALL(*m_view, setDataCurve(_)).Times(0);
+    EXPECT_CALL(*m_view, setDataCurve(_,_)).Times(0);
     EXPECT_CALL(*m_view, displayError(StrNe(""))).Times(1);
     m_view->requestLoading();
   }
@@ -200,7 +220,7 @@ public:
   void test_load_nonExistentFile()
   {
     ON_CALL(*m_view, lastRun()).WillByDefault(Return("non-existent-file"));
-    EXPECT_CALL(*m_view, setDataCurve(_)).Times(0);
+    EXPECT_CALL(*m_view, setDataCurve(_,_)).Times(0);
     EXPECT_CALL(*m_view, displayError(StrNe(""))).Times(1);
     m_view->requestLoading();
   }
@@ -216,7 +236,11 @@ public:
     EXPECT_CALL(*m_view, setDataCurve(AllOf(Property(&QwtData::size,3),
                                             QwtDataY(0, 0.150616, 1E-3),
                                             QwtDataY(1, 0.143444, 1E-3),
-                                            QwtDataY(2, 0.128856, 1E-3))));
+                                            QwtDataY(2, 0.128856, 1E-3)),
+                                      AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0,1.278E-3,1E-6),
+                                            VectorValue(1,1.278E-3,1E-6),
+                                            VectorValue(2,1.274E-3,1E-6))));
     m_view->requestLoading();
   }
 
@@ -241,10 +265,17 @@ public:
     EXPECT_CALL(*m_view, getForwardGrouping()).Times(1);
     EXPECT_CALL(*m_view, getBackwardGrouping()).Times(1);
     EXPECT_CALL(*m_view, restoreCursor()).Times(1);
-    EXPECT_CALL(*m_view, setDataCurve(AllOf(Property(&QwtData::size, 3), QwtDataX(0, 1350, 1E-8),
-                           QwtDataX(1, 1360, 1E-8), QwtDataX(2, 1370, 1E-8),
-                           QwtDataY(0, 0.150, 1E-3), QwtDataY(1, 0.143, 1E-3),
-                           QwtDataY(2, 0.128, 1E-3))));
+    EXPECT_CALL(*m_view, setDataCurve(AllOf(Property(&QwtData::size, 3),
+                                            QwtDataX(0, 1350, 1E-8),
+                                            QwtDataX(1, 1360, 1E-8),
+                                            QwtDataX(2, 1370, 1E-8),
+                                            QwtDataY(0, 0.150, 1E-3),
+                                            QwtDataY(1, 0.143, 1E-3),
+                                            QwtDataY(2, 0.128, 1E-3)),
+                                       AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0,1.285E-3,1E-6),
+                                            VectorValue(1,1.284E-3,1E-6),
+                                            VectorValue(2,1.280E-3,1E-6))));
 
     m_view->requestLoading();
   }
@@ -259,10 +290,17 @@ public:
     ON_CALL(*m_view, greenPeriod()).WillByDefault(Return("1"));
     EXPECT_CALL(*m_view, greenPeriod()).Times(1);
     // Check results
-    EXPECT_CALL(*m_view, setDataCurve(AllOf(Property(&QwtData::size, 3), QwtDataX(0, 1350, 1E-8),
-                           QwtDataX(1, 1360, 1E-8), QwtDataX(2, 1370, 1E-8),
-                           QwtDataY(0, 0.012884, 1E-6), QwtDataY(1, 0.022489, 1E-6),
-                           QwtDataY(2, 0.038717, 1E-6))));
+    EXPECT_CALL(*m_view, setDataCurve(AllOf(Property(&QwtData::size, 3),
+                                            QwtDataX(0, 1350, 1E-8),
+                                            QwtDataX(1, 1360, 1E-8),
+                                            QwtDataX(2, 1370, 1E-8),
+                                            QwtDataY(0, 0.012884, 1E-6),
+                                            QwtDataY(1, 0.022489, 1E-6),
+                                            QwtDataY(2, 0.038717, 1E-6)),
+                                       AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0,1.821E-3,1E-6),
+                                            VectorValue(1,1.821E-3,1E-6),
+                                            VectorValue(2,1.817E-3,1E-6))));
     m_view->requestLoading();
   }
 
@@ -276,7 +314,11 @@ public:
                                             QwtDataX(2, 1364.520, 1E-3),
                                             QwtDataY(0, 0.15004, 1E-5),
                                             QwtDataY(1, 0.14289, 1E-5),
-                                            QwtDataY(2, 0.12837, 1E-5))));
+                                            QwtDataY(2, 0.12837, 1E-5)),
+                                       AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0,1.285E-3,1E-6),
+                                            VectorValue(1,1.284E-3,1E-6),
+                                            VectorValue(2,1.280E-3,1E-6))));
     m_view->requestLoading();
   }
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCPeakFittingModelTest.h b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCPeakFittingModelTest.h
index 0ffc73fb4f8b36c4a3a07300c4a44c138e3d1075..40cfd07b19d0df0ebc3e398e5482dfdcd75d5cdd 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCPeakFittingModelTest.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCPeakFittingModelTest.h
@@ -9,6 +9,7 @@
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/FrameworkManager.h"
+#include "MantidAPI/ITableWorkspace.h"
 
 #include "MantidQtCustomInterfaces/Muon/ALCPeakFittingModel.h"
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCPeakFittingPresenterTest.h b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCPeakFittingPresenterTest.h
index d28fd640b27691fe2298d7021159d485e45c0c5a..6c54b1560c6ffa420b3d0f4c06aae7e4697e8a11 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/test/ALCPeakFittingPresenterTest.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/test/ALCPeakFittingPresenterTest.h
@@ -44,7 +44,7 @@ public:
   MOCK_CONST_METHOD0(peakPicker, IPeakFunction_const_sptr());
 
   MOCK_METHOD0(initialize, void());
-  MOCK_METHOD1(setDataCurve, void(const QwtData&));
+  MOCK_METHOD2(setDataCurve, void(const QwtData&, const std::vector<double>&));
   MOCK_METHOD1(setFittedCurve, void(const QwtData&));
   MOCK_METHOD1(setPeakPickerEnabled, void(bool));
   MOCK_METHOD1(setPeakPicker, void(const IPeakFunction_const_sptr&));
@@ -67,6 +67,7 @@ public:
 
 MATCHER_P3(QwtDataX, i, value, delta, "") { return fabs(arg.x(i) - value) < delta; }
 MATCHER_P3(QwtDataY, i, value, delta, "") { return fabs(arg.y(i) - value) < delta; }
+MATCHER_P3(VectorValue, i, value, delta, "") { return fabs(arg.at(i) - value) < delta; }
 
 // DoubleNear matcher was introduced in gmock 1.7 only
 MATCHER_P2(DoubleDelta, value, delta, "") { return fabs(arg - value) < delta; }
@@ -154,9 +155,17 @@ public:
 
     ON_CALL(*m_model, data()).WillByDefault(Return(ws));
 
-    // TODO: check better
-    EXPECT_CALL(*m_view, setDataCurve(_));
-
+    EXPECT_CALL(*m_view, setDataCurve(AllOf(Property(&QwtData::size, 3),
+                                            QwtDataX(0, 1, 1E-8),
+                                            QwtDataX(1, 1, 1E-8),
+                                            QwtDataX(2, 1, 1E-8),
+                                            QwtDataY(0, 2, 1E-8),
+                                            QwtDataY(1, 2, 1E-8),
+                                            QwtDataY(2, 2, 1E-8)),
+                                      AllOf(Property(&std::vector<double>::size,3),
+                                            VectorValue(0, 3, 1E-6),
+                                            VectorValue(1, 3, 1E-6),
+                                            VectorValue(2, 3, 1E-6))));
     m_model->changeData();
   }
 
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/test/TomographyIfacePresenterTest.h b/Code/Mantid/MantidQt/CustomInterfaces/test/TomographyIfacePresenterTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..672be636c363f1737e321f822ee6dd05aa9638aa
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/test/TomographyIfacePresenterTest.h
@@ -0,0 +1,385 @@
+#ifndef MANTID_CUSTOMINTERFACES_TOMOGRAPHYIFACEPRESENTERTEST_H
+#define MANTID_CUSTOMINTERFACES_TOMOGRAPHYIFACEPRESENTERTEST_H
+
+#include "MantidAPI/FrameworkManager.h"
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidQtCustomInterfaces/Tomography/TomographyIfacePresenter.h"
+
+#include <cxxtest/TestSuite.h>
+#include "TomographyViewMock.h"
+
+using namespace MantidQt::CustomInterfaces;
+using testing::TypedEq;
+using testing::Return;
+
+class TomographyIfacePresenterTest : 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 TomographyIfacePresenterTest *createSuite() {
+    return new TomographyIfacePresenterTest();
+  }
+
+  static void destroySuite(TomographyIfacePresenterTest *suite) {
+    delete suite;
+  }
+
+  TomographyIfacePresenterTest() {
+    Mantid::API::FrameworkManager::Instance(); // make sure framework is
+                                               // initialized
+  }
+
+  void setUp() {
+    m_view.reset(new testing::NiceMock<MockTomographyIfaceView>());
+    m_presenter.reset(
+        new MantidQt::CustomInterfaces::TomographyIfacePresenter(m_view.get()));
+  }
+
+  void tearDown() {
+    TS_ASSERT(testing::Mock::VerifyAndClearExpectations(m_view.get()));
+  }
+
+  void test_setupGood() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    // needs the basic paths at a very minimum
+    EXPECT_CALL(mockView, currentPathsConfig()).Times(1).WillOnce(
+        Return(TomoPathsConfig()));
+
+    EXPECT_CALL(mockView, enableLoggedActions(false)).Times(1);
+    EXPECT_CALL(mockView, setComputeResources(testing::_, testing::_)).Times(1);
+    EXPECT_CALL(mockView, setReconstructionTools(testing::_, testing::_))
+        .Times(1);
+
+    // No errors/warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::SetupResourcesAndTools);
+  }
+
+  void test_setupWithWrongTool() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    EXPECT_CALL(mockView, enableLoggedActions(false)).Times(1);
+    EXPECT_CALL(mockView, setComputeResources(testing::_, testing::_)).Times(1);
+    EXPECT_CALL(mockView, setReconstructionTools(testing::_, testing::_))
+        .Times(1);
+
+    // but this should be called once at setup time
+    EXPECT_CALL(mockView, currentPathsConfig()).Times(1).WillOnce(
+        Return(TomoPathsConfig()));
+
+    // One error, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::SetupResourcesAndTools);
+
+    // needs one tool at a very minimum
+    EXPECT_CALL(mockView, currentReconTool()).Times(1).WillOnce(Return(g_ccpi));
+    // and basic tools settings
+    EXPECT_CALL(mockView, reconToolsSettings()).Times(0);
+
+    // tool config not available
+    EXPECT_CALL(mockView, showToolConfig(testing::_)).Times(0);
+    // this also implies that a second call to reconToolsSettings doesn't occur
+
+    pres.notify(ITomographyIfacePresenter::SetupReconTool);
+  }
+
+  // does not really fail, but it cannot do any of the expected updates
+  void test_setupReconToolUnsupportedTool() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    EXPECT_CALL(mockView, currentReconTool()).Times(1).WillRepeatedly(
+        Return(g_ccpi));
+    EXPECT_CALL(mockView, reconToolsSettings()).Times(0);
+
+    // wrong tool => doesn't have a config dialog
+    EXPECT_CALL(mockView, showToolConfig(testing::_)).Times(0);
+
+    // No errors/warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::SetupReconTool);
+  }
+
+  void test_setupReconToolGood() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    // needs the basic paths at a very minimum
+    EXPECT_CALL(mockView, currentReconTool()).Times(2).WillRepeatedly(
+        Return("TomoPy"));
+    // and basic tools settings
+    TomoReconToolsUserSettings toolsSettings;
+    EXPECT_CALL(mockView, reconToolsSettings()).Times(1).WillOnce(
+        Return(toolsSettings));
+
+    EXPECT_CALL(mockView, showToolConfig(testing::_)).Times(1);
+
+    // No errors/warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::SetupReconTool);
+  }
+
+  void test_showImg_fails() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    // No errors, but one warning
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(1);
+
+    pres.notify(ITomographyIfacePresenter::ViewImg);
+  }
+
+  void test_showImg_good() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    const std::string path = "FITS_small_02.fits";
+    // needs image file name - re-uses a FITS from the unit tests
+    ON_CALL(mockView, showImagePath()).WillByDefault(Return(path));
+    EXPECT_CALL(mockView, showImagePath()).Times(1);
+
+    EXPECT_CALL(
+        mockView,
+        showImage(testing::Matcher<const Mantid::API::MatrixWorkspace_sptr &>(
+            testing::_))).Times(1);
+    EXPECT_CALL(mockView,
+                showImage(testing::Matcher<const std::string &>(testing::_)))
+        .Times(0);
+
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::ViewImg);
+  }
+
+  void test_valuesAtInit() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    // needs basic paths config - using defaults
+    EXPECT_CALL(mockView, currentPathsConfig()).Times(1).WillOnce(
+        Return(TomoPathsConfig()));
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::SetupResourcesAndTools);
+  }
+
+  void test_logOut_notIn() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    // would need compute resource and username if logged in
+    EXPECT_CALL(mockView, getUsername()).Times(0);
+    EXPECT_CALL(mockView, currentComputeResource()).Times(0);
+    EXPECT_CALL(mockView, updateLoginControls(testing::_)).Times(0);
+
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::LogOutRequested);
+  }
+
+  void test_changeTool() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    std::vector<std::string> tools;
+    tools.push_back("Astra Toolbox");
+    tools.push_back("TomoPy");
+    tools.push_back(g_ccpi);
+    tools.push_back("Savu");
+
+    for (size_t i = 0; i < tools.size(); i++) {
+      EXPECT_CALL(mockView, currentReconTool()).Times(1).WillOnce(
+          Return(tools[i]));
+      EXPECT_CALL(mockView, currentComputeResource()).Times(0);
+      EXPECT_CALL(mockView, enableRunReconstruct(testing::_)).Times(1);
+      EXPECT_CALL(mockView, enableConfigTool(testing::_)).Times(1);
+
+      // No errors, no warnings
+      EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+      EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+      pres.notify(ITomographyIfacePresenter::ToolChanged);
+    }
+  }
+
+  void test_changeResource() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    EXPECT_CALL(mockView, currentComputeResource()).Times(1).WillOnce(
+        Return(g_scarfName));
+    EXPECT_CALL(mockView, currentReconTool()).Times(0);
+
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::CompResourceChanged);
+  }
+
+  void test_changePaths() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    // needs some basic paths config - using defaults from constructor
+    EXPECT_CALL(mockView, currentPathsConfig()).Times(1).WillOnce(
+        Return(TomoPathsConfig()));
+
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::TomoPathsChanged);
+  }
+
+  void test_loginFails() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    // 1 Error, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(1);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::LogInRequested);
+  }
+
+  void test_runFails() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    // needs basic paths config - using defaults
+    EXPECT_CALL(mockView, currentPathsConfig()).Times(1).WillOnce(
+        Return(TomoPathsConfig()));
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+    pres.notify(ITomographyIfacePresenter::SetupResourcesAndTools);
+  }
+
+  void test_log() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    std::vector<std::string> msgs;
+    msgs.push_back("foo log");
+    msgs.push_back("baz log");
+
+    EXPECT_CALL(mockView, logMsgs()).Times(1).WillOnce(Return(msgs));
+
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::LogMsg);
+  }
+
+  void test_refreshJobsNotIn() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    EXPECT_CALL(mockView, currentComputeResource()).Times(0);
+    EXPECT_CALL(mockView, updateJobsInfoDisplay(testing::_)).Times(0);
+
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::RefreshJobs);
+  }
+
+  void test_cancelJobNotIn() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    EXPECT_CALL(mockView, currentComputeResource()).Times(0);
+    EXPECT_CALL(mockView, updateJobsInfoDisplay(testing::_)).Times(0);
+
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::RefreshJobs);
+  }
+
+  // An attempt at testing a sequence of steps from the user.
+  // TODO: more interesting sessions should follow
+  void test_sillySession() {
+    // the user does a few silly things...
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    EXPECT_CALL(mockView, currentPathsConfig()).Times(1).WillOnce(
+        Return(TomoPathsConfig()));
+
+    pres.notify(ITomographyIfacePresenter::TomoPathsChanged);
+
+    EXPECT_CALL(mockView, currentComputeResource()).Times(1).WillOnce(
+        Return(g_scarfName));
+
+    pres.notify(ITomographyIfacePresenter::CompResourceChanged);
+
+    EXPECT_CALL(mockView, currentReconTool()).Times(2).WillRepeatedly(
+        Return("TomoPy"));
+
+    TomoReconToolsUserSettings toolsSettings;
+    EXPECT_CALL(mockView, reconToolsSettings()).Times(1).WillOnce(
+        Return(toolsSettings));
+
+    pres.notify(ITomographyIfacePresenter::SetupReconTool);
+
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::RunReconstruct);
+  }
+
+  void test_shutDown() {
+    testing::NiceMock<MockTomographyIfaceView> mockView;
+    MantidQt::CustomInterfaces::TomographyIfacePresenter pres(&mockView);
+
+    EXPECT_CALL(mockView, saveSettings()).Times(1);
+    // No errors, no warnings
+    EXPECT_CALL(mockView, userError(testing::_, testing::_)).Times(0);
+    EXPECT_CALL(mockView, userWarning(testing::_, testing::_)).Times(0);
+
+    pres.notify(ITomographyIfacePresenter::ShutDown);
+  }
+
+private:
+  // boost::shared_ptr
+  boost::scoped_ptr<testing::NiceMock<MockTomographyIfaceView>> m_view;
+  // MockTomographyIfaceModel *m_model;
+  boost::scoped_ptr<MantidQt::CustomInterfaces::TomographyIfacePresenter>
+      m_presenter;
+  // To have one FITS, etc.
+  Mantid::API::MatrixWorkspace_sptr m_ws;
+  static std::string g_scarfName;
+  static std::string g_ccpi;
+};
+
+std::string TomographyIfacePresenterTest::g_scarfName = "SCARF@STFC";
+std::string TomographyIfacePresenterTest::g_ccpi = "CCPi CGLS";
+
+#endif // MANTID_CUSTOMINTERFACES_TOMOGRAPHYIFACEPRESENTERTEST_H
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/test/TomographyViewMock.h b/Code/Mantid/MantidQt/CustomInterfaces/test/TomographyViewMock.h
new file mode 100644
index 0000000000000000000000000000000000000000..6a928cd6a6f74fd16fdc9ee0dcb86da1da07d90f
--- /dev/null
+++ b/Code/Mantid/MantidQt/CustomInterfaces/test/TomographyViewMock.h
@@ -0,0 +1,93 @@
+#ifndef MANTID_CUSTOMINTERFACES_TOMOGRAPHYIFACEVIEWMOCK_H
+#define MANTID_CUSTOMINTERFACES_TOMOGRAPHYIFACEVIEWMOCK_H
+
+#include "MantidQtCustomInterfaces/Tomography/ITomographyIfaceView.h"
+
+#include <gmock/gmock.h>
+
+// This is a simple mock for the tomo interface view when using SCARF.
+class MockTomographyIfaceView
+    : public MantidQt::CustomInterfaces::ITomographyIfaceView {
+public:
+  // void userWarning(const std::string &warn, const std::string &description)
+  // {}
+  MOCK_METHOD2(userWarning,
+               void(const std::string &warn, const std::string &description));
+
+  // void userError(const std::string &err, const std::string &description) {}
+  MOCK_METHOD2(userError,
+               void(const std::string &err, const std::string &description));
+
+  // std::vector<std::string> logMsgs() const {}
+  MOCK_CONST_METHOD0(logMsgs, std::vector<std::string>());
+
+  // void setComputeResources(const std::vector<std::string> &resources,
+  //                         const std::vector<bool> &enabled) {}
+  MOCK_METHOD2(setComputeResources,
+               void(const std::vector<std::string> &resources,
+                    const std::vector<bool> &enabled));
+
+  // void setReconstructionTools(const std::vector<std::string> &tools,
+  //                            const std::vector<bool> &enabled) {}
+  MOCK_METHOD2(setReconstructionTools,
+               void(const std::vector<std::string> &tools,
+                    const std::vector<bool> &enabled));
+
+  // void saveSettings() const {}
+  MOCK_CONST_METHOD0(saveSettings, void());
+
+  // std::string getPassword() const {}
+  MOCK_CONST_METHOD0(getUsername, std::string());
+
+  // std::string getPassword() const {}
+  MOCK_CONST_METHOD0(getPassword, std::string());
+
+  // std::vector<std::string> processingJobsIDs() const {}
+  MOCK_CONST_METHOD0(processingJobsIDs, std::vector<std::string>());
+
+  // std::string currentComputeResource() const {}
+  MOCK_CONST_METHOD0(currentComputeResource, std::string());
+
+  // std::string currentReconTool() const {}
+  MOCK_CONST_METHOD0(currentReconTool, std::string());
+
+  // void updateLoginControls(bool loggedIn) {}
+  MOCK_METHOD1(updateLoginControls, void(bool loggedIn));
+
+  // void enableLoggedActions(bool enable) {}
+  MOCK_METHOD1(enableLoggedActions, void(bool enable));
+
+  // void enableConfigTool(bool on) {}
+  MOCK_METHOD1(enableConfigTool, void(bool on));
+
+  // void enableRunReconstruct(bool on) {}
+  MOCK_METHOD1(enableRunReconstruct, void(bool on));
+
+  // std::string showImagePath() {}
+  MOCK_CONST_METHOD0(showImagePath, std::string());
+
+  // void showImage(const Mantid::API::MatrixWorkspace_sptr &wsg) {}
+  MOCK_METHOD1(showImage, void(const Mantid::API::MatrixWorkspace_sptr &wsg));
+
+  // void showImage(const std::string &path) {}
+  MOCK_METHOD1(showImage, void(const std::string &path));
+
+  // TomoPathsConfig currentPathsConfig() const {}
+  MOCK_CONST_METHOD0(currentPathsConfig, MantidQt::CustomInterfaces::TomoPathsConfig());
+
+  // void showToolConfig(const std::string &name) {}
+  MOCK_METHOD1(showToolConfig, void(const std::string &name));
+
+  // void updateJobsInfoDisplay(const std::vector<
+  //    Mantid::API::IRemoteJobManager::RemoteJobInfo> &status) {}
+  MOCK_METHOD1(updateJobsInfoDisplay,
+               void(const std::vector<
+                   Mantid::API::IRemoteJobManager::RemoteJobInfo> &status));
+
+  // MantidQt::CustomInterfaces::TomoReconToolsUserSettings
+  // reconToolsSettings() const {}
+  MOCK_CONST_METHOD0(reconToolsSettings,
+                     MantidQt::CustomInterfaces::TomoReconToolsUserSettings());
+};
+
+#endif // MANTID_CUSTOMINTERFACES_TOMOGRAPHYIFACEVIEWMOCK_H
diff --git a/Code/Mantid/MantidQt/MantidWidgets/CMakeLists.txt b/Code/Mantid/MantidQt/MantidWidgets/CMakeLists.txt
index d6622fb3eb80fb1b699e334d5e44ba2c59d743b1..3d5f0c603ddf28838ae4f2693719386b6026a668 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/CMakeLists.txt
+++ b/Code/Mantid/MantidQt/MantidWidgets/CMakeLists.txt
@@ -6,6 +6,7 @@ set ( SRC_FILES
     src/CheckboxHeader.cpp
     src/DataSelector.cpp
     src/DiagResults.cpp
+    src/ErrorCurve.cpp
     src/FilenameDialogEditor.cpp
     src/FindDialog.cpp
     src/FindReplaceDialog.cpp
@@ -16,6 +17,7 @@ set ( SRC_FILES
     src/HintingLineEdit.cpp
     src/InstrumentSelector.cpp
     src/IndirectInstrumentConfig.cpp
+    src/InputController.cpp
     src/MantidHelpWindow.cpp
     src/MWDiag.cpp
     src/MWRunFiles.cpp
@@ -65,6 +67,7 @@ set ( MOC_FILES
     inc/MantidQtMantidWidgets/CatalogSelector.h
     inc/MantidQtMantidWidgets/InstrumentSelector.h
     inc/MantidQtMantidWidgets/IndirectInstrumentConfig.h
+    inc/MantidQtMantidWidgets/InputController.h
     inc/MantidQtMantidWidgets/MantidHelpWindow.h
     inc/MantidQtMantidWidgets/MessageDisplay.h
     inc/MantidQtMantidWidgets/MultifitSetupDialog.h
@@ -101,6 +104,7 @@ set ( INC_FILES
     ${MOC_FILES}
     inc/MantidQtMantidWidgets/AlgorithmHintStrategy.h
     inc/MantidQtMantidWidgets/CatalogHelper.h
+    inc/MantidQtMantidWidgets/ErrorCurve.h
     inc/MantidQtMantidWidgets/WidgetDllOption.h
     inc/MantidQtMantidWidgets/HintStrategy.h
 )
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/CatalogSearch.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/CatalogSearch.h
index 1cd1c184cd34b6eab3442e9cabecffa49dbae6f1..f1fa2041c59c8210ab6a7d18b43de83566119177 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/CatalogSearch.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/CatalogSearch.h
@@ -3,6 +3,7 @@
 
 #include "ui_CatalogSearch.h"
 #include "WidgetDllOption.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidQtMantidWidgets/CatalogHelper.h"
 #include "MantidQtMantidWidgets/CatalogSelector.h"
 #include "MantidQtMantidWidgets/CheckboxHeader.h"
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFErrorCurve.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/ErrorCurve.h
similarity index 73%
rename from Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFErrorCurve.h
rename to Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/ErrorCurve.h
index 5d43adee959b6ca3b8ecb9eb713abb7348be1b49..d59f04b169b239090ce55bed2519a230bc32072c 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MDFErrorCurve.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/ErrorCurve.h
@@ -1,19 +1,19 @@
-#ifndef MDFERRORCURVE_H_
-#define MDFERRORCURVE_H_
+#ifndef MANTIDWIDGETS_ERRORCURVE_H
+#define MANTIDWIDGETS_ERRORCURVE_H
 
+#include "WidgetDllOption.h"
 #include <qwt_plot_item.h>
 #include <qwt_plot_curve.h>
 
 namespace MantidQt
 {
-namespace CustomInterfaces
-{
-namespace MDF
+namespace MantidWidgets
 {
 
 /// Curve to draw error bars.
-class ErrorCurve: public QwtPlotItem
+class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS ErrorCurve: public QwtPlotItem
 {
+
 public:
   ErrorCurve(const QwtPlotCurve* dataCurve, const std::vector<double>& errors = std::vector<double>());
   /// Set error bars
@@ -32,9 +32,7 @@ private:
   QPen m_pen;
 };
 
-} // MDF
-} // CustomInterfaces
+} // MantidWidgets
 } // MantidQt
 
-
-#endif /*MDFERRORCURVE_H_*/
+#endif /* MANTIDWIDGETS_ERRORCURVE_H */
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FitOptionsBrowser.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FitOptionsBrowser.h
index a8f1429c57de969b5e52759a0c78aedbc4f23cc7..cd156c85a0dec4456553d01b46ed22118cfb6fd7 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FitOptionsBrowser.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FitOptionsBrowser.h
@@ -43,13 +43,28 @@ class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS FitOptionsBrowser: public QWidget
 {
   Q_OBJECT
 public:
+  /// Support for fitting algorithms:
+  ///   Simultaneous: Fit
+  ///   Sequential:   PlotPeakByLogValue
+  ///   SimultaneousAndSequential: both Fit and PlotPeakByLogValue, toggled with
+  ///       "Fitting" property.
+  enum FittingType {Simultaneous = 0, Sequential, SimultaneousAndSequential};
+
   /// Constructor
-  FitOptionsBrowser(QWidget *parent = NULL);
+  FitOptionsBrowser(QWidget *parent = NULL, FittingType fitType = Simultaneous);
   QString getProperty(const QString& name) const;
   void setProperty(const QString& name, const QString& value);
   void copyPropertiesToAlgorithm(Mantid::API::IAlgorithm& fit) const;
   void saveSettings(QSettings& settings) const;
   void loadSettings(const QSettings& settings);
+  FittingType getCurrentFittingType() const;
+  void setCurrentFittingType(FittingType fitType);
+  void lockCurrentFittingType(FittingType fitType);
+  void unlockCurrentFittingType();
+  void setLogNames(const QStringList& logNames);
+
+signals:
+  void changedToSequentialFitting();
 
 private slots:
 
@@ -59,25 +74,33 @@ private:
 
   void createBrowser();
   void createProperties();
+  void createCommonProperties();
+  void createSimultaneousFitProperties();
+  void createSequentialFitProperties();
   void updateMinimizer();
+  void switchFitType();
+  void displayNormalFitProperties();
+  void displaySequentialFitProperties();
+
   QtProperty* createPropertyProperty(Mantid::Kernel::Property* prop);
   QtProperty* addDoubleProperty(const QString& name);
 
+  void addProperty(const QString& name, QtProperty* prop,
+    QString (FitOptionsBrowser::*getter)(QtProperty*)const, 
+    void (FitOptionsBrowser::*setter)(QtProperty*,const QString&));
+
   //  Setters and getters
-  QString getMinimizer() const;
-  void setMinimizer(const QString&);
-  QString getCostFunction() const;
-  void setCostFunction(const QString&);
-  QString getMaxIterations() const;
-  void setMaxIterations(const QString&);
-  QString getOutput() const;
-  void setOutput(const QString&);
-  QString getIgnoreInvalidData() const;
-  void setIgnoreInvalidData(const QString&);
-
-  void addProperty(const QString& name, 
-    QString (FitOptionsBrowser::*getter)()const, 
-    void (FitOptionsBrowser::*setter)(const QString&));
+  QString getMinimizer(QtProperty*) const;
+  void setMinimizer(QtProperty*, const QString&);
+
+  QString getIntProperty(QtProperty*) const;
+  void setIntProperty(QtProperty*, const QString&);
+  QString getBoolProperty(QtProperty*) const;
+  void setBoolProperty(QtProperty*, const QString&);
+  QString getStringEnumProperty(QtProperty*) const;
+  void setStringEnumProperty(QtProperty*, const QString&);
+  QString getStringProperty(QtProperty*) const;
+  void setStringProperty(QtProperty*, const QString&);
 
   /// Qt property browser which displays properties
   QtTreePropertyBrowser* m_browser;
@@ -95,6 +118,8 @@ private:
   /// Manager for groups of properties
   QtGroupPropertyManager* m_groupManager;
 
+  /// FitType property
+  QtProperty* m_fittingTypeProp;
   /// Minimizer group property
   QtProperty* m_minimizerGroup;
   /// Minimizer property
@@ -103,18 +128,39 @@ private:
   QtProperty* m_costFunction;
   /// MaxIterations property
   QtProperty* m_maxIterations;
+  
+  // Fit properties
   /// Output property
   QtProperty* m_output;
   /// IgnoreInvalidData property
   QtProperty* m_ignoreInvalidData;
 
+  // PlotPeakByLogValue properties
+  /// FitType property
+  QtProperty* m_fitType;
+  /// OutputWorkspace property
+  QtProperty* m_outputWorkspace;
+  /// LogValue property
+  QtProperty* m_logValue;
+
   /// Precision of doubles in m_doubleManager
   int m_decimals;
 
+  typedef  void (FitOptionsBrowser::*SetterType)(QtProperty*, const QString&);
+  typedef  QString (FitOptionsBrowser::*GetterType)(QtProperty*)const;
+  /// Maps algorithm property name to the QtProperty
+  QMap<QString,QtProperty*> m_propertyNameMap;
   /// Store for the properties setter methods
-  QMap<QString,void (FitOptionsBrowser::*)(const QString&)> m_setters;
+  QMap<QtProperty*,SetterType> m_setters;
   /// Store for the properties getter methods
-  QMap<QString,QString (FitOptionsBrowser::*)()const> m_getters;
+  QMap<QtProperty*,GetterType> m_getters;
+
+  /// The Fitting Type
+  FittingType m_fittingType;
+  /// Store special properties of the normal Fit
+  QList<QtProperty*> m_simultaneousProperties;
+  /// Store special properties of the sequential Fit
+  QList<QtProperty*> m_sequentialProperties;
 };
 
 } // MantidWidgets
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FitPropertyBrowser.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FitPropertyBrowser.h
index 2ffefcc798a4dc5ab28a9a9755853b8fd952f9ed..17ea8980f593a3866667390b00720c7445a98083 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FitPropertyBrowser.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FitPropertyBrowser.h
@@ -1,7 +1,7 @@
 #ifndef FITPROPERTYBROWSER_H_
 #define FITPROPERTYBROWSER_H_
 
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidAPI/AlgorithmObserver.h"
 #include "WidgetDllOption.h"
 
@@ -15,7 +15,7 @@
 #include "MantidAPI/IFunction.h"
 #include "MantidAPI/IPeakFunction.h"
 #include "MantidAPI/FunctionFactory.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 
     /* Forward declarations */
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FunctionBrowser.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FunctionBrowser.h
index 115b9ffbd2e785809d692ca1aa54c258ff2d4c1f..5302d5dab2eefdb29cf267585df262be3c1a64c5 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FunctionBrowser.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/FunctionBrowser.h
@@ -153,6 +153,7 @@ signals:
   void localParameterButtonClicked(const QString& parName);
 
   void functionStructureChanged();
+  void globalsChanged();
 
 public slots:
 
@@ -289,6 +290,7 @@ protected slots:
   /// Called when a function parameter property is changed
   void parameterChanged(QtProperty*);
   void parameterButtonClicked(QtProperty*);
+  void globalChanged(QtProperty*, const QString&, bool);
 
 protected:
   /// Manager for function group properties
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/InputController.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/InputController.h
new file mode 100644
index 0000000000000000000000000000000000000000..6c2b3ab4330b8d0449a41efd133838c1cdd18e17
--- /dev/null
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/InputController.h
@@ -0,0 +1,234 @@
+#ifndef MANTID_MANTIDWIDGETS_INPUTCONTROLLER_H
+#define MANTID_MANTIDWIDGETS_INPUTCONTROLLER_H
+
+#include "WidgetDllOption.h"
+#include <QObject>
+#include <QRect>
+#include <QColor>
+
+class QMouseEvent;
+class QWheelEvent;
+class QKeyEvent;
+class QPainter;
+class QPixmap;
+
+namespace MantidQt {
+namespace MantidWidgets {
+
+/**
+    The base class for the mouse and keyboard controllers to work
+    with ProjectionSurfaces. Surfaces can be in different interaction
+    modes and the same mode on different surfaces can involve
+    different inputs.
+
+    A projection surface keeps a list of controllers: one per interaction mode.
+    The current controller emits signals which are connected to the relevant
+   slots
+    on the surface.
+
+  */
+class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS InputController : public QObject {
+  Q_OBJECT
+public:
+  explicit InputController(QObject *parent, bool contextAllowed = true);
+
+  virtual void mousePressEvent(QMouseEvent *) {}
+  virtual void mouseMoveEvent(QMouseEvent *) {}
+  virtual void mouseReleaseEvent(QMouseEvent *) {}
+  virtual void wheelEvent(QWheelEvent *) {}
+  virtual void keyPressEvent(QKeyEvent *) {}
+  virtual void enterEvent(QEvent *) {}
+  virtual void leaveEvent(QEvent *) {}
+  /// To be called after the owner widget has drawn its content
+  virtual void onPaint(QPainter &) {}
+  /// To be called when this controller takes control of the input. By default
+  /// emits enabled() signal.
+  virtual void onEnabled() { emit enabled(); }
+  /// To be called when this controller looses control. By default emits
+  /// disabled() signal.
+  virtual void onDisabled() { emit disabled(); }
+
+  /// Returns true if a surface using this controller can show
+  /// a context menu on right-click
+  bool canShowContextMenu() const { return m_canShowContextMenu; }
+
+signals:
+  void enabled();
+  void disabled();
+
+private:
+  bool m_canShowContextMenu;
+};
+
+/**
+    Controller for moving the instrument on Projection3D surface:
+    translation, rotation and zooming.
+
+  */
+class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS InputController3DMove : public InputController {
+  Q_OBJECT
+
+public:
+  InputController3DMove(QObject *parent);
+  virtual void mousePressEvent(QMouseEvent *);
+  virtual void mouseMoveEvent(QMouseEvent *);
+  virtual void mouseReleaseEvent(QMouseEvent *);
+  virtual void wheelEvent(QWheelEvent *);
+
+signals:
+  /// Init zooming. x and y is the zoom starting point on the screen.
+  void initZoom(int x, int y);
+  /// Init rotation. x and y is the starting point on the screen.
+  void initRotation(int x, int y);
+  /// Init translation. x and y is the starting point on the screen.
+  void initTranslation(int x, int y);
+  /// Zoom
+  void zoom(int x, int y);
+  /// Wheel zoom
+  void wheelZoom(int x, int y, int d);
+  /// Rotate
+  void rotate(int x, int y);
+  /// Translate
+  void translate(int x, int y);
+  /// Finish movement
+  void finish();
+
+private:
+  bool m_isButtonPressed;
+};
+
+/**
+    Controller for picking detectors.
+  */
+class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS InputControllerPick : public InputController {
+  Q_OBJECT
+
+public:
+  InputControllerPick(QObject *parent);
+  virtual void mousePressEvent(QMouseEvent *);
+  virtual void mouseMoveEvent(QMouseEvent *);
+  virtual void mouseReleaseEvent(QMouseEvent *);
+
+signals:
+  void pickPointAt(int, int);
+  void touchPointAt(int, int);
+  void setSelection(const QRect &);
+  void finishSelection();
+
+private:
+  bool m_isButtonPressed;
+  QRect m_rect;
+};
+
+/**
+    Controller for drawing mask shapes.
+  */
+class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS InputControllerDrawShape : public InputController {
+  Q_OBJECT
+
+public:
+  InputControllerDrawShape(QObject *parent);
+  virtual void mousePressEvent(QMouseEvent *);
+  virtual void mouseMoveEvent(QMouseEvent *);
+  virtual void mouseReleaseEvent(QMouseEvent *);
+  virtual void keyPressEvent(QKeyEvent *);
+  virtual void leaveEvent(QEvent *);
+
+signals:
+  /// Deselect all selected shapes
+  void deselectAll();
+  /// Add a new shape
+  void addShape(const QString &type, int x, int y, const QColor &borderColor,
+                const QColor &fillColor);
+  /// Resize the current shape by moving the right-bottom control point to a
+  /// location on the screen
+  void moveRightBottomTo(int, int);
+  /// Select a shape or a conrol point at a location on the screen.
+  void selectAt(int, int);
+  /// Select a shape with ctrl key pressed at a location on the screen.
+  void selectCtrlAt(int, int);
+  /// Move selected shape or a control point by a displacement vector.
+  void moveBy(int, int);
+  /// Sent when the mouse is moved to a new position with the buttons up
+  void touchPointAt(int, int);
+  /// Remove the selected shapes
+  void removeSelectedShapes();
+  /// Restore the cursor to its default image
+  void restoreOverrideCursor();
+  /// Update the rubber band selection
+  void setSelection(const QRect &);
+  /// Rubber band selection is done
+  void finishSelection(const QRect &);
+
+public slots:
+  void startCreatingShape2D(const QString &type, const QColor &borderColor,
+                            const QColor &fillColor);
+  void onDisabled();
+
+private:
+  bool m_creating; ///< a shape is being created with a mouse
+  int m_x, m_y;
+  QString m_shapeType;
+  QColor m_borderColor, m_fillColor;
+  bool m_isButtonPressed;
+  QRect m_rect;
+};
+
+/**
+    Controller for moving the instrument on an unwrapped surface.
+  */
+class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS InputControllerMoveUnwrapped : public InputController {
+  Q_OBJECT
+
+public:
+  InputControllerMoveUnwrapped(QObject *parent);
+  virtual void mousePressEvent(QMouseEvent *);
+  virtual void mouseMoveEvent(QMouseEvent *);
+  virtual void mouseReleaseEvent(QMouseEvent *);
+
+signals:
+  void setSelectionRect(const QRect &);
+  void zoom();
+  void unzoom();
+
+private:
+  bool m_isButtonPressed;
+  QRect m_rect;
+};
+
+/**
+    Controller for moving the instrument on an unwrapped surface.
+  */
+class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS InputControllerErase : public InputController {
+  Q_OBJECT
+
+public:
+  InputControllerErase(QObject *parent);
+  ~InputControllerErase();
+  virtual void mousePressEvent(QMouseEvent *);
+  virtual void mouseMoveEvent(QMouseEvent *);
+  virtual void mouseReleaseEvent(QMouseEvent *);
+  virtual void wheelEvent(QWheelEvent *);
+
+  virtual void onPaint(QPainter &);
+  virtual void enterEvent(QEvent *);
+  virtual void leaveEvent(QEvent *);
+
+signals:
+  void erase(const QRect &);
+
+private:
+  void drawCursor();
+
+  const int m_max_size;
+  int m_size; ///< Size of the eraser
+  bool m_isButtonPressed;
+  bool m_isActive;
+  QRect m_rect;
+  QPixmap *m_cursor;
+  QPixmap *m_image;
+};
+}
+}
+
+#endif // MANTID_MANTIDWIDGETS_INPUTCONTROLLER_H
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MessageDisplay.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MessageDisplay.h
index 11d940adb38fd2ad0ae43f9d9ff983fa584be371..6b011c93d1bcc39d2c23554dd05aab9657c4c7ae 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MessageDisplay.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MessageDisplay.h
@@ -5,6 +5,7 @@
 // Includes
 //----------------------------------
 #include "WidgetDllOption.h"
+#include "MantidKernel/FilterChannel.h"
 #include "MantidQtAPI/Message.h"
 #include "MantidQtAPI/QtSignalChannel.h"
 
@@ -120,6 +121,8 @@ namespace MantidQt
       LogLevelControl m_logLevelControl;
       /// A reference to the log channel
       API::QtSignalChannel *m_logChannel;
+      /// A reference to the log channel
+      Poco::FilterChannel *m_filterChannel;
       /// The actual widget holding the text
       QPlainTextEdit * m_textDisplay;
       /// Map priority to text formatting
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/PreviewPlot.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/PreviewPlot.h
index 8be10cb155fd55e144ac3d0630617f4fbed0192a..72337130719e346fe87e6be3d98e1e4ed68a6777 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/PreviewPlot.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/PreviewPlot.h
@@ -4,6 +4,7 @@
 #include "ui_PreviewPlot.h"
 
 #include "WidgetDllOption.h"
+#include "MantidQtMantidWidgets/ErrorCurve.h"
 #include "MantidQtMantidWidgets/RangeSelector.h"
 #include "MantidQtAPI/MantidWidget.h"
 
@@ -21,160 +22,183 @@
 #include <qwt_plot_panner.h>
 #include <qwt_plot_zoomer.h>
 
+namespace MantidQt {
+namespace MantidWidgets {
+/**
+A widget to display several workspaces on a plot on a custom interface.
+
+Gives option to use pan and zoom options to navigate plot.
+
+@author Dan Nixon
+
+Copyright &copy; 2011 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 EXPORT_OPT_MANTIDQT_MANTIDWIDGETS PreviewPlot : public API::MantidWidget {
+  Q_OBJECT
+
+  Q_PROPERTY(QColor canvasColour READ canvasColour WRITE setCanvasColour)
+  Q_PROPERTY(bool showLegend READ legendIsShown WRITE showLegend)
+  Q_PROPERTY(QStringList curveErrorBars READ getShownErrorBars WRITE
+                 setDefaultShownErrorBars)
+
+public:
+  PreviewPlot(QWidget *parent = NULL, bool init = true);
+  virtual ~PreviewPlot();
+
+  QColor canvasColour();
+  void setCanvasColour(const QColor &colour);
+
+  bool legendIsShown();
+  QStringList getShownErrorBars();
+
+  void setAxisRange(QPair<double, double> range, int axisID = QwtPlot::xBottom);
+
+  QPair<double, double>
+  getCurveRange(const Mantid::API::MatrixWorkspace_sptr ws);
+  QPair<double, double> getCurveRange(const QString &curveName);
+
+  void addSpectrum(const QString &curveName,
+                   const Mantid::API::MatrixWorkspace_sptr ws,
+                   const size_t specIndex = 0,
+                   const QColor &curveColour = QColor());
+  void addSpectrum(const QString &curveName, const QString &wsName,
+                   const size_t specIndex = 0,
+                   const QColor &curveColour = QColor());
+
+  void removeSpectrum(const Mantid::API::MatrixWorkspace_sptr ws);
+  void removeSpectrum(const QString &curveName);
+
+  bool hasCurve(const QString &curveName);
+
+  RangeSelector *
+  addRangeSelector(const QString &rsName,
+                   RangeSelector::SelectType type = RangeSelector::XMINMAX);
+  RangeSelector *getRangeSelector(const QString &rsName);
+  void removeRangeSelector(const QString &rsName, bool del);
+
+  bool hasRangeSelector(const QString &rsName);
+
+  QString getAxisType(int axisID);
+
+signals:
+  /// Signals that the plot should be refreshed
+  void needToReplot();
+  void needToHardReplot();
+  /// Signals that the axis scale has been changed
+  void axisScaleChanged();
+
+public slots:
+  void showLegend(bool show);
+  void setDefaultShownErrorBars(const QStringList &curveNames);
+  void togglePanTool(bool enabled);
+  void toggleZoomTool(bool enabled);
+  void resetView();
+  void resizeX();
+  void clear();
+  void replot();
+  void hardReplot();
+
+private:
+  /// Holds information about a plot curve
+  struct PlotCurveConfiguration {
+    Mantid::API::MatrixWorkspace_sptr ws;
+    QwtPlotCurve *curve;
+    MantidQt::MantidWidgets::ErrorCurve *errorCurve;
+    QAction *showErrorsAction;
+    QLabel *label;
+    QColor colour;
+    size_t wsIndex;
+
+    PlotCurveConfiguration()
+        : curve(NULL), errorCurve(NULL), showErrorsAction(NULL), label(NULL),
+          colour(), wsIndex(0) {}
+  };
 
-namespace MantidQt
-{
-namespace MantidWidgets
-{
-  /**
-  A widget to display several workspaces on a plot on a custom interface.
-
-  Gives option to use pan and zoom options to navigate plot.
-
-  @author Dan Nixon
-
-  Copyright &copy; 2011 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 EXPORT_OPT_MANTIDQT_MANTIDWIDGETS PreviewPlot : public API::MantidWidget
-  {
-    Q_OBJECT
-
-    Q_PROPERTY(QColor canvasColour READ canvasColour WRITE setCanvasColour)
-    Q_PROPERTY(bool showLegend READ legendIsShown WRITE showLegend)
-
-  public:
-    PreviewPlot(QWidget *parent = NULL, bool init = true);
-    virtual ~PreviewPlot();
-
-    QColor canvasColour();
-    void setCanvasColour(const QColor & colour);
-
-    bool legendIsShown();
-
-    void setAxisRange(QPair<double, double> range, int axisID = QwtPlot::xBottom);
-
-    QPair<double, double> getCurveRange(const Mantid::API::MatrixWorkspace_sptr ws);
-    QPair<double, double> getCurveRange(const QString & curveName);
-
-    void addSpectrum(const QString & curveName, const Mantid::API::MatrixWorkspace_sptr ws, const size_t specIndex = 0, const QColor & curveColour = QColor());
-    void addSpectrum(const QString & curveName, const QString & wsName, const size_t specIndex = 0, const QColor & curveColour = QColor());
-
-    void removeSpectrum(const Mantid::API::MatrixWorkspace_sptr ws);
-    void removeSpectrum(const QString & curveName);
-
-    bool hasCurve(const QString & curveName);
-
-    RangeSelector * addRangeSelector(const QString & rsName,
-                                     RangeSelector::SelectType type = RangeSelector::XMINMAX);
-    RangeSelector * getRangeSelector(const QString & rsName);
-    void removeRangeSelector(const QString & rsName, bool del);
-
-    bool hasRangeSelector(const QString & rsName);
-
-    QString getAxisType(int axisID);
-
-  signals:
-    /// Signals that the plot should be refreshed
-    void needToReplot();
-    void needToHardReplot();
-    /// Signals that the axis scale has been changed
-    void axisScaleChanged();
-
-  public slots:
-    void showLegend(bool show);
-    void togglePanTool(bool enabled);
-    void toggleZoomTool(bool enabled);
-    void resetView();
-    void resizeX();
-    void clear();
-    void replot();
-    void hardReplot();
-
-  private:
-    /// Holds information about a plot curve
-    struct PlotCurveConfiguration
-    {
-      Mantid::API::MatrixWorkspace_sptr ws;
-      QwtPlotCurve *curve;
-      QLabel *label;
-      QColor colour;
-      size_t wsIndex;
-
-      PlotCurveConfiguration():
-        curve(NULL), label(NULL), colour(), wsIndex(0) {}
-    };
-
-    void handleRemoveEvent(Mantid::API::WorkspacePreDeleteNotification_ptr pNf);
-    void handleReplaceEvent(Mantid::API::WorkspaceAfterReplaceNotification_ptr pNf);
+  void handleRemoveEvent(Mantid::API::WorkspacePreDeleteNotification_ptr pNf);
+  void
+  handleReplaceEvent(Mantid::API::WorkspaceAfterReplaceNotification_ptr pNf);
 
-    QwtPlotCurve * addCurve(Mantid::API::MatrixWorkspace_sptr ws, const size_t specIndex, const QColor & curveColour);
-    void removeCurve(QwtPlotCurve *curve);
+  void addCurve(PlotCurveConfiguration &curveConfig,
+                Mantid::API::MatrixWorkspace_sptr ws, const size_t specIndex,
+                const QColor &curveColour);
+  void removeCurve(QwtPlotItem *curve);
 
-    QList<QAction *> addOptionsToMenus(QString menuName, QActionGroup *group, QStringList items, QString defaultItem);
+  QList<QAction *> addOptionsToMenus(QString menuName, QActionGroup *group,
+                                     QStringList items, QString defaultItem);
 
-    QStringList getCurvesForWorkspace(const Mantid::API::MatrixWorkspace_sptr ws);
+  QStringList getCurvesForWorkspace(const Mantid::API::MatrixWorkspace_sptr ws);
 
-  private slots:
-    void showContextMenu(QPoint position);
-    void handleViewToolSelect();
-    void handleAxisTypeSelect();
+private slots:
+  void showContextMenu(QPoint position);
+  void handleViewToolSelect();
+  void handleAxisTypeSelect();
 
-  private:
-    Ui::PreviewPlot m_uiForm;
+private:
+  Ui::PreviewPlot m_uiForm;
 
-    /// Range selector widget for mini plot
-    QMap<QString, MantidQt::MantidWidgets::RangeSelector *> m_rangeSelectors;
-    /// Cache of range selector visibility
-    QMap<QString, bool> m_rsVisibility;
+  /// Range selector widget for mini plot
+  QMap<QString, MantidQt::MantidWidgets::RangeSelector *> m_rangeSelectors;
+  /// Cache of range selector visibility
+  QMap<QString, bool> m_rsVisibility;
 
-    /// Poco Observers for ADS Notifications
-    Poco::NObserver<PreviewPlot, Mantid::API::WorkspacePreDeleteNotification> m_removeObserver;
-    Poco::NObserver<PreviewPlot, Mantid::API::WorkspaceAfterReplaceNotification> m_replaceObserver;
+  /// Poco Observers for ADS Notifications
+  Poco::NObserver<PreviewPlot, Mantid::API::WorkspacePreDeleteNotification>
+      m_removeObserver;
+  Poco::NObserver<PreviewPlot, Mantid::API::WorkspaceAfterReplaceNotification>
+      m_replaceObserver;
 
-    /// If the widget was initialised
-    bool m_init;
+  /// If the widget was initialised
+  bool m_init;
 
-    friend class RangeSelector;
+  friend class RangeSelector;
 
-    /// Map of curve key to plot info
-    QMap<QString, PlotCurveConfiguration> m_curves;
+  /// Map of curve key to plot info
+  QMap<QString, PlotCurveConfiguration> m_curves;
 
-    /// Plot manipulation tools
-    QwtPlotMagnifier *m_magnifyTool;
-    QwtPlotPanner *m_panTool;
-    QwtPlotZoomer *m_zoomTool;
+  /// Plot manipulation tools
+  QwtPlotMagnifier *m_magnifyTool;
+  QwtPlotPanner *m_panTool;
+  QwtPlotZoomer *m_zoomTool;
 
-    /// Context menu items
-    QMenu *m_contextMenu;
-    QActionGroup *m_plotToolGroup;
-    QActionGroup *m_xAxisTypeGroup;
-    QActionGroup *m_yAxisTypeGroup;
+  /// Context menu items
+  QMenu *m_contextMenu;
+  QActionGroup *m_plotToolGroup;
+  QActionGroup *m_xAxisTypeGroup;
+  QActionGroup *m_yAxisTypeGroup;
 
-    /// Menu action for showing/hiding plot legend
-    QAction *m_showLegendAction;
+  /// Menu action for showing/hiding plot legend
+  QAction *m_showLegendAction;
 
-  };
+  /// Menu group for error bar show/hide
+  QAction *m_showErrorsMenuAction;
+  QMenu *m_showErrorsMenu;
 
+  /// Cache of error bar options
+  // Persists error bar options when curves of same name are removed and
+  // readded
+  QMap<QString, bool> m_errorBarOptionCache;
+};
 }
 }
 
-#endif //MANTIDQTMANTIDWIDGETS_PREVIEWPLOT_H_
+#endif // MANTIDQTMANTIDWIDGETS_PREVIEWPLOT_H_
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SafeQwtPlot.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SafeQwtPlot.h
index 16cbf0f1d2a1924b9da77b5d4e31f20717da6317..7c865f555b37967383458973090b0fc3c2414585 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SafeQwtPlot.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SafeQwtPlot.h
@@ -5,7 +5,7 @@
 #include <qwt_plot.h>
 #include <qpainter.h>
 #include "qwt_text.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "WidgetDllOption.h"
 
 namespace MantidQt
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SaveWorkspaces.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SaveWorkspaces.h
index cac153f861d09deff22c19dd9b113c1ca54b9488..24224bdb6bcf6b6d3bbdcf411fd87e6e6e005419 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SaveWorkspaces.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SaveWorkspaces.h
@@ -48,19 +48,24 @@ namespace MantidQt
 
     public: 
       SaveWorkspaces(QWidget *parent, const QString & suggFname,
-        QHash<const QCheckBox * const, QString> & defSavs);
+        QHash<const QCheckBox * const, QString> & defSavs, bool saveAsZeroErrorFree);
       void initLayout();
       ///Returns the save extension expected the name algorithm
       static QString getSaveAlgExt(const QString & algName);
+    public slots:
+      void onSaveAsZeroErrorFreeChanged(int state);
 
     signals:
       void closing();
+      void createZeroErrorFreeWorkspace(QString& originalWorkspace, QString& zeroFreeWorkspace);
+      void deleteZeroErrorFreeWorkspace(QString& zeroFreeWorkspace);
 
     private:
       QLineEdit *m_fNameEdit;
       QListWidget *m_workspaces;
       QCheckBox *m_append;
       QString m_lastName;
+      bool m_saveAsZeroErrorFree;
 
       QHash<QCheckBox * const, QString> m_savFormats;
       typedef QHash<QCheckBox * const, QString>::const_iterator SavFormatsConstIt;
@@ -74,7 +79,9 @@ namespace MantidQt
 
       void addButtonsDisab(int row);
       void closeEvent(QCloseEvent *event);
-      QString saveList(const QList<QListWidgetItem*> & list, const QString & algorithm, QString fileBase, bool toAppend);
+      QString saveList(const QList<QListWidgetItem*> & list, const QString & algorithm, QString fileBase, bool toAppend, QHash<QString, QString> workspaceMap);
+      QHash<QString, QString> provideZeroFreeWorkspaces(const QListWidget * workspaces);
+      void removeZeroFreeWorkspaces(QHash<QString, QString> workspaces);
 
     private slots:
       void saveSel();
diff --git a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SelectWorkspacesDialog.h b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SelectWorkspacesDialog.h
index 4c3bc0eda4410294c4a71754e4335711ef9dd118..477d71183dac3e7df1840a72e98c6b3a528d2484 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SelectWorkspacesDialog.h
+++ b/Code/Mantid/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/SelectWorkspacesDialog.h
@@ -48,7 +48,7 @@ class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS SelectWorkspacesDialog : public QDialog
 
 public:
   ///return value of the Custom button
-  static const int CustomButton = 45654;
+  static const int CustomButton = 45654;  //do not use this number direct, just refer to this static constant
   
   /// Constructor
   SelectWorkspacesDialog (QWidget* parent = NULL, const std::string& typeFilter = "", const std::string& customButtonLabel = "");
diff --git a/Code/Mantid/MantidQt/MantidWidgets/src/CatalogSearch.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/CatalogSearch.cpp
index 2026aa512fde65085785eef42992493bb147a929..ebdf521ca508692877b3480946bf484bbd531bb2 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/src/CatalogSearch.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/CatalogSearch.cpp
@@ -1,5 +1,6 @@
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/AnalysisDataService.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/FacilityInfo.h"
 #include "MantidQtMantidWidgets/CatalogSearch.h"
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFErrorCurve.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/ErrorCurve.cpp
similarity index 93%
rename from Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFErrorCurve.cpp
rename to Code/Mantid/MantidQt/MantidWidgets/src/ErrorCurve.cpp
index 4f027d5f373fb2eb2a2231e0494bd280bc87f500..38c72fedd2b71159aaca9be46158d458a95d6944 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MDFErrorCurve.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/ErrorCurve.cpp
@@ -1,4 +1,4 @@
-#include "MantidQtCustomInterfaces/MultiDatasetFit/MDFErrorCurve.h"
+#include "MantidQtMantidWidgets/ErrorCurve.h"
 
 #include <QPainter>
 #include <qwt_scale_map.h>
@@ -6,11 +6,9 @@
 
 namespace MantidQt
 {
-namespace CustomInterfaces
+namespace MantidWidgets
 {
-namespace MDF
-{
- 
+
 /// Create a error curve dependent on a data curve.
 /// @param dataCurve :: The curve displaying the data.
 /// @param errors :: A vector with error bars.
@@ -88,6 +86,6 @@ int ErrorCurve::dataSize() const
   return static_cast<int>(m_x.size());
 }
 
-} // MDF
-} // CustomInterfaces
+} // MantidWidgets
 } // MantidQt
+
diff --git a/Code/Mantid/MantidQt/MantidWidgets/src/FitOptionsBrowser.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/FitOptionsBrowser.cpp
index a7a39d3337707c84ce53e13f2b7c3e1bb9ca3c57..5ff51742f09233d7d57d1a7c55d3d0cbeb8c8a34 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/src/FitOptionsBrowser.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/FitOptionsBrowser.cpp
@@ -43,10 +43,11 @@ namespace MantidWidgets
 /**
  * Constructor
  * @param parent :: The parent widget.
+ * @param fitType :: The type of the underlying fitting algorithm.
  */
-FitOptionsBrowser::FitOptionsBrowser(QWidget *parent)
+FitOptionsBrowser::FitOptionsBrowser(QWidget *parent, FittingType fitType)
   :QWidget(parent),
-  m_decimals(6)
+  m_decimals(6), m_fittingType(fitType)
 {
   // create m_browser
   createBrowser();
@@ -99,6 +100,28 @@ void FitOptionsBrowser::createBrowser()
  */
 void FitOptionsBrowser::createProperties()
 {
+  createCommonProperties();
+  if (m_fittingType == Simultaneous || m_fittingType == SimultaneousAndSequential)
+  {
+    createSimultaneousFitProperties();
+  }
+  if (m_fittingType == Sequential || m_fittingType == SimultaneousAndSequential)
+  {
+    createSequentialFitProperties();
+  }
+}
+
+void FitOptionsBrowser::createCommonProperties()
+{
+  if (m_fittingType == SimultaneousAndSequential)
+  {
+    m_fittingTypeProp = m_enumManager->addProperty("Fitting");
+    QStringList types;
+    types << "Simultaneous" << "Sequential";
+    m_enumManager->setEnumNames(m_fittingTypeProp, types);
+    m_browser->addProperty(m_fittingTypeProp);
+  }
+
   // Create MaxIterations property
   m_maxIterations = m_intManager->addProperty("Max Iterations");
   {
@@ -106,7 +129,7 @@ void FitOptionsBrowser::createProperties()
     m_intManager->setMinimum(m_maxIterations,0);
     m_browser->addProperty(m_maxIterations);
 
-    addProperty("MaxIterations", &FitOptionsBrowser::getMaxIterations, &FitOptionsBrowser::setMaxIterations);
+    addProperty("MaxIterations", m_maxIterations, &FitOptionsBrowser::getIntProperty, &FitOptionsBrowser::setIntProperty);
   }
 
   // Set up the minimizer property.
@@ -135,10 +158,8 @@ void FitOptionsBrowser::createProperties()
     {
       m_enumManager->setValue(m_minimizer,i);
     }
-
     m_browser->addProperty(m_minimizerGroup);
-
-    addProperty("Minimizer", &FitOptionsBrowser::getMinimizer, &FitOptionsBrowser::setMinimizer);
+    addProperty("Minimizer", m_minimizer, &FitOptionsBrowser::getMinimizer, &FitOptionsBrowser::setMinimizer);
   }
 
   // Create cost function property
@@ -148,40 +169,101 @@ void FitOptionsBrowser::createProperties()
     std::vector<std::string> costOptions =
       Mantid::API::CostFunctionFactory::Instance().getKeys();
     QStringList costFunctions;
-
     // Store them in the m_minimizer enum property
     for(auto it = costOptions.begin(); it != costOptions.end(); ++it)
     {
       costFunctions << QString::fromStdString(*it);
     }
     m_enumManager->setEnumNames(m_costFunction,costFunctions);
-
     m_browser->addProperty(m_costFunction);
-
-    addProperty("CostFunction", &FitOptionsBrowser::getCostFunction, &FitOptionsBrowser::setCostFunction);
+    addProperty("CostFunction", m_costFunction, &FitOptionsBrowser::getStringEnumProperty, &FitOptionsBrowser::setStringEnumProperty);
   }
 
+}
+
+void FitOptionsBrowser::createSimultaneousFitProperties()
+{
   // Create Output property
   m_output = m_stringManager->addProperty("Output");
   {
     m_browser->addProperty(m_output);
-    addProperty("Output", &FitOptionsBrowser::getOutput, &FitOptionsBrowser::setOutput);
+    addProperty("Output", m_output, &FitOptionsBrowser::getStringProperty, &FitOptionsBrowser::setStringProperty);
+    m_simultaneousProperties << m_output;
   }
 
   // Create Ignore property
   m_ignoreInvalidData = m_boolManager->addProperty("Ignore Invalid Data");
   {
     m_browser->addProperty(m_ignoreInvalidData);
-    addProperty("IgnoreInvalidData", &FitOptionsBrowser::getIgnoreInvalidData, &FitOptionsBrowser::setIgnoreInvalidData);
+    addProperty("IgnoreInvalidData", m_ignoreInvalidData, &FitOptionsBrowser::getBoolProperty, &FitOptionsBrowser::setBoolProperty);
+    m_simultaneousProperties << m_ignoreInvalidData;
   }
 }
 
-void FitOptionsBrowser::addProperty(const QString& name, 
-  QString (FitOptionsBrowser::*getter)()const, 
-  void (FitOptionsBrowser::*setter)(const QString&))
+void FitOptionsBrowser::createSequentialFitProperties()
 {
-  m_getters[name] = getter;
-  m_setters[name] = setter;
+  // Create FitType property
+  m_fitType = m_enumManager->addProperty("Fit Type");
+  {
+    QStringList types;
+    types << "Sequential" << "Individual";
+    m_enumManager->setEnumNames(m_fitType,types);
+    m_enumManager->setValue(m_fitType,0);
+    addProperty("FitType", m_fitType, &FitOptionsBrowser::getStringEnumProperty, &FitOptionsBrowser::setStringEnumProperty);
+    m_sequentialProperties << m_fitType;
+  }
+
+  // Create OutputWorkspace property
+  m_outputWorkspace = m_stringManager->addProperty("OutputWorkspace");
+  {
+    addProperty("OutputWorkspace", m_outputWorkspace, &FitOptionsBrowser::getStringProperty, &FitOptionsBrowser::setStringProperty);
+    m_sequentialProperties << m_outputWorkspace;
+  }
+
+  // Create CreateOutput property
+  auto prop = m_boolManager->addProperty("Create Output");
+  {
+    addProperty("CreateOutput", prop, &FitOptionsBrowser::getBoolProperty, &FitOptionsBrowser::setBoolProperty);
+    m_sequentialProperties << prop;
+  }
+
+  // Create OutputCompositeMembers property
+  prop = m_boolManager->addProperty("Output Composite Members");
+  {
+    addProperty("OutputCompositeMembers", prop, &FitOptionsBrowser::getBoolProperty, &FitOptionsBrowser::setBoolProperty);
+    m_sequentialProperties << prop;
+  }
+
+  // Create ConvolveMembers property
+  prop = m_boolManager->addProperty("Convolve Members");
+  {
+    addProperty("ConvolveMembers", prop, &FitOptionsBrowser::getBoolProperty, &FitOptionsBrowser::setBoolProperty);
+    m_sequentialProperties << prop;
+  }
+
+  // Create PassWSIndexToFunction property
+  prop = m_boolManager->addProperty("Pass WS Index To Function");
+  {
+    addProperty("PassWSIndexToFunction", prop, &FitOptionsBrowser::getBoolProperty, &FitOptionsBrowser::setBoolProperty);
+    m_sequentialProperties << prop;
+  }
+
+  // Create LogValue property
+  m_logValue = m_enumManager->addProperty("Log Value");
+  {
+    //m_enumManager->setValue(m_logValue,0);
+    addProperty("LogValue", m_logValue, &FitOptionsBrowser::getStringEnumProperty, &FitOptionsBrowser::setStringEnumProperty);
+    m_sequentialProperties << m_logValue;
+  }
+}
+
+void FitOptionsBrowser::addProperty(const QString& name, QtProperty* prop,
+                                    QString (FitOptionsBrowser::*getter)(QtProperty*)const, 
+  void (FitOptionsBrowser::*setter)(QtProperty*,const QString&))
+{
+  m_propertyNameMap[name] = prop;
+  m_getters[prop] = getter;
+  m_setters[prop] = setter;
 }
 
 
@@ -207,6 +289,10 @@ void FitOptionsBrowser::enumChanged(QtProperty* prop)
   {
     updateMinimizer();
   }
+  else if (prop == m_fittingTypeProp)
+  {
+    switchFitType();
+  }
 }
 
 /**
@@ -242,6 +328,53 @@ void FitOptionsBrowser::updateMinimizer()
   }
 }
 
+/**
+ * Switch the current fit type according to the value in the FitType property.
+ */
+void FitOptionsBrowser::switchFitType()
+{
+  auto fitType = m_enumManager->value(m_fittingTypeProp);
+  if (fitType == 0)
+  {
+    displayNormalFitProperties();
+  }
+  else
+  {
+    displaySequentialFitProperties();
+  }
+}
+
+/**
+ * Show normal Fit properties and hide the others.
+ */
+void FitOptionsBrowser::displayNormalFitProperties()
+{
+  foreach(QtProperty* prop, m_simultaneousProperties)
+  {
+    m_browser->addProperty(prop);
+  }
+  foreach(QtProperty* prop, m_sequentialProperties)
+  {
+    m_browser->removeProperty(prop);
+  }
+}
+
+/**
+ * Show sequential fit (PlotPeakByLogValue) properties and hide the others.
+ */
+void FitOptionsBrowser::displaySequentialFitProperties()
+{
+  foreach(QtProperty* prop, m_sequentialProperties)
+  {
+    m_browser->addProperty(prop);
+  }
+  foreach(QtProperty* prop, m_simultaneousProperties)
+  {
+    m_browser->removeProperty(prop);
+  }
+  emit changedToSequentialFitting();
+}
+
 /**
  * Create a QtProperty for an Algorithm Property
  * and attach it to the correct manager.
@@ -314,11 +447,16 @@ QtProperty* FitOptionsBrowser::createPropertyProperty(Mantid::Kernel::Property*
  */
 void FitOptionsBrowser::copyPropertiesToAlgorithm(Mantid::API::IAlgorithm& fit) const
 {
-    for(auto p = m_getters.constBegin(); p != m_getters.constEnd(); ++p)
+  for(auto p = m_propertyNameMap.constBegin(); p != m_propertyNameMap.constEnd(); ++p)
+  {
+    auto propertyName = p.key().toStdString();
+    if (fit.existsProperty(propertyName))
     {
-      auto f = p.value();
-      fit.setPropertyValue( p.key().toStdString(), (this->*f)().toStdString() );
+      auto prop = p.value();
+      auto f = m_getters[prop];
+      fit.setPropertyValue(propertyName, (this->*f)(prop).toStdString() );
     }
+  }
 }
 
 /**
@@ -327,12 +465,13 @@ void FitOptionsBrowser::copyPropertiesToAlgorithm(Mantid::API::IAlgorithm& fit)
  */
 QString FitOptionsBrowser::getProperty(const QString& name) const
 {
-  if ( !m_getters.contains(name) )
+  if ( !m_propertyNameMap.contains(name) )
   {
     throw std::runtime_error("Property " + name.toStdString() + " isn't supported by the browser.");
   }
-  auto f = m_getters[name];
-  return (this->*f)();
+  auto prop = m_propertyNameMap[name];
+  auto f = m_getters[prop];
+  return (this->*f)(prop);
 }
 
 /**
@@ -342,18 +481,19 @@ QString FitOptionsBrowser::getProperty(const QString& name) const
  */
 void FitOptionsBrowser::setProperty(const QString& name, const QString& value)
 {
-  if ( !m_getters.contains(name) )
+  if ( !m_propertyNameMap.contains(name) )
   {
     throw std::runtime_error("Property " + name.toStdString() + " isn't supported by the browser.");
   }
-  auto f = m_setters[name];
-  (this->*f)(value);
+  auto prop = m_propertyNameMap[name];
+  auto f = m_setters[prop];
+  (this->*f)(prop,value);
 }
 
 /**
  * Get the value of the Minimizer property.
  */
-QString FitOptionsBrowser::getMinimizer() const
+QString FitOptionsBrowser::getMinimizer(QtProperty*) const
 {
   int i = m_enumManager->value(m_minimizer);
   QString minimStr = m_enumManager->enumNames(m_minimizer)[i];
@@ -401,94 +541,109 @@ QString FitOptionsBrowser::getMinimizer() const
  * Set new value to the Minimizer property.
  * @param value :: The new value.
  */
-void FitOptionsBrowser::setMinimizer(const QString& value)
+void FitOptionsBrowser::setMinimizer(QtProperty*, const QString& value)
 {
   QStringList terms = value.split(',');
   int i = m_enumManager->enumNames(m_minimizer).indexOf(terms[0]);
   m_enumManager->setValue(m_minimizer,i);
 }
 
+// ------------------------- Generic setters and getters ------------------------------//
+
 /**
- * Get the value of the CostFunction property.
+ * Get the value of an integer algorithm property.
+ * @param prop :: The corresponding QtProperty.
  */
-QString FitOptionsBrowser::getCostFunction() const
+QString FitOptionsBrowser::getIntProperty(QtProperty* prop) const
 {
-  int i = m_enumManager->value(m_costFunction);
-  return m_enumManager->enumNames(m_costFunction)[i];
+  return QString::number(m_intManager->value(prop));
 }
 
 /**
- * Set new value to the CostFunction property.
+ * Set a new value of an integer algorithm property.
+ * @param prop :: The corresponding QtProperty.
  * @param value :: The new value.
  */
-void FitOptionsBrowser::setCostFunction(const QString& value)
+void FitOptionsBrowser::setIntProperty(QtProperty* prop, const QString& value)
 {
-  int i = m_enumManager->enumNames(m_costFunction).indexOf(value);
-  m_enumManager->setValue(m_costFunction,i);
+  m_intManager->setValue(prop,value.toInt());
 }
 
 /**
- * Get the value of the MaxIterations property.
+ * Get the value of a bool algorithm property.
+ * @param prop :: The corresponding QtProperty.
  */
-QString FitOptionsBrowser::getMaxIterations() const
+QString FitOptionsBrowser::getBoolProperty(QtProperty* prop) const
 {
-  return QString::number(m_intManager->value(m_maxIterations));
+  return QString::number(m_boolManager->value(prop));
 }
 
 /**
- * Set new value to the MaxIterations property.
+ * Set a new value of a bool algorithm property.
+ * @param prop :: The corresponding QtProperty.
  * @param value :: The new value.
  */
-void FitOptionsBrowser::setMaxIterations(const QString& value)
+void FitOptionsBrowser::setBoolProperty(QtProperty* prop, const QString& value)
 {
-  m_intManager->setValue(m_maxIterations,value.toInt());
+  bool boolValue = (value == "1") || (value.lower() == "true");
+  m_boolManager->setValue( prop, boolValue );
 }
 
 /**
- * Get the value of the Output property.
+ * Get the value of a string algorithm property with predefined set of values.
+ * @param prop :: The corresponding QtProperty.
  */
-QString FitOptionsBrowser::getOutput() const
+QString FitOptionsBrowser::getStringEnumProperty(QtProperty* prop) const
 {
-  return m_stringManager->value(m_output);
+  int i = m_enumManager->value(prop);
+  if (i < 0) return "";
+  return m_enumManager->enumNames(prop)[i];
 }
 
 /**
- * Set new value to the Output property.
+ * Set a new value of a string algorithm property with predefined set of values.
+ * @param prop :: The corresponding QtProperty.
  * @param value :: The new value.
  */
-void FitOptionsBrowser::setOutput(const QString& value)
+void FitOptionsBrowser::setStringEnumProperty(QtProperty* prop, const QString& value)
 {
-  m_stringManager->setValue(m_output,value);
+  int i = m_enumManager->enumNames(prop).indexOf(value);
+  if (i >= 0)
+    m_enumManager->setValue(prop,i);
 }
 
 /**
- * Get the value of the IgnoreInvalidData property.
+ * Get the value of a string algorithm property.
+ * @param prop :: The corresponding QtProperty.
  */
-QString FitOptionsBrowser::getIgnoreInvalidData() const
+QString FitOptionsBrowser::getStringProperty(QtProperty* prop) const
 {
-  return QString::number(m_boolManager->value(m_ignoreInvalidData));
+  return m_stringManager->value(prop);
 }
 
 /**
- * Set new value to the IgnoreInvalidData property.
+ * Set a new value of a string algorithm property.
+ * @param prop :: The corresponding QtProperty.
  * @param value :: The new value.
  */
-void FitOptionsBrowser::setIgnoreInvalidData(const QString& value)
+void FitOptionsBrowser::setStringProperty(QtProperty* prop, const QString& value)
 {
-  bool boolValue = (value == "1") || (value == "true");
-  m_boolManager->setValue( m_ignoreInvalidData, boolValue );
+  m_stringManager->setValue(prop, value);
 }
 
+// ------------------------------------------------------------------------------------//
+
 /**
  * Save the last property values in settings.
  * @param settings :: A QSettings instance provided by the user of this class.
  */
 void FitOptionsBrowser::saveSettings(QSettings& settings) const
 {
-  for(auto p = m_getters.constBegin(); p != m_getters.constEnd(); ++p)
+  for(auto p = m_propertyNameMap.constBegin(); p != m_propertyNameMap.constEnd(); ++p)
   {
-    auto f = p.value();
-    settings.setValue( p.key(), (this->*f)() );
+    auto prop = p.value();
+    auto f = m_getters[prop];
+    settings.setValue( p.key(), (this->*f)(prop) );
   }
 }
 
@@ -498,17 +653,81 @@ void FitOptionsBrowser::saveSettings(QSettings& settings) const
  */
 void FitOptionsBrowser::loadSettings(const QSettings& settings)
 {
-  for(auto p = m_setters.constBegin(); p != m_setters.constEnd(); ++p)
+  for(auto p = m_propertyNameMap.constBegin(); p != m_propertyNameMap.constEnd(); ++p)
   {
     QString value = settings.value( p.key() ).toString();
     if ( !value.isEmpty() )
     {
-      auto f = p.value();
-      (this->*f)( value );
+      auto prop = p.value();
+      auto f = m_setters[prop];
+      (this->*f)(prop, value);
     }
   }
 }
 
+/**
+ * Get the current fitting type, ie which algorithm to use:
+ *    Simultaneous for Fit and Sequential for PlotPeakByLogValue.
+ */
+FitOptionsBrowser::FittingType FitOptionsBrowser::getCurrentFittingType() const
+{
+  auto value = m_enumManager->value(m_fittingTypeProp);
+  return static_cast<FitOptionsBrowser::FittingType>(value);
+}
+
+/**
+ * Set the current fitting type, ie which algorithm to use:
+ *    Simultaneous for Fit and Sequential for PlotPeakByLogValue.
+ */
+void FitOptionsBrowser::setCurrentFittingType(FitOptionsBrowser::FittingType fitType)
+{
+  m_enumManager->setValue(m_fittingTypeProp, fitType);
+}
+
+/**
+ * Lock the browser in a particular fitting type state. Disable the switch option.
+ * @param fitType :: Fitting type to lock the browser in.
+ */
+void FitOptionsBrowser::lockCurrentFittingType(FitOptionsBrowser::FittingType fitType)
+{
+  m_enumManager->setValue(m_fittingTypeProp, fitType);
+  m_fittingTypeProp->setEnabled(false);
+}
+
+/**
+ * Make the fitting type changeable again.
+ */
+void FitOptionsBrowser::unlockCurrentFittingType()
+{
+  m_fittingTypeProp->setEnabled(true);
+}
+
+/**
+ * Define log names to use with the LogValue property.
+ * @param logNames :: The log names
+ */
+void FitOptionsBrowser::setLogNames(const QStringList& logNames)
+{
+  auto i = m_enumManager->value(m_logValue);
+  if (!logNames.isEmpty() && logNames.front().isEmpty())
+  {
+    m_enumManager->setEnumNames(m_logValue, logNames);
+  }
+  else
+  {
+    QStringList names = logNames;
+    names.insert(0,"");
+    m_enumManager->setEnumNames(m_logValue, names);
+  }
+  if (i < logNames.size())
+  {
+    m_enumManager->setValue(m_logValue, i);
+  }
+  else
+  {
+    m_enumManager->setValue(m_logValue, 0);
+  }
+}
 
 } // MantidWidgets
 } // MantidQt
diff --git a/Code/Mantid/MantidQt/MantidWidgets/src/FitPropertyBrowser.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/FitPropertyBrowser.cpp
index 79aa704b506e9c5de7a1a506038ae69d593dfa28..7f4c7dfae0f74b12b2c3328f362676c483bc09a0 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/src/FitPropertyBrowser.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/FitPropertyBrowser.cpp
@@ -232,8 +232,7 @@ void FitPropertyBrowser::init()
 
   m_enumManager->setEnumNames(m_minimizer, m_minimizers);
   m_costFunction = m_enumManager->addProperty("Cost function");
-  m_costFunctions << "Least squares" << "Rwp";
-                  //<< "Ignore positive peaks";
+  m_costFunctions << "Least squares" << "Rwp" << "Unweighted least squares";
   m_enumManager->setEnumNames(m_costFunction,m_costFunctions);
   m_maxIterations = m_intManager->addProperty("Max Iterations");
   m_intManager->setValue( m_maxIterations, settings.value("Max Iterations",500).toInt() );
diff --git a/Code/Mantid/MantidQt/MantidWidgets/src/FunctionBrowser.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/FunctionBrowser.cpp
index 6a1fec1998500607aeb2285e94c3e85923cbb12e..81fe73bff6e7fa821093ec0642caf90cb2cd7099 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/src/FunctionBrowser.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/FunctionBrowser.cpp
@@ -165,6 +165,7 @@ void FunctionBrowser::createBrowser()
 
   m_browser->setContextMenuPolicy(Qt::CustomContextMenu);
   connect(m_browser, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(popupMenu(const QPoint &)));
+  connect(m_browser, SIGNAL(optionChanged(QtProperty*, const QString&, bool)), this, SLOT(globalChanged(QtProperty*, const QString&, bool)));
 
   connect(m_attributeStringManager,SIGNAL(propertyChanged(QtProperty*)),this,SLOT(attributeChanged(QtProperty*)));
   connect(m_attributeDoubleManager,SIGNAL(propertyChanged(QtProperty*)),this,SLOT(attributeChanged(QtProperty*)));
@@ -1649,6 +1650,39 @@ void FunctionBrowser::removeFunction()
   if (!isFunction(prop)) return;
   removeProperty(prop);
   updateFunctionIndices();
+
+  // After removing a function we could end up with
+  // a CompositeFunction with only one function
+  // In this case, the function should be kept but
+  // the composite function should be removed
+  auto props = m_browser->properties();
+  if (!props.isEmpty()) {
+    // The function browser is not empty
+
+    // Check if the current function in the browser is a
+    // composite function
+    auto topProp = props[0];
+    auto fun = Mantid::API::FunctionFactory::Instance().createFunction(
+        topProp->propertyName().toStdString());
+    auto cf = boost::dynamic_pointer_cast<Mantid::API::CompositeFunction>(fun);
+    if (cf) {
+      // If it is a composite function
+      // check that there are more than one function
+      // which means more than two subproperties
+      size_t nFunctions = props[0]->subProperties().size() - 1;
+
+      if (nFunctions == 1) {
+        // If only one function remains, remove the composite function:
+        // Temporary copy the remaining function
+        auto func = getFunction(m_browser->properties()[0]->subProperties()[1]);
+        // Remove the composite function
+        m_browser->removeProperty(topProp);
+        // Add the temporary stored function
+        setFunction(func);
+      }
+    }
+  }
+
   emit functionStructureChanged();
 }
 
@@ -2189,6 +2223,13 @@ void FunctionBrowser::setColumnSizes(int s0, int s1, int s2)
   m_browser->setColumnSizes(s0, s1, s2);
 }
 
+/**
+ * Emit a signal when any of the Global options change.
+ */
+void FunctionBrowser::globalChanged(QtProperty*, const QString&, bool)
+{
+  emit globalsChanged();
+}
 
 } // MantidWidgets
 } // MantidQt
diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InputController.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/InputController.cpp
similarity index 98%
rename from Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InputController.cpp
rename to Code/Mantid/MantidQt/MantidWidgets/src/InputController.cpp
index 975dbd2960d451567afd0838fcac84862af4301d..b707dea7b2dd8c6e402b5d0c3b5745f80c846bec 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InputController.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/InputController.cpp
@@ -1,4 +1,4 @@
-#include "InputController.h"
+#include "MantidQtMantidWidgets/InputController.h"
 
 #include <QMouseEvent>
 #include <QPainter>
@@ -8,6 +8,9 @@
 
 #include <iostream>
 
+namespace MantidQt {
+namespace MantidWidgets {
+
 //--------------------------------------------------------------------------------
 
 InputController::InputController(QObject *parent, bool contextAllowed) :
@@ -418,4 +421,6 @@ void InputControllerErase::drawCursor()
 
     m_rect.setSize( QSize(m_size,m_size) );
 }
+}
+}
 
diff --git a/Code/Mantid/MantidQt/MantidWidgets/src/MessageDisplay.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/MessageDisplay.cpp
index fe94295a70ad5c1f682ef372fb5eb09f09d54ec9..15b8665cd3c0722775740612463a96609e050128 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/src/MessageDisplay.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/MessageDisplay.cpp
@@ -12,6 +12,7 @@
 #include <QPlainTextEdit>
 #include <QPoint>
 #include <QScrollBar>
+#include <QSettings>
 #include <QSignalMapper>
 
 #include <Poco/Logger.h>
@@ -33,7 +34,7 @@ namespace MantidQt
      * @param parent An optional parent widget
      */
     MessageDisplay::MessageDisplay(QWidget *parent)
-    : QWidget(parent), m_logLevelControl(DisableLogLevelControl), m_logChannel(new API::QtSignalChannel),
+    : QWidget(parent), m_logLevelControl(DisableLogLevelControl), m_logChannel(new API::QtSignalChannel),m_filterChannel(new Poco::FilterChannel),
       m_textDisplay(new QPlainTextEdit(this)), m_formats(), m_loglevels(new QActionGroup(this)), m_logLevelMapping(new QSignalMapper(this)),
       m_error(new QAction(tr("&Error"), this)), m_warning(new QAction(tr("&Warning"), this)),
       m_notice(new QAction(tr("&Notice"), this)), m_information(new QAction(tr("&Information"), this)),
@@ -50,7 +51,7 @@ namespace MantidQt
      * @param parent An optional parent widget
      */
     MessageDisplay::MessageDisplay(LogLevelControl logLevelControl, QWidget *parent)
-    : QWidget(parent), m_logLevelControl(logLevelControl), m_logChannel(new API::QtSignalChannel),
+    : QWidget(parent), m_logLevelControl(logLevelControl), m_logChannel(new API::QtSignalChannel),m_filterChannel(new Poco::FilterChannel),
       m_textDisplay(new QPlainTextEdit(this)), m_loglevels(new QActionGroup(this)), m_logLevelMapping(new QSignalMapper(this)),
       m_error(new QAction(tr("&Error"), this)), m_warning(new QAction(tr("&Warning"), this)),
       m_notice(new QAction(tr("&Notice"), this)), m_information(new QAction(tr("&Information"), this)),
@@ -65,8 +66,11 @@ namespace MantidQt
      */
     MessageDisplay::~MessageDisplay()
     {
+      QSettings settings;
+      settings.writeEntry("MessageDisplayPriority", static_cast <int>(m_filterChannel->getPriority()));
       // The Channel class is ref counted and will
       // delete itself when required
+      m_filterChannel->release();
       m_logChannel->release();
       delete m_textDisplay;
     }
@@ -83,12 +87,17 @@ namespace MantidQt
       // The root channel might be a SplitterChannel
       if(auto *splitChannel = dynamic_cast<Poco::SplitterChannel*>(rootChannel))
       {
-        splitChannel->addChannel(m_logChannel);
+        splitChannel->addChannel(m_filterChannel);
       }
       else
       {
-        Poco::Logger::setChannel(rootLogger.name(), m_logChannel);
+        Poco::Logger::setChannel(rootLogger.name(), m_filterChannel);
       }
+      m_filterChannel->addChannel(m_logChannel);
+      
+      QSettings settings;
+      int priority = settings.readNumEntry("MessageDisplayPriority", Message::Priority::PRIO_NOTICE);
+      m_filterChannel->setPriority(priority);
 
       connect(m_logChannel, SIGNAL(messageReceived(const Message&)),
           this, SLOT(append(const Message &)));
@@ -254,7 +263,13 @@ namespace MantidQt
         logLevelMenu->addAction(m_debug);
 
         //check the right level
-        int level = Mantid::Kernel::Logger("").getLevel(); //get the root logger logging level
+        int level = m_filterChannel->getPriority(); 
+        //get the root logger logging level
+        int rootLevel = Poco::Logger::root().getLevel();
+        if (rootLevel < level) {
+          level = rootLevel;
+        }
+
         if (level == Poco::Message::PRIO_ERROR)
           m_error->setChecked(true);
         if (level == Poco::Message::PRIO_WARNING)
@@ -263,7 +278,7 @@ namespace MantidQt
           m_notice->setChecked(true);
         if (level == Poco::Message::PRIO_INFORMATION)
           m_information->setChecked(true);
-        if (level == Poco::Message::PRIO_DEBUG)
+        if (level >= Poco::Message::PRIO_DEBUG)
           m_debug->setChecked(true);
       }
 
@@ -277,7 +292,14 @@ namespace MantidQt
      */
     void MessageDisplay::setGlobalLogLevel(int priority)
     {
-      Mantid::Kernel::Logger::setLevelForAll(priority);
+      //set Local filter level
+      m_filterChannel->setPriority(priority);
+      //if this is higher than the global level then that will have to be lowered to work
+      int rootLevel = Poco::Logger::root().getLevel();
+      if (rootLevel < priority)
+      {
+         Mantid::Kernel::Logger::setLevelForAll(priority);
+      }
     }
 
     //-----------------------------------------------------------------------------
@@ -311,7 +333,7 @@ namespace MantidQt
       connect(m_information, SIGNAL(activated()), m_logLevelMapping, SLOT (map()));
       connect(m_debug, SIGNAL(activated()), m_logLevelMapping, SLOT (map()));
 
-      connect(m_logLevelMapping, SIGNAL(mapped(int)), m_logChannel, SLOT(setGlobalLogLevel(int)));
+      connect(m_logLevelMapping, SIGNAL(mapped(int)), this, SLOT(setGlobalLogLevel(int)));
     }
 
     /**
diff --git a/Code/Mantid/MantidQt/MantidWidgets/src/PreviewPlot.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/PreviewPlot.cpp
index 2d239741f84dedb88b01c8f8884f92e94974da74..70647142c5fc280a0308c7710fe61b9e88b575b6 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/src/PreviewPlot.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/PreviewPlot.cpp
@@ -5,6 +5,7 @@
 
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/AlgorithmManager.h"
+#include "MantidAPI/MatrixWorkspace.h"
 
 #include <Poco/Notification.h>
 #include <Poco/NotificationCenter.h>
@@ -23,33 +24,33 @@
 using namespace MantidQt::MantidWidgets;
 using namespace Mantid::API;
 
-namespace
-{
-  Mantid::Kernel::Logger g_log("PreviewPlot");
-  bool isNegative(double v) { return v <= 0.0; }
+namespace {
+Mantid::Kernel::Logger g_log("PreviewPlot");
+bool isNegative(double v) { return v <= 0.0; }
 }
 
-
-PreviewPlot::PreviewPlot(QWidget *parent, bool init) : API::MantidWidget(parent),
-  m_removeObserver(*this, &PreviewPlot::handleRemoveEvent),
-  m_replaceObserver(*this, &PreviewPlot::handleReplaceEvent),
-  m_init(init), m_curves(),
-  m_magnifyTool(NULL), m_panTool(NULL), m_zoomTool(NULL),
-  m_contextMenu(new QMenu(this)), m_showLegendAction(NULL)
-{
+PreviewPlot::PreviewPlot(QWidget *parent, bool init)
+    : API::MantidWidget(parent),
+      m_removeObserver(*this, &PreviewPlot::handleRemoveEvent),
+      m_replaceObserver(*this, &PreviewPlot::handleReplaceEvent), m_init(init),
+      m_curves(), m_magnifyTool(NULL), m_panTool(NULL), m_zoomTool(NULL),
+      m_contextMenu(new QMenu(this)), m_showLegendAction(NULL),
+      m_showErrorsMenuAction(NULL), m_showErrorsMenu(NULL),
+      m_errorBarOptionCache() {
   m_uiForm.setupUi(this);
   m_uiForm.loLegend->addStretch();
 
-  if(init)
-  {
-    AnalysisDataServiceImpl& ads = AnalysisDataService::Instance();
+  if (init) {
+    AnalysisDataServiceImpl &ads = AnalysisDataService::Instance();
     ads.notificationCenter.addObserver(m_removeObserver);
     ads.notificationCenter.addObserver(m_replaceObserver);
   }
 
   // Setup plot manipulation tools
-  m_zoomTool = new QwtPlotZoomer(QwtPlot::xBottom, QwtPlot::yLeft,
-      QwtPicker::DragSelection | QwtPicker::CornerToCorner, QwtPicker::AlwaysOff, m_uiForm.plot->canvas());
+  m_zoomTool =
+      new QwtPlotZoomer(QwtPlot::xBottom, QwtPlot::yLeft,
+                        QwtPicker::DragSelection | QwtPicker::CornerToCorner,
+                        QwtPicker::AlwaysOff, m_uiForm.plot->canvas());
   m_zoomTool->setEnabled(false);
 
   m_panTool = new QwtPlotPanner(m_uiForm.plot->canvas());
@@ -61,16 +62,20 @@ PreviewPlot::PreviewPlot(QWidget *parent, bool init) : API::MantidWidget(parent)
 
   // Handle showing the context menu
   m_uiForm.plot->setContextMenuPolicy(Qt::CustomContextMenu);
-  connect(m_uiForm.plot, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showContextMenu(QPoint)));
+  connect(m_uiForm.plot, SIGNAL(customContextMenuRequested(QPoint)), this,
+          SLOT(showContextMenu(QPoint)));
 
   // Create the plot tool list for context menu
   m_plotToolGroup = new QActionGroup(m_contextMenu);
   m_plotToolGroup->setExclusive(true);
 
   QStringList plotTools;
-  plotTools << "None" << "Pan" << "Zoom";
-  QList<QAction *> plotToolActions = addOptionsToMenus("Plot Tools", m_plotToolGroup, plotTools, "None");
-  for(auto it = plotToolActions.begin(); it != plotToolActions.end(); ++it)
+  plotTools << "None"
+            << "Pan"
+            << "Zoom";
+  QList<QAction *> plotToolActions =
+      addOptionsToMenus("Plot Tools", m_plotToolGroup, plotTools, "None");
+  for (auto it = plotToolActions.begin(); it != plotToolActions.end(); ++it)
     connect(*it, SIGNAL(triggered()), this, SLOT(handleViewToolSelect()));
 
   // Create the reset plot view option
@@ -85,9 +90,12 @@ PreviewPlot::PreviewPlot(QWidget *parent, bool init) : API::MantidWidget(parent)
   m_xAxisTypeGroup->setExclusive(true);
 
   QStringList xAxisTypes;
-  xAxisTypes << "Linear" << "Logarithmic" << "Squared";
-  QList<QAction *> xAxisTypeActions = addOptionsToMenus("X Axis", m_xAxisTypeGroup, xAxisTypes, "Linear");
-  for(auto it = xAxisTypeActions.begin(); it != xAxisTypeActions.end(); ++it)
+  xAxisTypes << "Linear"
+             << "Logarithmic"
+             << "Squared";
+  QList<QAction *> xAxisTypeActions =
+      addOptionsToMenus("X Axis", m_xAxisTypeGroup, xAxisTypes, "Linear");
+  for (auto it = xAxisTypeActions.begin(); it != xAxisTypeActions.end(); ++it)
     connect(*it, SIGNAL(triggered()), this, SLOT(handleAxisTypeSelect()));
 
   // Create the X axis type list for context menu
@@ -95,9 +103,11 @@ PreviewPlot::PreviewPlot(QWidget *parent, bool init) : API::MantidWidget(parent)
   m_yAxisTypeGroup->setExclusive(true);
 
   QStringList yAxisTypes;
-  yAxisTypes << "Linear" << "Logarithmic";
-  QList<QAction *> yAxisTypeActions = addOptionsToMenus("Y Axis", m_yAxisTypeGroup, yAxisTypes, "Linear");
-  for(auto it = yAxisTypeActions.begin(); it != yAxisTypeActions.end(); ++it)
+  yAxisTypes << "Linear"
+             << "Logarithmic";
+  QList<QAction *> yAxisTypeActions =
+      addOptionsToMenus("Y Axis", m_yAxisTypeGroup, yAxisTypes, "Linear");
+  for (auto it = yAxisTypeActions.begin(); it != yAxisTypeActions.end(); ++it)
     connect(*it, SIGNAL(triggered()), this, SLOT(handleAxisTypeSelect()));
 
   m_contextMenu->addSeparator();
@@ -105,61 +115,72 @@ PreviewPlot::PreviewPlot(QWidget *parent, bool init) : API::MantidWidget(parent)
   // Create the show legend option
   m_showLegendAction = new QAction("Show Legend", m_contextMenu);
   m_showLegendAction->setCheckable(true);
-  connect(m_showLegendAction, SIGNAL(toggled(bool)), this, SLOT(showLegend(bool)));
+  connect(m_showLegendAction, SIGNAL(toggled(bool)), this,
+          SLOT(showLegend(bool)));
   m_contextMenu->addAction(m_showLegendAction);
 
+  // Create the show errors option
+  m_showErrorsMenuAction = new QAction("Error Bars:", m_contextMenu);
+  m_showErrorsMenu = new QMenu(m_contextMenu);
+  m_showErrorsMenuAction->setMenu(m_showErrorsMenu);
+  m_contextMenu->addAction(m_showErrorsMenuAction);
+
   connect(this, SIGNAL(needToReplot()), this, SLOT(replot()));
   connect(this, SIGNAL(needToHardReplot()), this, SLOT(hardReplot()));
 }
 
-
 /**
  * Destructor
  *
  * Removes observers on the ADS.
  */
-PreviewPlot::~PreviewPlot()
-{
-  if(m_init)
-  {
-    AnalysisDataService::Instance().notificationCenter.removeObserver(m_removeObserver);
-    AnalysisDataService::Instance().notificationCenter.removeObserver(m_replaceObserver);
+PreviewPlot::~PreviewPlot() {
+  if (m_init) {
+    AnalysisDataService::Instance().notificationCenter.removeObserver(
+        m_removeObserver);
+    AnalysisDataService::Instance().notificationCenter.removeObserver(
+        m_replaceObserver);
   }
 }
 
-
 /**
  * Gets the background colour of the plot window.
  *
  * @return Plot canvas colour
  */
-QColor PreviewPlot::canvasColour()
-{
-  return m_uiForm.plot->canvasBackground();
-}
-
+QColor PreviewPlot::canvasColour() { return m_uiForm.plot->canvasBackground(); }
 
 /**
  * Sets the background colour of the plot window.
  *
  * @param colour Plot canvas colour
  */
-void PreviewPlot::setCanvasColour(const QColor & colour)
-{
+void PreviewPlot::setCanvasColour(const QColor &colour) {
   m_uiForm.plot->setCanvasBackground(QBrush(colour));
 }
 
-
 /**
  * Checks to see if the plot legend is visible.
  *
  * @returns True if the legend is shown
  */
-bool PreviewPlot::legendIsShown()
-{
-  return m_showLegendAction->isChecked();
-}
+bool PreviewPlot::legendIsShown() { return m_showLegendAction->isChecked(); }
 
+/**
+ * Gets a list of curves that have their error bars shown.
+ *
+ * @return List of curve names with error bars shown
+ */
+QStringList PreviewPlot::getShownErrorBars() {
+  QStringList curvesWithErrors;
+
+  for (auto it = m_curves.begin(); it != m_curves.end(); ++it) {
+    if (it.value().showErrorsAction->isChecked())
+      curvesWithErrors << it.key();
+  }
+
+  return curvesWithErrors;
+}
 
 /**
  * Sets the range of the given axis scale to a given range.
@@ -167,45 +188,41 @@ bool PreviewPlot::legendIsShown()
  * @param range Pair of values for range
  * @param axisID ID of axis
  */
-void PreviewPlot::setAxisRange(QPair<double, double> range, int axisID)
-{
-  if(range.first > range.second)
+void PreviewPlot::setAxisRange(QPair<double, double> range, int axisID) {
+  if (range.first > range.second)
     throw std::runtime_error("Supplied range is invalid.");
 
   m_uiForm.plot->setAxisScale(axisID, range.first, range.second);
   emit needToReplot();
 }
 
-
 /**
  * Gets the X range of a curve given a pointer to the workspace.
  *
  * @param ws Pointer to workspace
  */
-QPair<double, double> PreviewPlot::getCurveRange(const Mantid::API::MatrixWorkspace_sptr ws)
-{
+QPair<double, double>
+PreviewPlot::getCurveRange(const Mantid::API::MatrixWorkspace_sptr ws) {
   QStringList curveNames = getCurvesForWorkspace(ws);
 
-  if(curveNames.size() == 0)
+  if (curveNames.size() == 0)
     throw std::runtime_error("Curve for workspace not found.");
 
   return getCurveRange(curveNames[0]);
 }
 
-
 /**
  * Gets the X range of a curve given its name.
  *
  * @param curveName Name of curve
  */
-QPair<double, double> PreviewPlot::getCurveRange(const QString & curveName)
-{
-  if(!m_curves.contains(curveName))
+QPair<double, double> PreviewPlot::getCurveRange(const QString &curveName) {
+  if (!m_curves.contains(curveName))
     throw std::runtime_error("Curve not on preview plot.");
 
   size_t numPoints = m_curves[curveName].curve->data().size();
 
-  if(numPoints < 2)
+  if (numPoints < 2)
     return qMakePair(0.0, 0.0);
 
   double low = m_curves[curveName].curve->data().x(0);
@@ -214,7 +231,6 @@ QPair<double, double> PreviewPlot::getCurveRange(const QString & curveName)
   return qMakePair(low, high);
 }
 
-
 /**
  * Adds a workspace to the preview plot given a pointer to it.
  *
@@ -223,15 +239,37 @@ QPair<double, double> PreviewPlot::getCurveRange(const QString & curveName)
  * @param specIndex Spectrum index to plot
  * @param curveColour Colour of curve to plot
  */
-void PreviewPlot::addSpectrum(const QString & curveName, const MatrixWorkspace_sptr ws,
-    const size_t specIndex, const QColor & curveColour)
-{
+void PreviewPlot::addSpectrum(const QString &curveName,
+                              const MatrixWorkspace_sptr ws,
+                              const size_t specIndex,
+                              const QColor &curveColour) {
+  if (curveName.isEmpty()) {
+    g_log.warning("Cannot plot with empty curve name");
+    return;
+  }
+
+  if (!ws) {
+    g_log.warning("Cannot plot null workspace");
+    return;
+  }
+
   // Remove the existing curve if it exists
-  if(m_curves.contains(curveName))
+  if (m_curves.contains(curveName))
     removeSpectrum(curveName);
 
+  // Add the error bar option
+  m_curves[curveName].showErrorsAction =
+      new QAction(curveName, m_showErrorsMenuAction);
+  m_curves[curveName].showErrorsAction->setCheckable(true);
+  if (m_errorBarOptionCache.contains(curveName))
+    m_curves[curveName].showErrorsAction->setChecked(
+        m_errorBarOptionCache[curveName]);
+  connect(m_curves[curveName].showErrorsAction, SIGNAL(toggled(bool)), this,
+          SIGNAL(needToHardReplot()));
+  m_showErrorsMenu->addAction(m_curves[curveName].showErrorsAction);
+
   // Create the curve
-  QwtPlotCurve * curve = addCurve(ws, specIndex, curveColour);
+  addCurve(m_curves[curveName], ws, specIndex, curveColour);
 
   // Create the curve label
   QLabel *label = new QLabel(curveName);
@@ -243,7 +281,6 @@ void PreviewPlot::addSpectrum(const QString & curveName, const MatrixWorkspace_s
   label->setVisible(legendIsShown());
 
   m_curves[curveName].ws = ws;
-  m_curves[curveName].curve = curve;
   m_curves[curveName].label = label;
   m_curves[curveName].colour = curveColour;
   m_curves[curveName].wsIndex = specIndex;
@@ -252,7 +289,6 @@ void PreviewPlot::addSpectrum(const QString & curveName, const MatrixWorkspace_s
   emit needToReplot();
 }
 
-
 /**
  * Adds a workspace to the preview plot given its name.
  *
@@ -261,48 +297,66 @@ void PreviewPlot::addSpectrum(const QString & curveName, const MatrixWorkspace_s
  * @param specIndex Spectrum index to plot
  * @param curveColour Colour of curve to plot
  */
-void PreviewPlot::addSpectrum(const QString & curveName, const QString & wsName,
-        const size_t specIndex, const QColor & curveColour)
-{
+void PreviewPlot::addSpectrum(const QString &curveName, const QString &wsName,
+                              const size_t specIndex,
+                              const QColor &curveColour) {
+  if (wsName.isEmpty()) {
+    g_log.error("Cannot plot with empty workspace name");
+    return;
+  }
+
   // Try to get a pointer from the name
   std::string wsNameStr = wsName.toStdString();
-  auto ws = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(wsName.toStdString());
+  auto ws = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(
+      wsName.toStdString());
 
-  if(!ws)
-    throw std::runtime_error(wsNameStr + " is not a MatrixWorkspace, not supported by PreviewPlot.");
+  if (!ws)
+    throw std::runtime_error(
+        wsNameStr + " is not a MatrixWorkspace, not supported by PreviewPlot.");
 
   addSpectrum(curveName, ws, specIndex, curveColour);
 }
 
-
 /**
  * Removes spectra from a given workspace from the plot given a pointer to it.
  *
- * If multiple curves are plotted form the same workspace then all will be removed.
+ * If multiple curves are plotted form the same workspace then all will be
+ * removed.
  *
  * @param ws Pointer to workspace
  */
-void PreviewPlot::removeSpectrum(const MatrixWorkspace_sptr ws)
-{
+void PreviewPlot::removeSpectrum(const MatrixWorkspace_sptr ws) {
+  if (!ws) {
+    g_log.error("Cannot remove curve for null workspace");
+    return;
+  }
+
   QStringList curveNames = getCurvesForWorkspace(ws);
 
-  for(auto it = curveNames.begin(); it != curveNames.end(); ++it)
+  for (auto it = curveNames.begin(); it != curveNames.end(); ++it)
     removeSpectrum(*it);
 }
 
-
 /**
  * Removes spectra from a given workspace from the plot given its name.
  *
  * @param curveName Name of curve
  */
-void PreviewPlot::removeSpectrum(const QString & curveName)
-{
+void PreviewPlot::removeSpectrum(const QString &curveName) {
+  if (curveName.isEmpty()) {
+    g_log.error("Cannot remove curve with empty name");
+    return;
+  }
+
   // Remove the curve object and legend label
-  if(m_curves.contains(curveName))
-  {
+  if (m_curves.contains(curveName)) {
     removeCurve(m_curves[curveName].curve);
+    removeCurve(m_curves[curveName].errorCurve);
     m_uiForm.loLegend->removeWidget(m_curves[curveName].label);
+    m_errorBarOptionCache[curveName] =
+        m_curves[curveName].showErrorsAction->isChecked();
+    m_showErrorsMenu->removeAction(m_curves[curveName].showErrorsAction);
+    delete m_curves[curveName].showErrorsAction;
     delete m_curves[curveName].label;
   }
 
@@ -310,25 +364,22 @@ void PreviewPlot::removeSpectrum(const QString & curveName)
   auto it = m_curves.find(curveName);
 
   // Remove the curve from the map
-  if(it != m_curves.end())
+  if (it != m_curves.end())
     m_curves.erase(it);
 
   emit needToReplot();
 }
 
-
 /**
  * Checks to see if a given curve name is present on the plot.
  *
  * @param curveName Curve name
  * @return True if curve is on plot
  */
-bool PreviewPlot::hasCurve(const QString & curveName)
-{
+bool PreviewPlot::hasCurve(const QString &curveName) {
   return m_curves.contains(curveName);
 }
 
-
 /**
  * Creates a RangeSelector, adds it to the plot and stores it.
  *
@@ -336,115 +387,118 @@ bool PreviewPlot::hasCurve(const QString & curveName)
  * @param type Type of range selector to add
  * @return RangeSelector object
  */
-RangeSelector * PreviewPlot::addRangeSelector(const QString & rsName,
-                                              RangeSelector::SelectType type)
-{
-  if(hasRangeSelector(rsName))
+RangeSelector *PreviewPlot::addRangeSelector(const QString &rsName,
+                                             RangeSelector::SelectType type) {
+  if (hasRangeSelector(rsName))
     throw std::runtime_error("RangeSelector already exists on PreviewPlot");
 
-  m_rangeSelectors[rsName] = new MantidWidgets::RangeSelector(m_uiForm.plot, type);
+  m_rangeSelectors[rsName] =
+      new MantidWidgets::RangeSelector(m_uiForm.plot, type);
   m_rsVisibility[rsName] = m_rangeSelectors[rsName]->isVisible();
 
   return m_rangeSelectors[rsName];
 }
 
-
 /**
  * Gets a RangeSelector.
  *
  * @param rsName Name of range selector
  * @return RangeSelector object
  */
-RangeSelector * PreviewPlot::getRangeSelector(const QString & rsName)
-{
-  if(!hasRangeSelector(rsName))
+RangeSelector *PreviewPlot::getRangeSelector(const QString &rsName) {
+  if (!hasRangeSelector(rsName))
     throw std::runtime_error("RangeSelector not found on PreviewPlot");
 
   return m_rangeSelectors[rsName];
 }
 
-
 /**
  * Removes a RangeSelector from the plot.
  *
  * @param rsName Name of range selector
  * @param del If the object should be deleted
  */
-void PreviewPlot::removeRangeSelector(const QString & rsName, bool del = true)
-{
-  if(!hasRangeSelector(rsName))
+void PreviewPlot::removeRangeSelector(const QString &rsName, bool del = true) {
+  if (!hasRangeSelector(rsName))
     return;
 
-  if(del)
+  if (del)
     delete m_rangeSelectors[rsName];
 
   m_rangeSelectors.remove(rsName);
 }
 
-
 /**
  * Checks to see if a range selector with a given name is on the plot.
  *
  * @param rsName Name of range selector
  * @return True if the plot has a range selector with the given name
  */
-bool PreviewPlot::hasRangeSelector(const QString & rsName)
-{
+bool PreviewPlot::hasRangeSelector(const QString &rsName) {
   return m_rangeSelectors.contains(rsName);
 }
 
-
 /**
  * Shows or hides the plot legend.
  *
  * @param show If the legend should be shown
  */
-void PreviewPlot::showLegend(bool show)
-{
+void PreviewPlot::showLegend(bool show) {
   m_showLegendAction->setChecked(show);
 
-  for(auto it = m_curves.begin(); it != m_curves.end(); ++it)
+  for (auto it = m_curves.begin(); it != m_curves.end(); ++it)
     it.value().label->setVisible(show);
 }
 
+/**
+ * Show error bars for the given curves and set a marker that if any curves
+ * added with a given name will have error bars.
+ *
+ * @param curveNames List of curve names to show error bars of
+ */
+void PreviewPlot::setDefaultShownErrorBars(const QStringList &curveNames) {
+  for (auto it = curveNames.begin(); it != curveNames.end(); ++it) {
+    m_errorBarOptionCache[*it] = true;
+
+    if (m_curves.contains(*it))
+      m_curves[*it].showErrorsAction->setChecked(true);
+  }
+
+  emit needToHardReplot();
+}
 
 /**
  * Toggles the pan plot tool.
  *
  * @param enabled If the tool should be enabled
  */
-void PreviewPlot::togglePanTool(bool enabled)
-{
+void PreviewPlot::togglePanTool(bool enabled) {
   // First disbale the zoom tool
-  if(enabled && m_zoomTool->isEnabled())
+  if (enabled && m_zoomTool->isEnabled())
     m_zoomTool->setEnabled(false);
 
   m_panTool->setEnabled(enabled);
   m_magnifyTool->setEnabled(enabled);
 }
 
-
 /**
  * Toggles the zoom plot tool.
  *
  * @param enabled If the tool should be enabled
  */
-void PreviewPlot::toggleZoomTool(bool enabled)
-{
+void PreviewPlot::toggleZoomTool(bool enabled) {
   // First disbale the pan tool
-  if(enabled && m_panTool->isEnabled())
+  if (enabled && m_panTool->isEnabled())
     m_panTool->setEnabled(false);
 
   m_zoomTool->setEnabled(enabled);
   m_magnifyTool->setEnabled(enabled);
 }
 
-
 /**
  * Resets the view to a sensible default.
  */
-void PreviewPlot::resetView()
-{
+void PreviewPlot::resetView() {
   // Auto scale the axis
   m_uiForm.plot->setAxisAutoScale(QwtPlot::xBottom);
   m_uiForm.plot->setAxisAutoScale(QwtPlot::yLeft);
@@ -453,40 +507,38 @@ void PreviewPlot::resetView()
   m_zoomTool->setZoomBase(true);
 }
 
-
 /**
  * Resizes the X axis scale range to exactly fir the curves currently
  * plotted on it.
  */
-void PreviewPlot::resizeX()
-{
+void PreviewPlot::resizeX() {
   double low = DBL_MAX;
   double high = DBL_MIN;
 
-  for(auto it = m_curves.begin(); it != m_curves.end(); ++it)
-  {
+  for (auto it = m_curves.begin(); it != m_curves.end(); ++it) {
     auto range = getCurveRange(it.key());
 
-    if(range.first < low)
+    if (range.first < low)
       low = range.first;
 
-    if(range.second > high)
+    if (range.second > high)
       high = range.second;
   }
 
   setAxisRange(qMakePair(low, high), QwtPlot::xBottom);
 }
 
-
 /**
  * Removes all curves from the plot.
  */
-void PreviewPlot::clear()
-{
-  for(auto it = m_curves.begin(); it != m_curves.end(); ++it)
-  {
+void PreviewPlot::clear() {
+  for (auto it = m_curves.begin(); it != m_curves.end(); ++it) {
     removeCurve(it.value().curve);
+    removeCurve(it.value().errorCurve);
     m_uiForm.loLegend->removeWidget(it.value().label);
+    m_errorBarOptionCache[it.key()] = it.value().showErrorsAction->isChecked();
+    m_showErrorsMenu->removeAction(it.value().showErrorsAction);
+    delete it.value().showErrorsAction;
     delete it.value().label;
   }
 
@@ -495,33 +547,27 @@ void PreviewPlot::clear()
   emit needToReplot();
 }
 
-
 /**
  * Replots the curves shown on the plot.
  */
-void PreviewPlot::replot()
-{
-  m_uiForm.plot->replot();
-}
-
+void PreviewPlot::replot() { m_uiForm.plot->replot(); }
 
 /**
  * Removes all curves and re-adds them.
  */
-void PreviewPlot::hardReplot()
-{
+void PreviewPlot::hardReplot() {
   QStringList keys = m_curves.keys();
 
-  for(auto it = keys.begin(); it != keys.end(); ++it)
-  {
+  for (auto it = keys.begin(); it != keys.end(); ++it) {
     removeCurve(m_curves[*it].curve);
-    m_curves[*it].curve = addCurve(m_curves[*it].ws, m_curves[*it].wsIndex, m_curves[*it].colour);
+    removeCurve(m_curves[*it].errorCurve);
+    addCurve(m_curves[*it], m_curves[*it].ws, m_curves[*it].wsIndex,
+             m_curves[*it].colour);
   }
 
   emit needToReplot();
 }
 
-
 /**
  * Handle a workspace being deleted from ADS.
  *
@@ -529,12 +575,12 @@ void PreviewPlot::hardReplot()
  *
  * @param pNf Poco notification
  */
-void PreviewPlot::handleRemoveEvent(WorkspacePreDeleteNotification_ptr pNf)
-{
-  MatrixWorkspace_sptr ws = boost::dynamic_pointer_cast<MatrixWorkspace>(pNf->object());
+void PreviewPlot::handleRemoveEvent(WorkspacePreDeleteNotification_ptr pNf) {
+  MatrixWorkspace_sptr ws =
+      boost::dynamic_pointer_cast<MatrixWorkspace>(pNf->object());
 
   // Ignore non matrix worksapces
-  if(!ws)
+  if (!ws)
     return;
 
   // Remove the workspace
@@ -543,7 +589,6 @@ void PreviewPlot::handleRemoveEvent(WorkspacePreDeleteNotification_ptr pNf)
   emit needToReplot();
 }
 
-
 /**
  * Handle a workspace being modified in ADS.
  *
@@ -551,42 +596,44 @@ void PreviewPlot::handleRemoveEvent(WorkspacePreDeleteNotification_ptr pNf)
  *
  * @param pNf Poco notification
  */
-void PreviewPlot::handleReplaceEvent(WorkspaceAfterReplaceNotification_ptr pNf)
-{
-  MatrixWorkspace_sptr ws = boost::dynamic_pointer_cast<MatrixWorkspace>(pNf->object());
+void
+PreviewPlot::handleReplaceEvent(WorkspaceAfterReplaceNotification_ptr pNf) {
+  MatrixWorkspace_sptr ws =
+      boost::dynamic_pointer_cast<MatrixWorkspace>(pNf->object());
 
   // Ignore non matrix worksapces
-  if(!ws)
+  if (!ws)
     return;
 
-  if(getCurvesForWorkspace(ws).size() > 0)
+  if (getCurvesForWorkspace(ws).size() > 0)
     emit needToHardReplot();
 }
 
-
 /**
  * Creates a new curve and adds it to the plot.
  *
+ * @param curveConfig Curve configuration to add to
  * @param ws Worksapce pointer
  * @param specIndex Index of histogram to plot
  * @param curveColour Colour of curve
- * @return Pointer to new curve
  */
-QwtPlotCurve * PreviewPlot::addCurve(MatrixWorkspace_sptr ws, const size_t specIndex,
-   const QColor & curveColour)
-{
+void PreviewPlot::addCurve(PlotCurveConfiguration &curveConfig,
+                           MatrixWorkspace_sptr ws, const size_t specIndex,
+                           const QColor &curveColour) {
   // Check the spectrum index is in range
-  if(specIndex >= ws->getNumberHistograms())
+  if (specIndex >= ws->getNumberHistograms())
     throw std::runtime_error("Workspace index is out of range, cannot plot.");
 
   // Check the X axis is large enough
-  if(ws->readX(0).size() < 2)
-    throw std::runtime_error("X axis is too small to generate a histogram plot.");
+  if (ws->readX(0).size() < 2)
+    throw std::runtime_error(
+        "X axis is too small to generate a histogram plot.");
 
   // Convert X axis to squared if needed
-  if(getAxisType(QwtPlot::xBottom) == "Squared")
-  {
-    Mantid::API::IAlgorithm_sptr convertXAlg = Mantid::API::AlgorithmManager::Instance().create("ConvertAxisByFormula");
+  if (getAxisType(QwtPlot::xBottom) == "Squared") {
+    Mantid::API::IAlgorithm_sptr convertXAlg =
+        Mantid::API::AlgorithmManager::Instance().create(
+            "ConvertAxisByFormula");
     convertXAlg->initialize();
     convertXAlg->setChild(true);
     convertXAlg->setLogging(false);
@@ -602,11 +649,11 @@ QwtPlotCurve * PreviewPlot::addCurve(MatrixWorkspace_sptr ws, const size_t specI
 
   // If using log scale need to remove all negative Y values
   bool logYScale = getAxisType(QwtPlot::yLeft) == "Logarithmic";
-  if(logYScale)
-  {
+  if (logYScale) {
     // Remove negative data in order to search for minimum positive value
     std::vector<double> validData(wsDataY.size());
-    auto it = std::remove_copy_if(wsDataY.begin(), wsDataY.end(), validData.begin(), isNegative);
+    auto it = std::remove_copy_if(wsDataY.begin(), wsDataY.end(),
+                                  validData.begin(), isNegative);
     validData.resize(std::distance(validData.begin(), it));
 
     // Get minimum positive value
@@ -622,23 +669,28 @@ QwtPlotCurve * PreviewPlot::addCurve(MatrixWorkspace_sptr ws, const size_t specI
   QwtArrayData wsData(dataX, dataY);
 
   // Create the new curve
-  QwtPlotCurve * curve = new QwtPlotCurve();
-  curve->setData(wsData);
-  curve->setPen(curveColour);
-  curve->attach(m_uiForm.plot);
-
-  return curve;
+  curveConfig.curve = new QwtPlotCurve();
+  curveConfig.curve->setData(wsData);
+  curveConfig.curve->setPen(curveColour);
+  curveConfig.curve->attach(m_uiForm.plot);
+
+  // Create error bars if needed
+  if (curveConfig.showErrorsAction->isChecked()) {
+    curveConfig.errorCurve =
+        new ErrorCurve(curveConfig.curve, ws->readE(specIndex));
+    curveConfig.errorCurve->attach(m_uiForm.plot);
+  } else {
+    curveConfig.errorCurve = NULL;
+  }
 }
 
-
 /**
  * Removes a curve from the plot.
  *
  * @param curve Curve to remove
  */
-void PreviewPlot::removeCurve(QwtPlotCurve * curve)
-{
-  if(!curve)
+void PreviewPlot::removeCurve(QwtPlotItem *curve) {
+  if (!curve)
     return;
 
   // Take it off the plot
@@ -649,9 +701,9 @@ void PreviewPlot::removeCurve(QwtPlotCurve * curve)
   curve = NULL;
 }
 
-
 /**
- * Helper function for adding a set of items to an exclusive menu on the context menu.
+ * Helper function for adding a set of items to an exclusive menu on the context
+ *menu.
  *
  * @param menuName Name of sub menu
  * @param group Pointer to ActionGroup
@@ -659,12 +711,13 @@ void PreviewPlot::removeCurve(QwtPlotCurve * curve)
  * @param defaultItem Default item name
  * @return List of Actions added
  */
-QList<QAction *> PreviewPlot::addOptionsToMenus(QString menuName, QActionGroup *group, QStringList items, QString defaultItem)
-{
+QList<QAction *> PreviewPlot::addOptionsToMenus(QString menuName,
+                                                QActionGroup *group,
+                                                QStringList items,
+                                                QString defaultItem) {
   QMenu *menu = new QMenu(m_contextMenu);
 
-  for(auto it = items.begin(); it != items.end(); ++it)
-  {
+  for (auto it = items.begin(); it != items.end(); ++it) {
     QAction *action = new QAction(*it, menu);
     action->setCheckable(true);
 
@@ -683,95 +736,79 @@ QList<QAction *> PreviewPlot::addOptionsToMenus(QString menuName, QActionGroup *
   return group->actions();
 }
 
-
 /**
  * Returns the type of axis scale specified for a given axis.
  *
  * @param axisID ID of axis
  * @return Axis type as string
  */
-QString PreviewPlot::getAxisType(int axisID)
-{
+QString PreviewPlot::getAxisType(int axisID) {
   QString axisType("Linear");
-  QAction * selectedAxisType = NULL;
+  QAction *selectedAxisType = NULL;
 
-  if(axisID == QwtPlot::xBottom)
+  if (axisID == QwtPlot::xBottom)
     selectedAxisType = m_xAxisTypeGroup->checkedAction();
   else if (axisID == QwtPlot::yLeft)
     selectedAxisType = m_yAxisTypeGroup->checkedAction();
   else
     return QString();
 
-  if(selectedAxisType)
+  if (selectedAxisType)
     axisType = selectedAxisType->text();
 
   return axisType;
 }
 
-
 /**
  * Gets a list of curve names that are plotted form the given workspace.
  *
  * @param ws Pointer to workspace
  * @return List of curve names
  */
-QStringList PreviewPlot::getCurvesForWorkspace(const MatrixWorkspace_sptr ws)
-{
+QStringList PreviewPlot::getCurvesForWorkspace(const MatrixWorkspace_sptr ws) {
   QStringList curveNames;
 
-  for(auto it = m_curves.begin(); it != m_curves.end(); ++it)
-  {
-    if(it.value().ws == ws)
+  for (auto it = m_curves.begin(); it != m_curves.end(); ++it) {
+    if (it.value().ws == ws)
       curveNames << it.key();
   }
 
   return curveNames;
 }
 
-
 /**
  * Handles displaying the context menu when a user right clicks on the plot.
  *
  * @param position Position at which to show menu
  */
-void PreviewPlot::showContextMenu(QPoint position)
-{
+void PreviewPlot::showContextMenu(QPoint position) {
   // Show the context menu
   m_contextMenu->popup(m_uiForm.plot->mapToGlobal(position));
 }
 
-
 /**
  * Handles the view tool being selected from the context menu.
  */
-void PreviewPlot::handleViewToolSelect()
-{
+void PreviewPlot::handleViewToolSelect() {
   QAction *selectedPlotType = m_plotToolGroup->checkedAction();
-  if(!selectedPlotType)
+  if (!selectedPlotType)
     return;
 
   QString selectedTool = selectedPlotType->text();
-  if(selectedTool == "None")
-  {
+  if (selectedTool == "None") {
     togglePanTool(false);
     toggleZoomTool(false);
-  }
-  else if(selectedTool == "Pan")
-  {
+  } else if (selectedTool == "Pan") {
     togglePanTool(true);
-  }
-  else if(selectedTool == "Zoom")
-  {
+  } else if (selectedTool == "Zoom") {
     toggleZoomTool(true);
   }
 }
 
-
 /**
  * Handles a change in the plot axis type.
  */
-void PreviewPlot::handleAxisTypeSelect()
-{
+void PreviewPlot::handleAxisTypeSelect() {
   // Determine the type of engine to use for each axis
   QString xAxisType = getAxisType(QwtPlot::xBottom);
   QString yAxisType = getAxisType(QwtPlot::yLeft);
@@ -780,56 +817,43 @@ void PreviewPlot::handleAxisTypeSelect()
   QwtScaleEngine *yEngine = NULL;
 
   // Get the X axis engine
-  if(xAxisType == "Linear")
-  {
+  if (xAxisType == "Linear") {
     xEngine = new QwtLinearScaleEngine();
-  }
-  else if(xAxisType == "Logarithmic")
-  {
+  } else if (xAxisType == "Logarithmic") {
     xEngine = new QwtLog10ScaleEngine();
-  }
-  else if(xAxisType == "Squared")
-  {
+  } else if (xAxisType == "Squared") {
     xEngine = new QwtLinearScaleEngine();
   }
 
   // Get the Y axis engine
-  if(yAxisType == "Linear")
-  {
+  if (yAxisType == "Linear") {
     yEngine = new QwtLinearScaleEngine();
-  }
-  else if(yAxisType == "Logarithmic")
-  {
+  } else if (yAxisType == "Logarithmic") {
     yEngine = new QwtLog10ScaleEngine();
   }
 
   // Set the axis scale engines
-  if(xEngine)
+  if (xEngine)
     m_uiForm.plot->setAxisScaleEngine(QwtPlot::xBottom, xEngine);
 
-  if(yEngine)
+  if (yEngine)
     m_uiForm.plot->setAxisScaleEngine(QwtPlot::yLeft, yEngine);
 
   emit axisScaleChanged();
 
   // Hide range selectors on X axis when X axis scale is X^2
   bool xIsSquared = xAxisType == "Squared";
-  for(auto it = m_rangeSelectors.begin(); it != m_rangeSelectors.end(); ++it)
-  {
+  for (auto it = m_rangeSelectors.begin(); it != m_rangeSelectors.end(); ++it) {
     QString rsName = it.key();
-    RangeSelector * rs = it.value();
+    RangeSelector *rs = it.value();
     RangeSelector::SelectType type = rs->getType();
 
-    if(type == RangeSelector:: XMINMAX || type == RangeSelector::XSINGLE)
-    {
+    if (type == RangeSelector::XMINMAX || type == RangeSelector::XSINGLE) {
       // When setting to invisible save the last visibility setting
-      if(xIsSquared)
-      {
+      if (xIsSquared) {
         m_rsVisibility[rsName] = rs->isVisible();
         rs->setVisible(false);
-      }
-      else
-      {
+      } else {
         rs->setVisible(m_rsVisibility[rsName]);
       }
     }
diff --git a/Code/Mantid/MantidQt/MantidWidgets/src/SafeQwtPlot.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/SafeQwtPlot.cpp
index 1445e1d033273895e367fa0fb33f17471cea2a20..0354bda881049a126911c39a53fa8b68491e18fa 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/src/SafeQwtPlot.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/SafeQwtPlot.cpp
@@ -1,7 +1,9 @@
 #include "MantidQtMantidWidgets/SafeQwtPlot.h"
+#include "MantidAPI/Workspace.h"
 #include "MantidKernel/System.h"
 #include "MantidKernel/ReadLock.h"
 
+
 using namespace Mantid::Kernel;
 
 namespace MantidQt
diff --git a/Code/Mantid/MantidQt/MantidWidgets/src/SaveWorkspaces.cpp b/Code/Mantid/MantidQt/MantidWidgets/src/SaveWorkspaces.cpp
index a896f8e3360d01dcb0eea5e2bcb840275e9ff3ce..129c89647d0872abbd29cc79f7577690f32d2a48 100644
--- a/Code/Mantid/MantidQt/MantidWidgets/src/SaveWorkspaces.cpp
+++ b/Code/Mantid/MantidQt/MantidWidgets/src/SaveWorkspaces.cpp
@@ -31,9 +31,10 @@ using namespace Mantid::API;
  *  @param parent :: used by QT
  *  @param suggFname :: sets the initial entry in the filename box
  *  @param defSavs :: sets which boxes are ticked
+ *  @param saveAsZeroErrorFree :: if the workspace should be saved with the zero errors replaced by a default value or not
  */
-SaveWorkspaces::SaveWorkspaces(QWidget *parent, const QString & suggFname, QHash<const QCheckBox * const, QString> & defSavs) :
-  API::MantidDialog(parent)
+SaveWorkspaces::SaveWorkspaces(QWidget *parent, const QString & suggFname, QHash<const QCheckBox * const, QString> & defSavs, bool saveAsZeroErrorFree) :
+  API::MantidDialog(parent), m_saveAsZeroErrorFree(saveAsZeroErrorFree)
 {
   setAttribute(Qt::WA_DeleteOnClose);
   setWindowTitle("Save Workspaces");
@@ -213,7 +214,7 @@ void SaveWorkspaces::closeEvent(QCloseEvent* event)
   emit closing();
   event->accept();
 }
-QString SaveWorkspaces::saveList(const QList<QListWidgetItem*> & wspaces, const QString & algorithm, QString fileBase, bool toAppend)
+QString SaveWorkspaces::saveList(const QList<QListWidgetItem*> & wspaces, const QString & algorithm, QString fileBase, bool toAppend, QHash<QString, QString> workspaceMap)
 {
   if ( wspaces.count() < 1 )
   {
@@ -229,7 +230,11 @@ QString SaveWorkspaces::saveList(const QList<QListWidgetItem*> & wspaces, const
   QString saveCommands;
   for (int j =0; j < wspaces.count(); ++j)
   {
-    saveCommands += algorithm + "('"+wspaces[j]->text()+"','";
+    if (workspaceMap.count(wspaces[j]->text())) {
+      saveCommands += algorithm + "('"+ workspaceMap[wspaces[j]->text()]+"','";
+    } else {
+      saveCommands += algorithm + "('"+ wspaces[j]->text()+"','";
+    }
 
     QString outFile = fileBase;
     if (outFile.isEmpty())
@@ -306,6 +311,9 @@ QString SaveWorkspaces::getSaveAlgExt(const QString & algName)
 */
 void SaveWorkspaces::saveSel()
 {
+  // For each selected workspace, provide an zero-error free clone
+  QHash<QString, QString> workspaceMap = provideZeroFreeWorkspaces(m_workspaces);
+
   QString saveCommands;
   for(SavFormatsConstIt i = m_savFormats.begin(); i != m_savFormats.end(); ++i)
   {//the key to a pointer to the check box that the user may have clicked
@@ -324,7 +332,7 @@ void SaveWorkspaces::saveSel()
       try
       {
         saveCommands += saveList(m_workspaces->selectedItems(), i.value(),
-          m_fNameEdit->text(), toAppend);
+          m_fNameEdit->text(), toAppend, workspaceMap);
       }
       catch(std::logic_error &)
       {
@@ -335,7 +343,12 @@ void SaveWorkspaces::saveSel()
   }//end loop over formats
 
   saveCommands += "print 'success'";
-  QString status(runPythonCode(saveCommands).trimmed()); 
+  QString status(runPythonCode(saveCommands).trimmed());
+
+  if (m_saveAsZeroErrorFree) {
+    removeZeroFreeWorkspaces(workspaceMap);
+  }
+
   if ( status != "success" )
   {
     QMessageBox::critical(this, "Error saving workspace", "One of the workspaces could not be saved in one of the selected formats");
@@ -375,3 +388,52 @@ void SaveWorkspaces::saveFileBrowse()
     prevValues.setValue("dir", directory);
   }
 }
+
+/**
+ * Goes through all selected workspaces and maps them to a zero-error free clone,
+ * if the user has selected to do this otherwise the value of the hash is set to
+ * the same as the key
+ * @param workspaces :: a QListWIdget which contains the selected workspaces
+ * @returns a hash which maps the original workspace to the zero-error free workspace
+ */
+QHash<QString, QString> SaveWorkspaces::provideZeroFreeWorkspaces(const QListWidget * workspaces) {
+  auto wsList = workspaces->selectedItems();
+  QHash<QString, QString> workspaceMap;
+  for (auto it = wsList.begin(); it != wsList.end(); ++it) {
+    auto wsName = (*it)->text();
+    auto cloneName = wsName;
+    if (m_saveAsZeroErrorFree) {
+       cloneName += "_clone_temp";
+       emit createZeroErrorFreeWorkspace(wsName, cloneName);
+    }
+
+    if (AnalysisDataService::Instance().doesExist(cloneName.toStdString())) {
+      workspaceMap.insert(wsName, cloneName);
+    }
+  }
+
+  return workspaceMap;
+}
+
+/**
+ * Remove all the zero-error free workspaces
+ * @param workspaces :: a map containing the names of all zero-error-free workspaces.
+ */
+void SaveWorkspaces::removeZeroFreeWorkspaces(QHash<QString, QString> workspaces) {
+  auto zeroFreeWorkspaceNames = workspaces.values();
+  for (auto it = zeroFreeWorkspaceNames.begin(); it != zeroFreeWorkspaceNames.end(); ++it) {
+    emit deleteZeroErrorFreeWorkspace((*it));
+  }
+}
+
+/**
+ * Reacts to a user change wether the workspace is to be saved as zero-error-free or not
+ * @param state :: 0 if we don't save with the zero-error correction, otherwise anything else
+ */
+void SaveWorkspaces::onSaveAsZeroErrorFreeChanged(int state) {
+  if (state == 0) {
+    m_saveAsZeroErrorFree = false;
+  } else {
+    m_saveAsZeroErrorFree = true;
+  }
+}
diff --git a/Code/Mantid/MantidQt/RefDetectorViewer/inc/MantidQtRefDetectorViewer/RefMatrixWSImageView.h b/Code/Mantid/MantidQt/RefDetectorViewer/inc/MantidQtRefDetectorViewer/RefMatrixWSImageView.h
index 364ac4648e224c610746412350835e4d897c4292..8afbf42ac00ff8ffe89cab4438a794db2e981fd1 100644
--- a/Code/Mantid/MantidQt/RefDetectorViewer/inc/MantidQtRefDetectorViewer/RefMatrixWSImageView.h
+++ b/Code/Mantid/MantidQt/RefDetectorViewer/inc/MantidQtRefDetectorViewer/RefMatrixWSImageView.h
@@ -2,7 +2,7 @@
 #define REF_MATRIX_WS_IMAGE_VIEW_H
 
 #include "DllOption.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/Algorithm.h"
 #include "MantidQtRefDetectorViewer/RefImageView.h"
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/CMakeLists.txt b/Code/Mantid/MantidQt/SliceViewer/CMakeLists.txt
index fb6925ffa7d87a266411ebc5976b2a05c0e0e891..02ce58efc0b5be5474502527b99a510a1103edbe 100644
--- a/Code/Mantid/MantidQt/SliceViewer/CMakeLists.txt
+++ b/Code/Mantid/MantidQt/SliceViewer/CMakeLists.txt
@@ -8,6 +8,7 @@ set ( SRC_FILES
 	src/LineViewer.cpp
 	src/PeakBoundingBox.cpp
 	src/PeaksViewerOverlayDialog.cpp
+        src/PeakOverlayInteractive.cpp
 	src/PeakOverlayMultiCross.cpp
 	src/PeakOverlayMultiCrossFactory.cpp
 	src/PeakOverlayMultiSphere.cpp
@@ -42,7 +43,9 @@ set ( INC_FILES
 	inc/MantidQtSliceViewer/LinePlotOptions.h
 	inc/MantidQtSliceViewer/LineViewer.h
 	inc/MantidQtSliceViewer/NullPeaksPresenter.h
-	inc/MantidQtSliceViewer/PeakBoundingBox.h
+	inc/MantidQtSliceViewer/PeakEditMode.h
+        inc/MantidQtSliceViewer/PeakBoundingBox.h
+        inc/MantidQtSliceViewer/PeakOverlayInteractive.h
 	inc/MantidQtSliceViewer/PeakOverlayMultiCross.h
 	inc/MantidQtSliceViewer/PeakOverlayMultiCrossFactory.h
 	inc/MantidQtSliceViewer/PeakOverlayMultiSphere.h
@@ -77,6 +80,7 @@ set ( MOC_FILES
 	inc/MantidQtSliceViewer/LineOverlay.h
 	inc/MantidQtSliceViewer/LineViewer.h
 	inc/MantidQtSliceViewer/LinePlotOptions.h
+        inc/MantidQtSliceViewer/PeakOverlayInteractive.h
  	inc/MantidQtSliceViewer/PeakOverlayMultiCross.h
 	inc/MantidQtSliceViewer/PeakOverlayMultiSphere.h
 	inc/MantidQtSliceViewer/PeaksTableColumnsDialog.h
@@ -136,7 +140,9 @@ set ( ALL_SRC ${SRC_FILES} ${MOCCED_FILES} )
 
 qt4_wrap_ui ( UI_HDRS ${UI_FILES} ) 
 
-include_directories ( ${CMAKE_CURRENT_BINARY_DIR} )
+include_directories ( ${CMAKE_CURRENT_BINARY_DIR})
+
+include_directories ( ../../Framework/DataObjects/inc )
 
 # For Windows:
 add_definitions ( -DIN_MANTIDQT_SLICEVIEWER )
@@ -152,6 +158,7 @@ endif ()
 target_link_libraries ( MantidQtSliceViewer LINK_PRIVATE 
             MantidQtAPI
             MantidWidgets
+            DataObjects
             ${CORE_MANTIDLIBS}
             ${POCO_LIBRARIES}
             ${Boost_LIBRARIES}
@@ -177,7 +184,7 @@ if ( CXXTEST_FOUND )
   )
 
   cxxtest_add_test ( SliceViewerTest ${TEST_FILES} ${GMOCK_TEST_FILES} )
-  target_link_libraries( SliceViewerTest LINK_PRIVATE 
+  target_link_libraries( SliceViewerTest LINK_PRIVATE
             MantidQtSliceViewer
             DataObjects
             Crystal
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/CompositePeaksPresenter.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/CompositePeaksPresenter.h
index 5e0ddeca1c6fcac8582b6c2ec9075fd819671ce2..c4d185001028bf4f3e97b92779cdd66a48279910 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/CompositePeaksPresenter.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/CompositePeaksPresenter.h
@@ -3,6 +3,7 @@
 
 #include "MantidQtSliceViewer/PeaksPresenter.h"
 #include "MantidQtSliceViewer/NullPeaksPresenter.h"
+#include "MantidQtSliceViewer/PeakBoundingBox.h"
 #include "MantidQtSliceViewer/PeakPalette.h"
 #include "MantidQtSliceViewer/ZoomablePeaksView.h"
 #include "MantidQtSliceViewer/UpdateableOnDemand.h"
@@ -11,6 +12,7 @@
 #include <stdexcept>
 #include <boost/shared_ptr.hpp>
 #include <boost/optional.hpp>
+#include <boost/weak_ptr.hpp>
 
 namespace Mantid {
 namespace API {
@@ -62,6 +64,8 @@ public:
   virtual void reInitialize(
       boost::shared_ptr<Mantid::API::IPeaksWorkspace> ) { /*Do nothing*/
   }
+  virtual bool deletePeaksIn(PeakBoundingBox box);
+  virtual bool addPeakAt(double plotCoordsPointX, double plotCoordsPointY);
 
   /// Constructor
   CompositePeaksPresenter(ZoomablePeaksView *const zoomablePlottingWidget,
@@ -83,6 +87,8 @@ public:
   virtual double getPeakSizeOnProjection() const;
   /// Get the peaks size into the current projection
   virtual double getPeakSizeIntoProjection() const;
+  /// Enter peak edit mode.
+  void peakEditMode(EditMode mode);
   /// Change the foreground representation for the peaks of this workspace
   void
   setForegroundColour(boost::shared_ptr<const Mantid::API::IPeaksWorkspace> ws,
@@ -141,6 +147,12 @@ public:
       boost::shared_ptr<Mantid::API::IPeaksWorkspace> &changedPeaksWS);
   /// Determine if the presenter contents are different.
   bool contentsDifferent(PeaksPresenter const * other) const;
+  /// Enter the requested edit mode for the peaks workspace.
+  void editCommand(EditMode editMode, boost::weak_ptr<const Mantid::API::IPeaksWorkspace> target);
+  /// Can we add peaks to this peaks workspace.
+  bool hasPeakAddModeFor(boost::weak_ptr<const Mantid::API::IPeaksWorkspace> target);
+  /// Can we add peaks
+  bool hasPeakAddMode() const;
 private:
   /// Updateable on demand method.
   void updatePeaksWorkspace(
@@ -173,6 +185,7 @@ private:
   /// index of peak zoomed in on.
   int m_zoomedPeakIndex;
 };
+
 }
 }
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ConcretePeaksPresenter.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ConcretePeaksPresenter.h
index 8abe438eaec156b485effdf37be1bdfabf617c3f..1bd980fa60869719c2907c04e8dd00c80f33aa0e 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ConcretePeaksPresenter.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ConcretePeaksPresenter.h
@@ -5,7 +5,7 @@
 #include "MantidQtSliceViewer/PeaksPresenter.h"
 #include "MantidQtSliceViewer/PeakOverlayViewFactory.h"
 #include "MantidAPI/MDGeometry.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidKernel/SpecialCoordinateSystem.h"
 #include "MantidKernel/V3D.h"
 #include <vector>
@@ -57,6 +57,10 @@ public:
   virtual void zoomToPeak(const int index);
   virtual bool isHidden() const;
   virtual bool contentsDifferent(PeaksPresenter const *  other) const;
+  virtual void peakEditMode(EditMode mode);
+  virtual bool deletePeaksIn(PeakBoundingBox plotCoordsBox);
+  virtual bool addPeakAt(double plotCoordsPointX, double plotCoordsPointY);
+  virtual bool hasPeakAddMode() const;
 
 private:
   /// Peak overlay view.
@@ -77,6 +81,11 @@ private:
   UpdateableOnDemand *m_owningPresenter;
   /// Flag to indicate that this is hidden.
   bool m_isHidden;
+  /// Flag to indicate the current edit mode.
+  EditMode m_editMode;
+  /// Can we add to this peaks workspace
+  bool m_hasAddPeaksMode;
+
   /// Configure peak transformations
   bool configureMappingTransform();
   /// Hide all views
@@ -99,7 +108,13 @@ private:
   void informOwnerUpdate();
   /// initialize the setup
   void initialize();
+  /// Find visible peak indexes.
+  std::vector<size_t> findVisiblePeakIndexes(const PeakBoundingBox &box);
+  /// Set the visible peak list.
+  void setVisiblePeaks(const std::vector<size_t>& indexes);
 };
+
+
 }
 }
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/NullPeaksPresenter.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/NullPeaksPresenter.h
index cf9ca36a843acde027c7b5da476633fe3115d3c6..30acbb69a4cd362e90419561aa05fa9c97546b05 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/NullPeaksPresenter.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/NullPeaksPresenter.h
@@ -2,6 +2,7 @@
 #define MANTID_SLICEVIEWER_NULLPEAKSPRESENTER_H_
 
 #include "MantidQtSliceViewer/PeaksPresenter.h"
+#include "MantidQtSliceViewer/PeakBoundingBox.h"
 
 namespace MantidQt {
 namespace SliceViewer {
@@ -50,7 +51,13 @@ public:
       boost::shared_ptr<Mantid::API::IPeaksWorkspace> ) { /*Do nothing*/
   }
   virtual bool contentsDifferent(const PeaksPresenter * ) const { return true; }
+
+  void peakEditMode(EditMode){/*Do nothing*/}
+  bool deletePeaksIn(PeakBoundingBox){return false;/*Do nothing. Delete nothing.*/}
+  bool addPeakAt(double, double){return false;/*Do nothing. Add nothing.*/}
+  bool hasPeakAddMode() const {return false; /*Do nothing.*/}
 };
+
 }
 }
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakEditMode.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakEditMode.h
new file mode 100644
index 0000000000000000000000000000000000000000..2c6bbb5a2fb73d32a577730dffbfb3befcc95fe7
--- /dev/null
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakEditMode.h
@@ -0,0 +1,11 @@
+#ifndef MANTID_SLICEVIEWER_EDITMODE_H_
+#define MANTID_SLICEVIEWER_EDITMODE_H_
+
+namespace MantidQt {
+namespace SliceViewer {
+
+// Possible edit modes.
+enum EditMode { None = 0, AddPeaks = 1, DeletePeaks = 2 };
+}
+}
+#endif
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayInteractive.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayInteractive.h
new file mode 100644
index 0000000000000000000000000000000000000000..83de6efeeeca828b7991429c84fbb9d7319f6841
--- /dev/null
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayInteractive.h
@@ -0,0 +1,111 @@
+#ifndef MANTID_SLICEVIEWER_PEAKOVERLAYINTERACTIVE_H_
+#define MANTID_SLICEVIEWER_PEAKOVERLAYINTERACTIVE_H_
+
+#include "DllOption.h"
+#include "MantidQtSliceViewer/PeakOverlayView.h"
+#include <QtGui/QWidget>
+#include <QtGui/QCursor>
+
+// Forward dec
+class QwtPlot;
+class QRect;
+
+namespace MantidQt {
+
+namespace MantidWidgets {
+// Forward dec
+class InputController;
+}
+
+namespace SliceViewer {
+// Forward dec
+class PeaksPresenter;
+
+/** Widget base class for representing peaks. Contains common code used by
+ Interactive/Editable peak overlay widgets.
+
+ 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 EXPORT_OPT_MANTIDQT_SLICEVIEWER PeakOverlayInteractive : public QWidget, public PeakOverlayView {
+  Q_OBJECT
+
+public:
+  /// Constructor
+  PeakOverlayInteractive(PeaksPresenter *const peaksPresenter, QwtPlot *plot,
+                        const int plotXIndex, const int plotYIndex, QWidget *parent);
+  /// Destructor
+  virtual ~PeakOverlayInteractive();
+
+  /// Enter peak deletion mode.
+  void peakDeletionMode();
+  /// Enter peak addition mode
+  void peakAdditionMode();
+  /// Enter display mode
+  void peakDisplayMode();
+
+  QSize sizeHint() const;
+  QSize size() const;
+  int height() const;
+  int width() const;
+
+protected:
+  /// Owning presenter
+  PeaksPresenter *m_presenter;
+  /// QwtPlot containing this
+  QwtPlot *m_plot;
+  /// Plot x index
+  const int m_plotXIndex;
+  /// Plot y index
+  const int m_plotYIndex;
+
+private:
+  /// Input controller.
+  MantidQt::MantidWidgets::InputController *m_tool;
+
+  void mousePressEvent(QMouseEvent* e);
+  void mouseMoveEvent(QMouseEvent* e);
+  void mouseReleaseEvent(QMouseEvent* e);
+  void wheelEvent(QWheelEvent* e);
+  void keyPressEvent(QKeyEvent* e);
+  void enterEvent(QEvent *e);
+  void leaveEvent(QEvent *e);
+
+  void paintEvent(QPaintEvent *event);
+
+  // Call do paint on sub-classes
+  virtual void doPaintPeaks(QPaintEvent *event) = 0;
+
+  void captureMouseEvents(bool capture);
+
+private slots:
+
+  void erasePeaks(const QRect &rect);
+  void addPeakAt(int coordX, int coordY);
+
+
+};
+
+
+}
+}
+
+#endif //MANTID_SLICEVIEWER_PEAKOVERLAYINTERACTIVE_H_
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiCross.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiCross.h
index b04d06f859581246752baf754294464d0d791b84..532c28e1f42736629773f461355d17aab7f06e89 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiCross.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiCross.h
@@ -1,24 +1,25 @@
 #ifndef MANTID_SLICEVIEWER_PEAKOVERLAYMULTICROSS_H_
 #define MANTID_SLICEVIEWER_PEAKOVERLAYMULTICROSS_H_
 
+#include "MantidQtSliceViewer/PeakOverlayInteractive.h"
 #include "DllOption.h"
-#include "MantidKernel/System.h"
-#include "MantidKernel/V3D.h"
-#include <q3iconview.h>
-#include <QtCore/QtCore>
-#include <QtGui/qwidget.h>
-#include <qwt_plot.h>
-#include <qpainter.h>
-#include <qcolor.h>
-#include "MantidQtSliceViewer/PeakOverlayView.h"
 #include "MantidQtSliceViewer/PhysicalCrossPeak.h"
 
+class QPaintEvent;
+class QwtPlot;
 
 namespace MantidQt
 {
+
+namespace MantidWidgets {
+// Forward declaration
+class InputController;
+}
+
 namespace SliceViewer
 {
 
+   class PeaksPresenter;
   /** Widget representing visible peaks in the plot. 
     
     @date 2013-06-10
@@ -43,13 +44,14 @@ namespace SliceViewer
     File change history is stored at: <https://github.com/mantidproject/mantid>
     Code Documentation is available at: <http://doxygen.mantidproject.org>
   */
-  class EXPORT_OPT_MANTIDQT_SLICEVIEWER PeakOverlayMultiCross : public QWidget, public PeakOverlayView
+  class EXPORT_OPT_MANTIDQT_SLICEVIEWER PeakOverlayMultiCross : public PeakOverlayInteractive
   {
     Q_OBJECT
 
   public:
     /// Constructor
-    PeakOverlayMultiCross(QwtPlot * plot, QWidget * parent, const VecPhysicalCrossPeak& vecPhysicalPeaks, const QColor& peakColour);
+    PeakOverlayMultiCross(PeaksPresenter* const peaksPresenter, QwtPlot * plot, QWidget * parent, const VecPhysicalCrossPeak& vecPhysicalPeaks, const int plotXIndex, const int plotYIndex,
+                          const QColor& peakColour);
     /// Destructor
     virtual ~PeakOverlayMultiCross();
     /// Set the slice point at position.
@@ -87,24 +89,25 @@ namespace SliceViewer
     /// Get the background colour
     virtual QColor getBackgroundColour() const;
 
-  private:
+    /// Take settings from another view
+    virtual void takeSettingsFrom(const PeakOverlayView * const);
 
-    //QRect drawHandle(QPainter & painter, QPointF coords, QColor brush);
-    void paintEvent(QPaintEvent *event);
+  private:
 
-    QSize sizeHint() const;
-    QSize size() const;
-    int height() const;
-    int width() const;
+    /// Pure virtual on PeakOverlayInteractive
+    virtual void doPaintPeaks(QPaintEvent*);
 
-    /// QwtPlot containing this
-    QwtPlot * m_plot;
     /// Physical model of the spacial cross peaks
     VecPhysicalCrossPeak m_physicalPeaks;
     /// Peak colour
     QColor m_peakColour;
     /// Peaks in the workspace that are viewable in the present view.
     std::vector<bool> m_viewablePeaks;
+    /// Cached occupancy into the view
+    double m_cachedOccupancyIntoView;
+    /// Cached occupancy onto view
+    double m_cachedOccupancyInView;
+
   };
 
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiCrossFactory.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiCrossFactory.h
index 6beade764bf16741399a549c21c6904faa6850f5..ee209b7ece7b2c7adec2ec4c080a04a94fcb658d 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiCrossFactory.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiCrossFactory.h
@@ -2,7 +2,7 @@
 #define MANTID_SLICEVIEWER_PEAKOVERLAYMULTICROSS_FACTORY_H_
 
 #include "MantidQtSliceViewer/PeakOverlayViewFactoryBase.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidAPI/MDGeometry.h"
 #include <boost/shared_ptr.hpp>
 
@@ -11,6 +11,8 @@ namespace MantidQt
   namespace SliceViewer
   {
 
+    class PeaksPresenter;
+
     /** Concrete view factory. For creating instances of PeakOverlayMultiCross widget.
 
     @date 2013-06-10
@@ -38,9 +40,9 @@ namespace MantidQt
     class DLLExport PeakOverlayMultiCrossFactory : public PeakOverlayViewFactoryBase
     {
       public:
-      PeakOverlayMultiCrossFactory(boost::shared_ptr<Mantid::API::MDGeometry> mdWS, Mantid::Geometry::PeakTransform_const_sptr transform, Mantid::API::IPeaksWorkspace_sptr peaksWS, QwtPlot * plot, QWidget * parent, const size_t colourNumber=0);
+      PeakOverlayMultiCrossFactory(boost::shared_ptr<Mantid::API::MDGeometry> mdWS, Mantid::Geometry::PeakTransform_const_sptr transform, Mantid::API::IPeaksWorkspace_sptr peaksWS, QwtPlot * plot, QWidget * parent, const int plotXIndex, const int plotYIndex, const size_t colourNumber=0);
       virtual ~PeakOverlayMultiCrossFactory();
-      virtual boost::shared_ptr<PeakOverlayView> createView(Mantid::Geometry::PeakTransform_const_sptr transform) const;
+      virtual boost::shared_ptr<PeakOverlayView> createView(PeaksPresenter* const presenter, Mantid::Geometry::PeakTransform_const_sptr transform) const;
       virtual int FOM() const;
       virtual void swapPeaksWorkspace(boost::shared_ptr<Mantid::API::IPeaksWorkspace>& peaksWS);
     private:
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiSphere.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiSphere.h
index 34d9a8175dbb58e721dd904c6476397a28c795bb..23d1629522919c221e7672815b3ccc4095759c7a 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiSphere.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiSphere.h
@@ -1,23 +1,23 @@
 #ifndef MANTID_SLICEVIEWER_PEAKOVERLAYMULTISPHERE_H_
 #define MANTID_SLICEVIEWER_PEAKOVERLAYMULTISPHERE_H_
 
-#include "DllOption.h"
-#include "MantidKernel/System.h"
-#include "MantidKernel/V3D.h"
-#include <q3iconview.h>
-#include <QtCore/QtCore>
-#include <QtGui/qwidget.h>
-#include <qwt_plot.h>
-#include <qpainter.h>
-#include <qcolor.h>
-#include "MantidQtSliceViewer/PeakOverlayView.h"
+#include "MantidQtSliceViewer/PeakOverlayInteractive.h"
 #include "MantidQtSliceViewer/PhysicalSphericalPeak.h"
+#include "DllOption.h"
 
+class QwtPlot;
+class QWidget;
 
 namespace MantidQt
 {
+
+namespace MantidWidgets {
+class InputController;
+}
+
 namespace SliceViewer
 {
+   class PeaksPresenter;
 
   /** Widget representing a peak sphere on the plot. Used for representing spherically integrated peaks.
     
@@ -43,13 +43,14 @@ namespace SliceViewer
     File change history is stored at: <https://github.com/mantidproject/mantid>
     Code Documentation is available at: <http://doxygen.mantidproject.org>
   */
-  class EXPORT_OPT_MANTIDQT_SLICEVIEWER PeakOverlayMultiSphere : public QWidget, public PeakOverlayView
+  class EXPORT_OPT_MANTIDQT_SLICEVIEWER PeakOverlayMultiSphere : public PeakOverlayInteractive
   {
     Q_OBJECT
 
   public:
     /// Constructor
-    PeakOverlayMultiSphere(QwtPlot * plot, QWidget * parent, const VecPhysicalSphericalPeak& vecPhysicalPeaks, const QColor& peakColour, const QColor& backColour);
+    PeakOverlayMultiSphere(PeaksPresenter* const presenter, QwtPlot * plot, QWidget * parent, const VecPhysicalSphericalPeak& vecPhysicalPeaks, const int plotXIndex, const int plotYIndex,
+                           const QColor& peakColour, const QColor& backColour);
     /// Destructor
     virtual ~PeakOverlayMultiSphere();
     /// Set the slice point at position.
@@ -88,19 +89,13 @@ namespace SliceViewer
     virtual QColor getBackgroundColour() const;
     /// Get the current foreground colour
     virtual QColor getForegroundColour() const;
+    /// Take settings from another view
+    void takeSettingsFrom(const PeakOverlayView * const);
 
   private:
 
-    //QRect drawHandle(QPainter & painter, QPointF coords, QColor brush);
-    void paintEvent(QPaintEvent *event);
-
-    QSize sizeHint() const;
-    QSize size() const;
-    int height() const;
-    int width() const;
-
-    /// QwtPlot containing this
-    QwtPlot * m_plot;
+    /// Draw the peak representations. Pure virtual on base class.
+    virtual void doPaintPeaks(QPaintEvent *);
     /// Physical peak object
     VecPhysicalSphericalPeak m_physicalPeaks;
     /// Peak colour
@@ -111,6 +106,7 @@ namespace SliceViewer
     std::vector<bool> m_viewablePeaks;
     /// Show the background radius.
     bool m_showBackground;
+    /// Input controller.
   };
 
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiSphereFactory.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiSphereFactory.h
index 38cb3c3c3a91f9a114b7a16eb7b63acb6b987980..8b676e099d2b2d327953c935908105c6cb2719c9 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiSphereFactory.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayMultiSphereFactory.h
@@ -2,13 +2,15 @@
 #define MANTID_SLICEVIEWER_PEAKOVERLAYMULTISPHERE_FACTORY_H_
 
 #include "MantidQtSliceViewer/PeakOverlayViewFactoryBase.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include <boost/shared_ptr.hpp>
 
 namespace MantidQt
 {
   namespace SliceViewer
   {
+    class PeaksPresenter;
+
     /** Concrete view factory. For creating instances of PeakOverlayMultiSphere widget.
 
     @date 2013-06-12
@@ -42,9 +44,9 @@ namespace MantidQt
       Mantid::API::IPeaksWorkspace_sptr m_peaksWS;
       int m_FOM;
     public:
-      PeakOverlayMultiSphereFactory(Mantid::API::IPeaksWorkspace_sptr peaksWS, QwtPlot * plot, QWidget * parent, const size_t colourNumber=0);
+      PeakOverlayMultiSphereFactory(Mantid::API::IPeaksWorkspace_sptr peaksWS, QwtPlot * plot, QWidget * parent, const int plotXIndex, const int plotYIndex, const size_t colourNumber=0);
       virtual ~PeakOverlayMultiSphereFactory();
-      virtual boost::shared_ptr<PeakOverlayView> createView(Mantid::Geometry::PeakTransform_const_sptr transform) const;
+      virtual boost::shared_ptr<PeakOverlayView> createView(PeaksPresenter* const presenter, Mantid::Geometry::PeakTransform_const_sptr transform) const;
       virtual int FOM() const;
       virtual void swapPeaksWorkspace(boost::shared_ptr<Mantid::API::IPeaksWorkspace>& peaksWS);
     };
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayView.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayView.h
index 78170a4a40a6efa0db0729142adc7fff8e02221d..4ad5cdbeb9d4e37092739fb36d8bb38253419007 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayView.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayView.h
@@ -76,6 +76,14 @@ namespace MantidQt
       virtual QColor getBackgroundColour() const = 0;
       /// Get the current foreground colour
       virtual QColor getForegroundColour() const = 0;
+      /// Enter deletion mode
+      virtual void peakDeletionMode() = 0;
+      /// Enter addition mode
+      virtual void peakAdditionMode() = 0;
+      /// Enter normal view mode
+      virtual void peakDisplayMode() = 0;
+      /// Take settings from.
+      virtual void takeSettingsFrom(PeakOverlayView const * const) = 0;
       /// Destructor
       virtual ~PeakOverlayView()
       {
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayViewFactory.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayViewFactory.h
index aba79e76f54e3418489358bc99a8a02eadb574ff..23a925721a4c01783d33ee83d754d23c761b4945 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayViewFactory.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayViewFactory.h
@@ -23,6 +23,8 @@ namespace MantidQt
 {
   namespace SliceViewer
   {
+    class PeaksPresenter;
+
     /** Abstract view factory. For creating types of IPeakOverlay.
     
     @date 2012-08-24
@@ -51,7 +53,7 @@ namespace MantidQt
     {
     public:
       /// Create a peak view from the index of a peak in the peaks workspace
-      virtual boost::shared_ptr<PeakOverlayView> createView(Mantid::Geometry::PeakTransform_const_sptr transform) const = 0;
+      virtual boost::shared_ptr<PeakOverlayView> createView(PeaksPresenter* const presenter, Mantid::Geometry::PeakTransform_const_sptr transform) const = 0;
       /// Destructor
       virtual ~PeakOverlayViewFactory()
       {
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayViewFactoryBase.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayViewFactoryBase.h
index a989d55b6099f36a44ccaee49dc3dac277c675ff..d97935981e852d208b2e8b12eef595358ac205eb 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayViewFactoryBase.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeakOverlayViewFactoryBase.h
@@ -43,8 +43,10 @@ namespace MantidQt
       QWidget * m_parent;
       QColor m_peakColour;
       QColor m_backColour;
+      const int m_plotXIndex;
+      const int m_plotYIndex;
     public:
-      PeakOverlayViewFactoryBase(QwtPlot * plot, QWidget * parent, const size_t colourNumber=0);
+      PeakOverlayViewFactoryBase(QwtPlot * plot, QWidget * parent, const int plotXIndex, const int plotYIndex, const size_t colourNumber=0);
       virtual ~PeakOverlayViewFactoryBase();
       virtual std::string getPlotXLabel() const;
       virtual std::string getPlotYLabel() const;
@@ -52,4 +54,4 @@ namespace MantidQt
   }
 }
 
-#endif /*MANTID_SLICEVIEWER_PEAKOVERLAYVIEWFACTORYBASE_H_*/
\ No newline at end of file
+#endif /*MANTID_SLICEVIEWER_PEAKOVERLAYVIEWFACTORYBASE_H_*/
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksPresenter.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksPresenter.h
index d312d812824fef1e460d5548f85e710abb12b4eb..b31d22617b8efa4cade71bb6b1b959519d09707d 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksPresenter.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksPresenter.h
@@ -3,13 +3,20 @@
 
 #include "DllOption.h"
 #include <boost/shared_ptr.hpp>
+#include "MantidQtSliceViewer/PeakEditMode.h"
 #include "MantidQtSliceViewer/PeakPalette.h"
 #include "MantidQtSliceViewer/PeakBoundingBox.h"
+
 #include <set>
 #include <QObject>
 
 namespace Mantid
 {
+  namespace Kernel{
+    // Forward dec
+    class V3D;
+  }
+
   namespace Geometry {
     // Forward dec.
     class PeakTransform;
@@ -67,8 +74,12 @@ namespace SliceViewer
     virtual void zoomToPeak(const int peakIndex) = 0;
     virtual bool isHidden() const = 0;
     virtual bool contentsDifferent(PeaksPresenter const * other) const = 0;
-    virtual ~PeaksPresenter(){};
     virtual void reInitialize(boost::shared_ptr<Mantid::API::IPeaksWorkspace> peaksWS) = 0;
+    virtual void peakEditMode(EditMode mode) = 0;
+    virtual bool deletePeaksIn(PeakBoundingBox plotCoordsBox) = 0;
+    virtual bool addPeakAt(double plotCoordsPointX, double plotCoordsPointY) =0;
+    virtual bool hasPeakAddMode() const = 0;
+    virtual ~PeaksPresenter(){};
   };
 
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksViewer.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksViewer.h
index 36e5099f75c2ab3bea03a987e8b14b5f0ebed4a1..b4175a90419dc18d606120073538cb7435337ce4 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksViewer.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksViewer.h
@@ -6,7 +6,7 @@
 #include <boost/shared_ptr.hpp>
 #include "MantidQtSliceViewer/PeaksPresenter.h"
 #include "MantidQtSliceViewer/UpdateableOnDemand.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include <boost/shared_ptr.hpp>
 
 namespace Mantid {
@@ -19,6 +19,7 @@ namespace MantidQt {
 namespace SliceViewer {
 /// Forward dec.
 class ProxyCompositePeaksPresenter;
+class PeaksWorkspaceWidget;
 
 /**
 
@@ -40,6 +41,8 @@ public:
   void hide();
   ~PeaksViewer();
   bool hasThingsToShow() const;
+  void clearPeaksModeRequest(PeaksWorkspaceWidget const * const originWidget, const bool on);
+  void addPeaksModeRequest(PeaksWorkspaceWidget const * const originWidget, const bool on);
 
 public slots:
   void onPeakColourChanged(Mantid::API::IPeaksWorkspace_const_sptr, QColor);
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksWorkspaceWidget.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksWorkspaceWidget.h
index eb3e25bdd06feba9a131515887f73f8d623474fb..0cac8aa3ac41aaf0a07a18f912464545bd770e52 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksWorkspaceWidget.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksWorkspaceWidget.h
@@ -3,68 +3,83 @@
 
 #include <QtGui/QWidget>
 #include "DllOption.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "ui_PeaksWorkspaceWidget.h"
-namespace MantidQt
-{
-namespace SliceViewer
-{
-  class EXPORT_OPT_MANTIDQT_SLICEVIEWER PeaksWorkspaceWidget : public QWidget
-  {
-    Q_OBJECT
-  public:
-    PeaksWorkspaceWidget(Mantid::API::IPeaksWorkspace_const_sptr ws, const std::string& coordinateSystem, const QColor& defaultForegroundColour, const QColor& defaultBackgroundColour, QWidget *parent = 0);
-    std::set<QString> getShownColumns();
-    void setShownColumns(std::set<QString> & cols);
-    virtual ~PeaksWorkspaceWidget();
-    Mantid::API::IPeaksWorkspace_const_sptr getPeaksWorkspace() const;
-    void setBackgroundColor(const QColor& backgroundColor);
-    void setForegroundColor(const QColor& foregroundColor);
-    void setShowBackground(bool showBackground);
-    void setHidden(bool isHidden);
-    void setSelectedPeak(int index);
-    std::string getWSName() const;
-    void workspaceUpdate(Mantid::API::IPeaksWorkspace_const_sptr ws = Mantid::API::IPeaksWorkspace_const_sptr());
-  signals:
-    void peakColourChanged(Mantid::API::IPeaksWorkspace_const_sptr, QColor);
-    void backgroundColourChanged(Mantid::API::IPeaksWorkspace_const_sptr, QColor);
-    void backgroundRadiusShown(Mantid::API::IPeaksWorkspace_const_sptr, bool);
-    void removeWorkspace(Mantid::API::IPeaksWorkspace_const_sptr);
-    void hideInPlot(Mantid::API::IPeaksWorkspace_const_sptr, bool);
-    void zoomToPeak(Mantid::API::IPeaksWorkspace_const_sptr, int);
-    void peaksSorted(const std::string&, const bool, Mantid::API::IPeaksWorkspace_const_sptr);
-  private:
-    /// Populate the widget with model data.
-    void populate();
-    /// Create the MVC table for peaks display
-    void createTableMVC();
-    /// Auto-generated UI controls.
-    Ui::PeaksWorkspaceWidget ui;
-    /// Peaks workspace to view.
-    Mantid::API::IPeaksWorkspace_const_sptr m_ws;
-    /// Coordinate system.
-    const std::string m_coordinateSystem;
-    /// Foreground colour
-    QColor m_foregroundColour;
-    /// Background colour
-    QColor m_backgroundColour;
-    /// Original table width
-    int m_originalTableWidth;
-    /// Workspace name.
-    QString m_nameText;
-    /// Current index changed - overrriden
 
+#include <set>
 
-  private slots:
-      void onBackgroundColourClicked();
-      void onForegroundColourClicked();
-      void onShowBackgroundChanged(bool);
-      void onRemoveWorkspaceClicked();
-      void onToggleHideInPlot();
-      void onPeaksSorted(const std::string&, const bool);
-      void onCurrentChanged(QModelIndex, QModelIndex);
-  };
+namespace MantidQt {
+namespace SliceViewer {
+class PeaksViewer;
+class EXPORT_OPT_MANTIDQT_SLICEVIEWER PeaksWorkspaceWidget : public QWidget {
+  Q_OBJECT
+public:
+  PeaksWorkspaceWidget(Mantid::API::IPeaksWorkspace_const_sptr ws,
+                       const std::string &coordinateSystem,
+                       const QColor &defaultForegroundColour,
+                       const QColor &defaultBackgroundColour,
+                       const bool canAddPeaks,
+                       PeaksViewer *parent);
 
-} //namespace
+
+  std::set<QString> getShownColumns();
+  void setShownColumns(std::set<QString> &cols);
+  virtual ~PeaksWorkspaceWidget();
+  Mantid::API::IPeaksWorkspace_const_sptr getPeaksWorkspace() const;
+  void setBackgroundColor(const QColor &backgroundColor);
+  void setForegroundColor(const QColor &foregroundColor);
+  void setShowBackground(bool showBackground);
+  void setHidden(bool isHidden);
+  void setSelectedPeak(int index);
+  std::string getWSName() const;
+  void workspaceUpdate(Mantid::API::IPeaksWorkspace_const_sptr ws =
+                           Mantid::API::IPeaksWorkspace_const_sptr());
+  void exitClearPeaksMode();
+  void exitAddPeaksMode();
+signals:
+  void peakColourChanged(Mantid::API::IPeaksWorkspace_const_sptr, QColor);
+  void backgroundColourChanged(Mantid::API::IPeaksWorkspace_const_sptr, QColor);
+  void backgroundRadiusShown(Mantid::API::IPeaksWorkspace_const_sptr, bool);
+  void removeWorkspace(Mantid::API::IPeaksWorkspace_const_sptr);
+  void hideInPlot(Mantid::API::IPeaksWorkspace_const_sptr, bool);
+  void zoomToPeak(Mantid::API::IPeaksWorkspace_const_sptr, int);
+  void peaksSorted(const std::string &, const bool,
+                   Mantid::API::IPeaksWorkspace_const_sptr);
+
+private:
+  /// Populate the widget with model data.
+  void populate();
+  /// Create the MVC table for peaks display
+  void createTableMVC();
+  /// Auto-generated UI controls.
+  Ui::PeaksWorkspaceWidget ui;
+  /// Peaks workspace to view.
+  Mantid::API::IPeaksWorkspace_const_sptr m_ws;
+  /// Coordinate system.
+  const std::string m_coordinateSystem;
+  /// Foreground colour
+  QColor m_foregroundColour;
+  /// Background colour
+  QColor m_backgroundColour;
+  /// Original table width
+  int m_originalTableWidth;
+  /// Workspace name.
+  QString m_nameText;
+  /// Parent widget
+  PeaksViewer* const m_parent;
+
+private slots:
+  void onBackgroundColourClicked();
+  void onForegroundColourClicked();
+  void onShowBackgroundChanged(bool);
+  void onRemoveWorkspaceClicked();
+  void onToggleHideInPlot();
+  void onPeaksSorted(const std::string &, const bool);
+  void onCurrentChanged(QModelIndex, QModelIndex);
+  void onClearPeaksToggled(bool);
+  void onAddPeaksToggled(bool);
+};
+
+} // namespace
 }
 #endif // PEAKSWORKSPACEWIDGET_H
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksWorkspaceWidget.ui b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksWorkspaceWidget.ui
index f6e2551044b09973be544cc338049cceb00626f1..4e96f3d638618b89b9fa4ea98aa132edfb06a3f0 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksWorkspaceWidget.ui
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/PeaksWorkspaceWidget.ui
@@ -115,6 +115,9 @@
      </item>
      <item>
       <layout class="QVBoxLayout" name="verticalLayout">
+       <property name="spacing">
+        <number>1</number>
+       </property>
        <item>
         <widget class="QPushButton" name="btnRemove">
          <property name="sizePolicy">
@@ -174,6 +177,40 @@
          </property>
         </widget>
        </item>
+       <item>
+        <widget class="QPushButton" name="btnAddPeak">
+         <property name="toolTip">
+          <string>Add HKL peaks</string>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+         <property name="icon">
+          <iconset resource="../../../../Images/images.qrc">
+           <normaloff>:/PickTools/selection-peaks.png</normaloff>:/PickTools/selection-peaks.png</iconset>
+         </property>
+         <property name="checkable">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QPushButton" name="btnRemovePeak">
+         <property name="toolTip">
+          <string>Erase peaks</string>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+         <property name="icon">
+          <iconset resource="../../../../Images/images.qrc">
+           <normaloff>:/PickTools/eraser.png</normaloff>:/PickTools/eraser.png</iconset>
+         </property>
+         <property name="checkable">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
       </layout>
      </item>
      <item>
@@ -187,6 +224,9 @@
       <layout class="QVBoxLayout" name="verticalLayout_3">
        <item>
         <layout class="QHBoxLayout" name="horizontalLayout">
+         <property name="spacing">
+          <number>1</number>
+         </property>
          <item>
           <widget class="QLabel" name="label_2">
            <property name="sizePolicy">
@@ -313,6 +353,8 @@
    </item>
   </layout>
  </widget>
- <resources/>
+ <resources>
+  <include location="../../../../Images/images.qrc"/>
+ </resources>
  <connections/>
 </ui>
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ProxyCompositePeaksPresenter.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ProxyCompositePeaksPresenter.h
index 2ade65b1f5d966dc6ed78624e447a32af4a5364c..d6a839578a8eace8b26c6ad2019e1856f4caa9c4 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ProxyCompositePeaksPresenter.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ProxyCompositePeaksPresenter.h
@@ -79,6 +79,10 @@ public:
   boost::optional<PeaksPresenter_sptr> getZoomedPeakPresenter() const;
   /// Get optional zoomed peak index.
   int getZoomedPeakIndex() const;
+  /// Set the edit mode.
+  void editCommand(EditMode editMode, boost::weak_ptr<const Mantid::API::IPeaksWorkspace> target);
+  /// Can we add HKL peaks to this workspace.
+  bool hasPeakAddModeFor(boost::weak_ptr<const Mantid::API::IPeaksWorkspace> target);
 
 private:
   /// Wrapped composite to delegate to.
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/SliceViewer.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/SliceViewer.h
index ba72ee0a81f43c2f4c496481b874e6e4e9be30a7..d7d634fed501d9861d49eef5e063cf72ec354520 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/SliceViewer.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/SliceViewer.h
@@ -10,7 +10,6 @@
 #include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 #include "MantidKernel/Logger.h"
 #include "MantidKernel/VMD.h"
-#include "MantidQtAPI/MantidColorMap.h"
 #include "MantidQtAPI/MdSettings.h"
 #include "MantidQtMantidWidgets/SafeQwtPlot.h"
 #include "MantidQtAPI/SyncedCheckboxes.h"
@@ -19,16 +18,10 @@
 #include "MantidQtSliceViewer/ZoomablePeaksView.h"
 #include "MantidQtAPI/QwtRasterDataMD.h"
 #include "ui_SliceViewer.h"
-#include <QtCore/QtCore>
-#include <QtGui/qdialog.h>
-#include <QtGui/QWidget>
 #include <qwt_color_map.h>
 #include <qwt_plot_spectrogram.h>
 #include <qwt_plot.h>
-#include <qwt_raster_data.h>
-#include <qwt_scale_widget.h>
 #include <vector>
-#include "MantidAPI/Algorithm.h"
 #include "MantidQtAPI/AlgorithmRunner.h"
 #include <boost/shared_ptr.hpp>
 
@@ -209,6 +202,10 @@ protected:
 private:
   void loadSettings();
   void saveSettings();
+  void setIconFromString(QAction* action, const std::string& iconName,
+    QIcon::Mode mode, QIcon::State state);
+  void setIconFromString(QAbstractButton* btn, const std::string& iconName,
+    QIcon::Mode mode, QIcon::State state);
   void initMenus();
   void initZoomer();
 
@@ -362,6 +359,6 @@ private:
 };
 
 } // namespace SliceViewer
-} // namespace Mantid
+} // namespace MantidQt
 
 #endif // SLICEVIEWER_H
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ZoomablePeaksView.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ZoomablePeaksView.h
index e38112004f1c7203a9ed607d240238c498d5ec4c..32bc20422a668f2bfeb388b2b1e2a4bf8d947c5f 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ZoomablePeaksView.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/ZoomablePeaksView.h
@@ -3,6 +3,8 @@
 
 #include "MantidKernel/System.h"
 #include "MantidKernel/V2D.h"
+#include <boost/shared_ptr.hpp>
+
 
 namespace MantidQt
 {
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/CompositePeaksPresenter.cpp b/Code/Mantid/MantidQt/SliceViewer/src/CompositePeaksPresenter.cpp
index 81aac5895fa4082947feba5a3d6439974cb154e2..200ad1d8c22bd37e216019e82383aa33ec674f8a 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/CompositePeaksPresenter.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/CompositePeaksPresenter.cpp
@@ -13,7 +13,7 @@ CompositePeaksPresenter::CompositePeaksPresenter(
     ZoomablePeaksView *const zoomablePlottingWidget,
     PeaksPresenter_sptr defaultPresenter)
     : m_zoomablePlottingWidget(zoomablePlottingWidget),
-      m_default(defaultPresenter), m_owner(NULL), m_zoomedPeakIndex(-1) {
+      m_default(defaultPresenter), m_owner(NULL), m_zoomedPeakIndex(-1){
   if (m_zoomablePlottingWidget == NULL) {
     throw std::runtime_error("Zoomable Plotting Widget is NULL");
   }
@@ -383,6 +383,20 @@ void CompositePeaksPresenter::setPeakSizeOnProjection(const double fraction) {
   }
 }
 
+/**
+ * Enter a peak edit mode
+ * @param mode : Mode to enter.
+ */
+void CompositePeaksPresenter::peakEditMode(EditMode mode) {
+    if (useDefault()) {
+      return m_default->peakEditMode(mode);
+    }
+    for (auto presenterIterator = m_subjects.begin();
+         presenterIterator != m_subjects.end(); ++presenterIterator) {
+      (*presenterIterator)->peakEditMode(mode);
+    }
+}
+
 /**
  * Fraction of the z-range to use as the peak radius.
  * @param fraction to use as the peak radius
@@ -605,7 +619,27 @@ CompositePeaksPresenter::getZoomedPeakPresenter() const {
  * @return a zoomed peak index.
  */
 int CompositePeaksPresenter::getZoomedPeakIndex() const {
-  return m_zoomedPeakIndex;
+    return m_zoomedPeakIndex;
+}
+
+void CompositePeaksPresenter::editCommand(
+    EditMode editMode,
+    boost::weak_ptr<const Mantid::API::IPeaksWorkspace> target) {
+  if (auto ws = target.lock()) {
+
+    // Change the right subject to the desired edit mode.
+    auto targetIterator = this->getPresenterIteratorFromWorkspace(ws);
+    if (targetIterator != m_subjects.end()) {
+      (*targetIterator)->peakEditMode(editMode);
+    }
+    // Reset everything else.
+    for (auto it = m_subjects.begin(); it != m_subjects.end(); ++it) {
+      if (it != targetIterator) {
+        // All other subjects must be in a neutral edit mode.
+        (*it)->peakEditMode(None);
+      }
+    }
+  }
 }
 
 void CompositePeaksPresenter::updatePeaksWorkspace(
@@ -651,5 +685,55 @@ void CompositePeaksPresenter::notifyWorkspaceChanged(
     }
   }
 }
+
+bool CompositePeaksPresenter::deletePeaksIn(PeakBoundingBox box){
+    if (useDefault()) {
+      return m_default->deletePeaksIn(box);
+    }
+    // Forward the request onwards
+    bool result = false;
+    for (auto it = m_subjects.begin(); it != m_subjects.end(); ++it) {
+      result |= (*it)->deletePeaksIn(box);
+    }
+    return result;
 }
+
+bool CompositePeaksPresenter::hasPeakAddModeFor(boost::weak_ptr<const Mantid::API::IPeaksWorkspace> target){
+    bool hasMode  = false;
+    if(auto temp = target.lock()) {
+        auto it = this->getPresenterIteratorFromWorkspace(temp);
+        if(it != m_subjects.end()) {
+            hasMode = (*it)->hasPeakAddMode();
+        }
+    }
+    return hasMode;
+}
+
+bool CompositePeaksPresenter::hasPeakAddMode() const{
+    if (useDefault()) {
+      return m_default->hasPeakAddMode();
+    }
+    // Forward the request onwards
+    bool hasMode = false;
+    for (auto it = m_subjects.begin(); it != m_subjects.end(); ++it) {
+      hasMode |= (*it)->hasPeakAddMode();
+    }
+    return hasMode;
 }
+
+bool CompositePeaksPresenter::addPeakAt(double plotCoordsPointX, double plotCoordsPointY)
+{
+    if (useDefault()) {
+      return m_default->addPeakAt(plotCoordsPointX, plotCoordsPointY);
+    }
+    // Forward the request onwards
+    bool result = false;
+    for (auto it = m_subjects.begin(); it != m_subjects.end(); ++it) {
+      result |= (*it)->addPeakAt(plotCoordsPointX, plotCoordsPointY);
+    }
+    return result;
+}
+
+}
+}
+
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/ConcretePeaksPresenter.cpp b/Code/Mantid/MantidQt/SliceViewer/src/ConcretePeaksPresenter.cpp
index 7077aa13bddfc29fd53b0f571adeaf820a3e3a62..0e5248654833674e2c4b5adfe6947b0880d8d21e 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/ConcretePeaksPresenter.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/ConcretePeaksPresenter.cpp
@@ -1,8 +1,13 @@
 #include "MantidQtSliceViewer/ConcretePeaksPresenter.h"
+#include "MantidQtSliceViewer/PeakEditMode.h"
 #include "MantidQtSliceViewer/UpdateableOnDemand.h"
 #include "MantidQtSliceViewer/ZoomableOnDemand.h"
+#include "MantidKernel/V3D.h"
+#include "MantidAPI/MultipleExperimentInfos.h"
 #include "MantidAPI/IPeaksWorkspace.h"
 #include "MantidGeometry/Crystal/IPeak.h"
+#include "MantidGeometry/Crystal/PeakShape.h"
+#include "MantidDataObjects/PeakShapeBase.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/IAlgorithm.h"
@@ -13,6 +18,7 @@
 
 using namespace Mantid::API;
 using namespace Mantid::Kernel;
+using namespace Mantid::Geometry;
 using Mantid::Geometry::IMDDimension_const_sptr;
 
 namespace MantidQt {
@@ -20,6 +26,26 @@ namespace SliceViewer {
 namespace {
 /// static logger
 Mantid::Kernel::Logger g_log("PeaksPresenter");
+
+/**
+ * Determine if we can add peaks a peaks workspace.
+ * @param peaksWS : To possibly add to
+ * @param frame : Frame of base MDWorkspace
+ * @return True only if we can add to the peaks workspace.
+ */
+bool canAddPeaksTo(IPeaksWorkspace const *const peaksWS,
+                   Mantid::Kernel::SpecialCoordinateSystem frame) {
+  /*
+   - PeaksWS Must have an oriented lattice, otherwise we can't add a
+   self-consistent peak.
+   - PeaksWS Must not be integrated, because we have no concept of radius until
+   each individual peak is integrated.
+   - The MDWorkspace must be in the HKL frame otherwise we cannot interpret plot
+   cursor coordinates.
+   */
+  return peaksWS->sample().hasOrientedLattice() &&
+         !peaksWS->hasIntegratedPeaks() && frame == Mantid::Kernel::HKL;
+}
 }
 
 /**
@@ -48,7 +74,16 @@ coordinateToString(Mantid::Kernel::SpecialCoordinateSystem coordSystem) {
  * All the views must be recreated.
  */
 void ConcretePeaksPresenter::produceViews() {
-  m_viewPeaks = m_viewFactory->createView(m_transform);
+
+  PeakOverlayView_sptr newView = m_viewFactory->createView(this, m_transform);
+  PeakOverlayView_sptr oldView = m_viewPeaks;
+  if (oldView) {
+    newView->takeSettingsFrom(oldView.get());
+  }
+  m_viewPeaks = newView;
+
+  // We reapply any cached edit mode settings we had before.
+  this->peakEditMode(m_editMode);
 }
 
 /**
@@ -118,7 +153,9 @@ ConcretePeaksPresenter::ConcretePeaksPresenter(
     : m_viewFactory(viewFactory), m_peaksWS(peaksWS),
       m_transformFactory(transformFactory),
       m_transform(transformFactory->createDefaultTransform()), m_slicePoint(),
-      m_owningPresenter(NULL), m_isHidden(false) {
+      m_owningPresenter(NULL), m_isHidden(false), m_editMode(SliceViewer::None),
+      m_hasAddPeaksMode(
+          canAddPeaksTo(peaksWS.get(), m_transform->getCoordinateSystem())) {
   // Check that the workspaces appear to be compatible. Log if otherwise.
   checkWorkspaceCompatibilities(mdWS);
 
@@ -161,6 +198,23 @@ void ConcretePeaksPresenter::initialize() {
  */
 void ConcretePeaksPresenter::update() { m_viewPeaks->updateView(); }
 
+/**
+ * Set/update the internal visible peak mask list.
+ * @param indexes : Indexes of peaks that can be seen.
+ */
+void ConcretePeaksPresenter::setVisiblePeaks(
+    const std::vector<size_t> &indexes) {
+  std::vector<bool> visible(this->m_peaksWS->getNumberPeaks(),
+                            false); // assume all invisible
+  for (size_t i = 0; i < indexes.size(); ++i) {
+    visible[indexes[i]] =
+        true; // make the visible indexes visible. Masking type operation.
+  }
+  m_viewablePeaks = visible;
+
+  m_viewPeaks->setSlicePoint(m_slicePoint.slicePoint(), m_viewablePeaks);
+}
+
 /**
  * Find the peaks in the region.
  * Update the view with all those peaks that could be viewable.
@@ -169,47 +223,9 @@ void ConcretePeaksPresenter::update() { m_viewPeaks->updateView(); }
  *user changes the effective radius of the peaks markers.
  */
 void ConcretePeaksPresenter::doFindPeaksInRegion() {
-  PeakBoundingBox transformedViewableRegion =
-      m_slicePoint.makeSliceBox(1e-6); // TODO, could actually be calculated as
-                                       // a single plane with z = 0 thickness.
-  transformedViewableRegion.transformBox(m_transform);
-
-  // Don't bother to find peaks in the region if there are no peaks to find.
-  if (this->m_peaksWS->getNumberPeaks() >= 1) {
 
-    double effectiveRadius =
-        m_viewPeaks
-            ->getRadius(); // Effective radius of each peak representation.
-
-    Mantid::API::IPeaksWorkspace_sptr peaksWS =
-        boost::const_pointer_cast<Mantid::API::IPeaksWorkspace>(
-            this->m_peaksWS);
-
-    Mantid::API::IAlgorithm_sptr alg =
-        AlgorithmManager::Instance().create("PeaksInRegion");
-    alg->setChild(true);
-    alg->setRethrows(true);
-    alg->initialize();
-    alg->setProperty("InputWorkspace", peaksWS);
-    alg->setProperty("OutputWorkspace", peaksWS->name() + "_peaks_in_region");
-    alg->setProperty("Extents", transformedViewableRegion.toExtents());
-    alg->setProperty("CheckPeakExtents", true);
-    alg->setProperty("PeakRadius", effectiveRadius);
-    alg->setPropertyValue("CoordinateFrame", m_transform->getFriendlyName());
-    alg->execute();
-    ITableWorkspace_sptr outTable = alg->getProperty("OutputWorkspace");
-    std::vector<bool> viewablePeaks(outTable->rowCount());
-    for (size_t i = 0; i < outTable->rowCount(); ++i) {
-      viewablePeaks[i] = outTable->cell<Boolean>(i, 1);
-    }
-    m_viewablePeaks = viewablePeaks;
-
-  }
-  else{
-    // No peaks will be viewable
-    m_viewablePeaks = std::vector<bool>();
-  }
-  m_viewPeaks->setSlicePoint(m_slicePoint.slicePoint(), m_viewablePeaks);
+  auto indexes = findVisiblePeakIndexes(m_slicePoint);
+  setVisiblePeaks(indexes);
 }
 
 /**
@@ -384,16 +400,15 @@ bool ConcretePeaksPresenter::isHidden() const { return m_isHidden; }
  * @param other
  * @return
  */
-bool ConcretePeaksPresenter::contentsDifferent(const PeaksPresenter *  other) const
-{
-    const SetPeaksWorkspaces otherWorkspaces =
-        other->presentedWorkspaces();
+bool ConcretePeaksPresenter::contentsDifferent(
+    const PeaksPresenter *other) const {
+  const SetPeaksWorkspaces otherWorkspaces = other->presentedWorkspaces();
 
-    // Look for this workspace in the others workspace list.
-    auto iterator = otherWorkspaces.find(this->m_peaksWS);
+  // Look for this workspace in the others workspace list.
+  auto iterator = otherWorkspaces.find(this->m_peaksWS);
 
-    const bool different = (iterator == otherWorkspaces.end());
-    return different;
+  const bool different = (iterator == otherWorkspaces.end());
+  return different;
 }
 
 /**
@@ -451,7 +466,8 @@ void ConcretePeaksPresenter::setPeakSizeIntoProjection(const double fraction) {
 
 double ConcretePeaksPresenter::getPeakSizeOnProjection() const {
   double result = 0;
-  if (m_viewPeaks != NULL && (m_peaksWS->getNumberPeaks() > 0) && m_viewPeaks->positionOnly()) {
+  if (m_viewPeaks != NULL && (m_peaksWS->getNumberPeaks() > 0) &&
+      m_viewPeaks->positionOnly()) {
     result = m_viewPeaks->getOccupancyInView();
   }
   return result;
@@ -459,14 +475,15 @@ double ConcretePeaksPresenter::getPeakSizeOnProjection() const {
 
 double ConcretePeaksPresenter::getPeakSizeIntoProjection() const {
   double result = 0;
-  if (m_viewPeaks != NULL && (m_peaksWS->getNumberPeaks() > 0) && m_viewPeaks->positionOnly()) {
+  if (m_viewPeaks != NULL && (m_peaksWS->getNumberPeaks() > 0) &&
+      m_viewPeaks->positionOnly()) {
     result = m_viewPeaks->getOccupancyIntoView();
   }
   return result;
 }
 
-void
-ConcretePeaksPresenter::registerOwningPresenter(UpdateableOnDemand *owner) {
+void ConcretePeaksPresenter::registerOwningPresenter(
+    UpdateableOnDemand *owner) {
   m_owningPresenter = owner;
 }
 
@@ -485,5 +502,146 @@ void ConcretePeaksPresenter::zoomToPeak(const int peakIndex) {
     zoomable->zoomToPeak(this, peakIndex);
   }
 }
+
+void ConcretePeaksPresenter::peakEditMode(EditMode mode) {
+  if (mode == DeletePeaks) {
+    m_viewPeaks->peakDeletionMode();
+  } else if (mode == AddPeaks) {
+    m_viewPeaks->peakAdditionMode();
+  } else {
+    m_viewPeaks->peakDisplayMode();
+  }
+  // Cache the current edit mode.
+  m_editMode = mode;
+}
+
+bool ConcretePeaksPresenter::deletePeaksIn(PeakBoundingBox box) {
+
+  Left left(box.left());
+  Right right(box.right());
+  Bottom bottom(box.bottom());
+  Top top(box.top());
+  SlicePoint slicePoint(box.slicePoint());
+  if (slicePoint() < 0) { // indicates that it should not be used.
+    slicePoint = SlicePoint(m_slicePoint.slicePoint());
+  }
+
+  PeakBoundingBox accurateBox(
+      left, right, top, bottom,
+      slicePoint /*Use the current slice position, previously unknown.*/);
+
+  // Tranform box from plot coordinates into orderd HKL, Qx,Qy,Qz etc, then find
+  // the visible peaks.
+  std::vector<size_t> deletionIndexList = findVisiblePeakIndexes(
+      accurateBox);
+
+  // If we have things to remove, do that in one-step.
+  if (!deletionIndexList.empty()) {
+
+    Mantid::API::IPeaksWorkspace_sptr peaksWS =
+        boost::const_pointer_cast<Mantid::API::IPeaksWorkspace>(
+            this->m_peaksWS);
+    // Sort the Peaks in-place.
+    Mantid::API::IAlgorithm_sptr alg =
+        AlgorithmManager::Instance().create("DeleteTableRows");
+    alg->setChild(true);
+    alg->setRethrows(true);
+    alg->initialize();
+    alg->setProperty("TableWorkspace", peaksWS);
+    alg->setProperty("Rows", deletionIndexList);
+    alg->execute();
+
+    // Reproduce the views. Proxy representations recreated for all peaks.
+    this->produceViews();
+
+    // Refind visible peaks and Set the proxy representations to be visible or
+    // not.
+    doFindPeaksInRegion();
+
+    // Upstream controls need to be regenerated.
+    this->informOwnerUpdate();
+  }
+  return !deletionIndexList.empty();
+}
+
+bool ConcretePeaksPresenter::addPeakAt(double plotCoordsPointX,
+                                       double plotCoordsPointY) {
+  V3D plotCoordsPoint(plotCoordsPointX, plotCoordsPointY,
+                      m_slicePoint.slicePoint());
+  V3D hkl = m_transform->transformBack(plotCoordsPoint);
+
+  Mantid::API::IPeaksWorkspace_sptr peaksWS =
+      boost::const_pointer_cast<Mantid::API::IPeaksWorkspace>(this->m_peaksWS);
+
+  Mantid::API::IAlgorithm_sptr alg =
+      AlgorithmManager::Instance().create("AddPeakHKL");
+  alg->setChild(true);
+  alg->setRethrows(true);
+  alg->initialize();
+  alg->setProperty("Workspace", peaksWS);
+  alg->setProperty("HKL", std::vector<double>(hkl));
+  alg->execute();
+
+  // Reproduce the views. Proxy representations recreated for all peaks.
+  this->produceViews();
+
+  // Refind visible peaks and Set the proxy representations to be visible or
+  // not.
+  doFindPeaksInRegion();
+
+  // Upstream controls need to be regenerated.
+  this->informOwnerUpdate();
+
+  return alg->isExecuted();
+}
+
+bool ConcretePeaksPresenter::hasPeakAddMode() const {
+  return m_hasAddPeaksMode;
+}
+
+std::vector<size_t>
+ConcretePeaksPresenter::findVisiblePeakIndexes(const PeakBoundingBox &box) {
+  std::vector<size_t> indexes;
+  // Don't bother to find peaks in the region if there are no peaks to find.
+  if (this->m_peaksWS->getNumberPeaks() >= 1) {
+
+    double radius =
+        m_viewPeaks
+            ->getRadius(); // Effective radius of each peak representation.
+
+    Mantid::API::IPeaksWorkspace_sptr peaksWS =
+          boost::const_pointer_cast<Mantid::API::IPeaksWorkspace>(
+              this->m_peaksWS);
+
+      PeakBoundingBox transformedViewableRegion =
+          box.makeSliceBox(radius);
+
+      transformedViewableRegion.transformBox(m_transform);
+
+
+      Mantid::API::IAlgorithm_sptr alg =
+          AlgorithmManager::Instance().create("PeaksInRegion");
+      alg->setChild(true);
+      alg->setRethrows(true);
+      alg->initialize();
+      alg->setProperty("InputWorkspace", peaksWS);
+      alg->setProperty("OutputWorkspace", peaksWS->name() + "_peaks_in_region");
+      alg->setProperty("Extents", transformedViewableRegion.toExtents());
+      alg->setProperty("CheckPeakExtents", false); // consider all peaks as points
+      alg->setProperty("PeakRadius", radius);
+      alg->setPropertyValue("CoordinateFrame", m_transform->getFriendlyName());
+      alg->execute();
+      ITableWorkspace_sptr outTable = alg->getProperty("OutputWorkspace");
+
+    
+    for (size_t i = 0; i < outTable->rowCount(); ++i) {
+      const bool insideRegion = outTable->cell<Boolean>(i, 1);
+      if (insideRegion) {
+        indexes.push_back(i);
+      }
+    }
+  }
+  return indexes;
+}
 }
 }
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/LineViewer.cpp b/Code/Mantid/MantidQt/SliceViewer/src/LineViewer.cpp
index e3682acd77e26ae71fd37233c078a8c79b4cc9f6..bb4f9769c523dd6603c89bffbc05a5fc19f0f111 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/LineViewer.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/LineViewer.cpp
@@ -472,6 +472,11 @@ LineViewer::applyMDWorkspace(Mantid::API::IMDWorkspace_sptr ws) {
   alg->setPropertyValue("OutputWorkspace", m_integratedWSName);
   alg->setProperty("AxisAligned", false);
 
+  // If we are rebinning from an existing MDHistoWorkspace, and that workspace has been created with basis vectors normalized, then we reapply that setting here.
+  if(boost::dynamic_pointer_cast<IMDHistoWorkspace>(m_ws)){
+      alg->setProperty("NormalizeBasisVectors", m_ws->allBasisNormalized());
+  }
+
   std::vector<int> OutputBins;
   std::vector<double> OutputExtents;
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayInteractive.cpp b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayInteractive.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0630465e623ddd098b97ae80c4482a38081ed5f5
--- /dev/null
+++ b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayInteractive.cpp
@@ -0,0 +1,193 @@
+#include "MantidQtSliceViewer/PeakOverlayInteractive.h"
+#include "MantidQtSliceViewer/PeaksPresenter.h"
+#include "MantidQtMantidWidgets/InputController.h"
+#include <qwt_plot.h>
+#include <qwt_plot_canvas.h>
+#include <qwt_scale_div.h>
+#include <QApplication>
+#include <QPaintEvent>
+#include <QPainter>
+
+namespace MantidQt {
+namespace SliceViewer {
+
+PeakOverlayInteractive::PeakOverlayInteractive(
+    PeaksPresenter *const peaksPresenter, QwtPlot *plot, const int plotXIndex,
+    const int plotYIndex, QWidget *parent)
+    : QWidget(parent), m_presenter(peaksPresenter), m_plot(plot),
+      m_plotXIndex(plotXIndex), m_plotYIndex(plotYIndex), m_tool(NULL) {
+
+  setAttribute(Qt::WA_NoMousePropagation, false);
+  setAttribute(Qt::WA_MouseTracking, true);
+
+  // Non-editing by default
+  peakDisplayMode();
+
+  this->setVisible(true);
+  setUpdatesEnabled(true);
+
+}
+
+PeakOverlayInteractive::~PeakOverlayInteractive()
+{
+    this->peakDisplayMode();
+}
+
+void PeakOverlayInteractive::paintEvent(QPaintEvent *event) {
+  // Only paint to update the interactive tool
+  if (m_tool) {
+    QPainter painter(this);
+    m_tool->onPaint(painter);
+    painter.end();
+  }
+  // Sub-classes are responsible for painting their respective peak
+  // representations
+  this->doPaintPeaks(event);
+}
+
+void PeakOverlayInteractive::captureMouseEvents(bool capture)
+{
+    setAttribute(Qt::WA_TransparentForMouseEvents, !capture);
+}
+
+void PeakOverlayInteractive::peakDeletionMode() {
+    captureMouseEvents(true);
+    QApplication::restoreOverrideCursor();
+    auto* temp = m_tool;
+    auto* eraseTool = new MantidQt::MantidWidgets::InputControllerErase(this);
+    connect(eraseTool,SIGNAL(erase(QRect)),this,SLOT(erasePeaks(QRect)), Qt::QueuedConnection);
+    m_tool = eraseTool;
+    delete temp;
+}
+
+void PeakOverlayInteractive::peakAdditionMode() {
+    captureMouseEvents(true);
+    QApplication::restoreOverrideCursor();
+    auto* temp = m_tool;
+    auto* addTool = new MantidQt::MantidWidgets::InputControllerPick(this);
+    connect(addTool,SIGNAL(pickPointAt(int,int)),this,SLOT(addPeakAt(int,int)));
+    m_tool = addTool;
+    delete temp;
+}
+
+void PeakOverlayInteractive::peakDisplayMode() {
+    captureMouseEvents(false /*pass through mouse events*/);
+    QApplication::restoreOverrideCursor();
+    if(m_tool){
+        delete m_tool;
+        m_tool = NULL;
+    }
+}
+
+void PeakOverlayInteractive::mousePressEvent(QMouseEvent* e)
+{
+    if(m_tool) {
+      m_tool->mousePressEvent( e );
+    }else{
+        e->ignore();
+    }
+}
+
+void PeakOverlayInteractive::mouseMoveEvent(QMouseEvent* e)
+{
+    if(m_tool) {
+      m_tool->mouseMoveEvent( e );
+      this->update();
+    }
+    e->ignore();
+
+}
+
+void PeakOverlayInteractive::mouseReleaseEvent(QMouseEvent* e)
+{
+    if(m_tool) {
+      m_tool->mouseReleaseEvent( e );
+    }else{
+        e->ignore();
+    }
+}
+
+void PeakOverlayInteractive::wheelEvent(QWheelEvent* e)
+{
+    if(m_tool) {
+      m_tool->wheelEvent( e );
+    }else{
+        e->ignore();
+    }
+}
+
+void PeakOverlayInteractive::keyPressEvent(QKeyEvent* e)
+{
+    if(m_tool) {
+      m_tool->keyPressEvent( e );
+    }else{
+        e->ignore();
+    }
+}
+
+void PeakOverlayInteractive::enterEvent(QEvent *e)
+{
+    if(m_tool) {
+      m_tool->enterEvent( e );
+    }else{
+        e->ignore();
+    }
+}
+
+void PeakOverlayInteractive::leaveEvent(QEvent *e)
+{
+    if(m_tool) {
+      m_tool->leaveEvent( e );
+    }else{
+        e->ignore();
+    }
+}
+
+void PeakOverlayInteractive::addPeakAt(int coordX, int coordY) {
+
+    QwtScaleMap xMap = m_plot->canvasMap(m_plotXIndex);
+    QwtScaleMap yMap = m_plot->canvasMap(m_plotYIndex);
+
+    const double plotX = xMap.invTransform(double(coordX));
+    const double plotY = yMap.invTransform(double(coordY));
+
+    m_presenter->addPeakAt(plotX, plotY);
+}
+
+
+void PeakOverlayInteractive::erasePeaks(const QRect &rect)
+{
+    QwtScaleMap xMap = m_plot->canvasMap(m_plotXIndex);
+    QwtScaleMap yMap = m_plot->canvasMap(m_plotYIndex);
+
+    const Left left(xMap.invTransform(rect.left()));
+    const Right right(xMap.invTransform(rect.right()));
+    const Top top(yMap.invTransform(rect.top()));
+    const Bottom bottom(yMap.invTransform(rect.bottom()));
+    const SlicePoint slicePoint(-1); // Not required.
+
+    m_presenter->deletePeaksIn(PeakBoundingBox(left, right, top, bottom, slicePoint));
+}
+
+//----------------------------------------------------------------------------------------------
+/// Return the recommended size of the widget
+QSize PeakOverlayInteractive::sizeHint() const
+{
+  //TODO: Is there a smarter way to find the right size?
+  return QSize(20000, 20000);
+  // Always as big as the canvas
+  //return m_plot->canvas()->size();
+}
+
+QSize PeakOverlayInteractive::size() const
+{ return m_plot->canvas()->size(); }
+
+int PeakOverlayInteractive::height() const
+{ return m_plot->canvas()->height(); }
+
+int PeakOverlayInteractive::width() const
+{ return m_plot->canvas()->width(); }
+
+
+}
+}
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiCross.cpp b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiCross.cpp
index f51ab66e58eba191f1ce7d8e17f70449df306004..d02a14d84fe5c03593aefd1617ff938ee82b11d1 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiCross.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiCross.cpp
@@ -1,10 +1,14 @@
 #include "MantidQtSliceViewer/PeakOverlayMultiCross.h"
+#include "MantidQtSliceViewer/PeaksPresenter.h"
+#include "MantidQtMantidWidgets/InputController.h"
 #include <qwt_plot.h>
 #include <qwt_plot_canvas.h>
 #include <qwt_scale_div.h>
 #include <qpainter.h>
 #include <QPen>
 #include <QMouseEvent>
+#include <QApplication>
+
 
 using namespace Mantid::Kernel;
 using namespace Mantid::Geometry;
@@ -18,17 +22,21 @@ namespace MantidQt
     //----------------------------------------------------------------------------------------------
     /** Constructor
     */
-    PeakOverlayMultiCross::PeakOverlayMultiCross(QwtPlot * plot, QWidget * parent, const VecPhysicalCrossPeak&  vecPhysicalPeaks, const QColor& peakColour)
-      : QWidget( parent ),
-      m_plot(plot),
+    PeakOverlayMultiCross::PeakOverlayMultiCross(PeaksPresenter* const presenter, QwtPlot * plot, QWidget * parent,
+                                                 const VecPhysicalCrossPeak&  vecPhysicalPeaks, const int plotXIndex, const int plotYIndex, const QColor& peakColour)
+      : PeakOverlayInteractive ( presenter, plot, plotXIndex, plotYIndex, parent ),
       m_physicalPeaks(vecPhysicalPeaks),
-      m_peakColour(peakColour)
+      m_peakColour(peakColour),
+      m_cachedOccupancyIntoView(0),
+      m_cachedOccupancyInView(0)
     {
-      setAttribute(Qt::WA_NoMousePropagation, false);
-      this->setVisible(true);
-      setUpdatesEnabled(true);
-
-      setAttribute(Qt::WA_TransparentForMouseEvents);
+        if(vecPhysicalPeaks.size() > 0)
+        {
+            // Cache the occupancy if we can, that way if all physical peaks are removed, we still keep the occupancy settings.
+            VecPhysicalCrossPeak::value_type firstPhysicalPeak = vecPhysicalPeaks.front();
+            m_cachedOccupancyIntoView = firstPhysicalPeak->getOccupancyIntoView();
+            m_cachedOccupancyInView = firstPhysicalPeak->getOccupancyInView();
+        }
     }
 
     //----------------------------------------------------------------------------------------------
@@ -59,26 +67,10 @@ namespace MantidQt
     }
 
 
-    //----------------------------------------------------------------------------------------------
-    /// Return the recommended size of the widget
-    QSize PeakOverlayMultiCross::sizeHint() const
-    {
-      //TODO: Is there a smarter way to find the right size?
-      return QSize(20000, 20000);
-      // Always as big as the canvas
-      //return m_plot->canvas()->size();
-    }
-
-    QSize PeakOverlayMultiCross::size() const
-    { return m_plot->canvas()->size(); }
-    int PeakOverlayMultiCross::height() const
-    { return m_plot->canvas()->height(); }
-    int PeakOverlayMultiCross::width() const
-    { return m_plot->canvas()->width(); }
 
     //----------------------------------------------------------------------------------------------
     /// Paint the overlay
-    void PeakOverlayMultiCross::paintEvent(QPaintEvent * /*event*/)
+    void PeakOverlayMultiCross::doPaintPeaks(QPaintEvent * /*event*/)
     {
       for(size_t i = 0; i < m_viewablePeaks.size(); ++i)
       {
@@ -108,6 +100,7 @@ namespace MantidQt
 
           painter.drawLine(bottomL, topR);
           painter.drawLine(bottomR, topL);
+          painter.end();
         }
       }
     }
@@ -164,6 +157,7 @@ namespace MantidQt
       {
         m_physicalPeaks[i]->setOccupancyInView(fraction);
       }
+      m_cachedOccupancyInView = fraction;
     }
 
     /**
@@ -176,16 +170,17 @@ namespace MantidQt
       {
         m_physicalPeaks[i]->setOccupancyIntoView(fraction);
       }
+      m_cachedOccupancyIntoView = fraction;
     }
 
     double PeakOverlayMultiCross::getOccupancyInView() const
     {
-      return m_physicalPeaks[0]->getOccupancyInView();
+      return m_cachedOccupancyInView;
     }
 
     double PeakOverlayMultiCross::getOccupancyIntoView() const
     {
-      return m_physicalPeaks[0]->getOccupancyIntoView();
+      return m_cachedOccupancyIntoView;
     }
 
     bool PeakOverlayMultiCross::positionOnly() const
@@ -213,5 +208,14 @@ namespace MantidQt
       return m_peakColour;
     }
 
+    void PeakOverlayMultiCross::takeSettingsFrom(const PeakOverlayView * const source)
+    {
+        this->changeForegroundColour(source->getForegroundColour());
+        this->changeBackgroundColour(source->getBackgroundColour());
+        this->changeOccupancyIntoView(source->getOccupancyIntoView());
+        this->changeOccupancyInView(source->getOccupancyInView());
+        this->showBackgroundRadius(source->isBackgroundShown());
+    }
+
   } // namespace Mantid
 } // namespace SliceViewer
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiCrossFactory.cpp b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiCrossFactory.cpp
index 5f929bdd157a8592beb399c72fdb5e30b1bd8add..d49eeaccabcc3333b27b3788dd50e38e5889db07 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiCrossFactory.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiCrossFactory.cpp
@@ -1,11 +1,13 @@
 #include "MantidQtSliceViewer/PeakOverlayMultiCrossFactory.h"
 #include "MantidQtSliceViewer/PeakOverlayMultiCross.h"
+#include "MantidQtSliceViewer/PeaksPresenter.h"
 #include "MantidQtSliceViewer/PhysicalCrossPeak.h"
 #include "MantidKernel/V3D.h"
 #include "MantidGeometry/Crystal/IPeak.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include <boost/make_shared.hpp>
 #include <boost/regex.hpp>
 
@@ -17,8 +19,8 @@ namespace MantidQt
   namespace SliceViewer
   {
 
-    PeakOverlayMultiCrossFactory::PeakOverlayMultiCrossFactory(boost::shared_ptr<Mantid::API::MDGeometry> mdWS, PeakTransform_const_sptr transform, IPeaksWorkspace_sptr peaksWS, QwtPlot * plot, QWidget * parent, const size_t colourNumber)
-    : PeakOverlayViewFactoryBase(plot, parent, colourNumber),
+    PeakOverlayMultiCrossFactory::PeakOverlayMultiCrossFactory(boost::shared_ptr<Mantid::API::MDGeometry> mdWS, PeakTransform_const_sptr transform, IPeaksWorkspace_sptr peaksWS, QwtPlot * plot, QWidget * parent, const int plotXIndex, const int plotYIndex, const size_t colourNumber)
+    : PeakOverlayViewFactoryBase(plot, parent, plotXIndex, plotYIndex, colourNumber),
       m_peaksWS(peaksWS),
       m_zMax(0),
       m_zMin(0)
@@ -39,7 +41,7 @@ namespace MantidQt
     {
     }
 
-    boost::shared_ptr<PeakOverlayView> PeakOverlayMultiCrossFactory::createView(PeakTransform_const_sptr transform) const
+    boost::shared_ptr<PeakOverlayView> PeakOverlayMultiCrossFactory::createView(PeaksPresenter* const presenter, PeakTransform_const_sptr transform) const
     {
       // Construct all physical peaks
       VecPhysicalCrossPeak physicalPeaks(m_peaksWS->rowCount());
@@ -51,7 +53,7 @@ namespace MantidQt
       }
 
       // Make the overlay widget.
-      return boost::make_shared<PeakOverlayMultiCross>(m_plot, m_parent, physicalPeaks, this->m_peakColour);
+      return boost::make_shared<PeakOverlayMultiCross>(presenter, m_plot, m_parent, physicalPeaks, m_plotXIndex, m_plotYIndex, this->m_peakColour);
     }
 
     int PeakOverlayMultiCrossFactory::FOM() const
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiSphere.cpp b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiSphere.cpp
index 33fa5129d2d18ce1428adf513e1eb9939536e897..f4f04d61b5b058569c3635ff4c34cbc8d870f1ac 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiSphere.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiSphere.cpp
@@ -4,7 +4,6 @@
 #include <qwt_scale_div.h>
 #include <qpainter.h>
 #include <QPen>
-#include <QMouseEvent>
 
 using namespace Mantid::Kernel;
 using namespace Mantid::Geometry;
@@ -15,16 +14,24 @@ namespace MantidQt
   {
 
     //----------------------------------------------------------------------------------------------
-    /** Constructor
+
+
+  /**
+     * Constructor
+     * @param presenter : controller
+     * @param plot : plot
+     * @param parent : plot-canvas
+     * @param vecPhysicalPeaks : List of physical peaks to show
+     * @param plotXIndex : plot x-index
+     * @param plotYIndex : plot y-index
+     * @param peakColour : peak colour
+     * @param backColour : background colour
      */
-    PeakOverlayMultiSphere::PeakOverlayMultiSphere(QwtPlot * plot, QWidget * parent, const VecPhysicalSphericalPeak& vecPhysicalPeaks , const QColor& peakColour, const QColor& backColour) :
-        QWidget(parent), m_plot(plot), m_physicalPeaks(vecPhysicalPeaks), m_peakColour(peakColour), m_backColour(backColour), m_showBackground(false)
+    PeakOverlayMultiSphere::PeakOverlayMultiSphere(PeaksPresenter* const presenter, QwtPlot * plot, QWidget * parent, const VecPhysicalSphericalPeak& vecPhysicalPeaks,
+                                                   const int plotXIndex, const int plotYIndex, const QColor& peakColour, const QColor& backColour) :
+        PeakOverlayInteractive(presenter, plot, plotXIndex, plotYIndex, parent), m_physicalPeaks(vecPhysicalPeaks),
+        m_peakColour(peakColour), m_backColour(backColour), m_showBackground(false)
     {
-      setAttribute(Qt::WA_NoMousePropagation, false);
-      this->setVisible(true);
-      setUpdatesEnabled(true);
-
-      setAttribute(Qt::WA_TransparentForMouseEvents);
     }
 
     //----------------------------------------------------------------------------------------------
@@ -47,32 +54,9 @@ namespace MantidQt
       this->update(); //repaint
     }
 
-    //----------------------------------------------------------------------------------------------
-    /// Return the recommended size of the widget
-    QSize PeakOverlayMultiSphere::sizeHint() const
-    {
-      //TODO: Is there a smarter way to find the right size?
-      return QSize(20000, 20000);
-      // Always as big as the canvas
-      //return m_plot->canvas()->size();
-    }
-
-    QSize PeakOverlayMultiSphere::size() const
-    {
-      return m_plot->canvas()->size();
-    }
-    int PeakOverlayMultiSphere::height() const
-    {
-      return m_plot->canvas()->height();
-    }
-    int PeakOverlayMultiSphere::width() const
-    {
-      return m_plot->canvas()->width();
-    }
-
     //----------------------------------------------------------------------------------------------
     /// Paint the overlay
-    void PeakOverlayMultiSphere::paintEvent(QPaintEvent * /*event*/)
+    void PeakOverlayMultiSphere::doPaintPeaks(QPaintEvent * /*event*/)
     {
       for(size_t i = 0; i < m_viewablePeaks.size(); ++i)
       {
@@ -113,6 +97,7 @@ namespace MantidQt
           QPainterPath backgroundRadiusFill = backgroundOuterPath.subtracted(backgroundInnerPath);
           painter.fillPath(backgroundRadiusFill, m_backColour);
         }
+        painter.end();
       }
       }
     }
@@ -180,12 +165,12 @@ namespace MantidQt
 
     double PeakOverlayMultiSphere::getOccupancyInView() const
     {
-      throw std::runtime_error("PeakOverlaySphere::getOccupancyInView() not implemented");
+      return -1.0;
     }
 
     double PeakOverlayMultiSphere::getOccupancyIntoView() const
     {
-      throw std::runtime_error("PeakOverlaySphere::getOccupancyIntoView() not implemented");
+      return -1.0;
     }
 
     bool PeakOverlayMultiSphere::positionOnly() const
@@ -213,5 +198,13 @@ namespace MantidQt
       return m_peakColour;
     }
 
+
+    void PeakOverlayMultiSphere::takeSettingsFrom(const PeakOverlayView * const source)
+    {
+        this->changeForegroundColour(source->getForegroundColour());
+        this->changeBackgroundColour(source->getBackgroundColour());
+        this->showBackgroundRadius(source->isBackgroundShown());
+    }
+
   } // namespace Mantid
 } // namespace SliceViewer
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiSphereFactory.cpp b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiSphereFactory.cpp
index 05cd9cd8a8f6ddb75a92109a22a8efb316d1edca..9b9a80246c7f43e5e0a6b29a874102df16163af2 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiSphereFactory.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayMultiSphereFactory.cpp
@@ -1,23 +1,28 @@
 #include "MantidQtSliceViewer/PeakOverlayMultiSphereFactory.h"
 #include "MantidQtSliceViewer/PeakOverlayMultiSphere.h"
+#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidQtSliceViewer/PeaksPresenter.h"
+#include "MantidKernel/WarningSuppressions.h"
+#include "MantidDataObjects/PeakShapeSpherical.h"
 #include <boost/make_shared.hpp>
 
 using namespace Mantid::API;
+using namespace Mantid::DataObjects;
 
 namespace MantidQt
 {
   namespace SliceViewer
   {
 
-    PeakOverlayMultiSphereFactory::PeakOverlayMultiSphereFactory(IPeaksWorkspace_sptr peaksWS, QwtPlot * plot, QWidget * parent, const size_t colourNumber) :
-        PeakOverlayViewFactoryBase(plot, parent, colourNumber),
+    PeakOverlayMultiSphereFactory::PeakOverlayMultiSphereFactory(IPeaksWorkspace_sptr peaksWS, QwtPlot * plot, QWidget * parent, const int plotXIndex, const int plotYIndex, const size_t colourNumber) :
+        PeakOverlayViewFactoryBase(plot, parent, plotXIndex, plotYIndex, colourNumber),
         m_peakRadius(0),
         m_backgroundInnerRadius(0),
         m_backgroundOuterRadius(0),
         m_peaksWS(peaksWS),
         m_FOM(0)
     {
-      if (m_peaksWS->hasIntegratedPeaks())
+      if (m_peaksWS->hasIntegratedPeaks()) // TODO depends on the shape.
       {
     	  try
     	  {
@@ -46,19 +51,38 @@ namespace MantidQt
       }
     }
 
-    boost::shared_ptr<PeakOverlayView> PeakOverlayMultiSphereFactory::createView(Mantid::Geometry::PeakTransform_const_sptr transform) const
+    GCC_DIAG_OFF(strict-aliasing)
+    boost::shared_ptr<PeakOverlayView> PeakOverlayMultiSphereFactory::createView(PeaksPresenter* const presenter, Mantid::Geometry::PeakTransform_const_sptr transform) const
     {
       // Construct all physical peaks
       VecPhysicalSphericalPeak physicalPeaks(m_peaksWS->rowCount());
       for(size_t i = 0; i < physicalPeaks.size(); ++i)
       {
         const Mantid::Geometry::IPeak& peak = m_peaksWS->getPeak(static_cast<int>(i));
+        const Mantid::Geometry::PeakShape& peakShape = peak.getPeakShape();
         auto position = transform->transformPeak(peak);
-        physicalPeaks[i] = boost::make_shared<PhysicalSphericalPeak>(position, m_peakRadius[i], m_backgroundInnerRadius[i], m_backgroundOuterRadius[i]);
-      }
+        if(const PeakShapeSpherical* sphericalShape = dynamic_cast<const PeakShapeSpherical*>(&peakShape)){
+            auto radius = sphericalShape->radius();
+            auto optOuterRadius = sphericalShape->backgroundOuterRadius();
+            auto optInnerRadius = sphericalShape->backgroundInnerRadius();
+
+
+            auto outerRadius = optOuterRadius.is_initialized() ? optOuterRadius.get() : radius;
+            auto innerRadius = optInnerRadius.is_initialized() ? optInnerRadius.get() : radius;
+
+
+            physicalPeaks[i] = boost::make_shared<PhysicalSphericalPeak>(position, radius, innerRadius, outerRadius);
+
+        } else {
+            // This method of doing things is effectivlely deprecated now since we have the PeakShape. I will eventually strip this out.
+            physicalPeaks[i] = boost::make_shared<PhysicalSphericalPeak>(position, m_peakRadius[i], m_backgroundInnerRadius[i], m_backgroundOuterRadius[i]);
+
+        }
+
+       }
 
       // Make the overlay widget.
-      return boost::make_shared<PeakOverlayMultiSphere>(m_plot, m_parent, physicalPeaks, this->m_peakColour, this->m_backColour);
+      return boost::make_shared<PeakOverlayMultiSphere>(presenter, m_plot, m_parent, physicalPeaks, m_plotXIndex, m_plotYIndex, this->m_peakColour, this->m_backColour);
     }
 
     PeakOverlayMultiSphereFactory::~PeakOverlayMultiSphereFactory()
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayViewFactoryBase.cpp b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayViewFactoryBase.cpp
index bba810c29d3c2a2504b395fe269ce733ca82c4c9..6f27fe3b3f8df448a630de1977e54a2312d278eb 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayViewFactoryBase.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/PeakOverlayViewFactoryBase.cpp
@@ -9,7 +9,8 @@ namespace MantidQt
   namespace SliceViewer
   {
 
-    PeakOverlayViewFactoryBase::PeakOverlayViewFactoryBase(QwtPlot * plot, QWidget * parent, const size_t workspaceNumber) : PeakOverlayViewFactory(), m_plot(plot), m_parent(parent)
+    PeakOverlayViewFactoryBase::PeakOverlayViewFactoryBase(QwtPlot * plot, QWidget * parent, const int plotXIndex, const int plotYIndex, const size_t workspaceNumber) : PeakOverlayViewFactory(), m_plot(plot), m_parent(parent),
+        m_plotXIndex(plotXIndex), m_plotYIndex(plotYIndex)
     {
       if(!plot)
         throw std::invalid_argument("PeakOverlayViewFactoryBase plot is null");
@@ -39,4 +40,4 @@ namespace MantidQt
     {
     }
   }
-}
\ No newline at end of file
+}
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/PeaksViewer.cpp b/Code/Mantid/MantidQt/SliceViewer/src/PeaksViewer.cpp
index 4ae2961155029590ccf3646276fbf38a26f072fc..8034a80c7909877c78b2e430082b98b8e5b4776a 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/PeaksViewer.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/PeaksViewer.cpp
@@ -2,6 +2,7 @@
 #include "MantidQtSliceViewer/PeaksWorkspaceWidget.h"
 #include "MantidQtSliceViewer/ProxyCompositePeaksPresenter.h"
 #include "MantidQtSliceViewer/PeaksTableColumnsDialog.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include <QBoxLayout>
 #include <QLayoutItem>
 
@@ -48,15 +49,18 @@ void PeaksViewer::setPresenter(
   if (layout()) {
     removeLayout(this);
   }
-  this->setLayout(new QVBoxLayout);
+  QVBoxLayout* masterLayout = new QVBoxLayout;
+  this->setLayout(masterLayout);
+
   auto it = workspaces.begin();
   while (it != workspaces.end()) {
     Mantid::API::IPeaksWorkspace_const_sptr ws = *it;
     auto backgroundColour = m_presenter->getBackgroundColour(ws);
     auto foregroundColour = m_presenter->getForegroundColour(ws);
+    bool canAddPeaks = m_presenter->hasPeakAddModeFor(ws);
 
     auto widget = new PeaksWorkspaceWidget(
-        ws, coordinateSystem, foregroundColour, backgroundColour, this);
+        ws, coordinateSystem, foregroundColour, backgroundColour, canAddPeaks ,  this);
 
     connect(widget, SIGNAL(peakColourChanged(
                         Mantid::API::IPeaksWorkspace_const_sptr, QColor)),
@@ -118,6 +122,55 @@ PeaksViewer::~PeaksViewer() {}
  */
 bool PeaksViewer::hasThingsToShow() const { return m_presenter->size() >= 1; }
 
+void PeaksViewer::   clearPeaksModeRequest(
+    const PeaksWorkspaceWidget *const originWidget, const bool on) {
+  EditMode mode;
+  if (on) {
+    QList<PeaksWorkspaceWidget *> children =
+        qFindChildren<PeaksWorkspaceWidget *>(this);
+    for (int i = 0; i < children.size(); ++i) {
+      PeaksWorkspaceWidget *candidateWidget = children.at(i);
+      // For all but the most recently selected peaks workspace. Exit clear
+      // mode.
+      if (candidateWidget != originWidget) {
+        // Exit clear mode on others.
+        candidateWidget->exitClearPeaksMode();
+      }
+      // One mode, and One Workspace at a time. Cannot be in Add mode for any
+      // Workspace while clearing peaks.
+      candidateWidget->exitAddPeaksMode();
+      mode = DeletePeaks;
+    }
+  } else {
+    mode = None;
+  }
+  m_presenter->editCommand(mode, originWidget->getPeaksWorkspace());
+}
+
+void PeaksViewer::addPeaksModeRequest(const PeaksWorkspaceWidget * const originWidget, const bool on)
+{
+    EditMode mode;
+    if(on) {
+    QList<PeaksWorkspaceWidget *> children =
+        qFindChildren<PeaksWorkspaceWidget *>(this);
+    for (int i = 0; i < children.size(); ++i) {
+      PeaksWorkspaceWidget *candidateWidget = children.at(i);
+      // For all but the most recently selected peaks workspace. Exit clear mode.
+      if(candidateWidget != originWidget){
+          // Exit Add mode on others.
+          candidateWidget->exitAddPeaksMode();
+      }
+      // One mode, and One Workspace at a time. Cannot be in Clear mode for any Workspace while clearing peaks.
+      candidateWidget->exitClearPeaksMode();
+      mode = AddPeaks;
+
+    }
+    } else {
+        mode = None;
+    }
+    m_presenter->editCommand(mode, originWidget->getPeaksWorkspace());
+}
+
 /**
  * Handler for changing the peak radius colour.
  * @param peaksWS : Peaks workspace to change the foreground colour on.
@@ -207,7 +260,6 @@ void PeaksViewer::performUpdate() {
     // Now find the PeaksWorkspaceWidget corresponding to this workspace name.
     QList<PeaksWorkspaceWidget *> children =
         qFindChildren<PeaksWorkspaceWidget *>(this);
-    Mantid::API::IPeaksWorkspace_sptr targetPeaksWorkspace;
     for (int i = 0; i < children.size(); ++i) {
       PeaksWorkspaceWidget *candidateWidget = children.at(i);
       Mantid::API::IPeaksWorkspace_const_sptr candidateWorkspace =
@@ -226,6 +278,8 @@ void PeaksViewer::performUpdate() {
           }
         }
       }
+      // We also update the widget in case the workspace has changed for added/deleted peaks
+      candidateWidget->workspaceUpdate();
     }
   }
 }
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/PeaksWorkspaceWidget.cpp b/Code/Mantid/MantidQt/SliceViewer/src/PeaksWorkspaceWidget.cpp
index 427a3977b1282eeb7c804f554832c07b6fa79e23..fd3d6e13bfb9adb6b29320ae698654c52f15de74 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/PeaksWorkspaceWidget.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/PeaksWorkspaceWidget.cpp
@@ -1,8 +1,27 @@
 #include "MantidQtSliceViewer/PeaksWorkspaceWidget.h"
+#include "MantidQtSliceViewer/PeaksViewer.h"
 #include "MantidQtSliceViewer/QPeaksTableModel.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include <QColorDialog>
 #include <QPlastiqueStyle>
 
+namespace {
+
+class SignalBlocker{
+private:
+    QObject* m_obj;
+
+public:
+    SignalBlocker(QObject* obj) : m_obj(obj) {
+        m_obj->blockSignals(true);
+    }
+    ~SignalBlocker(){
+        m_obj->blockSignals(false);
+    }
+};
+
+}
+
 namespace MantidQt {
 namespace SliceViewer {
 
@@ -13,15 +32,17 @@ Constructor
 @param coordinateSystem : Name of coordinate system used
 @param defaultForegroundColour : Default peak foreground colour
 @param defaultBackgroundColour : Default peak background colour
+@param canAddPeaks : Flag to indicate that peaks can be added. False for no add mode.
 @param parent : parent widget
 */
 PeaksWorkspaceWidget::PeaksWorkspaceWidget(
     Mantid::API::IPeaksWorkspace_const_sptr ws,
     const std::string &coordinateSystem, const QColor &defaultForegroundColour,
-    const QColor &defaultBackgroundColour, QWidget *parent)
+    const QColor &defaultBackgroundColour, const bool canAddPeaks, PeaksViewer *parent)
     : QWidget(parent), m_ws(ws), m_coordinateSystem(coordinateSystem),
       m_foregroundColour(defaultForegroundColour),
-      m_backgroundColour(defaultBackgroundColour) {
+      m_backgroundColour(defaultBackgroundColour),
+      m_parent(parent) {
 
   ui.setupUi(this);
 
@@ -35,6 +56,8 @@ PeaksWorkspaceWidget::PeaksWorkspaceWidget(
   connect(ui.btnRemove, SIGNAL(clicked()), this,
           SLOT(onRemoveWorkspaceClicked()));
   connect(ui.btnHide, SIGNAL(clicked()), this, SLOT(onToggleHideInPlot()));
+  connect(ui.btnAddPeak, SIGNAL(toggled(bool)), this, SLOT(onAddPeaksToggled(bool)));
+  connect(ui.btnRemovePeak, SIGNAL(toggled(bool)), this, SLOT(onClearPeaksToggled(bool)));
 
   // Override the styles for the colour buttons, because with some inherited
   // styles, the button background colour will be hidden.
@@ -47,6 +70,9 @@ PeaksWorkspaceWidget::PeaksWorkspaceWidget(
   ui.ckShowBackground->setVisible(integratedPeaks);
   ui.lblShowBackgroundColour->setVisible(integratedPeaks);
 
+  // Don't allow peaks to be added if it has been forbidden
+  ui.btnAddPeak->setEnabled(canAddPeaks);
+
   // Populate controls with data.
   populate();
 
@@ -276,5 +302,35 @@ void PeaksWorkspaceWidget::onCurrentChanged(QModelIndex index, QModelIndex)
     }
 }
 
+/**
+ * @brief PeaksWorkspaceWidget::onClearPeaksToggled
+ * @param on : Enter mode
+ */
+void PeaksWorkspaceWidget::onClearPeaksToggled(bool on)
+{
+    //We should now tell the PeaksViewer about this.
+    m_parent->clearPeaksModeRequest(this, on);
+}
+
+/**
+ * @brief PeaksWorkspaceWidget::onAddPeaksToggled
+ * @param on : Enter mode
+ */
+void PeaksWorkspaceWidget::onAddPeaksToggled(bool on)
+{
+    // We should now tell the PeaksViewer about this. It should have a global mode for AddingPeaks it merely needs to know the destination workspace
+    m_parent->addPeaksModeRequest(this, on);
+}
+
+void PeaksWorkspaceWidget::exitClearPeaksMode() {
+    const SignalBlocker blocker(ui.btnRemovePeak);
+    ui.btnRemovePeak->setChecked(false);
+}
+
+void PeaksWorkspaceWidget::exitAddPeaksMode() {
+    const SignalBlocker blocker(ui.btnAddPeak);
+    ui.btnAddPeak->setChecked(false);
+}
+
 } // namespace
 }
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/ProxyCompositePeaksPresenter.cpp b/Code/Mantid/MantidQt/SliceViewer/src/ProxyCompositePeaksPresenter.cpp
index 75ea63782ff9f686f68a6e3769470047829e0f69..aa1278d6da7d58ac60cfcb05b29baf4e98e30d2a 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/ProxyCompositePeaksPresenter.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/ProxyCompositePeaksPresenter.cpp
@@ -145,7 +145,17 @@ ProxyCompositePeaksPresenter::getZoomedPeakPresenter() const {
 }
 
 int ProxyCompositePeaksPresenter::getZoomedPeakIndex() const {
-  return m_compositePresenter->getZoomedPeakIndex();
+    return m_compositePresenter->getZoomedPeakIndex();
 }
+
+void ProxyCompositePeaksPresenter::editCommand(EditMode editMode, boost::weak_ptr<const Mantid::API::IPeaksWorkspace> target)
+{
+    m_compositePresenter->editCommand(editMode, target);
+}
+
+bool ProxyCompositePeaksPresenter::hasPeakAddModeFor(boost::weak_ptr<const Mantid::API::IPeaksWorkspace> target){
+    return m_compositePresenter->hasPeakAddModeFor(target);
+}
+
 }
 }
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/SliceViewer.cpp b/Code/Mantid/MantidQt/SliceViewer/src/SliceViewer.cpp
index bc6309fb090df9348ebe78b134831d9de022836d..c09476644bb058a90d232f1e1daf29007b779db8 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/SliceViewer.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/SliceViewer.cpp
@@ -8,13 +8,13 @@
 #include <boost/math/special_functions/fpclassify.hpp>
 
 #include "MantidAPI/CoordTransform.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidAPI/IMDIterator.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidGeometry/Crystal/PeakTransformHKL.h"
 #include "MantidGeometry/Crystal/PeakTransformQSample.h"
 #include "MantidGeometry/Crystal/PeakTransformQLab.h"
 #include "MantidAPI/IPeaksWorkspace.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
@@ -37,7 +37,6 @@
 #include "MantidQtSliceViewer/ProxyCompositePeaksPresenter.h"
 #include "MantidQtSliceViewer/PeakOverlayMultiCrossFactory.h"
 #include "MantidQtSliceViewer/PeakOverlayMultiSphereFactory.h"
-#include "MantidQtSliceViewer/FirstExperimentInfoQuery.h"
 #include "MantidQtSliceViewer/PeakBoundingBox.h"
 #include "MantidQtSliceViewer/PeaksViewerOverlayDialog.h"
 #include "MantidQtSliceViewer/PeakOverlayViewFactorySelector.h"
@@ -82,7 +81,7 @@ SliceViewer::SliceViewer(QWidget *parent)
       m_peaksPresenter(boost::make_shared<CompositePeaksPresenter>(this)),
       m_proxyPeaksPresenter(
           boost::make_shared<ProxyCompositePeaksPresenter>(m_peaksPresenter)),
-      m_peaksSliderWidget(NULL) {
+      m_peaksSliderWidget(NULL){
 
   ui.setupUi(this);
 
@@ -230,8 +229,35 @@ void SliceViewer::saveSettings() {
                       static_cast<int>(this->getNormalization()));
   settings.endGroup();
 }
-
 //------------------------------------------------------------------------------
+/** set an icon given the control and a string.
+* @param btn the widget to give the new icon
+* @param iconName the path of the new icon
+* @param mode the mode of the icon
+* @param state on or off state of the icon
+*/
+void SliceViewer::setIconFromString(QAbstractButton* btn, const std::string& iconName,
+    QIcon::Mode mode = QIcon::Mode::Normal, QIcon::State state = QIcon::State::Off)
+{
+  QIcon icon;
+  icon.addFile(QString::fromStdString(iconName), QSize(), mode,state);
+  btn->setIcon(icon);
+}
+/** set an icon given the control and a string.
+* @param action the menu action to give the new icon
+* @param iconName the path of the new icon
+* @param mode the mode of the icon
+* @param state on or off state of the icon
+*/
+void SliceViewer::setIconFromString(QAction* action,const std::string& iconName,
+    QIcon::Mode mode = QIcon::Mode::Normal, QIcon::State state= QIcon::State::Off)
+{
+  QIcon icon;
+  icon.addFile(QString::fromStdString(iconName), QSize(), mode,state);
+  action->setIcon(icon);
+}
+
+  //------------------------------------------------------------------------------
 /** Create the menus */
 void SliceViewer::initMenus() {
   // ---------------------- Build the menu bar -------------------------
@@ -275,12 +301,7 @@ void SliceViewer::initMenus() {
   m_menuView = new QMenu("&View", this);
   action = new QAction(QPixmap(), "&Reset Zoom", this);
   connect(action, SIGNAL(triggered()), this, SLOT(resetZoom()));
-  {
-    QIcon icon;
-    icon.addFile(QString::fromStdString(g_iconViewFull), QSize(), QIcon::Normal,
-                 QIcon::Off);
-    action->setIcon(icon);
-  }
+  setIconFromString(action,g_iconViewFull);
   m_menuView->addAction(action);
 
   action = new QAction(QPixmap(), "&Set X/Y View Size", this);
@@ -382,20 +403,14 @@ void SliceViewer::initMenus() {
   connect(action, SIGNAL(triggered()), this, SLOT(setColorScaleAutoSlice()));
   action->setIconVisibleInMenu(true);
   {
-    QIcon icon;
-    icon.addFile(QString::fromStdString(g_iconZoomPlus), QSize(), QIcon::Normal,
-                 QIcon::Off);
-    action->setIcon(icon);
+    setIconFromString(action,g_iconZoomPlus);
   }
   m_menuColorOptions->addAction(action);
 
   action = new QAction(QPixmap(), "&Full range", this);
   connect(action, SIGNAL(triggered()), this, SLOT(setColorScaleAutoFull()));
   {
-    QIcon icon;
-    icon.addFile(QString::fromStdString(g_iconZoomMinus), QSize(),
-                 QIcon::Normal, QIcon::Off);
-    action->setIcon(icon);
+    setIconFromString(action,g_iconZoomMinus);
   }
   m_menuColorOptions->addAction(action);
 
@@ -921,11 +936,8 @@ void SliceViewer::refreshRebin() { this->rebinParamsChanged(); }
 void SliceViewer::LineMode_toggled(bool checked) {
   m_lineOverlay->setShown(checked);
 
-  QIcon icon;
   if (checked) {
-    icon.addFile(QString::fromStdString(g_iconCutOn), QSize(), QIcon::Normal,
-                 QIcon::On);
-    ui.btnDoLine->setIcon(icon);
+    setIconFromString(ui.btnDoLine,g_iconCutOn,QIcon::Mode::Normal,QIcon::State::Off);
     QString text;
     if (m_lineOverlay->getCreationMode())
       text = "Click and drag to draw an cut line.\n"
@@ -937,9 +949,7 @@ void SliceViewer::LineMode_toggled(bool checked) {
   if (!checked) {
     // clear the old line
     clearLine();
-    icon.addFile(QString::fromStdString(g_iconCut), QSize(), QIcon::Normal,
-                 QIcon::Off);
-    ui.btnDoLine->setIcon(icon);
+    setIconFromString(ui.btnDoLine,g_iconCut,QIcon::Mode::Normal,QIcon::State::On);
   }
   emit showLineViewer(checked);
 }
@@ -965,8 +975,6 @@ void SliceViewer::clearLine() {
 //------------------------------------------------------------------------------
 /// Slot called when the snap to grid is checked
 void SliceViewer::SnapToGrid_toggled(bool checked) {
-
-  QIcon icon;
   if (checked) {
     SnapToGridDialog *dlg = new SnapToGridDialog(this);
     dlg->setSnap(m_lineOverlay->getSnapX(), m_lineOverlay->getSnapY());
@@ -974,21 +982,17 @@ void SliceViewer::SnapToGrid_toggled(bool checked) {
       m_lineOverlay->setSnapEnabled(true);
       m_lineOverlay->setSnapX(dlg->getSnapX());
       m_lineOverlay->setSnapY(dlg->getSnapY());
-      icon.addFile(QString::fromStdString(g_iconGridOn), QSize(), QIcon::Normal,
-                   QIcon::On);
+      setIconFromString(ui.btnSnapToGrid,g_iconGridOn, QIcon::Normal, QIcon::On);
     } else {
       // Uncheck - the user clicked cancel
       ui.btnSnapToGrid->setChecked(false);
       m_lineOverlay->setSnapEnabled(false);
-      icon.addFile(QString::fromStdString(g_iconGrid), QSize(), QIcon::Normal,
-                   QIcon::Off);
+      setIconFromString(ui.btnSnapToGrid,g_iconGrid, QIcon::Normal, QIcon::Off);
     }
   } else {
     m_lineOverlay->setSnapEnabled(false);
-    icon.addFile(QString::fromStdString(g_iconGrid), QSize(), QIcon::Normal,
-                 QIcon::Off);
+    setIconFromString(ui.btnSnapToGrid,g_iconGrid, QIcon::Normal, QIcon::Off);
   }
-  ui.btnSnapToGrid->setIcon(icon);
 }
 
 //------------------------------------------------------------------------------
@@ -1002,11 +1006,8 @@ void SliceViewer::RebinMode_toggled(bool checked) {
   m_actionRefreshRebin->setEnabled(checked);
   m_rebinMode = checked;
 
-  QIcon icon;
   if (!m_rebinMode) {
-    icon.addFile(QString::fromStdString(g_iconRebin), QSize(), QIcon::Normal,
-                 QIcon::Off);
-    ui.btnRebinMode->setIcon(icon);
+    setIconFromString(ui.btnRebinMode,g_iconRebin, QIcon::Normal, QIcon::Off);
     // uncheck auto-rebin
     ui.btnAutoRebin->setChecked(false);
     // Remove the overlay WS
@@ -1014,9 +1015,7 @@ void SliceViewer::RebinMode_toggled(bool checked) {
     this->m_data->setOverlayWorkspace(m_overlayWS);
     this->updateDisplay();
   } else {
-    icon.addFile(QString::fromStdString(g_iconRebinOn), QSize(), QIcon::Normal,
-                 QIcon::On);
-    ui.btnRebinMode->setIcon(icon);
+    setIconFromString(ui.btnRebinMode,g_iconRebinOn, QIcon::Normal, QIcon::On);
     // Start the rebin
     this->rebinParamsChanged();
   }
@@ -1987,6 +1986,11 @@ void SliceViewer::rebinParamsChanged() {
   alg->setProperty("InputWorkspace", m_ws);
   alg->setProperty("AxisAligned", false);
 
+  // If we are rebinning from an existing MDHistoWorkspace, and that workspace has been created with basis vectors normalized, then we reapply that setting here.
+  if(boost::dynamic_pointer_cast<IMDHistoWorkspace>(m_ws)){
+      alg->setProperty("NormalizeBasisVectors", m_ws->allBasisNormalized());
+  }
+
   std::vector<double> OutputExtents;
   std::vector<int> OutputBins;
 
@@ -2034,7 +2038,6 @@ void SliceViewer::rebinParamsChanged() {
   alg->setProperty("OutputExtents", OutputExtents);
   alg->setProperty("OutputBins", OutputBins);
   alg->setPropertyValue("Translation", "");
-  alg->setProperty("NormalizeBasisVectors", true);
   alg->setProperty("ForceOrthogonal", false);
   alg->setProperty("Parallel", true);
   alg->setPropertyValue("OutputWorkspace", m_overlayWSName);
@@ -2139,10 +2142,7 @@ void SliceViewer::disablePeakOverlays() {
   emit showPeaksViewer(false);
   m_menuPeaks->setEnabled(false);
 
-  QIcon icon;
-  icon.addFile(QString::fromStdString(g_iconPeakList), QSize(), QIcon::Normal,
-               QIcon::Off);
-  ui.btnPeakOverlay->setIcon(icon);
+  setIconFromString(ui.btnPeakOverlay,g_iconPeakList, QIcon::Normal, QIcon::Off);
   ui.btnPeakOverlay->setChecked(false);
 }
 
@@ -2195,12 +2195,14 @@ SliceViewer::setPeaksWorkspaces(const QStringList &list) {
     // Candidate for overplotting as spherical peaks
     viewFactorySelector->registerCandidate(
         boost::make_shared<PeakOverlayMultiSphereFactory>(
-            peaksWS, m_plot, m_plot->canvas(), numberOfChildPresenters));
+            peaksWS, m_plot, m_plot->canvas(), m_spect->xAxis(),
+                    m_spect->yAxis(), numberOfChildPresenters));
     // Candiate for plotting as a markers of peak positions
     viewFactorySelector->registerCandidate(
         boost::make_shared<PeakOverlayMultiCrossFactory>(
             m_ws, transformFactory->createDefaultTransform(), peaksWS, m_plot,
-            m_plot->canvas(), numberOfChildPresenters));
+            m_plot->canvas(), m_spect->xAxis(),
+                    m_spect->yAxis(), numberOfChildPresenters));
     try {
       m_peaksPresenter->addPeaksPresenter(
           boost::make_shared<ConcretePeaksPresenter>(
@@ -2216,11 +2218,8 @@ SliceViewer::setPeaksWorkspaces(const QStringList &list) {
   updatePeakOverlaySliderWidget();
   emit showPeaksViewer(true);
   m_menuPeaks->setEnabled(true);
-
-  QIcon icon;
-  icon.addFile(QString::fromStdString(g_iconPeakList), QSize(), QIcon::Normal,
-               QIcon::Off);
-  ui.btnPeakOverlay->setIcon(icon);
+  
+  setIconFromString(ui.btnPeakOverlay,g_iconPeakList, QIcon::Normal, QIcon::Off);
   ui.btnPeakOverlay->setChecked(true);
   return m_proxyPeaksPresenter.get();
 }
@@ -2246,17 +2245,11 @@ void SliceViewer::peakOverlay_clicked() {
   if (ret == MantidQt::MantidWidgets::SelectWorkspacesDialog::CustomButton) {
     disablePeakOverlays();
   }
-  QIcon icon;
   if (m_peaksPresenter->size() > 0) {
-    icon.addFile(QString::fromStdString(g_iconPeakListOn), QSize(),
-                 QIcon::Normal, QIcon::On);
-    ui.btnPeakOverlay->setIcon(icon);
+    setIconFromString(ui.btnPeakOverlay,g_iconPeakListOn, QIcon::Normal, QIcon::On);
     ui.btnPeakOverlay->setChecked(true);
   } else {
-
-    icon.addFile(QString::fromStdString(g_iconPeakList), QSize(), QIcon::Normal,
-                 QIcon::Off);
-    ui.btnPeakOverlay->setIcon(icon);
+    setIconFromString(ui.btnPeakOverlay,g_iconPeakList, QIcon::Normal, QIcon::Off);
     ui.btnPeakOverlay->setChecked(false);
   }
 }
@@ -2409,5 +2402,6 @@ void SliceViewer::dropEvent(QDropEvent *e) {
   }
 }
 
+
 } // namespace
 }
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/SliceViewerWindow.cpp b/Code/Mantid/MantidQt/SliceViewer/src/SliceViewerWindow.cpp
index a67032e8314063c4804156ae0645af117c896cc0..af052200f23c8d6d4e80f130c79c33cc771c48f3 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/SliceViewerWindow.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/SliceViewerWindow.cpp
@@ -1,5 +1,6 @@
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/IMDWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include "MantidKernel/DataService.h"
 #include "MantidKernel/SingletonHolder.h"
 #include "MantidKernel/VMD.h"
diff --git a/Code/Mantid/MantidQt/SliceViewer/test/CompositePeaksPresenterTest.h b/Code/Mantid/MantidQt/SliceViewer/test/CompositePeaksPresenterTest.h
index 6d6e2bbc190866cecd0b1313540ffea148d6f6e0..96eba7117da3a1427848e5a6815ac9cfca20bb99 100644
--- a/Code/Mantid/MantidQt/SliceViewer/test/CompositePeaksPresenterTest.h
+++ b/Code/Mantid/MantidQt/SliceViewer/test/CompositePeaksPresenterTest.h
@@ -941,6 +941,45 @@ public:
 
   }
 
+  void test_edit_command()
+  {
+
+    // Prepare subject objects.
+    Mantid::API::IPeaksWorkspace_sptr peaksWSA = boost::make_shared<Mantid::DataObjects::PeaksWorkspace>();
+    SetPeaksWorkspaces setA;
+    setA.insert(peaksWSA);
+    auto* pSubjectA = new NiceMock<MockPeaksPresenter>;
+    PeaksPresenter_sptr subjectA(pSubjectA);
+    EXPECT_CALL(*pSubjectA, presentedWorkspaces()).WillRepeatedly(Return(setA));
+    EXPECT_CALL(*pSubjectA, contentsDifferent(_)).WillOnce(Return(true));
+
+    Mantid::API::IPeaksWorkspace_sptr peaksWSB = boost::make_shared<Mantid::DataObjects::PeaksWorkspace>();
+    SetPeaksWorkspaces setB;
+    setA.insert(peaksWSB);
+    auto* pSubjectB = new NiceMock<MockPeaksPresenter>;
+    PeaksPresenter_sptr subjectB(pSubjectB);
+    EXPECT_CALL(*pSubjectB, presentedWorkspaces()).WillRepeatedly(Return(setB));
+    EXPECT_CALL(*pSubjectB, contentsDifferent(_)).WillOnce(Return(true));
+
+    // Set a background colour on the composite.
+    CompositePeaksPresenter composite(&_fakeZoomableView);
+    composite.addPeaksPresenter(subjectA);
+    composite.addPeaksPresenter(subjectB);
+
+    /* Now we are going to say that we only want to add peaks to the first peaks workspace of the first presenter.
+       so lets prep the presenters for this
+     */
+    EXPECT_CALL(*pSubjectA, peakEditMode(AddPeaks)).Times(AtLeast(1));
+    EXPECT_CALL(*pSubjectB, peakEditMode(MantidQt::SliceViewer::None)).Times(AtLeast(1));
+    // Execute it.
+    composite.editCommand(AddPeaks, peaksWSA);
+
+    // Check that we used the subjects correctly
+    TS_ASSERT(Mock::VerifyAndClearExpectations(pSubjectA));
+    TS_ASSERT(Mock::VerifyAndClearExpectations(pSubjectB));
+  }
+
+
 
 
 };
diff --git a/Code/Mantid/MantidQt/SliceViewer/test/ConcretePeaksPresenterTest.h b/Code/Mantid/MantidQt/SliceViewer/test/ConcretePeaksPresenterTest.h
index 3bdfc87bc841f674e536336195075705e61e7c13..f849197c6cef1c8a666867b5d66d05d0879ec99d 100644
--- a/Code/Mantid/MantidQt/SliceViewer/test/ConcretePeaksPresenterTest.h
+++ b/Code/Mantid/MantidQt/SliceViewer/test/ConcretePeaksPresenterTest.h
@@ -7,6 +7,8 @@
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidKernel/SpecialCoordinateSystem.h"
 #include "MantidGeometry/Crystal/PeakTransformFactory.h"
+#include "MantidDataObjects/Peak.h"
+#include "MantidDataObjects/PeakShapeSpherical.h"
 #include "MantidQtSliceViewer/ConcretePeaksPresenter.h"
 #include "MantidQtSliceViewer/PeakOverlayViewFactory.h"
 #include "MantidDataObjects/PeaksWorkspace.h"
@@ -150,16 +152,26 @@ class ConcretePeaksPresenterTest : public CxxTest::TestSuite
   1) All constructor parameters can be overriden using methods with....() on the returned builder object
   2) The default builder has been set up to create a ubiquitious ConcretePeaksPresenter product.
   */
-  ConcretePeaksPresenterBuilder createStandardBuild(const int expectedNumberPeaks=5)
+  ConcretePeaksPresenterBuilder createStandardBuild(const int expectedNumberPeaks=5, const double radius=0.0, const SpecialCoordinateSystem frame=QLab)
   {
+    // Map enum to string.
+    std::string frame_str = "Q (lab frame)";
+    if(frame == Mantid::Kernel::HKL){
+        frame_str = "HKL";
+    } else if(frame == QSample) {
+        frame_str = "Q (sample frame)";
+    }
+
     // Create a mock view object that will be returned by the mock factory.
     auto mockView = boost::shared_ptr<NiceMock<MockPeakOverlayView> >(new NiceMock<MockPeakOverlayView>);
+    EXPECT_CALL(*mockView.get(), getRadius()).WillRepeatedly(Return(radius));
+
     
     // Create a widget factory mock
     auto pMockViewFactory = new MockPeakOverlayFactory;
     
     PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
-    EXPECT_CALL(*pMockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
 
@@ -172,7 +184,8 @@ class ConcretePeaksPresenterTest : public CxxTest::TestSuite
     auto pMockTransform = new NiceMock<MockPeakTransform>;
     PeakTransform_sptr mockTransform(pMockTransform);
     EXPECT_CALL(*pMockTransform, transformPeak(_)).WillRepeatedly(Return(V3D()));
-    EXPECT_CALL(*pMockTransform, getFriendlyName()).WillRepeatedly(Return("Q (lab frame)"));
+    EXPECT_CALL(*pMockTransform, getFriendlyName()).WillRepeatedly(Return(frame_str));
+    EXPECT_CALL(*pMockTransform, getCoordinateSystem()).WillRepeatedly(Return(frame));
 
     // Create a mock transform factory.
     auto pMockTransformFactory = new NiceMock<MockPeakTransformFactory>;
@@ -214,13 +227,14 @@ public:
     // Mock View Factory for integrated peaks. We expect that this will never be used.
     auto pMockViewFactory = new MockPeakOverlayFactory;
     PeakOverlayViewFactory_sptr mockViewFactory(pMockViewFactory);
-    EXPECT_CALL(*pMockViewFactory, createView(_)).Times(1).WillRepeatedly(Return(mockView)); // Create a single widget/view for all peaks
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).Times(1).WillRepeatedly(Return(mockView)); // Create a single widget/view for all peaks
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillOnce(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillOnce(Return("K"));
 
     // Create a mock transform object.
     auto pMockTransform = new NiceMock<MockPeakTransform>;
     PeakTransform_sptr mockTransform(pMockTransform);
+    EXPECT_CALL(*pMockTransform, getCoordinateSystem()).WillRepeatedly(Return(Mantid::Kernel::QLab));
 
     // Create a mock transform factory.
     auto pMockTransformFactory = new NiceMock<MockPeakTransformFactory>;
@@ -255,7 +269,7 @@ public:
     EXPECT_CALL(*pMockView, updateView()).Times(1); // Single view, for this presenter, will only update once.
     auto mockView = boost::shared_ptr<NiceMock<MockPeakOverlayView> >(pMockView);
     
-    EXPECT_CALL(*pMockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillOnce(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillOnce(Return("K"));
 
@@ -268,6 +282,7 @@ public:
     auto pMockTransform = new NiceMock<MockPeakTransform>;
     PeakTransform_sptr mockTransform(pMockTransform);
     EXPECT_CALL(*pMockTransform, transformPeak(_)).WillRepeatedly(Return(V3D()));
+    EXPECT_CALL(*pMockTransform, getCoordinateSystem()).WillRepeatedly(Return(Mantid::Kernel::QLab));
 
     // Create a mock transform factory.
     auto pMockTransformFactory = new NiceMock<MockPeakTransformFactory>;
@@ -297,7 +312,7 @@ public:
     EXPECT_CALL(*pMockView, setSlicePoint(slicePoint, _)).Times(1); // Only one widget for this presenter
     auto mockView = boost::shared_ptr<NiceMock<MockPeakOverlayView> >(pMockView);
 
-    EXPECT_CALL(*mockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*mockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*mockViewFactory, getPlotXLabel()).WillOnce(Return("H"));
     EXPECT_CALL(*mockViewFactory, getPlotYLabel()).WillOnce(Return("K"));
 
@@ -309,6 +324,7 @@ public:
     // Create a mock transform object.
     auto pMockTransform = new NiceMock<MockPeakTransform>;
     PeakTransform_sptr mockTransform(pMockTransform);
+    EXPECT_CALL(*pMockTransform, getCoordinateSystem()).WillRepeatedly(Return(Mantid::Kernel::HKL));
     EXPECT_CALL(*pMockTransform, getFriendlyName()).WillOnce(Return("HKL"));
     EXPECT_CALL(*pMockTransform, transformPeak(_)).WillRepeatedly(Return(V3D()));
 
@@ -341,7 +357,7 @@ public:
     EXPECT_CALL(*pMockView, hideView()).Times(expectedNumberPeaks);
     auto mockView = boost::shared_ptr<NiceMock<MockPeakOverlayView> >(pMockView);
 
-    EXPECT_CALL(*mockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*mockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*mockViewFactory, getPlotXLabel()).WillOnce(Return("H"));
     EXPECT_CALL(*mockViewFactory, getPlotYLabel()).WillOnce(Return("K"));
 
@@ -358,6 +374,7 @@ public:
     // Create a mock transform factory.
     auto pMockTransformFactory = new NiceMock<MockPeakTransformFactory>;
     PeakTransformFactory_sptr peakTransformFactory(pMockTransformFactory);
+    EXPECT_CALL(*pMockTransform, getCoordinateSystem()).WillRepeatedly(Return(Mantid::Kernel::QLab));
     EXPECT_CALL(*pMockTransformFactory, createDefaultTransform()).WillOnce(Return(mockTransform));
     EXPECT_CALL(*pMockTransformFactory, createTransform(_,_)).WillOnce(Return(mockTransform));
 
@@ -381,7 +398,7 @@ public:
     EXPECT_CALL(*pMockView, hideView()).Times(expectedNumberPeaks); // This will be called automatically because the presenter won't be able to map Qx (below).
     auto mockView = boost::shared_ptr<NiceMock<MockPeakOverlayView> >(pMockView);
 
-    EXPECT_CALL(*mockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*mockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*mockViewFactory, getPlotXLabel()).WillOnce(Return("Qx")); // Not either H, K or L
     EXPECT_CALL(*mockViewFactory, getPlotYLabel()).WillOnce(Return("K"));
     // Create an input MODEL Peaks workspace (INTEGRATED)
@@ -392,6 +409,7 @@ public:
      // Create a mock transform object.
     auto pMockTransform = new NiceMock<MockPeakTransform>;
     PeakTransform_sptr mockTransform(pMockTransform);
+    EXPECT_CALL(*pMockTransform, getCoordinateSystem()).WillRepeatedly(Return(Mantid::Kernel::QLab));
     EXPECT_CALL(*pMockTransform, transformPeak(_)).WillRepeatedly(Return(V3D()));
 
     // Create a mock transform factory.
@@ -418,7 +436,7 @@ public:
     // Create a widget factory mock
     auto pMockViewFactory = new MockPeakOverlayFactory;
     PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
-    EXPECT_CALL(*pMockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
 
@@ -444,7 +462,7 @@ public:
     // Create a widget factory mock
     auto pMockViewFactory = new MockPeakOverlayFactory;
     PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
-    EXPECT_CALL(*pMockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
 
@@ -471,7 +489,7 @@ public:
     // Create a widget factory mock
     auto pMockViewFactory = new MockPeakOverlayFactory;
     PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
-    EXPECT_CALL(*pMockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
 
@@ -516,7 +534,7 @@ public:
     // Create a widget factory mock
     auto pMockViewFactory = new MockPeakOverlayFactory;
     PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
-    EXPECT_CALL(*pMockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
 
@@ -529,8 +547,6 @@ public:
 
   void doTestSorting(const bool sortAscending)
   {
-    FrameworkManager::Instance();
-
     const int expectedNumberOfPeaks = 1;
     auto concreteBuilder = createStandardBuild(expectedNumberOfPeaks);
 
@@ -540,9 +556,9 @@ public:
     EXPECT_CALL(*pMockView, setSlicePoint(_,_)).Times(1); // Expect that the slice point will be re-set upon sorting.
 
     // Create a widget factory mock
-    auto pMockViewFactory = new MockPeakOverlayFactory;
+    auto pMockViewFactory = new NiceMock<MockPeakOverlayFactory>;
     PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
-    EXPECT_CALL(*pMockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
 
@@ -606,7 +622,7 @@ public:
     // Create a widget factory mock
     auto pMockViewFactory = new MockPeakOverlayFactory;
     PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
-    EXPECT_CALL(*pMockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
 
@@ -632,7 +648,7 @@ public:
     // Create a widget factory mock
     auto pMockViewFactory = new MockPeakOverlayFactory;
     PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
-    EXPECT_CALL(*pMockViewFactory, createView(_)).WillRepeatedly(Return(mockView));
+    EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
     EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
     EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
 
@@ -657,7 +673,7 @@ public:
       // Create a widget factory mock
       auto pMockViewFactory = new MockPeakOverlayFactory;
       PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
-      EXPECT_CALL(*pMockViewFactory, createView(_)).WillOnce(Return(mockView));
+      EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillOnce(Return(mockView));
       EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
       EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
 
@@ -673,7 +689,7 @@ public:
       // We expect the peaks workspace object to be swapped.
       EXPECT_CALL(*pMockViewFactory, swapPeaksWorkspace(_)).Times(1);
       // We expect that createViews will be called again, because we'll have to create new representations for each peak
-      EXPECT_CALL(*pMockViewFactory, createView(_)).WillOnce(Return(mockView));
+      EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillOnce(Return(mockView));
 
       // We force this concrete presenter to take a new peaks workspace to represent
       concretePresenter->reInitialize(newPeaksWorkspace);
@@ -727,6 +743,105 @@ public:
 
   }
 
+  void test_test_apply_edit_mode_to_views(){
+      const int nPeaks = 1;
+
+      // Create a mock view object/product that will be returned by the mock factory.
+      auto pMockView = new NiceMock<MockPeakOverlayView>;
+      auto mockView = boost::shared_ptr<NiceMock<MockPeakOverlayView> >(pMockView);
+
+      // Create a widget factory mock
+      auto pMockViewFactory = new MockPeakOverlayFactory;
+      PeakOverlayViewFactory_sptr mockViewFactory = PeakOverlayViewFactory_sptr(pMockViewFactory);
+      EXPECT_CALL(*pMockViewFactory, createView(_,_)).WillRepeatedly(Return(mockView));
+      EXPECT_CALL(*pMockViewFactory, getPlotXLabel()).WillRepeatedly(Return("H"));
+      EXPECT_CALL(*pMockViewFactory, getPlotYLabel()).WillRepeatedly(Return("K"));
+
+      auto presenterBuilder = createStandardBuild(nPeaks); // Creates a default Concrete presenter product.
+      presenterBuilder.withViewFactory(mockViewFactory); // Change the view factories to deliver the expected mock object
+      auto concretePresenter = presenterBuilder.create();
+
+      // Deletion mode tests
+      EXPECT_CALL(*pMockView, peakDeletionMode()).Times(1);
+      concretePresenter->peakEditMode(DeletePeaks);
+
+      // Addition mode tests
+      EXPECT_CALL(*pMockView, peakAdditionMode()).Times(1);
+      concretePresenter->peakEditMode(AddPeaks);
+
+      // Neutral mode tests
+      EXPECT_CALL(*pMockView, peakDisplayMode()).Times(1);
+      concretePresenter->peakEditMode(MantidQt::SliceViewer::None);
+
+      TSM_ASSERT("MockView not used as expected.", Mock::VerifyAndClearExpectations(pMockView));
+  }
+
+
+
+  //void test_deletePeaksIn(){TSM_ASSERT("Missing test", false);}
+
+  void makeSphericallyIntegrated(IPeak& peak, const double radius)
+  {
+      using namespace Mantid::DataObjects;
+      Peak* pPeak = dynamic_cast<Peak*>(&peak);
+      pPeak->setPeakShape(boost::make_shared<PeakShapeSpherical>(radius, Mantid::Kernel::HKL));
+  }
+
+  void test_delete_in() {
+      using namespace Mantid::DataObjects;
+
+      const int nPeaks = 3;
+      const double radius = 0.1;
+      auto concreteBuilder = createStandardBuild(nPeaks, radius, Mantid::Kernel::HKL);
+
+      // Custom peaks workspace
+      IPeaksWorkspace_sptr peaksWS = createPeaksWorkspace(nPeaks, radius);
+      // Customize a peak
+      IPeak& peakToDelete1 = peaksWS->getPeak(0);
+      peakToDelete1.setHKL(0,0,0);
+      makeSphericallyIntegrated(peakToDelete1, radius);
+      // Customize another peak
+      IPeak& peakToDelete2 = peaksWS->getPeak(0);
+      peakToDelete2.setHKL(1,0,0);
+      makeSphericallyIntegrated(peakToDelete2, radius);
+      // Customize another peak
+      peaksWS->getPeak(2).setHKL(10, 10, 10); // Not integrated, will be well out of range anyway.
+
+      /******************
+
+                              x (10,10,10)
+
+      -----------------------   cursor region = 0 to 1 and -0.5 to 0.5
+      |  x(0,0,0) x(1,0,0)  |
+      -----------------------
+
+      ******************/
+
+
+      concreteBuilder.withPeaksWorkspace(peaksWS); // Customise builder
+
+      ConcretePeaksPresenter_sptr presenter = concreteBuilder.create();
+
+      /*
+       * Create a Cursor region.
+      */
+      Top top(0.5);
+      Bottom bottom(-0.5);
+      Left left(0);
+      Right right(1);
+      SlicePoint slicePoint(0.0);
+      PeakBoundingBox cursorRegion(left, right, top, bottom, slicePoint); // psudo viewing frustrum.
+
+      TSM_ASSERT_EQUALS("No peaks should have been removed yet", 3, peaksWS->getNumberPeaks());
+      TSM_ASSERT("Point sits on peak radius. We should delete peak.", presenter->deletePeaksIn(cursorRegion));
+      TSM_ASSERT_EQUALS("One peaks should remain", 1, peaksWS->getNumberPeaks());
+  }
+
+  void test_haspeakaddmode(){
+      auto builder = createStandardBuild(5/*N Peaks*/, 1.0/*radius*/, QLab /*CHOSEN FRAME*/);
+      ConcretePeaksPresenter_sptr concretePeaksPresenter = builder.create();
+      TSM_ASSERT("No peak add mode. As is not in the HKL frame", !concretePeaksPresenter->hasPeakAddMode());
+  }
 
 };
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/test/MockObjects.h b/Code/Mantid/MantidQt/SliceViewer/test/MockObjects.h
index 8161be0cdb5b5ab40eac146cbf578d0cce253235..1a5a50c4feb03077cea2f2b47d54d659d352b8c6 100644
--- a/Code/Mantid/MantidQt/SliceViewer/test/MockObjects.h
+++ b/Code/Mantid/MantidQt/SliceViewer/test/MockObjects.h
@@ -66,9 +66,14 @@ namespace
     MOCK_METHOD1(reInitialize, void(boost::shared_ptr<Mantid::API::IPeaksWorkspace> peaksWS));
     MOCK_CONST_METHOD1(contentsDifferent,
           bool(const PeaksPresenter*  other));
+    MOCK_METHOD1(deletePeaksIn, bool(PeakBoundingBox));
+    MOCK_METHOD1(peakEditMode, void(EditMode));
+    MOCK_METHOD2(addPeakAt, bool(double, double));
+    MOCK_CONST_METHOD0(hasPeakAddMode, bool());
     virtual ~MockPeaksPresenter(){}
   };
 
+
   /*------------------------------------------------------------
   Mock Peaks Presenter, with additional hooks for verifying destruction.
   ------------------------------------------------------------*/
@@ -134,7 +139,11 @@ class MockPeakTransformFactory : public Geometry::PeakTransformFactory
     MOCK_CONST_METHOD0(isBackgroundShown, bool());
     MOCK_CONST_METHOD0(getForegroundColour, QColor());
     MOCK_CONST_METHOD0(getBackgroundColour, QColor());
-    ~MockPeakOverlayView(){}
+    MOCK_METHOD0(peakDeletionMode, void());
+    MOCK_METHOD0(peakAdditionMode, void());
+    MOCK_METHOD0(peakDisplayMode, void());
+    MOCK_METHOD1(takeSettingsFrom, void(PeakOverlayView const * const));
+    virtual ~MockPeakOverlayView(){}
   };
 
   /*------------------------------------------------------------
@@ -143,7 +152,7 @@ class MockPeakTransformFactory : public Geometry::PeakTransformFactory
   class MockPeakOverlayFactory : public PeakOverlayViewFactory
   {
   public:
-    MOCK_CONST_METHOD1(createView, boost::shared_ptr<PeakOverlayView>(PeakTransform_const_sptr));
+    MOCK_CONST_METHOD2(createView, boost::shared_ptr<PeakOverlayView>(PeaksPresenter*, PeakTransform_const_sptr));
     MOCK_CONST_METHOD0(getPlotXLabel, std::string());
     MOCK_CONST_METHOD0(getPlotYLabel, std::string());
     MOCK_METHOD0(updateView, void());
diff --git a/Code/Mantid/MantidQt/SliceViewer/test/NullPeaksPresenterTest.h b/Code/Mantid/MantidQt/SliceViewer/test/NullPeaksPresenterTest.h
index cbb3b8a5cbc2d3ed1ea07aba27efe0a001e9a180..0e7898558c5c7ffeccc4fb8798b90d4b6675a082 100644
--- a/Code/Mantid/MantidQt/SliceViewer/test/NullPeaksPresenterTest.h
+++ b/Code/Mantid/MantidQt/SliceViewer/test/NullPeaksPresenterTest.h
@@ -121,6 +121,17 @@ public:
       TS_ASSERT(presenter.contentsDifferent(&other));
   }
 
+  void test_peakEditMode(){
+      NullPeaksPresenter presenter;
+      TS_ASSERT_THROWS_NOTHING(presenter.peakEditMode(AddPeaks););
+  }
+
+  void test_deletePeaksIn(){
+      NullPeaksPresenter presenter;
+      PeakBoundingBox fake;
+      TS_ASSERT_THROWS_NOTHING(presenter.deletePeaksIn(fake));
+  }
+
 };
 
 #endif
diff --git a/Code/Mantid/MantidQt/SliceViewer/test/QwtTypesPythonInterfaceTest.py b/Code/Mantid/MantidQt/SliceViewer/test/QwtTypesPythonInterfaceTest.py
index 5760bf310ac737a6e11a8345e8be20f6dfb8dd87..1d890f5b03dad4d2517c56092d5292e92ec89f57 100644
--- a/Code/Mantid/MantidQt/SliceViewer/test/QwtTypesPythonInterfaceTest.py
+++ b/Code/Mantid/MantidQt/SliceViewer/test/QwtTypesPythonInterfaceTest.py
@@ -16,3 +16,6 @@ class QwtTypesPythonInterfaceTest(unittest.TestCase):
     def test_QwtDoubleInterval(self):
         # TODO: How can I create the type?
         pass
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Code/Mantid/MantidQt/SliceViewer/test/SliceViewerPythonInterfaceTest.py b/Code/Mantid/MantidQt/SliceViewer/test/SliceViewerPythonInterfaceTest.py
index c322be39367a7442ed54187708aca28bf8d13ae5..15a86c7f46f0d826638ecd818b797336d4b3123b 100644
--- a/Code/Mantid/MantidQt/SliceViewer/test/SliceViewerPythonInterfaceTest.py
+++ b/Code/Mantid/MantidQt/SliceViewer/test/SliceViewerPythonInterfaceTest.py
@@ -25,10 +25,10 @@ class SliceViewerPythonInterfaceTest(unittest.TestCase):
         # Create a test data set
         CreateMDWorkspace(Dimensions='3',Extents='0,10,0,10,0,10',Names='x,y,z',
             Units='m,m,m',SplitInto='5',SplitThreshold=100, MaxRecursionDepth='20',OutputWorkspace='mdw')
-        FakeMDEventData("mdw",  UniformParams="1e4")
-        FakeMDEventData("mdw",  PeakParams="1e3, 1, 2, 3, 1.0")
+        FakeMDEventData(InputWorkspace="mdw",  UniformParams="1e4")
+        FakeMDEventData(InputWorkspace="mdw",  PeakParams="1e3, 1, 2, 3, 1.0")
         BinMD(InputWorkspace="mdw", OutputWorkspace="uniform",  AxisAligned=1, AlignedDim0="x,0,10,30",  AlignedDim1="y,0,10,30",  AlignedDim2="z,0,10,30", IterateEvents="1", Parallel="0")
-        CreateWorkspace('workspace2d', '1,2,3', '2,3,4')
+        CreateWorkspace('1,2,3', '2,3,4', OutputWorkspace='workspace2d')
         CreateMDWorkspace(Dimensions='3',Extents='0,10,0,10,0,10',Names='x,y,z', Units='m,m,m',SplitInto='5',SplitThreshold=100, MaxRecursionDepth='20',OutputWorkspace='empty')
         # Get the factory to create the SliceViewerWindow in C++
         self.svw = mantidqtpython.MantidQt.Factory.WidgetFactory.Instance().createSliceViewerWindow("uniform", "")
@@ -294,14 +294,14 @@ class SliceViewerPythonInterfaceTest(unittest.TestCase):
         sv = self.sv
         sv.setNormalization(1) # Make sure volume normalization is set
         sv.setColorScaleAutoFull()
-        self.assertAlmostEqual(sv.getColorScaleMin(), 27.0, 3)
+        self.assertAlmostEqual(sv.getColorScaleMin(), 0.0, 3)
         self.assertAlmostEqual(sv.getColorScaleMax(), 540.0, 3)
 
     def test_setColorScaleAutoSlice(self):
         sv = self.sv
         sv.setNormalization(1) # Make sure volume normalization is set
         sv.setColorScaleAutoSlice()
-        self.assertAlmostEqual(sv.getColorScaleMin(), 27.0, 3)
+        self.assertAlmostEqual(sv.getColorScaleMin(), 0.0, 3)
         self.assertAlmostEqual(sv.getColorScaleMax(), 81.0, 3)
 
     def test_setNormalization(self):
@@ -450,6 +450,5 @@ class SliceViewerPythonInterfaceTest(unittest.TestCase):
         self.assertEqual(ws.getNPoints(), 50*200*1)
 
 
-
-
-
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/MatrixWSDataSource.h b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/MatrixWSDataSource.h
index e042d6058e92ceb5e1c8441b1070c9332f3cb24e..00a3cfd3828e5c25d31f2bb4c9556da02271fc0d 100644
--- a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/MatrixWSDataSource.h
+++ b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/MatrixWSDataSource.h
@@ -7,7 +7,7 @@
 #include "MantidQtSpectrumViewer/SpectrumDataSource.h"
 #include "MantidQtSpectrumViewer/DllOptionSV.h"
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 /**
     @class MatrixWSDataSource
diff --git a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/MatrixWSSpectrumView.h b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/MatrixWSSpectrumView.h
index eb428b3c9d81bbfcfc67aa85d4401d9ccc52cd08..abbcff92cae09c1b6b4309986c9f69ab4c3b24a0 100644
--- a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/MatrixWSSpectrumView.h
+++ b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/MatrixWSSpectrumView.h
@@ -2,7 +2,7 @@
 #define MATRIX_WS_SPECTRUM_VIEW_H
 
 #include "MantidQtSpectrumViewer/DllOptionSV.h"
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 
 #include "MantidQtSpectrumViewer/SpectrumView.h"
 
diff --git a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SpectrumDataSource.h b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SpectrumDataSource.h
index c5899cd1de514f3d93d342b48eb6fa0590666446..12fadc0f2019516f6876a2980568c5760225cbc9 100644
--- a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SpectrumDataSource.h
+++ b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SpectrumDataSource.h
@@ -5,7 +5,7 @@
 #include <cstddef>
 #include <vector>
 #include <string>
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidQtSpectrumViewer/DataArray.h"
 #include "MantidQtSpectrumViewer/DllOptionSV.h"
 
diff --git a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SpectrumView.h b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SpectrumView.h
index bc44ac6eeec02db165ed4f4f7dd25782c49d5d44..d2071a9de14a53c2c64e7666a0beef1c6f3a2801 100644
--- a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SpectrumView.h
+++ b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SpectrumView.h
@@ -5,7 +5,7 @@
 #include <QMdiSubWindow>
 #include <QtGui>
 
-#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidQtAPI/WorkspaceObserver.h"
 #include "MantidQtSpectrumViewer/GraphDisplay.h"
 #include "MantidQtSpectrumViewer/SpectrumDataSource.h"
diff --git a/Code/Mantid/MantidQt/SpectrumViewer/src/MatrixWSDataSource.cpp b/Code/Mantid/MantidQt/SpectrumViewer/src/MatrixWSDataSource.cpp
index 812f0be942dc170bbb514bdd5f7709442548c455..463b00af284a82c20d1b3da46b7ffdd2351d68e4 100644
--- a/Code/Mantid/MantidQt/SpectrumViewer/src/MatrixWSDataSource.cpp
+++ b/Code/Mantid/MantidQt/SpectrumViewer/src/MatrixWSDataSource.cpp
@@ -12,6 +12,7 @@
 #include "MantidQtSpectrumViewer/MatrixWSDataSource.h"
 #include "MantidQtSpectrumViewer/EModeHandler.h"
 #include "MantidQtSpectrumViewer/SVUtils.h"
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/ISpectrum.h"
 #include "MantidGeometry/Instrument/Detector.h"
 #include "MantidGeometry/Instrument.h"
diff --git a/Code/Mantid/MantidQt/SpectrumViewer/src/MatrixWSSpectrumView.cpp b/Code/Mantid/MantidQt/SpectrumViewer/src/MatrixWSSpectrumView.cpp
index f98607a191658ffab63eb0a71f0f2682d0139357..b8210a7da59a794d6d535eb0692a1019619c0e9f 100644
--- a/Code/Mantid/MantidQt/SpectrumViewer/src/MatrixWSSpectrumView.cpp
+++ b/Code/Mantid/MantidQt/SpectrumViewer/src/MatrixWSSpectrumView.cpp
@@ -1,5 +1,7 @@
 #include <iostream>
 #include "MantidQtSpectrumViewer/MatrixWSSpectrumView.h"
+
+#include "MantidAPI/MatrixWorkspace.h"
 #include "MantidQtSpectrumViewer/MatrixWSDataSource.h"
 
 using Mantid::API::MatrixWorkspace_const_sptr;
diff --git a/Code/Mantid/MantidQt/SpectrumViewer/src/SpectrumView.cpp b/Code/Mantid/MantidQt/SpectrumViewer/src/SpectrumView.cpp
index ab86f5eace14a966740ae1df19da57be560f4b2c..0da412d551ab366eff5f5b17be88c1358712f5e6 100644
--- a/Code/Mantid/MantidQt/SpectrumViewer/src/SpectrumView.cpp
+++ b/Code/Mantid/MantidQt/SpectrumViewer/src/SpectrumView.cpp
@@ -1,7 +1,8 @@
 #include <iostream>
 #include "MantidQtSpectrumViewer/SpectrumView.h"
-#include "MantidQtSpectrumViewer/ColorMaps.h"
 
+#include "MantidAPI/MatrixWorkspace.h"
+#include "MantidQtSpectrumViewer/ColorMaps.h"
 #include "MantidQtSpectrumViewer/SVConnections.h"
 #include "MantidQtSpectrumViewer/SpectrumDisplay.h"
 #include "MantidQtSpectrumViewer/SliderHandler.h"
diff --git a/Code/Mantid/QtPropertyBrowser/src/qttreepropertybrowser.cpp b/Code/Mantid/QtPropertyBrowser/src/qttreepropertybrowser.cpp
index 58bee7f04ccc37853953ad4fc870e594fd514959..53f493d7bee8d791a84e17494c4fdab5350c34ff 100644
--- a/Code/Mantid/QtPropertyBrowser/src/qttreepropertybrowser.cpp
+++ b/Code/Mantid/QtPropertyBrowser/src/qttreepropertybrowser.cpp
@@ -134,9 +134,12 @@ public:
     setChecked( ! isChecked() );
     m_property->setOption( m_optionName, isChecked() );
     update();
+    emit optionChanged(m_property, m_optionName, isChecked());
   }
   void setChecked(bool on){m_checked = on;}
   bool isChecked() const {return m_checked;}
+signals:
+  void optionChanged(QtProperty*, const QString&, bool);
 private:
   QtProperty *m_property;
   QString m_optionName;
@@ -351,6 +354,9 @@ public:
 
     QTreeWidgetItem *editedItem() const { return m_editedItem; }
 
+signals:
+    void optionChanged(QtProperty*, const QString&, bool);
+
 private slots:
     void slotEditorDestroyed(QObject *object);
 
@@ -435,6 +441,7 @@ QWidget *QtPropertyEditorDelegate::createEditor(QWidget *parent,
       if ( property->hasOption(optionName) )
       {
         QWidget *editor = new PropertyOptionCheckBox(parent,property,optionName);
+        connect(editor,SIGNAL(optionChanged(QtProperty*, const QString&, bool)),this,SIGNAL(optionChanged(QtProperty*, const QString&, bool)));
         return editor;
       }
     }
@@ -591,6 +598,7 @@ void QtTreePropertyBrowserPrivate::init(QWidget *parent, const QStringList &opti
     m_treeWidget->setEditTriggers(QAbstractItemView::EditKeyPressed);
     m_delegate = new QtPropertyEditorDelegate(parent);
     m_delegate->setEditorPrivate(this);
+    QObject::connect(m_delegate,SIGNAL(optionChanged(QtProperty*, const QString&, bool)),parent,SIGNAL(optionChanged(QtProperty*, const QString&, bool)));
     m_treeWidget->setItemDelegate(m_delegate);
     m_treeWidget->header()->setMovable(false);
     m_treeWidget->header()->setResizeMode(QHeaderView::Stretch);
diff --git a/Code/Mantid/QtPropertyBrowser/src/qttreepropertybrowser.h b/Code/Mantid/QtPropertyBrowser/src/qttreepropertybrowser.h
index 51d367dc7bf8b0bb0c489b8d1ac4bce1e5138704..80072884d6001d464d2d1e6292ace6bc98413c96 100644
--- a/Code/Mantid/QtPropertyBrowser/src/qttreepropertybrowser.h
+++ b/Code/Mantid/QtPropertyBrowser/src/qttreepropertybrowser.h
@@ -159,6 +159,7 @@ Q_SIGNALS:
 
     void collapsed(QtBrowserItem *item);
     void expanded(QtBrowserItem *item);
+    void optionChanged(QtProperty*, const QString&, bool);
 
 protected:
     virtual void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem);
diff --git a/Code/Mantid/Testing/Data/DocTest/ENGINX00193749.nxs.md5 b/Code/Mantid/Testing/Data/DocTest/ENGINX00193749.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..a33b32a31fd878db2cc37c29a9fa587d8a124220
--- /dev/null
+++ b/Code/Mantid/Testing/Data/DocTest/ENGINX00193749.nxs.md5
@@ -0,0 +1 @@
+22fc488c3f71eae634a18799dd04da72
diff --git a/Code/Mantid/Testing/Data/DocTest/ENGINX00236516.nxs.md5 b/Code/Mantid/Testing/Data/DocTest/ENGINX00236516.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..545450331f4276ed5c8f7195aeac01ca75ee1918
--- /dev/null
+++ b/Code/Mantid/Testing/Data/DocTest/ENGINX00236516.nxs.md5
@@ -0,0 +1 @@
+e1e5a526460378b89319886a3509f326
diff --git a/Code/Mantid/Testing/Data/DocTest/HB3A_exp0355_scan0011.dat.md5 b/Code/Mantid/Testing/Data/DocTest/HB3A_exp0355_scan0011.dat.md5
new file mode 100644
index 0000000000000000000000000000000000000000..59f7bd01b1e9a22182410317ea43dd452ce22ab5
--- /dev/null
+++ b/Code/Mantid/Testing/Data/DocTest/HB3A_exp0355_scan0011.dat.md5
@@ -0,0 +1 @@
+f088a2d357a4ac3c3d489be3d74bac7b
diff --git a/Code/Mantid/Testing/Data/DocTest/HB3A_exp0355_scan0038.dat.md5 b/Code/Mantid/Testing/Data/DocTest/HB3A_exp0355_scan0038.dat.md5
new file mode 100644
index 0000000000000000000000000000000000000000..bcf3e5f8b7e2b5ac3594ad53a808079c516e1d50
--- /dev/null
+++ b/Code/Mantid/Testing/Data/DocTest/HB3A_exp0355_scan0038.dat.md5
@@ -0,0 +1 @@
+cc59e339f08c3041a1c86c72c0707dc1
diff --git a/Code/Mantid/Testing/Data/DocTest/HB3A_exp355_scan0011_0011.xml.md5 b/Code/Mantid/Testing/Data/DocTest/HB3A_exp355_scan0011_0011.xml.md5
new file mode 100644
index 0000000000000000000000000000000000000000..e9b19c0ae807e45415ce0a0412464f189788a44b
--- /dev/null
+++ b/Code/Mantid/Testing/Data/DocTest/HB3A_exp355_scan0011_0011.xml.md5
@@ -0,0 +1 @@
+55c22ec84e9bda80d31675893c7a37a9
diff --git a/Code/Mantid/Testing/Data/DocTest/HB3A_exp355_scan0038_0012.xml.md5 b/Code/Mantid/Testing/Data/DocTest/HB3A_exp355_scan0038_0012.xml.md5
new file mode 100644
index 0000000000000000000000000000000000000000..830a5560bbf9cec96a9b7e5d0abf33ab1f820514
--- /dev/null
+++ b/Code/Mantid/Testing/Data/DocTest/HB3A_exp355_scan0038_0012.xml.md5
@@ -0,0 +1 @@
+2a9a872bf0e222858c31a118e0e3dc7f
diff --git a/Code/Mantid/Testing/Data/SystemTest/ENGINX00236516.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/ENGINX00236516.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..545450331f4276ed5c8f7195aeac01ca75ee1918
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/ENGINX00236516.nxs.md5
@@ -0,0 +1 @@
+e1e5a526460378b89319886a3509f326
diff --git a/Code/Mantid/Testing/Data/SystemTest/ENGINX_precalculated_vanadium_run000236516_bank_curves.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/ENGINX_precalculated_vanadium_run000236516_bank_curves.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..1503e40c721663cac288cd83fa32eae2c5a6f13c
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/ENGINX_precalculated_vanadium_run000236516_bank_curves.nxs.md5
@@ -0,0 +1 @@
+e5262f4b8faee3aeb0670dc6a6a79c70
diff --git a/Code/Mantid/Testing/Data/SystemTest/ENGINX_precalculated_vanadium_run000236516_integration.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/ENGINX_precalculated_vanadium_run000236516_integration.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..eb35042b21a7e06c08060a9d3d91726100a841e6
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/ENGINX_precalculated_vanadium_run000236516_integration.nxs.md5
@@ -0,0 +1 @@
+b80d6b275be723a41cc90cee179526f8
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/DIRECT_SANS2D_REAR_28829_4m_30x20_29Apr15.txt.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/DIRECT_SANS2D_REAR_28829_4m_30x20_29Apr15.txt.md5
new file mode 100644
index 0000000000000000000000000000000000000000..0c40454c0716d9fc2341ec1cb6e695bdc44ccab4
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/DIRECT_SANS2D_REAR_28829_4m_30x20_29Apr15.txt.md5
@@ -0,0 +1 @@
+2661cb8b6555dca71431e130b473860d
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/DIRECT_SANS2d_27511_12m_Rear_23Mar15.txt.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/DIRECT_SANS2d_27511_12m_Rear_23Mar15.txt.md5
new file mode 100644
index 0000000000000000000000000000000000000000..66add96f7ca0a47ebd89ec01d5c889e6639a998c
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/DIRECT_SANS2d_27511_12m_Rear_23Mar15.txt.md5
@@ -0,0 +1 @@
+72cc7d50e0f8b3e9ce6cb0205aebba4e
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_BOTH_Extras_24Mar2015.xml.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_BOTH_Extras_24Mar2015.xml.md5
new file mode 100644
index 0000000000000000000000000000000000000000..b664590b6b250a6c60752ab844a0b57875dda994
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_BOTH_Extras_24Mar2015.xml.md5
@@ -0,0 +1 @@
+d327787830f80fec05b8b7c3af7de726
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_FRONT_Edges_16Mar2015.xml.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_FRONT_Edges_16Mar2015.xml.md5
new file mode 100644
index 0000000000000000000000000000000000000000..fb962c799badc82d8ac1862cbbe65102de95751a
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_FRONT_Edges_16Mar2015.xml.md5
@@ -0,0 +1 @@
+cc6749dc7c34bb937e43753e89cd7e93
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_REAR_Bottom_3_tubes_16May2014.xml.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_REAR_Bottom_3_tubes_16May2014.xml.md5
new file mode 100644
index 0000000000000000000000000000000000000000..d751c75e1d7ebd4396150167fdce9d86b85fa3dd
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_REAR_Bottom_3_tubes_16May2014.xml.md5
@@ -0,0 +1 @@
+5b3196a5b6f7d8a361bc417e1505c81d
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_REAR_Edges_16Mar2015.xml.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_REAR_Edges_16Mar2015.xml.md5
new file mode 100644
index 0000000000000000000000000000000000000000..9091fa5db3db462985b95aee80c2d8f13fc38f91
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/MASK_SANS2D_REAR_Edges_16Mar2015.xml.md5
@@ -0,0 +1 @@
+f561508de44753d8a870bb6c133ed1ba
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028784.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028784.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..819ab91d57c70647ad559adf8b568f8b8e49838b
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028784.nxs.md5
@@ -0,0 +1 @@
+5a2899f563d6c737a3f0714ef079311a
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028793.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028793.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..6c8ddb8e5d8541bf208c5a8d79b37e75fa9a0295
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028793.nxs.md5
@@ -0,0 +1 @@
+cdf4218eda4d216ff4986c9f591def85
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028797.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028797.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..86eaf6a0ff38a58588d9ff9c82dee3ca4dbf24e2
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028797.nxs.md5
@@ -0,0 +1 @@
+60f582870710609853772d9e9f169350
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028804.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028804.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..dfd3690c4a618b237208335ea7dfa35178391cbd
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028804.nxs.md5
@@ -0,0 +1 @@
+1afbc5834f3620cc0dc91685b428a7a2
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028808.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028808.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..d380d12681fe275b534998b2e3c53fd28b725420
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028808.nxs.md5
@@ -0,0 +1 @@
+8390f2f2019ea5004a27296267a5fb68
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028823.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028823.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..00660dfdf7ce946c4d251b3d9ebe04b1f895c267
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028823.nxs.md5
@@ -0,0 +1 @@
+96756c3e4299ee53b983121a175b7faa
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028827.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028827.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..a99e5005eaef268f48448ea3a3d7d11e29912491
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00028827.nxs.md5
@@ -0,0 +1 @@
+c13e494414c2a19efd9950af78fc5adc
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00029089.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00029089.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..dbaf3b5383bde9dc13fb53c06dfa33776b0c1b7f
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2D00029089.nxs.md5
@@ -0,0 +1 @@
+a2ca5559f1a8ed4dd5a06d84de7ec656
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2DTUBES_ZeroErrorFree_batch.csv.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2DTUBES_ZeroErrorFree_batch.csv.md5
new file mode 100644
index 0000000000000000000000000000000000000000..261cd53a01ce2c969c290a6c8304834971fcddae
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2DTUBES_ZeroErrorFree_batch.csv.md5
@@ -0,0 +1 @@
+2aa7438229e58645688ee7bad423b2c6
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2DTube_ZerroErrorFreeTest.txt.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2DTube_ZerroErrorFreeTest.txt.md5
new file mode 100644
index 0000000000000000000000000000000000000000..b7d35037b2da7832700f9b30c0b7e75663803f16
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/SANS2DTube_ZerroErrorFreeTest.txt.md5
@@ -0,0 +1 @@
+f8e5eaea41e4a81e1db86efb5bedff13
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/TUBE_SANS2D_BOTH_27345_20Mar15.nxs.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/TUBE_SANS2D_BOTH_27345_20Mar15.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..8b933decfd2d914c07a5da142ff69e1004c26f6d
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/TUBE_SANS2D_BOTH_27345_20Mar15.nxs.md5
@@ -0,0 +1 @@
+e5a4ef2b550bab198047e26cef5fe0c0
diff --git a/Code/Mantid/Testing/Data/SystemTest/SANS2D/USER_SANS2D_143ZC_2p4_4m_M4_Knowles_12mm.txt.md5 b/Code/Mantid/Testing/Data/SystemTest/SANS2D/USER_SANS2D_143ZC_2p4_4m_M4_Knowles_12mm.txt.md5
new file mode 100644
index 0000000000000000000000000000000000000000..463f24157794a1865798311794b7534d492cbb57
--- /dev/null
+++ b/Code/Mantid/Testing/Data/SystemTest/SANS2D/USER_SANS2D_143ZC_2p4_4m_M4_Knowles_12mm.txt.md5
@@ -0,0 +1 @@
+28723764f0423ecf9090d57bae52fe23
diff --git a/Code/Mantid/Testing/Data/UnitTest/6749948083a1d97757b56cb5924415b4 b/Code/Mantid/Testing/Data/UnitTest/6749948083a1d97757b56cb5924415b4
new file mode 100644
index 0000000000000000000000000000000000000000..ba8b60e4f5cfd8dcb94931e88877f58844a6af5d
Binary files /dev/null and b/Code/Mantid/Testing/Data/UnitTest/6749948083a1d97757b56cb5924415b4 differ
diff --git a/Code/Mantid/Testing/Data/UnitTest/ENGINX00241391.nxs.md5 b/Code/Mantid/Testing/Data/UnitTest/ENGINX00241391.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..0d7bb188c23b1b31c580e07d5f6fda3a5a1ed0b6
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/ENGINX00241391.nxs.md5
@@ -0,0 +1 @@
+43af8f6803124875e38af931edd942fd
diff --git a/Code/Mantid/Testing/Data/UnitTest/ENGINX_precalculated_vanadium_run000236516_bank_curves.nxs.md5 b/Code/Mantid/Testing/Data/UnitTest/ENGINX_precalculated_vanadium_run000236516_bank_curves.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..1503e40c721663cac288cd83fa32eae2c5a6f13c
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/ENGINX_precalculated_vanadium_run000236516_bank_curves.nxs.md5
@@ -0,0 +1 @@
+e5262f4b8faee3aeb0670dc6a6a79c70
diff --git a/Code/Mantid/Testing/Data/UnitTest/ENGINX_precalculated_vanadium_run000236516_integration.nxs.md5 b/Code/Mantid/Testing/Data/UnitTest/ENGINX_precalculated_vanadium_run000236516_integration.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..eb35042b21a7e06c08060a9d3d91726100a841e6
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/ENGINX_precalculated_vanadium_run000236516_integration.nxs.md5
@@ -0,0 +1 @@
+b80d6b275be723a41cc90cee179526f8
diff --git a/Code/Mantid/Testing/Data/UnitTest/EnginX_3_expected_peaks_unittest.csv.md5 b/Code/Mantid/Testing/Data/UnitTest/EnginX_3_expected_peaks_unittest.csv.md5
new file mode 100644
index 0000000000000000000000000000000000000000..50131db398d58b8917e69e391034a1a127fdfa3e
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/EnginX_3_expected_peaks_unittest.csv.md5
@@ -0,0 +1 @@
+fbe6ec0e996088b798557e1fe09a64d1
diff --git a/Code/Mantid/Testing/Data/UnitTest/LARMOR00003368.nxs.md5 b/Code/Mantid/Testing/Data/UnitTest/LARMOR00003368.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..70a50853ea1d87caec7d5978cde4c4789450f9c3
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/LARMOR00003368.nxs.md5
@@ -0,0 +1 @@
+c1b63bb894c277bc1b4b9c74c95e640b
diff --git a/Code/Mantid/Testing/Data/UnitTest/LOQ48127np.nxs.md5 b/Code/Mantid/Testing/Data/UnitTest/LOQ48127np.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..10ce4ffed83f913ba392fdd03dc2b01c91069a4d
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/LOQ48127np.nxs.md5
@@ -0,0 +1 @@
+fa47dee6f10804d3f6ecae4c0f5cc8a6
diff --git a/Code/Mantid/Testing/Data/UnitTest/LOQ48127p.nxs.md5 b/Code/Mantid/Testing/Data/UnitTest/LOQ48127p.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..31bdf7fe46607e1d405fa1b44e2dc8f76d2079be
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/LOQ48127p.nxs.md5
@@ -0,0 +1 @@
+6749948083a1d97757b56cb5924415b4
diff --git a/Code/Mantid/Testing/Data/UnitTest/LOQinstrument.h5.md5 b/Code/Mantid/Testing/Data/UnitTest/LOQinstrument.h5.md5
new file mode 100644
index 0000000000000000000000000000000000000000..087daf63f8ca476e1f68e0817b1a392049be5912
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/LOQinstrument.h5.md5
@@ -0,0 +1 @@
+5a645a0db879235a19a05cb177dd2eeb
diff --git a/Code/Mantid/Testing/Data/UnitTest/OSI10156.raw.md5 b/Code/Mantid/Testing/Data/UnitTest/OSI10156.raw.md5
new file mode 100644
index 0000000000000000000000000000000000000000..083ff45f8136c8946c1b2982679d03a99f4a00b5
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/OSI10156.raw.md5
@@ -0,0 +1 @@
+127203f351454fb4b3e052eec5d78a09
diff --git a/Code/Mantid/Testing/Data/UnitTest/OSI10203.raw.md5 b/Code/Mantid/Testing/Data/UnitTest/OSI10203.raw.md5
new file mode 100644
index 0000000000000000000000000000000000000000..9531418d56063c23f1660f712131c2de95b683f7
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/OSI10203.raw.md5
@@ -0,0 +1 @@
+067459aebee1bd8eabc9cf5a9ec7ec5a
diff --git a/Code/Mantid/Testing/Data/UnitTest/OSI10241.raw.md5 b/Code/Mantid/Testing/Data/UnitTest/OSI10241.raw.md5
new file mode 100644
index 0000000000000000000000000000000000000000..02a47d110b694920989a1b1de817467ea7fad39f
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/OSI10241.raw.md5
@@ -0,0 +1 @@
+5f9dcc204616634c904ca4258e144e2d
diff --git a/Code/Mantid/Testing/Data/UnitTest/OSI89813.raw.md5 b/Code/Mantid/Testing/Data/UnitTest/OSI89813.raw.md5
new file mode 100644
index 0000000000000000000000000000000000000000..9c5103dd2e826c6be636a3524f99c8416fe1f580
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/OSI89813.raw.md5
@@ -0,0 +1 @@
+f4185ed12be187868f11278501ed0392
\ No newline at end of file
diff --git a/Code/Mantid/Testing/Data/UnitTest/OSI97919.raw.md5 b/Code/Mantid/Testing/Data/UnitTest/OSI97919.raw.md5
new file mode 100644
index 0000000000000000000000000000000000000000..bb0d5944ab76f7c9eb3d75f7b677b359967b39f1
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/OSI97919.raw.md5
@@ -0,0 +1 @@
+b14d5df129e0bdfd9c8d044c51a6a152
\ No newline at end of file
diff --git a/Code/Mantid/Testing/Data/UnitTest/TOFTOFTestdata.nxs.md5 b/Code/Mantid/Testing/Data/UnitTest/TOFTOFTestdata.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..acfb3705cd970fa1bf0adfdd159987c828cc06a6
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/TOFTOFTestdata.nxs.md5
@@ -0,0 +1 @@
+2592c747483ead9dd3c299ec34c0859b
diff --git a/Code/Mantid/Testing/Data/UnitTest/fa47dee6f10804d3f6ecae4c0f5cc8a6 b/Code/Mantid/Testing/Data/UnitTest/fa47dee6f10804d3f6ecae4c0f5cc8a6
new file mode 100644
index 0000000000000000000000000000000000000000..44b7ab4d605633004b2abb5a91ce1de829734536
Binary files /dev/null and b/Code/Mantid/Testing/Data/UnitTest/fa47dee6f10804d3f6ecae4c0f5cc8a6 differ
diff --git a/Code/Mantid/Testing/Data/UnitTest/irs26173_graphite002_red.nxs.md5 b/Code/Mantid/Testing/Data/UnitTest/irs26173_graphite002_red.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..dd49338b31255373fb60d986554ea8a6ce46902c
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/irs26173_graphite002_red.nxs.md5
@@ -0,0 +1 @@
+f52ac64ec23fb50b6d4649592aee4fdb
\ No newline at end of file
diff --git a/Code/Mantid/Testing/Data/UnitTest/osi89757.raw.md5 b/Code/Mantid/Testing/Data/UnitTest/osi89757.raw.md5
new file mode 100644
index 0000000000000000000000000000000000000000..71b5a2ced04c9b411a79d3fbb65cdc8a99d3247b
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/osi89757.raw.md5
@@ -0,0 +1 @@
+b3e68c7be153deeb1c80ca7b88ff40bb
\ No newline at end of file
diff --git a/Code/Mantid/Testing/Data/UnitTest/osi_002_14Groups.map.md5 b/Code/Mantid/Testing/Data/UnitTest/osi_002_14Groups.map.md5
new file mode 100644
index 0000000000000000000000000000000000000000..b692e15a5c4a2d7ab5730c185d1622dcb3c9a928
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/osi_002_14Groups.map.md5
@@ -0,0 +1 @@
+9c4d8130bccf24e9928746483cedb727
diff --git a/Code/Mantid/Testing/Data/UnitTest/osiris_041_RES10.cal.md5 b/Code/Mantid/Testing/Data/UnitTest/osiris_041_RES10.cal.md5
new file mode 100644
index 0000000000000000000000000000000000000000..c7ab81f5411f6727d99be44342570e6fc9733c55
--- /dev/null
+++ b/Code/Mantid/Testing/Data/UnitTest/osiris_041_RES10.cal.md5
@@ -0,0 +1 @@
+25de3efd95d28f77e4df13891d54ee50
\ No newline at end of file
diff --git a/Code/Mantid/Testing/SystemTests/lib/systemtests/stresstesting.py b/Code/Mantid/Testing/SystemTests/lib/systemtests/stresstesting.py
index cfc73916b61a1c1bdd6f15f511a0fa51e7b2b383..a67e9538a86ae4e8a30e6bd902f4ac8d894ad6bb 100644
--- a/Code/Mantid/Testing/SystemTests/lib/systemtests/stresstesting.py
+++ b/Code/Mantid/Testing/SystemTests/lib/systemtests/stresstesting.py
@@ -999,6 +999,9 @@ class MantidFrameworkConfig:
 
         # Do not update instrument definitions
         config['UpdateInstrumentDefinitions.OnStartup'] = "0"
+        
+        # Do not perform a version check
+        config['CheckMantidVersion.OnStartup'] = "0"
 
         # Disable usage reports
         config['usagereports.enabled'] = "0"
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/DOSTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/DOSTest.py
index efbdc3bdb6510e66997c5a3e20ea96467098f6d1..f9169e507895baf5b39970fc146faded5a30910b 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/DOSTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/DOSTest.py
@@ -4,6 +4,8 @@ from mantid.kernel import *
 from mantid.api import *
 from mantid.simpleapi import *
 
+#------------------------------------------------------------------------------------
+
 class DOSPhononTest(stresstesting.MantidStressTest):
 
     def runTest(self):
@@ -11,7 +13,8 @@ class DOSPhononTest(stresstesting.MantidStressTest):
         self.ouput_ws_name = 'squaricn'
         self.ref_result = 'II.DOSTest.nxs'
 
-        DensityOfStates(File=file_name, OutputWorkspace=self.ouput_ws_name)
+        SimulatedDensityOfStates(File=file_name,
+                                 OutputWorkspace=self.ouput_ws_name)
 
     def validate(self):
         return self.ouput_ws_name, self.ref_result
@@ -25,7 +28,9 @@ class DOSPhononCrossSectionScaleTest(stresstesting.MantidStressTest):
         self.ouput_ws_name = 'squaricn'
         self.ref_result = 'II.DOSCrossSectionScaleTest.nxs'
 
-        DensityOfStates(File=file_name, ScaleByCrossSection='Incoherent', OutputWorkspace=self.ouput_ws_name)
+        SimulatedDensityOfStates(File=file_name,
+                                 ScaleByCrossSection='Incoherent',
+                                 OutputWorkspace=self.ouput_ws_name)
 
     def validate(self):
         return self.ouput_ws_name, self.ref_result
@@ -39,7 +44,8 @@ class DOSCastepTest(stresstesting.MantidStressTest):
         self.ouput_ws_name = 'squaricn'
         self.ref_result = 'II.DOSTest.nxs'
 
-        DensityOfStates(File=file_name,OutputWorkspace=self.ouput_ws_name)
+        SimulatedDensityOfStates(File=file_name,
+                                 OutputWorkspace=self.ouput_ws_name)
 
     def validate(self):
         return self.ouput_ws_name, self.ref_result
@@ -54,7 +60,9 @@ class DOSRamanActiveTest(stresstesting.MantidStressTest):
         self.ouput_ws_name = 'squaricn'
         self.ref_result = 'II.DOSRamanTest.nxs'
 
-        DensityOfStates(File=file_name, SpectrumType=spec_type, OutputWorkspace=self.ouput_ws_name)
+        SimulatedDensityOfStates(File=file_name,
+                                 SpectrumType=spec_type,
+                                 OutputWorkspace=self.ouput_ws_name)
 
     def validate(self):
         self.tolerance = 1e-3
@@ -70,7 +78,9 @@ class DOSIRActiveTest(stresstesting.MantidStressTest):
         self.ouput_ws_name = 'squaricn'
         self.ref_result = 'II.DOSIRTest.nxs'
 
-        DensityOfStates(File=file_name, SpectrumType=spec_type, OutputWorkspace=self.ouput_ws_name)
+        SimulatedDensityOfStates(File=file_name,
+                                 SpectrumType=spec_type,
+                                 OutputWorkspace=self.ouput_ws_name)
 
     def validate(self):
         return self.ouput_ws_name, self.ref_result
@@ -85,7 +95,10 @@ class DOSPartialTest(stresstesting.MantidStressTest):
         self.ouput_ws_name = 'squaricn'
         self.ref_result = 'II.DOSPartialTest.nxs'
 
-        DensityOfStates(File=file_name, SpectrumType=spec_type, Ions="H,C,O", OutputWorkspace=self.ouput_ws_name)
+        SimulatedDensityOfStates(File=file_name,
+                                 SpectrumType=spec_type,
+                                 Ions="H,C,O",
+                                 OutputWorkspace=self.ouput_ws_name)
 
     def validate(self):
         return self.ouput_ws_name, self.ref_result
@@ -107,7 +120,11 @@ class DOSPartialSummedContributionsTest(stresstesting.MantidStressTest):
         self.ref_result = 'II.DOSTest.nxs'
         self.tolerance = 1e-10
 
-        DensityOfStates(File=file_name, SpectrumType=spec_type, Ions="H,C,O", SumContributions=True, OutputWorkspace=self.ouput_ws_name)
+        SimulatedDensityOfStates(File=file_name,
+                                 SpectrumType=spec_type,
+                                 Ions="H,C,O",
+                                 SumContributions=True,
+                                 OutputWorkspace=self.ouput_ws_name)
 
     def validate(self):
         return self.ouput_ws_name, self.ref_result
@@ -122,8 +139,11 @@ class DOSPartialCrossSectionScaleTest(stresstesting.MantidStressTest):
         self.ouput_ws_name = 'squaricn'
         self.ref_result = 'II.DOSPartialCrossSectionScaleTest.nxs'
 
-        DensityOfStates(File=file_name, SpectrumType=spec_type, Ions="H,C,O", ScaleByCrossSection='Incoherent',
-                        OutputWorkspace=self.ouput_ws_name)
+        SimulatedDensityOfStates(File=file_name,
+                                 SpectrumType=spec_type,
+                                 Ions="H,C,O",
+                                 ScaleByCrossSection='Incoherent',
+                                 OutputWorkspace=self.ouput_ws_name)
 
     def validate(self):
         return self.ouput_ws_name, self.ref_result
@@ -145,8 +165,12 @@ class DOSPartialSummedContributionsCrossSectionScaleTest(stresstesting.MantidStr
         self.ref_result = 'II.DOSCrossSectionScaleTest.nxs'
         self.tolerance = 1e-10
 
-        DensityOfStates(File=file_name, SpectrumType=spec_type, Ions="H,C,O", SumContributions=True,
-                        ScaleByCrossSection='Incoherent', OutputWorkspace=self.ouput_ws_name)
+        SimulatedDensityOfStates(File=file_name,
+                                 SpectrumType=spec_type,
+                                 Ions="H,C,O",
+                                 SumContributions=True,
+                                 ScaleByCrossSection='Incoherent',
+                                 OutputWorkspace=self.ouput_ws_name)
 
     def validate(self):
         return self.ouput_ws_name, self.ref_result
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/EnggCalibrationTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/EnggCalibrationTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..02937d2e7195cb46502e746094587c13ced5631e
--- /dev/null
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/EnggCalibrationTest.py
@@ -0,0 +1,230 @@
+#pylint: disable=no-init
+import stresstesting
+from mantid.simpleapi import *
+
+def rel_err_less_delta(val, ref, epsilon):
+    """
+    Checks that a value 'val' does not defer from a reference value 'ref' by 'epsilon'
+    or more. This method compares the relative error. An epsilon of 0.1 means a relative
+    difference of 10 % = 100*0.1 %
+
+    @param val :: value obtained from a calculation or algorithm
+    @param ref :: (expected) reference value
+    @param epsilon :: acceptable relative error (error tolerance)
+
+    @returns if val differs in relative terms from ref by less than epsilon
+    """
+    if 0 == ref:
+        return False
+    check = (abs((ref-val)/ref) < epsilon)
+    if not check:
+        print "Val '{0}' differs from ref '{1}' by more than required epsilon '{2}'".format(val, ref, epsilon)
+    return check
+
+class EnginXFocusWithVanadiumCorrection(stresstesting.MantidStressTest):
+
+    def __init__(self):
+        stresstesting.MantidStressTest.__init__(self)
+
+        # This test makes sure that the pre-calculated values (which are extensively used in the
+        # unit tests) are still the same results as we get from the actual calculations
+        self._precalc_van_ws = LoadNexus(Filename='ENGINX_precalculated_vanadium_run000236516_bank_curves.nxs',
+                                         OutputWorkspace='ENGIN-X_vanadium_curves_test_ws')
+        self._precalc_van_integ_tbl = LoadNexus(Filename=
+                                                'ENGINX_precalculated_vanadium_run000236516_integration.nxs',
+                                                OutputWorkspace='ENGIN-X_vanadium_integ_test_ws')
+
+        self.van_bank_curves_name = 'enginx_van_bank_curves'
+        self.van_bank_curves_pre_integ_name = 'enginx_van_bank_curves_with_precalc_integ'
+        self.out_ws_name = 'enginx_focussed'
+        self.out_ws_precalc_name = 'enginx_focussed_with_precalculations'
+
+    def runTest(self):
+        # These lines run a 'Focus' for the instrument EnginX, as an isolated step here
+        # The next test about 'CalibrateFull'-'Calibrate' also includes focusing, as
+        # 'Calibrate' uses 'Focus' as a child algorithm
+        long_calib_ws = Load(Filename = 'ENGINX00193749.nxs')
+
+        van_ws = Load(Filename = 'ENGINX00236516.nxs')
+
+        # note: not giving calibrated detector positions
+
+        # do all calculations from raw data
+        EnggFocus(InputWorkspace = long_calib_ws,
+                  VanadiumWorkspace = van_ws,
+                  Bank = '1',
+                  OutVanadiumCurveFits = self.van_bank_curves_name,
+                  OutputWorkspace=self.out_ws_name)
+
+        # Now with pre-calculated curves and integration values. This makes sure that these do not
+        # change too much AND the final results do not change too much as a result
+        EnggFocus(InputWorkspace = long_calib_ws,
+                  VanadiumWorkspace = van_ws,
+                  Bank = '1',
+                  VanadiumIntegWorkspace = self._precalc_van_integ_tbl,
+                  OutVanadiumCurveFits = self.van_bank_curves_pre_integ_name,
+                  OutputWorkspace=self.out_ws_precalc_name)
+
+    def validate(self):
+        out_ws = mtd[self.out_ws_name]
+        self.assertEquals(out_ws.getName(), self.out_ws_name)
+        self.assertEqual(out_ws.getNumberHistograms(), 1)
+        self.assertEqual(out_ws.blocksize(), 10186)
+        self.assertEqual(out_ws.getNEvents(), 10186)
+        self.assertEqual(out_ws.getNumDims(), 2)
+        self.assertEqual(out_ws.YUnit(), 'Counts')
+        dimX = out_ws.getXDimension()
+        self.assertEqual(dimX.getName(), 'Time-of-flight')
+        self.assertEqual(dimX.getUnits(), 'microsecond')
+        dimY = out_ws.getYDimension()
+        self.assertEqual(dimY.getName(), 'Spectrum')
+        self.assertEqual(dimY.getUnits(), '')
+
+        van_out_ws = mtd[self.van_bank_curves_name]
+        self.assertEquals(van_out_ws.getName(), self.van_bank_curves_name)
+        self.assertTrue(van_out_ws.getNumberHistograms(), 3)
+        self.assertEqual(out_ws.blocksize(), 10186)
+
+        dimX = van_out_ws.getXDimension()
+        self.assertEqual(dimX.getName(), 'd-Spacing')
+        self.assertEqual(dimX.getUnits(), 'Angstrom')
+        dimY = van_out_ws.getYDimension()
+        self.assertEqual(dimY.getName(), '')
+        self.assertEqual(dimY.getUnits(), '')
+
+        # === check the simulated curve from fitted function against previously saved curve ===
+        simul = van_out_ws.readY(1)
+
+        # with precalc curve but not precalc integration
+        precalc_curve_simul = self._precalc_van_ws.readY(1)
+        self.assertEquals(len(simul), len(precalc_curve_simul))
+
+        # with precalculated curve and precalculated integration
+        van_pre_integ_out_ws = mtd[self.van_bank_curves_pre_integ_name]
+        precalc_all_curve_simul = van_pre_integ_out_ws.readY(1)
+        self.assertEquals(len(simul), len(precalc_all_curve_simul))
+
+        delta = 1e-5
+        for i in range(0, len(simul)):
+            self.assertTrue(rel_err_less_delta(simul[i], precalc_curve_simul[i], delta),
+                            "Relative difference bigger than acceptable error (%f) when comparing bin %d "
+                            "against bank curves previously fitted. got: %f where I expect: %f"%
+                            (delta, i, simul[i], precalc_curve_simul[i]))
+
+            self.assertTrue(rel_err_less_delta(simul[i], precalc_curve_simul[i], delta),
+                            "Relative difference bigger than acceptable error (%f) when comparing bin %d "
+                            "against bank curves previously fitted (and also using pre-calculated integration "
+                            "values). got: %f where I expect: %f"%
+                            (delta, i, simul[i], precalc_all_curve_simul[i]))
+
+        # === check the 'focussed' spectrum ===
+        out_precalc_ws = mtd[self.out_ws_precalc_name]
+        self.assertEquals(out_precalc_ws.getNumberHistograms(), 1)
+        self.assertEquals(out_precalc_ws.blocksize(), out_ws.blocksize())
+        focussed_sp = out_ws.readY(0)
+        focussed_sp_precalc = out_precalc_ws.readY(0)
+        for i in range(0, out_ws.blocksize()):
+            self.assertTrue(rel_err_less_delta(simul[i], precalc_curve_simul[i], delta),
+                            "Relative difference bigger than accepted delta (%f) when comparing bin %d "
+                            "of the focussed spectrum against the focussed spectrum obtained using bank curves "
+                            "and spectra integration values pre-calculated. got: %f where I expect: %f"%
+                            (delta, i, focussed_sp[i], focussed_sp_precalc[i]))
+
+    def cleanup(self):
+        mtd.remove(self.out_ws_name)
+        mtd.remove(self.van_bank_curves_name)
+        mtd.remove(self.van_bank_curves_pre_integ_name)
+        mtd.remove(self.van_bank_curves_name)
+
+
+class EnginXCalibrateFullThenCalibrateTest(stresstesting.MantidStressTest):
+
+    def __init__(self):
+        stresstesting.MantidStressTest.__init__(self)
+        # difc and zero parameters for GSAS
+        self.difc = -1
+        self.difc_b2 = -1
+        self.zero_b2 = -1
+        self.zero = -1
+        # table workspace with detector positions
+        self.posTable = None
+
+    def runTest(self):
+        # These lines run a 'CalibrateFull' and then 'Clibrate' for the instrument EnginX
+
+        # This must be the long Ceria (CeO2) run for calibrate-full
+        long_calib_ws = Load(Filename = 'ENGINX00193749.nxs')
+
+        # This must be the (big) Vanadium (V-Nb) run for vanadium corrections
+        van_ws = Load(Filename = 'ENGINX00236516.nxs')
+
+        positions = EnggCalibrateFull(Workspace = long_calib_ws,
+                                      VanadiumWorkspace = van_ws,
+                                      Bank = '1',
+                                      ExpectedPeaks = '1.3529, 1.6316, 1.9132')
+        self.posTable = positions
+
+        # Bank 1
+        (self.difc, self.zero) = EnggCalibrate(InputWorkspace = long_calib_ws,
+                                               VanadiumWorkspace = van_ws,
+                                               Bank = '1',
+                                               ExpectedPeaks = '2.7057,1.9132,1.6316,1.5621,1.3528,0.9566',
+                                               DetectorPositions = self.posTable)
+
+        # Bank 2
+        (self.difc_b2, self.zero_b2) = EnggCalibrate(InputWorkspace = long_calib_ws,
+                                                     VanadiumWorkspace = van_ws,
+                                                     Bank = '2',
+                                                     ExpectedPeaks = '2.7057,1.9132,1.6316,1.5621,1.3528,0.9566',
+                                                     DetectorPositions = self.posTable)
+
+    def validate(self):
+        # === check detector positions table produced by EnggCalibrateFull
+        self.assertTrue(self.posTable)
+        self.assertEquals(self.posTable.columnCount(), 9)
+        self.assertEquals(self.posTable.rowCount(), 1200)
+        self.assertEquals(self.posTable.cell(88, 0), 100089)   # det ID
+        self.assertEquals(self.posTable.cell(200, 0), 101081)  # det ID
+
+        # this will be used as a comparison delta in relative terms (percentage)
+        exdelta = exdelta_special = 1e-5
+        # Mac fitting tests produce differences for some reason.
+        import sys
+        if "darwin" == sys.platform:
+            exdelta = 1e-2
+            # Some tests need a bigger delta
+            exdelta_special = 1e-1
+        if "win32" == sys.platform:
+            exdelta = 5e-4 # this is needed especially for the zero parameter (error >=1e-4)
+            exdelta_special = exdelta
+
+        # Note that the reference values are given with 12 digits more for reference than
+        # for assert-comparison purposes (comparisons are not that picky, by far)
+        self.assertTrue(rel_err_less_delta(self.posTable.cell(100, 3), 1.49010562897, exdelta))
+        #self.assertDelta(self.posTable.cell(100, 3), 1.49010562897, delta)
+        self.assertTrue(rel_err_less_delta(self.posTable.cell(400, 4), 1.65264105797, exdelta))
+        self.assertTrue(rel_err_less_delta(self.posTable.cell(200, 5), 0.296705961227, exdelta))
+        self.assertTrue(rel_err_less_delta(self.posTable.cell(610, 7), 18585.1738281, exdelta))
+        self.assertTrue(rel_err_less_delta(self.posTable.cell(1199, 8), -1.56501817703, exdelta_special))
+
+        # === check difc, zero parameters for GSAS produced by EnggCalibrate
+
+        # Bank 1
+        self.assertTrue(rel_err_less_delta(self.difc, 18405.0526862, exdelta_special),
+                        "difc parameter for bank 1 is not what was expected, got: %f" % self.difc)
+        if "darwin" != sys.platform:
+            self.assertTrue(rel_err_less_delta(self.zero, -0.835864, exdelta),
+                            "zero parameter for bank 1 is not what was expected, got: %f" % self.zero)
+
+        # Bank 2
+        self.assertTrue(rel_err_less_delta(self.difc_b2, 18392.7375314, exdelta_special),
+                        "difc parameter for bank 2 is not what was expected, got: %f" % self.difc_b2)
+        if "darwin" != sys.platform:
+            self.assertTrue(rel_err_less_delta(self.zero_b2, -11.341251, exdelta_special),
+                            "zero parameter for bank 2 is not what was expected, got: %f" % self.zero_b2)
+
+    def cleanup(self):
+        mtd.remove('long_calib_ws')
+        mtd.remove('van_ws')
+        mtd.remove('positions')
+        mtd.remove('calib_ws')
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/EnginXCalibrateTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/EnginXCalibrateTest.py
deleted file mode 100644
index 2dd1ae90bf144788dd003cfe89dfe32b942d3760..0000000000000000000000000000000000000000
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/EnginXCalibrateTest.py
+++ /dev/null
@@ -1,33 +0,0 @@
-#pylint: disable=no-init
-import stresstesting
-from mantid.simpleapi import *
-
-class EnginXCalibrateTest(stresstesting.MantidStressTest):
-
-    def __init__(self):
-        stresstesting.MantidStressTest.__init__(self)
-        self.difc = -1
-        self.zero = -1
-
-    def runTest(self):
-        positions = EnginXCalibrateFull(Filename = 'ENGINX00193749.nxs',
-                                      Bank = 1,
-                                      ExpectedPeaks = '1.3529, 1.6316, 1.9132')
-
-        (self.difc, self.zero) = EnginXCalibrate(Filename = 'ENGINX00193749.nxs',
-                                               Bank = 1,
-                                               ExpectedPeaks = '2.7057,1.9132,1.6316,1.5621,1.3528,0.9566',
-                                               DetectorPositions = positions)
-
-    def validate(self):
-        import sys
-        if sys.platform == "darwin":
-          # Mac fitting tests produce differences for some reason.
-            self.assertDelta(self.difc, 18405.4, 0.1)
-            self.assertDelta(self.zero, 3.60, 0.05)
-        else:
-            self.assertDelta(self.difc, 18404.496, 0.001)
-            self.assertDelta(self.zero, 4.4345, 0.001)
-
-    def cleanup(self):
-        mtd.remove('positions')
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/ILLD2BTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/ILLD2BTest.py
index 3047f60f05281cd14fec5ab5e8e2da6857f40ad3..59490f63f0c20bdb7298342812d877ab2e406554 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/ILLD2BTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/ILLD2BTest.py
@@ -36,7 +36,7 @@ class ILLD2BLoadTest(unittest.TestCase):
 
     def _do_ads_check(self, name):
         self.assertTrue(name in mtd)
-        self.assertTrue(type(mtd[name]) == IMDEventWorkspace)
+        self.assertTrue(isinstance(mtd[name], IMDEventWorkspace))
 
 #====================================================================================
 
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/ILLIN4Test.py b/Code/Mantid/Testing/SystemTests/tests/analysis/ILLIN4Test.py
index ba0674d2021e37a06d11b3a93af0dcdbfe7c42a9..aabdcdfbf69a52a5f54d316d752f8d53cce07e99 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/ILLIN4Test.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/ILLIN4Test.py
@@ -53,7 +53,7 @@ class ILLIN4Tests(unittest.TestCase):
 
     def _do_ads_check(self, name):
         self.assertTrue(name in mtd)
-        self.assertTrue(type(mtd[name]) == MatrixWorkspace)
+        self.assertTrue(isinstance(mtd[name], MatrixWorkspace))
 
 #====================================================================================
 
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/ILLIN5Test.py b/Code/Mantid/Testing/SystemTests/tests/analysis/ILLIN5Test.py
index fc9921b1093546618ada3224eb47bd34120a49ec..c918b179a1b38d0515d2a0cf2c3f984e5fca0f30 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/ILLIN5Test.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/ILLIN5Test.py
@@ -67,7 +67,7 @@ class ILLIN5Tests(unittest.TestCase):
 
     def _do_ads_check(self, name):
         self.assertTrue(name in mtd)
-        self.assertTrue(type(mtd[name]) == MatrixWorkspace)
+        self.assertTrue(isinstance(mtd[name], MatrixWorkspace))
 
 #====================================================================================
 
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/ISISDirectReductionComponents.py b/Code/Mantid/Testing/SystemTests/tests/analysis/ISISDirectReductionComponents.py
index 7175d05ae2cf618d262a3dccd6926a90cb475bac..214f517a7cc9a5b79b8f123ede6d7174597f4e39 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/ISISDirectReductionComponents.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/ISISDirectReductionComponents.py
@@ -281,7 +281,7 @@ class ISISLoadFilesLET(stresstesting.MantidStressTest):
         self.assertEqual(ws.getNumberHistograms(),40960)
         self.assertTrue(isinstance(mon_ws,Workspace))
         #
-        self.assertEqual(mon_ws.getNumberHistograms(),9)
+        self.assertEqual(mon_ws.getNumberHistograms(),27)
 
 
         self.valid = True
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectAbsCorTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectAbsCorTest.py
deleted file mode 100644
index e20fcd6c95e72f5e71843d0c10eb948db1442e4f..0000000000000000000000000000000000000000
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectAbsCorTest.py
+++ /dev/null
@@ -1,240 +0,0 @@
-#pylint: disable=no-init,attribute-defined-outside-init
-import stresstesting
-from mantid.simpleapi import *
-from IndirectImport import is_supported_f2py_platform
-import os
-
-#====================================================================================================
-
-
-class CylAbsTest(stresstesting.MantidStressTest):
-
-    def skipTests(self):
-        return not is_supported_f2py_platform()
-
-    def runTest(self):
-        import IndirectAbsCor as Main
-
-        sname = 'irs26176_graphite002_red'
-        LoadNexusProcessed(Filename=sname, OutputWorkspace=sname)
-
-        beam = [3.0, 1.0, -1.0, 2.0, -2.0, 0.0, 3.0, 0.0, 3.0]
-        size = [0.2, 0.25, 0.26, 0.0]
-        density = [0.1, 0.1, 0.1]
-        sigs = [5.0, 0.1, 0.1]
-        siga = [0.0, 5.0, 5.0]
-        avar = 0.002
-        saveOp = False
-        Main.AbsRun(sname, 'cyl', beam, 2, size, density,
-                    sigs, siga, avar, saveOp)
-
-    def validate(self):
-        self.tolerance = 1e-3
-        return 'irs26176_graphite002_cyl_Abs', 'ISISIndirectAbsCor_CylAbsTest.nxs'
-
-#====================================================================================================
-
-
-class FltAbsTest(stresstesting.MantidStressTest):
-
-    def skipTests(self):
-        return not is_supported_f2py_platform()
-
-    def runTest(self):
-        import IndirectAbsCor as Main
-
-        sname = 'irs26176_graphite002_red'
-        LoadNexusProcessed(Filename=sname, OutputWorkspace=sname)
-
-        beam = ''
-        size = [0.1, 0.01, 0.01]
-        density = [0.1, 0.1, 0.1]
-        sigs = [5.0, 0.1, 0.1]
-        siga = [0.0, 5.0, 5.0]
-        avar = 45.0
-        saveOp = False
-        Main.AbsRun(sname, 'flt', beam, 2, size, density,
-                    sigs, siga, avar, saveOp)
-
-    def validate(self):
-        self.tolerance = 1e-3
-        return 'irs26176_graphite002_flt_Abs', 'ISISIndirectAbsCor_FltAbsTest.nxs'
-
-
-#====================================================================================================
-
-
-class FltAbsTSecCloseTo90Test(stresstesting.MantidStressTest):
-
-    def skipTests(self):
-        return not is_supported_f2py_platform()
-
-    def runTest(self):
-        import IndirectAbsCor as Main
-
-        sname = 'irs59330_graphite002_red'
-        LoadNexusProcessed(Filename=sname, OutputWorkspace=sname)
-
-        beam = ''
-        size = [0.1, 0.01, 0.01]
-        density = [0.05, 0.5, 0.5]
-        sigs = [5.0, 0.1, 0.1]
-        siga = [0.0, 5.0, 5.0]
-        avar = 45.0
-        saveOp = False
-        Main.AbsRun(sname, 'flt', beam, 2, size, density,
-                    sigs, siga, avar, saveOp)
-
-    def validate(self):
-        self.tolerance = 1e-3
-        return 'iris59330_graphite002_flt_Abs', 'ISISIndirectAbsCor_FltAbsTSecCloseTo90Test.nxs'
-
-#====================================================================================================
-
-
-class AbsRunFeederTest(stresstesting.MantidStressTest):
-    """
-    Test AbsRunFeeder with given values for scattering and absorption cross sections
-    for both sample and can.
-    """
-
-    def skipTests(self):
-        return not is_supported_f2py_platform()
-
-    def runTest(self):
-        from IndirectAbsCor import AbsRunFeeder
-
-        # H20 sample
-        inputWS = 'irs26176_graphite002_red'
-        # cylindrical Vanadium can
-        canWS = 'irs26173_graphite002_red'
-
-        Load(inputWS + '.nxs', OutputWorkspace=inputWS)
-        Load(canWS + '.nxs', OutputWorkspace=canWS)
-
-        geom = 'cyl'
-        ncan = 2
-        size = [0.2, 0.25, 0.26, 0.0]
-        sigs = [5.0, 0.1, 0.1]
-        siga = [0.0, 5.0, 5.0]
-        avar = 0.002
-        density = [0.1, 0.1, 0.1]
-        beam_width = 4.0
-        AbsRunFeeder(inputWS, canWS, geom, ncan, size, avar, density, beam_width=beam_width, sigs=sigs, siga=siga)
-
-    def validate(self):
-        self.tolerance = 1e-3
-        return 'irs26176_graphite002_cyl_Abs', 'ISISIndirectAbsCor_AbsRunFeederTest.nxs'
-
-#====================================================================================================
-
-
-class AbsRunFeederChemicalFormulaTest(stresstesting.MantidStressTest):
-    """
-    Test AbsRunFeeder with chemical formula input for scattering and absorption cross sections
-    for both sample and can.
-    """
-
-    def skipTests(self):
-        return not is_supported_f2py_platform()
-
-    def runTest(self):
-        from IndirectAbsCor import AbsRunFeeder
-
-        # H20 sample
-        inputWS = 'irs26176_graphite002_red'
-        # cylindrical Vanadium can
-        canWS = 'irs26173_graphite002_red'
-
-        Load(inputWS + '.nxs', OutputWorkspace=inputWS)
-        Load(canWS + '.nxs', OutputWorkspace=canWS)
-
-        geom = 'cyl'
-        ncan = 2
-        size = [0.2, 0.25, 0.26, 0.0]
-        avar = 0.002
-        density = [0.1, 0.1, 0.1]
-        beam_width = 4.0
-        sampleFormula = 'H2-O'
-        canFormula = 'V'
-        AbsRunFeeder(inputWS, canWS, geom, ncan, size, avar, density, beam_width=beam_width,
-                     sample_formula=sampleFormula, can_formula=canFormula,  sigs=[0,0,0], siga=[0,0,0])
-
-    def validate(self):
-        self.tolerance = 1e-3
-        return 'irs26176_graphite002_cyl_Abs', 'ISISIndirectAbsCor_ChemicalFormulaTest.nxs'
-
-#====================================================================================================
-
-
-class AbsRunFeederDefaultBeamWidthTest(stresstesting.MantidStressTest):
-    """
-    Test AbsRunFeeder with given values for scattering and absorption cross sections
-    for both sample and can and the beam width taken from the IPF.
-    """
-
-    def skipTests(self):
-        return not is_supported_f2py_platform()
-
-    def runTest(self):
-        from IndirectAbsCor import AbsRunFeeder
-
-        # H20 sample
-        inputWS = 'irs26176_graphite002_red'
-        # cylindrical Vanadium can
-        canWS = 'irs26173_graphite002_red'
-
-        Load(inputWS + '.nxs', OutputWorkspace=inputWS)
-        path = os.path.join(config['instrumentDefinition.directory'], 'IRIS_Parameters.xml')
-        LoadParameterFile(inputWS, Filename=path)
-        Load(canWS + '.nxs', OutputWorkspace=canWS)
-
-        geom = 'cyl'
-        ncan = 2
-        size = [0.2, 0.25, 0.26, 0.0]
-        sigs = [5.0, 0.1, 0.1]
-        siga = [0.0, 5.0, 5.0]
-        avar = 0.002
-        density = [0.1, 0.1, 0.1]
-        AbsRunFeeder(inputWS, canWS, geom, ncan, size, avar, density, sigs=sigs, siga=siga)
-
-    def validate(self):
-        self.tolerance = 1e-3
-        return 'irs26176_graphite002_cyl_Abs', 'ISISIndirectAbsCor_DefaultBeamWidthTest.nxs'
-
-#====================================================================================================
-
-
-class AbsRunFeederDiffractionTest(stresstesting.MantidStressTest):
-    """
-    Test AbsRunFeeder with sample and can material formulas for a diffraction run.
-    """
-
-    def skipTests(self):
-        return not is_supported_f2py_platform()
-
-    def runTest(self):
-        from IndirectAbsCor import AbsRunFeeder
-
-        # H20 sample
-        inputWS = 'irs26176_diffspec_red'
-        # cylindrical Vanadium can
-        canWS = 'irs26173_diffspec_red'
-
-        Load(inputWS + '.nxs', OutputWorkspace=inputWS)
-        Load(canWS + '.nxs', OutputWorkspace=canWS)
-
-        geom = 'cyl'
-        ncan = 2
-        size = [0.2, 0.25, 0.26, 0.0]
-        avar = 0.002
-        density = [0.1, 0.1, 0.1]
-        beam_width = 4.0
-        sampleFormula = 'H2-O'
-        canFormula = 'V'
-        AbsRunFeeder(inputWS, canWS, geom, ncan, size, avar, density, beam_width=beam_width,
-                     sample_formula=sampleFormula, can_formula=canFormula,  sigs=[0,0,0], siga=[0,0,0])
-
-    def validate(self):
-        self.tolerance = 1e-3
-        return 'irs26176_diffspec_cyl_Abs', 'ISISIndirectAbsCor_AbsRunFeederDiffractionTest.nxs'
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectBayesTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectBayesTest.py
index 3d94f2cf96772380c2c8b7b301e77b478d727285..1e3c1a496bf52e1e7831d5c668ccc31c6645fb24 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectBayesTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectBayesTest.py
@@ -1,9 +1,12 @@
 #pylint: disable=no-init,attribute-defined-outside-init
 import stresstesting
 import os
+from abc import ABCMeta, abstractmethod
 from mantid.simpleapi import *
 from IndirectImport import is_supported_f2py_platform
 
+#==============================================================================
+
 def _cleanup_files(dirname, filenames):
     """
        Attempts to remove each filename from
@@ -16,6 +19,8 @@ def _cleanup_files(dirname, filenames):
         except OSError:
             pass
 
+#==============================================================================
+
 class QLresTest(stresstesting.MantidStressTest):
 
     def skipTests(self):
@@ -53,7 +58,8 @@ class QLresTest(stresstesting.MantidStressTest):
                      'irs26176_graphite002_QLr_Parameters.nxs']
         _cleanup_files(config['defaultsave.directory'], filenames)
 
-#========================================================================
+#==============================================================================
+
 class ResNormTest(stresstesting.MantidStressTest):
 
     def skipTests(self):
@@ -86,7 +92,8 @@ class ResNormTest(stresstesting.MantidStressTest):
         filenames = ['irs26173_graphite002_resnrm.lpt']
         _cleanup_files(config['defaultsave.directory'], filenames)
 
-#=========================================================================
+#==============================================================================
+
 class QuestTest(stresstesting.MantidStressTest):
 
     def skipTests(self):
@@ -122,7 +129,8 @@ class QuestTest(stresstesting.MantidStressTest):
                      'irs26176_graphite002_Qsb.ql1']
         _cleanup_files(config['defaultsave.directory'], filenames)
 
-#=============================================================================
+#==============================================================================
+
 class QSeTest(stresstesting.MantidStressTest):
 
     def skipTests(self):
@@ -159,7 +167,8 @@ class QSeTest(stresstesting.MantidStressTest):
                      'irs26176_graphite002_Qse.lpt']
         _cleanup_files(config['defaultsave.directory'], filenames)
 
-#=============================================================================
+#==============================================================================
+
 class QLDataTest(stresstesting.MantidStressTest):
 
     def skipTests(self):
@@ -197,7 +206,8 @@ class QLDataTest(stresstesting.MantidStressTest):
                      'irs26176_graphite002_QLd_Parameters.nxs']
         _cleanup_files(config['defaultsave.directory'], filenames)
 
-#=============================================================================
+#==============================================================================
+
 class QLResNormTest(stresstesting.MantidStressTest):
 
     def skipTests(self):
@@ -238,7 +248,8 @@ class QLResNormTest(stresstesting.MantidStressTest):
                      'irs26176_graphite002_QLd_Parameters.nxs']
         _cleanup_files(config['defaultsave.directory'], filenames)
 
-#=============================================================================
+#==============================================================================
+
 class QLWidthTest(stresstesting.MantidStressTest):
 
     def skipTests(self):
@@ -277,113 +288,103 @@ class QLWidthTest(stresstesting.MantidStressTest):
                      'irs26176_graphite002_QLd_Parameters.nxs']
         _cleanup_files(config['defaultsave.directory'], filenames)
 
-#=============================================================================
+#==============================================================================
+
+class JumpFitFunctionTestBase(stresstesting.MantidStressTest):
 
-class JumpCETest(stresstesting.MantidStressTest):
+    __metaclass__ = ABCMeta
+
+    def __init__(self):
+        stresstesting.MantidStressTest.__init__(self)
+
+        self._sample_name = 'irs26176_graphite002_QLr_Workspace'
+        self._q_range = [0.6, 1.705600]
+        self._width_index = 2
+
+        self._function = ''
+
+    @abstractmethod
+    def get_reference_files(self):
+        '''Returns the name of the reference files to compare against.'''
+        raise NotImplementedError("Implmenent get_reference_files to return "
+                                  "the names of the files to compare against.")
 
     def runTest(self):
-        sname = 'irs26176_graphite002_QLr_Workspace'
-        qrange = [0.6, 1.705600]
-        plotOp = False
-        saveOp = False
+        # Load file
+        filename = self._sample_name + '.nxs'
+        LoadNexusProcessed(Filename=filename,
+                           OutputWorkspace=self._sample_name)
 
-        filename = sname + '.nxs'  # path name for nxs file
-        LoadNexusProcessed(Filename=filename, OutputWorkspace=sname)
+        # Extract the width spectrum
+        ExtractSingleSpectrum(InputWorkspace=self._sample_name,
+                              OutputWorkspace=self._sample_name,
+                              WorkspaceIndex=self._width_index)
 
         # Data must be in HWHM
-        Scale(InputWorkspace=sname, Factor=0.5, OutputWorkspace=sname)
+        Scale(InputWorkspace=self._sample_name,
+              OutputWorkspace=self._sample_name,
+              Factor=0.5)
 
-        JumpFit(InputWorkspace=sname,
-                Function='ChudleyElliot',
-                Width=2,
-                QMin=qrange[0],
-                QMax=qrange[1],
-                Plot=plotOp,
-                Save=saveOp)
+        Fit(InputWorkspace=self._sample_name,
+            Function=self._function,
+            StartX=self._q_range[0],
+            EndX=self._q_range[1],
+            CreateOutput=True,
+            Output=self._sample_name)
 
     def validate(self):
-        self.tolerance = 1e-5
-        return 'irs26176_graphite002_QLr_ChudleyElliot_fit_Workspace','ISISIndirectBayes_JumpCETest.nxs'
+        return self._sample_name + '_Workspace', self.get_reference_files()
 
-#=============================================================================
-class JumpHallRossTest(stresstesting.MantidStressTest):
+#==============================================================================
 
-    def runTest(self):
-        sname = 'irs26176_graphite002_QLr_Workspace'
-        qrange = [0.6, 1.705600]
-        plotOp = False
-        saveOp = False
+class JumpCETest(JumpFitFunctionTestBase):
 
-        path = sname+'.nxs'  # path name for nxs file
-        LoadNexusProcessed(Filename=path, OutputWorkspace=sname)
+    def __init__(self):
+        JumpFitFunctionTestBase.__init__(self)
 
-        # Data must be in HWHM
-        Scale(InputWorkspace=sname, Factor=0.5, OutputWorkspace=sname)
+        self._function = 'name=ChudleyElliot,Tau=3.31,L=1.42'
+        self.tolerance = 5e-3
 
-        JumpFit(InputWorkspace=sname,
-                Function='HallRoss',
-                Width=2,
-                QMin=qrange[0],
-                QMax=qrange[1],
-                Plot=plotOp,
-                Save=saveOp)
+    def get_reference_files(self):
+        return 'ISISIndirectBayes_JumpCETest.nxs'
 
-    def validate(self):
-        self.tolerance = 1e-5
-        return 'irs26176_graphite002_QLr_HallRoss_fit_Workspace','ISISIndirectBayes_JumpHallRossTest.nxs'
+#==============================================================================
 
-#=============================================================================
-class JumpFickTest(stresstesting.MantidStressTest):
+class JumpHallRossTest(JumpFitFunctionTestBase):
 
-    def runTest(self):
-        sname = 'irs26176_graphite002_QLr_Workspace'
-        qrange = [0.6, 1.705600]
-        plotOp = False
-        saveOp = False
+    def __init__(self):
+        JumpFitFunctionTestBase.__init__(self)
 
-        path = sname+'.nxs'  # path name for nxs file
-        LoadNexusProcessed(Filename=path, OutputWorkspace=sname)
+        self._function = 'name=HallRoss,Tau=2.7,L=1.75'
+        self.tolerance = 1e-5
 
-        # Data must be in HWHM
-        Scale(InputWorkspace=sname, Factor=0.5, OutputWorkspace=sname)
+    def get_reference_files(self):
+        return 'ISISIndirectBayes_JumpHallRossTest.nxs'
 
-        JumpFit(InputWorkspace=sname,
-                Function='FickDiffusion',
-                Width=2,
-                QMin=qrange[0],
-                QMax=qrange[1],
-                Plot=plotOp,
-                Save=saveOp)
+#==============================================================================
 
-    def validate(self):
+class JumpFickTest(JumpFitFunctionTestBase):
+
+    def __init__(self):
+        JumpFitFunctionTestBase.__init__(self)
+
+        self._function = 'name=FickDiffusion,D=0.07'
         self.tolerance = 5e-4
-        return 'irs26176_graphite002_QLr_FickDiffusion_fit_Workspace','ISISIndirectBayes_JumpFickTest.nxs'
 
-#=============================================================================
-class JumpTeixeiraTest(stresstesting.MantidStressTest):
+    def get_reference_files(self):
+        return 'ISISIndirectBayes_JumpFickTest.nxs'
 
-    def runTest(self):
-        sname = 'irs26176_graphite002_QLr_Workspace'
-        qrange = [0.6, 1.705600]
-        plotOp = False
-        saveOp = False
+#==============================================================================
 
-        path = sname+'.nxs'  # path name for nxs file
-        LoadNexusProcessed(Filename=path, OutputWorkspace=sname)
+class JumpTeixeiraTest(JumpFitFunctionTestBase):
 
-        # Data must be in HWHM
-        Scale(InputWorkspace=sname, Factor=0.5, OutputWorkspace=sname)
+    def __init__(self):
+        JumpFitFunctionTestBase.__init__(self)
 
-        JumpFit(InputWorkspace=sname,
-                Function='TeixeiraWater',
-                Width=2,
-                QMin=qrange[0],
-                QMax=qrange[1],
-                Plot=plotOp,
-                Save=saveOp)
+        self._function = 'name=TeixeiraWater,Tau=1.6,L=0.4'
+        self.tolerance = 1e-3
 
-    def validate(self):
-        self.tolerance = 1e-2
-        return 'irs26176_graphite002_QLr_TeixeiraWater_fit_Workspace','ISISIndirectBayes_JumpTeixeiraTest.nxs'
+    def get_reference_files(self):
+        return 'ISISIndirectBayes_JumpTeixeiraTest.nxs'
 
-#=============================================================================
+#==============================================================================
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectInelastic.py b/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectInelastic.py
index 4631277ae9c731d038e34e15e3b234d8abbfcabe..945e708e3cd04474d58edd1355ad08b9f4aa7778 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectInelastic.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/ISISIndirectInelastic.py
@@ -10,7 +10,7 @@ from mantid.simpleapi import *
 from mantid.api import FileFinder
 
 # Import our workflows.
-from IndirectDataAnalysis import furyfitSeq, furyfitMult, confitSeq, abscorFeeder
+from IndirectDataAnalysis import furyfitSeq, furyfitMult, confitSeq
 
 '''
 - TOSCA only supported by "Reduction" (the Energy Transfer tab of C2E).
@@ -527,8 +527,7 @@ class ISISIndirectInelasticResolution(ISISIndirectInelasticBase):
                            Reflection=self.reflection,
                            DetectorRange=self.detector_range,
                            BackgroundRange=self.background,
-                           RebinParam=self.rebin_params,
-                           Plot=False)
+                           RebinParam=self.rebin_params)
 
         self.result_names = ['__IndirectResolution_Test']
 
@@ -606,9 +605,7 @@ class ISISIndirectInelasticDiagnostics(ISISIndirectInelasticBase):
                   OutputNameSuffix=self.suffix,
                   OutputWorkspace='__IndirectInelasticDiagnostics_out_group',
                   PeakRange=self.peak,
-                  SpectraRange=self.spectra,
-                  Plot=False,
-                  Save=False)
+                  SpectraRange=self.spectra)
 
         # Construct the result ws name.
         self.result_names = [os.path.splitext(self.rawfiles[0])[0] + self.suffix]
@@ -844,9 +841,7 @@ class ISISIndirectInelasticFuryAndFuryFit(ISISIndirectInelasticBase):
                                              EnergyMin=self.e_min,
                                              EnergyMax=self.e_max,
                                              BinReductionFactor=self.num_bins,
-                                             DryRun=False,
-                                             Save=False,
-                                             Plot=False)
+                                             DryRun=False)
 
         # Test FuryFit Sequential
         furyfitSeq_ws = furyfitSeq(fury_ws.getName(),
@@ -964,9 +959,7 @@ class ISISIndirectInelasticFuryAndFuryFitMulti(ISISIndirectInelasticBase):
                                              EnergyMin=self.e_min,
                                              EnergyMax=self.e_max,
                                              BinReductionFactor=self.num_bins,
-                                             DryRun=False,
-                                             Save=False,
-                                             Plot=False)
+                                             DryRun=False)
 
         # Test FuryFit Sequential
         furyfitSeq_ws = furyfitMult(fury_ws.getName(),
@@ -1163,126 +1156,6 @@ class IRISConvFit(ISISIndirectInelasticConvFit):
     def get_reference_files(self):
         return ['II.IRISConvFitSeq.nxs']
 
-#==============================================================================
-
-class ISISIndirectInelasticApplyCorrections(ISISIndirectInelasticBase):
-    '''A base class for the ISIS indirect inelastic Apply Corrections tests
-
-    The workflow is defined in the _run() method, simply
-    define an __init__ method and set the following properties
-    on the object
-    '''
-    # Mark as an abstract class
-    __metaclass__ = ABCMeta
-
-    def _run(self):
-        '''Defines the workflow for the test'''
-        self.tolerance = 1e-4
-
-        LoadNexus(self._sample_workspace + '.nxs', OutputWorkspace=self._sample_workspace)
-        if self._corrections_workspace != '':
-            LoadNexus(self._corrections_workspace + '.nxs', OutputWorkspace=self._corrections_workspace)
-        if self._can_workspace != '':
-            LoadNexus(self._can_workspace + '.nxs', OutputWorkspace=self._can_workspace)
-
-        output_workspaces = self._run_apply_corrections()
-        self.result_names = [output_workspaces['reduced_workspace']]
-
-    def _run_apply_corrections(self):
-        abscorFeeder(self._sample_workspace, self._can_workspace, self._can_geometry,
-                     self._using_corrections, self._corrections_workspace, **self._kwargs)
-        return self._get_output_workspace_names()
-
-    def _get_output_workspace_names(self):
-        """
-        abscorFeeder doesn't return anything, these names should exist in the ADS
-        apply corrections uses the following naming convention:
-        <instrument><sample number>_<analyser><reflection>_<mode>_<can number>
-        """
-
-        if self._can_workspace != '':
-            can_run = mtd[self._can_workspace].getRun()
-            can_run_number = can_run.getProperty('run_number').value
-
-        mode = ''
-        if self._corrections_workspace != '' and self._can_workspace != '':
-            mode = 'Correct_%s' % can_run_number
-        elif self._corrections_workspace != '':
-            mode = 'Corrected'
-        else:
-            mode = 'Subtract_%s' % can_run_number
-
-        workspace_name_stem = self._sample_workspace[:-3] + mode
-
-        output_workspaces = {
-            'reduced_workspace': workspace_name_stem + '_red',
-            'rqw_workspace': workspace_name_stem + '_rqw',
-        }
-
-        if self._can_workspace != '':
-            output_workspaces['result_workspace'] = workspace_name_stem + '_Result'
-
-        return output_workspaces
-
-    def _validate_properties(self):
-        '''Check the object properties are in an expected state to continue'''
-
-#------------------------- IRIS tests -----------------------------------------
-
-class IRISApplyCorrectionsWithCan(ISISIndirectInelasticApplyCorrections):
-    """ Test applying corrections with just a can workspace """
-
-    def __init__(self):
-        ISISIndirectInelasticApplyCorrections.__init__(self)
-
-        self._sample_workspace = 'irs26176_graphite002_red'
-        self._can_workspace = 'irs26173_graphite002_red'
-        self._corrections_workspace = ''
-        self._can_geometry = 'cyl'
-        self._using_corrections = False
-
-        self._kwargs = {'RebinCan':False, 'ScaleOrNotToScale':False,
-                        'factor':1, 'Save':False, 'PlotResult':'None', 'PlotContrib':False}
-
-    def get_reference_files(self):
-        return ['II.IRISApplyCorrectionsWithCan.nxs']
-
-class IRISApplyCorrectionsWithCorrectionsWS(ISISIndirectInelasticApplyCorrections):
-    """ Test applying corrections with a corrections workspace """
-
-    def __init__(self):
-        ISISIndirectInelasticApplyCorrections.__init__(self)
-
-        self._sample_workspace = 'irs26176_graphite002_red'
-        self._can_workspace = ''
-        self._corrections_workspace = 'irs26176_graphite002_cyl_Abs'
-        self._can_geometry = 'cyl'
-        self._using_corrections = True
-
-        self._kwargs = {'RebinCan':False, 'ScaleOrNotToScale':False,
-                        'factor':1, 'Save':False, 'PlotResult':'None', 'PlotContrib':False}
-
-    def get_reference_files(self):
-        return ['II.IRISApplyCorrectionsWithCorrectionsWS.nxs']
-
-class IRISApplyCorrectionsWithBoth(ISISIndirectInelasticApplyCorrections):
-    """ Test applying corrections with both a can and a corrections workspace """
-
-    def __init__(self):
-        ISISIndirectInelasticApplyCorrections.__init__(self)
-
-        self._sample_workspace = 'irs26176_graphite002_red'
-        self._can_workspace = 'irs26173_graphite002_red'
-        self._corrections_workspace = 'irs26176_graphite002_cyl_Abs'
-        self._can_geometry = 'cyl'
-        self._using_corrections = True
-
-        self._kwargs = {'RebinCan':False, 'ScaleOrNotToScale':False,
-                        'factor':1, 'Save':False, 'PlotResult':'None', 'PlotContrib':False}
-
-    def get_reference_files(self):
-        return ['II.IRISApplyCorrections.nxs']
-
 #==============================================================================
 # Transmission Monitor Test
 
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/IndirectEnergyConversionTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/IndirectEnergyConversionTest.py
deleted file mode 100644
index b683bf46ee8c927ee7ddf8c6df63380d9c88ca77..0000000000000000000000000000000000000000
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/IndirectEnergyConversionTest.py
+++ /dev/null
@@ -1,27 +0,0 @@
-#pylint: disable=no-init
-import stresstesting
-from mantid.simpleapi import *
-
-class IndirectEnergyConversionTest(stresstesting.MantidStressTest):
-
-    def runTest(self):
-        instrument = 'IRIS'
-        analyser = 'graphite'
-        reflection = '002'
-        detector_range = [3, 53]
-        files = 'irs21360.raw'
-        rebin_string = '-0.5,0.005,0.5'
-
-        ISISIndirectEnergyTransfer(InputFiles=files,
-                                   RebinString=rebin_string,
-                                   SpectraRange=detector_range,
-                                   Instrument=instrument,
-                                   Analyser=analyser,
-                                   Reflection=reflection,
-                                   OutputWorkspace='__IndirectEnergyConversionTest_out_group')
-
-
-    def validate(self):
-        self.disableChecking.append('Instrument')
-        self.disableChecking.append('SpectraMap')
-        return 'IRS21360_graphite002_red', 'IndirectEnergyConversionTest.nxs'
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/LoadLotsOfFiles.py b/Code/Mantid/Testing/SystemTests/tests/analysis/LoadLotsOfFiles.py
index 96cb9cd0c7a08112193f9db6326e0afd9ad57777..8c41a505b82b419d85f2001e1cf5d0fbd273bbd5 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/LoadLotsOfFiles.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/LoadLotsOfFiles.py
@@ -36,6 +36,10 @@ BANNED_FILES = ['992 Descriptions.txt',
                 'MaskSANS2DReductionGUI.txt',
                 'MaskSANS2DReductionGUI_MaskFiles.txt',
                 'MaskSANS2DReductionGUI_LimitEventsTime.txt',
+                'MASK_SANS2D_FRONT_Edges_16Mar2015.xml',
+                'MASK_SANS2D_REAR_Bottom_3_tubes_16May2014.xml',
+                'MASK_SANS2D_REAR_Edges_16Mar2015.xml',
+                'MASK_SANS2D_BOTH_Extras_24Mar2015.xml',
                 'MAP17269.raw', # Don't need to check multiple MAPS files
                 'MAP17589.raw',
                 'MER06399.raw', # Don't need to check multiple MERLIN files
@@ -57,6 +61,8 @@ BANNED_FILES = ['992 Descriptions.txt',
                 'WSH_test.dat',
                 'SANS2D_multiPeriodTests.csv',
                 'SANS2D_periodTests.csv',
+                'SANS2DTube_ZerroErrorFreeTest.txt',
+                'SANS2DTUBES_ZeroErrorFree_batch.csv',
                 'DIRECTM1_15785_12m_31Oct12_v12.dat',
                 'MaskSANS2DReductionGUI.txt',
                 'sans2d_reduction_gui_batch.csv'
@@ -69,7 +75,8 @@ BANNED_FILES = ['992 Descriptions.txt',
                 'poldi2013n006904.hdf',
                 'poldi2014n019874.hdf',
                 'poldi2014n019881.hdf',
-                'poldi2015n000977.hdf'
+                'poldi2015n000977.hdf',
+                'USER_SANS2D_143ZC_2p4_4m_M4_Knowles_12mm.txt'
                 ]
 
 EXPECTED_EXT = '.expected'
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/LoadVesuvioTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/LoadVesuvioTest.py
index 4b5923af8a7fbf625fd99aba4446c48d6eb79403..ebb5ca56717df97506cac55b4cb4bad7f1f94e6b 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/LoadVesuvioTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/LoadVesuvioTest.py
@@ -102,8 +102,18 @@ class VesuvioTests(unittest.TestCase):
         self.assertAlmostEqual(37594.0, evs_raw.readY(0)[1], places=DIFF_PLACES)
         self.assertAlmostEqual(193.89172236070317, evs_raw.readE(0)[1], places=DIFF_PLACES)
 
-    def test_using_ip_file_adjusts_instrument_and_attaches_parameters(self):
-        self._run_load("14188", "3", "SingleDifference","IP0005.dat")
+    def test_using_ip_file_adjusts_instrument_and_attaches_parameters_difference_mode(self):
+        self._run_load("14188", "3", "SingleDifference", "IP0005.dat")
+
+        # Check some data
+        evs_raw = mtd[self.ws_name]
+        det0 = evs_raw.getDetector(0)
+        param = det0.getNumberParameter("t0")
+        self.assertEqual(1, len(param))
+        self.assertAlmostEqual(-0.4157, param[0],places=4)
+
+    def test_using_ip_file_adjusts_instrument_and_attaches_parameters_foil_mode(self):
+        self._run_load("14188", "3", "FoilOut", "IP0005.dat")
 
         # Check some data
         evs_raw = mtd[self.ws_name]
@@ -221,7 +231,7 @@ class VesuvioTests(unittest.TestCase):
 
     def _do_ads_check(self, name):
         self.assertTrue(name in mtd)
-        self.assertTrue(type(mtd[name]) == MatrixWorkspace)
+        self.assertTrue(isinstance(mtd[name], MatrixWorkspace))
 
     def _do_size_check(self,name, expected_nhist):
         loaded_data = mtd[name]
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDICreatePeaksFromCellTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDICreatePeaksFromCellTest.py
index 47a171220fd5b127cec0ee38522096f5d1e744a7..b74ba222a4a944f8bd9b158ed297a777ee456a8e 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDICreatePeaksFromCellTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDICreatePeaksFromCellTest.py
@@ -20,16 +20,31 @@ class ReflectionCheckingTest(stresstesting.MantidStressTest):
     def runTest(self):
         pass
 
+    def getPeakIndex(self, peakTable, hkl):
+        hklString = ' '.join([str(x) for x in hkl])
+
+        for i in range(peakTable.rowCount()):
+            r = peakTable.row(i)
+
+            if r['HKL'] == hklString:
+                return i
+
+        return -1
+
     def checkReflections(self, peakTable, data, structureFactorPrecision = 1e-5):
-        for idx in data.keys():
+        for reference in data:
+            idx = self.getPeakIndex(peakTable, reference[0])
+
+            # Make sure the reflection exists.
+            self.assertTrue(idx != -1)
+
             currentPeak = peakTable.row(idx)
-            reference = data[idx]
 
             self.assertEquals([int(x) for x in currentPeak['HKL'].split()], reference[0])
             self.assertDelta(float(currentPeak['d']), reference[1], 1e-4)
 
             fSquaredReference = reference[2] ** 2 * reference[3]
-            print fSquaredReference, float(currentPeak['Intensity'])
+            print reference[0], fSquaredReference, float(currentPeak['Intensity'])
             self.assertDelta(float(currentPeak['Intensity']) / fSquaredReference, 1.0, structureFactorPrecision)
 
 
@@ -37,13 +52,13 @@ class POLDICreatePeaksFromCellTestSiO2(ReflectionCheckingTest):
     """Structure factor check for:
             SiO2, 10.1107/S0108768105005240"""
 
-    data = {
-        0: ([1, 0, 0], 4.25588, 8.27544, 6),
-        1: ([1, 0, -1], 3.34393, 22.1494, 6),
-        14: ([0, 0, 3], 1.80193, 8.70574, 2),
-        40: ([2, 2, 0], 1.22857, 14.4884, 3),
-        117: ([4, -1, 4], 0.88902, 9.14321, 6)
-    }
+    data = [
+        ([1, 0, 0], 4.25588, 8.27544, 6),
+        ([1, 0, -1], 3.34393, 22.1494, 6),
+        ([0, 0, 3], 1.80193, 8.70574, 2),
+        ([2, 2, 0], 1.22857, 14.4884, 3),
+        ([4, -1, 4], 0.88902, 9.14321, 6)
+    ]
 
     def runTest(self):
         peaks_SiO2 = PoldiCreatePeaksFromCell(
@@ -51,8 +66,6 @@ class POLDICreatePeaksFromCellTestSiO2(ReflectionCheckingTest):
             Atoms="Si 0.4723 0.0 2/3 1.0 0.0075; O 0.416 0.2658 0.7881 1.0 0.0175",
             a=4.91427, c=5.4058, LatticeSpacingMin=0.885)
 
-        peaks_SiO2 = SortTableWorkspace(InputWorkspace="peaks_SiO2", Columns=["d"], Ascending=[False])
-
         self.assertEquals(peaks_SiO2.rowCount(), 118)
 
         self.checkReflections(peaks_SiO2, self.data)
@@ -62,12 +75,12 @@ class POLDICreatePeaksFromCellTestAl2O3(ReflectionCheckingTest):
     """Structure factor check for:
             Al2O3, 10.1107/S0021889890002382"""
 
-    data = {
-        0: ([1, 0, -2], 3.481144, 21.873, 6),
-        1: ([1, 0, 4], 2.551773, 23.6714, 6),
-        3: ([0, 0, 6], 2.165933, 68.8749, 2),
-        43: ([5, -2, -5], 0.88880, 23.6113, 12)
-    }
+    data = [
+        ([1, 0, -2], 3.481144, 21.873, 6),
+        ([1, 0, 4], 2.551773, 23.6714, 6),
+        ([0, 0, 6], 2.165933, 68.8749, 2),
+        ([5, -2, -5], 0.88880, 23.6113, 12)
+    ]
 
 
     def runTest(self):
@@ -76,8 +89,6 @@ class POLDICreatePeaksFromCellTestAl2O3(ReflectionCheckingTest):
             Atoms="Al 0 0 0.35216 1.0 0.009; O 0.30668 0 1/4 1.0 0.0125",
             a=4.7605, c=12.9956, LatticeSpacingMin=0.885)
 
-        peaks_Al2O3 = SortTableWorkspace(InputWorkspace="peaks_Al2O3", Columns=["d"], Ascending=[False])
-
         self.assertEquals(peaks_Al2O3.rowCount(), 44)
 
         self.checkReflections(peaks_Al2O3, self.data)
@@ -88,12 +99,12 @@ class POLDICreatePeaksFromCellTestFeTiO3(ReflectionCheckingTest):
 
         Note: Ti replaced by Zr"""
 
-    data = {
-        0: ([0, 0, 3], 4.6970, 2.0748, 2),
-        1: ([1, 0, 1], 4.20559, 1.60512, 6),
-        3: ([1, 0, 4], 2.75153, 76.1855, 6),
-        107: ([5, -4, 6], 0.88986, 100.244, 6)
-    }
+    data = [
+        ([0, 0, 3], 4.6970, 2.0748, 2),
+        ([1, 0, 1], 4.20559, 1.60512, 6),
+        ([1, 0, 4], 2.75153, 76.1855, 6),
+        ([5, -4, 6], 0.88986, 100.244, 6)
+    ]
 
 
     def runTest(self):
@@ -102,8 +113,6 @@ class POLDICreatePeaksFromCellTestFeTiO3(ReflectionCheckingTest):
             Atoms="Fe 0 0 0.35543 1.0 0.005; Zr 0 0 0.14643 1.0 0.004; O 0.31717 0.02351 0.24498 1.0 0.006",
             a=5.0881, c=14.091, LatticeSpacingMin=0.885)
 
-        peaks_FeTiO3 = SortTableWorkspace(InputWorkspace="peaks_FeTiO3", Columns=["d", "HKL"], Ascending=[False, True])
-
         self.assertEquals(peaks_FeTiO3.rowCount(), 108)
 
         self.checkReflections(peaks_FeTiO3, self.data, 6e-5)
@@ -114,12 +123,12 @@ class POLDICreatePeaksFromCellTestCO(ReflectionCheckingTest):
 
         Notes: Non-centrosymmetric, cubic, negative coordinates"""
 
-    data = {
-        0: ([1, 1, 0], 3.98101, 1.93291, 12),
-        1: ([1, 1, -1], 3.25048, 40.6203, 4),
-        3: ([2, 0, 0], 2.815, 37.248, 6),
-        90: ([6, 2, 0], 0.89018, 9.45489, 12)
-    }
+    data = [
+        ([1, 1, 0], 3.98101, 1.93291, 12),
+        ([1, 1, -1], 3.25048, 40.6203, 4),
+        ([2, 0, 0], 2.815, 37.248, 6),
+        ([6, 2, 0], 0.89018, 9.45489, 12)
+    ]
 
 
     def runTest(self):
@@ -128,8 +137,6 @@ class POLDICreatePeaksFromCellTestCO(ReflectionCheckingTest):
             Atoms="C -0.042 -0.042 -0.042 1.0 0.0125; O 0.067 0.067 0.067 1.0 0.0125",
             a=5.63, LatticeSpacingMin=0.885)
 
-        peaks_CO = SortTableWorkspace(InputWorkspace="peaks_CO", Columns=["d"], Ascending=[False])
-
         self.assertEquals(peaks_CO.rowCount(), 91)
 
         self.checkReflections(peaks_CO, self.data, 1e-5)
@@ -140,12 +147,12 @@ class POLDICreatePeaksFromCellTestBetaQuartz(ReflectionCheckingTest):
 
         Notes: Non-centrosymmetric, hexagonal, with coordinate 1/6"""
 
-    data = {
-        0: ([1, 0, 0], 4.32710, 7.74737, 6),
-        1: ([1, 0, 1], 3.38996, 19.7652, 12),
-        3: ([1, 0, 2], 2.30725, 2.96401, 12),
-        64: ([1, 0, 6], 0.88968, 3.15179, 12)
-    }
+    data = [
+        ([1, 0, 0], 4.32710, 7.74737, 6),
+        ([1, 0, 1], 3.38996, 19.7652, 12),
+        ([1, 0, 2], 2.30725, 2.96401, 12),
+        ([1, 0, 6], 0.88968, 3.15179, 12)
+    ]
 
 
     def runTest(self):
@@ -154,8 +161,6 @@ class POLDICreatePeaksFromCellTestBetaQuartz(ReflectionCheckingTest):
             Atoms="Si 1/2 0 0 1.0 0.025; O 0.41570 0.20785 1/6 1.0 0.058",
             a=4.9965, c=5.4546, LatticeSpacingMin=0.885)
 
-        peaks_betaSiO2 = SortTableWorkspace(InputWorkspace="peaks_betaSiO2", Columns=["d"], Ascending=[False])
-
         self.assertEquals(peaks_betaSiO2.rowCount(), 65)
 
         self.checkReflections(peaks_betaSiO2, self.data, 1e-5)
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIDataAnalysisTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIDataAnalysisTest.py
index 1221efbb6ce527d23c2e88dd36a3d6ed184e022b..358df99882e5a728f6a7e3cc483ae3faa9480b4e 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIDataAnalysisTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIDataAnalysisTest.py
@@ -1,4 +1,4 @@
-# pylint: disable=no-init,invalid-name,too-many-locals
+# pylint: disable=no-init,invalid-name,too-many-locals,too-few-public-methods
 import stresstesting
 from mantid.simpleapi import *
 from mantid.api import *
@@ -29,7 +29,7 @@ class POLDIDataAnalysisTestSi(stresstesting.MantidStressTest):
 
 
 class POLDIDataAnalysisTestSiIndividual(POLDIDataAnalysisTestSi):
-    """This test runs PoldiDataAnalysis with Si data, using."""
+    """This test runs PoldiDataAnalysis with Si data, using individual peaks."""
 
     def runTest(self):
         data, expectedPeaks = self.prepareTest()
@@ -63,17 +63,88 @@ class POLDIDataAnalysisTestSiIndividual(POLDIDataAnalysisTestSi):
         # Maximum residual should not be too large
         self.assertLessThan(maxResidual / maxSum, 0.075)
 
-class POLDIDataAnalysisTestSiPawley(POLDIDataAnalysisTestSi):
-    """This test runs PoldiDataAnalysis with Si data, using."""
 
+class POLDIDataAnalysisTestSiIndividualDiscardUnindexed(POLDIDataAnalysisTestSi):
     def runTest(self):
         data, expectedPeaks = self.prepareTest()
+        DeleteTableRows(expectedPeaks, '8-20')
 
-        PoldiDataAnalysis(InputWorkspace=data,
+        output_remove = PoldiDataAnalysis(InputWorkspace=data,
+                                          MaximumPeakNumber=11,
+                                          ExpectedPeaks=expectedPeaks,
+                                          RemoveUnindexedPeaksFor2DFit=True,
+                                          PlotResult=False)
+
+        # Make sure that it's a workspace group
+        self.assertTrue(isinstance(output_remove, WorkspaceGroup))
+
+        # check that only one set of peaks has been refined
+        refinedPeaks = AnalysisDataService.retrieve('poldi_data_6904_peaks_refined_2d')
+        self.assertEquals(refinedPeaks.rowCount(), 8)
+
+        # Run again with option to keep unindexed peaks.
+        output_keep = PoldiDataAnalysis(InputWorkspace=data,
+                                        MaximumPeakNumber=11,
+                                        ExpectedPeaks=expectedPeaks,
+                                        RemoveUnindexedPeaksFor2DFit=False,
+                                        PlotResult=False)
+
+        # Make sure that it's a workspace group
+        self.assertTrue(isinstance(output_keep, WorkspaceGroup))
+
+        # check that the output peaks are again a workspace group (Si and unindexed)
+        refinedPeaks = AnalysisDataService.retrieve('poldi_data_6904_peaks_refined_2d')
+        self.assertTrue(isinstance(refinedPeaks, WorkspaceGroup))
+
+
+class POLDIDataAnalysisTestSiIndividualPseudoVoigtTied(POLDIDataAnalysisTestSi):
+    """This test runs PoldiDataAnalysis with Si data, using PseudoVoigt with tied mixing parameter."""
+
+    def runTest(self):
+        data, expectedPeaks = self.prepareTest()
+
+        output = PoldiDataAnalysis(InputWorkspace=data,
                                    MaximumPeakNumber=11,
+                                   ProfileFunction="PseudoVoigt",
+                                   TieProfileParameters=True,
                                    ExpectedPeaks=expectedPeaks,
-                                   PawleyFit=True,
-                                   PlotResult=False, OutputWorkspace='output')
+                                   PlotResult=False,
+                                   OutputRawFitParameters=True)
+
+        # Make sure that it's a workspace group
+        self.assertTrue(isinstance(output, WorkspaceGroup))
+
+        # check the refined peaks.
+        refinedPeaks = AnalysisDataService.retrieve('poldi_data_6904_peaks_refined_2d')
+        self.assertEquals(refinedPeaks.rowCount(), 11)
+
+        # check that raw parameters exist
+        self.assertTrue(AnalysisDataService.doesExist('poldi_data_6904_raw_fit_parameters'))
+
+        # check that all parameters that have "Mixing" in the name are the same
+        rawFitParameters = AnalysisDataService.retrieve('poldi_data_6904_raw_fit_parameters')
+
+        mixingValues = set()
+        for i in range(rawFitParameters.rowCount()):
+            parameterName = rawFitParameters.cell(i, 0)
+
+            if "Mixing" in parameterName:
+                mixingValues.add(rawFitParameters.cell(i, 1))
+
+        self.assertEquals(len(mixingValues), 1)
+
+
+class POLDIDataAnalysisTestSiPawley(POLDIDataAnalysisTestSi):
+    """This test runs PoldiDataAnalysis with Si data, using the PawleyFit-option."""
+
+    def runTest(self):
+        data, expectedPeaks = self.prepareTest()
+
+        PoldiDataAnalysis(InputWorkspace=data,
+                          MaximumPeakNumber=11,
+                          ExpectedPeaks=expectedPeaks,
+                          PawleyFit=True,
+                          PlotResult=False, OutputWorkspace='output')
 
         # inspect the cell
         cell = AnalysisDataService.retrieve('poldi_data_6904_cell_refined')
@@ -86,3 +157,23 @@ class POLDIDataAnalysisTestSiPawley(POLDIDataAnalysisTestSi):
 
         self.assertLessThan(np.abs(a_err), 5.0e-5)
         self.assertLessThan(np.abs(a_val - 5.4311946) / a_err, 1.5)
+
+
+class POLDIDataAnalysisEmptyFile(stresstesting.MantidStressTest):
+    """This test runs PoldiDataAnalysis with Si data, using an empty workspace."""
+
+    def runTest(self):
+        empty = PoldiLoadRuns(2015, 977)
+
+        peaks = PoldiCreatePeaksFromCell(SpaceGroup='F d -3 m',
+                                         a=5.431, LatticeSpacingMin=0.7,
+                                         Atoms='Si 0 0 0 1.0 0.01',
+                                         OutputWorkspace='Si')
+        try:
+            PoldiDataAnalysis(InputWorkspace=empty.getItem(0),
+                              MaximumPeakNumber=11,
+                              ExpectedPeaks=peaks,
+                              PlotResult=False, OutputWorkspace='output')
+        except RuntimeError as error:
+            self.assertTrue("Aborting analysis since workspace empty_data_977 does not contain any counts." in str(
+                error))
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIFitPeaks1DTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIFitPeaks1DTest.py
index 96b8af489d3b89172b45ae3de4a6be3737a3bd00..c9fa0b4737bd054fabd87efd831cb13e26097d7f 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIFitPeaks1DTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIFitPeaks1DTest.py
@@ -64,19 +64,20 @@ class POLDIFitPeaks1DTest(stresstesting.MantidStressTest):
             referencePeaks = mtd["%s_reference_1DFit" % (dataFile)]
             self.assertEqual(calculatedPeaks.rowCount(), referencePeaks.rowCount())
 
-            positions = calculatedPeaks.column(2)
+            positions = calculatedPeaks.column(3)
+            positionErrors = calculatedPeaks.column(4)
             referencePositions = [float(x) for x in referencePeaks.column(0)]
 
-            fwhms = calculatedPeaks.column(4)
+            fwhms = calculatedPeaks.column(7)
+            fwhmErrors = calculatedPeaks.column(8)
             referenceFwhms = [float(x) for x in referencePeaks.column(1)]
 
             for i in range(10):
           # extract position and fwhm with uncertainties
-                positionparts = positions[i].split()
-                position = [float(positionparts[0]), float(positionparts[2])]
+                position = [positions[i], positionErrors[i]]
+                fwhm = [fwhms[i], fwhmErrors[i]]
 
-                fwhmparts = fwhms[i].split()
-                fwhm = [float(fwhmparts[0]), float(fwhmparts[2])]
+                print position, fwhm, referencePositions
 
                 self.assertTrue(self.positionAcceptable(position))
                 self.assertTrue(self.fwhmAcceptable(fwhm))
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIFitPeaks2DTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIFitPeaks2DTest.py
index 6e796ef58e5862d7ba9361b5b593fa09ac437204..a2fbd7fa4c8aee3f32d8bd13667b89b231b63873 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIFitPeaks2DTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIFitPeaks2DTest.py
@@ -1,8 +1,9 @@
-#pylint: disable=no-init,invalid-name,too-many-locals
+# pylint: disable=no-init,invalid-name,too-many-locals,too-few-public-methods
 import stresstesting
 from mantid.simpleapi import *
 import numpy as np
 
+
 class POLDIFitPeaks2DTest(stresstesting.MantidStressTest):
     """The system test currently checks that the calculation of 2D spectra
     works correctly."""
@@ -18,7 +19,7 @@ class POLDIFitPeaks2DTest(stresstesting.MantidStressTest):
 
     def loadAndPrepareData(self, filenames):
         for dataFile in filenames:
-            LoadSINQFile(Instrument='POLDI',Filename=dataFile + ".hdf",OutputWorkspace=dataFile)
+            LoadSINQFile(Instrument='POLDI', Filename=dataFile + ".hdf", OutputWorkspace=dataFile)
             LoadInstrument(Workspace=dataFile, InstrumentName="POLDI", RewriteSpectraMap=True)
             PoldiTruncateData(InputWorkspace=dataFile, OutputWorkspace=dataFile)
 
@@ -28,19 +29,21 @@ class POLDIFitPeaks2DTest(stresstesting.MantidStressTest):
 
     def loadReferenceSpectrum(self, filenames):
         for dataFile in filenames:
-            Load(Filename="%s_2d_reference_Spectrum.nxs" % (dataFile), OutputWorkspace="%s_2d_reference_Spectrum" % (dataFile))
+            Load(Filename="%s_2d_reference_Spectrum.nxs" % (dataFile),
+                 OutputWorkspace="%s_2d_reference_Spectrum" % (dataFile))
             LoadInstrument(Workspace="%s_2d_reference_Spectrum" % (dataFile), InstrumentName="POLDI")
-            Load(Filename="%s_1d_reference_Spectrum.nxs" % (dataFile), OutputWorkspace="%s_1d_reference_Spectrum" % (dataFile))
+            Load(Filename="%s_1d_reference_Spectrum.nxs" % (dataFile),
+                 OutputWorkspace="%s_1d_reference_Spectrum" % (dataFile))
 
     def runCalculateSpectrum2D(self, filenames):
         for dataFile in filenames:
             PoldiFitPeaks2D(InputWorkspace="%s_2d_reference_Spectrum" % (dataFile),
-                               PoldiPeakWorkspace="%s_reference_Peaks" % (dataFile),
-                               FitConstantBackground=False, FitLinearBackground=False,
-                               RefinedPoldiPeakWorkspace="%s_refined_Peaks" % (dataFile),
-                               OutputWorkspace="%s_2d_calculated_Spectrum" % (dataFile),
-                               Calculated1DSpectrum="%s_1d_calculated_Spectrum" % (dataFile),
-                               MaximumIterations=100)
+                            PoldiPeakWorkspace="%s_reference_Peaks" % (dataFile),
+                            FitConstantBackground=False, FitLinearBackground=False,
+                            RefinedPoldiPeakWorkspace="%s_refined_Peaks" % (dataFile),
+                            OutputWorkspace="%s_2d_calculated_Spectrum" % (dataFile),
+                            Calculated1DSpectrum="%s_1d_calculated_Spectrum" % (dataFile),
+                            MaximumIterations=100)
 
     def analyseResults(self, filenames):
         for dataFile in filenames:
@@ -54,17 +57,18 @@ class POLDIFitPeaks2DTest(stresstesting.MantidStressTest):
 
             columns = ["d", "Intensity"]
 
+            print fittedPeaks.rowCount(), referencePeaks.rowCount()
+
             for i in range(referencePeaks.rowCount()):
                 referenceRow = referencePeaks.row(i)
                 fittedRow = fittedPeaks.row(i)
                 for c in columns:
-                    fittedStr = fittedRow[c].split()
-                    value, error = (float(fittedStr[0]), float(fittedStr[-1]))
+                    value = fittedRow[c]
+                    error = fittedRow['delta ' + c]
                     reference = float(referenceRow[c])
 
                     self.assertLessThan(np.fabs(value - reference), error)
 
-
             spectra1D = ["%s_1d_%s_Spectrum"]
 
             for wsName in spectra1D:
@@ -83,8 +87,8 @@ class POLDIFitPeaks2DTest(stresstesting.MantidStressTest):
                 self.assertTrue(np.all(xDataCalc == xDataRef))
                 self.assertLessThan(maxDifference, 0.07)
 
-class POLDIFitPeaks2DPawleyTest(stresstesting.MantidStressTest):
 
+class POLDIFitPeaks2DPawleyTest(stresstesting.MantidStressTest):
     def runTest(self):
         si = PoldiLoadRuns(2013, 6903, 6904, 2)
         corr = PoldiAutoCorrelation('si_data_6904')
@@ -106,5 +110,50 @@ class POLDIFitPeaks2DPawleyTest(stresstesting.MantidStressTest):
         cell_a_err = cell.cell(0, 2)
 
         self.assertLessThan(np.abs(cell_a_err), 5.0e-5)
-        self.assertLessThan(np.abs(cell_a - 5.4311946) / cell_a_err, 1.5)
+        self.assertLessThan(np.abs(cell_a - 5.4311946) / cell_a_err, 2.0)
+
+        DeleteWorkspace(si_refs)
+        DeleteWorkspace(indexed)
+        DeleteWorkspace(peaks)
+        DeleteWorkspace(si)
+        DeleteWorkspace(fit2d)
+        DeleteWorkspace(fit1d)
+        DeleteWorkspace(fit_plots)
+        DeleteWorkspace(peaks_ref_2d)
+
+
+class POLDIFitPeaks2DIntegratedIntensities(stresstesting.MantidStressTest):
+    def runTest(self):
+        si = PoldiLoadRuns(2013, 6903, 6904, 2)
+        corr = PoldiAutoCorrelation('si_data_6904')
+        peaks = PoldiPeakSearch(corr, MaximumPeakNumber=8)
+        peaks_ref, fit_plots = PoldiFitPeaks1D(corr, PoldiPeakTable='peaks')
+
+        # Run the same analysis twice, once with integrated and once with maximum intensities
+        # Since a Gaussian is used, the integration can be checked numerically.
+        fit2d, fit1d, peaks_ref_2d = PoldiFitPeaks2D('si_data_6904', peaks_ref,
+                                                           OutputIntegratedIntensities=False,
+                                                           MaximumIterations=100)
+
+        fit2d, fit1d, peaks_ref_2d_integrated = PoldiFitPeaks2D('si_data_6904', peaks_ref,
+                                                                      OutputIntegratedIntensities=True,
+                                                                      MaximumIterations=100)
+
+        self.assertEquals(peaks_ref_2d.rowCount(), peaks_ref_2d_integrated.rowCount())
+
+        for i in range(peaks_ref_2d.rowCount()):
+            rowHeight = peaks_ref_2d.row(i)
+
+            sigmaGaussian = (rowHeight['FWHM (rel.)'] * rowHeight['d']) / (2.0 * np.sqrt(2.0 * np.log(2.0)))
+            integratedGaussian = rowHeight['Intensity'] * np.sqrt(np.pi * 2.0) * sigmaGaussian
+
+            rowIntegrated = peaks_ref_2d_integrated.row(i)
+
+            # The numerical peak integration is done with a precision of 1e-10
+            self.assertDelta(integratedGaussian, rowIntegrated['Intensity'], 1e-10)
 
+        DeleteWorkspace(fit2d)
+        DeleteWorkspace(fit1d)
+        DeleteWorkspace(si)
+        DeleteWorkspace(peaks)
+        DeleteWorkspace(fit_plots)
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIPeakSearchTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIPeakSearchTest.py
index ec7495b1f3acdef9ff52455f7b961cb9993b14e3..018d25c6c112e64bfc587c75dcd09081e434a01f 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIPeakSearchTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/POLDIPeakSearchTest.py
@@ -32,7 +32,7 @@ class POLDIPeakSearchTest(stresstesting.MantidStressTest):
             referencePeaks = mtd["%s_reference_Peaks" % (dataFile)]
             self.assertEqual(calculatedPeaks.rowCount(), referencePeaks.rowCount())
 
-            positions = calculatedPeaks.column(2)
+            positions = calculatedPeaks.column(3)
             referencePositions = referencePeaks.column(0)
 
       # In this test we only compare positions, because the height
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DBatch.py b/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DBatch.py
index 5d5f14b5c7c18373c6bdf676652a7b233a73f2a6..7c6e4831fee14a2d5ebe545f1f34824fb42c9d3d 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DBatch.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DBatch.py
@@ -60,3 +60,46 @@ class SANS2DNewSettingsCarriedAcrossInBatchMode(stresstesting.MantidStressTest):
         self.tolerance_is_reller = True
         self.tolerance = 1.0e-2
         return "iteration_2", "SANS2DNewSettingsCarriedAcross.nxs"
+
+class SANS2DTUBESBatchWithZeroErrorCorrection(stresstesting.MantidStressTest):
+    """
+    We want to make sure that the BatchMode can remove zero error values
+    and replace them with a large default value.
+    """
+    def runTest(self):
+        config['default.instrument'] = 'SANS2D'
+        SANS2DTUBES()
+        Set1D()
+        Detector("rear-detector")
+        # This contains two MASKFILE commands, each resulting in a seperate call to MaskDetectors.
+        MaskFile('SANS2DTube_ZerroErrorFreeTest.txt')
+
+        # Saves a file which produces an output file which does not contain any zero errors
+        csv_file = FileFinder.getFullPath("SANS2DTUBES_ZeroErrorFree_batch.csv")
+        saveAlg ={"SaveNexus" : "nxs"}
+        BatchReduce(csv_file, 'nxs', saveAlgs = saveAlg, plotresults=False, save_as_zero_error_free=True)
+        DeleteWorkspace('zero_free_out')
+
+        # The zero correction only occurs for the saved files. Stephen King mentioned that the
+        # original workspaces should not be tampered with
+        self._final_output = os.path.join(config['defaultsave.directory'],'zero_free_out.nxs')
+        self._final_workspace = 'ws'
+        Load(Filename = self._final_output, OutputWorkspace=self._final_workspace)
+
+    def validate(self):
+        self.tolerance_is_reller = True
+        self.tolerance = 1.0e-2
+        self.disableChecking.append('SpectraMap')
+        self.disableChecking.append('Instrument')
+        self.disableChecking.append('Axes')
+        return self._final_workspace, "SANS2DTube_withZeroErrorCorrections.nxs"
+
+    def validateMethod(self):
+        return "WorkspaceToNexus"
+
+    def cleanup(self):
+        # Delete the stored file
+        os.remove(self._final_output)
+        # Delete the workspace
+        if self._final_workspace in mtd:
+            DeleteWorkspace(self._final_workspace)
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DReductionGUI.py b/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DReductionGUI.py
index 68501dde45e9ddbc08fa3d8fce3d9b808cc59fbc..c3e549da5f943c8e629e9c8a5f911dd22d752ec0 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DReductionGUI.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DReductionGUI.py
@@ -39,6 +39,8 @@ class SANS2DMinimalBatchReduction(stresstesting.MantidStressTest):
     def __init__(self):
         super(SANS2DMinimalBatchReduction, self).__init__()
         config['default.instrument'] = 'SANS2D'
+        self.tolerance_is_reller = True
+        self.tolerance = 1.0e-2
 
     def runTest(self):
         import SANSBatchMode as batch
@@ -47,8 +49,7 @@ class SANS2DMinimalBatchReduction(stresstesting.MantidStressTest):
         fit_settings = batch.BatchReduce(BATCHFILE,'.nxs', combineDet='rear')
 
     def validate(self):
-        self.tolerance_is_reller = True
-        self.tolerance = 1.0e-2
+
         return "trans_test_rear","SANSReductionGUI.nxs"
 
 
@@ -223,10 +224,16 @@ class SANS2DGUIReduction(SANS2DGUIBatchReduction):
         i.SetCentre('155.45','-169.6','front')
         SCATTER_SAMPLE, logvalues = i.AssignSample(r'SANS2D00022048.nxs', reload = True, period = 1)
 
+        dummy_1 = SCATTER_SAMPLE
+        dummy_2 = logvalues
+
         i.SetCentre('155.45','-169.6','rear')
         i.SetCentre('155.45','-169.6','front')
         SCATTER_SAMPLE, logvalues = i.AssignCan(r'SANS2D00022023.nxs', reload = True, period = 1)
 
+        dummy_3 = SCATTER_SAMPLE
+        dummy_4 = logvalues
+
         t1, t2 = i.TransmissionSample(r'SANS2D00022041.nxs', r'SANS2D00022024.nxs', period_t=1, period_d=1)
 
         t1, t2 = i.TransmissionCan(r'SANS2D00022024.nxs', r'SANS2D00022024.nxs', period_t=1, period_d=1)
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DReductionGUIAdded.py b/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DReductionGUIAdded.py
index 08329b9bda7c5b0c2dd1a005ab2f6bb9ba1a7f8c..74f70d0bac92914062f1b45de567ebd56089c1ba 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DReductionGUIAdded.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/SANS2DReductionGUIAdded.py
@@ -18,16 +18,22 @@ class SANS2DReductionGUIAddedFiles(sansgui.SANS2DGUIReduction):
 
         # add files (SAMPLE and CAN)
         import SANSadd2
-        SANSadd2.add_runs(('22048','22048'),'SANS2D', '.nxs', rawTypes=('.add','.raw','.s*'), lowMem=False)
-        SANSadd2.add_runs(('22023','22023'),'SANS2D', '.nxs', rawTypes=('.add','.raw','.s*'), lowMem=False)
+        SANSadd2.add_runs(('22048','22048'),'SANS2D', '.nxs',
+                          rawTypes=('.add','.raw','.s*'), lowMem=False)
+        SANSadd2.add_runs(('22023','22023'),'SANS2D', '.nxs',
+                          rawTypes=('.add','.raw','.s*'), lowMem=False)
 
         # load values:
         i.SetCentre('155.45','-169.6','rear')
         i.SetCentre('155.45','-169.6','front')
-        SCATTER_SAMPLE, logvalues = i.AssignSample(r'SANS2D00022048-add.nxs', reload = True, period = 1)
-        SCATTER_SAMPLE, logvalues = i.AssignCan(r'SANS2D00022023-add.nxs', reload = True, period = 1)
-        i.TransmissionSample(r'SANS2D00022041.nxs', r'SANS2D00022024.nxs', period_t=1, period_d=1)
-        i.TransmissionCan(r'SANS2D00022024.nxs', r'SANS2D00022024.nxs', period_t=1, period_d=1)
+        SCATTER_SAMPLE, logvalues = i.AssignSample(r'SANS2D00022048-add.nxs',
+                                                   reload = True, period = 1)
+        SCATTER_SAMPLE, logvalues = i.AssignCan(r'SANS2D00022023-add.nxs',
+                                                reload = True, period = 1)
+        i.TransmissionSample(r'SANS2D00022041.nxs', r'SANS2D00022024.nxs',
+                             period_t=1, period_d=1)
+        i.TransmissionCan(r'SANS2D00022024.nxs', r'SANS2D00022024.nxs',
+                          period_t=1, period_d=1)
 
         self.checkAfterLoad()
 
@@ -49,6 +55,137 @@ class SANS2DReductionGUIAddedFiles(sansgui.SANS2DGUIReduction):
         self.tolerance = 0.35
         return "trans_test_rear","SANSReductionGUI.nxs"
 
+class SANS2DAddedEventFilesWithOverlay(sansgui.SANS2DGUIReduction):
+    def runTest(self):
+
+        i.SANS2DTUBES()
+        i.MaskFile('USER_SANS2D_143ZC_2p4_4m_M4_Knowles_12mm.txt')
+        i.SetDetectorOffsets('REAR', -16.0, 58.0, 0.0, 0.0, 0.0, 0.0)
+        i.SetDetectorOffsets('FRONT', -44.0, -20.0, 47.0, 0.0, 1.0, 1.0)
+        i.Gravity(False)
+        i.Set1D()
+
+        # add files (SAMPLE and CAN)
+        import SANSadd2
+        SANSadd2.add_runs(('28827','28797'),'SANS2DTUBES', '.nxs',
+                          rawTypes=('.add','.raw','.s*'), lowMem=False,
+                          saveAsEvent=True, isOverlay = True)
+        SANSadd2.add_runs(('28823','28793'),'SANS2DTUBES', '.nxs',
+                          rawTypes=('.add','.raw','.s*'), lowMem=False,
+                          saveAsEvent=True, isOverlay = True)
+
+        i.AssignSample(r'SANS2D00028797-add.nxs', reload = True)
+        i.AssignCan(r'SANS2D00028793-add.nxs', reload = True)
+        i.TransmissionSample(r'SANS2D00028808.nxs', r'SANS2D00028784.nxs')
+        i.TransmissionCan(r'SANS2D00028823.nxs', r'SANS2D00028784.nxs')
+
+        i.WavRangeReduction()
+
+
+    def validate(self):
+        self.tolerance = 0.01
+        self.disableChecking.append('SpectraMap')
+        self.disableChecking.append('Axes')
+        self.disableChecking.append('Instrument')
+        return '28797rear_1D_1.75_16.5', 'SANS2DTUBES_AddedEventFilesWithOverlay.nxs'
+
+    def cleanup(self):
+        # Delete all workspaces
+        for ws in mtd.getObjectNames():
+            DeleteWorkspace(Workspace=ws)
+        # Delete the stored files
+        os.remove(os.path.join(config['defaultsave.directory'],'SANS2D00028793-add.nxs'))
+        os.remove(os.path.join(config['defaultsave.directory'],'SANS2D00028797-add.nxs'))
+
+
+class SANS2DAddedEventFilesWithOverlayAndTimeShift(sansgui.SANS2DGUIReduction):
+    def runTest(self):
+
+        i.SANS2DTUBES()
+        i.MaskFile('USER_SANS2D_143ZC_2p4_4m_M4_Knowles_12mm.txt')
+        i.SetDetectorOffsets('REAR', -16.0, 58.0, 0.0, 0.0, 0.0, 0.0)
+        i.SetDetectorOffsets('FRONT', -44.0, -20.0, 47.0, 0.0, 1.0, 1.0)
+        i.Gravity(False)
+        i.Set1D()
+
+        # add files (SAMPLE and CAN)
+        time_shifts=[1]
+        import SANSadd2
+        SANSadd2.add_runs(('28827','28797'),'SANS2DTUBES', '.nxs',
+                          rawTypes=('.add','.raw','.s*'), lowMem=False,
+                          saveAsEvent=True, isOverlay = True, time_shifts = time_shifts)
+        SANSadd2.add_runs(('28823','28793'),'SANS2DTUBES', '.nxs',
+                          rawTypes=('.add','.raw','.s*'), lowMem=False,
+                          saveAsEvent=True, isOverlay = True, time_shifts = time_shifts)
+
+        i.AssignSample(r'SANS2D00028797-add.nxs', reload = True)
+        i.AssignCan(r'SANS2D00028793-add.nxs', reload = True)
+        i.TransmissionSample(r'SANS2D00028808.nxs', r'SANS2D00028784.nxs')
+        i.TransmissionCan(r'SANS2D00028823.nxs', r'SANS2D00028784.nxs')
+
+        i.WavRangeReduction()
+
+    def validate(self):
+        # we have double the sample and the can, this means that the reduced data will be
+        # almost the same
+        self.tolerance = 0.01
+        self.disableChecking.append('SpectraMap')
+        self.disableChecking.append('Axes')
+        self.disableChecking.append('Instrument')
+        return '28797rear_1D_1.75_16.5', 'SANS2DTUBES_AddedEventFilesWithOverlayAndTimeShifts.nxs'
+
+    def cleanup(self):
+        # Delete all workspaces
+        for ws in mtd.getObjectNames():
+            DeleteWorkspace(Workspace=ws)
+        # Delete the stored files
+        os.remove(os.path.join(config['defaultsave.directory'],'SANS2D00028793-add.nxs'))
+        os.remove(os.path.join(config['defaultsave.directory'],'SANS2D00028797-add.nxs'))
+
+
+class SANS2DAddedEventFilesWithoutOverlay(sansgui.SANS2DGUIReduction):
+    def runTest(self):
+
+        i.SANS2DTUBES()
+        i.MaskFile('USER_SANS2D_143ZC_2p4_4m_M4_Knowles_12mm.txt')
+        i.SetDetectorOffsets('REAR', -16.0, 58.0, 0.0, 0.0, 0.0, 0.0)
+        i.SetDetectorOffsets('FRONT', -44.0, -20.0, 47.0, 0.0, 1.0, 1.0)
+        i.Gravity(False)
+        i.Set1D()
+
+        # add files (SAMPLE and CAN)
+        import SANSadd2
+        SANSadd2.add_runs(('28827','28797'),'SANS2DTUBES', '.nxs',
+                          rawTypes=('.add','.raw','.s*'), lowMem=False,
+                          saveAsEvent=True, isOverlay = False)
+        SANSadd2.add_runs(('28823','28793'),'SANS2DTUBES', '.nxs',
+                          rawTypes=('.add','.raw','.s*'), lowMem=False,
+                          saveAsEvent=True, isOverlay = False)
+
+        i.AssignSample(r'SANS2D00028797-add.nxs', reload = True)
+        i.AssignCan(r'SANS2D00028793-add.nxs', reload = True)
+        i.TransmissionSample(r'SANS2D00028808.nxs', r'SANS2D00028784.nxs')
+        i.TransmissionCan(r'SANS2D00028823.nxs', r'SANS2D00028784.nxs')
+
+        i.WavRangeReduction()
+
+
+    def validate(self):
+        # we have double the sample and the can, this means that the reduced data will be
+        # almost the same
+        self.tolerance = 0.01
+        self.disableChecking.append('SpectraMap')
+        self.disableChecking.append('Axes')
+        self.disableChecking.append('Instrument')
+        return '28797rear_1D_1.75_16.5', 'SANS2DTUBES_AddedEventFilesWithoutOverlay.nxs'
+
+    def cleanup(self):
+        # Delete all workspaces
+        for ws in mtd.getObjectNames():
+            DeleteWorkspace(Workspace=ws)
+        # Delete the stored files
+        os.remove(os.path.join(config['defaultsave.directory'],'SANS2D00028793-add.nxs'))
+        os.remove(os.path.join(config['defaultsave.directory'],'SANS2D00028797-add.nxs'))
 
 if __name__ == "__main__":
     test = SANS2DReductionGUIAddedFiles()
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/SpaceGroupFactoryTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/SpaceGroupFactoryTest.py
index b3a3cc068805ca2e5736b474b31dbaa8fd2d9a46..6aac43d5a79a5981661fc0539cf7ca88a0fa626b 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/SpaceGroupFactoryTest.py
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/SpaceGroupFactoryTest.py
@@ -21,6 +21,8 @@ class SpaceGroupFactoryTest(stresstesting.MantidStressTest):
     def checkSpaceGroup(self, symbol):
         group = SpaceGroupFactory.createSpaceGroup(symbol)
 
+        self.checkPointGroupOfSpaceGroup(group)
+
         self.assertTrue(group.isGroup(),
                         ("Space group " + str(group.getNumber()) + " (" + symbol + ") does not "
                         "fulfill group axioms"))
@@ -38,9 +40,22 @@ class SpaceGroupFactoryTest(stresstesting.MantidStressTest):
         self.assertTrue(groupOperations == referenceOperations,
                         "Problem in space group " + str(group.getNumber()) + " (" + symbol + ")")
 
+    def checkPointGroupOfSpaceGroup(self, spaceGroup):
+        # Get all space group operations, remove translations - resulting group is the point group
+        allOperations = spaceGroup.getSymmetryOperationStrings()
+        translationMatcher = re.compile(r"(\-|\+)(\d\/\d)")
+        onlyMatrices = Group(';'.join([translationMatcher.sub('', x) for x in allOperations]))
+
+        pointGroup = spaceGroup.getPointGroup()
+
+        self.assertFalse(
+            set(onlyMatrices.getSymmetryOperationStrings()).isdisjoint(pointGroup.getSymmetryOperationStrings()),
+            ("Point group of space group " + spaceGroup.getHMSymbol() + " does not match group obtained from"
+            " matrices of symmetry operations."))
+
     def loadReferenceData(self):
         from mantid.api import FileFinder
-        # Reference data.
+        # Reference data, generated using sginfo (http://cci.lbl.gov/sginfo/)
         # Dictionary has a string set for each space group number.
         separatorMatcher = re.compile(r"(\d+)")
 
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/SpaceGroupReflectionConditionsTest.py b/Code/Mantid/Testing/SystemTests/tests/analysis/SpaceGroupReflectionConditionsTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..1003b139ec020e87fb911cb79822ab7e08276ca6
--- /dev/null
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/SpaceGroupReflectionConditionsTest.py
@@ -0,0 +1,52 @@
+# pylint: disable=no-init,invalid-name
+import stresstesting
+from mantid.simpleapi import *
+from mantid.geometry import *
+
+
+class SpaceGroupReflectionConditionsTest(stresstesting.MantidStressTest):
+    '''
+    This test uses PoldiCreatePeaksFromCell to generate lists of reflections for fake crystal structures, one for each
+    registered space group and one atom in the general position. The algorithm uses structure factor calculation for
+    determining whether a reflection is present or not, so it also generates additional absences if atoms are on
+    special positions.
+
+    Since this is not the case in the examples, space group symmetry must account for all observed reflections, so they
+    must be allowed.
+    '''
+
+    def runTest(self):
+        sgTestDict = self.generateReflectionLists()
+
+        for sgName, hkls in sgTestDict.iteritems():
+            sg = SpaceGroupFactory.createSpaceGroup(sgName)
+
+            for hkl in hkls:
+                self.assertTrue(sg.isAllowedReflection(hkl),
+                                'Space group ' + sgName + ': problem with hkl: ' + str(hkl) + '.')
+
+    def generateReflectionLists(self):
+        # Common parameters for PoldiCreatePeaksFromCell
+        # Additional lattice parameters are ignored (e.g. all except a in cubic, all except a and c in tetragonal, etc.)
+        # so they can be supplied anyway for simplicity.
+        parameters = {
+            'Atoms': 'Fe 0.3421 0.5312 0.7222',
+            'a': 5.632, 'b': 6.121, 'c': 7.832,
+            'Alpha': 101.5, 'Beta': 102.3, 'Gamma': 100.75,
+            'LatticeSpacingMin': 0.75
+        }
+
+        # Some space groups
+        spaceGroups = SpaceGroupFactory.getAllSpaceGroupSymbols()
+        sgDict = {}
+        for sg in spaceGroups:
+            try:
+                reflectionsWs = PoldiCreatePeaksFromCell(SpaceGroup=sg, **parameters)
+
+                # extract HKLs
+                hkls = [[int(m) for m in x.split()] for x in reflectionsWs.column(0)]
+                sgDict[sg] = hkls
+            except ValueError:
+                print sg
+
+        return sgDict
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/HRPDPowderDiffraction.nxs.md5 b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/HRPDPowderDiffraction.nxs.md5
index 0cc9b76c87b6671ee4eadf28079ec9660ce10892..9da204d70dc15a003942cea21ea4de180d1def24 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/HRPDPowderDiffraction.nxs.md5
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/HRPDPowderDiffraction.nxs.md5
@@ -1 +1 @@
-078a0d8d4c9f0aa5b2ece6099e13b0b9
+865a0257a81633f1b2e42c495eb45574
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/MuonLoad_MUSR00015192.nxs.md5 b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/MuonLoad_MUSR00015192.nxs.md5
index 375ff4a9afff65d34addbc35135e1d1aac4e0e0a..26060d7d5d3cf334ac8181df8c1433b7d1113530 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/MuonLoad_MUSR00015192.nxs.md5
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/MuonLoad_MUSR00015192.nxs.md5
@@ -1 +1 @@
-ed05e8a90ba843b8e2ad88cd10773e22
\ No newline at end of file
+f9f8aee9e15f495f43a9846da7adad3e
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/OFFSPECReflRedOneAuto_good.nxs.md5 b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/OFFSPECReflRedOneAuto_good.nxs.md5
index fdf6fc03ca1fa311a5e908d271d7e3fcc6bb6b82..c8f963132261889223bd8b216370f3be8cf0ba36 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/OFFSPECReflRedOneAuto_good.nxs.md5
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/OFFSPECReflRedOneAuto_good.nxs.md5
@@ -1 +1 @@
-d96193157e42dec030d3cc9450ed85c3
+b445cbc31e90baca62cea0a6e9d96062
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTUBES_AddedEventFilesWithOverlay.nxs.md5 b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTUBES_AddedEventFilesWithOverlay.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..61d5f88a0cf4b61de8ad2d13941a259c7fc0c0c8
--- /dev/null
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTUBES_AddedEventFilesWithOverlay.nxs.md5
@@ -0,0 +1 @@
+04f778ea265505f18692320d1f16e186
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTUBES_AddedEventFilesWithOverlayAndTimeShifts.nxs.md5 b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTUBES_AddedEventFilesWithOverlayAndTimeShifts.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..02a067f9a282c18fa3d7efbe0e1c62dff68fc51a
--- /dev/null
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTUBES_AddedEventFilesWithOverlayAndTimeShifts.nxs.md5
@@ -0,0 +1 @@
+bee801ee7fedfdf39f0449fe28030fae
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTUBES_AddedEventFilesWithoutOverlay.nxs.md5 b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTUBES_AddedEventFilesWithoutOverlay.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..79a0afbdbacb940da69f4e6e5087ed67a9850aa1
--- /dev/null
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTUBES_AddedEventFilesWithoutOverlay.nxs.md5
@@ -0,0 +1 @@
+022982dbe7e23a2248cef3b55b2d7550
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTube_withZeroErrorCorrections.nxs.md5 b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTube_withZeroErrorCorrections.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..b008fc81dec432d9a1f66f1de0d9fa2197a0974f
--- /dev/null
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/SANS2DTube_withZeroErrorCorrections.nxs.md5
@@ -0,0 +1 @@
+6137b6fa0ccee496120b0ed2a0cf78c3
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/WishAnalysis.nxs.md5 b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/WishAnalysis.nxs.md5
index 3886027bea509475436bb361ff78df290a39c224..e0ed7ff802c4cd5f5d6a211900fdf8bec2e452a8 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/WishAnalysis.nxs.md5
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/WishAnalysis.nxs.md5
@@ -1 +1 @@
-c748a5e1f3e4de6e1439ab856fb5c507
\ No newline at end of file
+1ba7b25dcf9b4b64dfb9306ffa47d874
diff --git a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/poldi2013n006904_2d_reference_Peaks.nxs.md5 b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/poldi2013n006904_2d_reference_Peaks.nxs.md5
index c27aca28c3d09076d91969412f9708ae83539076..ac3d5ff8c3751879a32c096eb85d845ce04fa304 100644
--- a/Code/Mantid/Testing/SystemTests/tests/analysis/reference/poldi2013n006904_2d_reference_Peaks.nxs.md5
+++ b/Code/Mantid/Testing/SystemTests/tests/analysis/reference/poldi2013n006904_2d_reference_Peaks.nxs.md5
@@ -1 +1 @@
-1fea3655ffcb5356a01f0f330719ae31
\ No newline at end of file
+82a91fcccb9273f5121202ba3993f492
diff --git a/Code/Mantid/Vates/ParaviewPlugins/CMakeLists.txt b/Code/Mantid/Vates/ParaviewPlugins/CMakeLists.txt
index 0bbe7ce454abfee7198b8afc2122826000ba6665..51d5be27eb7f3aa09a3374d9624607c5ef7436e4 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/CMakeLists.txt
+++ b/Code/Mantid/Vates/ParaviewPlugins/CMakeLists.txt
@@ -1,6 +1,41 @@
 # bring in Mantid/VATES API dependencies
 set_mantid_subprojects( Vates/VatesAPI )
 
+# NonOrthogonalSourcePlugin is necessary for viewing materials with nonorthogonal basis vectors.
+# Copy it over to the pvplugins dir
+if("${CMAKE_CFG_INTDIR}" STREQUAL ".")
+  # This is NOT a multi-configuration builder
+  find_library(NonOrthogonalSourcePlugin_LOCATION name NonOrthogonalSource HINTS ${ParaView_DIR}/lib)
+  file (COPY ${NonOrthogonalSourcePlugin_LOCATION} DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${PVPLUGINS_DIR}/${PVPLUGINS_SUBDIR})
+elseif(MSVC)
+  # find_library won't find dlls only import libraries so just hardcode them
+  # Release
+  set( _pvplugins_dir ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Release/${PVPLUGINS_DIR}/${PVPLUGINS_SUBDIR} )
+  set( RUNTIME_LIB ${ParaView_DIR}/bin/Release/NonOrthogonalSource.dll )
+  if (NOT ${_pvplugins_dir} )
+    file( MAKE_DIRECTORY ${_pvplugins_dir} )
+    file( COPY ${RUNTIME_LIB} DESTINATION ${_pvplugins_dir} )
+  endif ()
+  set( NonOrthogonalSourcePlugin_LOCATION ${RUNTIME_LIB} )
+  # Debug
+  set( RUNTIME_LIB_DEBUG ${ParaView_DIR}/bin/Debug/NonOrthogonalSource.dll )
+  if (EXISTS ${RUNTIME_LIB_DEBUG})
+    set( _pvplugins_dir ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Debug/${PVPLUGINS_DIR}/${PVPLUGINS_SUBDIR} )
+    if (NOT ${_pvplugins_dir} )
+      file( MAKE_DIRECTORY ${_pvplugins_dir} )
+      file( COPY ${RUNTIME_LIB_DEBUG} DESTINATION ${_pvplugins_dir} )
+    endif ()
+    # Don't install the debug as the packaging is broken under debug
+  endif()
+else ()
+  message ( WARNING "Unknown multi-configuration generator. Cannot copy NonOrthogonalSource plugin to our plugin directory." )
+endif()
+
+if ( (NOT APPLE) AND NonOrthogonalSourcePlugin_LOCATION)
+  # make_package.rb handles this for OSX
+  install( FILES ${NonOrthogonalSourcePlugin_LOCATION} DESTINATION ${PVPLUGINS_DIR}/${PVPLUGINS_SUBDIR} )
+endif()
+
 add_subdirectory( ParaViewFilters )
 add_subdirectory( ParaViewReaders )
 add_subdirectory( ParaViewSources )
diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewFilters/PeaksFilter/vtkPeaksFilter.h b/Code/Mantid/Vates/ParaviewPlugins/ParaViewFilters/PeaksFilter/vtkPeaksFilter.h
index 96e23567bdeafa0ddddc6ca18fc357e76d3b45aa..0cfd85071d13afa370bd24172bddb8807bf95eeb 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewFilters/PeaksFilter/vtkPeaksFilter.h
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewFilters/PeaksFilter/vtkPeaksFilter.h
@@ -1,7 +1,7 @@
 #ifndef _VTKPEAKSFILTER_h
 #define _VTKPEAKSFILTER_h
 #include "vtkUnstructuredGridAlgorithm.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidVatesAPI/MetadataJsonManager.h"
 #include "MantidVatesAPI/VatesConfigurations.h"
 #include <boost/scoped_ptr.hpp>
diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/NexusPeaksReader/vtkNexusPeaksReader.cxx b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/NexusPeaksReader/vtkNexusPeaksReader.cxx
index 7e228505d0867c284eb3bfa61c8fe381d01bbcad..0fbc7e02b3e8f92313db2f4eadc4cf7191f4f414 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/NexusPeaksReader/vtkNexusPeaksReader.cxx
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/NexusPeaksReader/vtkNexusPeaksReader.cxx
@@ -15,6 +15,7 @@
 #include "MantidVatesAPI/FilteringUpdateProgressAction.h"
 #include "MantidVatesAPI/vtkPeakMarkerFactory.h"
 #include "MantidAPI/Workspace.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/AlgorithmManager.h"
diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/NexusPeaksReader/vtkNexusPeaksReader.h b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/NexusPeaksReader/vtkNexusPeaksReader.h
index d4de3978c7f5513709114c065fd008b4fe911fc4..5a52932cb9a9eb1eca7d28adede9a042c94d1e69 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/NexusPeaksReader/vtkNexusPeaksReader.h
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/NexusPeaksReader/vtkNexusPeaksReader.h
@@ -1,7 +1,7 @@
 #ifndef _vtkEventNexusReader_h
 #define _vtkEventNexusReader_h
 #include "MantidVatesAPI/vtkPolyDataAlgorithm_Silent.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 
 class vtkImplicitFunction;
 // cppcheck-suppress class_X_Y
diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/PeaksReader/vtkPeaksReader.cxx b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/PeaksReader/vtkPeaksReader.cxx
index 70a227c7af43491c669f37378ce6624c80fb58ab..4de24194283e2f1cc8f93fb920b7736279b894ae 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/PeaksReader/vtkPeaksReader.cxx
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/PeaksReader/vtkPeaksReader.cxx
@@ -15,6 +15,7 @@
 #include "MantidVatesAPI/FilteringUpdateProgressAction.h"
 #include "MantidVatesAPI/vtkPeakMarkerFactory.h"
 #include "MantidAPI/Workspace.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/AlgorithmManager.h"
diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/PeaksReader/vtkPeaksReader.h b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/PeaksReader/vtkPeaksReader.h
index a2ccc5786dc092aa44c7992a9d64efb87f380c71..4900dbab918dbec1ca1689d20d1805f70cce4717 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/PeaksReader/vtkPeaksReader.h
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/PeaksReader/vtkPeaksReader.h
@@ -1,7 +1,7 @@
 #ifndef _vtkEventNexusReader_h
 #define _vtkEventNexusReader_h
 #include "MantidVatesAPI/vtkPolyDataAlgorithm_Silent.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 
 class vtkImplicitFunction;
 // cppcheck-suppress class_X_Y
diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewSources/PeaksSource/vtkPeaksSource.cxx b/Code/Mantid/Vates/ParaviewPlugins/ParaViewSources/PeaksSource/vtkPeaksSource.cxx
index e3ff1ab962be5ecd64eb83c51ebccf2f687db319..4dd4476c31508bf0953bedda70f2f9ec3dff63d7 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewSources/PeaksSource/vtkPeaksSource.cxx
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewSources/PeaksSource/vtkPeaksSource.cxx
@@ -13,6 +13,7 @@
 #include "MantidVatesAPI/FilteringUpdateProgressAction.h"
 #include "MantidVatesAPI/vtkPeakMarkerFactory.h"
 #include "MantidAPI/Workspace.h"
+#include "MantidAPI/IPeaksWorkspace.h"
 #include "MantidAPI/AnalysisDataService.h"
 
 
@@ -136,4 +137,4 @@ const char* vtkPeaksSource::GetWorkspaceName()
 const char* vtkPeaksSource::GetInstrument()
 {
   return m_instrument.c_str();
-}
\ No newline at end of file
+}
diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewSources/PeaksSource/vtkPeaksSource.h b/Code/Mantid/Vates/ParaviewPlugins/ParaViewSources/PeaksSource/vtkPeaksSource.h
index cc1d092b73bbadfe78b753a441709b6df131fd55..db0c12376ec5538d5bc4b3f5372a80d614597224 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewSources/PeaksSource/vtkPeaksSource.h
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewSources/PeaksSource/vtkPeaksSource.h
@@ -1,7 +1,7 @@
 #ifndef _vtkPeaksSource_h
 #define _vtkPeaksSource_h
 
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidVatesAPI/vtkPeakMarkerFactory.h"
 #include "MantidVatesAPI/vtkPolyDataAlgorithm_Silent.h"
 #include <string>
diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewWidgets/QtWidgets/CMakeLists.txt b/Code/Mantid/Vates/ParaviewPlugins/ParaViewWidgets/QtWidgets/CMakeLists.txt
index 4484de7e620d6fad5964f34f3976bcbceed125e8..70f61b908f0220e2b066b150a36b41c63ef5ebf0 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewWidgets/QtWidgets/CMakeLists.txt
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewWidgets/QtWidgets/CMakeLists.txt
@@ -39,7 +39,6 @@ add_library( MantidParaViewQtWidgets ${SRC_FILES} ${MOCCED_FILES} ${INC_FILES} )
 set_property( TARGET MantidParaViewQtWidgets PROPERTY FOLDER "MantidVates" )
 target_link_libraries( MantidParaViewQtWidgets LINK_PRIVATE 
 vtkRenderingFreeType
-vtkRenderingFreeTypeOpenGL
 ${QT_LIBRARIES} 
 ${MANTID_SUBPROJECT_LIBS} )
 
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/CompositePeaksPresenterVsi.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/CompositePeaksPresenterVsi.h
index f00c463bb4c4757a2624d246e922ca53422d212f..4dc5739264ea387381087df850361aff24c1be07 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/CompositePeaksPresenterVsi.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/CompositePeaksPresenterVsi.h
@@ -4,7 +4,7 @@
 #include "MantidKernel/System.h"
 #include "MantidVatesAPI/PeaksPresenterVsi.h"
 #include "MantidGeometry/Crystal/PeakTransform.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidVatesAPI/ViewFrustum.h"
 #include "MantidGeometry/Crystal/PeakShape.h"
 #include "MantidKernel/SpecialCoordinateSystem.h"
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/ConcretePeaksPresenterVsi.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/ConcretePeaksPresenterVsi.h
index ef08ef5844b347e8340385d8f6994a998fb9f50d..b3174027e43092bac825a43db685c9a264b303d4 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/ConcretePeaksPresenterVsi.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/ConcretePeaksPresenterVsi.h
@@ -4,7 +4,7 @@
 #include "MantidKernel/System.h"
 #include "MantidVatesAPI/PeaksPresenterVsi.h"
 #include "MantidGeometry/Crystal/PeakTransform.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidVatesAPI/ViewFrustum.h"
 #include "MantidGeometry/Crystal/PeakShape.h"
 #include "MantidKernel/SpecialCoordinateSystem.h"
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/MDEWLoadingPresenter.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/MDEWLoadingPresenter.h
index 7f85639f622b7b5fc7e64d613c5ccc7b2a6d11b2..7b3b1ebb2f8ba9b94b658f8ec6530b760094581e 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/MDEWLoadingPresenter.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/MDEWLoadingPresenter.h
@@ -7,7 +7,7 @@
 #include "MantidVatesAPI/VatesConfigurations.h"
 #include "MantidGeometry/MDGeometry/MDGeometryXMLBuilder.h"
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 
 #include <boost/scoped_ptr.hpp>
 
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/MDHWLoadingPresenter.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/MDHWLoadingPresenter.h
index 0655de7db511bca086eee570c3f2be81cf70ae8d..51cc1ff323b033960296db10ac7bcb0c06a8d9e9 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/MDHWLoadingPresenter.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/MDHWLoadingPresenter.h
@@ -7,7 +7,7 @@
 #include "MantidVatesAPI/VatesConfigurations.h"
 #include "MantidGeometry/MDGeometry/MDGeometryXMLBuilder.h"
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace_fwd.h"
 
 #include <boost/scoped_ptr.hpp>
 
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/NullPeaksPresenterVsi.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/NullPeaksPresenterVsi.h
index 900dae7fd983792eaec7abfb57cdce4c4cbfb20a..7e85dab8ec81ca94828d37d634d6e4f379bd3797 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/NullPeaksPresenterVsi.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/NullPeaksPresenterVsi.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidVatesAPI/PeaksPresenterVsi.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidVatesAPI/ViewFrustum.h"
 #include "MantidKernel/SpecialCoordinateSystem.h"
 
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/PeaksPresenterVsi.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/PeaksPresenterVsi.h
index 78eb1b79904582eebd4e61a0fea202927c9f3d87..fad1f81448c8cd58c403746f3094aa718cda05a3 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/PeaksPresenterVsi.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/PeaksPresenterVsi.h
@@ -2,7 +2,7 @@
 #define MANTID_VATES_PEAKS_PRESENTER_VSI_H
 
 #include "MantidKernel/System.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidKernel/V3D.h"
 #include "MantidKernel/SpecialCoordinateSystem.h"
 #include "MantidVatesAPI/ViewFrustum.h"
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/ThresholdRange.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/ThresholdRange.h
index 12a9fbfa2e6e9ca47d1359763d911adf033ab0e1..ea57ba5dcd7142a6d34da27f7e0db7405d7f0539 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/ThresholdRange.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/ThresholdRange.h
@@ -4,7 +4,7 @@
 #include <boost/shared_ptr.hpp>
 #include "MantidKernel/System.h"
 #include "MantidGeometry/MDGeometry/MDTypes.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 /** Abstract type promises to supply a minimum and maximum set of threshold range values.
 
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/WorkspaceProvider.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/WorkspaceProvider.h
index c3691772ff56529f1920abb7b9f90ca6a3344885..0fe94e674300035af4e0e7f6be833c33c4ab056b 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/WorkspaceProvider.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/WorkspaceProvider.h
@@ -2,7 +2,7 @@
 #define MANTID_VATESAPI_WORKSPACE_PROVIDER_H
 
 #include "MantidKernel/System.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include <string>
 
 namespace Mantid
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetFactory.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetFactory.h
index 34209f572212545a7ebb37ba8340fef41ec572ba..5872db7286071ecbf885f853be9ce1ea3113caf3 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetFactory.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetFactory.h
@@ -4,7 +4,7 @@
 #define MANTID_VATES_VTKDATASETFACTORY_H_
 
 #include "MantidAPI/IMDWorkspace.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidKernel/System.h"
 #include "vtkDataSet.h"
 #include <boost/shared_ptr.hpp>
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetToNonOrthogonalDataSet.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetToNonOrthogonalDataSet.h
index 831df55d738a0ffa2ca7ccc7c7efe5c94dc99574..9ab6e54e648b69d98addda08a20d7145d7671868 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetToNonOrthogonalDataSet.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetToNonOrthogonalDataSet.h
@@ -9,7 +9,7 @@
 #include "MantidGeometry/MDGeometry/MDTypes.h"
 
 #include <string>
-#include <vector>
+#include <array>
 
 class vtkDataSet;
 class vtkUnstructuredGrid;
@@ -83,6 +83,7 @@ namespace VATES
     Kernel::V3D m_basisY; ///< The Y direction basis vector
     Kernel::V3D m_basisZ; ///< The Z direction basis vector
     Kernel::SpecialCoordinateSystem m_coordType; ///< The coordinate system for the workspace
+    std::array<double, 6> m_boundingBox;
   };
 
 
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetToPeaksFilteredDataSet.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetToPeaksFilteredDataSet.h
index 0c32a274f5e593fb22a6bb8feb003d83b30ae8e5..827a741ddecc265d406080505c7ab408bfd64505 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetToPeaksFilteredDataSet.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkDataSetToPeaksFilteredDataSet.h
@@ -69,4 +69,4 @@ namespace VATES
   };
 }
 }
-#endif
\ No newline at end of file
+#endif
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkMDHexFactory.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkMDHexFactory.h
index 432639357f7594016fd5a497b14844163d9dd34c..91f287eeee9fa57c8ca61baf26556e162f034c2d 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkMDHexFactory.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkMDHexFactory.h
@@ -1,7 +1,7 @@
 #ifndef MANTID_VATES_VTK_MD_HEX_FACTORY_H_
 #define MANTID_VATES_VTK_MD_HEX_FACTORY_H_
 
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidDataObjects/MDEventFactory.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 #include "MantidVatesAPI/Normalization.h"
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkPeakMarkerFactory.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkPeakMarkerFactory.h
index 6f7cba3bbc0917e41a132bcd0719a3b4ff546270..435d112fa6248d70957af51c43fd15ed0e332fdf 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkPeakMarkerFactory.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkPeakMarkerFactory.h
@@ -32,7 +32,7 @@
  */
 
 #include "MantidAPI/IMDWorkspace.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 #include "MantidVatesAPI/vtkDataSetFactory.h"
 
 class vtkPolyData;
diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkSplatterPlotFactory.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkSplatterPlotFactory.h
index 779bd0d62d2dae26838a5e26d31039ea0c13c4bd..811f0dc9911cff0cbe6279a2ad31d1f4492d6a22 100644
--- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkSplatterPlotFactory.h
+++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/vtkSplatterPlotFactory.h
@@ -1,10 +1,10 @@
 #ifndef MANTID_VATES_vtkSplatterPlotFactory_H_
 #define MANTID_VATES_vtkSplatterPlotFactory_H_
 
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidVatesAPI/MetaDataExtractorUtils.h"
 #include "MantidAPI/IMDNode.h"
-#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/IMDHistoWorkspace_fwd.h"
 #include "MantidDataObjects/MDEventFactory.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 #include "MantidVatesAPI/ThresholdRange.h"
diff --git a/Code/Mantid/Vates/VatesAPI/src/EventNexusLoadingPresenter.cpp b/Code/Mantid/Vates/VatesAPI/src/EventNexusLoadingPresenter.cpp
index 8f5ebcfbdf4057297b4a211f071ab1d2c51b460f..1501c4fe6529238bf4df1804fbc9bff6139e1ddf 100644
--- a/Code/Mantid/Vates/VatesAPI/src/EventNexusLoadingPresenter.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/EventNexusLoadingPresenter.cpp
@@ -1,4 +1,5 @@
 #include "MantidAPI/IEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidVatesAPI/EventNexusLoadingPresenter.h"
 #include "MantidVatesAPI/MDLoadingView.h"
 #include "MantidGeometry/MDGeometry/MDGeometryXMLBuilder.h"
@@ -116,7 +117,8 @@ namespace Mantid
         loadAlg->executeAsChildAlg();
         loadAlg->removeObserver(observer);
 
-        Mantid::API::IEventWorkspace_sptr tempWS = loadAlg->getProperty("OutputWorkspace");
+        Workspace_sptr temp = loadAlg->getProperty("OutputWorkspace");
+        IEventWorkspace_sptr tempWS = boost::dynamic_pointer_cast<IEventWorkspace>(temp);
 
         Algorithm_sptr convertAlg = AlgorithmManager::Instance().createUnmanaged(
             "ConvertToDiffractionMDWorkspace", 1);
diff --git a/Code/Mantid/Vates/VatesAPI/src/MDEWEventNexusLoadingPresenter.cpp b/Code/Mantid/Vates/VatesAPI/src/MDEWEventNexusLoadingPresenter.cpp
index dd443643d899babfe4d9365899ce3fefbe7e1089..79592b54bd18a6dfb3934b6c4b6cb3be35a78970 100644
--- a/Code/Mantid/Vates/VatesAPI/src/MDEWEventNexusLoadingPresenter.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/MDEWEventNexusLoadingPresenter.cpp
@@ -1,4 +1,5 @@
 #include "MantidVatesAPI/MDEWEventNexusLoadingPresenter.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidVatesAPI/MDLoadingView.h"
 #include "MantidVatesAPI/ProgressAction.h"
 #include "MantidVatesAPI/vtkDataSetFactory.h"
diff --git a/Code/Mantid/Vates/VatesAPI/src/MDEWInMemoryLoadingPresenter.cpp b/Code/Mantid/Vates/VatesAPI/src/MDEWInMemoryLoadingPresenter.cpp
index 8eecf215dbb592f815e0c26326dc8588b597d220..4dbaf48cbfc4108a7225a72d79f5f991237be28d 100644
--- a/Code/Mantid/Vates/VatesAPI/src/MDEWInMemoryLoadingPresenter.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/MDEWInMemoryLoadingPresenter.cpp
@@ -1,4 +1,5 @@
 #include "MantidVatesAPI/MDEWInMemoryLoadingPresenter.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidVatesAPI/MDLoadingView.h"
 #include "MantidVatesAPI/ProgressAction.h"
 #include "MantidVatesAPI/vtkDataSetFactory.h"
diff --git a/Code/Mantid/Vates/VatesAPI/src/MDEWLoadingPresenter.cpp b/Code/Mantid/Vates/VatesAPI/src/MDEWLoadingPresenter.cpp
index 00feb6483209d71f2b8f9ff0e9c2b2af2c115b2d..b3c00442d0c3fcd567997d24d51dc72ca74f3975 100644
--- a/Code/Mantid/Vates/VatesAPI/src/MDEWLoadingPresenter.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/MDEWLoadingPresenter.cpp
@@ -1,6 +1,7 @@
 #include "MantidVatesAPI/MDEWLoadingPresenter.h"
 #include "MantidVatesAPI/MDLoadingView.h"
 #include "MantidAPI/FrameworkManager.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 
 #include "MantidGeometry/MDGeometry/NullImplicitFunction.h"
 #include "MantidVatesAPI/VatesKnowledgeSerializer.h"
diff --git a/Code/Mantid/Vates/VatesAPI/src/MDHWInMemoryLoadingPresenter.cpp b/Code/Mantid/Vates/VatesAPI/src/MDHWInMemoryLoadingPresenter.cpp
index 961a2baab4a5177cc86385f2db083e932afde2c6..83a9c53d6c9435de9bcdcf894eb2e673df43da71 100644
--- a/Code/Mantid/Vates/VatesAPI/src/MDHWInMemoryLoadingPresenter.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/MDHWInMemoryLoadingPresenter.cpp
@@ -1,4 +1,5 @@
 #include "MantidVatesAPI/MDHWInMemoryLoadingPresenter.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidVatesAPI/MDLoadingView.h"
 #include "MantidVatesAPI/MetaDataExtractorUtils.h"
 #include "MantidVatesAPI/ProgressAction.h"
diff --git a/Code/Mantid/Vates/VatesAPI/src/MDHWLoadingPresenter.cpp b/Code/Mantid/Vates/VatesAPI/src/MDHWLoadingPresenter.cpp
index bd98f1811f90f6e9d988a5e13dcda4ba03210f27..319edd9f331cb6744b9b0288182b0d5613ed4703 100644
--- a/Code/Mantid/Vates/VatesAPI/src/MDHWLoadingPresenter.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/MDHWLoadingPresenter.cpp
@@ -1,6 +1,7 @@
 #include "MantidVatesAPI/MDHWLoadingPresenter.h"
 #include "MantidVatesAPI/MDLoadingView.h"
 #include "MantidAPI/FrameworkManager.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 
 #include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 #include "MantidGeometry/MDGeometry/NullImplicitFunction.h"
@@ -16,9 +17,15 @@
 
 #include <boost/scoped_ptr.hpp>
 
+#include <vtkPVChangeOfBasisHelper.h>
 #include <vtkFieldData.h>
 #include <vtkDataSet.h>
 
+namespace {
+
+Mantid::Kernel::Logger g_log("MDHWLoadingPresenter");
+}
+
 namespace Mantid
 {
   namespace VATES
@@ -184,10 +191,12 @@ namespace Mantid
      */
     void MDHWLoadingPresenter::setAxisLabels(vtkDataSet *visualDataSet)
     {
-      vtkFieldData* fieldData = visualDataSet->GetFieldData();
-      setAxisLabel("AxisTitleForX", axisLabels[0], fieldData);
-      setAxisLabel("AxisTitleForY", axisLabels[1], fieldData);
-      setAxisLabel("AxisTitleForZ", axisLabels[2], fieldData);
+      if (!vtkPVChangeOfBasisHelper::AddBasisNames(
+              visualDataSet, axisLabels[0].c_str(), axisLabels[1].c_str(),
+              axisLabels[2].c_str())) {
+        g_log.warning("The basis names could not be added to the field data of "
+                      "the data set.\n");
+      }
     }
 
     /**
diff --git a/Code/Mantid/Vates/VatesAPI/src/MDHWNexusLoadingPresenter.cpp b/Code/Mantid/Vates/VatesAPI/src/MDHWNexusLoadingPresenter.cpp
index 4f343cc924425502451430eb6fc9acae7d927d2e..fb2ddbe610f0ab95e5927e450ef2cc0e6358665d 100644
--- a/Code/Mantid/Vates/VatesAPI/src/MDHWNexusLoadingPresenter.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/MDHWNexusLoadingPresenter.cpp
@@ -1,4 +1,5 @@
 #include "MantidVatesAPI/MDHWNexusLoadingPresenter.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
 #include "MantidVatesAPI/MDLoadingView.h"
 #include "MantidVatesAPI/ProgressAction.h"
 #include "MantidVatesAPI/vtkDataSetFactory.h"
diff --git a/Code/Mantid/Vates/VatesAPI/src/SQWLoadingPresenter.cpp b/Code/Mantid/Vates/VatesAPI/src/SQWLoadingPresenter.cpp
index 1fa8350fe86208875c92bc3361d6a92ea98e6870..537d14a4481648b340867561be679c96921ea725 100644
--- a/Code/Mantid/Vates/VatesAPI/src/SQWLoadingPresenter.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/SQWLoadingPresenter.cpp
@@ -1,4 +1,5 @@
 #include "MantidVatesAPI/SQWLoadingPresenter.h"
+#include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidVatesAPI/Common.h"
 #include "MantidVatesAPI/MDLoadingView.h"
 #include "MantidVatesAPI/ProgressAction.h"
diff --git a/Code/Mantid/Vates/VatesAPI/src/vtkDataSetToNonOrthogonalDataSet.cpp b/Code/Mantid/Vates/VatesAPI/src/vtkDataSetToNonOrthogonalDataSet.cpp
index 22040df08d65b0cf245139904e4bef490e9ad193..64e8d97fc1c2f9123f9e9bdfc1ea0221a29b59da 100644
--- a/Code/Mantid/Vates/VatesAPI/src/vtkDataSetToNonOrthogonalDataSet.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/vtkDataSetToNonOrthogonalDataSet.cpp
@@ -13,12 +13,14 @@
 #include <vtkFloatArray.h>
 #include <vtkDoubleArray.h>
 #include <vtkMatrix3x3.h>
+#include "vtkVector.h"
 #include <vtkNew.h>
 #include <vtkPoints.h>
 #include <vtkUnstructuredGrid.h>
 #include <vtkDataObject.h>
 #include <vtkMatrix4x4.h>
 #include <vtkSmartPointer.h>
+#include <vtkPVChangeOfBasisHelper.h>
 
 #include <boost/algorithm/string/find.hpp>
 #include <stdexcept>
@@ -26,9 +28,11 @@
 using namespace Mantid;
 namespace {
 
-void addChangeOfBasisMatrixToFieldData(vtkDataObject *dataObject,
-                                       const MantidVec &u, const MantidVec &v,
-                                       const MantidVec &w) {
+Mantid::Kernel::Logger g_log("vtkDataSetToNonOrthogonalDataSet");
+
+void addChangeOfBasisMatrixToFieldData(
+    vtkDataObject *dataObject, const MantidVec &u, const MantidVec &v,
+    const MantidVec &w, const std::array<double, 6> &boundingBox) {
 
   if (!dataObject) {
     throw std::invalid_argument("Change of basis needs a vtkDataObject");
@@ -44,21 +48,20 @@ void addChangeOfBasisMatrixToFieldData(vtkDataObject *dataObject,
   }
 
   vtkSmartPointer<vtkMatrix4x4> cobMatrix =
-      vtkSmartPointer<vtkMatrix4x4>::New();
-  cobMatrix->Identity();
-  std::copy(u.begin(), u.end(), cobMatrix->Element[0]);
-  std::copy(v.begin(), v.end(), cobMatrix->Element[1]);
-  std::copy(w.begin(), w.end(), cobMatrix->Element[2]);
-
-  cobMatrix->Transpose();
-
-  vtkNew<vtkDoubleArray> cobArray;
-  cobArray->SetName("ChangeOfBasisMatrix");
-  cobArray->SetNumberOfComponents(16);
-  cobArray->SetNumberOfTuples(1);
-  std::copy(&cobMatrix->Element[0][0], (&cobMatrix->Element[0][0]) + 16,
-            cobArray->GetPointer(0));
-  dataObject->GetFieldData()->AddArray(cobArray.GetPointer());
+      vtkPVChangeOfBasisHelper::GetChangeOfBasisMatrix(
+          vtkVector3d(&u[0]), vtkVector3d(&v[0]), vtkVector3d(&w[0]));
+
+  if (!vtkPVChangeOfBasisHelper::AddChangeOfBasisMatrixToFieldData(dataObject,
+                                                                   cobMatrix)) {
+    g_log.warning("The Change-of-Basis-Matrix could not be added to the field "
+                  "data of the data set.\n");
+  }
+
+  if (!vtkPVChangeOfBasisHelper::AddBoundingBoxInBasis(dataObject,
+                                                       &boundingBox[0])) {
+    g_log.warning("The bounding box could not be added to the field data of "
+                  "the data set.\n");
+  }
 }
 
 }
@@ -127,6 +130,14 @@ void vtkDataSetToNonOrthogonalDataSet::execute() {
   if (boost::algorithm::find_first(wsType, "MDHistoWorkspace")) {
     API::IMDHistoWorkspace_const_sptr infoWs =
         boost::dynamic_pointer_cast<const API::IMDHistoWorkspace>(ws);
+
+    m_boundingBox[0] = infoWs->getDimension(0)->getMinimum();
+    m_boundingBox[1] = infoWs->getDimension(0)->getMaximum();
+    m_boundingBox[2] = infoWs->getDimension(1)->getMinimum();
+    m_boundingBox[3] = infoWs->getDimension(1)->getMaximum();
+    m_boundingBox[4] = infoWs->getDimension(2)->getMinimum();
+    m_boundingBox[5] = infoWs->getDimension(2)->getMaximum();
+
     m_numDims = infoWs->getNumDims();
     m_coordType = infoWs->getSpecialCoordinateSystem();
     if (Kernel::HKL != m_coordType) {
@@ -331,7 +342,8 @@ void vtkDataSetToNonOrthogonalDataSet::stripMatrix(Kernel::DblMatrix &mat) {
 void vtkDataSetToNonOrthogonalDataSet::updateMetaData(vtkUnstructuredGrid *ugrid)
 {
   // Create and add the change of basis matrix
-  addChangeOfBasisMatrixToFieldData(ugrid, m_basisX, m_basisY, m_basisZ);
+  addChangeOfBasisMatrixToFieldData(ugrid, m_basisX, m_basisY, m_basisZ,
+                                    m_boundingBox);
 }
 
 } // namespace VATES
diff --git a/Code/Mantid/Vates/VatesAPI/src/vtkDataSetToScaledDataSet.cpp b/Code/Mantid/Vates/VatesAPI/src/vtkDataSetToScaledDataSet.cpp
index 21f05328c4f552f5cf22bd978ba4092217cbf074..c18bdf281068c0aab32fa1c9a8e2cd9b227b1fc3 100644
--- a/Code/Mantid/Vates/VatesAPI/src/vtkDataSetToScaledDataSet.cpp
+++ b/Code/Mantid/Vates/VatesAPI/src/vtkDataSetToScaledDataSet.cpp
@@ -1,4 +1,5 @@
 #include "MantidVatesAPI/vtkDataSetToScaledDataSet.h"
+#include "MantidKernel/Logger.h"
 
 #include <vtkFieldData.h>
 #include <vtkFloatArray.h>
@@ -6,160 +7,119 @@
 #include <vtkPoints.h>
 #include <vtkUnsignedCharArray.h>
 #include <vtkUnstructuredGrid.h>
+#include <vtkSmartPointer.h>
+#include <vtkMatrix4x4.h>
+#include <vtkPVChangeOfBasisHelper.h>
 
 #include <stdexcept>
 
-namespace Mantid
-{
-namespace VATES
-{
-  /**
-   * Standard constructor for object.
-   * @param input : The dataset to scale
-   * @param output : The resulting scaled dataset
-   */
-  vtkDataSetToScaledDataSet::vtkDataSetToScaledDataSet(vtkUnstructuredGrid *input,
-                                                       vtkUnstructuredGrid *output) :
-    m_inputData(input),
-    m_outputData(output),
-    m_xScaling(1.0),
-    m_yScaling(1.0),
-    m_zScaling(1.0),
-    m_isInitialised(false)
-  {
-    if (NULL == m_inputData)
-    {
-      throw std::runtime_error("Cannot construct vtkDataSetToScaledDataSet with NULL input vtkUnstructuredGrid");
-    }
-    if (NULL == m_outputData)
-    {
-      throw std::runtime_error("Cannot construct vtkDataSetToScaledDataSet with NULL output vtkUnstructuredGrid");
-    }
+
+namespace {
+Mantid::Kernel::Logger g_log("vtkDataSetTOScaledDataSet");
+}
+
+namespace Mantid {
+namespace VATES {
+/**
+ * Standard constructor for object.
+ * @param input : The dataset to scale
+ * @param output : The resulting scaled dataset
+ */
+vtkDataSetToScaledDataSet::vtkDataSetToScaledDataSet(
+    vtkUnstructuredGrid *input, vtkUnstructuredGrid *output)
+    : m_inputData(input), m_outputData(output), m_xScaling(1.0),
+      m_yScaling(1.0), m_zScaling(1.0), m_isInitialised(false) {
+  if (NULL == m_inputData) {
+    throw std::runtime_error("Cannot construct vtkDataSetToScaledDataSet with "
+                             "NULL input vtkUnstructuredGrid");
   }
-    
-  vtkDataSetToScaledDataSet::~vtkDataSetToScaledDataSet()
-  {
+  if (NULL == m_outputData) {
+    throw std::runtime_error("Cannot construct vtkDataSetToScaledDataSet with "
+                             "NULL output vtkUnstructuredGrid");
   }
-  
-  /**
-   * Set the scaling factors for the data, once run, the object is now
-   * initialised.
-   * @param xScale : Scale factor for the x direction
-   * @param yScale : Scale factor for the y direction
-   * @param zScale : Scale factor for the z direction
-   */
-  void vtkDataSetToScaledDataSet::initialize(double xScale, double yScale, double zScale)
-  {
-    m_xScaling = xScale;
-    m_yScaling = yScale;
-    m_zScaling = zScale;
-    m_isInitialised = true;
+}
+
+vtkDataSetToScaledDataSet::~vtkDataSetToScaledDataSet() {}
+
+/**
+ * Set the scaling factors for the data, once run, the object is now
+ * initialised.
+ * @param xScale : Scale factor for the x direction
+ * @param yScale : Scale factor for the y direction
+ * @param zScale : Scale factor for the z direction
+ */
+void vtkDataSetToScaledDataSet::initialize(double xScale, double yScale,
+                                           double zScale) {
+  m_xScaling = xScale;
+  m_yScaling = yScale;
+  m_zScaling = zScale;
+  m_isInitialised = true;
+}
+
+/**
+ * Process the input data. First, scale a copy of the points and apply
+ * that to the output data. Next, update the metadata for range information.
+ */
+void vtkDataSetToScaledDataSet::execute() {
+  if (!m_isInitialised) {
+    throw std::runtime_error(
+        "vtkDataSetToScaledDataSet needs initialize run before executing");
   }
 
-  /**
-   * Process the input data. First, scale a copy of the points and apply
-   * that to the output data. Next, update the metadata for range information.
-   */
-  void vtkDataSetToScaledDataSet::execute()
-  {
-    if (!m_isInitialised)
-    {
-      throw std::runtime_error("vtkDataSetToScaledDataSet needs initialize run before executing");
-    }
-
-    vtkPoints *points = m_inputData->GetPoints();
-
-    double *point;
-    vtkPoints* newPoints = vtkPoints::New();
-    newPoints->Allocate(points->GetNumberOfPoints());
-    for(int i = 0; i < points->GetNumberOfPoints(); i++)
-    {
-      point = points->GetPoint(i);
-      point[0] *= m_xScaling;
-      point[1] *= m_yScaling;
-      point[2] *= m_zScaling;
-      newPoints->InsertNextPoint(point);
-    }
-    //Shallow copy the input.
-    m_outputData->ShallowCopy(m_inputData);
-    //Give the output dataset the scaled set of points.
-    m_outputData->SetPoints(newPoints);
-    this->updateMetaData();
+  vtkPoints *points = m_inputData->GetPoints();
+
+  double *point;
+  vtkPoints *newPoints = vtkPoints::New();
+  newPoints->Allocate(points->GetNumberOfPoints());
+  for (int i = 0; i < points->GetNumberOfPoints(); i++) {
+    point = points->GetPoint(i);
+    point[0] *= m_xScaling;
+    point[1] *= m_yScaling;
+    point[2] *= m_zScaling;
+    newPoints->InsertNextPoint(point);
+  }
+  // Shallow copy the input.
+  m_outputData->ShallowCopy(m_inputData);
+  // Give the output dataset the scaled set of points.
+  m_outputData->SetPoints(newPoints);
+  this->updateMetaData();
+}
+
+/**
+ * In order for the axis range and labels to not come out scaled,
+ * this function set metadata that ParaView will read to override
+ * the scaling to return the original presentation.
+ * See
+ * http://www.paraview.org/ParaQ/Doc/Nightly/html/classvtkCubeAxesRepresentation.html
+ * and
+ * http://www.paraview.org/ParaView/Doc/Nightly/www/cxx-doc/classvtkPVChangeOfBasisHelper.html
+ * for a better understanding.
+ */
+void vtkDataSetToScaledDataSet::updateMetaData() {
+  // We need to put the scaling on the diagonal elements of the ChangeOfBasis
+  // (COB) Matrix.
+  vtkSmartPointer<vtkMatrix4x4> cobMatrix =
+      vtkSmartPointer<vtkMatrix4x4>::New();
+  cobMatrix->Identity();
+  cobMatrix->Element[0][0] *= m_xScaling;
+  cobMatrix->Element[1][1] *= m_yScaling;
+  cobMatrix->Element[2][2] *= m_zScaling;
+
+  if (!vtkPVChangeOfBasisHelper::AddChangeOfBasisMatrixToFieldData(m_outputData,
+                                                                   cobMatrix)) {
+    g_log.warning("The Change-of-Basis-Matrix could not be added to the field "
+                  "data of the scaled data set.\n");
   }
 
-  /**
-   * In order for the axis range and labels to not come out scaled,
-   * this function set metadata that ParaView will read to override
-   * the scaling to return the original presentation.
-   */
-  void vtkDataSetToScaledDataSet::updateMetaData()
-  {
-    // Grab original bounding box so we can recall original extents
-    double bb[6];
-    m_inputData->GetBounds(bb);
-
-    vtkFieldData *fieldData = m_outputData->GetFieldData();
-
-    // Set that the label range is actively being managed
-    vtkNew<vtkUnsignedCharArray> activeLabelRange;
-    activeLabelRange->SetNumberOfComponents(1);
-    activeLabelRange->SetNumberOfTuples(3);
-    activeLabelRange->SetName("LabelRangeActiveFlag");
-    fieldData->AddArray(activeLabelRange.GetPointer());
-    activeLabelRange->SetValue(0, 1);
-    activeLabelRange->SetValue(1, 1);
-    activeLabelRange->SetValue(2, 1);
-
-    // Set the original axis extents from the bounding box
-    vtkNew<vtkFloatArray> uLabelRange;
-    uLabelRange->SetNumberOfComponents(2);
-    uLabelRange->SetNumberOfTuples(1);
-    uLabelRange->SetName("LabelRangeForX");
-    double labelRangeX[2] = {bb[0], bb[1]};
-    uLabelRange->SetTuple(0, labelRangeX);
-    fieldData->AddArray(uLabelRange.GetPointer());
-
-    vtkNew<vtkFloatArray> vLabelRange;
-    vLabelRange->SetNumberOfComponents(2);
-    vLabelRange->SetNumberOfTuples(1);
-    vLabelRange->SetName("LabelRangeForY");
-    double labelRangeY[2] = {bb[2], bb[3]};
-    vLabelRange->SetTuple(0, labelRangeY);
-    fieldData->AddArray(vLabelRange.GetPointer());
-
-    vtkNew<vtkFloatArray> wLabelRange;
-    wLabelRange->SetNumberOfComponents(2);
-    wLabelRange->SetNumberOfTuples(1);
-    wLabelRange->SetName("LabelRangeForZ");
-    double labelRangeZ[2] = {bb[4], bb[5]};
-    wLabelRange->SetTuple(0, labelRangeZ);
-    fieldData->AddArray(wLabelRange.GetPointer());
-
-    // Set the linear transform for each axis based on scaling factor
-    vtkNew<vtkFloatArray> uLinearTransform;
-    uLinearTransform->SetNumberOfComponents(2);
-    uLinearTransform->SetNumberOfTuples(1);
-    uLinearTransform->SetName("LinearTransformForX");
-    double transformX[2] = {1.0 / m_xScaling, 0.0};
-    uLinearTransform->SetTuple(0, transformX);
-    fieldData->AddArray(uLinearTransform.GetPointer());
-
-    vtkNew<vtkFloatArray> vLinearTransform;
-    vLinearTransform->SetNumberOfComponents(2);
-    vLinearTransform->SetNumberOfTuples(1);
-    vLinearTransform->SetName("LinearTransformForY");
-    double transformY[2] = {1.0 / m_yScaling, 0.0};
-    vLinearTransform->SetTuple(0, transformY);
-    fieldData->AddArray(vLinearTransform.GetPointer());
-
-    vtkNew<vtkFloatArray> wLinearTransform;
-    wLinearTransform->SetNumberOfComponents(2);
-    wLinearTransform->SetNumberOfTuples(1);
-    wLinearTransform->SetName("LinearTransformForZ");
-    double transformZ[2] = {1.0 / m_zScaling, 0.0};
-    wLinearTransform->SetTuple(0, transformZ);
-    fieldData->AddArray(wLinearTransform.GetPointer());
+  // We also need to update the bounding box for the COB Matrix
+  double boundingBox[6];
+  m_inputData->GetBounds(boundingBox);
+  if (!vtkPVChangeOfBasisHelper::AddBoundingBoxInBasis(m_outputData,
+                                                       boundingBox)) {
+    g_log.warning("The bounding box could not be added to the field data of "
+                  "the scaled data set.\n");
   }
+}
 
 } // namespace VATES
 } // namespace Mantid
diff --git a/Code/Mantid/Vates/VatesAPI/test/MDEWInMemoryLoadingPresenterTest.h b/Code/Mantid/Vates/VatesAPI/test/MDEWInMemoryLoadingPresenterTest.h
index bbe46dc7f853c497494cbe4b752d013e8c69d0c6..0ba528b9861c14e086d6d5eed40ef6441784f324 100644
--- a/Code/Mantid/Vates/VatesAPI/test/MDEWInMemoryLoadingPresenterTest.h
+++ b/Code/Mantid/Vates/VatesAPI/test/MDEWInMemoryLoadingPresenterTest.h
@@ -6,6 +6,8 @@
 #include "MantidAPI/FileFinder.h"
 
 #include "MantidAPI/AnalysisDataService.h"
+#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidVatesAPI/FilteringUpdateProgressAction.h"
 #include "MantidVatesAPI/MDEWInMemoryLoadingPresenter.h"
 #include <vtkUnstructuredGrid.h>
diff --git a/Code/Mantid/Vates/VatesAPI/test/MDEWLoadingPresenterTest.h b/Code/Mantid/Vates/VatesAPI/test/MDEWLoadingPresenterTest.h
index f998c06f071f7508d692d052fb9b800dd7aa08e3..582be4f1e50211a39dcb56311cf4d8b3afa996bf 100644
--- a/Code/Mantid/Vates/VatesAPI/test/MDEWLoadingPresenterTest.h
+++ b/Code/Mantid/Vates/VatesAPI/test/MDEWLoadingPresenterTest.h
@@ -9,6 +9,8 @@
 
 #include "MantidVatesAPI/MDEWLoadingPresenter.h"
 #include "MantidVatesAPI/MDLoadingView.h"
+#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 
 #include "MockObjects.h"
 
@@ -243,4 +245,4 @@ void testDepthChanged()
 
 };
 
-#endif
\ No newline at end of file
+#endif
diff --git a/Code/Mantid/Vates/VatesAPI/test/MDHWInMemoryLoadingPresenterTest.h b/Code/Mantid/Vates/VatesAPI/test/MDHWInMemoryLoadingPresenterTest.h
index e4ac2b2a474737534e1a87eef7a8c283dce08579..1b61f8ac85a78c4236b9fe55d6c836bbcd4ed39f 100644
--- a/Code/Mantid/Vates/VatesAPI/test/MDHWInMemoryLoadingPresenterTest.h
+++ b/Code/Mantid/Vates/VatesAPI/test/MDHWInMemoryLoadingPresenterTest.h
@@ -5,6 +5,8 @@
 #include "MockObjects.h"
 
 #include "MantidAPI/AnalysisDataService.h"
+#include "MantidAPI/IMDHistoWorkspace.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "MantidTestHelpers/MDEventsTestHelper.h"
 #include "MantidVatesAPI/FilteringUpdateProgressAction.h"
 #include "MantidVatesAPI/MDHWInMemoryLoadingPresenter.h"
diff --git a/Code/Mantid/Vates/VatesAPI/test/MetaDataExtractorUtilsTest.h b/Code/Mantid/Vates/VatesAPI/test/MetaDataExtractorUtilsTest.h
index be99ebc9564a37afb6c627d74c4b86f23da4ff36..14815dad97b6f80608f702a58e1b4d13cc5cc62f 100644
--- a/Code/Mantid/Vates/VatesAPI/test/MetaDataExtractorUtilsTest.h
+++ b/Code/Mantid/Vates/VatesAPI/test/MetaDataExtractorUtilsTest.h
@@ -11,6 +11,7 @@
 #include <qwt_double_interval.h>
 #include "MantidTestHelpers/MDEventsTestHelper.h"
 #include "MantidAPI/FileFinder.h"
+#include "MantidAPI/ITableWorkspace.h"
 #include "boost/pointer_cast.hpp"
 
 using namespace Mantid::VATES;
@@ -81,4 +82,4 @@ class MetaDataExtractorUtilsTest : public CxxTest::TestSuite
     }
 };
 
-#endif
\ No newline at end of file
+#endif
diff --git a/Code/Mantid/Vates/VatesAPI/test/MockObjects.h b/Code/Mantid/Vates/VatesAPI/test/MockObjects.h
index 9f2f74692bfa6a56754c42235b7847eb8e2d5394..6527be6e5f508d76bff3e839cefbf3873f2bfba2 100644
--- a/Code/Mantid/Vates/VatesAPI/test/MockObjects.h
+++ b/Code/Mantid/Vates/VatesAPI/test/MockObjects.h
@@ -5,7 +5,7 @@
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/IMDIterator.h"
 #include "MantidAPI/IMDWorkspace.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
 #include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 #include "MantidGeometry/MDGeometry/MDTypes.h"
@@ -111,6 +111,12 @@ public:
   }
 
   virtual ~MockIMDWorkspace() {}
+
+private:
+  virtual MockIMDWorkspace *doClone() const {
+    throw std::runtime_error(
+        "Cloning of MockIMDWorkspace is not implemented.");
+  }
 };
 
 
diff --git a/Code/Mantid/Vates/VatesAPI/test/vtkDataSetToScaledDataSetTest.h b/Code/Mantid/Vates/VatesAPI/test/vtkDataSetToScaledDataSetTest.h
index 0155f19ddbe4a9897b32242f15fc99036cc80936..8235b3d61b2387f3b3fef24087a6a4c121fe31b5 100644
--- a/Code/Mantid/Vates/VatesAPI/test/vtkDataSetToScaledDataSetTest.h
+++ b/Code/Mantid/Vates/VatesAPI/test/vtkDataSetToScaledDataSetTest.h
@@ -17,102 +17,83 @@
 #include <vtkDataSet.h>
 #include <vtkFieldData.h>
 #include <vtkFloatArray.h>
+#include <vtkMatrix4x4.h>
+#include <vtkPVChangeOfBasisHelper.h>
+#include <vtkSmartPointer.h>
 #include <vtkUnsignedCharArray.h>
 #include <vtkUnstructuredGrid.h>
 
 using namespace Mantid::DataObjects;
 using namespace Mantid::VATES;
 
-class vtkDataSetToScaledDataSetTest : public CxxTest::TestSuite
-{
+class vtkDataSetToScaledDataSetTest : public CxxTest::TestSuite {
 private:
-  vtkUnstructuredGrid *makeDataSet()
-  {
+  vtkUnstructuredGrid *makeDataSet() {
     FakeProgressAction progressUpdate;
-    MDEventWorkspace3Lean::sptr ws = MDEventsTestHelper::makeMDEW<3>(8,
-                                                                     -10.0,
-                                                                     10.0,
-                                                                     1);
+    MDEventWorkspace3Lean::sptr ws =
+        MDEventsTestHelper::makeMDEW<3>(8, -10.0, 10.0, 1);
     vtkMDHexFactory factory(ThresholdRange_scptr(new NoThresholdRange),
                             VolumeNormalization);
     factory.initialize(ws);
     return vtkUnstructuredGrid::SafeDownCast(factory.create(progressUpdate));
   }
 
-  float *getRangeComp(vtkDataSet *ds, std::string fieldname)
-  {
-    vtkDataArray *arr = ds->GetFieldData()->GetArray(fieldname.c_str());
-    vtkFloatArray *farr = vtkFloatArray::SafeDownCast(arr);
-    static float vals[2];
-    farr->GetTupleValue(0, vals);
-    return vals;
-  }
+  vtkUnstructuredGrid *makeDataSetWithJsonMetadata() {
+    vtkUnstructuredGrid *data = makeDataSet();
 
-  unsigned char *getRangeActiveComp(vtkDataSet *ds, int index)
-  {
-    vtkDataArray *arr = ds->GetFieldData()->GetArray("LabelRangeActiveFlag");
-    vtkUnsignedCharArray *uarr = vtkUnsignedCharArray::SafeDownCast(arr);
-    static unsigned char vals[1];
-    uarr->GetTupleValue(index, vals);
-    return vals;
-  }
+    MetadataJsonManager manager;
+    std::string instrument = "OSIRIS";
+    manager.setInstrument(instrument);
+    std::string jsonString = manager.getSerializedJson();
+
+    MetadataToFieldData convert;
+    VatesConfigurations config;
+    vtkFieldData *fieldData = data->GetFieldData();
+    convert(fieldData, jsonString, config.getMetadataIdJson().c_str());
+
+    data->SetFieldData(fieldData);
 
-  vtkUnstructuredGrid  *makeDataSetWithJsonMetadata()
-  {
-     vtkUnstructuredGrid* data = makeDataSet();
-     
-      MetadataJsonManager manager;
-      std::string instrument = "OSIRIS";
-      manager.setInstrument(instrument);
-      std::string jsonString = manager.getSerializedJson();
-      
-      MetadataToFieldData convert;
-      VatesConfigurations config;
-      vtkFieldData* fieldData = data->GetFieldData();
-      convert(fieldData, jsonString, config.getMetadataIdJson().c_str());
-
-      data->SetFieldData(fieldData);
-
-      return data;
+    return data;
   }
 
 public:
   // This pair of boilerplate methods prevent the suite being created statically
   // This means the constructor isn't called when running other tests
-  static vtkDataSetToScaledDataSetTest *createSuite() { return new vtkDataSetToScaledDataSetTest(); }
-  static void destroySuite( vtkDataSetToScaledDataSetTest *suite ) { delete suite; }
+  static vtkDataSetToScaledDataSetTest *createSuite() {
+    return new vtkDataSetToScaledDataSetTest();
+  }
+  static void destroySuite(vtkDataSetToScaledDataSetTest *suite) {
+    delete suite;
+  }
 
-  void testThrowIfInputNull()
-  {
+  void testThrowIfInputNull() {
     vtkUnstructuredGrid *in = NULL;
     vtkUnstructuredGrid *out = vtkUnstructuredGrid::New();
     TS_ASSERT_THROWS(vtkDataSetToScaledDataSet scaler(in, out),
                      std::runtime_error);
   }
 
-  void testThrowIfOutputNull()
-  {
+  void testThrowIfOutputNull() {
     vtkUnstructuredGrid *in = vtkUnstructuredGrid::New();
     vtkUnstructuredGrid *out = NULL;
     TS_ASSERT_THROWS(vtkDataSetToScaledDataSet scaler(in, out),
                      std::runtime_error);
   }
 
-  void testExecThrowIfNoInit()
-  {
+  void testExecThrowIfNoInit() {
     vtkUnstructuredGrid *in = vtkUnstructuredGrid::New();
     vtkUnstructuredGrid *out = vtkUnstructuredGrid::New();
     vtkDataSetToScaledDataSet scaler(in, out);
     TS_ASSERT_THROWS(scaler.execute(), std::runtime_error);
   }
 
-  void testExecution()
-  {
+  void testExecution() {
     vtkUnstructuredGrid *in = makeDataSet();
     vtkUnstructuredGrid *out = vtkUnstructuredGrid::New();
     vtkDataSetToScaledDataSet scaler(in, out);
     scaler.initialize(0.1, 0.5, 0.2);
     TS_ASSERT_THROWS_NOTHING(scaler.execute());
+
     // Check bounds are scaled
     double *bb = out->GetBounds();
     TS_ASSERT_EQUALS(-1.0, bb[0]);
@@ -121,40 +102,46 @@ public:
     TS_ASSERT_EQUALS(5.0, bb[3]);
     TS_ASSERT_EQUALS(-2.0, bb[4]);
     TS_ASSERT_EQUALS(2.0, bb[5]);
-    // Check that the range metadata is set
-    float *rangeX = getRangeComp(out, "LabelRangeForX");
-    TS_ASSERT_EQUALS(-10.0, rangeX[0]);
-    TS_ASSERT_EQUALS(10.0, rangeX[1]);
-    float *rangeY = getRangeComp(out, "LabelRangeForY");
-    TS_ASSERT_EQUALS(-10.0, rangeY[0]);
-    TS_ASSERT_EQUALS(10.0, rangeY[1]);
-    float *rangeZ = getRangeComp(out, "LabelRangeForZ");
-    TS_ASSERT_EQUALS(-10.0, rangeZ[0]);
-    TS_ASSERT_EQUALS(10.0, rangeZ[1]);
-    // Check that the scaling transform metadata is set
-    float *transformX = getRangeComp(out, "LinearTransformForX");
-    TS_ASSERT_EQUALS(1.0/0.1, transformX[0]);
-    TS_ASSERT_EQUALS(0.0, transformX[1]);
-    float *transformY = getRangeComp(out, "LinearTransformForY");
-    TS_ASSERT_EQUALS(1.0/0.5, transformY[0]);
-    TS_ASSERT_EQUALS(0.0, transformY[1]);
-    float *transformZ = getRangeComp(out, "LinearTransformForZ");
-    TS_ASSERT_EQUALS(1.0/0.2, transformZ[0]);
-    TS_ASSERT_EQUALS(0.0, transformZ[1]);
-    // Check the active label range flags are set
-    unsigned char *activeX = getRangeActiveComp(out, 0);
-    TS_ASSERT_EQUALS(1, activeX[0]);
-    unsigned char *activeY = getRangeActiveComp(out, 1);
-    TS_ASSERT_EQUALS(1, activeY[0]);
-    unsigned char *activeZ = getRangeActiveComp(out, 2);
-    TS_ASSERT_EQUALS(1, activeZ[0]);
+
+    // Check that the Change-Of-Basis-Matrix is correct
+    vtkSmartPointer<vtkMatrix4x4> cobMatrix =
+        vtkPVChangeOfBasisHelper::GetChangeOfBasisMatrix(out);
+    TS_ASSERT_EQUALS(0.1, cobMatrix->Element[0][0])
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[0][1])
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[0][2])
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[0][3])
+
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[1][0])
+    TS_ASSERT_EQUALS(0.5, cobMatrix->Element[1][1])
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[1][2])
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[1][3])
+
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[2][0])
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[2][1])
+    TS_ASSERT_EQUALS(0.2, cobMatrix->Element[2][2])
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[2][3])
+
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[3][0])
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[3][1])
+    TS_ASSERT_EQUALS(0.0, cobMatrix->Element[3][2])
+    TS_ASSERT_EQUALS(1.0, cobMatrix->Element[3][3])
+
+    // Check the bounding box element for axes
+    double bounds[6] = {0, 0, 0, 0, 0, 0};
+    vtkPVChangeOfBasisHelper::GetBoundingBoxInBasis(out, bounds);
+
+    TS_ASSERT_EQUALS(-10.0, bounds[0]);
+    TS_ASSERT_EQUALS(10.0, bounds[1]);
+    TS_ASSERT_EQUALS(-10.0, bounds[2]);
+    TS_ASSERT_EQUALS(10.0, bounds[3]);
+    TS_ASSERT_EQUALS(-10.0, bounds[4]);
+    TS_ASSERT_EQUALS(10.0, bounds[5]);
 
     in->Delete();
     out->Delete();
   }
 
-  void testJsonMetadataExtractionFromScaledDataSet()
-  {
+  void testJsonMetadataExtractionFromScaledDataSet() {
     // Arrange
     vtkUnstructuredGrid *in = makeDataSetWithJsonMetadata();
     vtkUnstructuredGrid *out = vtkUnstructuredGrid::New();
@@ -164,14 +151,14 @@ public:
     scaler.initialize(0.1, 0.5, 0.2);
     TS_ASSERT_THROWS_NOTHING(scaler.execute());
 
-    vtkFieldData* fieldData = out->GetFieldData();
+    vtkFieldData *fieldData = out->GetFieldData();
     MetadataJsonManager manager;
     VatesConfigurations config;
     FieldDataToMetadata convert;
 
     std::string jsonString = convert(fieldData, config.getMetadataIdJson());
     manager.readInSerializedJson(jsonString);
-    
+
     // Assert
     TS_ASSERT("OSIRIS" == manager.getInstrument());
 
@@ -180,5 +167,4 @@ public:
   }
 };
 
-
 #endif /* MANTID_VATESAPI_VTKDATASETTOSCALEDDATASETTEST_H_ */
diff --git a/Code/Mantid/Vates/VatesAPI/test/vtkPeakMarkerFactoryTest.h b/Code/Mantid/Vates/VatesAPI/test/vtkPeakMarkerFactoryTest.h
index 908fbb4fe2911a6c6872a32e85c47e0084c533d4..90a2caa797d411652125172142f53225b9571179 100644
--- a/Code/Mantid/Vates/VatesAPI/test/vtkPeakMarkerFactoryTest.h
+++ b/Code/Mantid/Vates/VatesAPI/test/vtkPeakMarkerFactoryTest.h
@@ -32,7 +32,7 @@ public:
 class MockPeaksWorkspace : public PeaksWorkspace
 {
 public:
-  MOCK_METHOD1(setInstrument, void (Mantid::Geometry::Instrument_const_sptr inst));
+  MOCK_METHOD1(setInstrument, void (const Mantid::Geometry::Instrument_const_sptr& inst));
   MOCK_CONST_METHOD0(clone, Mantid::DataObjects::PeaksWorkspace*());
   MOCK_CONST_METHOD0(getNumberPeaks, int());
   MOCK_METHOD1(removePeak, void (int peakNum) );
diff --git a/Code/Mantid/Vates/VatesSimpleGui/StandAloneExec/CMakeLists.txt b/Code/Mantid/Vates/VatesSimpleGui/StandAloneExec/CMakeLists.txt
index 78aacd83ba3a130099d7d0ac72ea40aa7704655b..411e660230bd5bc704fc9115718974090f9b2c87 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/StandAloneExec/CMakeLists.txt
+++ b/Code/Mantid/Vates/VatesSimpleGui/StandAloneExec/CMakeLists.txt
@@ -48,7 +48,6 @@ VatesSimpleGuiQtWidgets
 VatesSimpleGuiViewWidgets
 MantidQtAPI
 vtkRenderingFreeType
-vtkRenderingFreeTypeOpenGL
 ${POCO_LIBRARIES}
 ${Boost_LIBRARIES}
 )
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/CMakeLists.txt b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/CMakeLists.txt
index 4d436b6790207699e844d05211b897d6ce7fbbe2..939d3b12451870f97ddcc9a985b429431bffa447 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/CMakeLists.txt
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/CMakeLists.txt
@@ -139,7 +139,6 @@ pqApplicationComponents
 pqComponents
 vtkPVServerManagerRendering
 vtkRenderingFreeType
-vtkRenderingFreeTypeOpenGL
 vtksys
 ${QT_LIBRARIES}
 VatesSimpleGuiQtWidgets
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/ColorSelectionWidget.h b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/ColorSelectionWidget.h
index 87216f222ddff571a416f1a3b5b90442d25ca088..4e76c3da3851b25784f41b20ae2b58874322285c 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/ColorSelectionWidget.h
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/ColorSelectionWidget.h
@@ -67,14 +67,27 @@ public:
   double getMaxRange();
   /// Load the default color map
   void loadColorMap(bool viewSwitched);
+  /// Programmatically enable/disable auto scaling of color range
+  void setAutoScale(bool autoScale);
+  /// Set min smaller max, can be used to programmatically set the widgets
+  void setMinMax(double& min, double& max);
+  /// Others need to know if this widget is in the process of updating colors at user's request
+  bool inProcessUserRequestedAutoScale() { return m_inProcessUserRequestedAutoScale; };
+  /// To effectively block callbacks from external (Paraview) color changes
+  void ignoreColorChangeCallbacks(bool ignore);
+  bool isIgnoringColorCallbacks();
 
 public slots:
   /// Set state for all control widgets.
   void enableControls(bool state);
   /// Reset the widget's state.
   void reset();
-  /// Set the color scale range into the range widgets.
+  /// Set the color scale range into the range widgets (only in autoscale mode).
   void setColorScaleRange(double min, double max);
+  /// Slot for when the user clicks on the auto-scale check box
+  void autoCheckBoxClicked(bool wasOnn);
+  /// Set log scaling button
+  void onSetLogScale(bool state);
 
 signals:
   /**
@@ -100,16 +113,14 @@ signals:
   void logScale(int state);
 
 protected slots:
-  /// Set state of the automatic scaling checkbox.
-  void autoOrManualScaling(int state);
   /// Get the new color scale range.
   void getColorScaleRange();
   /// Show available color presets.
   void loadPreset();
   /// Set log color scaling.
   void useLogScaling(int state);
-  /// Set log scaling button
-  void onSetLogScale(bool state);
+  /// Set log color scaling, on user click
+  void useLogScalingClicked(bool wasOn);
 
 private:
   /// Add color maps from XML files.
@@ -123,7 +134,7 @@ private:
   void setEditorStatus(bool status);
   /// Set up the behaviour for with or without log scale.
   void setupLogScale(int state);
-  /// Set min smaller max 
+  /// Set min smaller max, can be used to programmatically set the widgets
   void setMinSmallerMax(double& min, double& max);
 
   boost::scoped_ptr<ColorMapManager> colorMapManager; ///< Keeps track of the available color maps.
@@ -135,8 +146,12 @@ private:
 
   MantidQt::API::MdConstants m_mdConstants;
 
-  pqColorPresetManager *presets; ///< Dialog for choosing color presets
-  Ui::ColorSelectionWidgetClass ui; ///< The mode control widget's UI form
+  pqColorPresetManager *m_presets; ///< Dialog for choosing color presets
+  Ui::ColorSelectionWidgetClass m_ui; ///< The mode control widget's UI form
+  bool m_ignoreColorChangeCallbacks; ///< Effectively blocks/disables callbacks
+
+  /// this is a flag that is set while updating the color scale triggered by the user clicking on the auto-scale box
+  bool m_inProcessUserRequestedAutoScale;
 };
 
 } // SimpleGui
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/ColorUpdater.h b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/ColorUpdater.h
index 2d9862c0e17773fd8c9f9e829b3161596d0411c3..2f2ca3ed65f99322019d26dc042b382ccfbcf5c5 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/ColorUpdater.h
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/ColorUpdater.h
@@ -9,6 +9,8 @@ class pqColorMapModel;
 class pqDataRepresentation;
 class pqPipelineRepresentation;
 
+class vtkObject;
+
 namespace Mantid
 {
 namespace Vates
@@ -91,13 +93,24 @@ public:
   /// Update the internal state.
   void updateState(ColorSelectionWidget *cs);
 
+  /// To update the VSI min/mas lineEdits when the user uses the Paraview color editor
+  void observeColorScaleEdited(pqPipelineRepresentation *repr, ColorSelectionWidget *cs);
+
 private:
+  /// vtkcallback function for color change events coming from the Paraview color editor
+  static void colorScaleEditedCallbackFunc(vtkObject* caller, long unsigned int eventID,
+                                           void *clientData, void *callData);
+  /// vtk callback function for user clicks on log-scale in the Paraview color editor
+  static void logScaleClickedCallbackFunc(vtkObject* caller, long unsigned int eventID,
+                                           void *clientData, void *callData);
+
   void updateLookupTable(pqDataRepresentation* representation); ///< Updates the lookup tables.
-  bool autoScaleState; ///< Holder for the auto scaling state
-  bool logScaleState; ///< Holder for the log scaling state
-  double minScale; ///< Holder for the minimum color range state
-  double maxScale; ///< Holder for the maximum color range state
-  AutoScaleRangeGenerator autoScaleRangeGenerator; ///< Holds a range generator for auto scale.
+
+  bool m_autoScaleState; ///< Holder for the auto scaling state
+  bool m_logScaleState; ///< Holder for the log scaling state
+  double m_minScale; ///< Holder for the minimum color range state
+  double m_maxScale; ///< Holder for the maximum color range state
+  AutoScaleRangeGenerator m_autoScaleRangeGenerator; ///< Holds a range generator for auto scale.
 };
 
 }
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/PeaksTabWidget.h b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/PeaksTabWidget.h
index 690f14bcde8959ae3d03833cbf06332caebbf323..c14c869f911966b7495f625b3900717d5b788a78 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/PeaksTabWidget.h
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/PeaksTabWidget.h
@@ -3,7 +3,7 @@
 
 #include "ui_PeaksTabWidget.h"
 #include "MantidVatesSimpleGuiViewWidgets/WidgetDllOption.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 
 #include <QWidget>
 #include <QTabWidget>
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/PeaksWidget.h b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/PeaksWidget.h
index 8ef83da96f4f509ff2a0bd45385b570f731326ed..ae7aee329f254bf0c1bb27f2e7390d123b9779f3 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/PeaksWidget.h
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/PeaksWidget.h
@@ -3,7 +3,7 @@
 
 #include "ui_PeaksWidget.h"
 #include "MantidVatesSimpleGuiViewWidgets/WidgetDllOption.h"
-#include "MantidAPI/IPeaksWorkspace.h"
+#include "MantidAPI/IPeaksWorkspace_fwd.h"
 
 #include <QWidget>
 #include <string>
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/RebinAlgorithmDialogProvider.h b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/RebinAlgorithmDialogProvider.h
index 7a98cdc0b49af4dab89723010d457cc9a0f24df6..07117b45a03230acaafc5cb36411ae71bf7fcbd8 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/RebinAlgorithmDialogProvider.h
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/RebinAlgorithmDialogProvider.h
@@ -4,7 +4,7 @@
 #include "MantidVatesSimpleGuiViewWidgets/WidgetDllOption.h"
 
 #include "MantidVatesAPI/ADSWorkspaceProvider.h"
-#include "MantidAPI/IMDEventWorkspace.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include "MantidAPI/Algorithm.h"
 #include "MantidQtAPI/AlgorithmDialog.h"
 #include "MantidQtMantidWidgets/SlicingAlgorithmDialog.h"
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/RebinnedSourcesManager.h b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/RebinnedSourcesManager.h
index 0edcc52ad1cdbabf8a772c761fb0160c7b4f5760..cfa2ada094134210aefe4f9f0e1d3c4dea07b30b 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/RebinnedSourcesManager.h
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/inc/MantidVatesSimpleGuiViewWidgets/RebinnedSourcesManager.h
@@ -3,7 +3,7 @@
 
 #include "MantidVatesSimpleGuiViewWidgets/WidgetDllOption.h"
 #include "MantidQtAPI/WorkspaceObserver.h"
-#include "MantidAPI/Workspace.h"
+#include "MantidAPI/Workspace_fwd.h"
 
 // Have to deal with ParaView warnings and Intel compiler the hard way.
 #if defined(__INTEL_COMPILER)
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ColorSelectionWidget.cpp b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ColorSelectionWidget.cpp
index fac0e1e004f057b0bd2a441b65dee0e50c7e3824..0f6b0106a7b086754b4309de9dbd843d9ebbc1f0 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ColorSelectionWidget.cpp
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ColorSelectionWidget.cpp
@@ -1,3 +1,6 @@
+#include <cfloat>
+#include <iostream>
+
 #include "MantidVatesSimpleGuiViewWidgets/ColorSelectionWidget.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidVatesSimpleGuiViewWidgets/ColorMapManager.h"
@@ -26,9 +29,6 @@
 #include <QFile>
 #include <QFileInfo>
 
-#include <iostream>
-#include <cfloat>
-
 namespace Mantid
 {
 namespace Vates
@@ -41,45 +41,56 @@ namespace SimpleGui
  * sub-components and connections.
  * @param parent the parent widget of the mode control widget
  */
-  ColorSelectionWidget::ColorSelectionWidget(QWidget *parent) : QWidget(parent), colorMapManager(new ColorMapManager()), m_minHistoric(0.01), m_maxHistoric(0.01)
+ColorSelectionWidget::ColorSelectionWidget(QWidget *parent): QWidget(parent),
+    colorMapManager(new ColorMapManager()), m_minHistoric(0.01), m_maxHistoric(0.01),
+    m_ignoreColorChangeCallbacks(false), m_inProcessUserRequestedAutoScale(false)
 {
-  this->ui.setupUi(this);
-  this->ui.autoColorScaleCheckBox->setChecked(true);
+  this->m_ui.setupUi(this);
+  this->m_ui.autoColorScaleCheckBox->setChecked(true);
   this->setEditorStatus(false);
 
-  this->presets = new pqColorPresetManager(this);
-  this->presets->restoreSettings();
+  this->m_presets = new pqColorPresetManager(this);
+  this->m_presets->restoreSettings();
 
   this->loadBuiltinColorPresets();
 
   m_minValidator = new QDoubleValidator(this);
   m_maxValidator = new QDoubleValidator(this);
 
-  this->ui.maxValLineEdit->setValidator(m_minValidator);
-  this->ui.minValLineEdit->setValidator(m_maxValidator);
-
-  QObject::connect(this->ui.autoColorScaleCheckBox, SIGNAL(stateChanged(int)),
-  this, SLOT(autoOrManualScaling(int)));
-  QObject::connect(this->ui.presetButton, SIGNAL(clicked()),
-  this, SLOT(loadPreset()));
-  QObject::connect(this->ui.minValLineEdit, SIGNAL(editingFinished()),
-  this, SLOT(getColorScaleRange()));
-  QObject::connect(this->ui.maxValLineEdit, SIGNAL(editingFinished()),
-  this, SLOT(getColorScaleRange()));
-  QObject::connect(this->ui.useLogScaleCheckBox, SIGNAL(stateChanged(int)),
-                   this, SLOT(useLogScaling(int)));
+  this->m_ui.maxValLineEdit->setValidator(m_minValidator);
+  this->m_ui.minValLineEdit->setValidator(m_maxValidator);
+
+  // note the clicked() signals, not stateChanged(), beware of programmatic state changes
+  // comming from user events from other sources (vtk callbacks and signals from the
+  // Paraview color map editor)
+  QObject::connect(this->m_ui.autoColorScaleCheckBox, SIGNAL(clicked(bool)),
+                   this, SLOT(autoCheckBoxClicked(bool)));
+
+  QObject::connect(this->m_ui.presetButton, SIGNAL(clicked()),
+                   this, SLOT(loadPreset()));
+
+  QObject::connect(this->m_ui.minValLineEdit, SIGNAL(editingFinished()),
+                   this, SLOT(getColorScaleRange()));
+
+  QObject::connect(this->m_ui.maxValLineEdit, SIGNAL(editingFinished()),
+                   this, SLOT(getColorScaleRange()));
+
+  QObject::connect(this->m_ui.useLogScaleCheckBox, SIGNAL(clicked(bool)),
+                   this, SLOT(useLogScalingClicked(bool)));
 }
 
 /**
- * This function sets the status of the color selection widgets.
+ * This function sets the status of the color selection min/max widgets. It
+ * doesn't modify the check boxes.
+ *
  * @param status the state to set the color selection widgets to
  */
 void ColorSelectionWidget::setEditorStatus(bool status)
 {
-  this->ui.maxValLabel->setEnabled(status);
-  this->ui.maxValLineEdit->setEnabled(status);
-  this->ui.minValLabel->setEnabled(status);
-  this->ui.minValLineEdit->setEnabled(status);
+  this->m_ui.maxValLabel->setEnabled(status);
+  this->m_ui.maxValLineEdit->setEnabled(status);
+  this->m_ui.minValLabel->setEnabled(status);
+  this->m_ui.minValLineEdit->setEnabled(status);
 }
 
 /**
@@ -88,7 +99,7 @@ void ColorSelectionWidget::setEditorStatus(bool status)
  */
 void ColorSelectionWidget::loadBuiltinColorPresets()
 {
-  pqColorPresetModel *presetModel = this->presets->getModel();
+  pqColorPresetModel *presetModel = this->m_presets->getModel();
 
   // Associate the colormap value with the index a continuous index
 
@@ -120,7 +131,7 @@ void ColorSelectionWidget::loadBuiltinColorPresets()
   {
     int defaultColorMapIndex = this->colorMapManager->getDefaultColorMapIndex(viewSwitched);
 
-    const pqColorMapModel *colorMap = this->presets->getModel()->getColorMap(defaultColorMapIndex);
+    const pqColorMapModel *colorMap = this->m_presets->getModel()->getColorMap(defaultColorMapIndex);
 
     if (colorMap)
     {
@@ -190,23 +201,71 @@ void ColorSelectionWidget::addColorMapsFromXML(vtkPVXMLParser *parser,
 }
 
 /**
- * This function enables or diables the min and max line edits based on state
- * of the automatic scaling checkbox.
- * @param state the current state of the checkbox
+ * Changes the status of the autoScaling checkbox. This is in
+ * principle meant to be used programmatically, when for example the
+ * color map is edited elsewhere (like in the Paraview color editor).
+ *
+ * @param autoScale whether to set auto scaling (on/off)
  */
-void ColorSelectionWidget::autoOrManualScaling(int state)
+void ColorSelectionWidget::setAutoScale(bool autoScale)
 {
-  switch (state)
+  this->m_ui.autoColorScaleCheckBox->setChecked(autoScale);
+  this->setEditorStatus(!autoScale);
+}
+
+/**
+ * Simply set the min and max values for the color scale.
+ *
+ * @param max maximum value (corresponding to the max line edit)
+ * @param min minimum value (corresponding to the max line edit)
+ */
+void ColorSelectionWidget::setMinMax(double& min, double& max)
+{
+  setMinSmallerMax(min, max);
+}
+
+/**
+ * To prevent updates from external callbacks, useful for example
+ * when switching. This is set to true before starting view update
+ * or switch operations, and then to false to re-enable user
+ * requested updates.
+ *
+ * @param ignore whether callbacks should be ignored.
+ */
+void ColorSelectionWidget::ignoreColorChangeCallbacks(bool ignore) {
+  m_ignoreColorChangeCallbacks = ignore;
+}
+
+/**
+ * Get the current state as for ignoring callbacks from color changes.
+ *
+ * @return whether this is currently ignoring color change callbacks.
+ */
+bool ColorSelectionWidget::isIgnoringColorCallbacks() {
+  return m_ignoreColorChangeCallbacks;
+}
+
+/**
+ * This slot enables or diables the min and max line edits based on
+ * the (changing) state of the automatic scaling checkbox. It should
+ * be used for click events on the auto-scale check box.
+ *
+ * @param wasOn current checked state (before the user clicks)
+ */
+void ColorSelectionWidget::autoCheckBoxClicked(bool wasOn)
+{
+  m_inProcessUserRequestedAutoScale = true;
+  if (!wasOn)
   {
-  case Qt::Unchecked:
     this->setEditorStatus(true);
     emit this->autoScale(this);
-    break;
-  case Qt::Checked:
+  }
+  else
+  {
     this->setEditorStatus(false);
     emit this->autoScale(this);
-    break;
   }
+  m_inProcessUserRequestedAutoScale = false;
 }
 
 /**
@@ -215,13 +274,13 @@ void ColorSelectionWidget::autoOrManualScaling(int state)
  */
 void ColorSelectionWidget::loadPreset()
 {
-  this->presets->setUsingCloseButton(false);
-  if (this->presets->exec() == QDialog::Accepted)
+  this->m_presets->setUsingCloseButton(false);
+  if (this->m_presets->exec() == QDialog::Accepted)
   {
     // Get the color map from the selection.
-    QItemSelectionModel *selection = this->presets->getSelectionModel();
+    QItemSelectionModel *selection = this->m_presets->getSelectionModel();
     QModelIndex index = selection->currentIndex();
-    const pqColorMapModel *colorMap = this->presets->getModel()->getColorMap(index.row());
+    const pqColorMapModel *colorMap = this->m_presets->getModel()->getColorMap(index.row());
 
     if (colorMap)
     {
@@ -238,7 +297,7 @@ void ColorSelectionWidget::loadPreset()
  */
 void ColorSelectionWidget::getColorScaleRange()
 {
-  if (this->ui.useLogScaleCheckBox->isChecked())
+  if (this->m_ui.useLogScaleCheckBox->isChecked())
   {
     setupLogScale(true);
   }
@@ -247,8 +306,8 @@ void ColorSelectionWidget::getColorScaleRange()
     setupLogScale(false);
   }
 
-  double min = this->ui.minValLineEdit->text().toDouble();
-  double max = this->ui.maxValLineEdit->text().toDouble();
+  double min = this->m_ui.minValLineEdit->text().toDouble();
+  double max = this->m_ui.maxValLineEdit->text().toDouble();
 
   emit this->colorScaleChanged(min, max);
 }
@@ -260,15 +319,15 @@ void ColorSelectionWidget::getColorScaleRange()
  */
 void ColorSelectionWidget::setColorScaleRange(double min, double max)
 {
-  if (this->ui.autoColorScaleCheckBox->isChecked())
+  if (this->m_ui.autoColorScaleCheckBox->isChecked())
   {
     m_minHistoric = min;
     m_maxHistoric = max;
 
-    this->ui.minValLineEdit->clear();
-    this->ui.minValLineEdit->insert(QString::number(min));
-    this->ui.maxValLineEdit->clear();
-    this->ui.maxValLineEdit->insert(QString::number(max));
+    this->m_ui.minValLineEdit->clear();
+    this->m_ui.minValLineEdit->insert(QString::number(min));
+    this->m_ui.maxValLineEdit->clear();
+    this->m_ui.maxValLineEdit->insert(QString::number(max));
   }
   else
   {
@@ -277,7 +336,22 @@ void ColorSelectionWidget::setColorScaleRange(double min, double max)
 }
 
 /**
- * This function sets the flag for using log color scaling based on the
+ * This slot sets the flag for using log color scaling based on the
+ * associated checkbox. It should be used for click events on the
+ * use-log-scaling check box.
+ *
+ * @param on clicked-state of use-log-scaling
+ */
+void ColorSelectionWidget::useLogScalingClicked(bool on)
+{
+  // Set up values for with or without log scale
+  getColorScaleRange();
+
+  emit this->logScale(on);
+}
+
+/**
+ * This slot sets the flag for using log color scaling based on the
  * associated checkbox.
  * @param state flag for whether or not to use log color scaling
  */
@@ -302,8 +376,8 @@ void ColorSelectionWidget::useLogScaling(int state)
 void ColorSelectionWidget::setupLogScale(int state)
 {
   // Get the min and max values
-  double min = this->ui.minValLineEdit->text().toDouble();
-  double max = this->ui.maxValLineEdit->text().toDouble();
+  double min = this->m_ui.minValLineEdit->text().toDouble();
+  double max = this->m_ui.maxValLineEdit->text().toDouble();
 
   // Make sure that the minimum is smaller or equal to the maximum
   setMinSmallerMax(min, max);
@@ -344,7 +418,7 @@ void ColorSelectionWidget::setupLogScale(int state)
  */
 void ColorSelectionWidget::onSetLogScale(bool state)
 {
-    ui.useLogScaleCheckBox->setChecked(state);
+    m_ui.useLogScaleCheckBox->setChecked(state);
 }
 
 /**
@@ -365,10 +439,10 @@ void ColorSelectionWidget::setMinSmallerMax(double& min, double& max)
     max = m_maxHistoric;
   }
 
-  this->ui.minValLineEdit->clear();
-  this->ui.minValLineEdit->insert(QString::number(min));
-  this->ui.maxValLineEdit->clear();
-  this->ui.maxValLineEdit->insert(QString::number(max));
+  this->m_ui.minValLineEdit->clear();
+  this->m_ui.minValLineEdit->insert(QString::number(min));
+  this->m_ui.maxValLineEdit->clear();
+  this->m_ui.maxValLineEdit->insert(QString::number(max));
 }
 
 /**
@@ -378,10 +452,10 @@ void ColorSelectionWidget::setMinSmallerMax(double& min, double& max)
  */
 void ColorSelectionWidget::enableControls(bool state)
 {
-  this->ui.colorSelectionLabel->setEnabled(state);
-  this->ui.autoColorScaleCheckBox->setEnabled(state);
-  this->ui.useLogScaleCheckBox->setEnabled(state);
-  int cbstate = this->ui.autoColorScaleCheckBox->isChecked();
+  this->m_ui.colorSelectionLabel->setEnabled(state);
+  this->m_ui.autoColorScaleCheckBox->setEnabled(state);
+  this->m_ui.useLogScaleCheckBox->setEnabled(state);
+  int cbstate = this->m_ui.autoColorScaleCheckBox->isChecked();
   if (state)
   {
     switch (cbstate)
@@ -398,7 +472,7 @@ void ColorSelectionWidget::enableControls(bool state)
   {
     this->setEditorStatus(false);
   }
-  this->ui.presetButton->setEnabled(state);
+  this->m_ui.presetButton->setEnabled(state);
 }
 
 /**
@@ -409,7 +483,7 @@ void ColorSelectionWidget::enableControls(bool state)
  */
 bool ColorSelectionWidget::getAutoScaleState()
 {
-  int state = this->ui.autoColorScaleCheckBox->isChecked();
+  int state = this->m_ui.autoColorScaleCheckBox->isChecked();
   if (Qt::Checked == state)
   {
     state -= 1;
@@ -425,7 +499,7 @@ bool ColorSelectionWidget::getAutoScaleState()
  */
 bool ColorSelectionWidget::getLogScaleState()
 {
-  int state = this->ui.useLogScaleCheckBox->isChecked();
+  int state = this->m_ui.useLogScaleCheckBox->isChecked();
   if (Qt::Checked == state)
   {
     state -= 1;
@@ -440,7 +514,7 @@ bool ColorSelectionWidget::getLogScaleState()
  */
 double ColorSelectionWidget::getMinRange()
 {
-  return this->ui.minValLineEdit->text().toDouble();
+  return this->m_ui.minValLineEdit->text().toDouble();
 }
 
 /**
@@ -449,7 +523,7 @@ double ColorSelectionWidget::getMinRange()
  */
 double ColorSelectionWidget::getMaxRange()
 {
-  return this->ui.maxValLineEdit->text().toDouble();
+  return this->m_ui.maxValLineEdit->text().toDouble();
 }
 
 /**
@@ -459,10 +533,10 @@ double ColorSelectionWidget::getMaxRange()
  */
 void ColorSelectionWidget::reset()
 {
-  this->ui.autoColorScaleCheckBox->setChecked(true);
-  this->ui.useLogScaleCheckBox->setChecked(false);
-  this->ui.minValLineEdit->setText("");
-  this->ui.maxValLineEdit->setText("");
+  this->m_ui.autoColorScaleCheckBox->setChecked(true);
+  this->m_ui.useLogScaleCheckBox->setChecked(false);
+  this->m_ui.minValLineEdit->setText("");
+  this->m_ui.maxValLineEdit->setText("");
 }
 
 } // SimpleGui
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ColorUpdater.cpp b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ColorUpdater.cpp
index 38370423130be63988cca24651eadc074e541a71..e8c10889ccae51727cba8f1ba9d20ca25416aa8e 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ColorUpdater.cpp
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ColorUpdater.cpp
@@ -1,9 +1,13 @@
+#include <cmath>
+#include <limits>
+#include <stdexcept>
+
+#include "MantidKernel/Logger.h"
+
 #include "MantidVatesSimpleGuiViewWidgets/ColorUpdater.h"
 #include "MantidVatesSimpleGuiViewWidgets/ColorSelectionWidget.h"
 #include "MantidVatesSimpleGuiViewWidgets/AutoScaleRangeGenerator.h"
 
-#include "MantidKernel/Logger.h"
-
 // Have to deal with ParaView warnings and Intel compiler the hard way.
 #if defined(__INTEL_COMPILER)
   #pragma warning disable 1170
@@ -18,6 +22,10 @@
 #include <pqScalarsToColors.h>
 #include <pqServerManagerModel.h>
 #include <pqSMAdaptor.h>
+
+#include <vtkCallbackCommand.h>
+#include <vtkSMDoubleVectorProperty.h>
+#include <vtkSMIntVectorProperty.h>
 #include <vtkSMProxy.h>
 #include <vtkSMTransferFunctionProxy.h>
 #if defined(__INTEL_COMPILER)
@@ -27,9 +35,6 @@
 #include <QColor>
 #include <QList>
 
-#include <limits>
-#include <stdexcept>
-
 namespace Mantid
 {
   // static logger
@@ -41,10 +46,10 @@ namespace SimpleGui
 {
   
 ColorUpdater::ColorUpdater() :
-  autoScaleState(true),
-  logScaleState(false),
-  minScale(std::numeric_limits<double>::min()),
-  maxScale(std::numeric_limits<double>::max())
+  m_autoScaleState(true),
+  m_logScaleState(false),
+  m_minScale(std::numeric_limits<double>::min()),
+  m_maxScale(std::numeric_limits<double>::max())
 {
 }
 
@@ -59,18 +64,18 @@ ColorUpdater::~ColorUpdater()
 VsiColorScale ColorUpdater::autoScale()
 {
   // Get the custom auto scale.
-  VsiColorScale vsiColorScale =  this->autoScaleRangeGenerator.getColorScale();
+  VsiColorScale vsiColorScale =  this->m_autoScaleRangeGenerator.getColorScale();
 
   // Set the color scale for all sources
-  this->minScale = vsiColorScale.minValue;
-  this->maxScale = vsiColorScale.maxValue;
+  this->m_minScale = vsiColorScale.minValue;
+  this->m_maxScale = vsiColorScale.maxValue;
 
   // If the view 
 
-  this->logScaleState = vsiColorScale.useLogScale;
+  this->m_logScaleState = vsiColorScale.useLogScale;
 
   // Update the lookup tables, i.e. react to a color scale change
-  colorScaleChange(this->minScale, this->maxScale);
+  colorScaleChange(this->m_minScale, this->m_maxScale);
 
   return vsiColorScale;
 }
@@ -79,7 +84,7 @@ void ColorUpdater::colorMapChange(pqPipelineRepresentation *repr,
                                   const pqColorMapModel *model)
 {
   pqScalarsToColors *lut = repr->getLookupTable();
-    if (NULL == lut)
+  if (NULL == lut)
   {
     // Got a bad proxy, so just return
     return;
@@ -125,8 +130,8 @@ void ColorUpdater::colorMapChange(pqPipelineRepresentation *repr,
  */
 void ColorUpdater::colorScaleChange(double min, double max)
 {
-  this->minScale = min;
-  this->maxScale = max;
+  this->m_minScale = min;
+  this->m_maxScale = max;
 
   try
   {
@@ -156,7 +161,6 @@ void ColorUpdater::colorScaleChange(double min, double max)
   }
   catch(std::invalid_argument &)
   {
-
     return;
   }
 }
@@ -172,11 +176,11 @@ void ColorUpdater::updateLookupTable(pqDataRepresentation* representation)
   if (NULL != lookupTable)
   {
     // Set the scalar range values
-    lookupTable->setScalarRange(this->minScale, this->maxScale);
+    lookupTable->setScalarRange(this->m_minScale, this->m_maxScale);
 
     // Set the logarithmic scale
     pqSMAdaptor::setElementProperty(lookupTable->getProxy()->GetProperty("UseLogScale"),
-                                     this->logScaleState);
+                                     this->m_logScaleState);
 
     vtkSMProxy* proxy = representation->getProxy();
     vtkSMProxy* lutProxy = pqSMAdaptor::getProxyProperty(proxy->GetProperty("LookupTable"));
@@ -184,7 +188,7 @@ void ColorUpdater::updateLookupTable(pqDataRepresentation* representation)
 
     if (scalarOpacityFunctionProxy)
     {
-      vtkSMTransferFunctionProxy::RescaleTransferFunction(scalarOpacityFunctionProxy, this->minScale, this->maxScale);
+      vtkSMTransferFunctionProxy::RescaleTransferFunction(scalarOpacityFunctionProxy, this->m_minScale, this->m_maxScale);
     }
 
     // Need to set a lookup table lock here. This does not affect setScalarRange, 
@@ -206,9 +210,9 @@ void ColorUpdater::updateLookupTable(pqDataRepresentation* representation)
  */
 void ColorUpdater::logScale(int state)
 {
-  this->logScaleState = state;
+  this->m_logScaleState = state;
 
-  this->colorScaleChange(this->minScale, this->maxScale);
+  this->colorScaleChange(this->m_minScale, this->m_maxScale);
 }
 
 /**
@@ -218,11 +222,11 @@ void ColorUpdater::logScale(int state)
  */
 void ColorUpdater::updateState(ColorSelectionWidget *cs)
 {
-  this->autoScaleState = cs->getAutoScaleState();
-  this->logScaleState = cs->getLogScaleState();
-  this->minScale = cs->getMinRange();
-  this->maxScale = cs->getMaxRange();
-  this->autoScaleRangeGenerator.updateLogScaleSetting(this->logScaleState);
+  this->m_autoScaleState = cs->getAutoScaleState();
+  this->m_logScaleState = cs->getLogScaleState();
+  this->m_minScale = cs->getMinRange();
+  this->m_maxScale = cs->getMaxRange();
+  this->m_autoScaleRangeGenerator.updateLogScaleSetting(this->m_logScaleState);
 }
 
 /**
@@ -230,7 +234,7 @@ void ColorUpdater::updateState(ColorSelectionWidget *cs)
  */
 bool ColorUpdater::isAutoScale()
 {
-  return this->autoScaleState;
+  return this->m_autoScaleState;
 }
 
 /**
@@ -238,7 +242,7 @@ bool ColorUpdater::isAutoScale()
  */
 bool ColorUpdater::isLogScale()
 {
-  return this->logScaleState;
+  return this->m_logScaleState;
 }
 
 /**
@@ -246,7 +250,7 @@ bool ColorUpdater::isLogScale()
  */
 double ColorUpdater::getMaximumRange()
 {
-  return this->maxScale;
+  return this->m_maxScale;
 }
 
 /**
@@ -254,7 +258,7 @@ double ColorUpdater::getMaximumRange()
  */
 double ColorUpdater::getMinimumRange()
 {
-  return this->minScale;
+  return this->m_minScale;
 }
 
 /**
@@ -263,10 +267,10 @@ double ColorUpdater::getMinimumRange()
  */
 void ColorUpdater::print()
 {
-  std::cout << "Auto Scale: " << this->autoScaleState << std::endl;
-  std::cout << "Log Scale: " << this->logScaleState << std::endl;
-  std::cout << "Min Range: " << this->minScale << std::endl;
-  std::cout << "Max Range: " << this->maxScale << std::endl;
+  std::cout << "Auto Scale: " << this->m_autoScaleState << std::endl;
+  std::cout << "Log Scale: " << this->m_logScaleState << std::endl;
+  std::cout << "Min Range: " << this->m_minScale << std::endl;
+  std::cout << "Max Range: " << this->m_maxScale << std::endl;
 }
 
 /**
@@ -274,8 +278,209 @@ void ColorUpdater::print()
  */
 void ColorUpdater::initializeColorScale()
 {
-  autoScaleRangeGenerator.initializeColorScale();
+  m_autoScaleRangeGenerator.initializeColorScale();
 }
+
+/**
+ * Data that has to be passed to the callback defined below for when
+ * the user edits the color range in the Paraview color map editor,
+ * which needs to notify/modify the VSI simple color selection widget
+ * (update the min/max values).
+ */
+struct ColorCallbackData {
+  ColorUpdater* colorUpdater;
+  ColorSelectionWidget* csel;
+};
+ColorCallbackData ccdata;
+
+/**
+ * Observe the vtkCommand::ModifiedEvent for the proxy property
+ * 'RGBPoints' of a pqColorToolbar. This method installs a VTK
+ * callback for that property (for when the user edits the color scale
+ * interactively in the ParaQ color map editor).
+ *
+ * @param repr Paraview representation whose color editor we have to observe
+ * @param cs The simple color selection widget (the VSI one, not the ParaQ one)
+ */
+void ColorUpdater::observeColorScaleEdited(pqPipelineRepresentation *repr, ColorSelectionWidget *cs)
+{
+  if (!repr)
+    return;
+
+  pqScalarsToColors *lut = repr->getLookupTable();
+  if (!lut)
+    return;
+
+  vtkSMProxy *lutProxy = lut->getProxy();
+  if (!lutProxy)
+    return;
+
+  // User updates the color scale (normally the range)
+  // Prepare the callback. Vtk callbacks: http://www.vtk.org/Wiki/VTK/Tutorials/Callbacks
+  vtkSmartPointer<vtkCallbackCommand> CRChangeCallback = vtkSmartPointer<vtkCallbackCommand>::New();
+  CRChangeCallback->SetCallback(colorScaleEditedCallbackFunc);
+  // note this uses the same ccdata which would misbehave if we wanted multiple VSI instances
+  ccdata.colorUpdater = this;
+  ccdata.csel = cs;
+  CRChangeCallback->SetClientData(&ccdata);
+  // install callback
+  vtkSMDoubleVectorProperty *points =
+    vtkSMDoubleVectorProperty::SafeDownCast(lutProxy->GetProperty("RGBPoints"));
+  if (points)
+    points->AddObserver(vtkCommand::ModifiedEvent, CRChangeCallback);
+
+  // User clicks on the log-scale tick box
+  vtkSmartPointer<vtkCallbackCommand> LogScaleCallback = vtkSmartPointer<vtkCallbackCommand>::New();
+  LogScaleCallback->SetCallback(logScaleClickedCallbackFunc);
+  LogScaleCallback->SetClientData(&ccdata);
+  vtkSMIntVectorProperty *logScaleProp =
+    vtkSMIntVectorProperty::SafeDownCast(lutProxy->GetProperty("UseLogScale"));
+  if (logScaleProp)
+    logScaleProp->AddObserver(vtkCommand::ModifiedEvent, LogScaleCallback);
 }
+
+/**
+ * Callback/hook that runs every time the user edits the color map (in
+ * the Paraview color map/scale editor). This callback must be
+ * attached to the RGBPoints property of the Proxy for the color
+ * lookup table. Note that this goes in the opposite direction than
+ * most if not all of the updates made by the ColorUpdater.
+ *
+ * @param caller the proxy object that calls this (or the callback has been set to it with AddObserver
+ * @param eventID vtkCommand event ID for callbacks, not used here
+ *
+ * @param clientData expects a ColorCallBackData struct that has the ColorUpdater object which set 
+ * the callback, and ColorSelectionWidget object of this VSI window. Never use this method with
+ * different data.
+ *
+ * @param callData callback specific data which takes different forms
+ * depending on events, not used here.
+ */
+void ColorUpdater::colorScaleEditedCallbackFunc(vtkObject *caller, long unsigned int eventID,
+                                                void *clientData, void *callData)
+{
+  UNUSED_ARG(eventID);
+  UNUSED_ARG(callData);
+
+  // this won't help much. You must make sure that clientData is a proper ColorCallBackData struct
+  ColorCallbackData *data = static_cast<ColorCallbackData*>(clientData);
+  if (!data){
+    return;
+  }
+
+  // a pseudo-this
+  ColorUpdater *pThis = data->colorUpdater;
+  if (!pThis){
+    return;
+  }
+
+  ColorSelectionWidget *csel = data->csel;
+  if (!csel){
+    return;
+  }
+
+  // This means that either
+  //
+  // A) the user clicked on the auto-scale check box of the ColorSelectionWidget.
+  // That will change color properties of the ParaQ and trigger this callback. This condition
+  // prevents the callback from ruining the state of the ColorSelectionWidget (which is just
+  // being set by the user and we do not want to update programmatically in this case).
+  //
+  // B) We are in the middle of an operation where we don't want callbacks to update the
+  // color map (for example when switching views or doing several view updates in a row)
+  if (csel->inProcessUserRequestedAutoScale() || csel->isIgnoringColorCallbacks()) {
+    return;
+  }
+
+  // This vector has 4 values per color definition: data value (bin limit) + 3 R-G-B coordinates
+  vtkSMDoubleVectorProperty *RGBPoints = vtkSMDoubleVectorProperty::SafeDownCast(caller);
+  if (!RGBPoints)
+    return;
+
+  double *elems = RGBPoints->GetElements();
+  int noe = RGBPoints->GetNumberOfElements();
+
+  // there should be at least one data value/bin + one triplet of R-G-B values
+  const int subtract = 4;
+  if (noe < subtract)
+    return;
+
+  double newMin = elems[0];
+  double newMax = elems[noe-subtract];
+  if ((std::fabs(newMin - csel->getMinRange()) > 1e-14) ||
+      (std::fabs(csel->getMaxRange() - newMax) > 1e-14)
+      ) {
+    pThis->m_minScale = newMin;
+    pThis->m_maxScale = newMax;
+    csel->setMinMax(pThis->m_minScale, pThis->m_maxScale);
+
+    if (csel->getAutoScaleState()) {
+      csel->setAutoScale(false);
+      pThis->m_autoScaleState = csel->getAutoScaleState();
+    }
+  }
 }
+
+/**
+ * Callback/hook for when the user changes the log scale property of
+ * the color map (in the Paraview color map/scale editor). This
+ * callback must be attached to the UseLogScale property of the Proxy
+ * for the color lookup table. Note that this goes in the opposite
+ * direction than most if not all of the updates made by the
+ * ColorUpdater.
+ *
+ * @param caller the proxy object that calls this (or the callback has
+ * been set to it with AddObserver
+ *
+ * @param eventID vtkCommand event ID for callbacks, not used here
+ *
+ * @param clientData expects a ColorCallBackData struct that has the
+ * ColorUpdater object which set the callback, and
+ * ColorSelectionWidget object of this VSI window. Never use this
+ * method with different data.
+ *
+ * @param callData callback specific data which takes different forms
+ * depending on events, not used here.
+ */
+void ColorUpdater::logScaleClickedCallbackFunc(vtkObject *caller, long unsigned int eventID,
+                                                void *clientData, void *callData)
+{
+  UNUSED_ARG(eventID);
+  UNUSED_ARG(callData);
+
+  // this won't help much if you pass a wrong type.
+  ColorCallbackData *data = static_cast<ColorCallbackData*>(clientData);
+  if (!data){
+    return;
+  }
+
+  // pseudo-this
+  ColorUpdater *pThis = data->colorUpdater;
+  if (!pThis){
+    return;
+  }
+
+  ColorSelectionWidget *csel = data->csel;
+  if (!csel){
+    return;
+  }
+
+  // A single element int vector which actually contains a 0/1 value
+  vtkSMIntVectorProperty *useLogProp = vtkSMIntVectorProperty::SafeDownCast(caller);
+  if (!useLogProp)
+    return;
+
+  int *elems = useLogProp->GetElements();
+  int noe = useLogProp->GetNumberOfElements();
+  if (noe < 1)
+    return;
+
+  int logState = elems[0];
+  pThis->m_logScaleState = logState;
+  csel->onSetLogScale(logState);
 }
+
+} // SimpleGui
+} // Vates
+} // Mantid
+
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/MdViewerWidget.cpp b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/MdViewerWidget.cpp
index fd000d11cbbce181c52d8b31e679b7333b29ce65..3ec19ca82f43934a6833b57d12de96b307326cd9 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/MdViewerWidget.cpp
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/MdViewerWidget.cpp
@@ -239,7 +239,7 @@ void MdViewerWidget::setupUiAndConnections()
   QObject::connect(this->ui.resetViewsStateToAllData,
                    SIGNAL(released()),
                    this,
-                   SLOT(onResetViewToAll()));
+                   SLOT(onResetViewsStateToAllData()));
 
   // Setup rotation point button
   QObject::connect(this->ui.resetCenterToPointButton,
@@ -1039,6 +1039,7 @@ void MdViewerWidget::checkForUpdates()
 /**
  * This function executes the logic for switching views on the main level
  * window.
+ *
  * @param v the view mode to switch to
  */
 void MdViewerWidget::switchViews(ModeControlWidget::Views v)
@@ -1049,8 +1050,8 @@ void MdViewerWidget::switchViews(ModeControlWidget::Views v)
   // normally it will just close child SliceView windows
   this->currentView->closeSubWindows();
   this->disconnectDialogs();
-
   this->hiddenView = this->createAndSetMainViewWidget(this->ui.viewWidget, v);
+  this->ui.colorSelectionWidget->ignoreColorChangeCallbacks(true);
   this->hiddenView->setColorScaleState(this->ui.colorSelectionWidget);
   this->hiddenView->hide();
   this->viewLayout->removeWidget(this->currentView);
@@ -1086,10 +1087,12 @@ void MdViewerWidget::switchViews(ModeControlWidget::Views v)
   this->updateAppState();
   this->initialView = v; 
 
-  // What about this?
   this->setDestroyedListener();
-
   this->currentView->setVisibilityListener();
+
+  // ignore callbacks until as late as possible to keep desired state
+  // regardless of what the Paraview widgets are doing
+  this->ui.colorSelectionWidget->ignoreColorChangeCallbacks(false);
 }
 
 /**
@@ -1140,6 +1143,15 @@ bool MdViewerWidget::eventFilter(QObject *obj, QEvent *ev)
       return true;
     }
   }
+// IMPORTANT FOR MULTIPLE VSI INSTANCES:
+// The following code block seems to be intended for use with multiple instances
+// but it introduces an undesired behaviour in its current form. This is
+// especially visible when we are dealing with source-filter chains (the active
+// source is more likely to be the filter than the underlying source).
+// Instead of setting oricSrc as the active source we need to devise an alternative
+// strategy, e.g. keep track of the last active source of the particlar
+// VSI instance and set this as the active source.
+#if 0
   if(ev->type() == QEvent::WindowActivate)
   {
     if(this->currentView)
@@ -1149,6 +1161,7 @@ bool MdViewerWidget::eventFilter(QObject *obj, QEvent *ev)
       pqActiveObjects::instance().setActiveSource(this->currentView->origSrc);
     }
   }
+#endif
   return VatesViewerInterface::eventFilter(obj, ev);
 }
 
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/VatesParaViewApplication.cpp b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/VatesParaViewApplication.cpp
index 249c3e7f6e7d0e970253f5b9d44bd7079f068be1..7362c46556b042a8e8897a8ec3e994ca189cc7d8 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/VatesParaViewApplication.cpp
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/VatesParaViewApplication.cpp
@@ -55,7 +55,7 @@ namespace Mantid
 
         // Provide ParaView's application core with a path to the running executable
         int argc = 1;
-        std::string exePath = configSvc.getDirectoryOfExecutable();
+        std::string exePath = configSvc.getPathToExecutable();
         std::vector<char> argvConversion(exePath.begin(), exePath.end());
         argvConversion.push_back('\0');
         char *argv[] = {&argvConversion[0]};
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ViewBase.cpp b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ViewBase.cpp
index 20058d0a20452ae295e78d2a7fab437ff664bade..e7deaefe48cf9c6078220fcc1c9bccb18535b7d1 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ViewBase.cpp
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/ViewBase.cpp
@@ -1,5 +1,8 @@
+#include <stdexcept>
+
 #include "MantidVatesSimpleGuiViewWidgets/ViewBase.h"
 #include "MantidVatesSimpleGuiViewWidgets/BackgroundRgbProvider.h"
+#include "MantidVatesSimpleGuiViewWidgets/ColorSelectionWidget.h"
 #include "MantidVatesSimpleGuiViewWidgets/RebinnedSourcesManager.h"
 #include "MantidVatesAPI/ADSWorkspaceProvider.h"
 #include "MantidAPI/IMDEventWorkspace.h"
@@ -35,14 +38,10 @@
   #pragma warning enable 1170
 #endif
 
-#include <QDebug>
 #include <QHBoxLayout>
 #include <QPointer>
 #include <QSet>
 
-#include <boost/optional.hpp>
-#include <stdexcept>
-
 namespace Mantid
 {
 namespace Vates
@@ -84,7 +83,7 @@ pqRenderView* ViewBase::createRenderView(QWidget* widget, QString viewName)
   pqActiveObjects::instance().setActiveView(view);
 
   // Place the widget for the render view in the frame provided.
-  hbox->addWidget(view->getWidget());
+  hbox->addWidget(view->widget());
 
   /// Make a connection to the view's endRender signal for later checking.
   QObject::connect(view, SIGNAL(endRender()),
@@ -223,7 +222,11 @@ void ViewBase::setColorScaleState(ColorSelectionWidget *cs)
 
 /**
  * This function checks the current state from the color updater and
- * processes the necessary color changes.
+ * processes the necessary color changes. Similarly to
+ * setColorForBackground(), this method sets a Vtk callback for
+ * changes to the color map made by the user in the Paraview color
+ * editor.
+ *
  * @param colorScale A pointer to the colorscale widget.
  */
 void ViewBase::setColorsForView(ColorSelectionWidget *colorScale)
@@ -244,6 +247,11 @@ void ViewBase::setColorsForView(ColorSelectionWidget *colorScale)
   {
     this->onLogScale(true);
   }
+
+  // This installs the callback as soon as we have colors for this
+  // view. It needs to keep an eye on whether the user edits the color
+  // map for this (new?) representation in the pqColorToolbar.
+  colorUpdater.observeColorScaleEdited(this->getRep(), colorScale);
 }
 
 /**
diff --git a/Code/Mantid/docs/CMakeLists.txt b/Code/Mantid/docs/CMakeLists.txt
index 39c0475338ccf5e325332402859d7a91767ae489..58113a53555d88bcf9d414322d981288e2f8decb 100644
--- a/Code/Mantid/docs/CMakeLists.txt
+++ b/Code/Mantid/docs/CMakeLists.txt
@@ -66,7 +66,7 @@ if ( SPHINX_FOUND )
   endif ( QT_QCOLLECTIONGENERATOR_EXECUTABLE )
 
   # HTML target
-  option (DOCS_HTML "Add target for building html docs" OFF)
+  option (DOCS_HTML "Add target for building html docs" ON)
   if (DOCS_HTML)
     set ( BUILDER html )
     set ( SPHINX_CONF_DIR ${SPHINX_BUILD_DIR}/conf/${BUILDER} )
@@ -82,6 +82,26 @@ if ( SPHINX_FOUND )
                            EXCLUDE_FROM_DEFAULT_BUILD 1
                            EXCLUDE_FROM_ALL 1)
   endif (DOCS_HTML)
+  
+  
+  # EPUB target
+  option (DOCS_EPUB "Add target for building epub docs" OFF)
+  if (DOCS_EPUB)
+    set ( BUILDER epub )
+    set ( SPHINX_CONF_DIR ${SPHINX_BUILD_DIR}/conf/${BUILDER} )
+    configure_file ( conf.py.in ${SPHINX_CONF_DIR}/conf.py @ONLY )
+    configure_file ( runsphinx.py.in runsphinx_epub.py @ONLY )
+    add_custom_target ( ${TARGET_PREFIX}-epub
+                       COMMAND ${DOCS_RUNNER_EXE} -xq runsphinx_epub.py
+                       DEPENDS Framework MantidPlot MantidQt ${CMAKE_CURRENT_BINARY_DIR}/runsphinx_epub.py ${SPHINX_CONF_DIR}/conf.py                        COMMENT "Building html documentation"
+                       )
+    # Group within VS and exclude from whole build
+    set_target_properties ( ${TARGET_PREFIX}-epub PROPERTIES FOLDER "Documentation"
+                           EXCLUDE_FROM_DEFAULT_BUILD 1
+                           EXCLUDE_FROM_ALL 1)
+  endif (DOCS_EPUB)
+
+  
 
   # LINKCHECK target
   set ( BUILDER linkcheck )
diff --git a/Code/Mantid/docs/conf-html.py b/Code/Mantid/docs/conf-html.py
index 38bafbb6e6df50ed30d1f73a7a647b5e2e5e5ec1..176d3f6292d26735ef8e914bf053a9aa00d7aa44 100644
--- a/Code/Mantid/docs/conf-html.py
+++ b/Code/Mantid/docs/conf-html.py
@@ -27,9 +27,10 @@ html_theme_options = {
     # Remove the local TOC from the nav bar
     'navbar_pagenav': False,
     # Hide the next/previous in the nav bar.
-    'navbar_sidebarrel': False,
+    'navbar_sidebarrel': True,
     # Use the latest version.
     'bootstrap_version': "3",
     # Ensure the nav bar always stays on top of page.
     'navbar_fixed_top': "false",
+
 }
diff --git a/Code/Mantid/docs/conf.py.in b/Code/Mantid/docs/conf.py.in
index 87c3ebadd54677ca27fcd9083bb49ea561a48b8b..d320b5f4d9c4f17c738678ba7046719407db38da 100644
--- a/Code/Mantid/docs/conf.py.in
+++ b/Code/Mantid/docs/conf.py.in
@@ -144,8 +144,36 @@ html_use_smartypants = True
 html_show_sphinx = False
 
 # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-html_show_copyright = True
+html_show_copyright = False
 
+# -- Options for Epub output ---------------------------------------------------
+# This flag determines if a toc entry is inserted again at the beginning of its nested toc listing. 
+# This allows easier navigation to the top of a chapter, but can be confusing because it mixes entries of different depth in one list. 
+# The default value is True.
+epub_tocdup = True
+
+#This setting control the scope of the epub table of contents
+epub_tocscope = 'includehidden' 
+
+#The author of the document. This is put in the Dublin Core metadata. The default value is 'unknown'.
+epub_author = "The Mantid Project"
+
+#The publisher of the document. This is put in the Dublin Core metadata. You may use any sensible string, e.g. the project homepage.
+epub_publisher = "The Mantid Project"
+
+#An identifier for the document. This is put in the Dublin Core metadata. 
+#For published documents this is the ISBN number, but you can also use an alternative scheme, e.g. the project homepage. 
+#The default value is 'unknown'.
+epub_identifier = "www.mantidproject.org"
+
+#The publication scheme for the epub_identifier. This is put in the Dublin Core metadata. 
+#For published books the scheme is 'ISBN'. If you use the project homepage, 'URL' seems reasonable. 
+#The default value is 'unknown'.
+epub_scheme='URL'
+
+#A unique identifier for the document. This is put in the Dublin Core metadata. You may use a random string. 
+#The default value is 'unknown'.
+epub_uid = "Mantid Reference: " + version
 
 # -- Options for selected builder output ---------------------------------------
 
diff --git a/Code/Mantid/docs/source/_static/custom.css b/Code/Mantid/docs/source/_static/custom.css
index 76a9886d9abced4c15b1f2a5a384ba808f4a7131..22b02d8ed0250d1ce0e2a2fae491281125312411 100644
--- a/Code/Mantid/docs/source/_static/custom.css
+++ b/Code/Mantid/docs/source/_static/custom.css
@@ -98,3 +98,14 @@ td, th {
     max-width: 40%;
   }
 }
+/*---------------------Coloured_text-------------------------*/
+
+.red {
+    color:red;
+}
+.blue {
+    color:blue;
+}
+.green {
+    color:green;
+}
diff --git a/Code/Mantid/docs/source/_static/epub.css b/Code/Mantid/docs/source/_static/epub.css
new file mode 100644
index 0000000000000000000000000000000000000000..84357b9ca76f963e9a8727e0463b2831a53c26dc
--- /dev/null
+++ b/Code/Mantid/docs/source/_static/epub.css
@@ -0,0 +1,494 @@
+/*
+ * epub.css_t
+ * ~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- epub theme.
+ *
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+    clear: both;
+}
+
+a:link, a:visited {
+    color: #3333ff;
+    text-decoration: underline;
+}
+
+img {
+    border: 0;
+    max-width: 100%;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+    width: 100%;
+    font-family: sans-serif;
+    font-size: 90%;
+}
+
+div.related h3 {
+    display: none;
+}
+
+div.related ul {
+    margin: 0;
+    padding: 0 0 0 10px;
+    list-style: none;
+}
+
+div.related li {
+    display: inline;
+}
+
+div.related li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+    padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+    float: left;
+    width: 230px;
+    margin-left: -100%;
+    font-size: 90%;
+}
+
+div.sphinxsidebar ul {
+    list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+    margin-left: 20px;
+    list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+    margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 100%;
+}
+
+img {
+    border: 0;
+    max-width: 100%;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+    width: 90%;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 130%;
+}
+
+span.linkdescr {
+    font-style: italic;
+    padding-top: 5px;
+    font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+a.headerlink {
+    visibility: hidden;
+}
+
+div.body p.caption {
+    text-align: inherit;
+}
+
+div.body td {
+    text-align: left;
+}
+
+.field-list ul {
+    padding-left: 100%;
+}
+
+.first {
+    margin-top: 0 !important;
+}
+
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+    margin: 0 0 0.5em 1em;
+    border: 1px solid #ddb;
+    padding: 7px 7px 0 7px;
+    background-color: #ffe;
+    width: 40%;
+    float: right;
+}
+
+p.sidebar-title {
+    font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+    border: 1px solid #ccc;
+    padding: 7px 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 110%;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+p.admonition-title {
+    margin: 0px 10px 5px 0px;
+    font-weight: bold;
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+    border: 0;
+    border-collapse: collapse;
+}
+
+table.docutils td, table.docutils th {
+    padding: 1px 8px 1px 5px;
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 1px solid #aaa;
+}
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+dl {
+    margin-bottom: 15px;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+dt:target, .highlighted {
+    background-color: #ddd;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 110%;
+}
+
+.field-list ul {
+    margin: 0;
+    padding-left: 1em;
+}
+
+.field-list p {
+    margin: 0;
+}
+
+.optional {
+    font-size: 130%;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+.footnote:target  {
+    background-color: #dddddd;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+    font-family: monospace;
+    overflow: auto;
+    overflow-y: hidden;
+}
+
+td.linenos pre {
+    padding: 5px 0px;
+    border: 0;
+    background-color: transparent;
+    color: #aaa;
+}
+
+table.highlighttable {
+    margin-left: 0.5em;
+}
+
+table.highlighttable td {
+    padding: 0 0.5em 0 0.5em;
+}
+
+tt {
+    font-family: monospace;
+}
+
+tt.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+tt.descclassname {
+    background-color: transparent;
+}
+
+tt.xref, a tt {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+    background-color: transparent;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+    vertical-align: middle;
+}
+
+div.body div.math p {
+    text-align: center;
+}
+
+span.eqno {
+    float: right;
+}
+
+/* -- special divs  --------------------------------------------------------- */
+
+div.quotebar {
+    background-color: #e3eff1;
+    max-width: 250px;
+    float: right;
+    font-family: sans-serif;
+    padding: 7px 7px;
+    border: 1px solid #ccc;
+}
+div.footer {
+    background-color: #e3eff1;
+    padding: 3px 8px 3px 0;
+    clear: both;
+    font-family: sans-serif;
+    font-size: 80%;
+    text-align: right;
+}
+
+div.footer a {
+    text-decoration: underline;
+}
+
+img.align-left, .figure.align-left, object.align-left {
+    clear: left;
+    float: left;
+    margin-right: 1em;
+}
+
+img.align-right, .figure.align-right, object.align-right {
+    clear: right;
+    float: right;
+    margin-left: 1em;
+}
+
+img.align-center, .figure.align-center, object.align-center {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.align-left {
+    text-align: left;
+}
+
+.align-center {
+    text-align: center;
+}
+
+.align-right {
+    text-align: right;
+}
+
+/* -- link-target ----------------------------------------------------------- */
+
+.link-target {
+    font-size: 80%;
+}
+
+table .link-target {
+    /* Do not show links in tables, there is not enough space */
+    display: none;
+}
+
+/* -- font-face ------------------------------------------------------------- */
+
+/*
+@font-face {
+    font-family: "LiberationNarrow";
+    font-style: normal;
+    font-weight: normal;
+    src: url("res:///Data/fonts/LiberationNarrow-Regular.otf")
+        format("opentype");
+}
+@font-face {
+    font-family: "LiberationNarrow";
+    font-style: oblique, italic;
+    font-weight: normal;
+    src: url("res:///Data/fonts/LiberationNarrow-Italic.otf")
+        format("opentype");
+}
+@font-face {
+    font-family: "LiberationNarrow";
+    font-style: normal;
+    font-weight: bold;
+    src: url("res:///Data/fonts/LiberationNarrow-Bold.otf")
+        format("opentype");
+}
+@font-face {
+    font-family: "LiberationNarrow";
+    font-style: oblique, italic;
+    font-weight: bold;
+    src: url("res:///Data/fonts/LiberationNarrow-BoldItalic.otf")
+        format("opentype");
+}
+*/
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/_templates/layout.html b/Code/Mantid/docs/source/_templates/layout.html
index 3728141dd335582b8c0efd8d135cd027070203e9..81c75a3d306762706c42f27765f4581ad5b4b3e9 100644
--- a/Code/Mantid/docs/source/_templates/layout.html
+++ b/Code/Mantid/docs/source/_templates/layout.html
@@ -15,5 +15,38 @@
 {% endif %}
 {% endblock %}
 
+{% block footer %}
+<footer class="footer">
+  <div class="container">
+      <ul class="nav navbar-nav" style=" float: right;">
+      {% if theme_source_link_position == "footer" %}
+        <li>{% include "sourcelink.html" %}</li>
+      {% endif %}
+      {% if theme_navbar_sidebarrel %}
+          {% block sidebarrel %}
+            {% include "relations.html" %}
+          {% endblock %}
+       {% endif %}
+          <li><a href="#">Back to top</a></li>
+       </ul>
+    <p>
+    {%- if show_copyright %}
+      {%- if hasdoc('copyright') %}
+        {% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}<br/>
+      {%- else %}
+        {% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}<br/>
+      {%- endif %}
+    {%- endif %}
+    {%- if last_updated %}
+      {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}<br/>
+    {%- endif %}
+    {%- if show_sphinx %}
+      {% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}<br/>
+    {%- endif %}
+    </p>
+  </div>
+</footer>
+{%- endblock %}
+
 {# Custom CSS overrides #}
 {% set bootswatch_css_custom = ['_static/custom.css'] %}
diff --git a/Code/Mantid/docs/source/_templates/navbar.html b/Code/Mantid/docs/source/_templates/navbar.html
index 3990e9310cb9d8d8bcd1c7e52a7a5effef4f1e13..ace61b0efd278b23fbcd4f78704c3941a802c5df 100644
--- a/Code/Mantid/docs/source/_templates/navbar.html
+++ b/Code/Mantid/docs/source/_templates/navbar.html
@@ -42,11 +42,6 @@
                 {% include "navbartoc.html" %}
               {% endif %}
             {% endblock %}
-            {% if theme_navbar_sidebarrel %}
-              {% block sidebarrel %}
-                {% include "relations.html" %}
-              {% endblock %}
-            {% endif %}
             {% block navbarextra %}
             {% endblock %}
             {% if theme_source_link_position == "nav" %}
diff --git a/Code/Mantid/docs/source/algorithms/AbortRemoteJob-v1.rst b/Code/Mantid/docs/source/algorithms/AbortRemoteJob-v1.rst
index b0a08b346b6681053d46f231d6c6334ca180a207..bf611d704d82c0c9373c098a186649414b952b4d 100644
--- a/Code/Mantid/docs/source/algorithms/AbortRemoteJob-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AbortRemoteJob-v1.rst
@@ -15,3 +15,6 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+ 
+.. sourcelink::
+ 
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/AbortRemoteJob-v2.rst b/Code/Mantid/docs/source/algorithms/AbortRemoteJob-v2.rst
index 193f85ff35b623ba0bb273c96e9d56611810e763..2d1f4dd5d100380da3904e70bbed2483cf4eb81a 100644
--- a/Code/Mantid/docs/source/algorithms/AbortRemoteJob-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/AbortRemoteJob-v2.rst
@@ -32,3 +32,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AbsorptionCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/AbsorptionCorrection-v1.rst
index 9c2cc7626e1f497448f1f5667ec5acd8bc5b6074..471c597be764b4007cc817d67d41e605c2371cc5 100644
--- a/Code/Mantid/docs/source/algorithms/AbsorptionCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AbsorptionCorrection-v1.rst
@@ -100,3 +100,5 @@ Output:
     The created workspace has one entry for each spectra: 1
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AddLogDerivative-v1.rst b/Code/Mantid/docs/source/algorithms/AddLogDerivative-v1.rst
index d096bf50fa39e2c060515cc16d2b0d657d3f554b..1caeaa771d9d9e3e4b2b397702779803466b7638 100644
--- a/Code/Mantid/docs/source/algorithms/AddLogDerivative-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AddLogDerivative-v1.rst
@@ -70,3 +70,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AddNote-v1.rst b/Code/Mantid/docs/source/algorithms/AddNote-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..e3c4d0f9651553f3a05263ce39e26ab2cc56b5d0
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/AddNote-v1.rst
@@ -0,0 +1,59 @@
+
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+Creates/updates a time-series log entry on a chosen workspace. The given 
+time stamp and value are appended to the named log entry. If the named
+entry does no exist, then a new log is created. A time stamp must be 
+given in ISO8601 format, e.g. 2010-09-14T04:20:12.
+
+Usage
+-----
+
+**Example - AddNote**
+
+.. testcode:: AddNoteExample
+
+	# Create a host workspace
+	ws = CreateSampleWorkspace()
+   
+	AddNote(ws, Name="my_log", Time="2014-01-01T00:00:00", Value="Initial")
+	AddNote(ws, Name="my_log", Time="2014-01-01T00:30:30", Value="Second")
+	AddNote(ws, Name="my_log", Time="2014-01-01T00:50:00", Value="Final")
+   
+	log = ws.getRun().getLogData("my_log")
+	print "my_log has %i entries" % log.size()
+	for i in range(log.size()):
+		print "\t%s\t%s" %(log.times[i], log.value[i])
+	
+	AddNote(ws, Name="my_log", Time="2014-01-01T00:00:00", Value="New Initial", DeleteExisting=True)
+	AddNote(ws, Name="my_log", Time="2014-01-01T00:30:00", Value="New Final")
+	
+	log = ws.getRun().getLogData("my_log")
+	print "my_log now has %i entries" %log.size()
+	for i in range(log.size()):
+		print "\t%s\t%s" % (log.times[i], log.value[i])
+		
+Output:
+
+.. testoutput:: AddNoteExample
+    :options: +NORMALIZE_WHITESPACE
+	
+	my_log has 3 entries
+            2014-01-01T00:00:00     Initial
+            2014-01-01T00:30:30     Second
+            2014-01-01T00:50:00     Final
+    my_log now has 2 entries
+            2014-01-01T00:00:00     New Initial
+            2014-01-01T00:30:00     New Final  
+
+.. categories::
+
diff --git a/Code/Mantid/docs/source/algorithms/AddPeak-v1.rst b/Code/Mantid/docs/source/algorithms/AddPeak-v1.rst
index f1774a3d93ffa3306ff1a4e808b4a3076dc6ffba..eed591b6ec01918afa5b11185c17fa9c8c683394 100644
--- a/Code/Mantid/docs/source/algorithms/AddPeak-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AddPeak-v1.rst
@@ -36,3 +36,5 @@ Output:
     The number of peaks after adding a peak is: 175
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AddPeakHKL-v1.rst b/Code/Mantid/docs/source/algorithms/AddPeakHKL-v1.rst
index ab768f8c24c9793bc57186c7a4f12c7adb521a09..1f2cf615d04c638454ccb2eea3cddc4f7dcb46de 100644
--- a/Code/Mantid/docs/source/algorithms/AddPeakHKL-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AddPeakHKL-v1.rst
@@ -60,3 +60,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/AddSampleLog-v1.rst b/Code/Mantid/docs/source/algorithms/AddSampleLog-v1.rst
index 6d86b5e2db5715eee8c01bea0faba28119e884a9..5dc96389e1b9e05946da8e96932ccdee87b73b17 100644
--- a/Code/Mantid/docs/source/algorithms/AddSampleLog-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AddSampleLog-v1.rst
@@ -58,4 +58,6 @@ Output:
   [2]
 
 
-.. categories::
\ No newline at end of file
+.. categories::
+
+.. sourcelink::
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/AddSampleLogMultiple-v1.rst b/Code/Mantid/docs/source/algorithms/AddSampleLogMultiple-v1.rst
index 0941ff4ce65836c220a4b624a1eb3ebf1605f3eb..782f8f47f150a485ec161c92499e1005f041f896 100644
--- a/Code/Mantid/docs/source/algorithms/AddSampleLogMultiple-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AddSampleLogMultiple-v1.rst
@@ -47,3 +47,5 @@ Output:
     1.6e-07
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AddTimeSeriesLog-v1.rst b/Code/Mantid/docs/source/algorithms/AddTimeSeriesLog-v1.rst
index d5802fe0ce9bc2591bc649bc8fbaa1633e91c0df..571f064da895c4c22737d5aa4c965e276ef32cee 100644
--- a/Code/Mantid/docs/source/algorithms/AddTimeSeriesLog-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AddTimeSeriesLog-v1.rst
@@ -60,5 +60,7 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
   
 
diff --git a/Code/Mantid/docs/source/algorithms/AlignAndFocusPowder-v1.rst b/Code/Mantid/docs/source/algorithms/AlignAndFocusPowder-v1.rst
index 23e9685ffb8274010a9e2c5a21207441b0552c02..976c31389f21bdef6fe50d3d99e19cc845119a71 100644
--- a/Code/Mantid/docs/source/algorithms/AlignAndFocusPowder-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AlignAndFocusPowder-v1.rst
@@ -58,3 +58,5 @@ You will have to rename :literal:`pg3_mantid_det.cal` manually, as its name in t
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AlignDetectors-v1.rst b/Code/Mantid/docs/source/algorithms/AlignDetectors-v1.rst
index 67cd575bb33046fe91a1d8b0cc64b5d08cb999ad..556b10a9def077c89cd9e559130d0012c8ef701b 100644
--- a/Code/Mantid/docs/source/algorithms/AlignDetectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AlignDetectors-v1.rst
@@ -9,13 +9,41 @@
 Description
 -----------
 
-The offsets are a correction to the dSpacing values and are applied
-during the conversion from time-of-flight to dSpacing as follows:
+This algorithm applies a :ref:`calibration table
+<DiffractionCalibrationWorkspace>` to convert a workspace from
+time-of-flight to dSpacing as described below. The equation in `GSAS
+<https://subversion.xor.aps.anl.gov/trac/pyGSAS>`_ converts from
+d-spacing (:math:`d`) to time-of-flight (:math:`TOF`) by the equation:
 
-.. math:: d = \frac{h}{2m_N} \frac{t.o.f.}{L_{tot} sin \theta} (1+ \rm{offset})
+.. math:: TOF = DIFC * d + DIFA * d^2 + TZERO
 
-The detector offsets can be obtained from either: an OffsetsWorkspace where each pixel has one value,
-the offset; or a .cal file (in the form created by the ARIEL software).
+The manual describes these terms in more detail. Roughly,
+:math:`TZERO` is related to the difference between the measured and
+actual time-of-flight base on emission time from the moderator, :math:`DIFA` is an empirical term (ideally zero), and :math:`DIFC` is
+
+.. math:: DIFC = \frac{2m_N}{h} L_{tot} sin \theta
+
+Measuring peak positions using a crystal with a very well known
+lattice constant will give a good value for converting the data. The
+d-spacing of the data will be calculated using whichever equation
+below is appropriate for solving the quadratic.
+
+When :math:`DIFA = 0` then the solution is just for a line and
+
+.. math:: d = \frac{TOF - TZERO}{DIFC}
+
+For the case of needing to solve the actual quadratic equation
+
+.. math:: d = \frac{-DIFC}{2 DIFA} \pm \sqrt{\frac{TOF}{DIFA} + \left(\frac{DIFC}{2 DIFA}\right)^2 - \frac{TZERO}{DIFA}}
+
+Here the positive root is used when :math:`DIFA > 0` and the negative
+when :math:`DIFA < 0`.
+
+This algorithm always uses a :ref:`calibration table
+<DiffractionCalibrationWorkspace>` which it either reads from the
+`CalibrationWorkspace` property, or uses :ref:`ConvertDiffCal
+<algm-ConvertDiffCal>` or :ref:`LoadCalFile <algm-LoadCalFile>` to
+produce.
 
 **Note:** the workspace that this algorithms outputs is a `Ragged
 Workspace <http://www.mantidproject.org/Ragged_Workspace>`__.
@@ -25,8 +53,9 @@ Restrictions on the input workspace
 
 The input workspace must contain histogram or event data where the X
 unit is time-of-flight and the Y data is raw counts. The
-:ref:`instrument <instrument>` associated with the workspace must be fully
-defined because detector, source & sample position are needed.
+:ref:`instrument <instrument>` associated with the workspace must be
+fully defined because detector, source & sample position are needed if
+an OffsetsWorkspace is provided.
 
 Usage
 -----
@@ -34,7 +63,7 @@ Usage
 **Example: Use offset to move peak in Dspace**
 
 .. testcode:: ExAlignDetectors
-                
+
     ws = CreateSampleWorkspace("Event",NumBanks=1,BankPixelWidth=1)
     ws = MoveInstrumentComponent(Workspace='ws', ComponentName='bank1', X=0.5, RelativePosition=False)
     wsD = ConvertUnits(InputWorkspace='ws',  Target='dSpacing')
@@ -54,3 +83,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AlphaCalc-v1.rst b/Code/Mantid/docs/source/algorithms/AlphaCalc-v1.rst
index 8da688956ff42cbc76ed8b6cccf45df40a429337..91e3ecd78ed5398100a7694e7255a90fc23af9d5 100644
--- a/Code/Mantid/docs/source/algorithms/AlphaCalc-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AlphaCalc-v1.rst
@@ -60,3 +60,5 @@ Output:
    Alpha value: 2.000
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AndMD-v1.rst b/Code/Mantid/docs/source/algorithms/AndMD-v1.rst
index 4f2cc14f282e712ef57126ff24b7373bc25a5d92..c4292d02657b6370bc4e2562d128919d4262e5f2 100644
--- a/Code/Mantid/docs/source/algorithms/AndMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AndMD-v1.rst
@@ -14,3 +14,5 @@ operation is performed element-by-element. A signal of 0.0 means "false"
 and any non-zero signal is "true".
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AnnularRingAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/AnnularRingAbsorption-v1.rst
index 6d0a822f06efe326c117d30e670504ce93633923..6654ca05813362a363f701ad81c8af69687bd61d 100644
--- a/Code/Mantid/docs/source/algorithms/AnnularRingAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AnnularRingAbsorption-v1.rst
@@ -49,3 +49,5 @@ Output:
    Just divide your data by the correction to correct for absorption.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AnvredCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/AnvredCorrection-v1.rst
index a3fb3e4024d227aa9e08f4ba8782468907f49ef3..ed28378e62730f4e49f05f290cc70dc57f088434 100644
--- a/Code/Mantid/docs/source/algorithms/AnvredCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AnvredCorrection-v1.rst
@@ -57,3 +57,5 @@ Usage
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/AppendGeometryToSNSNexus-v1.rst b/Code/Mantid/docs/source/algorithms/AppendGeometryToSNSNexus-v1.rst
index 0555c7114e0622072d60cd6cee42da679d0d32fb..104ea18c9d3ea3a245d3827d3f967498fc65158c 100644
--- a/Code/Mantid/docs/source/algorithms/AppendGeometryToSNSNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AppendGeometryToSNSNexus-v1.rst
@@ -24,3 +24,5 @@ Usage
 This a currently a Proof of Concept algorithm.  If it matures into normal use a usage example must be added.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AppendSpectra-v1.rst b/Code/Mantid/docs/source/algorithms/AppendSpectra-v1.rst
index eb19376bd9cfb8255800c73c4f47dbac5a4bbf3d..ab75a35b7b2ca91aed8384523da651adcd86a077 100644
--- a/Code/Mantid/docs/source/algorithms/AppendSpectra-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AppendSpectra-v1.rst
@@ -72,3 +72,5 @@ Output:
     Workspace 'wsOut' has 10 spectra after AppendSpectra
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ApplyCalibration-v1.rst b/Code/Mantid/docs/source/algorithms/ApplyCalibration-v1.rst
index db2a0ec53e04363e14394862dcf0ad28b30487f9..6a3693e36ece70ff89cdef65b6e39f6b5dd7baeb 100644
--- a/Code/Mantid/docs/source/algorithms/ApplyCalibration-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ApplyCalibration-v1.rst
@@ -75,3 +75,5 @@ Output:
    Position of Detector ID=1103 after ApplyCalibration: 12,3,6
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ApplyDeadTimeCorr-v1.rst b/Code/Mantid/docs/source/algorithms/ApplyDeadTimeCorr-v1.rst
index 080c9e8ec2d1b6ac3ac060b90a8e0c684c680297..4d08ee1e118c9802c091eb74ad3cfbc82ed9991b 100644
--- a/Code/Mantid/docs/source/algorithms/ApplyDeadTimeCorr-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ApplyDeadTimeCorr-v1.rst
@@ -66,9 +66,9 @@ Output:
 
 .. testoutput:: ExCustomDeadTimes
 
-   Spectrum: 0; original: 6643.000; corrected: 6861.714
-   Spectrum: 32; original: 10384.000; corrected: 10928.727
-   Spectrum: 63; original: 8875.000; corrected: 9273.499
+   Spectrum: 0; original: 6643.000; corrected: 7100.833
+   Spectrum: 32; original: 10384.000; corrected: 11559.134
+   Spectrum: 63; original: 8875.000; corrected: 9724.937
 
 **Example - Applying the correction using dead times stored in the Nexus file:**
 
@@ -95,8 +95,10 @@ Output:
 
 .. testoutput:: ExLoadedDeadTimes
 
-   Spectrum: 0; original: 6643.000; corrected: 6670.079
-   Spectrum: 32; original: 10384.000; corrected: 10451.664
-   Spectrum: 63; original: 8875.000; corrected: 8922.105
+   Spectrum: 0; original: 6643.000; corrected: 6697.453
+   Spectrum: 32; original: 10384.000; corrected: 10520.529
+   Spectrum: 63; original: 8875.000; corrected: 8969.891
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ApplyDetailedBalance-v1.rst b/Code/Mantid/docs/source/algorithms/ApplyDetailedBalance-v1.rst
index cd8a8df2b313fc9924c96b39e732ac09b5293255..1d2a847716449f80cec97e141069770c3608e3b3 100644
--- a/Code/Mantid/docs/source/algorithms/ApplyDetailedBalance-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ApplyDetailedBalance-v1.rst
@@ -51,3 +51,5 @@ Output:
    [ 0.35419179  1.00380206  1.58223777  2.09729717  2.55592407]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ApplyPaalmanPingsCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/ApplyPaalmanPingsCorrection-v1.rst
index 40af9ecafb8fd56c2fab386b2f1f30d917c01d21..fddd4f74625a64926ac14c0ea199b68c0874139f 100644
--- a/Code/Mantid/docs/source/algorithms/ApplyPaalmanPingsCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ApplyPaalmanPingsCorrection-v1.rst
@@ -22,6 +22,36 @@ indirect calculate correcteions routine, providing that the sample and container
 are first converted to wavelength and the corrections are interpolated to match
 the sample as demonstrated in the example below.
 
+Workflow
+--------
+
+Depending on the input workspaces provided to the algorithm it may operate in
+one of three ways, each of which is described on a separate workflow diagram.
+
+Container Scale Only
+====================
+
+In the case where only a container workspace and no correction factors are
+provided.
+
+.. diagram:: ApplyPaalmanPingsCorrection-v1_canscaleonly_wkflw.dot
+
+Sample Corrections Only
+=======================
+
+In the case where only correction factors and no container workspace is
+provided.
+
+.. diagram:: ApplyPaalmanPingsCorrection-v1_samplecorrectiononly_wkflw.dot
+
+Full Corrections
+================
+
+In the case where both a container workspace and correction factors are
+provided.
+
+.. diagram:: ApplyPaalmanPingsCorrection-v1_fullcorrection_wkflw.dot
+
 Usage
 -----
 
@@ -74,3 +104,5 @@ Output:
     Type of correction applied: sample_and_can_corrections
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ApplyTransmissionCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/ApplyTransmissionCorrection-v1.rst
index ee9781e7f38dbefc9d227f3405f31b46248a08bd..2d2524e45194389b0da2ba770696e94e4d950bab 100644
--- a/Code/Mantid/docs/source/algorithms/ApplyTransmissionCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ApplyTransmissionCorrection-v1.rst
@@ -17,3 +17,5 @@ Reduction <http://www.mantidproject.org/Reduction_for_HFIR_SANS>`__
 documentation for details.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AsymmetryCalc-v1.rst b/Code/Mantid/docs/source/algorithms/AsymmetryCalc-v1.rst
index 4129abaddfde5f8b6b41baa6043e4dfc77e85e12..c7dc8224585f24458fe239868109a0998644543b 100644
--- a/Code/Mantid/docs/source/algorithms/AsymmetryCalc-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AsymmetryCalc-v1.rst
@@ -10,7 +10,11 @@ Description
 -----------
 
 This algorithm is used to calculate the asymmetry for a Muon workspace.
-The asymmetry is given by:
+It first groups the input workspace according to the spectra numbers
+provided as *ForwardSpectra* and *BackwardSpectra*. If these properties
+are not supplied, the algorithm assumes that the first spectrum in the
+workspace is the forward group and the second one is the backward
+group. It then calculates the asymmetry as:
 
 .. math:: Asymmetry = \frac{F-\alpha B}{F+\alpha B}
 
@@ -26,11 +30,6 @@ the errors in :math:`F-\alpha B` and :math:`F+\alpha B`.
 The output workspace contains one set of data for the time of flight:
 the asymmetry and the asymmetry errors.
 
-.. note::
-   This algorithm does not perform any grouping. The grouping must be
-   done using :ref:`algm-MuonGroupDetectors` or *AutoGroup* option
-   of :ref:`algm-LoadMuonNexus`.
-
 .. [1] See :ref:`algm-AlphaCalc`
 
 Usage
@@ -58,3 +57,5 @@ Output:
    Errors: [ 0.5396295   0.69971423  0.28688766]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Authenticate-v1.rst b/Code/Mantid/docs/source/algorithms/Authenticate-v1.rst
index b90a5bcc7b1fcd520afc3bf8e171b8410aa69db3..b53f067c18984c784d931380089cd4576781979d 100644
--- a/Code/Mantid/docs/source/algorithms/Authenticate-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Authenticate-v1.rst
@@ -16,3 +16,5 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Authenticate-v2.rst b/Code/Mantid/docs/source/algorithms/Authenticate-v2.rst
index a48fd17d891942b630247f7d1fd1b5de33a20bad..785ed8e1011c5dcfaf855414a539cdbde5aae18a 100644
--- a/Code/Mantid/docs/source/algorithms/Authenticate-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/Authenticate-v2.rst
@@ -43,3 +43,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/AverageLogData-v1.rst b/Code/Mantid/docs/source/algorithms/AverageLogData-v1.rst
index 71bc9ef6c1f9d797703c31044fd49adf62cf2262..336134c890fbd444dec47c5f0a58f90cd95df79a 100644
--- a/Code/Mantid/docs/source/algorithms/AverageLogData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/AverageLogData-v1.rst
@@ -46,3 +46,5 @@ Output:
     ChopperStatus5 : 3.942 +/- 0.309
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/BASISReduction-v1.rst b/Code/Mantid/docs/source/algorithms/BASISReduction-v1.rst
index 1b43b0ce20a6480bf75815e52de25ea63f719e62..4d719d853062b12b2d1ea43a8606d47fc47f11d9 100644
--- a/Code/Mantid/docs/source/algorithms/BASISReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/BASISReduction-v1.rst
@@ -26,3 +26,5 @@ Usage
     This algorithm is not meant to be run from the command line.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/BinMD-v1.rst b/Code/Mantid/docs/source/algorithms/BinMD-v1.rst
index 00770efa1cadf9fb8520ca7259b62994ff966734..87b6fcd38a54126b8128ae8cc638755524e37de0 100644
--- a/Code/Mantid/docs/source/algorithms/BinMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/BinMD-v1.rst
@@ -107,4 +107,51 @@ Transformations <http://www.mantidproject.org/BinMD_Coordinate_Transformations>`
 .. figure:: /images/BinMD_Coordinate_Transforms_withLine.png
    :alt: BinMD_Coordinate_Transforms_withLine.png
 
+Usage
+-----
+**Axis Aligned Example**
+
+.. testcode:: AxisAligned
+
+    mdws = CreateMDWorkspace(Dimensions=3, Extents='-10,10,-10,10,-10,10', Names='A,B,C', Units='U,U,U')
+    FakeMDEventData(InputWorkspace=mdws, PeakParams='500000,0,0,0,3')
+    binned_ws = BinMD(InputWorkspace=mdws, AlignedDim0='A,0,10,100', AlignedDim1='B,-10,10,100', AlignedDim2='C,-10,10,100')
+    print "Number of events =", binned_ws.getNEvents()
+
+Output:
+
+.. testoutput:: AxisAligned
+
+    Number of events = 250734
+
+The output looks like the following in the `SliceViewer <http://www.mantidproject.org/MantidPlot:_SliceViewer>`_:
+
+.. image:: /images/BinMD_AxisAligned.png
+    :alt: The sliceveiwer with the axis aligned cut
+
+**Non Axis Aligned Example**
+
+.. testcode:: NonAxisAligned
+
+    import math
+    mdws = CreateMDWorkspace(Dimensions=3, Extents='-10,10,-10,10,-10,10', Names='A,B,C', Units='U,U,U')
+    FakeMDEventData(InputWorkspace=mdws, PeakParams='100000,-5,-5,0,1')
+    FakeMDEventData(InputWorkspace=mdws, PeakParams='100000,0,0,0,1')
+    FakeMDEventData(InputWorkspace=mdws, PeakParams='100000,5,5,0,1')
+    binned_ws = BinMD(InputWorkspace=mdws, AxisAligned=False, BasisVector0='a,unit,1,1,0',BasisVector1='b,unit,-1,1,0',BasisVector2='c,unit,0,0,1',NormalizeBasisVectors=True,Translation=[-10,-10,0], OutputExtents=[0,math.sqrt(2*20*20),-2,2,-10,10], OutputBins=[100, 100, 1] )
+    print "Number of events =", binned_ws.getNEvents()
+
+Output:
+
+.. testoutput:: NonAxisAligned
+
+    Number of events = 300000
+
+The output looks like the following in the `SliceViewer <http://www.mantidproject.org/MantidPlot:_SliceViewer>`_:
+
+.. image:: /images/BinMD_NonAxisAligned.png
+    :alt: The sliceveiwer with the non axis aligned cut
+
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/BinaryOperateMasks-v1.rst b/Code/Mantid/docs/source/algorithms/BinaryOperateMasks-v1.rst
index b87ce6f3db24d477af7f1f76c3b10ec0c3558e49..80dc0851fb4cd3e0a5652304ecbe0e438bf297d3 100644
--- a/Code/Mantid/docs/source/algorithms/BinaryOperateMasks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/BinaryOperateMasks-v1.rst
@@ -61,3 +61,5 @@ Output:
    [ 0.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/BroadcastWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/BroadcastWorkspace-v1.rst
index ffc106aa3b48e11ce42e1e72d9b956a53fe90f6f..ac4e4c529d0a28cc275df56fb9818ca058af1c8a 100644
--- a/Code/Mantid/docs/source/algorithms/BroadcastWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/BroadcastWorkspace-v1.rst
@@ -12,3 +12,5 @@ Description
 BroadcastWorkspace is only available for MPI builds.  It is used to copy a workspace from one process to all the others.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalMuonDeadTime-v1.rst b/Code/Mantid/docs/source/algorithms/CalMuonDeadTime-v1.rst
index 304a2c5611f3802f07f109075af0999bd3be4dfa..a0b72e52cee47488d9de6f93955e91d741856d9b 100644
--- a/Code/Mantid/docs/source/algorithms/CalMuonDeadTime-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalMuonDeadTime-v1.rst
@@ -52,10 +52,12 @@ Output:
 .. testoutput:: CalMuonDeadTime
 
     First five dead times:
-      Spectrum 1 -> -0.6328
-      Spectrum 2 -> -0.5857
-      Spectrum 3 -> -0.5544
-      Spectrum 4 -> -0.6362
-      Spectrum 5 -> -1.0608
+      Spectrum 1 -> -0.3164
+      Spectrum 2 -> -0.2928
+      Spectrum 3 -> -0.2772
+      Spectrum 4 -> -0.3181
+      Spectrum 5 -> -0.5304
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateChiSquared-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateChiSquared-v1.rst
index 6e361be09935b1582bf1c3090f28b4930648e395..09ed39f9e11693adff30cc350d25c32f65cf750e 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateChiSquared-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateChiSquared-v1.rst
@@ -33,9 +33,38 @@ Finally, ChiSquaredWeightedDividedByDOF is
 
 :math:`\chi_{4}^{2} = \chi_{3}^{2} / DOF`
 
+Parameter errors
+================
+
+Setting the Output property to a non-empty string makes the algorithm explore the surface of the :math:`\chi^{2}`
+around its minimum and estimate the standard deviations for the parameters. The value of the property is a base name
+for two output table workspaces: '<Output>_errors' and '<Output>_pdf'. The former workspace contains parameter error
+estimates and the latter shows :math:`\chi^{2}`'s 1d slices along each parameter (keeping all other fixed).
+
+The error table has the following columns:
+
+===============    ===========
+Column             Description
+===============    ===========
+Parameter          Parameter name
+Value              Parameter value passed with the Function property
+Value at Min       The minimum point of the 1d slice of the :math:`\chi^{2}`. If the Function is at the minimum then
+                   Value at Min should be equal to Value.
+Left Error         The negative deviation from the minimum point equivalent to :math:`1\sigma`. Estimated from analisys
+                   of the surface.
+Right Error        The positive deviation from the minimum point equivalent to :math:`1\sigma`. Estimated from analisys
+                   of the surface.
+Quadratic Error    :math:`1\sigma` standard deviation in the quadratic approximation of the surface.
+Chi2 Min           The value of :math:`\chi^{2}` at the minimum relative to the test point.
+===============    ===========
+
+The pdf table contains slices of the :math:`\chi^{2}` along each parameter. It has 3 column per parameter. The first column of the 3
+is the parameter values, the second has the :math:`\chi^{2}` and the third is the probability density function normalised to
+have 1 at the maximum.
+
 Usage
 -----
-**Example - CalculateChiSquared**
+**Example 1**
 
 .. testcode:: CalculateChiSquaredExample
 
@@ -84,5 +113,39 @@ Output:
     Chi squared weighted is 0.0
     Chi squared weighted / DOF is 0.0
     
+**Example 2**
+
+.. testcode::
+    
+    import numpy as np
+    # Create a workspace and fill it with some gaussian data and some noise
+    n = 100
+    x = np.linspace(-10,10,n)
+    y = np.exp(-x*x/2) + np.random.normal(0.0, 0.01, n)
+    e = [1] * n
+    ws = CreateWorkspace(x,y,e)
+
+    # Gefine a Gaussian with exactly the same parameters that were used to 
+    # generate the data
+    fun_t = 'name=Gaussian,Height=%s,PeakCentre=%s,Sigma=%s'
+    fun = fun_t % (1, 0, 1)
+    # Test the chi squared.
+    CalculateChiSquared(fun,ws,Output='Test0')
+    # Check the Test0_errors table and see that the parameters are not at minimum
+
+    # Fit the function
+    res = Fit(fun,ws,Output='out')
+    # res[3] is a table with the fitted parameters
+    nParams = res[3].rowCount() - 1
+    params = [res[3].cell(i,1) for i in range(nParams)]
+    # Build a new function and populate it with the fitted parameters
+    fun = fun_t % tuple(params)
+    # Test the chi squared.
+    CalculateChiSquared(fun,ws,Output='Test1')
+    # Check the Test1_errors table and see that the parameters are at minimum now
+    
+    
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/CalculateCoverageDGS-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateCoverageDGS-v1.rst
index 7710d99134596ff128e7aed8b260a6e5ca2469e2..49d9acb5dd5027bc584204ee0dfdf116e348587a 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateCoverageDGS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateCoverageDGS-v1.rst
@@ -58,3 +58,5 @@ Output:
   
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/CalculateDIFC-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateDIFC-v1.rst
index 696220b5ae40453d645b296fbc8cc6d6e2b7eda6..fd337ea77c87be7ac8b3f69518e4b54469f3c83c 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateDIFC-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateDIFC-v1.rst
@@ -48,3 +48,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/CalculateEfficiency-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateEfficiency-v1.rst
index e1a239533002f90be1d9e1141e2da754e3bcfcf2..28cf323f3d29028b7a5805de00c529400d4f0162 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateEfficiency-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateEfficiency-v1.rst
@@ -36,3 +36,5 @@ Usage
    efficiency = CalculateEfficiency('workspace', MinEfficiency=0.5, MaxEfficiency=1.5)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateFlatBackground-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateFlatBackground-v1.rst
index 11c86ed66f655c341f1ff56d6ce1fcef8bb716b2..9c33f07c1e05eff40bbefbd778cf9a1bd1b6cb41 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateFlatBackground-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateFlatBackground-v1.rst
@@ -79,3 +79,5 @@ Output:
    Calculated Mean background: [ 3.  3.  3.  3.  3.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateGammaBackground-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateGammaBackground-v1.rst
index 959a84fce701c9e989b52999d05d4790455b314a..91b779b3d70c11038ccae7d3f4d15a1523fe992a 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateGammaBackground-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateGammaBackground-v1.rst
@@ -78,3 +78,5 @@ Output:
    Number of corrected spectra: 2
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateMSVesuvio-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateMSVesuvio-v1.rst
index 8eddae38cacec7be66c60c70d46b481db262234b..81e5834c06216537b86ff663261079b658c170a7 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateMSVesuvio-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateMSVesuvio-v1.rst
@@ -57,3 +57,5 @@ References
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculatePeaksHKL-v1.rst b/Code/Mantid/docs/source/algorithms/CalculatePeaksHKL-v1.rst
index e8e1b8ecc373ed26f7740b34a746cb4c04f94170..017696e9c5a2cbfcde5835ac565b3ac4d43fcd3e 100644
--- a/Code/Mantid/docs/source/algorithms/CalculatePeaksHKL-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculatePeaksHKL-v1.rst
@@ -45,3 +45,5 @@ Output:
   Number of Indexed Peaks:  1
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateResolution-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateResolution-v1.rst
index 22d0efa5e72c1d14b53f3093093c6d9a7a7d95e4..5fab063f6b3a5b2ee78a146d79812218acd28407 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateResolution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateResolution-v1.rst
@@ -60,3 +60,5 @@ Usage
   Two Theta: 0.7000
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateSampleTransmission-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateSampleTransmission-v1.rst
index 770b301f127a5763241dcfb08eac40f8da8a92fb..cd732afa6d0e00f1c103d000e4caad819452ec83 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateSampleTransmission-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateSampleTransmission-v1.rst
@@ -26,7 +26,8 @@ Usage
 
 .. testcode:: ExCalculateSampleTransmissionSimple
 
-    ws = CalculateSampleTransmission(WavelengthRange='2.0, 0.1, 10.0', ChemicalFormula='H2-O')
+    ws = CalculateSampleTransmission(WavelengthRange='2.0, 0.1, 10.0',
+                                     ChemicalFormula='H2-O')
 
     print 'Transmission: %f, %f, %f ...' % tuple(ws.readY(0)[:3])
     print 'Scattering: %f, %f, %f ...' % tuple(ws.readY(1)[:3])
@@ -44,8 +45,10 @@ Output:
 
 .. testcode:: ExCalculateSampleTransmissionParams
 
-    ws = CalculateSampleTransmission(WavelengthRange='2.0, 0.1, 10.0', ChemicalFormula='H2-O',
-                                    NumberDensity=0.2, Thickness=0.58)
+    ws = CalculateSampleTransmission(WavelengthRange='2.0, 0.1, 10.0',
+                                     ChemicalFormula='H2-O',
+                                     NumberDensity=0.2,
+                                     Thickness=0.58)
 
     print 'Transmission: %f, %f, %f ...' % tuple(ws.readY(0)[:3])
     print 'Scattering: %f, %f, %f ...' % tuple(ws.readY(1)[:3])
@@ -58,3 +61,5 @@ Output:
     Scattering: 0.998506, 0.998506, 0.998506 ...
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateSlits-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateSlits-v1.rst
index ce0c636a4d758c0d77cf0615659e1c04b8a703dd..d793cf542c960e2e18e73fb5e723479ea09d1832 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateSlits-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateSlits-v1.rst
@@ -37,3 +37,5 @@ Usage
   Slit 2: 0.344 mm
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateTransmission-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateTransmission-v1.rst
index 411864a76cb0d03c73e161da5287af1bf528fac0..0f8a100a577efb373e2e956ee12a935491499831 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateTransmission-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateTransmission-v1.rst
@@ -41,3 +41,5 @@ Uses the algorithm `Fit <algm-Fit>`_ to fit to the calculated
 transmission fraction.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateTransmissionBeamSpreader-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateTransmissionBeamSpreader-v1.rst
index e2d52a2e1c691283de42a66bf35ac5345d10b1e7..71a50f3095f9e0bed59920c4b0b06a18b8f06090 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateTransmissionBeamSpreader-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateTransmissionBeamSpreader-v1.rst
@@ -14,3 +14,5 @@ See `SANS Reduction <http://www.mantidproject.org/Reduction_for_HFIR_SANS>`__
 documentation for details.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateUMatrix-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateUMatrix-v1.rst
index 118c21e30c734cf79c97e8e39650bb55cd8fe0ea..d835e839eb7248c2ccb0f1db5486560aeba30e7e 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateUMatrix-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateUMatrix-v1.rst
@@ -162,3 +162,5 @@ which is the eigenvector corresponding to the largest eigenvalue of
 :math:`HS`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalculateZscore-v1.rst b/Code/Mantid/docs/source/algorithms/CalculateZscore-v1.rst
index 424366f90c930e7268f15902535ece9a30a9235b..1e9c0639ad221002e2a3221716ada9f3016bdf14 100644
--- a/Code/Mantid/docs/source/algorithms/CalculateZscore-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalculateZscore-v1.rst
@@ -51,3 +51,5 @@ Output:
     0.11618485  0.02323697  0.11618485]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CalibrateRectangularDetectors-v1.rst b/Code/Mantid/docs/source/algorithms/CalibrateRectangularDetectors-v1.rst
index c95648178cd48cd71cc6521c8eac000800396e8d..561db96cb82169c04c844ead79b871a43c949d2d 100644
--- a/Code/Mantid/docs/source/algorithms/CalibrateRectangularDetectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CalibrateRectangularDetectors-v1.rst
@@ -57,3 +57,5 @@ and :math:`fwhm` as the peak's fitted width. Then,
 .. seealso :: Algorithm :ref:`algm-EstimateResolutionDiffraction`
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogDownloadDataFiles-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogDownloadDataFiles-v1.rst
index d9adc7808eaea78fb55d685afb06b87ce724f14e..d0ff2cba2be25bed331e54a3cd4e47eefc206d59 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogDownloadDataFiles-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogDownloadDataFiles-v1.rst
@@ -62,3 +62,5 @@ Output:
     ['/home/USERNAME/Desktop/33127010.nxs', '/home/USERNAME/Desktop/33127011.nxs']
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogGetDataFiles-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogGetDataFiles-v1.rst
index 5629dbd026cc9620c7f388eaa297da45ae60a146..3d2babf5ab716418cf28d0a8887bb8fc17204978 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogGetDataFiles-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogGetDataFiles-v1.rst
@@ -40,3 +40,5 @@ Output:
     A datafile with id '33121573' exists.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogGetDataSets-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogGetDataSets-v1.rst
index 02c29638859eda90d49f60489d5dde17caab45ce..cc07f8a6091f97d0c859ca9a9ff52941c39fd373 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogGetDataSets-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogGetDataSets-v1.rst
@@ -32,3 +32,5 @@ Output:
     The number of datafiles in this investigation is: 2
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogKeepAlive-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogKeepAlive-v1.rst
index 6352d16a847bb4708d009bebdc3b5a4fcf4c2f94..755580feafbc57c16d02f5171e49ee2cfe596b80 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogKeepAlive-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogKeepAlive-v1.rst
@@ -26,3 +26,5 @@ Usage
     CatalogKeepALive(Session = session.getPropertyValue("Session"))
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogListInstruments-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogListInstruments-v1.rst
index 2b420ce258a9aedfc5e45b7326722d3ca4bab4ca..41a417a0462e1b8ed491efcd3684154c6a15602f 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogListInstruments-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogListInstruments-v1.rst
@@ -44,3 +44,5 @@ Output:
     The facility of instrument ALF is: ISIS
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogListInvestigationTypes-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogListInvestigationTypes-v1.rst
index a2c8dee0f9aae6bde541570979c86ab9a70b555e..55a220ba9c22e33719a0a2a94e81dbfe186cae25 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogListInvestigationTypes-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogListInvestigationTypes-v1.rst
@@ -39,3 +39,5 @@ Output:
     Investigation type is: unknown
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogLogin-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogLogin-v1.rst
index e851f2a26b23731d46d9d2f80d32148762ae6601..de9f88d30a6ee1f360d03c1e3c36a7240cd1e219 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogLogin-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogLogin-v1.rst
@@ -33,3 +33,5 @@ Output:
     The session ID is: b931877c-3cfb-460e-9e88-ed4257020477
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogLogout-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogLogout-v1.rst
index 5b41ec436da175870c472a7e259e92631e27c9a5..4c5e02a01cdfae4c14239a230460cd52c5a9554c 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogLogout-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogLogout-v1.rst
@@ -26,3 +26,5 @@ Usage
     CatalogLogout(session)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogMyDataSearch-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogMyDataSearch-v1.rst
index 1803d0cf7b2262eb9558c5b1bf83a273daadc630..f530ebda9153adea71225a254e4b96bd5ef7093c 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogMyDataSearch-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogMyDataSearch-v1.rst
@@ -37,3 +37,5 @@ Output:
     The title of the investigation is: Mantid Test Investigation
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogPublish-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogPublish-v1.rst
index e1339fc557e232404ce1d5698be2310113eeafe7..3e17d508178ef9aaf781c0cd4f0601cf8db47edd 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogPublish-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogPublish-v1.rst
@@ -54,3 +54,5 @@ Usage
     )
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CatalogSearch-v1.rst b/Code/Mantid/docs/source/algorithms/CatalogSearch-v1.rst
index a8f58ca7aa7830006d8b5c47ce9563d136ea7ed7..ac4cdab9431366b8956b4ed5bbc6c040415e3ba2 100644
--- a/Code/Mantid/docs/source/algorithms/CatalogSearch-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CatalogSearch-v1.rst
@@ -64,3 +64,7 @@ Output:
      The number of search results returned was: 109
 
 .. categories::
+
+.. sourcelink::
+     :h: Framework/ICat/inc/MantidICat/CatalogSearch.h
+     :cpp: Framework/ICat/src/CatalogSearch.cpp
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/CentroidPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/CentroidPeaks-v1.rst
index cba09f9377bfe1b6c10a3c57b6965da3283e872a..be3b2e2468a66681ca5045f3242ebc6a8d838f68 100644
--- a/Code/Mantid/docs/source/algorithms/CentroidPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CentroidPeaks-v1.rst
@@ -34,3 +34,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CentroidPeaksMD-v1.rst b/Code/Mantid/docs/source/algorithms/CentroidPeaksMD-v1.rst
index 925e43e41a03758a0cba60ba3bf186116b6cceb9..e36680d16e927bd77cdac68941edf68619477896 100644
--- a/Code/Mantid/docs/source/algorithms/CentroidPeaksMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CentroidPeaksMD-v1.rst
@@ -21,3 +21,5 @@ Use :ref:`algm-CentroidPeaksMD-v2` for any new scripts.
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CentroidPeaksMD-v2.rst b/Code/Mantid/docs/source/algorithms/CentroidPeaksMD-v2.rst
index 11b2ae716790c7901b62590c5b6c9c8875f59b19..a41e51de139f38e8806dc6f9ec09b6dbc7436984 100644
--- a/Code/Mantid/docs/source/algorithms/CentroidPeaksMD-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/CentroidPeaksMD-v2.rst
@@ -111,3 +111,5 @@ FindPeaksMD algorithm.
    
    
    .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ChangeBinOffset-v1.rst b/Code/Mantid/docs/source/algorithms/ChangeBinOffset-v1.rst
index 719de26d666e62bb57c7bb7c9ebc34db66a003fc..96f4c884cf842aa6b2d67e08d9668e23e54343cc 100644
--- a/Code/Mantid/docs/source/algorithms/ChangeBinOffset-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ChangeBinOffset-v1.rst
@@ -49,3 +49,5 @@ Usage
   True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ChangeLogTime-v1.rst b/Code/Mantid/docs/source/algorithms/ChangeLogTime-v1.rst
index 44b1afbfb0b016377535cd88ba8f9587393add6e..f225a29aa74974e2a73079fe007973146572a190 100644
--- a/Code/Mantid/docs/source/algorithms/ChangeLogTime-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ChangeLogTime-v1.rst
@@ -45,3 +45,5 @@ Output:
     ModifiedTimes:  [2010-Mar-25 16:09:37.780000000,2010-Mar-25 16:10:11.560998229,2010-Mar-25 16:10:41.514001159,2010-Mar-25 16:11:35.498002319]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ChangePulsetime-v1.rst b/Code/Mantid/docs/source/algorithms/ChangePulsetime-v1.rst
index 4338bdb5b546d5813d289ff54d9d11a425942358..00cd7903937c1b51f2aed21480a6ae8895d3955b 100644
--- a/Code/Mantid/docs/source/algorithms/ChangePulsetime-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ChangePulsetime-v1.rst
@@ -14,3 +14,5 @@ spectra of an :ref:`EventWorkspace <EventWorkspace>`, by adding the given number
 of seconds as specified with ``TimeOffset``.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ChangeTimeZero-v1.rst b/Code/Mantid/docs/source/algorithms/ChangeTimeZero-v1.rst
index cd5ce6770684df16be10edd15d12de109036c26a..2496f234725228a04449eed6c02f0600ed9b6260 100644
--- a/Code/Mantid/docs/source/algorithms/ChangeTimeZero-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ChangeTimeZero-v1.rst
@@ -107,3 +107,5 @@ Output:
   Shifted pulse times:  2002-07-13T14:01:21.474029541  ,  2002-07-13T14:01:57.529106140  , ...
   
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CheckForSampleLogs-v1.rst b/Code/Mantid/docs/source/algorithms/CheckForSampleLogs-v1.rst
index 12660e93946057fb399f0e355b93fa9a4ef47f02..96bb43f5ef7331626b5bc77a3578c803c092eef2 100644
--- a/Code/Mantid/docs/source/algorithms/CheckForSampleLogs-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CheckForSampleLogs-v1.rst
@@ -42,3 +42,5 @@ Output:
     Property DJIA not found
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CheckMantidVersion-v1.rst b/Code/Mantid/docs/source/algorithms/CheckMantidVersion-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..0fa50b05008469d6034f11f449a228a98c97af17
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/CheckMantidVersion-v1.rst
@@ -0,0 +1,49 @@
+
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+Checks if a new release of Mantid is available using the Github API for inspecting the most recent release.  
+In order to reduce API usage and optimise performance the request is sent with a "if-modified-since" header
+with the date of the current release.
+
+This algorithm is run on asynchronously on start-up in release builds and official releases of Mantid.  
+It only outputs messages to the logs and outpus properties, it does not change anything else.
+
+If you want to disable the check on start-up add this to your mantid.user.properties file::
+
+    CheckMantidVersion.OnStartup = 0
+
+Usage
+-----
+
+**Example - CheckMantidVersion**
+
+.. testcode:: CheckMantidVersionExample
+
+    (current_version, most_recent_version, is_new_version_available)=CheckMantidVersion()
+    print "Current Version: " + current_version
+    print "Most Recent Version: " + most_recent_version
+    print "Is a newer version available? " + str(is_new_version_available)
+
+Output:
+
+.. testoutput:: CheckMantidVersionExample
+   :options: +ELLIPSIS, +NORMALIZE_WHITESPACE
+   
+    Current Version: ...
+    Most Recent Version: ...
+    Is a newer version available? ...
+
+
+.. categories::
+
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/CheckWorkspacesMatch-v1.rst b/Code/Mantid/docs/source/algorithms/CheckWorkspacesMatch-v1.rst
index bece0f67830342dc5e93f91deb9175c181823290..76224ee11d1bc53c4aca471a63a43aead3a40229 100644
--- a/Code/Mantid/docs/source/algorithms/CheckWorkspacesMatch-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CheckWorkspacesMatch-v1.rst
@@ -73,3 +73,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/ChopData-v1.rst b/Code/Mantid/docs/source/algorithms/ChopData-v1.rst
index 7bbff2dc07d2c638cb2ed403788d63c977ed4677..5af47a23488e86ba259d7cb5bb5b10d60c25be19 100644
--- a/Code/Mantid/docs/source/algorithms/ChopData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ChopData-v1.rst
@@ -77,3 +77,5 @@ Output:
    The number of bins in the 2nd chop is 48.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ClearInstrumentParameters-v1.rst b/Code/Mantid/docs/source/algorithms/ClearInstrumentParameters-v1.rst
index 4b9891c659f387c400dda159dc5e7364bc250de6..66e328426079aa480af2b3c0d35ace745a9365c0 100644
--- a/Code/Mantid/docs/source/algorithms/ClearInstrumentParameters-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ClearInstrumentParameters-v1.rst
@@ -66,3 +66,5 @@ Usage
   Bank2 was cleared successfully.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ClearMaskFlag-v1.rst b/Code/Mantid/docs/source/algorithms/ClearMaskFlag-v1.rst
index 0a965a329990115d4db600929dcdfb46b43fa01b..a7954af4bf56087bf03c467ee1bfa0471fbdd8a0 100644
--- a/Code/Mantid/docs/source/algorithms/ClearMaskFlag-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ClearMaskFlag-v1.rst
@@ -14,3 +14,5 @@ This algorithm clears the mask flag/bit on all spectra of a workspace.
 .. note:: It does not restore masked data.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ClearUB-v1.rst b/Code/Mantid/docs/source/algorithms/ClearUB-v1.rst
index 49fb6389f3ab3b529e60bd0bf534037310e44535..edf4a3b14df5024990fde3eb29f7abbf55900fed 100644
--- a/Code/Mantid/docs/source/algorithms/ClearUB-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ClearUB-v1.rst
@@ -45,3 +45,5 @@ Output:
    ClearUB has removed the oriented lattice.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CloneMDWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CloneMDWorkspace-v1.rst
index 5f02b9fd8bc557f7ec3c8b0c4cd54d2192002525..3978dd6027783ad63014f92c8a353cdfc231622d 100644
--- a/Code/Mantid/docs/source/algorithms/CloneMDWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CloneMDWorkspace-v1.rst
@@ -25,3 +25,5 @@ with UpdateFileBackEnd=True (if necessary), followed by a simple LoadMD
 call to the file in question.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CloneWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CloneWorkspace-v1.rst
index f708b5aa2a5a0332b10614a4cedfa529533cc912..d1b5458f355d7bade5f3fc35e693e3b86f0729c0 100644
--- a/Code/Mantid/docs/source/algorithms/CloneWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CloneWorkspace-v1.rst
@@ -17,3 +17,5 @@ workspace. It maintains events if the input is an
 :ref:`PeaksWorkspace <PeaksWorkspace>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CollectHB3AExperimentInfo-v1.rst b/Code/Mantid/docs/source/algorithms/CollectHB3AExperimentInfo-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8f3a05d7d27ee3d617f330b55f951ce88d0f9d74
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/CollectHB3AExperimentInfo-v1.rst
@@ -0,0 +1,89 @@
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+This algorithm is to create input workspaces to ConvertCWSDExpToMomentum for 
+HB3A (four-circle single crystal diffractometer in HFIR). 
+
+
+Inputs
+======
+
+The inputs required by algorithm *ConvertHB3AExperimentInfo* are the experiment number, scan numbers
+and selected Pt. numbers. 
+By these parameters, the algorithm can determine the names of the data files and generate a list of 
+detectors for downstream algorithm to create virutal instrument. 
+
+
+OutputWorkspaces
+================
+
+Two TableWorkspaces, which contain experiment information, are returned. 
+
+**InputWorkspace** is a TableWorkspace containing the data files names to be loaded for the experiment. 
+It is required to have 4 columns.  
+They are *Scan*, *Pt*, *Filename* and *StartDetID* respectively. 
+
+A typical HB3A experiment consists of multiple scans, each of which contains multiple measurement point (i.e., Pt). 
+*FileName* is the XML data file for 2D detector information for a specific Scan/Pt pair. 
+*StartDetID* is the starting detector ID of a specific Scan/Pt mapped to the virtual instrument. 
+
+**DetectorTableWorkspace** is a TableWorkspace that list the parameters of all detector pixels belonged 
+to the virtual instrument. 
+The parameters include detector ID in virtual instrument, detector's position in cartesian coordinate,
+and detector's original detector ID. 
+
+
+How to use algorithm with other algorithms
+------------------------------------------
+
+Algorithm *CollectHB3AExperimentInfo* is designed to provide input information for algorithm
+*ConvertCWSDExpToMomentum*, whose output will be used to calculated UB matrix and integrate
+single cystal peaks. 
+
+
+Usage
+-----
+
+**Example - Collect HB3A experiment information for Exp No.355:**
+
+.. testcode:: ExCollect355Info
+
+  CollectHB3AExperimentInfo(ExperimentNumber=355,ScanList=[11,38],PtLists=[-1,11,-1,12],
+      DataDirectory='',
+      Detector2ThetaTolerance=0.01,
+      OutputWorkspace='ExpInfoTable', DetectorTableWorkspace='VirtualInstrumentTable')
+    
+  # Examine
+  expinfows = mtd['ExpInfoTable']
+  virtualdetws = mtd['VirtualInstrumentTable']
+
+  print 'Number of input files = %d' % (expinfows.rowCount())
+  print 'Number of detectors in virtual instrument = %d'%(virtualdetws.rowCount())
+  print 'Virtual detectors are from ID = %d to ID = %d'%(virtualdetws.cell(0,0), virtualdetws.cell(131072-1,0))
+
+
+.. testcleanup:: ExCollect355Info
+
+  DeleteWorkspace(expinfows)
+  DeleteWorkspace(virtualdetws)
+
+
+Output:
+
+.. testoutput:: ExCollect355Info 
+
+  Number of input files = 2
+  Number of detectors in virtual instrument = 131072
+  Virtual detectors are from ID = 1 to ID = 131072
+
+.. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CombinePeaksWorkspaces-v1.rst b/Code/Mantid/docs/source/algorithms/CombinePeaksWorkspaces-v1.rst
index 413c5ed08d6f0636093c2f51abbb31efe4ff20ca..1d3bf040e34af59af0b1831ba25a1f4a5fe2eaf1 100644
--- a/Code/Mantid/docs/source/algorithms/CombinePeaksWorkspaces-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CombinePeaksWorkspaces-v1.rst
@@ -21,3 +21,5 @@ match is found (the search stops at the first match for each
 RHSWorkspace peak) then the peak in the LHSWorkspace is retained.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CompareMDWorkspaces-v1.rst b/Code/Mantid/docs/source/algorithms/CompareMDWorkspaces-v1.rst
index be06d8d7be6e21b6124c832057246cecb3dc29a9..4b25627e07715220bbb642b3a5324a12492dd87a 100644
--- a/Code/Mantid/docs/source/algorithms/CompareMDWorkspaces-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CompareMDWorkspaces-v1.rst
@@ -57,3 +57,5 @@ Usage
     Workspaces mdWs1 and mdWs2  are equal? : False : Comparison result: Box signal does not match (18360 vs 36720)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CompressEvents-v1.rst b/Code/Mantid/docs/source/algorithms/CompressEvents-v1.rst
index adfa3d22c916b4b03575739d97b7fdb97b98abbe..af0a11a7a80f6750521c788f5c773dab12f25c1f 100644
--- a/Code/Mantid/docs/source/algorithms/CompressEvents-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CompressEvents-v1.rst
@@ -61,3 +61,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ComputeSensitivity-v1.rst b/Code/Mantid/docs/source/algorithms/ComputeSensitivity-v1.rst
index e9c4e8a2fb62a5b32ba9654951aba751f8227da4..4d634d0189281f6bdc5c59d7d8f4ddf19d2e835a 100644
--- a/Code/Mantid/docs/source/algorithms/ComputeSensitivity-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ComputeSensitivity-v1.rst
@@ -24,3 +24,5 @@ Usage
 This is a part of the EQSANS workflow algorithm and is not intended to be executed seperately.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConjoinFiles-v1.rst b/Code/Mantid/docs/source/algorithms/ConjoinFiles-v1.rst
index a55cd9280ed3e8f151a4a335495d41efb8ce3cf2..fe9ff5b0622735c19ee3b9e92aa8c5887686be22 100644
--- a/Code/Mantid/docs/source/algorithms/ConjoinFiles-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConjoinFiles-v1.rst
@@ -56,3 +56,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConjoinSpectra-v1.rst b/Code/Mantid/docs/source/algorithms/ConjoinSpectra-v1.rst
index 36a7908de4a997d121a53e58d3e45f2e3f8b9bb0..b1bb1bf6f1b89b3f2c99f3fe1c2b97adebbc5cb5 100644
--- a/Code/Mantid/docs/source/algorithms/ConjoinSpectra-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConjoinSpectra-v1.rst
@@ -82,3 +82,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConjoinWorkspaces-v1.rst b/Code/Mantid/docs/source/algorithms/ConjoinWorkspaces-v1.rst
index c240f292bd0ef8cf61a30def978ed787e261734f..73f522d83fb3ab42814114ec5e3c10d2f025d4fd 100644
--- a/Code/Mantid/docs/source/algorithms/ConjoinWorkspaces-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConjoinWorkspaces-v1.rst
@@ -78,3 +78,5 @@ Output:
     Number of spectra after ConjoinWorkspaces 5
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertAxesToRealSpace-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertAxesToRealSpace-v1.rst
index ac754eb183bf846dd204cce1b95887fe9844a2d5..11f850a241c451df78bf29916dc4a9eb2d234f37 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertAxesToRealSpace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertAxesToRealSpace-v1.rst
@@ -84,3 +84,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/ConvertAxisByFormula-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertAxisByFormula-v1.rst
index b3307a8582dccfa9fc842b555ed3c772e89fef90..38f9d167cfe54248671d8b5be282f33cd1362424 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertAxisByFormula-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertAxisByFormula-v1.rst
@@ -112,3 +112,5 @@ Output:
    New Y title: Doubled Y
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertCWPDMDToSpectra-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertCWPDMDToSpectra-v1.rst
index 6e0de2616029e79ccd5167e976f467bcecadcc6a..f58d3cff9cdebcd91cbe2c86d37469b1d05c5016 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertCWPDMDToSpectra-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertCWPDMDToSpectra-v1.rst
@@ -217,3 +217,5 @@ Output:
   2theta = 127.800000, Y = 0.237738, E = 0.027303
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertCWSDExpToMomentum-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertCWSDExpToMomentum-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..5eff1ac7803867a0801c5d824ff19e0f024f1e8f
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/ConvertCWSDExpToMomentum-v1.rst
@@ -0,0 +1,155 @@
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+This algorithms is to convert an experiment done on reactor-based four-circle instrument
+(such as HFIR HB3A) to a MDEventWorkspace with each MDEvent in momentum space. 
+
+
+In this algorithm's name, ConvertCWSDToMomentum, *CW* stands for constant wave 
+(reactor-source instrument); *SD* stands for single crystal diffraction.
+
+This algorithm takes ??? as inputs.
+
+Futhermore, the unit of the output matrix workspace can be converted to 
+momentum transfer (:math:`Q`). 
+
+
+Outline of algorithm
+####################
+
+1. Create output workspace.
+ * Build a virtual instrument, requiring  
+   - position of source
+   - position of sample
+   - detector ID, position, detector size of pixels
+2. Read in data via table workspace
+ * From each row, (1) file name and (2) starting detector ID are read in.  
+ * Detector position in (virtual) instrument of MDEventWorkspace is compared with the position in MatrixWorkspace 
+ * Momentum is calcualted by goniometry values
+
+
+Input Workspaces
+################
+
+Two TableWorkspaces, which contain experiment information, are required. 
+
+**InputWorkspace** is a TableWorkspace containing the data files names to be loaded for the experiment. 
+It is required to have 4 columns.  
+They are *Scan*, *Pt*, *Filename* and *StartDetID* respectively. 
+
+A typical HB3A experiment consists of multiple scans, each of which contains multiple measurement point (i.e., Pt). 
+*FileName* is the XML data file for 2D detector information for a specific Scan/Pt pair. 
+*StartDetID* is the starting detector ID of a specific Scan/Pt mapped to the virtual instrument. 
+
+**DetectorTableWorkspace** is a TableWorkspace that list the parameters of all detector pixels belonged 
+to the virtual instrument. 
+The parameters include detector ID in virtual instrument, detector's position in cartesian coordinate,
+and detector's original detector ID. 
+
+
+Outputs
+#######
+
+The output is an MDEventWorkspace that stores the data of an HB3A experiment.  
+Every non-zero count recorded by detector is converted to an MDEvent in the 
+output workspace. 
+
+
+MDEvent
++++++++
+
+Each MDEvent in output MDEventWorkspace contain 
+* *Kx*
+* *Ky*
+* *Kz*
+* Signal
+* Error
+* Detector ID
+* Run Number
+
+
+
+Combine Experiment Into One MDEventWorkspace
+--------------------------------------------
+
+One typical HB3A (reactor-based four-circle diffractometer) experiment consists of 
+a set of scans, each of which contains multiple experiment point (labeled as *Pt.* in SPICE). 
+
+Each experiment point is independent to the others. 
+They can have various detector positions, goniometer setup and even sample environment setup.
+
+In order to integrate them into an organized data structure, i.e., *MDEventWorkspace*, 
+a virtual instrument is built in the algorithm. 
+
+Virtual instrument
+==================
+
+A virtual instrument is built in the algorithm. 
+In this virtual instrument, the number of detectors and their position are determined 
+by the number of individual detector's positions in the *experiment*.
+
+
+MDEventWorkspace
+================
+
+There is only one *virtual* instrument and *N* ExperimentInfo.  
+*N* is the total number of experiment points in the *experiment*. 
+
+
+Usage
+-----
+
+**Example - convert SPICE file for HB3A to Fullprof file:**
+
+.. testcode:: ExConvertHB3AToMD
+
+  # Create input table workspaces for experiment information and virtual instrument parameters
+  CollectHB3AExperimentInfo(ExperimentNumber='355', ScanList='11', PtLists='-1,11', 
+      DataDirectory='',
+      OutputWorkspace='ExpInfoTable', DetectorTableWorkspace='VirtualInstrumentTable')
+
+  # Convert to MDWorkspace
+  ConvertCWSDExpToMomentum(InputWorkspace='ExpInfoTable', DetectorTableWorkspace='VirtualInstrumentTable', 
+      OutputWorkspace='QSampleMD', SourcePosition='0,0,2', SamplePosition='0,0,0', PixelDimension='1,2,2,3,3,4,3,3', 
+      Directory='')
+
+  # Find peak in the MDEventWorkspace
+  FindPeaksMD(InputWorkspace='QSampleMD', DensityThresholdFactor=0.10000000000000001, 
+      OutputWorkspace='PeakTable')
+  
+  # Examine
+  mdws = mtd['QSampleMD']
+  print 'Output MDEventWorkspace has %d events.'%(mdws.getNEvents())
+  peakws = mtd['PeakTable']
+  print  'There are %d peaks found in output MDWorkspace'%(peakws.getNumberPeaks())
+  peak = peakws.getPeak(0)
+  qsample = peak.getQSampleFrame()
+  print 'In Q-sample frame, center of peak 0 is at (%.5f, %.5f, %.5f) at detector with ID %d'%(
+      qsample.X(), qsample.Y(), qsample.Z(), peak.getDetectorID())
+    
+.. testcleanup::  ExConvertHB3AToMD
+
+  DeleteWorkspace(Workspace='QSampleMD')
+  DeleteWorkspace(Workspace='ExpInfoTable')
+  DeleteWorkspace(Workspace='VirtualInstrumentTable')
+  DeleteWorkspace(Workspace='PeakTable')
+
+Output:
+
+.. testoutput:: ExConvertHB3AToMD
+
+  Output MDEventWorkspace has 397 events.
+  There are 1 peaks found in output MDWorkspace
+  In Q-sample frame, center of peak 0 is at (-6.95467, -0.06937, 8.14106) at detector with ID 29072
+
+.. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertDiffCal-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertDiffCal-v1.rst
index 283f63f50082c23cf2ff1337fa3b4e65c33d5afe..37ddd84ceabd61ee6ef7f7669f2b991b41998ec6 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertDiffCal-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertDiffCal-v1.rst
@@ -37,3 +37,5 @@ data download due to its size. It be downloaded from
                           OutputWorkspace="PG3_cal")
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertEmptyToTof-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertEmptyToTof-v1.rst
index cce8d972a22fac287af25ec83b649be6885716c3..917c8f09d348c5800db4385427c31d3b894eb453 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertEmptyToTof-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertEmptyToTof-v1.rst
@@ -27,3 +27,5 @@ Instead of using the fields above (ListOfSpectraIndices and ListOfChannelIndices
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertFromDistribution-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertFromDistribution-v1.rst
index 87dd5d009176e1988aed4fb1ac648fe7537ad616..ac1b22ff62284bc7752bd4b55aa19f8bf5f055fe 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertFromDistribution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertFromDistribution-v1.rst
@@ -46,3 +46,5 @@ Output:
     Is the workspace a distribution? False
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertMDHistoToMatrixWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertMDHistoToMatrixWorkspace-v1.rst
index 9810cb87c197471004798677331d59d89a34dbc7..15652a49f96807ca6833e0f431221f6e32e4c06f 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertMDHistoToMatrixWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertMDHistoToMatrixWorkspace-v1.rst
@@ -61,3 +61,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertSnsRoiFileToMask-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertSnsRoiFileToMask-v1.rst
index e2e1af532c180b10739a3af854666d95fb9a9e80..6607db9e665bf7c7549cc8fcd1ec2c6022cffee9 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertSnsRoiFileToMask-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertSnsRoiFileToMask-v1.rst
@@ -56,3 +56,5 @@ Output:
     os.remove(os.path.join(".", mask_file))
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertSpectrumAxis-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertSpectrumAxis-v1.rst
index 40354d149e21e7601b4ebbec97c683ba816c9efc..9172723007ca8fb8ac484ffc63b90aa53a56e482 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertSpectrumAxis-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertSpectrumAxis-v1.rst
@@ -45,3 +45,5 @@ Usage
    Final theta value: 0.129645 (degrees)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertSpectrumAxis-v2.rst b/Code/Mantid/docs/source/algorithms/ConvertSpectrumAxis-v2.rst
index af1c3cfc86ed8fac25180aa84677e8dc89de0a39..64b01e96d9989ce3021564b8a04c0afe3a74ff04 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertSpectrumAxis-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertSpectrumAxis-v2.rst
@@ -59,3 +59,5 @@ Usage
    Final Q value: 0.006088 (A^-1)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertSpiceDataToRealSpace-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertSpiceDataToRealSpace-v1.rst
index 242bb26224c6662663c046bf45a257b6cd7afa80..a8dd3a8f6e40ebe480482a80a5bc4f8f5001277c 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertSpiceDataToRealSpace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertSpiceDataToRealSpace-v1.rst
@@ -207,3 +207,5 @@ Output:
   Number of events = 2684
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertTableToMatrixWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertTableToMatrixWorkspace-v1.rst
index 5b0b74172a73b1c2ebf2a1a1b8f1b9e4534eb8c1..549f6a604a753b56dd1a21bc0f6eec078491edee 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertTableToMatrixWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertTableToMatrixWorkspace-v1.rst
@@ -46,4 +46,6 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToDetectorFaceMD-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToDetectorFaceMD-v1.rst
index 51007f3ee26607e605cd7c3c106557c5578736f2..67ceea7278cea2e58213ac2fccc7ed167923c45c 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToDetectorFaceMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToDetectorFaceMD-v1.rst
@@ -53,3 +53,5 @@ a 4D `MDEventWorkspace <http://www.mantidproject.org/MDEventWorkspace>`_. The fo
 number, allowing you to easily pick a bank to view.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToDiffractionMDWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToDiffractionMDWorkspace-v1.rst
index 21a59d9438ee803b71d981df86e8d23bce373615..788e1a09da1dbc94f80910766011520054db2f20 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToDiffractionMDWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToDiffractionMDWorkspace-v1.rst
@@ -111,3 +111,5 @@ Usage
    Workspace Type is:  MDEventWorkspace<MDLeanEvent,3>
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToDiffractionMDWorkspace-v2.rst b/Code/Mantid/docs/source/algorithms/ConvertToDiffractionMDWorkspace-v2.rst
index 829317c03af0d85d06e9ee6628c60c60c5aceeba..9f21b032cb39a98564714f4e3df82905bae0a5d3 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToDiffractionMDWorkspace-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToDiffractionMDWorkspace-v2.rst
@@ -87,3 +87,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToDistribution-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToDistribution-v1.rst
index 0fe52f0238ccfc67d202608e305a824f30faf066..fc6885753f777e12b7b8ea6d85f628e340b5ac31 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToDistribution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToDistribution-v1.rst
@@ -50,3 +50,5 @@ Output:
     The largest of which is 0.0415 counts.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToEventWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToEventWorkspace-v1.rst
index 2abb449109e14642d1731ddb72862c8001a0a6e5..15217a14e9ce8d18b937d3c942f87b2264222be7 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToEventWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToEventWorkspace-v1.rst
@@ -29,3 +29,5 @@ Note that using ``GenerateZeros`` or ``GenerateMultipleEvents`` may use a
 lot of memory!
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToHistogram-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToHistogram-v1.rst
index 07918b263a5bdb2664504203f28efd9a4096822c..ba86710722ecba4f09ceb4f5f6fbb87932be2c87 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToHistogram-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToHistogram-v1.rst
@@ -15,3 +15,5 @@ Once executed, the ``OutputWorkspace`` will contain histogram data where the
 bin width is guessed from the spacing between the input X points.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToMD-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToMD-v1.rst
index 69ae6b171053adc796871bea5539eaa674a3f50f..5c5568c605567a0b81efea401841a87de571be04 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToMD-v1.rst
@@ -285,3 +285,5 @@ This example produces 3-dimensional dataset, with a temperature axis.
    --------------------------------------------
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToMDMinMaxGlobal-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToMDMinMaxGlobal-v1.rst
index 7dfccf820fdcf64d567b141f9c3a3239a24617ee..f61b6e7430f752a6ff2e0858d9490d6dd123a601 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToMDMinMaxGlobal-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToMDMinMaxGlobal-v1.rst
@@ -129,3 +129,5 @@ Usage
 
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToMDMinMaxLocal-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToMDMinMaxLocal-v1.rst
index bd00e76fcb6b7ce338d64887b2c6d0bd661d00df..5483d625eb8c2a3df87cd62d4f196da3fc2b284c 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToMDMinMaxLocal-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToMDMinMaxLocal-v1.rst
@@ -120,3 +120,5 @@ Usage
    
   
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToMatrixWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToMatrixWorkspace-v1.rst
index 447d34f8f5f145f0b79520a64baecc54292c7106..72b35b5bc5c5e32938cf61614d6ab2254dd2bfd0 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToMatrixWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToMatrixWorkspace-v1.rst
@@ -54,3 +54,5 @@ Output:
    51200 17
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToPointData-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToPointData-v1.rst
index d993f47ca18a7e3fbedb80580a6bdaa56369e525..2eff633e845b951fa22402a418a595fd5b8aace2 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToPointData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToPointData-v1.rst
@@ -14,3 +14,5 @@ The ``InputWorkspace`` must contain histogram data. Once executed the
 the centre points of the input bins.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToReflectometryQ-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToReflectometryQ-v1.rst
index 1d1019710f14315fca467fd298d022be0cca8e94..7c75f285bdd00085e30d2d4409f6578aff3ef2ce 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToReflectometryQ-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToReflectometryQ-v1.rst
@@ -36,9 +36,9 @@ algorithm will perform one of three possible transformations.
 
 where
 
-:math:`Q_x = \frac{2\pi}{\lambda}(sin\theta_f + sin\theta_i)`
+:math:`Q_x = \frac{2\pi}{\lambda}(cos\theta_f - cos\theta_i)`
 
-:math:`Q_z = \frac{2\pi}{\lambda}(cos\theta_f - cos\theta_i)`
+:math:`Q_z = \frac{2\pi}{\lambda}(sin\theta_f + sin\theta_i)`
 
 :math:`K_i = \frac{2\pi}{\lambda}sin\theta_i`
 
@@ -52,4 +52,76 @@ You will usually want to rebin using :ref:`algm-BinMD` or
 :ref:`algm-SliceMD` after transformation because the output workspaces
 are not regularly binned.
 
+Binning Methods
+###############
+
+The *Method* property allows the binning method used when applying the
+coordinate transformations to be selected. The default method,
+*Centre*, takes center point of each input bin, and locates the
+corresponding output bin, adding the input bins value to it. Centre point rebinning is faster.
+
+*NormalisedPolygon* is a more sophisticated approach. It constructs
+a polygon using the boundaries of the input bin, then transforms that polygon
+into the output coordinates, and then searches for intersections with the
+output bins. The value added to each output bin is proportional to size of the
+overlap with the input bin. The normalised polygon approach gives better accuracy.
+
+Usage
+-----
+
+**Example - Normalised Polygon transformation**
+
+.. testcode:: ExConvReflQSimple
+
+    workspace_name = "POLREF4699"
+    workspace_nexus_file = workspace_name + ".nxs"
+
+    Load(Filename=workspace_nexus_file,OutputWorkspace=workspace_name)
+    X = mtd[workspace_name]
+    X = ConvertUnits(InputWorkspace=X,Target="Wavelength",AlignBins="1")
+    # Reference intensity to normalise by
+    CropWorkspace(InputWorkspace=X,OutputWorkspace='Io',XMin=0.8,XMax=14.5,StartWorkspaceIndex=2,EndWorkspaceIndex=2)
+    # Crop out transmission and noisy data
+    CropWorkspace(InputWorkspace=X,OutputWorkspace='D',XMin=0.8,XMax=14.5,StartWorkspaceIndex=3)
+    Io=mtd['Io']
+    D=mtd['D']
+
+    # Peform the normalisation step
+    Divide(LHSWorkspace=D,RHSWorkspace=Io,OutputWorkspace='I',AllowDifferentNumberSpectra='1',ClearRHSWorkspace='1')
+    I=mtd['I'][0]
+
+    # Move the detector so that the detector channel matching the reflected beam is at 0,0
+    PIX = 1.1E-3 #m
+    SC = 75
+    avgDB = 29
+    zOffset = -PIX * ((SC - avgDB) * 0.5 + avgDB)
+    MoveInstrumentComponent(Workspace = I, ComponentName = "lineardetector", X = 0, Y = 0, Z = zOffset)
+
+    # Should now have signed theta vs Lambda
+    ConvertSpectrumAxis(InputWorkspace=I,OutputWorkspace='SignedTheta_vs_Wavelength',Target='signed_theta')
+    
+    ConvertToReflectometryQ(InputWorkspace='SignedTheta_vs_Wavelength',OutputWorkspace='QxQy_poly', OutputDimensions='Q (lab frame)', Extents='-0.0005,0.0005,0,0.12', OutputAsMDWorkspace=False,Method='NormalisedPolygon')
+                                
+    ConvertToReflectometryQ(InputWorkspace='SignedTheta_vs_Wavelength',OutputWorkspace='KiKf_poly', OutputDimensions='K (incident, final)', Extents='0,0.05,0,0.05', OutputAsMDWorkspace=False,Method='NormalisedPolygon')
+    
+    ConvertToReflectometryQ(InputWorkspace='SignedTheta_vs_Wavelength',OutputWorkspace='PiPf_poly', OutputDimensions='P (lab frame)', Extents='0,0.1,-0.02,0.15', OutputAsMDWorkspace=False,Method='NormalisedPolygon')
+
+    qxqy = mtd['QxQy_poly']
+    kikf = mtd['KiKf_poly']
+    pipf = mtd['PiPf_poly']
+    print qxqy.getDimension(0).getName(), qxqy.getDimension(1).getName()
+    print kikf.getDimension(0).getName(), kikf.getDimension(1).getName()
+    print pipf.getDimension(0).getName(), pipf.getDimension(1).getName()
+
+
+Output:
+
+.. testoutput:: ExConvReflQSimple
+
+    Qx Qz
+    Ki Kf
+    Pz_i + Pz_f Pz_i - Pz_f
+
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertToYSpace-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertToYSpace-v1.rst
index f7a31c70c222f9743af2c2e9604351e396388bac..765cbb88cc22cc80eb5061dafa250c36b48a30b5 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertToYSpace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertToYSpace-v1.rst
@@ -78,3 +78,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertUnits-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertUnits-v1.rst
index 36a85f1b025457faa50f17e739d5e63660dc7640..60952aacd6ee20b8e598c01362264cc18b286a95 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertUnits-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertUnits-v1.rst
@@ -70,3 +70,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ConvertUnitsUsingDetectorTable-v1.rst b/Code/Mantid/docs/source/algorithms/ConvertUnitsUsingDetectorTable-v1.rst
index 3512511edb838b5dc60fe9a5bf634284b8ab5811..a642bc823f6b7e10f5fd43412f4195c006455a6a 100644
--- a/Code/Mantid/docs/source/algorithms/ConvertUnitsUsingDetectorTable-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvertUnitsUsingDetectorTable-v1.rst
@@ -66,3 +66,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/ConvolveWorkspaces-v1.rst b/Code/Mantid/docs/source/algorithms/ConvolveWorkspaces-v1.rst
index 98ddadb2df6469b539c7b0e7dbe65010eb139339..482f8004d334671c50eab77a6c8fa9c1c75f231a 100644
--- a/Code/Mantid/docs/source/algorithms/ConvolveWorkspaces-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ConvolveWorkspaces-v1.rst
@@ -37,3 +37,5 @@ Output:
       146.57078223]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CopyDetectorMapping-v1.rst b/Code/Mantid/docs/source/algorithms/CopyDetectorMapping-v1.rst
index 86b8a8df305235aa4c1762aab69a92b55db5edc6..c554bf61f9a3d6aa8084c762f76fd1d609172470 100644
--- a/Code/Mantid/docs/source/algorithms/CopyDetectorMapping-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CopyDetectorMapping-v1.rst
@@ -57,3 +57,5 @@ Output:
     Spectrum 0 detectors after copy: set(3,4,5,6,7)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CopyInstrumentParameters-v1.rst b/Code/Mantid/docs/source/algorithms/CopyInstrumentParameters-v1.rst
index 0be8e549b8320686311a51e5f27bdb0d07f8626c..b3b0f53b92d3a34bf19fa27b497c23450b13c807 100644
--- a/Code/Mantid/docs/source/algorithms/CopyInstrumentParameters-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CopyInstrumentParameters-v1.rst
@@ -77,3 +77,5 @@ Output:
    Position of Detector ID=1103 in 2nd workspace after CopyInstrumentParameters: 12,3,6
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CopyLogs-v1.rst b/Code/Mantid/docs/source/algorithms/CopyLogs-v1.rst
index 6a94de02a671d7e7e87f0d6208e69c7e4d5f890b..1a4ff51ae67055357d2ae6d665740daa74a33846 100644
--- a/Code/Mantid/docs/source/algorithms/CopyLogs-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CopyLogs-v1.rst
@@ -213,3 +213,5 @@ Output:
    2nd workspace log values x = hello world , y = 1 , z = [2]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CopySample-v1.rst b/Code/Mantid/docs/source/algorithms/CopySample-v1.rst
index 742d6c44c64a92acd119758c751ea05cc88bd135..6aa09357be42d23bf2a4c37130265c19ed9e906b 100644
--- a/Code/Mantid/docs/source/algorithms/CopySample-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CopySample-v1.rst
@@ -62,3 +62,5 @@ Output:
     
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CorelliCrossCorrelate-v1.rst b/Code/Mantid/docs/source/algorithms/CorelliCrossCorrelate-v1.rst
index 44d77859cb3dcb49aa8e88a5869371fe957030cb..a07e4b2c0876cb745ca79b5b0f22e06457f74b3c 100644
--- a/Code/Mantid/docs/source/algorithms/CorelliCrossCorrelate-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CorelliCrossCorrelate-v1.rst
@@ -48,3 +48,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/CorrectFlightPaths-v1.rst b/Code/Mantid/docs/source/algorithms/CorrectFlightPaths-v1.rst
index 264885042720d917eef7257aa32a3a581e9f9e05..c8738cf9895e84e2208c8b71effe930a8969c8af 100644
--- a/Code/Mantid/docs/source/algorithms/CorrectFlightPaths-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CorrectFlightPaths-v1.rst
@@ -23,3 +23,5 @@ This algorithm was coded as a proof of concept. It may be deprecated in the futu
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CorrectKiKf-v1.rst b/Code/Mantid/docs/source/algorithms/CorrectKiKf-v1.rst
index 5735c8a270ef60c9b29dd3141b931e3f1d3d0a5b..26641b9fc1788a5a62279af5be55d4e0bee54bc0 100644
--- a/Code/Mantid/docs/source/algorithms/CorrectKiKf-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CorrectKiKf-v1.rst
@@ -53,3 +53,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CorrectLogTimes-v1.rst b/Code/Mantid/docs/source/algorithms/CorrectLogTimes-v1.rst
index d5f864fd33e52690df0f043b745208cbe781fbd3..a17c2a34a1fcfc85ca1d1bb0a7d24cff59157002 100644
--- a/Code/Mantid/docs/source/algorithms/CorrectLogTimes-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CorrectLogTimes-v1.rst
@@ -47,3 +47,5 @@ Output:
     Corrected start time for 'Speed5': 2010-03-25T16:08:37 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CorrectToFile-v1.rst b/Code/Mantid/docs/source/algorithms/CorrectToFile-v1.rst
index 28005e38efbe8eeee21a3ab16a8ff96031632713..08d0ec0525bbd3d5b2e349d0700d26c1b3407fe6 100644
--- a/Code/Mantid/docs/source/algorithms/CorrectToFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CorrectToFile-v1.rst
@@ -22,3 +22,5 @@ spectra (e.g. flood correction files) FirstColumnValue must be set to
 must match.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateCalFileByNames-v1.rst b/Code/Mantid/docs/source/algorithms/CreateCalFileByNames-v1.rst
index 2495e33d5e0483f0b802ed693731a0a3b11a41fa..5ad877b4afe10314597841805625c4f5e425364e 100644
--- a/Code/Mantid/docs/source/algorithms/CreateCalFileByNames-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateCalFileByNames-v1.rst
@@ -68,3 +68,5 @@ Output:
 
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateChopperModel-v1.rst b/Code/Mantid/docs/source/algorithms/CreateChopperModel-v1.rst
index 05eb314dc5f5115cfaae8b8c686ed45e2a780225..0494f9b68c45e02bc5e7a92fe34bec1cd6910136 100644
--- a/Code/Mantid/docs/source/algorithms/CreateChopperModel-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateChopperModel-v1.rst
@@ -30,3 +30,5 @@ Available models with parameter names:
    -  Ei - The Ei for this run as a value or log name
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateChunkingFromInstrument-v1.rst b/Code/Mantid/docs/source/algorithms/CreateChunkingFromInstrument-v1.rst
index 2d7963ff0e6c489acf418bc7fe8eded4c23e35d8..952d5eb664dc87e4ddb41850a3b3228f92cff214 100644
--- a/Code/Mantid/docs/source/algorithms/CreateChunkingFromInstrument-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateChunkingFromInstrument-v1.rst
@@ -50,6 +50,8 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 
 
 
diff --git a/Code/Mantid/docs/source/algorithms/CreateDummyCalFile-v1.rst b/Code/Mantid/docs/source/algorithms/CreateDummyCalFile-v1.rst
index 55215d54bfdb42eaa808d39895273d1f5684dbea..f42aef4dbd3aa98a15f7ecd36497887b636fadad 100644
--- a/Code/Mantid/docs/source/algorithms/CreateDummyCalFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateDummyCalFile-v1.rst
@@ -74,3 +74,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateEmptyTableWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateEmptyTableWorkspace-v1.rst
index d47578f35ed3b0b4a8064a80b813f1cf9073c1da..aaf525aff073392a766a70ce5bd21f23fcdbfc4f 100644
--- a/Code/Mantid/docs/source/algorithms/CreateEmptyTableWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateEmptyTableWorkspace-v1.rst
@@ -50,3 +50,5 @@ Output:
    Remember, the table is a workspace.  It's name is "my_table".
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateFlatEventWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateFlatEventWorkspace-v1.rst
index a26431278eea3027feae5a4a01371dde78144d8a..305a3ea415f62c3972b8c10105f53c527690901a 100644
--- a/Code/Mantid/docs/source/algorithms/CreateFlatEventWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateFlatEventWorkspace-v1.rst
@@ -52,3 +52,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateGroupingWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateGroupingWorkspace-v1.rst
index 7057dee151f963eaee0fbf75eb227054e3cfdf5b..afdebe3f470942d0d01e5705a31979a994609740 100644
--- a/Code/Mantid/docs/source/algorithms/CreateGroupingWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateGroupingWorkspace-v1.rst
@@ -113,3 +113,5 @@ Output:
    Number of groups: 5
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateLeBailFitInput-v1.rst b/Code/Mantid/docs/source/algorithms/CreateLeBailFitInput-v1.rst
index b0193eebac37450cf085dae5ab15940e416f7e9c..69835244f9da3370525f9e282864b9749b4ec6d7 100644
--- a/Code/Mantid/docs/source/algorithms/CreateLeBailFitInput-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateLeBailFitInput-v1.rst
@@ -78,3 +78,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateLogPropertyTable-v1.rst b/Code/Mantid/docs/source/algorithms/CreateLogPropertyTable-v1.rst
index a313dd0f1cecbb1091585e492bef7d08ab4780f6..dde3cf8515849385252372f4f5ae90d63eac3d64 100644
--- a/Code/Mantid/docs/source/algorithms/CreateLogPropertyTable-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateLogPropertyTable-v1.rst
@@ -29,24 +29,27 @@ GroupPolicy
 GroupWorkspaces can be handled in various ways, depending on the
 GroupPolicy input:
 
-"All"
-#####
+*All*
+  All children of any GroupWorkspaces will be included in the table. This
+  should be used when each child workspace contains different data.
 
-All children of any GroupWorkspaces will be included in the table. This
-should be used when each child workspace contains different data.
+*First*
+  Only the first child of any GroupWorkspaces will be included in the
+  table. This is useful for instruments that produce groups of workspaces
+  for a single run, and specifying "All" would populate the table with
+  duplicate data.
 
-"First"
-#######
+*None*
+  Excludes GroupWorkspaces altogether.
 
-Only the first child of any GroupWorkspaces will be included in the
-table. This is useful for instruments that produce groups of workspaces
-for a single run, and specifying "All" would populate the table with
-duplicate data.
+TimeSeriesStatistic
+###################
 
-"None"
-######
+For time series properties a statistic is taken for it's value, this option is
+used to choose the statistic that is used.
 
-Excludes GroupWorkspaces altogether.
+Example
+-------
 
 .. figure:: /images/ConvertToEnergyInfoTable.png
    :alt: Output workspace generated by loading TOSCA runs 12218-12229, and feeding the resuling workspace names into the algorithm, along with the property names "inst_abrv", "run_number", "user_name", "run_title" and "hd_dur".
@@ -55,7 +58,7 @@ Excludes GroupWorkspaces altogether.
    feeding the resuling workspace names into the algorithm, along with
    the property names "inst\_abrv", "run\_number", "user\_name",
    "run\_title" and "hd\_dur".
-   
+
 Usage
 -----
 
@@ -68,7 +71,7 @@ Usage
     AddSampleLog(Workspace=b,LogName='ImportantParameter',LogText='2',LogType='Number')
     c=CreateWorkspace(DataX='1,2',DataY='1',WorkspaceTitle='Workspace c')
     AddSampleLog(Workspace=c,LogName='ImportantParameter',LogText='3',LogType='Number')
-    
+
     #apply algorithm
     tab=CreateLogPropertyTable(InputWorkspaces='a,b,c',LogPropertyNames='run_title,ImportantParameter')
 
@@ -89,5 +92,7 @@ Output:
 
     Column names are:  ['run_title', 'ImportantParameter']
     The values of the ImportantParameter are: ['1', '2', '3']
-    
+
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateLogTimeCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/CreateLogTimeCorrection-v1.rst
index 7f82f5336f2e7fbe240549d890eb14f95ef28ad8..ee168a6b951866278aa263a879e09f9045736f2a 100644
--- a/Code/Mantid/docs/source/algorithms/CreateLogTimeCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateLogTimeCorrection-v1.rst
@@ -77,3 +77,5 @@ Output:
   detector (ID: 102798) correction = 0.95036
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateMD-v1.rst b/Code/Mantid/docs/source/algorithms/CreateMD-v1.rst
index 47861d53291b8c4ec029497fa1e045fa0e17de28..c819972bd17b32ff71b029c376c872fa916fe358 100644
--- a/Code/Mantid/docs/source/algorithms/CreateMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateMD-v1.rst
@@ -142,3 +142,5 @@ Output
    DeltaE
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateMDHistoWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateMDHistoWorkspace-v1.rst
index 42b8350b485e2de939cc6fd6f5ba0653464490b1..1d3b7a79855f4b5083b8f5a3914fa1b9e082dc79 100644
--- a/Code/Mantid/docs/source/algorithms/CreateMDHistoWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateMDHistoWorkspace-v1.rst
@@ -51,7 +51,7 @@ Usage
                               NumberOfBins='10,10',Names='Dim1,Dim2',Units='MomentumTransfer,EnergyTransfer')
 
    # check it looks like the one we wanted
-   print 'created workspace is of type : {0}\n'.format(type(ws)),
+   print 'created workspace is of type: {0}\n'.format(ws.id()),
    print 'and has {0} dimensions with {1} points and {2} events'.format(ws.getNumDims(),ws.getNPoints(),ws.getNEvents());
    d1=ws.getDimension(0)
    print 'dimension 0 has ID: {0}; nBins={1}; min: {2}; max: {3} in units of: {4}\n'.format(d1.getDimensionId(),d1.getNBins(),\
@@ -65,9 +65,11 @@ Usage
 
 .. testoutput:: exCreateMDHisto
 
-   created workspace is of type : <class 'mantid.api._api.IMDHistoWorkspace'>
+   created workspace is of type: MDHistoWorkspace
    and has 2 dimensions with 100 points and 0 events 
    dimension 0 has ID: Dim1; nBins=10; min: -3.0; max: 3.0 in units of: MomentumTransfer
    dimension 1 has ID: Dim2; nBins=10; min: -10.0; max: 10.0 in units of: EnergyTransfer
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateMDWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateMDWorkspace-v1.rst
index d7681ea0e6feb0ca9a6780332710838b7c4f9824..0efbbe826eda7e1a6e667b2e0234fcd4ed382663 100644
--- a/Code/Mantid/docs/source/algorithms/CreateMDWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateMDWorkspace-v1.rst
@@ -26,4 +26,31 @@ memory with the overhead of boxes.
 You can create a file-backed MDEventWorkspace by specifying the Filename
 and Memory parameters.
 
+Usage
+-----
+
+**Example**
+
+.. testcode:: Example
+
+    mdws = CreateMDWorkspace(Dimensions=3, Extents='-10,10,-10,10,-10,10', Names='A,B,C', Units='U,U,U')
+    
+    print "mdws is a " + mdws.id()
+    print "with {0} dimensions:".format(mdws.getNumDims())
+    for i in range (mdws.getNumDims()):
+        print mdws.getDimension(i).getName()
+
+Output:
+
+.. testoutput:: Example
+
+    mdws is a MDEventWorkspace<MDLeanEvent,3>
+    with 3 dimensions:
+    A
+    B
+    C
+
+
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateModeratorModel-v1.rst b/Code/Mantid/docs/source/algorithms/CreateModeratorModel-v1.rst
index f0d7439f60c567cc423e31514646a103dc41b0ab..b6419df33d868dc23924942913cbf38b894afae0 100644
--- a/Code/Mantid/docs/source/algorithms/CreateModeratorModel-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateModeratorModel-v1.rst
@@ -23,3 +23,5 @@ Available models with parameter names:
    -  R - The mixing coefficient
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreatePSDBleedMask-v1.rst b/Code/Mantid/docs/source/algorithms/CreatePSDBleedMask-v1.rst
index 63136938f0df1ea27c4bf0f413416d43b0ba1b82..65b36dc5f7d3610439d564bbe24cad3c6dd075ff 100644
--- a/Code/Mantid/docs/source/algorithms/CreatePSDBleedMask-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreatePSDBleedMask-v1.rst
@@ -84,3 +84,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreatePeaksWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreatePeaksWorkspace-v1.rst
index 4c92ed66857ff3b7ae30fef36724d7774f7454c2..e9e54e0a58e0b28d0af60bff428e941789ba27b1 100644
--- a/Code/Mantid/docs/source/algorithms/CreatePeaksWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreatePeaksWorkspace-v1.rst
@@ -48,3 +48,5 @@ Output:
     Created a PeaksWorkspace with 3 rows
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateSampleShape-v1.rst b/Code/Mantid/docs/source/algorithms/CreateSampleShape-v1.rst
index 8ff6c6c7532e338a76f68bb8a5ba813f68813c76..e5ba9aff3f6b762f2e6bbba9e4de51ff3291f35a 100644
--- a/Code/Mantid/docs/source/algorithms/CreateSampleShape-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateSampleShape-v1.rst
@@ -48,3 +48,5 @@ Usage
     CreateSampleShape(ws,shape_xml)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateSampleWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateSampleWorkspace-v1.rst
index a55661036f80bc734605af273a5f0bd5de7acc1e..0c5c7b3ca29a4130d944b6b0818900c46d6e427a 100644
--- a/Code/Mantid/docs/source/algorithms/CreateSampleWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateSampleWorkspace-v1.rst
@@ -32,6 +32,18 @@ workspaces. If Random is selected the results will differ between runs
 of the algorithm and will not be comparable. If comparing the output is
 important set Random to false or uncheck the box.
 
+Instrument
+~~~~~~~~~~
+
+The instrument created by CreateSample workspace is very simple and looks like this.
+
+.. image:: ../images/CreateSampleWorkspaceInstrument.png
+    :width: 100%
+    :alt: A labelled image of the instrument created by CreateSampleWorkspace     
+
+The sample is placed at the origin.  The source is seperated from the sample in the negative direction by the vlue you specify in "SourceDistanceFromSample".  The instrument has "NumBanks" detector banks, each bank is moved down the X axis by "BankDistanceFromSample" from the Sample or the previous bank.
+Each bank is a square rectangular bank comprising of "BankPixelWidth" pixels in width and height.  The size of each pixel 4mm square, but additional padding can be set using "PixelSpacing".
+
 Usage
 -----
 
@@ -147,5 +159,7 @@ Output:
    
 .. categories::
 
+.. sourcelink::
+
 
 
diff --git a/Code/Mantid/docs/source/algorithms/CreateSimulationWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateSimulationWorkspace-v1.rst
index fab1a6e469c06bc1e6b61a18a18179753ca20abf..2f3bb5ede9ad1017ebd33666fd7eafd09c0ef85f 100644
--- a/Code/Mantid/docs/source/algorithms/CreateSimulationWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateSimulationWorkspace-v1.rst
@@ -21,3 +21,5 @@ number of histograms as detectors in the instrument (not including
 monitors)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateSingleValuedWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateSingleValuedWorkspace-v1.rst
index e8156edfd6f47662cadebea2430509a01cec2d14..4aeed835db5affd02b4961f3a21819ea66a0418b 100644
--- a/Code/Mantid/docs/source/algorithms/CreateSingleValuedWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateSingleValuedWorkspace-v1.rst
@@ -72,3 +72,5 @@ Output:
    e value: [ 0.1]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateTransmissionWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateTransmissionWorkspace-v1.rst
index 551fef36ee862a518b87373c6dfd49624aa6ad61..7e9c7a646f6146bbb6b078d2c803749b19a33f3f 100644
--- a/Code/Mantid/docs/source/algorithms/CreateTransmissionWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateTransmissionWorkspace-v1.rst
@@ -54,10 +54,10 @@ Output:
 .. testoutput:: ExCreateTransWSSimple
 
     The first four transWS Y values are:
-    0.0160
-    0.0348
-    0.0908
-    0.1187
+    0.0223
+    0.0602
+    0.1020
+    0.1207
 
 **Example - Create a transmission run from two runs**
 
@@ -89,9 +89,11 @@ Output:
 .. testoutput:: ExCreateTransWSTwo
 
     The first four transWS Y values are:
-    0.0563
-    0.0564
-    0.0569
-    0.0582
+    0.0567
+    0.0575
+    0.0577
+    0.0580
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateTransmissionWorkspaceAuto-v1.rst b/Code/Mantid/docs/source/algorithms/CreateTransmissionWorkspaceAuto-v1.rst
index c39c703448b18d09dfd6fd89b176a00b3bd741d4..dbd74b710529e7df2a42bf803de9c23a407e17a9 100644
--- a/Code/Mantid/docs/source/algorithms/CreateTransmissionWorkspaceAuto-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateTransmissionWorkspaceAuto-v1.rst
@@ -43,10 +43,10 @@ Output:
 .. testoutput:: ExCreateTransWSAutoSimple
 
     The first four transWS Y values are:
-    0.0160
-    0.0348
-    0.0908
-    0.1187
+    0.0223
+    0.0602
+    0.1020
+    0.1207
 
     
 **Example - Create a transmission run, overloading default parameters**
@@ -66,10 +66,10 @@ Output:
 .. testoutput:: ExCreateTransWSAutoOverload
 
     The first four transWS Y values are:
-    0.0158
-    0.0345
-    0.0900
-    0.1176
+    0.0221
+    0.0598
+    0.1013
+    0.1198
 
     
 **Example - Create a transmission run from two runs**
@@ -90,10 +90,12 @@ Output:
 .. testoutput:: ExCreateTransWSAutoTwo
 
     The first four transWS Y values are:
-    0.0563
-    0.0564
-    0.0569
-    0.0582
+    0.0567
+    0.0575
+    0.0577
+    0.0580
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CreateWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CreateWorkspace-v1.rst
index 781679c52339803fc4c2348c99c029ccbd22bf7a..2cc4a677c8887680df4d445cfa76fe8d358cd83e 100644
--- a/Code/Mantid/docs/source/algorithms/CreateWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CreateWorkspace-v1.rst
@@ -9,12 +9,21 @@
 Description
 -----------
 
-This algorithm constructs a MatrixWorkspace when passed a vector for each
-of the X, Y, and E data values. The unit for the X Axis can optionally be
-specified as any of the units in the Kernel's UnitFactory.  Multiple spectra
-may be created by supplying the NSpec Property (integer, default 1). When
-this is provided the vectors are split into equal-sized spectra (all X, Y,
-E values must still be in a single vector for input).
+This algorithm constructs a :ref:`MatrixWorkspace <MatrixWorkspace>`
+when passed a vector for each of the X, Y, and E data values. The unit
+for the X Axis can optionally be specified as any of the units in the
+Mantid `Unit Factory <http://www.mantidproject.org/Units>`__ (see `the
+list of units currently available
+<http://www.mantidproject.org/Units>`__).  Multiple spectra may be
+created by supplying the NSpec Property (integer, default 1). When
+this is provided the vectors are split into equal-sized spectra (all
+X, Y, E values must still be in a single vector for input).
+
+When you use the input property ParentWorkspace, the new workspace is
+created with the same instrument (including its parameters), sample
+and run information, and comment field as the parent. The Y units and
+title are also copied from the parent workspace unless they are
+provided in the input properties passed to the algorithm.
 
 Usage
 -----
@@ -29,3 +38,5 @@ Usage
      dataWS = CreateWorkspace(DataX=dataX, DataY=dataY, DataE=dataE, NSpec=4,UnitX="Wavelength")
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CropWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/CropWorkspace-v1.rst
index 205b96ecdc952ab7c62258efc8a493c16d980881..c7d1b279c4c9bfed10b0dc8aa9116d641293a3a7 100644
--- a/Code/Mantid/docs/source/algorithms/CropWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CropWorkspace-v1.rst
@@ -50,3 +50,5 @@ Output:
    TOF After CropWorkspace [ 10.  20.  30.  40.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CrossCorrelate-v1.rst b/Code/Mantid/docs/source/algorithms/CrossCorrelate-v1.rst
index 099e148fc2719e7cb8b7e229b632ee30406befcf..c906e32f125cf955f92c6a9f7279a5701a0fa3f8 100644
--- a/Code/Mantid/docs/source/algorithms/CrossCorrelate-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CrossCorrelate-v1.rst
@@ -44,3 +44,5 @@ Usage
    CrossCorrelation [-0.68136257  0.16838401  0.45685055]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CuboidGaugeVolumeAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/CuboidGaugeVolumeAbsorption-v1.rst
index dd3f153998f9a4d4b75afa3f201bcc4a4aab74b1..a5d91184e46a4493f8d207e3dc622d8dba08966d 100644
--- a/Code/Mantid/docs/source/algorithms/CuboidGaugeVolumeAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CuboidGaugeVolumeAbsorption-v1.rst
@@ -75,3 +75,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CutMD-v1.rst b/Code/Mantid/docs/source/algorithms/CutMD-v1.rst
index 98a4ea6d220acfcd280efbf0d60f9277ec26f3c0..e82e0d6cc8ed69fed57cc740202451df788d53c2 100644
--- a/Code/Mantid/docs/source/algorithms/CutMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CutMD-v1.rst
@@ -74,7 +74,7 @@ projection tables for you automatically. For example:
    proj_prop = Projection()
    proj_prop.setOffset(0, 100) # Set u offset to 100
    proj_prop.setOffset(1, -5.0) # Set v offset to -5
-   proj_prop.setType(1, 'a') # Set v type to be RLU
+   proj_prop.setType(1, 'r') # Set v type to be RLU
    proj_prop.setType(2, 'a') # Set w type to be inverse angstroms
 
    #Create table workspaces from these projections
@@ -162,3 +162,5 @@ Output:
    Half the volume should give half the signal = 50.00
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CylinderAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/CylinderAbsorption-v1.rst
index 65da7e3abcc5c90ad279c9c84d646c430eb19ae8..8de3994299d12ae6a81078f00505c0956b0956f3 100644
--- a/Code/Mantid/docs/source/algorithms/CylinderAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CylinderAbsorption-v1.rst
@@ -114,3 +114,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CylinderPaalmanPingsCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/CylinderPaalmanPingsCorrection-v1.rst
index 7786c6f41db4db779fa0fdf03535a128aed642b9..5eb1c10606b5eeb6754802d02a397fd2450410f6 100644
--- a/Code/Mantid/docs/source/algorithms/CylinderPaalmanPingsCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/CylinderPaalmanPingsCorrection-v1.rst
@@ -63,3 +63,5 @@ Output:
     Correction workspaces: corr_ass, corr_assc, corr_acsc, corr_acc
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/CylinderPaalmanPingsCorrection-v2.rst b/Code/Mantid/docs/source/algorithms/CylinderPaalmanPingsCorrection-v2.rst
index 6c3eac156f0caa46938f5351f8bc71d09b92254e..3a6379f72e6a037f8a15a3f099e118885fa598ca 100644
--- a/Code/Mantid/docs/source/algorithms/CylinderPaalmanPingsCorrection-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/CylinderPaalmanPingsCorrection-v2.rst
@@ -62,3 +62,5 @@ Output:
     Correction workspaces: corr_ass, corr_assc, corr_acsc, corr_acc
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DSFinterp-v1.rst b/Code/Mantid/docs/source/algorithms/DSFinterp-v1.rst
index 94b2d8e98e7f27ff7a64d246aa5cdd2b3a88ec80..fe928ccc5cff48f15c8ddda28ed9fb625867b12e 100644
--- a/Code/Mantid/docs/source/algorithms/DSFinterp-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DSFinterp-v1.rst
@@ -60,7 +60,7 @@ as well as expected errors at any :math:`T` value.
 Example
 ^^^^^^^
 
-Our example system is a simulation of a small crystal of octa-methyl `silsesqioxane <http://www.en.wikipedia.org/wiki/Silsesquioxane>`_ molecules.
+Our example system is a simulation of a small crystal of octa-methyl `silsesqioxane <http://en.wikipedia.org/wiki/Silsesquioxane>`_ molecules.
 A total of 26 molecular dynamics simulations were performed under different values of the energy barrier
 to methyl rotations, :math:`K`. Dynamics structure factors S(Q,E) were derived from each simulation.
 
@@ -84,3 +84,5 @@ for each channel and aggregates them into an interpolated structure factor.
    Interpolated structure factor :math:`S(K,E|Q)`, in logarithm scaling, at fixed :math:`Q=0.9A^{-1}`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DakotaChiSquared-v1.rst b/Code/Mantid/docs/source/algorithms/DakotaChiSquared-v1.rst
index aeef462f0eee7ed626c47ca673ec3d804ce7e84d..dd80686ee7c0669fbe1117226bd57fb3f7c80b04 100644
--- a/Code/Mantid/docs/source/algorithms/DakotaChiSquared-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DakotaChiSquared-v1.rst
@@ -64,3 +64,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DefineGaugeVolume-v1.rst b/Code/Mantid/docs/source/algorithms/DefineGaugeVolume-v1.rst
index 26a000209334569c9392d5ef83e43bd6b8838c75..4b4369f7432139ad6f4145afbc62e0723f8c77be 100644
--- a/Code/Mantid/docs/source/algorithms/DefineGaugeVolume-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DefineGaugeVolume-v1.rst
@@ -62,3 +62,5 @@ Output:
     The created workspace has one entry for each spectra: 1
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DeleteLog-v1.rst b/Code/Mantid/docs/source/algorithms/DeleteLog-v1.rst
index b0e8521dfde59ea3f4f8f6d4cf9755060c5d8b1e..b975163571afd0333bb4466af0b1cc87f6cb972d 100644
--- a/Code/Mantid/docs/source/algorithms/DeleteLog-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DeleteLog-v1.rst
@@ -42,3 +42,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DeleteTableRows-v1.rst b/Code/Mantid/docs/source/algorithms/DeleteTableRows-v1.rst
index 7d74ddbac9183a45b2eecee1a43325d824617bec..6e5cd0821c0fc1425cf7ba0054a98e3befdc94a9 100644
--- a/Code/Mantid/docs/source/algorithms/DeleteTableRows-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DeleteTableRows-v1.rst
@@ -49,3 +49,5 @@ Output:
     [1.0, 2.0, 4.0, 6.0, 8.0, 10.0, 11.0, 19.0]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DeleteWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/DeleteWorkspace-v1.rst
index a293848c56e8e433347d18ac46ac6741733ca3af..6d17903faac30c8257149922e2d20a855ccbc2bf 100644
--- a/Code/Mantid/docs/source/algorithms/DeleteWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DeleteWorkspace-v1.rst
@@ -49,3 +49,5 @@ Output:
    single_value exists in mantid: False
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DensityOfStates-v1.rst b/Code/Mantid/docs/source/algorithms/DensityOfStates-v1.rst
index 6e0ae211b1858a86925b5d6b791a9fc9b7bcdb64..6ecf79457a22196424c8fcfcdb7088be4777f5e0 100644
--- a/Code/Mantid/docs/source/algorithms/DensityOfStates-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DensityOfStates-v1.rst
@@ -12,40 +12,48 @@ Description
 Calculates phonon densities of states, Raman and IR spectrum from the
 output of CASTEP code obtained in the form of .phonon and .castep files.
 
+The PeakWidth property may be passed a function containg the variable "energy"
+(e.g. *0.1*energy*) to set the FWHM of the peak as a function of the energy
+(centre point of the peak). This can be useful for comparison with experimental
+data by allowing the peak width to change according to the resolution of the
+instrument.
+
 If the IonTable spectrum type is used then the output workspace will be
 a table workspace containing each ion that is present in a .phonon file.
 
 Usage
 -----
 
+.. include:: ../usagedata-note.txt
+
 **Example - loading data from phonon & castep files:**
 
-.. testcode:: ExDensityOfStatesSimple
+.. testcode:: ExSimulatedDensityOfStatesSimple
 
     # Loading the same data from a castep and phonon file
-    phonon_ws = DensityOfStates(File='squaricn.phonon')
-    castep_ws = DensityOfStates(File='squaricn.castep')
+    phonon_ws = SimulatedDensityOfStates(File='squaricn.phonon')
+    castep_ws = SimulatedDensityOfStates(File='squaricn.castep')
 
     print CheckWorkspacesMatch(phonon_ws, castep_ws)
 
 Output:
 
-.. testoutput:: ExDensityOfStatesSimple
+.. testoutput:: ExSimulatedDensityOfStatesSimple
 
     Success!
 
 **Example - loading partial contributions of ions:**
 
-.. testcode:: ExDensityOfStatesPartial
+.. testcode:: ExSimulatedDensityOfStatesPartial
 
-    squaricn = DensityOfStates(File='squaricn.phonon', Ions=['H', 'C', 'O'])
+    squaricn = SimulatedDensityOfStates(File='squaricn.phonon', Ions=['H', 'C', 'O'])
 
     for name in squaricn.getNames():
       print name
 
 Output:
 
-.. testoutput:: ExDensityOfStatesPartial
+.. testoutput:: ExSimulatedDensityOfStatesPartial
 
     squaricn_H
     squaricn_C
@@ -53,33 +61,37 @@ Output:
 
 **Example - loading summed partial contributions of ions:**
 
-.. testcode:: ExDensityOfStatesPartialSummed
+.. testcode:: ExSimulatedDensityOfStatesPartialSummed
 
-    sum_ws = DensityOfStates(File='squaricn.phonon', Ions=['H', 'C', 'O'], SumContributions=True)
-    total_ws = DensityOfStates(File='squaricn.phonon')
+    sum_ws = SimulatedDensityOfStates(File='squaricn.phonon', Ions=['H', 'C', 'O'], SumContributions=True)
+    total_ws = SimulatedDensityOfStates(File='squaricn.phonon')
 
     print CheckWorkspacesMatch(total_ws, sum_ws, Tolerance=1e-12)
 
 Output:
 
-.. testoutput:: ExDensityOfStatesPartialSummed
+.. testoutput:: ExSimulatedDensityOfStatesPartialSummed
 
     Success!
 
 **Example - Getting the list of ions in a phonon file:**
 
-.. testcode:: ExDensityOfStatesIonTable
+.. testcode:: ExSimulatedDensityOfStatesIonTable
 
-    ion_ws = DensityOfStates(File='squaricn.phonon', SpectrumType='IonTable')
+    ion_ws = SimulatedDensityOfStates(File='squaricn.phonon', SpectrumType='IonTable')
     for i in range (0, ion_ws.rowCount()):
         print ion_ws.row(i)['Ion']
 
 Output:
 
-.. testoutput:: ExDensityOfStatesIonTable
+.. testoutput:: ExSimulatedDensityOfStatesIonTable
 
     H
     C
     O
 
 .. categories::
+
+.. sourcelink::
+  :cpp: None
+  :h: None
diff --git a/Code/Mantid/docs/source/algorithms/DetectorDiagnostic-v1.rst b/Code/Mantid/docs/source/algorithms/DetectorDiagnostic-v1.rst
index 06532c07b8818df7f7fe52791800edc713954472..9404c8d50f14f139bf599febe406742fe92f7688 100644
--- a/Code/Mantid/docs/source/algorithms/DetectorDiagnostic-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DetectorDiagnostic-v1.rst
@@ -47,3 +47,5 @@ to form the NumberOfFailures output by the main algorithm.
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DetectorEfficiencyCor-v1.rst b/Code/Mantid/docs/source/algorithms/DetectorEfficiencyCor-v1.rst
index e33b087a19bbdffe9c3f333675f980d71aedfcff..093c69dc837c1dc9b7db1a818c8be257606f5f90 100644
--- a/Code/Mantid/docs/source/algorithms/DetectorEfficiencyCor-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DetectorEfficiencyCor-v1.rst
@@ -92,3 +92,5 @@ Usage
    8.0 1.0 1.31118984059 1.0 1.31118984059
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DetectorEfficiencyCorUser-v1.rst b/Code/Mantid/docs/source/algorithms/DetectorEfficiencyCorUser-v1.rst
index 873d8a4ee930c03a8d9a5c3a89065883073dbcec..ff77bf431e5187658443cfb7b05e1fdfa22ef9dd 100644
--- a/Code/Mantid/docs/source/algorithms/DetectorEfficiencyCorUser-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DetectorEfficiencyCorUser-v1.rst
@@ -65,3 +65,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DetectorEfficiencyVariation-v1.rst b/Code/Mantid/docs/source/algorithms/DetectorEfficiencyVariation-v1.rst
index 3868f0069d2563030168e2316025510f5bf71e05..578eefd15fee2ea525e0b0581fd9db220391b0ba 100644
--- a/Code/Mantid/docs/source/algorithms/DetectorEfficiencyVariation-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DetectorEfficiencyVariation-v1.rst
@@ -62,3 +62,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DetermineChunking-v1.rst b/Code/Mantid/docs/source/algorithms/DetermineChunking-v1.rst
index d2bd9a102338e553d3d553d1c1bfeb887de29ebe..7741b969db4cc4a36760ba46c6f0d7a26219f6e2 100644
--- a/Code/Mantid/docs/source/algorithms/DetermineChunking-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DetermineChunking-v1.rst
@@ -35,3 +35,5 @@ Output:
     A max chunck size of 0.0010 created 6 chunks.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DgsAbsoluteUnitsReduction-v1.rst b/Code/Mantid/docs/source/algorithms/DgsAbsoluteUnitsReduction-v1.rst
index e563d679de49ee411950d51012ec2c7aac344077..cf8ade09d03a29b7f12b41fae554b050eb2b4bfd 100644
--- a/Code/Mantid/docs/source/algorithms/DgsAbsoluteUnitsReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DgsAbsoluteUnitsReduction-v1.rst
@@ -76,3 +76,5 @@ Usage
     within :ref:`DgsReduction <algm-DgsReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DgsConvertToEnergyTransfer-v1.rst b/Code/Mantid/docs/source/algorithms/DgsConvertToEnergyTransfer-v1.rst
index bfc2f3172b2551a0419946d7a3f747d154b00925..7d319df7841690cf051e18b6fbe0f6cd6bea5bbc 100644
--- a/Code/Mantid/docs/source/algorithms/DgsConvertToEnergyTransfer-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DgsConvertToEnergyTransfer-v1.rst
@@ -55,3 +55,5 @@ Usage
     within :ref:`DgsReduction <algm-DgsReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DgsDiagnose-v1.rst b/Code/Mantid/docs/source/algorithms/DgsDiagnose-v1.rst
index 0cc39b6a432ad0eb3905705d0e302be71872d022..027400ea8ceeec872c8e9a31471a9c0d4b888560 100644
--- a/Code/Mantid/docs/source/algorithms/DgsDiagnose-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DgsDiagnose-v1.rst
@@ -100,3 +100,5 @@ Usage
     within :ref:`DgsReduction <algm-DgsReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DgsPreprocessData-v1.rst b/Code/Mantid/docs/source/algorithms/DgsPreprocessData-v1.rst
index 70576727c50b7360a557af0bc38571fa2955c87b..8a6bafdf2087a2a19a6f43c80c96038e6cabf364 100644
--- a/Code/Mantid/docs/source/algorithms/DgsPreprocessData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DgsPreprocessData-v1.rst
@@ -47,3 +47,5 @@ Usage
     within :ref:`DgsReduction <algm-DgsReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DgsProcessDetectorVanadium-v1.rst b/Code/Mantid/docs/source/algorithms/DgsProcessDetectorVanadium-v1.rst
index 4295d5f9d2ab1b839c7155137285771659074ab4..5431253860620c5fd1c978a999c977ee51501a47 100644
--- a/Code/Mantid/docs/source/algorithms/DgsProcessDetectorVanadium-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DgsProcessDetectorVanadium-v1.rst
@@ -48,3 +48,5 @@ Usage
     within :ref:`DgsReduction <algm-DgsReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DgsReduction-v1.rst b/Code/Mantid/docs/source/algorithms/DgsReduction-v1.rst
index cd0050dacbad961cf5a3a3e5c3bfb343c874ea87..2a682dd203c362edb2bed7475f3f2f10cddc0f2b 100644
--- a/Code/Mantid/docs/source/algorithms/DgsReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DgsReduction-v1.rst
@@ -131,3 +131,5 @@ Output:
     Number of events = 2178
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DgsRemap-v1.rst b/Code/Mantid/docs/source/algorithms/DgsRemap-v1.rst
index 8b4887ee8ac12a86f5fd8b6d70a9e631087bdd6c..de6578e7a544fbde064e28d54e1316306bf4932d 100644
--- a/Code/Mantid/docs/source/algorithms/DgsRemap-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DgsRemap-v1.rst
@@ -27,3 +27,5 @@ Usage
     within :ref:`DgsReduction <algm-DgsReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DiffPeaksWorkspaces-v1.rst b/Code/Mantid/docs/source/algorithms/DiffPeaksWorkspaces-v1.rst
index 067937d7325eeb4efc81ea320533909871c454b9..38eb213b99c53c5dc98d26745122b339edc2be0d 100644
--- a/Code/Mantid/docs/source/algorithms/DiffPeaksWorkspaces-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DiffPeaksWorkspaces-v1.rst
@@ -18,3 +18,5 @@ used, and the matching peak removed from the output before moving onto
 the next RHSWorkspace peak.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DiffractionEventCalibrateDetectors-v1.rst b/Code/Mantid/docs/source/algorithms/DiffractionEventCalibrateDetectors-v1.rst
index bddf2fc17084f5f0e1098d54f601dd3730ff6a29..6989dace535142a370bf21e74d7f782265c51daf 100644
--- a/Code/Mantid/docs/source/algorithms/DiffractionEventCalibrateDetectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DiffractionEventCalibrateDetectors-v1.rst
@@ -44,3 +44,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/DiffractionFocussing-v1.rst b/Code/Mantid/docs/source/algorithms/DiffractionFocussing-v1.rst
index 006090cf2b35bde38cf5c93258283cafcb2b274c..368ce4272a5edb9f44364aeaf0af9f586764cb17 100644
--- a/Code/Mantid/docs/source/algorithms/DiffractionFocussing-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DiffractionFocussing-v1.rst
@@ -53,3 +53,5 @@ all; binning can be performed as the very last step.
 .. |Example of RAW GEM data focused across the 5 detector banks| image:: /images/GEM_Focused.png
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DiffractionFocussing-v2.rst b/Code/Mantid/docs/source/algorithms/DiffractionFocussing-v2.rst
index 8d7efb3281f39bb145e5a64e6096ab5e0e9d29a2..c101dc18d373b79e7d0c3ba536ed1dd9c3553713 100644
--- a/Code/Mantid/docs/source/algorithms/DiffractionFocussing-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/DiffractionFocussing-v2.rst
@@ -90,14 +90,14 @@ Output:
         , PreserveEvents=False)
 
    print "Number of focussed spectra: " + str(ws.getNumberHistograms())
-   print "What type is the workspace after focussing: " + str(type(ws))
+   print "What type is the workspace after focussing: " + ws.id()
 
 Output:
 
 .. testoutput:: ExEventFocussing
 
    Number of focussed spectra: 2
-   What type is the workspace after focussing: <class 'mantid.api._api.MatrixWorkspace'>
+   What type is the workspace after focussing: Workspace2D
 
 Previous Versions
 -----------------
@@ -111,3 +111,5 @@ workspaces and only worked with CalFiles.
 .. |Example of RAW GEM data focused across the 5 detector banks| image:: /images/GEM_Focused.png
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Divide-v1.rst b/Code/Mantid/docs/source/algorithms/Divide-v1.rst
index 0a46d9180323d0e2628617be30fa7d06ac605c64..b7a6a5375120c5d3d4ddea6f3a3131b50b3491a0 100644
--- a/Code/Mantid/docs/source/algorithms/Divide-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Divide-v1.rst
@@ -138,3 +138,5 @@ Output:
     The updated Error values are: [ 0.   0.4  0.8  1.2  1.6  2.   2.4  2.8  3.2]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DivideMD-v1.rst b/Code/Mantid/docs/source/algorithms/DivideMD-v1.rst
index e3c2e2c9c575d05cdf461a7983831baf61fdad5e..258ee5dc796b76f22122b176e0756823d0e97070 100644
--- a/Code/Mantid/docs/source/algorithms/DivideMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DivideMD-v1.rst
@@ -33,3 +33,5 @@ The error of :math:`f = a / b` is propagated with
       meaning would be.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DownloadFile-v1.rst b/Code/Mantid/docs/source/algorithms/DownloadFile-v1.rst
index 301f538d03294c2a36a0c775f2f2745959c920af..f584baf1d0fea6ef3897dae2ddb011cf60690e91 100644
--- a/Code/Mantid/docs/source/algorithms/DownloadFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DownloadFile-v1.rst
@@ -63,3 +63,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/DownloadInstrument-v1.rst b/Code/Mantid/docs/source/algorithms/DownloadInstrument-v1.rst
index 66ee5e2361de0e3022a2254efa97c852d0281ef1..051d20ce1045289b872c0dde2f9ab1479bf50461 100644
--- a/Code/Mantid/docs/source/algorithms/DownloadInstrument-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DownloadInstrument-v1.rst
@@ -80,3 +80,5 @@ Output:
    The number of files updated was ...
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DownloadRemoteFile-v1.rst b/Code/Mantid/docs/source/algorithms/DownloadRemoteFile-v1.rst
index 024e71402e81b8d283a5ba5cdbcefdf2a206517c..baafb5ea5c99109b97878fd8f2045e2bb84c8eef 100644
--- a/Code/Mantid/docs/source/algorithms/DownloadRemoteFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/DownloadRemoteFile-v1.rst
@@ -15,3 +15,5 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/DownloadRemoteFile-v2.rst b/Code/Mantid/docs/source/algorithms/DownloadRemoteFile-v2.rst
index 7aa0d0022b01dcd68232132e2ac1f0a0f6efb81f..11687fb4cf839a14bab989081118bd65b5a0b2d0 100644
--- a/Code/Mantid/docs/source/algorithms/DownloadRemoteFile-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/DownloadRemoteFile-v2.rst
@@ -32,3 +32,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSAzimuthalAverage1D-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSAzimuthalAverage1D-v1.rst
index 96f5887cad93082bc7462f91705a65e71b825431..e6f083dbe8d52e5ddc08a1e68fbc1112ebca43e7 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSAzimuthalAverage1D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSAzimuthalAverage1D-v1.rst
@@ -32,3 +32,5 @@ acquired in frame-skipping mode or not.
   *_frame_1_Iq* or *_frame_2_Iq*.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSDarkCurrentSubtraction-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSDarkCurrentSubtraction-v1.rst
index 9b3f567a861fa50899afe73df244152923e99b9b..4e7f412815c4fffe355225b48c34a7cb62ee0c30 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSDarkCurrentSubtraction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSDarkCurrentSubtraction-v1.rst
@@ -32,3 +32,5 @@ The example above uses the counting time for normalization. If the proton charge
 available, the normalization will be done using the proton charge instead.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSDirectBeamTransmission-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSDirectBeamTransmission-v1.rst
index f5b16b90926dd16ffc8d10980dacc6e8abf87234..21cbc6fb083e9ce708aee73ca9db2ca6b55fe86d 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSDirectBeamTransmission-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSDirectBeamTransmission-v1.rst
@@ -12,3 +12,5 @@ Description
 Compute the transmission using the direct beam method on EQSANS
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSLoad-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSLoad-v1.rst
index 43d1ced9dcc3a9ead8472a7f2251fd74fa856c5a..755d3e89472e2172d17927f83bc670d8d9478515 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSLoad-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSLoad-v1.rst
@@ -43,3 +43,5 @@ This algorithm is rarely called directly. It is called by
 .. |LoadEQSANS.png| image:: /images/LoadEQSANS.png
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSMonitorTOF-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSMonitorTOF-v1.rst
index a99f5f50b865e0930dae4b8878766e2ccc8e921e..3c87c117223b94da7cc7bea02d12d5893e7aa3f7 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSMonitorTOF-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSMonitorTOF-v1.rst
@@ -17,3 +17,5 @@ This algorithm is rarely called directly. It is called by
 :ref:`EQSANSNormalise <algm-EQSANSNormalise>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSNormalise-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSNormalise-v1.rst
index a97c1fc3a5c508b03a79cf9baba5a90b0fe8daf6..698fd88ac8a5a9e107f05671eb54e0d14b56ed1a 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSNormalise-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSNormalise-v1.rst
@@ -12,3 +12,5 @@ Description
 Normalise detector counts by accelerator current and beam spectrum.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSPatchSensitivity-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSPatchSensitivity-v1.rst
index a4e67a2cd79f95e985d0fe0925ab22b136bd65df..b33bf402a501750cc5a477dc43b2d78fd41758e0 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSPatchSensitivity-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSPatchSensitivity-v1.rst
@@ -34,3 +34,5 @@ along a given tube, that pixel's sensitivity (Y-value) is set to:
 The output workspace is the patched version of the input workspace.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSQ2D-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSQ2D-v1.rst
index 97365506403a26fa40a0119d06f685205a768f17..ce876f73c0327ef61c0257534d2be3d3a2f37415 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSQ2D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSQ2D-v1.rst
@@ -16,3 +16,5 @@ This algorithm is rarely called directly. It is called by
 :ref:`SANSReduction <algm-SANSReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSResolution-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSResolution-v1.rst
index c1a3248e227343fed251372cf43e1e387263939c..2bdcc43d8cd8ae67a49ce2fe5f817f2fa95da6d0 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSResolution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSResolution-v1.rst
@@ -41,3 +41,5 @@ This algorithm is generally not called directly. It's called by
 after the calculation of I(Q). It can only be applied to an I(Q) workspace.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EQSANSTofStructure-v1.rst b/Code/Mantid/docs/source/algorithms/EQSANSTofStructure-v1.rst
index 1d1197d0f7a4829af3c25f988165bddd0793b53a..1316f72372d633707aacb7d64f4ba6b5bb4fbc1b 100644
--- a/Code/Mantid/docs/source/algorithms/EQSANSTofStructure-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EQSANSTofStructure-v1.rst
@@ -21,3 +21,5 @@ This algorithm is rarely called directly. It is called by
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EditInstrumentGeometry-v1.rst b/Code/Mantid/docs/source/algorithms/EditInstrumentGeometry-v1.rst
index c8c2f6b9f5f7b77272f9ad98720a081fb91fad00..bb6f81fa6eed66441afc9ac52e532ffa2750f719 100644
--- a/Code/Mantid/docs/source/algorithms/EditInstrumentGeometry-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EditInstrumentGeometry-v1.rst
@@ -56,3 +56,5 @@ Instruction
 | ``  to set up the focused detectors' parameters for spectrum 1, 3 and 2.``
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ElasticWindow-v1.rst b/Code/Mantid/docs/source/algorithms/ElasticWindow-v1.rst
index 84d9fc230ce4b60640cfae80b1cbd9bcbb3ee7a9..456c66d677c6caf292e9ec8ca7835e28da36e2d5 100644
--- a/Code/Mantid/docs/source/algorithms/ElasticWindow-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ElasticWindow-v1.rst
@@ -15,11 +15,10 @@ workspaces.
 
 There are two output workspaces.
 
-Subalgorithms used
-##################
+Workflow
+--------
 
-This algorithm uses the :ref:`algm-Integration`, :ref:`algm-ConvertSpectrumAxis`
-and :ref:`algm-Transpose` algorithms.
+.. diagram:: ElasticWindow-v1_wkflw.dot
 
 Usage
 -----
@@ -57,3 +56,5 @@ Usage
     Q2
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ElasticWindowMultiple-v1.rst b/Code/Mantid/docs/source/algorithms/ElasticWindowMultiple-v1.rst
index 67495c84b80094895502dff4d78d91187fe49bc8..91bef5bbf4a7e57696b95a4a0bfd495e8a9d9fad 100644
--- a/Code/Mantid/docs/source/algorithms/ElasticWindowMultiple-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ElasticWindowMultiple-v1.rst
@@ -19,6 +19,11 @@ either sample temperature or run number of temperature is not available.
 The ELT workspace shows the normalisation of the ELF workspace to run with the
 lowest sample temperature.
 
+Workflow
+--------
+
+.. diagram:: ElasticWindowMultiple-v1_wkflw.dot
+
 Usage
 -----
 
@@ -81,3 +86,5 @@ Usage
     ELF bin count: 7
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EnggCalibrate-v1.rst b/Code/Mantid/docs/source/algorithms/EnggCalibrate-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..b1a53e22374632dcfdfd0d2229a0b7c7dc96f668
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/EnggCalibrate-v1.rst
@@ -0,0 +1,107 @@
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+.. warning::
+
+   This algorithm is being developed for a specific instrument. It might get changed or even 
+   removed without a notification, should instrument scientists decide to do so.
+
+
+Utilises :ref:`algm-EnggFocus` which performs a TOF to dSpacing
+conversion using calibrated pixel positions, focuses the values in
+dSpacing and then converts them back to TOF. :ref:`algm-EnggFocus`
+also perform corrections with Vanadium data.
+
+Then this algorithm calls :ref:`algm-EnggFitPeaks` (as a child
+algorithm) which through a sequence of peak fits determines a linear
+relationship between dSpacing and measured TOF values in terms of DIFC
+and ZERO values and provides the these parameters to the Calibrate
+algorithm.
+
+This algorithm provides an indirect calibration of the sample
+position, that is, a calibration returned in terms of Difc and Zero
+rather than an actual new sample position (hence the reason for
+'indirect').
+
+The parameters DIFC and ZERO are returned and can be retrieved as
+output properties as well. If a name is given in
+OutputParametersTableName the algorithm also produces a table
+workspace with that name, containing the two output parameters.
+
+The script EnggUtils included with Mantid can produce a GSAS
+parameters file for the ENGIN-X instrument, given the DIFC and ZERO
+parameters for the instrument banks as produced by EnggCalibrate. This
+can be done with the write_ENGINX_GSAS_iparam_file() function as shown
+in the usage example below.
+
+See the algorithm :ref:`algm-EnggFocus` for details on the Vanadium
+corrections.
+
+.. categories::
+
+.. sourcelink::
+
+Usage
+-----
+
+.. include:: ../usagedata-note.txt
+
+**Example - Calculate Difc and Zero for EnginX:**
+
+.. testcode:: ExampleCalib
+
+   out_tbl_name = 'out_params'
+   ws_name = 'test'
+   van_ws_name = 'test_vanadium'
+   Load('ENGINX00213855.nxs', OutputWorkspace=ws_name)
+   Load('ENGINX00193749.nxs', OutputWorkspace=van_ws_name)
+   Difc1, Zero1 = EnggCalibrate(InputWorkspace=ws_name,
+                                VanadiumWorkspace= van_ws_name,
+                                ExpectedPeaks=[1.097, 2.1], Bank='1',
+                                OutputParametersTableName=out_tbl_name)
+
+   Difc2, Zero2 = EnggCalibrate(InputWorkspace=ws_name,
+                                VanadiumWorkspace= van_ws_name,
+                                ExpectedPeaks=[1.097, 2.1], Bank='2')
+
+   # You can produce an instrument parameters (iparam) file for GSAS.
+   # Note that this is very specific to ENGIN-X
+   GSAS_iparm_fname = 'ENGIN_X_bank1'
+   import EnggUtils
+   EnggUtils.write_ENGINX_GSAS_iparam_file(GSAS_iparm_fname, [Difc1, Difc2], [Zero1, Zero2])
+
+   print "Difc1: %.2f" % (Difc1)
+   print "Zero1: %.2f" % (Zero1)
+   tbl = mtd[out_tbl_name]
+   print "The output table has %d row(s)" % tbl.rowCount()
+   print "Parameters from the table, Difc1: %.2f, Zero1: %.2f" % (tbl.cell(0,0), tbl.cell(0,1))
+   import os
+   print "Output GSAS iparam file was written?", os.path.exists(GSAS_iparm_fname)
+   print "Number of lines of the GSAS iparam file:", sum(1 for line in open(GSAS_iparm_fname))
+
+.. testcleanup:: ExampleCalib
+
+   DeleteWorkspace(out_tbl_name)
+   DeleteWorkspace(ws_name)
+   DeleteWorkspace(van_ws_name)
+
+   os.remove(GSAS_iparm_fname)
+
+Output:
+
+.. testoutput:: ExampleCalib
+
+   Difc1: 18404.35
+   Zero1: -8.77
+   The output table has 1 row(s)
+   Parameters from the table, Difc1: 18404.35, Zero1: -8.77
+   Output GSAS iparam file was written? True
+   Number of lines of the GSAS iparam file: 35
diff --git a/Code/Mantid/docs/source/algorithms/EnggCalibrateFull-v1.rst b/Code/Mantid/docs/source/algorithms/EnggCalibrateFull-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3755d0a70f46066fb5ba1bf0aa1d492b229f82a3
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/EnggCalibrateFull-v1.rst
@@ -0,0 +1,161 @@
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+.. warning::
+
+   This algorithm is being developed for a specific instrument. It might get changed or even 
+   removed without a notification, should instrument scientists decide to do so.
+
+
+Allows to calibrate or correct for variations in detector position
+parameters. It does this by fitting the peaks for each of the selected
+bank's detector indices, (using :ref:`algm-EnggFitPeaks` as a child
+algorithm) and using the resulting difc values to calibrate the
+detector positions.
+
+This algorithm produces a table with calibration information,
+including calibrated or corrected positions and parameters. This
+calibration information that can be inspected and can also be used in
+other algorithms. The algorithm also applies the calibration on the
+input workspace. After running this algorithm the resulting
+calibration can be checked by visualizing the input workspace
+instrument in the instrument viewer and/or inspecting the output table
+values.
+
+The output table has one row per detector where each row gives the
+original position before calibration (as a V3D point, x-y-z values),
+the new calibrated position (as V3D) and the calibrated spherical
+co-ordinates (L2, :math:`2 \theta`, :math:`\phi`). It also gives the
+variation in the L2 position, and the 'difc' and 'zero' calibration
+parameters.
+
+The result of the calibration (the output table given in
+OutDetPosTable) is accepted by both :ref:`algm-EnggCalibrate` and
+:ref:`algm-EnggFocus` which use the columns 'Detector ID' and
+'Detector Position' of the table to correct the detector positions
+before focussing. The OutDetPosTable output table can also be used
+to apply the calibration calculated by this algorithm on any other
+workspace by using the algorithm :ref:`algm-ApplyCalibration`.
+
+In the output table the calibrated positions for every detector are
+found by calculating the *L2* values from the *difc* values as
+follows:
+
+.. math:: L2 = \left(\frac{Difc} { 252.816 * 2 * sin \left(\frac{2\theta} {2.0}\right)}\right) - 50
+
+where the *difc* values are obtained from the fitting of expected
+peaks. See the algorithm :ref:`algm-EnggFitPeaks` for details on how
+*difc* and other calibration parameters are calculated.
+
+This algorithm expects as input/output workspace the *long*
+calibration run, which provides a decent pattern for every detector or
+pixel. The spectra of the workspace are corrected using data from a
+Vanadium run (passed in the VanadiumWorkspace property). These
+corrections include two steps: detector sensitivity correction and
+pixel-by-pixel correction on a per-bank basis. See also
+:ref:`algm-EnggFocus` where the same correction is applied. Similarly
+as in :ref:`algm-EnggFocus`, it is possible to retrieve the curves
+fitted to the Vanadium run data for every bank by using the
+OutVanadiumCurveFits property.
+
+.. categories::
+
+.. sourcelink::
+
+Usage
+-----
+
+.. include:: ../usagedata-note.txt
+
+**Example - Calculate corrected positions, and difc and zero, for Engg:**
+
+.. testcode:: ExCalFull
+
+   ws_name = 'ws_focussed'
+   van_ws_name = 'test_vanadium'
+   Load('ENGINX00213855focussed.nxs', OutputWorkspace=ws_name)
+   Load('ENGINX00193749.nxs', OutputWorkspace=van_ws_name)
+
+   posTable = EnggCalibrateFull(Workspace=ws_name,
+                                VanadiumWorkspace=van_ws_name,
+                                ExpectedPeaks=[1.097, 2.1], Bank='1')
+
+   detID = posTable.column(0)[0]
+   calPos =  posTable.column(2)[0]
+   print "Det ID:", detID
+   print "Calibrated position: (%.3f,%.3f,%.3f)" % (calPos.getX(), calPos.getY(), calPos.getZ())
+   ws = mtd[ws_name]
+   posInWSInst = ws.getInstrument().getDetector(detID).getPos()
+   print "Is the detector position calibrated now in the original workspace instrument?", (calPos == posInWSInst)
+
+.. testcleanup:: ExCalFull
+
+   DeleteWorkspace(ws_name)
+   DeleteWorkspace(van_ws_name)
+
+Output:
+
+.. testoutput:: ExCalFull
+
+   Det ID: 100001
+   Calibrated position: (1.506,0.000,0.002)
+   Is the detector position calibrated now in the original workspace instrument? True
+
+**Example - Calculate corrected positions for EngingX, saving in a file:**
+
+.. testcode:: ExCalFullWithOutputFile
+
+   import os, csv
+
+   ws_name = 'ws_focussed'
+   van_ws_name = 'test_vanadium'
+   pos_filename = 'detectors_pos.csv'
+   # Note that this is a small file which is not very meaningful but simple enough for
+   # this test to run fast. Please user your (proper) run file.
+   Load('ENGINX00213855focussed.nxs', OutputWorkspace=ws_name)
+   Load('ENGINX00193749.nxs', OutputWorkspace=van_ws_name)
+   posTable = EnggCalibrateFull(Workspace=ws_name,
+                                VanadiumWorkspace=van_ws_name,
+                                ExpectedPeaks=[1.097, 2.1], Bank='1',
+                                OutDetPosFilename=pos_filename)
+
+   detID = posTable.column(0)[0]
+   pos =  posTable.column(2)[0]
+   print "Det ID:", detID
+   print "Calibrated position: (%.3f,%.3f,%.3f)" % (pos.getX(),pos.getY(),pos.getZ())
+   print "Was the file created?", os.path.exists(pos_filename)
+   with open(pos_filename) as csvf:
+      reader = csv.reader(csvf, dialect='excel')
+      reader.next()
+      calibOK = True
+      for i,row in enumerate(reader):
+         calPos = posTable.column(2)[i]
+         calibOK = calibOK and (abs(float(row[4]) - calPos.getX()) < 1e-6) and\
+                   (abs(float(row[5]) - calPos.getY()) < 1e-6) and\
+                   (abs(float(row[6]) - calPos.getZ()) < 1e-6)
+         if not calibOK: break
+   print "Does the calibration file have the expected values?", calibOK
+
+.. testcleanup:: ExCalFullWithOutputFile
+
+   DeleteWorkspace(ws_name)
+   DeleteWorkspace(van_ws_name)
+   import os
+   os.remove(pos_filename)
+
+Output:
+
+.. testoutput:: ExCalFullWithOutputFile
+
+   Det ID: 100001
+   Calibrated position: (1.506,0.000,0.002)
+   Was the file created? True
+   Does the calibration file have the expected values? True
diff --git a/Code/Mantid/docs/source/algorithms/EnginXFitPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/EnggFitPeaks-v1.rst
similarity index 52%
rename from Code/Mantid/docs/source/algorithms/EnginXFitPeaks-v1.rst
rename to Code/Mantid/docs/source/algorithms/EnggFitPeaks-v1.rst
index 524b90cbbfde0d4ec0cc1b769afab5071c1742f4..d6945b8fd9326b5e9a86f70f64d23c424dc97427 100644
--- a/Code/Mantid/docs/source/algorithms/EnginXFitPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EnggFitPeaks-v1.rst
@@ -15,15 +15,31 @@ Description
    removed without a notification, should instrument scientists decide to do so.
 
 
-The pattern is specified by providing a list of dSpacing values where Bragg peaks are expected. The algorithm then fits peaks in those areas using a peak fitting function. The dSpacing values for ExpectedPeaks are then converted by Mantid's convertUnits function to TOF.
+The pattern is specified by providing a list of dSpacing values where
+Bragg peaks are expected. The algorithm then fits peaks in those areas
+using a peak fitting function. The dSpacing values for ExpectedPeaks
+are then converted to time-of-flight (TOF) (as in the Mantid
+ConvertUnits algorithm).
 
-These values are used as start peak position in fit. It is these adjusted peak TOF value positions that are fitted against ExpectedPeaks dSpacing values according to:
+These values are used as start peak position in fit. It is these
+adjusted peak TOF value positions that are fitted against
+ExpectedPeaks dSpacing values according to:
 
 
 .. math:: TOF = DifC*d + Zero
 
 
-ZERO and Difc can then be used within the GSAS program.
+ZERO and Difc can then be used within the GSAS program.  The
+parameters DIFC and ZERO are returned and can be retrieved as output
+properties as well.
+
+If a name is given in OutParametersTable this algorithm also
+produces a table workspace with that name, containing the two fitted
+(DIFC, ZERO) parameters. Also, if a name is given in
+OutFittedPeaksTable, the algorithm produces a table workspace with
+information about the peaks fitted. The table has one row per peak and
+several columns for the different fitted parameters (and the errors of
+these parameters).
 
 Usage
 -----
@@ -49,21 +65,32 @@ Usage
    EditInstrumentGeometry(Workspace = ws, L2 = [1.5], Polar = [90], PrimaryFlightPath = 50)
 
    # Run the algorithm. Defaults are shown below. Files entered must be in .csv format and if both ExpectedPeaks and ExpectedPeaksFromFile are entered, the latter will be used.
-   # difc, zero = EnginXFitPeaks(InputWorkspace = No default, WorkspaceIndex = None, ExpectedPeaks=[0.6, 1.9], ExpectedPeaksFromFile=None)
-
-   difc, zero = EnginXFitPeaks(ws, 0, [0.65, 1.9])
+   # difc, zero = EnggXFitPeaks(InputWorkspace = No default, WorkspaceIndex = None, ExpectedPeaks=[0.6, 1.9], ExpectedPeaksFromFile=None)
 
+   out_tbl_name = 'out_params'
+   difc, zero = EnggFitPeaks(ws, 0, [0.65, 1.9], OutParametersTable=out_tbl_name)
 
 
    # Print the results
    print "Difc: %.1f" % difc
    print "Zero: %.1f" % zero
+   tbl = mtd[out_tbl_name]
+   print "The output table has %d row(s)" % tbl.rowCount()
+   print "Parameters from the table, Difc: %.1f, Zero: %.1f" % (tbl.cell(0,0), tbl.cell(0,1))
 
 Output:
 
+.. testcleanup:: ExTwoPeaks
+
+   DeleteWorkspace(out_tbl_name)
+
 .. testoutput:: ExTwoPeaks
 
    Difc: 18400.0
    Zero: 46.0
+   The output table has 1 row(s)
+   Parameters from the table, Difc: 18400.0, Zero: 46.0
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EnggFocus-v1.rst b/Code/Mantid/docs/source/algorithms/EnggFocus-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..e098e7bccd310c9de5704f2bcaca8ecc38274739
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/EnggFocus-v1.rst
@@ -0,0 +1,86 @@
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+.. warning::
+
+   This algorithm is being developed for a specific instrument. It might get changed or even 
+   removed without a notification, should instrument scientists decide to do so.
+
+Performs a Time-of-flight (TOF) to dSpacing conversion using
+calibrated pixel positions, focuses the values in dSpacing (summing
+them up into a single spectrum) and then converts them back to
+TOF. The output workspace produced by this algorithm has one spectrum.
+
+If a table of detector positions is passed as an input property, the
+detectors are calibrated before performing the conversions between TOF
+and dSpacing.
+
+In any case, before focusing the workspace, the spectra are corrected
+by using data from a Vanadium run (passed in the VanadiumWorkspace
+property). These corrections include two steps: detector sensitivity
+correction and pixel-by-pixel correction on a per-bank basis. See also
+:ref:`algm-EnggCalibrateFull` where the same correction is applied.
+
+The pixel-by-pixel Vanadium correction is based on curves fitted for
+every bank. These curves can be obtained via the output property
+OutVanadiumCurveFits. For every bank, the curve is fitted to the
+summation of all the spectra of the bank, and then every spectra of
+the bank is divided by the bank curve.
+
+Usage
+-----
+
+.. include:: ../usagedata-note.txt
+
+**Example - Simple focussing of an EnginX data file:**
+
+.. testcode:: ExSimpleFocussing
+
+   # Run the algorithm on an EnginX file
+   data_ws = Load('ENGINX00213855.nxs')
+   van_ws = Load('ENGINX00236516.nxs')
+
+   focussed_ws = EnggFocus(InputWorkspace=data_ws,
+                           VanadiumWorkspace=van_ws,
+                           Bank='1')
+   # Use this additional options if you want to see the curve fit for the summed up vanadium data for
+   # that bank. It will generate a workspace called 'vanadium_curve'
+   # focussed_ws = EnggFocus(InputWorkspace=data_ws,
+   #                         VanadiumWorkspace=van_ws,
+   #                         Bank='1',
+   #                         OutVanadiumCurveFits='vanadium_curve')
+
+   # Should have one spectrum only
+   print "No. of spectra:", focussed_ws.getNumberHistograms()
+
+   # Print a few arbitrary bins where higher intensities are expected
+   fmt = "For TOF of {0:.3f} intensity is {1:.3f}"
+   for bin in [3169, 6037, 7124]:
+     print fmt.format(focussed_ws.readX(0)[bin], focussed_ws.readY(0)[bin])
+
+.. testcleanup:: ExSimpleFocussing
+
+   DeleteWorkspace(focussed_ws)
+   DeleteWorkspace(van_ws)
+   DeleteWorkspace(data_ws)
+
+Output:
+
+.. testoutput:: ExSimpleFocussing
+
+   No. of spectra: 1
+   For TOF of 20165.642 intensity is 13.102
+   For TOF of 33547.826 intensity is 17.844
+   For TOF of 38619.804 intensity is 32.768
+   
+.. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EnginXCalibrate-v1.rst b/Code/Mantid/docs/source/algorithms/EnginXCalibrate-v1.rst
deleted file mode 100644
index 144d165001d499f84008c9ad05ffa04349a59f6e..0000000000000000000000000000000000000000
--- a/Code/Mantid/docs/source/algorithms/EnginXCalibrate-v1.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-.. algorithm::
-
-.. summary::
-
-.. alias::
-
-.. properties::
-
-Description
------------
-
-.. warning::
-
-   This algorithm is being developed for a specific instrument. It might get changed or even 
-   removed without a notification, should instrument scientists decide to do so.
-
-
-Utilises  :ref:`algm-EnginXFocus` which performs a TOF to dSpacing conversion using calibrated pixel positions, focuses the values in dSpacing and then converts them back to TOF. 
-Then calls  :ref:`algm-EnginXFitPeaks` which through a sequence of peak fits determines a linear relationship between dSpacing and measured TOF values in terms of DIFC and ZERO values and provides the these parameters to the Calibrate algorithm.
-This algorithm provides an indirect calibration of the sample position, that is, a calibration returned in terms of Difc and Zero rather than an actual new sample position (hence the reason for 'indirect').
-
-
-.. categories::
-
-Usage
------
-
-.. include:: ../usagedata-note.txt
-
-**Example - Calculate Difc and Zero:**
-
-.. testcode:: Ex
-
-   Difc, Zero = EnginXCalibrate(Filename="ENGINX00213855.nxs",
-                                     ExpectedPeaks=[1.097, 2.1], Bank=1)
-
-   print "Difc: %.2f" % (Difc)
-   print "Zero: %.2f" % (Zero)
-
-Output:
-
-.. testoutput:: Ex
-
-   Difc: 18404.93
-   Zero: -10.89
diff --git a/Code/Mantid/docs/source/algorithms/EnginXCalibrateFull-v1.rst b/Code/Mantid/docs/source/algorithms/EnginXCalibrateFull-v1.rst
deleted file mode 100644
index 7db518f8929dba8375cc7af4e332c6ce6b097fa7..0000000000000000000000000000000000000000
--- a/Code/Mantid/docs/source/algorithms/EnginXCalibrateFull-v1.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-.. algorithm::
-
-.. summary::
-
-.. alias::
-
-.. properties::
-
-Description
------------
-
-.. warning::
-
-   This algorithm is being developed for a specific instrument. It might get changed or even 
-   removed without a notification, should instrument scientists decide to do so.
-
-
-Allows to correct for tiny variations in pixel parameters. It does this by fitting the peak for each of the the selected bank's indices, (using :ref:`algm-EnginXFitPeaks` ) and using the resulting difc value to calibrate the detector position. The calibrated detector position is produced as shown below: 
-
-
-
-.. math:: L2 = \left(\frac{Difc} { 252.816 * 2 * sin \left(\frac{2\theta} {2.0}\right)}\right) - 50
-
-
-
-The cartesian2d vector is then returned for the given spherical co ordinates (L2, 2theta and phi).
-
-The result of the calibration is accepted by both :ref:`algm-EnginXCalibrate` and 
-:ref:`algm-EnginXFocus` to correct the detector positions before focussing.
-
-Expects the *long* calibration run, which provides a decent pattern for every pixel.
-
-.. categories::
-
-Usage
------
-
-.. include:: ../usagedata-note.txt
-
-**Example - Calculate Difc and Zero:**
-
-.. testcode:: Ex
-
-   table = EnginXCalibrateFull(Filename="ENGINX00213855focussed.nxs",
-                                     ExpectedPeaks=[1.097, 2.1], Bank=1)
-
-   pos =  table.column(1)[0]
-   print "Det ID:", table.column(0)[0]
-   print "Calibrated position: (%.3f,%.3f,%.3f)" % (pos.getX(),pos.getY(),pos.getZ())
-
-Output:
-
-.. testoutput:: Ex
-
-   Det ID: 100001
-   Calibrated position: (1.506,0.000,0.002)
diff --git a/Code/Mantid/docs/source/algorithms/EnginXFocus-v1.rst b/Code/Mantid/docs/source/algorithms/EnginXFocus-v1.rst
deleted file mode 100644
index 28cb93a3cbcf6122ca6ef1e691306edaeeaf182e..0000000000000000000000000000000000000000
--- a/Code/Mantid/docs/source/algorithms/EnginXFocus-v1.rst
+++ /dev/null
@@ -1,52 +0,0 @@
-.. algorithm::
-
-.. summary::
-
-.. alias::
-
-.. properties::
-
-Description
------------
-
-.. warning::
-
-   This algorithm is being developed for a specific instrument. It might get changed or even 
-   removed without a notification, should instrument scientists decide to do so.
-
-Performs a TOF to dSpacing conversion using calibrated pixel
-positions, focuses the values in dSpacing and then converts them back
-to TOF. The output workspace produced by this algorithm has one
-spectrum.
-
-Usage
------
-
-.. include:: ../usagedata-note.txt
-
-**Example - Simple focussing of and EnginX data file:**
-
-.. testcode:: ExSimple
-
-   # Run the algorithm
-   ws = EnginXFocus(Filename="ENGINX00213855.nxs",
-   			   		Bank=1)
-
-   # Should have one spectrum only
-   print "No. of spectra:", ws.getNumberHistograms()
-
-   # Print a few arbitrary bins where higher intensities are expected
-   fmt = "For TOF of {0:.3f} intensity is {1:.3f}"
-   for bin in [3169, 6037, 7124]:
-     print fmt.format(ws.readX(0)[bin], ws.readY(0)[bin])
-
-Output:
-
-.. testoutput:: ExSimple
-
-   No. of spectra: 1
-   For TOF of 20165.642 intensity is 7.436
-   For TOF of 33547.826 intensity is 9.388
-   For TOF of 38619.804 intensity is 17.397
-   
-.. categories::
diff --git a/Code/Mantid/docs/source/algorithms/EqualToMD-v1.rst b/Code/Mantid/docs/source/algorithms/EqualToMD-v1.rst
index 2b9a464fb9824ee3a1952bcc2cc1b53823a05e23..847c6031f09bd62409b31bf9c089ced4b1d6aec3 100644
--- a/Code/Mantid/docs/source/algorithms/EqualToMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EqualToMD-v1.rst
@@ -20,3 +20,5 @@ For a MDHistoWorkspace and a scalar, the operation is performed on each
 element of the output.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EstimatePeakErrors-v1.rst b/Code/Mantid/docs/source/algorithms/EstimatePeakErrors-v1.rst
index 911eb9adcb33aa45b68b0dce86f815ec11417a45..f4783163738d039bc7cddf7f2b1fefa457fc435a 100644
--- a/Code/Mantid/docs/source/algorithms/EstimatePeakErrors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EstimatePeakErrors-v1.rst
@@ -36,3 +36,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EstimateResolutionDiffraction-v1.rst b/Code/Mantid/docs/source/algorithms/EstimateResolutionDiffraction-v1.rst
index 701da1d9791f9b0a15a62e077706791bf545426c..0e0e63f0b766cc81055c4c93910660fc710336ec 100644
--- a/Code/Mantid/docs/source/algorithms/EstimateResolutionDiffraction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EstimateResolutionDiffraction-v1.rst
@@ -89,3 +89,5 @@ Output:
 .. seealso :: Algorithms :ref:`algm-CalibrateRectangularDetectors` and :ref:`algm-GetDetOffsetsMultiPeaks`
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EvaluateFunction-v1.rst b/Code/Mantid/docs/source/algorithms/EvaluateFunction-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..dd4e3d51322ecfe56127ab95d44f4a5318d04bea
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/EvaluateFunction-v1.rst
@@ -0,0 +1,42 @@
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+The algorithm will use the axes of the input workspace to evaluate a functions on them 
+and store the result in the output workspace.
+
+Usage
+-----
+
+**Example - 1D function and a matrix workspace.**
+
+.. testcode:: 1DFunction
+
+    # Load a workspace
+    ws = Load('MUSR00015189')
+    # Evaluate a function
+    out = EvaluateFunction('name=ExpDecay,Height=56','ws_1')
+
+**Example - 2D function and a MD workspace.**
+
+.. testcode:: 2DFunction
+
+    # Create an empty 2D workspace (100 x 100)
+    nx = 100
+    ny = 100
+    ws = CreateMDHistoWorkspace(Dimensionality=2, Extents=[-10,10,-10,10], Names="x,y", Units="U,V",
+        NumberOfBins='%s,%s' % (nx,ny),
+        SignalInput=[0] * nx * ny, ErrorInput=[0] * nx * ny)
+    # Evaluate a function
+    out = EvaluateFunction('name=UserFunctionMD,Formula=sin(x)*sin(y)','ws')
+
+.. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/EvaluateMDFunction-v1.rst b/Code/Mantid/docs/source/algorithms/EvaluateMDFunction-v1.rst
index 1e289be9309d719dde675ed08511550049c4e626..9461445e1f602fd8c1d107e06885324ee67b2da9 100644
--- a/Code/Mantid/docs/source/algorithms/EvaluateMDFunction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/EvaluateMDFunction-v1.rst
@@ -9,6 +9,8 @@
 Description
 -----------
 
+**Note**: this algorithm is deprecated, use :ref:`EvaluateFunction <algm-EvaluateFunction>` instead.
+
 The algorithm will use the axes of the input workspace to evaluate a functions on them 
 and store the result in the output workspace.
 
@@ -17,7 +19,6 @@ This is a plot of the evaluated function from the usage example below.
 .. figure:: /images/Function3D.png
    :alt: Function3D.png
 
-
 Usage
 -----
 
@@ -53,3 +54,5 @@ Output
   Dim3
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExaminePowderDiffProfile-v1.rst b/Code/Mantid/docs/source/algorithms/ExaminePowderDiffProfile-v1.rst
index 606f47ddd46a06d6c11bfc623a1b7670d2f52208..190f1c0d662e64bc21912609233d7c669835f125 100644
--- a/Code/Mantid/docs/source/algorithms/ExaminePowderDiffProfile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExaminePowderDiffProfile-v1.rst
@@ -68,3 +68,5 @@ Output:
   Output workspace has 9 spectra
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Exponential-v1.rst b/Code/Mantid/docs/source/algorithms/Exponential-v1.rst
index 6320b29d89c45a0edc453e9ece6c1bab23bb0ef7..bd59e56c4b4886912ac0086b693c931ac3fdb53c 100644
--- a/Code/Mantid/docs/source/algorithms/Exponential-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Exponential-v1.rst
@@ -47,3 +47,5 @@ Output
   True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExponentialCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/ExponentialCorrection-v1.rst
index 9971ff79a44777a30d816d7089363392d8911b5e..dc5d025c76d70be56c82a25d76108bc1fa191cfc 100644
--- a/Code/Mantid/docs/source/algorithms/ExponentialCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExponentialCorrection-v1.rst
@@ -45,3 +45,5 @@ Output:
     The first Y value after multiply correction is: 3.08892013345e-131
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExponentialMD-v1.rst b/Code/Mantid/docs/source/algorithms/ExponentialMD-v1.rst
index 34b901290fb46f4fae897f75e189548e13ed0270..2076609d36e4e3b8d68f910cc143184d7ccbcc60 100644
--- a/Code/Mantid/docs/source/algorithms/ExponentialMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExponentialMD-v1.rst
@@ -21,3 +21,5 @@ This algorithm cannot be run on a
 :ref:`algm-Exponential`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExportExperimentLog-v1.rst b/Code/Mantid/docs/source/algorithms/ExportExperimentLog-v1.rst
index 576654901c6dc9e8a57965397aacc4e0a92b93c5..29662f0fb2cbac9053b1cf8fc011291bcb74dd08 100644
--- a/Code/Mantid/docs/source/algorithms/ExportExperimentLog-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExportExperimentLog-v1.rst
@@ -138,4 +138,6 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 
diff --git a/Code/Mantid/docs/source/algorithms/ExportSampleLogsToCSVFile-v1.rst b/Code/Mantid/docs/source/algorithms/ExportSampleLogsToCSVFile-v1.rst
index a82ed84a8b693d6919f174771c213afa7d1b6f86..9d125f2cbe87e54576d924525613a98dab75f5a3 100644
--- a/Code/Mantid/docs/source/algorithms/ExportSampleLogsToCSVFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExportSampleLogsToCSVFile-v1.rst
@@ -130,3 +130,5 @@ Output:
    Number of lines in Header file = 3
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExportTimeSeriesLog-v1.rst b/Code/Mantid/docs/source/algorithms/ExportTimeSeriesLog-v1.rst
index 380e0da7a78405cb78324acba891f35dfe0c460d..ce1e60b4e32604b07ef70708ec89285d5c75e1d3 100644
--- a/Code/Mantid/docs/source/algorithms/ExportTimeSeriesLog-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExportTimeSeriesLog-v1.rst
@@ -109,3 +109,5 @@ Output:
   Number of events = 40
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExtractFFTSpectrum-v1.rst b/Code/Mantid/docs/source/algorithms/ExtractFFTSpectrum-v1.rst
index 7113ca73a4e4c6d165d91356dc9f15055d28e70a..a1509a1f2091277bcb8b1abe72fdd2b4e8be8169 100644
--- a/Code/Mantid/docs/source/algorithms/ExtractFFTSpectrum-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExtractFFTSpectrum-v1.rst
@@ -95,3 +95,5 @@ Output:
     Theoretical Sigma = 1/(2*pi*sigma)=3.183 -- Fitted Sigma value is: 3.183
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExtractMask-v1.rst b/Code/Mantid/docs/source/algorithms/ExtractMask-v1.rst
index 1a053dd9de1f573cf4e3b6a4da6f5047e37e62fb..c5daf4c305987c8492c38c97c90e93f7d073ec0a 100644
--- a/Code/Mantid/docs/source/algorithms/ExtractMask-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExtractMask-v1.rst
@@ -61,3 +61,5 @@ Output:
     8 True  True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExtractMaskToTable-v1.rst b/Code/Mantid/docs/source/algorithms/ExtractMaskToTable-v1.rst
index 6e4548fcdd20d49a7f7d658c6616983b0de78bb8..64b17356e2b10f5252a8e6571858c647332274d1 100644
--- a/Code/Mantid/docs/source/algorithms/ExtractMaskToTable-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExtractMaskToTable-v1.rst
@@ -109,3 +109,5 @@ Output:
   Row 2: Xmin = 12300.00000, Xmax = 24500.00000, DetectorIDsList =  27599-27698.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExtractMonitorWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/ExtractMonitorWorkspace-v1.rst
index 89d10164dd5408be414faf759fe3ca23a9fc199c..0185717cdffeccf2a6d527dbcf3d703b218591ef 100644
--- a/Code/Mantid/docs/source/algorithms/ExtractMonitorWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExtractMonitorWorkspace-v1.rst
@@ -30,6 +30,8 @@ Usage
 
 .. categories::
 
+.. sourcelink::
+
 
 
 
diff --git a/Code/Mantid/docs/source/algorithms/ExtractSingleSpectrum-v1.rst b/Code/Mantid/docs/source/algorithms/ExtractSingleSpectrum-v1.rst
index 36b141c527a68393e69d1efd7d8b0462e51f63ba..d53f48d9b63b3aa251875c0c95b4d5cf8a9f4bc4 100644
--- a/Code/Mantid/docs/source/algorithms/ExtractSingleSpectrum-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExtractSingleSpectrum-v1.rst
@@ -45,3 +45,5 @@ Output:
     [  0.3   0.3   0.3   0.3   0.3  10.3   0.3   0.3   0.3   0.3]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ExtractSpectra-v1.rst b/Code/Mantid/docs/source/algorithms/ExtractSpectra-v1.rst
index bc3ad6b17db86383971839ce1cc14d7d4e19fa52..17d925e805944a17493a1ede314bacf59b9610a4 100644
--- a/Code/Mantid/docs/source/algorithms/ExtractSpectra-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ExtractSpectra-v1.rst
@@ -28,7 +28,7 @@ Usage
     print 'Input workspace has %s spectra' % ws.getNumberHistograms()
 
     # Extract spectra 1,3 and 5 and crop the x-vector to interval 200 <= x <= 1300
-    cropped = ExtractSpectra(ws,200,1300,SpectrumList=[1,3,5])
+    cropped = ExtractSpectra(ws,200,1300,WorkspaceIndexList=[1,3,5])
     print 'Output workspace has %s bins' % cropped.blocksize()
     print 'Output workspace has %s spectra' % cropped.getNumberHistograms()
 
@@ -43,3 +43,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/FFT-v1.rst b/Code/Mantid/docs/source/algorithms/FFT-v1.rst
index 8324c5ce746d3b4c2dd2822aa47954cb1497c1e4..739d4179ff36cdc17a6ad966519cb37fbb9ceca1 100644
--- a/Code/Mantid/docs/source/algorithms/FFT-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FFT-v1.rst
@@ -177,4 +177,37 @@ for the real (0), imaginary (1) parts, and the modulus (2).
 | 2                 | Modulus          |
 +-------------------+------------------+
 
+Usage
+-------
+
+**Example: Applying FFT algorithm**
+
+.. testcode:: FFTBackwards
+
+   #Create Sample Workspace 
+   ws = CreateSampleWorkspace(WorkspaceType = 'Event', NumBanks = 1, Function = 'Exp Decay', BankPixelWidth = 1, NumEvents = 100)
+
+   #apply the FFT algorithm 
+   outworkspace = FFT(InputWorkspace = ws, Transform = 'Backward')
+
+   #print statements
+   print "DataX(0)[0] equals DataX(0)[100]? : " + str((round(abs(outworkspace.dataX(0)[0]), 3)) == (round(outworkspace.dataX(0)[100], 3)))
+   print "DataX(0)[10] equals DataX(0)[90]? : " + str((round(abs(outworkspace.dataX(0)[10]), 3)) == (round(outworkspace.dataX(0)[90], 3)))
+   print "DataX((0)[50] equals 0? : " + str((round(abs(outworkspace.dataX(0)[50]), 3)) == 0)
+   print "DataY(0)[40] equals DataY(0)[60]? : " + str((round(abs(outworkspace.dataY(0)[40]), 5)) == (round(outworkspace.dataY(0)[60], 5)))
+
+Output:
+
+.. testoutput:: FFTBackwards
+	
+   DataX(0)[0] equals DataX(0)[100]? : True
+   DataX(0)[10] equals DataX(0)[90]? : True
+   DataX((0)[50] equals 0? : True
+   DataY(0)[40] equals DataY(0)[60]? : True
+
+
 .. categories::
+
+.. sourcelink::
+    :h: Framework/Algorithms/inc/MantidAlgorithms/FFT.h
+    :cpp: Framework/Algorithms/src/FFT.cpp
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/FFTDerivative-v1.rst b/Code/Mantid/docs/source/algorithms/FFTDerivative-v1.rst
index d69712473789690530179dd45bb6714c3f994ef5..0042962b4b74bda57835c5e9424567d9561ebdd5 100644
--- a/Code/Mantid/docs/source/algorithms/FFTDerivative-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FFTDerivative-v1.rst
@@ -67,3 +67,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FFTSmooth-v1.rst b/Code/Mantid/docs/source/algorithms/FFTSmooth-v1.rst
index 7a4f1b7cf1409197a8d1b3a6e0bb74678e7d353e..b27eed6daf80497c24103281ad5676baea4118ea 100644
--- a/Code/Mantid/docs/source/algorithms/FFTSmooth-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FFTSmooth-v1.rst
@@ -72,3 +72,5 @@ Output:
     90  0.20  0.30 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FFTSmooth-v2.rst b/Code/Mantid/docs/source/algorithms/FFTSmooth-v2.rst
index 5ec9bf76190b6cd79c9b689df509b39d091dbdcb..a1d132f711315cdebba329bf70f637f5a065c3e9 100644
--- a/Code/Mantid/docs/source/algorithms/FFTSmooth-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/FFTSmooth-v2.rst
@@ -153,3 +153,5 @@ Usage
   smooth = FFTSmooth( ws, Filter='Butterworth', Params='5,2', AllSpectra=True )
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FakeISISEventDAE-v1.rst b/Code/Mantid/docs/source/algorithms/FakeISISEventDAE-v1.rst
index afbd288b68fc318dc95c20f9296cbca57e1aa58b..8c5eb452bcfe87e07d0fa45e4f2b9a5beeca9945 100644
--- a/Code/Mantid/docs/source/algorithms/FakeISISEventDAE-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FakeISISEventDAE-v1.rst
@@ -87,3 +87,5 @@ Output:
     The workspace contains ... events
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FakeISISHistoDAE-v1.rst b/Code/Mantid/docs/source/algorithms/FakeISISHistoDAE-v1.rst
index 2e0438300b23a99d077e24cef70057ca30981854..3b61adf99d78c9f9584481388dcbf28bcb58c6ba 100644
--- a/Code/Mantid/docs/source/algorithms/FakeISISHistoDAE-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FakeISISHistoDAE-v1.rst
@@ -81,3 +81,5 @@ Output:
     The workspace contains 100 histograms
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FakeMDEventData-v1.rst b/Code/Mantid/docs/source/algorithms/FakeMDEventData-v1.rst
index 775fbf6898f03a045b7b703a8e6cbd5a92f2bc37..f1ce1a4be7c5c4ed1d3b144653d98a92ab6c677d 100644
--- a/Code/Mantid/docs/source/algorithms/FakeMDEventData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FakeMDEventData-v1.rst
@@ -110,3 +110,5 @@ on the resulting workspace to create a 3D workspace with L integrated, the outpu
 |
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FilterBadPulses-v1.rst b/Code/Mantid/docs/source/algorithms/FilterBadPulses-v1.rst
index a534468b47b78b5cc84953a2fb5475808955e923..af338711ecedcd3cce06e87bdc5578cb4ac46b8a 100644
--- a/Code/Mantid/docs/source/algorithms/FilterBadPulses-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FilterBadPulses-v1.rst
@@ -45,3 +45,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FilterByLogValue-v1.rst b/Code/Mantid/docs/source/algorithms/FilterByLogValue-v1.rst
index e32d9bbd5d37d90b39c5788ef2affeea7b3b04ea..5f12dab6a6384329314f75c6eaf382d374274ceb 100644
--- a/Code/Mantid/docs/source/algorithms/FilterByLogValue-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FilterByLogValue-v1.rst
@@ -113,3 +113,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FilterByTime-v1.rst b/Code/Mantid/docs/source/algorithms/FilterByTime-v1.rst
index 86c67b84519229d0eed0507b6ef10af03964f37b..3274a8a26f75197a28fee021a829c4938376d4fb 100644
--- a/Code/Mantid/docs/source/algorithms/FilterByTime-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FilterByTime-v1.rst
@@ -67,3 +67,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FilterByXValue-v1.rst b/Code/Mantid/docs/source/algorithms/FilterByXValue-v1.rst
index 23421903481c6a14c3499f2f74ac1c3d73a18a0b..fdfa8866e9e52217890382b7f8f613c04186643c 100644
--- a/Code/Mantid/docs/source/algorithms/FilterByXValue-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FilterByXValue-v1.rst
@@ -58,3 +58,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FilterEvents-v1.rst b/Code/Mantid/docs/source/algorithms/FilterEvents-v1.rst
index f5d1123a894f810f193460ace7aabeb91a29a50c..196e02fd18804cb3fd0f1b497f5e32e587addbdc 100644
--- a/Code/Mantid/docs/source/algorithms/FilterEvents-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FilterEvents-v1.rst
@@ -185,3 +185,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FilterEventsByLogValuePreNexus-v2.rst b/Code/Mantid/docs/source/algorithms/FilterEventsByLogValuePreNexus-v2.rst
index 62c7c96e4b35247f59f8aeba3e46ea63f2870ecd..f561ec03ba6462196d994dfd9949370d738e7b61 100644
--- a/Code/Mantid/docs/source/algorithms/FilterEventsByLogValuePreNexus-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/FilterEventsByLogValuePreNexus-v2.rst
@@ -31,3 +31,6 @@ section of the file; e.g. if these are 1 and 10 respectively only the
 first 10% of the events will be loaded.
 
 .. categories::
+
+.. sourcelink::
+  :filename: FilterEventsByLogValuePreNexus
diff --git a/Code/Mantid/docs/source/algorithms/FilterLogByTime-v1.rst b/Code/Mantid/docs/source/algorithms/FilterLogByTime-v1.rst
index 54f0d0fdf93ad6418422cdae01b72a2b61b83115..864db8bf78f8688a2b351c784ee8d58332134909 100644
--- a/Code/Mantid/docs/source/algorithms/FilterLogByTime-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FilterLogByTime-v1.rst
@@ -81,3 +81,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FilterPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/FilterPeaks-v1.rst
index 9dff1994d5dbc30be10b3c1bb4a466a2f5c544fd..0e2c5e8510f26806ba88a884e7eb2ceb913f6ce7 100644
--- a/Code/Mantid/docs/source/algorithms/FilterPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FilterPeaks-v1.rst
@@ -13,3 +13,5 @@ Filters a :ref:`PeaksWorkspace <PeaksWorkspace>` using a set number of
 queries. Outputs a filtered :ref:`PeaksWorkspace <PeaksWorkspace>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindCenterOfMassPosition-v1.rst b/Code/Mantid/docs/source/algorithms/FindCenterOfMassPosition-v1.rst
index 872bbcaf760465dcb3166d0da3041feae451fdcb..089aeba786c3e2a72c6e84e647f42645ee3cdaab 100644
--- a/Code/Mantid/docs/source/algorithms/FindCenterOfMassPosition-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindCenterOfMassPosition-v1.rst
@@ -51,3 +51,5 @@ Usage
    FindCenterOfMassPosition('workspace', Output='center', Version=1)
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindCenterOfMassPosition-v2.rst b/Code/Mantid/docs/source/algorithms/FindCenterOfMassPosition-v2.rst
index c95d06bd982ab7d075b60edcadf3f0fbb1069eb5..6e52fe5e4c59b50f61134e4523a07ecc2afcf5a2 100644
--- a/Code/Mantid/docs/source/algorithms/FindCenterOfMassPosition-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/FindCenterOfMassPosition-v2.rst
@@ -50,3 +50,5 @@ Usage
    FindCenterOfMassPosition('workspace', Output='center')
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindClusterFaces-v1.rst b/Code/Mantid/docs/source/algorithms/FindClusterFaces-v1.rst
index cf5c1d3d03db4d4acfb797f55016b58307cc75bc..e9dc29408f41256c10c615ae87aebb124827b2dc 100644
--- a/Code/Mantid/docs/source/algorithms/FindClusterFaces-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindClusterFaces-v1.rst
@@ -30,3 +30,5 @@ MaximumRows that you set, then it will emit a warning, and also, set the
 TruncatedOutput output property to false.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindDeadDetectors-v1.rst b/Code/Mantid/docs/source/algorithms/FindDeadDetectors-v1.rst
index c2275060fee82de1fa149eadea4fdb0be6b2fc40..b7f410db0688cb9720866081733d07beddf37610 100644
--- a/Code/Mantid/docs/source/algorithms/FindDeadDetectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindDeadDetectors-v1.rst
@@ -72,3 +72,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindDetectorsInShape-v1.rst b/Code/Mantid/docs/source/algorithms/FindDetectorsInShape-v1.rst
index 5e65929bb2bc3f23588649d5b445a2f1bb007fc6..38b803444cb0a9984e17777fcc3da58f1103eb6c 100644
--- a/Code/Mantid/docs/source/algorithms/FindDetectorsInShape-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindDetectorsInShape-v1.rst
@@ -64,3 +64,5 @@ Output:
    The wide cylinder contains 64 of the detectors.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindDetectorsOutsideLimits-v1.rst b/Code/Mantid/docs/source/algorithms/FindDetectorsOutsideLimits-v1.rst
index 2af628378a075cec2db342cca3168ef70e28dfd4..5be1497385c246b69ee2717c3e6db51f29789587 100644
--- a/Code/Mantid/docs/source/algorithms/FindDetectorsOutsideLimits-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindDetectorsOutsideLimits-v1.rst
@@ -67,3 +67,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindDetectorsPar-v1.rst b/Code/Mantid/docs/source/algorithms/FindDetectorsPar-v1.rst
index 40d3293f8b2a95b453fc98dfbf4ced361b2cedae..bb6fa2e89a61ed04e9c46bb65101be7e8431e05b 100644
--- a/Code/Mantid/docs/source/algorithms/FindDetectorsPar-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindDetectorsPar-v1.rst
@@ -113,3 +113,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindPeakBackground-v1.rst b/Code/Mantid/docs/source/algorithms/FindPeakBackground-v1.rst
index 5137e03ad5a68d1682efc7a1a9908ac257ecc522..74a0ba5dbc1ecad94b04ff36568381c3d47b9d79 100644
--- a/Code/Mantid/docs/source/algorithms/FindPeakBackground-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindPeakBackground-v1.rst
@@ -33,3 +33,5 @@ by T. |Straaso|, D. Mueter, H. O. |Sorensen| and J. Als-Nielsen Strass
    :trim:
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/FindPeaks-v1.rst
index c7e6cc50cf994e80d140d00113b6c4dedb6322b1..93fdb6e0fd1c0a65a56f573f7a53f77731cbb994 100644
--- a/Code/Mantid/docs/source/algorithms/FindPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindPeaks-v1.rst
@@ -84,7 +84,7 @@ observed data.
 References
 ----------
 
-#. M.A.Mariscotti, *A method for automatic identification of peaks in the presence of background and its application to spectrum analysis , NIM 50 (1967) 309.*
+#. M.A.Mariscotti, *A method for automatic identification of peaks in the presence of background and its application to spectrum analysis* , `NIM 50 (1967) 309 <http://dx.doi.org/10.1016/0029-554X(67)90058-4>`_
 
 Usage
 -----
@@ -112,3 +112,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindPeaksMD-v1.rst b/Code/Mantid/docs/source/algorithms/FindPeaksMD-v1.rst
index 6f085274443e5144848c4ea056f4b5bf50fe067a..58a5abbdbb4578bd65b9d097ecd103c5cbb9b704 100644
--- a/Code/Mantid/docs/source/algorithms/FindPeaksMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindPeaksMD-v1.rst
@@ -115,3 +115,5 @@ file is availible in `Mantid system tests repository <https://github.com/mantidp
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindReflectometryLines-v1.rst b/Code/Mantid/docs/source/algorithms/FindReflectometryLines-v1.rst
index 2ebb2e3fce444d560daf6e109691833d739bc200..600b75086d78b2a9c275f1752be96f0be15cf63b 100644
--- a/Code/Mantid/docs/source/algorithms/FindReflectometryLines-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindReflectometryLines-v1.rst
@@ -46,3 +46,5 @@ Output:
     Transmission Spectrum Number 2
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindSXPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/FindSXPeaks-v1.rst
index 539ac52193853136d357fe0d06cc69f727a89d11..44f8018f8f413ff2a6af425df3c9ca26958b8fa7 100644
--- a/Code/Mantid/docs/source/algorithms/FindSXPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindSXPeaks-v1.rst
@@ -43,3 +43,5 @@ Output:
    Peaks found: 174
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindUBUsingFFT-v1.rst b/Code/Mantid/docs/source/algorithms/FindUBUsingFFT-v1.rst
index a42a25652ab907b425f89003e364888706346f6f..dc20e3e9c9ef43c6d6120168f7e299693bf06079 100644
--- a/Code/Mantid/docs/source/algorithms/FindUBUsingFFT-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindUBUsingFFT-v1.rst
@@ -66,3 +66,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindUBUsingIndexedPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/FindUBUsingIndexedPeaks-v1.rst
index 4e8ee793dce41b55f1e401981d3ab0bfa045dd40..14c934b71399f50fa3f5e3e88a6cfcb87f684057 100644
--- a/Code/Mantid/docs/source/algorithms/FindUBUsingIndexedPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindUBUsingIndexedPeaks-v1.rst
@@ -47,3 +47,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindUBUsingLatticeParameters-v1.rst b/Code/Mantid/docs/source/algorithms/FindUBUsingLatticeParameters-v1.rst
index 6d01d2d6f8412d3f391bffc12da8311d0b9e6f9d..f67ed4fdad26ab510e308279a81eb767d24ca3bf 100644
--- a/Code/Mantid/docs/source/algorithms/FindUBUsingLatticeParameters-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindUBUsingLatticeParameters-v1.rst
@@ -68,3 +68,5 @@ Output:
      [-0.05749773  0.03223779 -0.02737294]]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FindUBUsingMinMaxD-v1.rst b/Code/Mantid/docs/source/algorithms/FindUBUsingMinMaxD-v1.rst
index 3be0989f3203c2c11afcaa9832df4f995694ab18..f8377400779c982ac8690c31fa6a54b8db20dfeb 100644
--- a/Code/Mantid/docs/source/algorithms/FindUBUsingMinMaxD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FindUBUsingMinMaxD-v1.rst
@@ -54,3 +54,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Fit-v1.rst b/Code/Mantid/docs/source/algorithms/Fit-v1.rst
index 25b0315a012d9b0818b0210dde62b059198bd1c7..55baf7dfbf7fbf9ae2af351d8b9afc0e82a8af2a 100644
--- a/Code/Mantid/docs/source/algorithms/Fit-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Fit-v1.rst
@@ -181,23 +181,50 @@ the fit. Zero error values are not allowed and are replaced with ones.
 Output
 ######
 
-Setting the Output property defines the names of the two output
-workspaces. One of them is a `TableWorkspace <http://www.mantidproject.org/TableWorkspace>`_ with
-the fitted parameter values. The other is a
-:ref:`Workspace2D <Workspace2D>` which compares the fit with the original
-data. It has three spectra. The first (index 0) contains the original
-data, the second one the data simulated with the fitting function and
-the third spectrum is the difference between the first two. For example,
-if the Output was set to "MyResults" the parameter TableWorkspace will
-have name "MyResults\_Parameters" and the Workspace2D will be named
-"MyResults\_Workspace". If the function's derivatives can be evaluated
-an additional TableWorkspace is returned. When the Output is set to
-"MyResults" this TableWorkspace will have the name
-"MyResults\_NormalisedCovarianceMatrix" and it returns a calculated
-correlation matrix. Denote this matrix C and its elements Cij then the
-diagonal elements are listed as 1.0 and the off diagnonal elements as
-percentages of correlation between parameter i and j equal to
-100\*Cij/sqrt(Cii\*Cjj).
+Two output properties are added if the property 'CreateOutput' is set:
+
+1. OutputParameters
+2. OutputWorkspace (only if OutputParametersOnly is not set)
+
+These two properties are not shown in the table of properties above,
+as they are declared dynamically, but they can be retrieved after
+executing the algorithm (as long as the property 'CreateOutput' was
+used). These two output properties provide workspaces which are also
+added in the Analysis Data Service (ADS) with names defined by
+appending a suffix to the name of the original data workspace. You can
+replace the name of the workspace with a different name if you give a
+value to the property 'Output' which redefines the base name of the
+output workspaces.
+
+OutputParameters is is a `TableWorkspace
+<http://www.mantidproject.org/TableWorkspace>`_ with the fitted
+parameter values. OutputWorkspace is a :ref:`Workspace2D
+<Workspace2D>` which compares the fit with the original data. The
+names given to these workspaces are built by appending the suffixes
+"_Parameters" and "_Workspace" to the name given in the input property
+'Output'. For example, if 'Output' was set to "MyResults" the name of
+the parameter TableWorkspace will be "MyResults\_Parameters" and the
+name of the Workspace2D will be "MyResults\_Workspace".
+
+The :ref:`Workspace2D <Workspace2D>` produced in the output property
+'OutputWorkspace' (example name: "MyResults\_Workspace") has three
+spectra:
+
+1. The first spectrum (workspace index 0) contains the original data.
+2. The second spectrum is the data simulated with the fitted function.
+3. The third spectrum is the difference between the first two.
+
+Also, if the function's derivatives can be evaluated an additional
+`TableWorkspace <http://www.mantidproject.org/TableWorkspace>`_ is
+produced. If for example the property Output is set to "MyResults"
+then this TableWorkspace will have the name
+"MyResults\_NormalisedCovarianceMatrix" and it contains a calculated
+correlation matrix. Denote this matrix :math:`\rm C` and its elements
+:math:`c_{ij}` then the diagonal elements are listed as 1.0 and the
+off diagonal elements as percentages of correlation between parameter
+:math:`i` and :math:`j` equal to
+
+.. math:: 100 \cdot c_{ij} / \sqrt{c_{ii} \cdot c_{jj}}.
 
 Examples
 --------
@@ -326,3 +353,7 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
+ :h: Framework/CurveFitting/inc/MantidCurveFitting/Fit.h
+ :cpp: Framework/CurveFitting/src/Fit.cpp
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/FitPeak-v1.rst b/Code/Mantid/docs/source/algorithms/FitPeak-v1.rst
index d3847ba8e9a6de9548afcb1b85a8b5d067c3c4a2..1290d06595ad6847c05ee8493ccbdc35fd2115c7 100644
--- a/Code/Mantid/docs/source/algorithms/FitPeak-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FitPeak-v1.rst
@@ -162,3 +162,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FitPowderDiffPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/FitPowderDiffPeaks-v1.rst
index 6905b0a41e4a3e5bb6e61e16f672c1620eef9910..f33f53b52adc31d64fda8d284f429e9cc3d7d4ac 100644
--- a/Code/Mantid/docs/source/algorithms/FitPowderDiffPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FitPowderDiffPeaks-v1.rst
@@ -176,3 +176,5 @@ Output:
   Peak @ d = 0.95366, TOF_0 = 21540.56129, A = 0.12770, B = 0.08669, Sigma = 8.26518
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FitResolutionConvolvedModel-v1.rst b/Code/Mantid/docs/source/algorithms/FitResolutionConvolvedModel-v1.rst
index d126844d6577117c6f9816841443a34c175a5c18..2d8770ff4f101fb34cd88a979eaf9a4c54557db7 100644
--- a/Code/Mantid/docs/source/algorithms/FitResolutionConvolvedModel-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FitResolutionConvolvedModel-v1.rst
@@ -13,3 +13,5 @@ Fits a dataset using a resolution function convolved with a foreground
 model
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FixGSASInstrumentFile-v1.rst b/Code/Mantid/docs/source/algorithms/FixGSASInstrumentFile-v1.rst
index deff928a2e29f6e4638a7c35a2a27f3d3499c8c7..1080a5e13052d9537e58c56ad62393a0fea6537b 100644
--- a/Code/Mantid/docs/source/algorithms/FixGSASInstrumentFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FixGSASInstrumentFile-v1.rst
@@ -57,3 +57,5 @@ Output:
   Corrected File: Number of lines that are not equal to 80 characters =  0
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FlatPlateAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/FlatPlateAbsorption-v1.rst
index ef8c3987d973f04d30e33861ad46dfcdf0a7fa73..22219abe2ef404f7dfa1494f32494a433a7a131c 100644
--- a/Code/Mantid/docs/source/algorithms/FlatPlateAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FlatPlateAbsorption-v1.rst
@@ -54,3 +54,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FlatPlatePaalmanPingsCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/FlatPlatePaalmanPingsCorrection-v1.rst
index 47da311b90228afe23bd4799a76b12cdb1e909a9..f0f129c6e31aee97d919574b7b9c5c0c204385f0 100644
--- a/Code/Mantid/docs/source/algorithms/FlatPlatePaalmanPingsCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FlatPlatePaalmanPingsCorrection-v1.rst
@@ -64,3 +64,5 @@ Output:
     Correction workspaces: corr_ass, corr_assc, corr_acsc, corr_acc
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/FuryFitMultiple-v1.rst b/Code/Mantid/docs/source/algorithms/FuryFitMultiple-v1.rst
index bd5498168388bab68754f09ee806940fa44cf3e6..9b4f609532344889888be5bf2827a49d51e9494f 100644
--- a/Code/Mantid/docs/source/algorithms/FuryFitMultiple-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/FuryFitMultiple-v1.rst
@@ -41,3 +41,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GatherWorkspaces-v1.rst b/Code/Mantid/docs/source/algorithms/GatherWorkspaces-v1.rst
index 2e2aeefd5b0cd9fa7134146e9557e063e6656c1f..3e58b64aef50be660ed550ac2195a2e57d776df3 100644
--- a/Code/Mantid/docs/source/algorithms/GatherWorkspaces-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GatherWorkspaces-v1.rst
@@ -16,3 +16,5 @@ It is up to the caller to ensure this results in the required ordering.
 Furthermore, there are all sorts of things that ought to be consistent for this algorithm to make sense (e.g. the instrument). The general philosophy, though, is to leave the responsibility for this to the user and only check the vital things (i.e. that the number of bins is consistent).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GeneralisedSecondDifference-v1.rst b/Code/Mantid/docs/source/algorithms/GeneralisedSecondDifference-v1.rst
index a17dcbebb7cb6eee9a9886c4df8006540d5c3972..482f862c3d3f8a83a4be2a7cb3eb0bdb60ef8b7d 100644
--- a/Code/Mantid/docs/source/algorithms/GeneralisedSecondDifference-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GeneralisedSecondDifference-v1.rst
@@ -41,3 +41,5 @@ Output:
    Peak at 15.0
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GenerateEventsFilter-v1.rst b/Code/Mantid/docs/source/algorithms/GenerateEventsFilter-v1.rst
index 207d22da111a534036212e64237212d3c8bc7509..4b56145661e6b2364206b0225c29b97448fde5d9 100644
--- a/Code/Mantid/docs/source/algorithms/GenerateEventsFilter-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GenerateEventsFilter-v1.rst
@@ -256,3 +256,5 @@ Output:
     Number of rows in second TableWorkspace = 9
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GenerateGroupingPowder-v1.rst b/Code/Mantid/docs/source/algorithms/GenerateGroupingPowder-v1.rst
index cd85298cd80da7e0c661c985e58c338153381139..24ee9251e019dd0ffcd3cc0d8e7910628787fb20 100644
--- a/Code/Mantid/docs/source/algorithms/GenerateGroupingPowder-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GenerateGroupingPowder-v1.rst
@@ -69,3 +69,5 @@ If one would use LoadDetectorsGroupingFile on powder.xml one would get a workspa
    :alt: GenerateGroupingPowder.png
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GenerateGroupingSNSInelastic-v1.rst b/Code/Mantid/docs/source/algorithms/GenerateGroupingSNSInelastic-v1.rst
index 7a18f450cfbd6de20f3758726f94d22a42485a56..1fb585687f5814fa670228d53f43d8d52e2bcfc1 100644
--- a/Code/Mantid/docs/source/algorithms/GenerateGroupingSNSInelastic-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GenerateGroupingSNSInelastic-v1.rst
@@ -59,3 +59,5 @@ If one would use LoadDetectorsGroupingFile on cncs.xml one would get a workspace
    :alt: GenerateGroupingSNSInelastic.png
     
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GeneratePeaks-v1.rst b/Code/Mantid/docs/source/algorithms/GeneratePeaks-v1.rst
index 669176b61ab2281060c859d58a21b358bc9de266..66671e59a16106199db8cda51731e7e8b7701e56 100644
--- a/Code/Mantid/docs/source/algorithms/GeneratePeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GeneratePeaks-v1.rst
@@ -160,3 +160,5 @@ Output:
   X = 0.950000, Y = 15.642332
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GeneratePythonScript-v1.rst b/Code/Mantid/docs/source/algorithms/GeneratePythonScript-v1.rst
index a65f4d025222989453a7d1b712a66359d5deacc4..1c552af835618ebbaf3e23886f27c31302dedc79 100644
--- a/Code/Mantid/docs/source/algorithms/GeneratePythonScript-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GeneratePythonScript-v1.rst
@@ -151,3 +151,5 @@ Output:
     removeFiles(['myscript.py'])
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GetDetOffsetsMultiPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/GetDetOffsetsMultiPeaks-v1.rst
index 9c0fde0e19174dd89c99dc9f126ef83bcef0a77c..96c447ba9ec3aad5041e925a53c5be71f1705a35 100644
--- a/Code/Mantid/docs/source/algorithms/GetDetOffsetsMultiPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GetDetOffsetsMultiPeaks-v1.rst
@@ -268,3 +268,5 @@ Output
 .. seealso :: Algorithm :ref:`algm-EstimateResolutionDiffraction`
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GetDetectorOffsets-v1.rst b/Code/Mantid/docs/source/algorithms/GetDetectorOffsets-v1.rst
index 1868345facda4032d787ae405bb96df0ad0a391e..e30dc68f7f771f960ad52fae1e4be1088294fa44 100644
--- a/Code/Mantid/docs/source/algorithms/GetDetectorOffsets-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GetDetectorOffsets-v1.rst
@@ -78,3 +78,5 @@ Output
   os.remove( calFilePath )
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GetEi-v1.rst b/Code/Mantid/docs/source/algorithms/GetEi-v1.rst
index 82845da4cbe0bc351b4d6c3aa71c40b46e6ae564..f6f69d097d0931201f6322117c223c39016a5c08 100644
--- a/Code/Mantid/docs/source/algorithms/GetEi-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GetEi-v1.rst
@@ -53,3 +53,5 @@ on one line and that the monitors have the same delay time.
     it is not deprecated.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GetEi-v2.rst b/Code/Mantid/docs/source/algorithms/GetEi-v2.rst
index a96e4b40798d53ec04da6ce25407563a20c35b66..4c0499263a2adbd552edf9531ca11f9c7f99aa3a 100644
--- a/Code/Mantid/docs/source/algorithms/GetEi-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/GetEi-v2.rst
@@ -122,3 +122,5 @@ Output:
     Time Zero = -61.7708018029 microseconds
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GetEiMonDet-v1.rst b/Code/Mantid/docs/source/algorithms/GetEiMonDet-v1.rst
index 2f8b9e473a2a12135f6e1f79a6ef90f7b8feee74..c9c6d867cfc04936c0708cc7f84cd9d2aad3239d 100644
--- a/Code/Mantid/docs/source/algorithms/GetEiMonDet-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GetEiMonDet-v1.rst
@@ -23,3 +23,5 @@ algorithm. The output of this algorithm is identical to that of
     get a better estimate of Ei. The algorithm might soon be deprecated. 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GetEiT0atSNS-v1.rst b/Code/Mantid/docs/source/algorithms/GetEiT0atSNS-v1.rst
index 0cdebfdcd4613ccdeb2408c0214fb8e0d13c6961..4b5ff2cf16ce7f2e6b982bd88ebf354614c9d57d 100644
--- a/Code/Mantid/docs/source/algorithms/GetEiT0atSNS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GetEiT0atSNS-v1.rst
@@ -57,3 +57,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GetSpiceDataRawCountsFromMD-v1.rst b/Code/Mantid/docs/source/algorithms/GetSpiceDataRawCountsFromMD-v1.rst
index 2ec819a44654f93d4f6e4e675097cb1fd64e7d1b..7a010780525009c3e3425f38038f1fb68bc9ef61 100644
--- a/Code/Mantid/docs/source/algorithms/GetSpiceDataRawCountsFromMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GetSpiceDataRawCountsFromMD-v1.rst
@@ -115,3 +115,5 @@ Output:
   X[60] = 63.23600, Y[60] = 0.00325
   
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GetTimeSeriesLogInformation-v1.rst b/Code/Mantid/docs/source/algorithms/GetTimeSeriesLogInformation-v1.rst
index d60729bc5106f86ac6edfe6887d9321047821987..f27d2d009209de21809791a1155126837c925e3f 100644
--- a/Code/Mantid/docs/source/algorithms/GetTimeSeriesLogInformation-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GetTimeSeriesLogInformation-v1.rst
@@ -38,3 +38,5 @@ Output:
    Sigma(dt)  10.543
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GoniometerAnglesFromPhiRotation-v1.rst b/Code/Mantid/docs/source/algorithms/GoniometerAnglesFromPhiRotation-v1.rst
index 24b309ad6f68459b2a17a7cc024a94f978d2191c..62223d4781cba432ba87e3e75ad6d9529ff333fb 100644
--- a/Code/Mantid/docs/source/algorithms/GoniometerAnglesFromPhiRotation-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GoniometerAnglesFromPhiRotation-v1.rst
@@ -44,3 +44,5 @@ Output:
    Chi: 90.0, Omega: 90.0, Indexed: 300, AvErrIndex: 0.2114 AvErrAll: 0.2114
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GreaterThanMD-v1.rst b/Code/Mantid/docs/source/algorithms/GreaterThanMD-v1.rst
index 6a85b8ec8c72793fe8e248d249a6baf477585440..1b4bfccb9239c108ef0355484b01f022c9d23d04 100644
--- a/Code/Mantid/docs/source/algorithms/GreaterThanMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GreaterThanMD-v1.rst
@@ -20,3 +20,5 @@ For a MDHistoWorkspace and a scalar, the operation is performed on each
 element of the output.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GroupDetectors-v1.rst b/Code/Mantid/docs/source/algorithms/GroupDetectors-v1.rst
index 5d300deff4c8eeeae048689034ef38b15262928b..f6d278f4303893289b2355898b4ef4a494e24f27 100644
--- a/Code/Mantid/docs/source/algorithms/GroupDetectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GroupDetectors-v1.rst
@@ -264,3 +264,5 @@ Output
   Number of detectors is 1
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GroupDetectors-v2.rst b/Code/Mantid/docs/source/algorithms/GroupDetectors-v2.rst
index 158f8d15066b48024499744659507461f00897eb..23630d37e363905ace50552195854ed64fbda7e6 100644
--- a/Code/Mantid/docs/source/algorithms/GroupDetectors-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/GroupDetectors-v2.rst
@@ -488,23 +488,31 @@ Output:
 
 .. testcode:: ExGroupDetectorsWithPattern
 
-   # Create Workspace of 5 spectra each with two entries.
-   ws = CreateWorkspace(DataX=[1,2], DataY=[11,12,21,22,31,32,41,42,51,52], NSpec=5)
+   # Create Workspace of 10 spectra each with one bin.
+   ws = CreateWorkspace(DataX=[1], DataY=[1,2,3,4,5,6,7,8,9,10], NSpec=10)
 
-   # Run algorithm adding first two spectra and then keeping last two spectra
-   ws2 = GroupDetectors(ws, GroupingPattern="0+1,3,4")
+   # Run algorithm adding first two spectra and then keep the fourth, add the fifth to seventh, and then keep the last three spectra
+   ws2 = GroupDetectors(ws, GroupingPattern="0+1,3,4-6,7:9")
 
    #print result
    print ws2.readY(0)
    print ws2.readY(1)
    print ws2.readY(2)
+   print ws2.readY(3)
+   print ws2.readY(4)
+   print ws2.readY(5)
 
 Output:
 
 .. testoutput:: ExGroupDetectorsWithPattern
 
-   [ 32.  34.]
-   [ 41.  42.]
-   [ 51.  52.]
+   [ 3.]
+   [ 4.]
+   [ 18.]
+   [ 8.]
+   [ 9.]
+   [ 10.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/GroupWorkspaces-v1.rst b/Code/Mantid/docs/source/algorithms/GroupWorkspaces-v1.rst
index 00f09a58c25393b6f50b8837c9ab98fb314a71b9..5890d1ef58c11680ae561418c16820ff658a5c39 100644
--- a/Code/Mantid/docs/source/algorithms/GroupWorkspaces-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/GroupWorkspaces-v1.rst
@@ -41,3 +41,5 @@ Output
   Its second item is ws2
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/HFIRDarkCurrentSubtraction-v1.rst b/Code/Mantid/docs/source/algorithms/HFIRDarkCurrentSubtraction-v1.rst
index ecdd6ac52fa2549ac2977471f93dfdfc93c1e2aa..1fa07f3cabb735527478f8635962705286271e78 100644
--- a/Code/Mantid/docs/source/algorithms/HFIRDarkCurrentSubtraction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/HFIRDarkCurrentSubtraction-v1.rst
@@ -31,3 +31,5 @@ where the T-values are the counting times for the data set and the dark current
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/HFIRLoad-v1.rst b/Code/Mantid/docs/source/algorithms/HFIRLoad-v1.rst
index 592daa1b539313a75d1deed1b276276518047274..606aee6b338472cc982299233375642a0eabdbbd 100644
--- a/Code/Mantid/docs/source/algorithms/HFIRLoad-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/HFIRLoad-v1.rst
@@ -50,3 +50,5 @@ Output:
    SDD = 6000
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/HFIRSANSNormalise-v1.rst b/Code/Mantid/docs/source/algorithms/HFIRSANSNormalise-v1.rst
index 7e686dfb97862ca6e106b549619700a6f649bd27..600633def4b162d84204040485d67f254249b259 100644
--- a/Code/Mantid/docs/source/algorithms/HFIRSANSNormalise-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/HFIRSANSNormalise-v1.rst
@@ -30,3 +30,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/HFIRSANSReduction-v1.rst b/Code/Mantid/docs/source/algorithms/HFIRSANSReduction-v1.rst
index fbb2eaa0abc22c3a7b4a9cf56568da2f9f90b052..76fc0da3670304bd68d1bb4ffad9a3f789cded0b 100644
--- a/Code/Mantid/docs/source/algorithms/HFIRSANSReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/HFIRSANSReduction-v1.rst
@@ -55,3 +55,5 @@ The workflow proceeds as follows:
 .. |HFIRSANSReduction.png| image:: /images/HFIRSANSReduction.png
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/HRPDSlabCanAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/HRPDSlabCanAbsorption-v1.rst
index 713fd96ef76db9a0a4378b90783e7adec2246d8b..576fd4d71cb6629b5a026d96615faca06fb06089 100644
--- a/Code/Mantid/docs/source/algorithms/HRPDSlabCanAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/HRPDSlabCanAbsorption-v1.rst
@@ -66,3 +66,5 @@ Output:
     The created workspace has one entry for each spectra: 1
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/HasUB-v1.rst b/Code/Mantid/docs/source/algorithms/HasUB-v1.rst
index 189338a056e2a0aa43616f2174acc7899189202c..271542a4af7ecb324cba68811a2f51577f8613de 100644
--- a/Code/Mantid/docs/source/algorithms/HasUB-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/HasUB-v1.rst
@@ -47,3 +47,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/He3TubeEfficiency-v1.rst b/Code/Mantid/docs/source/algorithms/He3TubeEfficiency-v1.rst
index 80bea43849359d0ba35fe2daa78a2d054a4581fe..a211cdd98021c079a566bc7e365ec4e0c488433a 100644
--- a/Code/Mantid/docs/source/algorithms/He3TubeEfficiency-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/He3TubeEfficiency-v1.rst
@@ -64,3 +64,5 @@ Output:
     Corrected counts: [ 417.07353051  139.35837696   83.81566631   60.01187609   46.787726  ]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ILLIN16BCalibration-v1.rst b/Code/Mantid/docs/source/algorithms/ILLIN16BCalibration-v1.rst
index 560c6f7e42c069ca9f6067c5ca41a8a1dbf099d8..223bf01cd4467846fa55417d8825249cd611a321 100644
--- a/Code/Mantid/docs/source/algorithms/ILLIN16BCalibration-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ILLIN16BCalibration-v1.rst
@@ -42,3 +42,5 @@ Output:
     Calibration workspace has 24 spectra and 1 bin(s)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IQTransform-v1.rst b/Code/Mantid/docs/source/algorithms/IQTransform-v1.rst
index 18ce53195b62c5bf1ddd79504f6b2b12bd904d36..377c8adcd42e53919bcfeddc593544bf78a0d1f4 100644
--- a/Code/Mantid/docs/source/algorithms/IQTransform-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IQTransform-v1.rst
@@ -123,3 +123,5 @@ Output:
    Output X: [  1.   8.  27.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ISISIndirectDiffractionReduction-v1.rst b/Code/Mantid/docs/source/algorithms/ISISIndirectDiffractionReduction-v1.rst
index 120fa4a9075c982fb105f7ddedaccf2773f2db13..3359ac5852b41d16780aea9c203da4eb0fdfda81 100644
--- a/Code/Mantid/docs/source/algorithms/ISISIndirectDiffractionReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ISISIndirectDiffractionReduction-v1.rst
@@ -45,3 +45,5 @@ Output:
     Number of bins: 1935
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ISISIndirectEnergyTransfer-v1.rst b/Code/Mantid/docs/source/algorithms/ISISIndirectEnergyTransfer-v1.rst
index c0d2f42e1b5f8cfbb3ea59ab7e3d820e60e5fbd5..ee5c57e1b7cb1f74728b728724294290a4968ed2 100644
--- a/Code/Mantid/docs/source/algorithms/ISISIndirectEnergyTransfer-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ISISIndirectEnergyTransfer-v1.rst
@@ -45,3 +45,5 @@ Output:
    IRS21360_graphite002_red
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IdentifyNoisyDetectors-v1.rst b/Code/Mantid/docs/source/algorithms/IdentifyNoisyDetectors-v1.rst
index a48ebf4324d853fee70f12b5d5efeef4556eb844..0d02bb2c84c9719b4eec4c5bd38f6db4a1cd0928 100644
--- a/Code/Mantid/docs/source/algorithms/IdentifyNoisyDetectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IdentifyNoisyDetectors-v1.rst
@@ -71,3 +71,5 @@ Output:
     15 good spectra left from an original 200.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ImportMDEventWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/ImportMDEventWorkspace-v1.rst
index 7e859a318c57e8c3e6d3b1d78e8656e38ce74455..b840b1ff0e109ca2508028eb3507bcc57f2ca941 100644
--- a/Code/Mantid/docs/source/algorithms/ImportMDEventWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ImportMDEventWorkspace-v1.rst
@@ -98,3 +98,5 @@ Output:
     Workspace type = MDEventWorkspace<MDEvent,2>
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ImportMDHistoWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/ImportMDHistoWorkspace-v1.rst
index 2c6cb12f8efaafd98042024b24f0bde16a6d8019..40818ee46bdcaede151b597ddaeb821b3aeb9254 100644
--- a/Code/Mantid/docs/source/algorithms/ImportMDHistoWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ImportMDHistoWorkspace-v1.rst
@@ -73,7 +73,7 @@ Output:
     ws = ImportMDHistoWorkspace('demo_mdhw.txt',Dimensionality='2',Extents='-1,1,-1,1',
                                 NumberOfBins='4,2',Names='A,B',Units='A,A')
     print "Number of Dimensions =", ws.getNumDims()
-    index = (1,2)
+    index = (2,1)
     print "Signal at "+str(index)+" =", ws.getSignalArray()[index]
     print "Error Squared at "+str(index)+" =", ws.getErrorSquaredArray()[index]
 
@@ -82,7 +82,9 @@ Output:
 .. testoutput:: Ex2D
 
     Number of Dimensions = 2
-    Signal at (1, 2) = 7.0
-    Error Squared at (1, 2) = 50.41
+    Signal at (2, 1) = 7.0
+    Error Squared at (2, 1) = 50.41
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IndexPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/IndexPeaks-v1.rst
index ad807f0ed0c0a29b6975e736dd61ab4fb2e7bc80..c425105cc4a7f280ea98946801ffde365deebe7f 100644
--- a/Code/Mantid/docs/source/algorithms/IndexPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndexPeaks-v1.rst
@@ -53,3 +53,5 @@ Output:
    Number of Indexed Peaks:  147
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IndexSXPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/IndexSXPeaks-v1.rst
index 682bdd0bc92ab135d2c9b675f6aea222cdb6bf82..9ab69a98d8b893b1d8deeb57979de21f14b54246 100644
--- a/Code/Mantid/docs/source/algorithms/IndexSXPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndexSXPeaks-v1.rst
@@ -31,3 +31,5 @@ Usage
     :ref:`FindPeaksMD <algm-FindPeaksMD>`
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IndirectAnnulusAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/IndirectAnnulusAbsorption-v1.rst
index 2f1343fcdcf645d6de0258c38027a3b4c1bbb9ea..731fa681384464a74a91d102a0345656e50d7803 100644
--- a/Code/Mantid/docs/source/algorithms/IndirectAnnulusAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndirectAnnulusAbsorption-v1.rst
@@ -107,3 +107,5 @@ Usage
   Acc workspace is Attenuation factor against Wavelength
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IndirectCalibration-v1.rst b/Code/Mantid/docs/source/algorithms/IndirectCalibration-v1.rst
index 3286f550878dde55e66429f46b23ec0778c769e3..1dff27bc7d3550a74bf48289b5258b167ad4c72a 100644
--- a/Code/Mantid/docs/source/algorithms/IndirectCalibration-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndirectCalibration-v1.rst
@@ -47,3 +47,5 @@ Output:
    Calibration workspace has 1 bin(s) and 51 spectra.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IndirectCylinderAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/IndirectCylinderAbsorption-v1.rst
index ef2b38b704093025d74550b2c0ede9033bfca67e..4ca238948f611a89aa6be63618807fb5ea638d88 100644
--- a/Code/Mantid/docs/source/algorithms/IndirectCylinderAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndirectCylinderAbsorption-v1.rst
@@ -104,3 +104,5 @@ Usage
    Acc workspace is Attenuation factor against Wavelength
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IndirectFlatPlateAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/IndirectFlatPlateAbsorption-v1.rst
index 7e83f5ec675d28a666b8a34aedc750e328be1114..69ff254aa4f4335945a43e75e31879c2e9d2ba51 100644
--- a/Code/Mantid/docs/source/algorithms/IndirectFlatPlateAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndirectFlatPlateAbsorption-v1.rst
@@ -107,3 +107,5 @@ Usage
    Acc workspace is Attenuation factor against Wavelength
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IndirectILLReduction-v1.rst b/Code/Mantid/docs/source/algorithms/IndirectILLReduction-v1.rst
index 9acb6607c00a48c1b53063462bb7946a18be4a9e..71b57071363779241fb137025b6656e542c48d64 100644
--- a/Code/Mantid/docs/source/algorithms/IndirectILLReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndirectILLReduction-v1.rst
@@ -13,6 +13,17 @@ A workflow algorithm to perform a data reduction for Indirect ILL instruments.
 
 Note that currently only IN16B is supported.
 
+Mirror Mode
+~~~~~~~~~~~
+
+When IN16B records data in mirror mode the spectra for the acceleration and
+deceleration phase of the Doppler drive are recorded separately, the result is
+each spectra containing two regions for the same energy range.
+
+Enabling MirrorMode on this algorithm will split the data for each spectrum into
+two separate spectra, these form the "left" and "right" workspaces that are
+reduced independently and then summed.
+
 Workflow
 --------
 
@@ -65,3 +76,5 @@ Output:
     Reduced right workspace has 24 spectra
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IndirectResolution-v1.rst b/Code/Mantid/docs/source/algorithms/IndirectResolution-v1.rst
index 263866a4162d128d727425f6ca2fec0108c4789d..f6d387ef38e0ab9adb299707a9aa6ccd99512593 100644
--- a/Code/Mantid/docs/source/algorithms/IndirectResolution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndirectResolution-v1.rst
@@ -48,3 +48,5 @@ Output:
     Number of bins: 175
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IndirectTransmission-v1.rst b/Code/Mantid/docs/source/algorithms/IndirectTransmission-v1.rst
index f705195562b0622f386e41a856ace47894a740b6..952bb8584dc0870db85acbb0c4e8007ec64e1db3 100644
--- a/Code/Mantid/docs/source/algorithms/IndirectTransmission-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndirectTransmission-v1.rst
@@ -74,3 +74,7 @@ Output:
     Total scattering : 0.565169943961
 
 .. categories::
+
+.. sourcelink::
+  :cpp: None
+  :h: None
diff --git a/Code/Mantid/docs/source/algorithms/IndirectTransmissionMonitor-v1.rst b/Code/Mantid/docs/source/algorithms/IndirectTransmissionMonitor-v1.rst
index 1f655a7561edb86f7969851908a51a117cc07374..c88003c746fe792422609bc2c60491f4790c883c 100644
--- a/Code/Mantid/docs/source/algorithms/IndirectTransmissionMonitor-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IndirectTransmissionMonitor-v1.rst
@@ -19,6 +19,11 @@ monitor is first divided by the transmission monitor.
 It is assumed that the name of the incident monitor is *monitor2* and the name
 of the transmission monitor is *monitor1*.
 
+Workflow
+--------
+
+.. diagram:: IndirectTransmissionMonitor-v1_wkflw.dot
+
 Usage
 -----
 
@@ -42,3 +47,5 @@ Usage
    sample_ws_Sam, sample_ws_Can, sample_ws_Trans
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IntegrateByComponent-v1.rst b/Code/Mantid/docs/source/algorithms/IntegrateByComponent-v1.rst
index 4b3bc92600f6bda2ab93737c38b503f2ae0d5461..0d6a3d0cbea98afd78ae2c13c7d21ebe431852f0 100644
--- a/Code/Mantid/docs/source/algorithms/IntegrateByComponent-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IntegrateByComponent-v1.rst
@@ -75,3 +75,5 @@ Output:
      - two pixels in different bankss have the same value  True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IntegrateEllipsoids-v1.rst b/Code/Mantid/docs/source/algorithms/IntegrateEllipsoids-v1.rst
index 28bbc9f39371d863c08494577e5b5af3edea3ffe..6c9b414ca4608dc14e753e00b664a578bc905f07 100644
--- a/Code/Mantid/docs/source/algorithms/IntegrateEllipsoids-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IntegrateEllipsoids-v1.rst
@@ -238,3 +238,5 @@ file is availible in `Mantid system tests repository <https://github.com/mantidp
   
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IntegrateFlux-v1.rst b/Code/Mantid/docs/source/algorithms/IntegrateFlux-v1.rst
index 8fab83650ea9829b6276219c95d0abd96be257b9..9266edd18e894d8df96512db7766b000fc4c6600 100644
--- a/Code/Mantid/docs/source/algorithms/IntegrateFlux-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IntegrateFlux-v1.rst
@@ -41,3 +41,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/IntegrateMDHistoWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/IntegrateMDHistoWorkspace-v1.rst
index 06bac0efb53609183d103dbbb53bee59e5400941..12a7081c2f2366dc768898b86315464f758f5a96 100644
--- a/Code/Mantid/docs/source/algorithms/IntegrateMDHistoWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IntegrateMDHistoWorkspace-v1.rst
@@ -107,3 +107,5 @@ Output:
   
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/IntegratePeakTimeSlices-v1.rst b/Code/Mantid/docs/source/algorithms/IntegratePeakTimeSlices-v1.rst
index 55824d870925470970bfe0431ed691a84b083da5..6d54a0efafc380b13e939586e47dd64ef225baf2 100644
--- a/Code/Mantid/docs/source/algorithms/IntegratePeakTimeSlices-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IntegratePeakTimeSlices-v1.rst
@@ -62,3 +62,5 @@ Usage
     print "Intensity and SigmaIntensity of peak 0  = ",int,sig
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IntegratePeaksHybrid-v1.rst b/Code/Mantid/docs/source/algorithms/IntegratePeaksHybrid-v1.rst
index d72de7af49c15bb076eb30119459cc15d56da7e0..ce322bc845ad3ce4031f917f7afd9d79667f2452 100644
--- a/Code/Mantid/docs/source/algorithms/IntegratePeaksHybrid-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IntegratePeaksHybrid-v1.rst
@@ -73,3 +73,5 @@ Usage
    integrated_peaks, cluster_images = IntegratePeaksHybrid(InputWorkspace=mdew, PeaksWorkspace=peaks, BackgroundOuterRadius=0.4)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IntegratePeaksMD-v1.rst b/Code/Mantid/docs/source/algorithms/IntegratePeaksMD-v1.rst
index 1ab1f93e6b2db827964e4a93d771d397925499ff..b0fb9c10c7579bf2aef89a03d71a94d589cd94c4 100644
--- a/Code/Mantid/docs/source/algorithms/IntegratePeaksMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IntegratePeaksMD-v1.rst
@@ -16,3 +16,5 @@ The V1 of the algorithm is deprecated and left for compartibility with the scrip
 *CoordinatesToUse* set. Use :ref:`algm-IntegratePeaksMD-v2` for any new scripts.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IntegratePeaksMD-v2.rst b/Code/Mantid/docs/source/algorithms/IntegratePeaksMD-v2.rst
index 20ec4aae8a90ee567c814fd446119c9c6716dd14..c77e93d6eec4a7bbbf986e8c0f78434171bed2b2 100644
--- a/Code/Mantid/docs/source/algorithms/IntegratePeaksMD-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/IntegratePeaksMD-v2.rst
@@ -195,3 +195,5 @@ file is availible in `Mantid system tests repository <https://github.com/mantidp
    |     3132  |  1218594  |    0.000  |    0.000  |    0.000  |    1.016  |   79.240  | 4740.921  |    0.776  | 2999.159  |   35.467  |  901.000  | bank18    |   34.000  |  152.000  | [4.9551,3.59367,5.30453]  | [7.96049,1.19466,0.899379]  |
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/IntegratePeaksUsingClusters-v1.rst b/Code/Mantid/docs/source/algorithms/IntegratePeaksUsingClusters-v1.rst
index 1d6e1510eee73f3194a6807d7c07bdddd26b87a4..633e94fc34ce0315166505502806c3f9d49014c4 100644
--- a/Code/Mantid/docs/source/algorithms/IntegratePeaksUsingClusters-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/IntegratePeaksUsingClusters-v1.rst
@@ -108,3 +108,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Integration-v1.rst b/Code/Mantid/docs/source/algorithms/Integration-v1.rst
index bfc0e907c7dcff5fa017a3e639e7780b806b0433..efef5dda4c525255c86d7cd218b02ac778f93460 100644
--- a/Code/Mantid/docs/source/algorithms/Integration-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Integration-v1.rst
@@ -42,12 +42,12 @@ output will be a :ref:`MatrixWorkspace <MatrixWorkspace>`.
 :ref:`algm-Rebin` is recommended if you want to keep the workspace as an
 EventWorkspace.
 
-**Integraton for event workspaces refers to internal binning, provided by 
+**Integration for event workspaces refers to internal binning, provided by 
 :ref:`algm-Rebin` or load algorithm and may ignore limits, provided as algorithm 
-input.**  For example, attemtp to integrate loaded ISIS event workspace in the 
-range [18000,20000] yields workspace inegrated in the range [0,200000],
+input.**  For example, attempt to integrate loaded ISIS event workspace in the 
+range [18000,20000] yields workspace integrated in the range [0,200000],
 assuming the data were collected in the time range [0,20000]. This happens because
-the event data would have single hisogram workspace bin in range [0,20000].
+the event data would have single histogram workspace bin in range [0,20000].
 To obtain integral in the desired range, user have to :ref:`algm-Rebin` first, 
 and one of the binning intervals have to start from 18000 and another (or the same) 
 end at 20000.
@@ -83,3 +83,7 @@ Output
   Integration range is [ 0.0 , 20000.0 ]
 
 .. categories::
+
+.. sourcelink::
+    :cpp: Framework/Algorithms/src/Integration.cpp
+    :h: Framework/Algorithms/inc/MantidAlgorithms/Integration.h
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/InterpolatingRebin-v1.rst b/Code/Mantid/docs/source/algorithms/InterpolatingRebin-v1.rst
index c9950f6cf0e7e387dfa040d4fdda03b64e062daf..7eca9e7ed712bba32e85c69a815bb5f4273509e8 100644
--- a/Code/Mantid/docs/source/algorithms/InterpolatingRebin-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/InterpolatingRebin-v1.rst
@@ -74,3 +74,5 @@ Output:
 For further examples with more complex parameter strings see :ref:`Rebin examples <rebin-usage>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/InvertMDDim-v1.rst b/Code/Mantid/docs/source/algorithms/InvertMDDim-v1.rst
index 880c7e535b8bfb6dc1ae9be140f2919aeac8c4ce..954b2b1da7b16bc8ba722165d3392723c67c969f 100644
--- a/Code/Mantid/docs/source/algorithms/InvertMDDim-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/InvertMDDim-v1.rst
@@ -64,3 +64,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/InvertMask-v1.rst b/Code/Mantid/docs/source/algorithms/InvertMask-v1.rst
index 0c645186b64b05f89527274f03b78e2e5f0c4001..0ec4f9f9151f4b2c6299e1fae96af866007cebdf 100644
--- a/Code/Mantid/docs/source/algorithms/InvertMask-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/InvertMask-v1.rst
@@ -58,3 +58,5 @@ Output:
   Source Mask workspace # Detectors masked =  32258
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/JumpFit-v1.rst b/Code/Mantid/docs/source/algorithms/JumpFit-v1.rst
deleted file mode 100644
index 55d6d679b2c0aea08e1c3ef79c14b9b3fb4ed297..0000000000000000000000000000000000000000
--- a/Code/Mantid/docs/source/algorithms/JumpFit-v1.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-.. algorithm::
-
-.. summary::
-
-.. alias::
-
-.. properties::
-
-Description
------------
-
-Fits the Q variation of the fitted widths  from either ConvFit or Quasi to one
-of 4 models (the fit function used is given in brackets):
-
-- Chudley-Elliott model (ChudelyElliott)
-- Hall-Ross model (HallRoss)
-- Simple Fick Diffusion (FickDiffusion)
-- Teixeira's model for water (TeixeiraWater)
-
-Usage
------
-
-**Example - Chudley-Elliot fit**
-
-.. testcode:: exChudleyElliotFit
-
-    data = Load(Filename='irs26176_graphite002_conv_2LFixF_s0_to_9_Result.nxs')
-
-    JumpFit(InputWorkspace=data,
-            FUnction='ChudleyElliot',
-            QMin=0.6,
-            QMax=1.8)
-
-    fit = mtd['data_ChudleyElliot_fit_Workspace']
-    params = mtd['data_ChudleyElliot_fit_Parameters']
-
-    print 'Fit parameters: %s' % ', '.join(params.column(0))
-
-**Output:**
-
-.. testoutput:: exChudleyElliotFit
-
-    Fit parameters: Tau, L, Cost function value
-
-.. categories::
diff --git a/Code/Mantid/docs/source/algorithms/LRPrimaryFraction-v1.rst b/Code/Mantid/docs/source/algorithms/LRPrimaryFraction-v1.rst
index 476f57cd51e1b21b51114827f3c69681763a5cb7..a3e47703b88593bd43a69d87d6ac5fbe4844d714 100644
--- a/Code/Mantid/docs/source/algorithms/LRPrimaryFraction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LRPrimaryFraction-v1.rst
@@ -15,3 +15,5 @@ The primary fraction is the fraction of the counts within a specified range
 that should contain the reflected beam to the total number of counts on the detector. 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LRScalingFactors-v1.rst b/Code/Mantid/docs/source/algorithms/LRScalingFactors-v1.rst
index 5c5e42558ad61c3a8ab8ab19edae9ab299301461..cb585ea707839ab5d06a79ba982e9a57c82e72a3 100644
--- a/Code/Mantid/docs/source/algorithms/LRScalingFactors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LRScalingFactors-v1.rst
@@ -38,3 +38,5 @@ Here's an example of runs and how they are related to F.
 -  run: 55897, att: 2, s1: 1.05, s2: 0.35 --> F = 55897 / 55896 * 55895 / 55890
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LRSubtractAverageBackground-v1.rst b/Code/Mantid/docs/source/algorithms/LRSubtractAverageBackground-v1.rst
index 9256c1b11db04fbfddb92c3b9b464315effcd090..920fb7fb011eab48506b2b7c804015edbfea27ab 100644
--- a/Code/Mantid/docs/source/algorithms/LRSubtractAverageBackground-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LRSubtractAverageBackground-v1.rst
@@ -13,3 +13,5 @@ Used in the Liquids Reflectometer reduction at the SNS, this algorithm
 compute and subtracts the background from the reflectivity peak. 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LeBailFit-v1.rst b/Code/Mantid/docs/source/algorithms/LeBailFit-v1.rst
index 3d0945b19056729f0e02bea243f94b63d13604da..f99d6824839303df92fad52ea081cb9e9ffb6f9a 100644
--- a/Code/Mantid/docs/source/algorithms/LeBailFit-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LeBailFit-v1.rst
@@ -64,3 +64,5 @@ Further Information
 See `Le Bail Fit <Le Bail Fit>`__.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LessThanMD-v1.rst b/Code/Mantid/docs/source/algorithms/LessThanMD-v1.rst
index 1f0afec3d42acdc5c1e93fc9b42746ff3841a884..380bfbe88460262f45768b8b6d6abcb3e71826f4 100644
--- a/Code/Mantid/docs/source/algorithms/LessThanMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LessThanMD-v1.rst
@@ -20,3 +20,5 @@ For a MDHistoWorkspace and a scalar, the operation is performed on each
 element of the output.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LiquidsRelectometryReduction-v1.rst b/Code/Mantid/docs/source/algorithms/LiquidsRelectometryReduction-v1.rst
index 7403666008f6d574a716136f23c5baab824b273d..16639389fddf38c2aeb8814b4f02ba2934cfeba8 100644
--- a/Code/Mantid/docs/source/algorithms/LiquidsRelectometryReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LiquidsRelectometryReduction-v1.rst
@@ -37,3 +37,5 @@ The workflow proceeds as follows:
 12. Rebin the Q axis to the specified binning and crop out the first and last Q point.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Load-v1.rst b/Code/Mantid/docs/source/algorithms/Load-v1.rst
index cf9ac6f0cd6dab1b7ba5d4fcd319ccf2480f5c13..034e707b901ba44b92a1682b4c9bf9e69f7eb00f 100644
--- a/Code/Mantid/docs/source/algorithms/Load-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Load-v1.rst
@@ -96,3 +96,5 @@ Output:
    The number of histograms (spectra) is: 6
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadAscii-v1.rst b/Code/Mantid/docs/source/algorithms/LoadAscii-v1.rst
index e48be06f873c3d6571eb71cfbc0af23f9336e7be..ccc54ae7f350e2f3adb3727307d5a03923debc67 100644
--- a/Code/Mantid/docs/source/algorithms/LoadAscii-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadAscii-v1.rst
@@ -38,3 +38,5 @@ This algorithm cannot load a file created by :ref:`algm-SaveAscii`
 if it has X errors written and several spectra.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadAscii-v2.rst b/Code/Mantid/docs/source/algorithms/LoadAscii-v2.rst
index f03e99398fa040e4b6801da95934db324f6add27..9cc4b49ccb84edcda92350c8f59fbf7fea657f7d 100644
--- a/Code/Mantid/docs/source/algorithms/LoadAscii-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadAscii-v2.rst
@@ -14,7 +14,7 @@ stores it in a `Workspace2D <http://www.mantidproject.org/Workspace2D>`_ as data
 the file must be organized in columns separated by commas, tabs, spaces,
 colons or semicolons. Only one separator type can be used throughout the
 file; use the "Separator" property to tell the algorithm which to use.
-The algorithm :ref:`SaveAscii2 <algm-SaveAscii2-v2>` is normally able to produce
+The algorithm :ref:`SaveAscii2 <algm-SaveAscii-v2>` is normally able to produce
 such a file.
 
 The format must be:
@@ -79,3 +79,5 @@ Output:
    Success!
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadBBY-v1.rst b/Code/Mantid/docs/source/algorithms/LoadBBY-v1.rst
index 95598398e2c76a7d92f47246319c456e28f4cc2e..ab81113c1339fe0c77221366809ac92caad09d54 100644
--- a/Code/Mantid/docs/source/algorithms/LoadBBY-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadBBY-v1.rst
@@ -13,6 +13,8 @@ Load data from the Bilby beamline at ANSTO. The workspace generated is a TOF Eve
 
 .. categories::
 
+.. sourcelink::
+
 Usage
 -----
 
diff --git a/Code/Mantid/docs/source/algorithms/LoadCalFile-v1.rst b/Code/Mantid/docs/source/algorithms/LoadCalFile-v1.rst
index d7e512b55989b9e5c2118a549381cf8588335580..06edd070ca0e8742f8f56daf1b93dde2ada069cd 100644
--- a/Code/Mantid/docs/source/algorithms/LoadCalFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadCalFile-v1.rst
@@ -50,3 +50,5 @@ Output:
     Workspace 4 type = TableWorkspace
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadCanSAS1D-v1.rst b/Code/Mantid/docs/source/algorithms/LoadCanSAS1D-v1.rst
index 97f62e32ae58bc1cea53274c732f5dae8d9726f2..10f1666845005f2d0e502c2c479f1296fc8e3c20 100644
--- a/Code/Mantid/docs/source/algorithms/LoadCanSAS1D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadCanSAS1D-v1.rst
@@ -53,3 +53,5 @@ Output:
    Contents of the file = [ 9.  5.  7.].
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadCanSAS1D-v2.rst b/Code/Mantid/docs/source/algorithms/LoadCanSAS1D-v2.rst
index d6e674f20361f20f63d81e6fed5562d31452febe..2dfaee2e69e62d1be0c00de597c4608db21b8067 100644
--- a/Code/Mantid/docs/source/algorithms/LoadCanSAS1D-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadCanSAS1D-v2.rst
@@ -52,3 +52,5 @@ Output:
    Contents of the file = [ 9.  5.  7.].
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadDNSLegacy-v1.rst b/Code/Mantid/docs/source/algorithms/LoadDNSLegacy-v1.rst
index ed825958bf18294086397f2a608b9206f8c3c25d..f55151509fa5136112ef1d80c9da5b3025163072 100644
--- a/Code/Mantid/docs/source/algorithms/LoadDNSLegacy-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadDNSLegacy-v1.rst
@@ -37,3 +37,5 @@ Output:
    This workspace has 2 dimensions and has 24 histograms.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadDaveGrp-v1.rst b/Code/Mantid/docs/source/algorithms/LoadDaveGrp-v1.rst
index 58ed70c3eb10813ea9437e15f6319619a743aeed..355da06a843b22dff39958e513742c74f15634d7 100644
--- a/Code/Mantid/docs/source/algorithms/LoadDaveGrp-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadDaveGrp-v1.rst
@@ -14,3 +14,5 @@ been generated at the SNS for all the inelastic beamlines, hence the
 choice in the defaults for the axis units.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadDetectorInfo-v1.rst b/Code/Mantid/docs/source/algorithms/LoadDetectorInfo-v1.rst
index 85f0997ae7e031bc3f4d4832016a3bad9b196246..6407d572fa29388d71db6d907b1e4e99fd795b9a 100644
--- a/Code/Mantid/docs/source/algorithms/LoadDetectorInfo-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadDetectorInfo-v1.rst
@@ -419,3 +419,5 @@ that the first three detectors (monitors) were not touched and the next three we
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/LoadDetectorsGroupingFile-v1.rst b/Code/Mantid/docs/source/algorithms/LoadDetectorsGroupingFile-v1.rst
index 25974962a0baef9546ac442e25a2d876cec118d3..9aa68324fb835710290ee5464600bf87839b17a2 100644
--- a/Code/Mantid/docs/source/algorithms/LoadDetectorsGroupingFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadDetectorsGroupingFile-v1.rst
@@ -231,3 +231,5 @@ Output:
    Spectrum 125 belongs to group 3.0
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadDiffCal-v1.rst b/Code/Mantid/docs/source/algorithms/LoadDiffCal-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..ab0de5220caba8291074ba92d80d0bf0b0aaac23
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/LoadDiffCal-v1.rst
@@ -0,0 +1,19 @@
+
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+This algorithm loads a :ref:`diffraction calibration workspace
+<DiffractionCalibrationWorkspace>`, ``MaskWorkspace``, and
+``GroupingWorkspace`` from a hdf5 file.
+
+.. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadDspacemap-v1.rst b/Code/Mantid/docs/source/algorithms/LoadDspacemap-v1.rst
index c8f2c1cb124bbd8904b35ecda9a37961eefc3770..84d42a5d39cae793e1f1c45ba7727ca5f8d66da3 100644
--- a/Code/Mantid/docs/source/algorithms/LoadDspacemap-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadDspacemap-v1.rst
@@ -35,3 +35,5 @@ Output:
     Workspace type = OffsetsWorkspace
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadEmptyInstrument-v1.rst b/Code/Mantid/docs/source/algorithms/LoadEmptyInstrument-v1.rst
index 3925a252d12d355d5e3fd02f31b5e9eeb7a54d06..1e5f559136bdcfdbc60d473065f31eff2fd9a538 100644
--- a/Code/Mantid/docs/source/algorithms/LoadEmptyInstrument-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadEmptyInstrument-v1.rst
@@ -40,3 +40,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadEventNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadEventNexus-v1.rst
index 39d2b3973ead99af5a19d00a764416baf49bd8b6..df478f2857e59748cabda76545a5e320f16e825c 100644
--- a/Code/Mantid/docs/source/algorithms/LoadEventNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadEventNexus-v1.rst
@@ -87,3 +87,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadEventPreNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadEventPreNexus-v1.rst
index 435a520cc65addbf67570519e89dde660800a51b..dce0a4de6679514a2008c7c886cf17d2a1195ae8 100644
--- a/Code/Mantid/docs/source/algorithms/LoadEventPreNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadEventPreNexus-v1.rst
@@ -24,3 +24,5 @@ are guessed at automatically from the neutron filename, if not
 specified.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadEventPreNexus-v2.rst b/Code/Mantid/docs/source/algorithms/LoadEventPreNexus-v2.rst
index f77b7d42fb04092f3162e1b9527be53208262cb0..9a27afe7943ba7331e02fe686873fda4db32e287 100644
--- a/Code/Mantid/docs/source/algorithms/LoadEventPreNexus-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadEventPreNexus-v2.rst
@@ -31,3 +31,5 @@ section of the file; e.g. if these are 1 and 10 respectively only the
 first 10% of the events will be loaded.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadFITS-v1.rst b/Code/Mantid/docs/source/algorithms/LoadFITS-v1.rst
index 11ebc6c5768f5fda89884c1650fbecc31e1691b1..10faa2e600e9ef3c46fa8b019513ea7be5973d9e 100644
--- a/Code/Mantid/docs/source/algorithms/LoadFITS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadFITS-v1.rst
@@ -155,3 +155,5 @@ Output:
    Number of spectra in the output workspace: 262144
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadFlexiNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadFlexiNexus-v1.rst
index ab60538a785ddfc25f82d9b1b3c266c4b800888e..501f490d4c9d989fb22430978ced5681689a4fa7 100644
--- a/Code/Mantid/docs/source/algorithms/LoadFlexiNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadFlexiNexus-v1.rst
@@ -88,3 +88,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadFullprofFile-v1.rst b/Code/Mantid/docs/source/algorithms/LoadFullprofFile-v1.rst
index 799564332b19ccda99513daefb8b4f617c30cfc8..0ebb92e5017ef8560e26218b9a8fa273477a5bce 100644
--- a/Code/Mantid/docs/source/algorithms/LoadFullprofFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadFullprofFile-v1.rst
@@ -114,3 +114,5 @@ Output:
   Peak 75 of (9, 3, 0): Alpha = 0.25569, Beta = 0.13821, FWHM = 14.67480
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadFullprofResolution-v1.rst b/Code/Mantid/docs/source/algorithms/LoadFullprofResolution-v1.rst
index db212fc8db3bddc9ac8d95b992b3a1a501e7fc0a..13ed7d7e49376e4258a017c241958b3e4fcec7e6 100644
--- a/Code/Mantid/docs/source/algorithms/LoadFullprofResolution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadFullprofResolution-v1.rst
@@ -84,3 +84,5 @@ Output:
    SigmaSquared type = fitting
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadGSASInstrumentFile-v1.rst b/Code/Mantid/docs/source/algorithms/LoadGSASInstrumentFile-v1.rst
index 7e1340f2dfcb57e2e232123000d59cc998967100..36758f817987eb816de4250f3674acf745f2f528 100644
--- a/Code/Mantid/docs/source/algorithms/LoadGSASInstrumentFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadGSASInstrumentFile-v1.rst
@@ -85,3 +85,5 @@ Output:
    SigmaSquared parameter exists:  True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadGSS-v1.rst b/Code/Mantid/docs/source/algorithms/LoadGSS-v1.rst
index 4dbacfd89201fb5d50dc778da6a94224f0f217fe..9b2162be7288a664bb0b528c3c2639e08df6226c 100644
--- a/Code/Mantid/docs/source/algorithms/LoadGSS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadGSS-v1.rst
@@ -17,3 +17,5 @@ Two types of GSAS files (.fxye) are supported
 | ``* SLOG``
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadHKL-v1.rst b/Code/Mantid/docs/source/algorithms/LoadHKL-v1.rst
index 255dcf46e5641646f3735d8902d2bdbcb242f5b0..e772121e42ef831f577b8fe3d1330c38838da71d 100644
--- a/Code/Mantid/docs/source/algorithms/LoadHKL-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadHKL-v1.rst
@@ -67,3 +67,5 @@ Usage
     os.remove(filePath)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadIDFFromNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadIDFFromNexus-v1.rst
index 632a5783dbdcd587a366b99dbdaace061e0c0768..c2c90b0b65ca33ee5b29c221a192aab71c6930e9 100644
--- a/Code/Mantid/docs/source/algorithms/LoadIDFFromNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadIDFFromNexus-v1.rst
@@ -52,3 +52,5 @@ Output:
    Unmodified component name = both rings
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadILL-v1.rst b/Code/Mantid/docs/source/algorithms/LoadILL-v1.rst
index 7bdc9b5e89e10400f69436849a4ad1c0cf2d43d5..ba201b791ee9635d5a102eada15b7e90cfbea12e 100644
--- a/Code/Mantid/docs/source/algorithms/LoadILL-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadILL-v1.rst
@@ -90,3 +90,5 @@ Output:
 	The Data workspace has 2 dimensions and has 98305 histograms.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadILLAscii-v1.rst b/Code/Mantid/docs/source/algorithms/LoadILLAscii-v1.rst
index 65817267b599ee2b682394510f2567550d8ed33a..21633b51589e74c9db39dbe96baa9113592d934b 100644
--- a/Code/Mantid/docs/source/algorithms/LoadILLAscii-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadILLAscii-v1.rst
@@ -32,3 +32,5 @@ Output:
 	This workspace has 3 dimensions and 409600 events.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadILLIndirect-v1.rst b/Code/Mantid/docs/source/algorithms/LoadILLIndirect-v1.rst
index 2c6fdded0796481735e52bae9fe006ee33546eb2..f1e3bb0cf16654865fd855241e0b810ca37cf83b 100644
--- a/Code/Mantid/docs/source/algorithms/LoadILLIndirect-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadILLIndirect-v1.rst
@@ -33,3 +33,5 @@ Output:
 	This workspace has 2 dimensions and has 2057 histograms.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadILLReflectometry-v1.rst b/Code/Mantid/docs/source/algorithms/LoadILLReflectometry-v1.rst
index 5171caebaeeedc5f3a7dd0dcb1dbff3b31845542..18b662290e935bec4181f684d0cb6872310661dd 100644
--- a/Code/Mantid/docs/source/algorithms/LoadILLReflectometry-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadILLReflectometry-v1.rst
@@ -34,3 +34,5 @@ Output:
 	This workspace has 2 dimensions and has 258 histograms.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadILLSANS-v1.rst b/Code/Mantid/docs/source/algorithms/LoadILLSANS-v1.rst
index 7310cce7dcde4d1630c5ac38a086135a02ad856f..0f6f937e30bdf94e776374cf4fbe5ceb29978e3b 100644
--- a/Code/Mantid/docs/source/algorithms/LoadILLSANS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadILLSANS-v1.rst
@@ -32,3 +32,5 @@ Output:
 	This workspace has 2 dimensions and has 65538 histograms.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadISISNexus-v2.rst b/Code/Mantid/docs/source/algorithms/LoadISISNexus-v2.rst
index 14688aaa39fd06287975fe14093f6d2281ada371..8edce491dba00f9be23c9a7e8ecfe0d956e97699 100644
--- a/Code/Mantid/docs/source/algorithms/LoadISISNexus-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadISISNexus-v2.rst
@@ -62,3 +62,5 @@ Output:
    The number of histograms (spectra) is: 246
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadInstrument-v1.rst b/Code/Mantid/docs/source/algorithms/LoadInstrument-v1.rst
index 61c8b3720d9fc4d907f8a016ff22a1b486ecbef1..067cba2fadcd8e92e93b27f1ccf3f08112fde97e 100644
--- a/Code/Mantid/docs/source/algorithms/LoadInstrument-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadInstrument-v1.rst
@@ -58,3 +58,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadInstrumentFromNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadInstrumentFromNexus-v1.rst
index d1715bac3fcf7a55b21189b94ab4a9f7ac95aee4..476675cffe35e2499bfb0813946bccf444affe7f 100644
--- a/Code/Mantid/docs/source/algorithms/LoadInstrumentFromNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadInstrumentFromNexus-v1.rst
@@ -43,3 +43,5 @@ Output:
    The source postion is at:  [0,-10,0].
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadInstrumentFromRaw-v1.rst b/Code/Mantid/docs/source/algorithms/LoadInstrumentFromRaw-v1.rst
index 14ecdaa6750f0c38e12dedf6f3403d822c1fe5ba..83402d78258ab4aad7f63bbce67537792e33ae9d 100644
--- a/Code/Mantid/docs/source/algorithms/LoadInstrumentFromRaw-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadInstrumentFromRaw-v1.rst
@@ -51,3 +51,5 @@ Output:
    Is detector 8 a monitor? False
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadIsawDetCal-v1.rst b/Code/Mantid/docs/source/algorithms/LoadIsawDetCal-v1.rst
index f258d97268f39ec6ab33e6891a762eb5726d2d72..b6a8d6f23f03123bb27052f03574f08db4c6953e 100644
--- a/Code/Mantid/docs/source/algorithms/LoadIsawDetCal-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadIsawDetCal-v1.rst
@@ -42,3 +42,5 @@ Output:
     Position after LoadDetCal : [0.5,0.167548,-0.167548]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadIsawPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/LoadIsawPeaks-v1.rst
index 63e9d0b0f54a091d901014a219839ae983957cae..6a92e732406551e93f1057e3258a343428b6c45c 100644
--- a/Code/Mantid/docs/source/algorithms/LoadIsawPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadIsawPeaks-v1.rst
@@ -36,3 +36,5 @@ Output:
     Number of peaks entries 36
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadIsawSpectrum-v1.rst b/Code/Mantid/docs/source/algorithms/LoadIsawSpectrum-v1.rst
index 6ded13bf41997fefbbb3cf6e25ae9a932ebba36f..15697d18bfe71e8a1c62024c38e7b23332f3a65e 100644
--- a/Code/Mantid/docs/source/algorithms/LoadIsawSpectrum-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadIsawSpectrum-v1.rst
@@ -60,3 +60,5 @@ Output:
     y= [-0.00471167 -0.00471167 -0.00471187 -0.00471187 -0.00471187 -0.00433439]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadIsawUB-v1.rst b/Code/Mantid/docs/source/algorithms/LoadIsawUB-v1.rst
index 81bdd38d2179e5b2cab01f2d02242ca6847cde0f..1f8aac4809976b959614f0cabba0a7e806f80d86 100644
--- a/Code/Mantid/docs/source/algorithms/LoadIsawUB-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadIsawUB-v1.rst
@@ -75,3 +75,5 @@ Output:
     The following vectors are in the horizontal plane:  [0,0,5] [2,0,0]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadLLB-v1.rst b/Code/Mantid/docs/source/algorithms/LoadLLB-v1.rst
index 15c054d6eb91f4d8ee9389adb0735fd60998bd42..f82fff1d47556e23316ea957d57d2a9711ecb746 100644
--- a/Code/Mantid/docs/source/algorithms/LoadLLB-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadLLB-v1.rst
@@ -34,3 +34,5 @@ Output:
    This workspace has 2 dimensions and its title is: Lysozyme/D2O (c=80 mg/ml) Treg=293 K, Tch=288 K  wl=5.2A  sous pression (4.5 kbar)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadLiveData-v1.rst b/Code/Mantid/docs/source/algorithms/LoadLiveData-v1.rst
index d0e2ce5260f95db0bc15bfac5223e09dd90a1fc2..6f117435643a5fde42538e739f4fa4aeaa97ce9e 100644
--- a/Code/Mantid/docs/source/algorithms/LoadLiveData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadLiveData-v1.rst
@@ -101,3 +101,5 @@ LoadLiveData is not intended for usage directly, it is part of he process that i
     
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadLog-v1.rst b/Code/Mantid/docs/source/algorithms/LoadLog-v1.rst
index 0462bb351aea84b12afb7e0f7376003edd5f660e..68300da4ed1a5f8bdba6e66dd43afd84e5ed072b 100644
--- a/Code/Mantid/docs/source/algorithms/LoadLog-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadLog-v1.rst
@@ -102,3 +102,5 @@ Output:
     ts2beamcurrent
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadLogPropertyTable-v1.rst b/Code/Mantid/docs/source/algorithms/LoadLogPropertyTable-v1.rst
index 525f616d96ff2ff102d71e4621dd1af6714849a6..e359f22ff0826b58d89b1e2781ddbd3dcdf4a974 100644
--- a/Code/Mantid/docs/source/algorithms/LoadLogPropertyTable-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadLogPropertyTable-v1.rst
@@ -78,3 +78,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadLogsForSNSPulsedMagnet-v1.rst b/Code/Mantid/docs/source/algorithms/LoadLogsForSNSPulsedMagnet-v1.rst
index 1f30311815f5c4d86524e3eda90682b28b8aae1c..ebcd2d46148beaa2cee7a0d54caa2262a09372a0 100644
--- a/Code/Mantid/docs/source/algorithms/LoadLogsForSNSPulsedMagnet-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadLogsForSNSPulsedMagnet-v1.rst
@@ -14,3 +14,5 @@ Description
     This algorithm is deprecated and should not be used.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMD-v1.rst b/Code/Mantid/docs/source/algorithms/LoadMD-v1.rst
index b91d3f6d9d7208f6a497e1bdc08c2903c4378d16..24f28172c64aacaf0b4920d1096abc2ef8903566 100644
--- a/Code/Mantid/docs/source/algorithms/LoadMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadMD-v1.rst
@@ -40,14 +40,16 @@ Usage
    mdws = LoadMD('MAPS_MDEW.nxs');
     
    # Check results
-   print "Workspace type is: ",type(mdws)
+   print "Workspace type is:",mdws.id()
    print "Workspace has:{0:2} dimensions and contains: {1:4} MD events".format(mdws.getNumDims(),mdws.getNEvents())
   
 Output:
 
 .. testoutput:: ExLoadMD
 
-   Workspace type is:  <class 'mantid.api._api.IMDEventWorkspace'>
+   Workspace type is: MDEventWorkspace<MDLeanEvent,4>
    Workspace has: 4 dimensions and contains:    0 MD events
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMLZ-v1.rst b/Code/Mantid/docs/source/algorithms/LoadMLZ-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3ef1ceba554ff35d51d6d86297940c8aeffc24d2
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/LoadMLZ-v1.rst
@@ -0,0 +1,45 @@
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+Loads an MLZ NeXus file into a :ref:`Workspace2D <Workspace2D>`
+with the given name.
+
+This algorithm masks detectors using a mask defined in the input Nexus
+file.
+
+It also fills the SampleLogs of the Outputworkspace with
+data such as the monitor counts and the channel width.
+
+To date this algorithm only supports: TOFTOF.
+
+Usage
+-----
+
+**Example - Load TOFTOF Nexus file:**
+
+.. testcode:: ExLoadTOFTOFnexus
+
+   ws = LoadMLZ(Filename='TOFTOFTestdata.nxs')
+
+   print "Name of the instrument: ", ws.getInstrument().getName()
+   print "Number of spectra: ", ws.getNumberHistograms()
+   
+
+Output:
+
+.. testoutput:: ExLoadTOFTOFnexus
+
+   Name of the instrument:  TOFTOF
+   Number of spectra:  1006
+
+.. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMappingTable-v1.rst b/Code/Mantid/docs/source/algorithms/LoadMappingTable-v1.rst
index cabd520bab8bfb1d4cd2016a487d460c2293c691..5871864103f6f668c4892894d5edb3633135f6cb 100644
--- a/Code/Mantid/docs/source/algorithms/LoadMappingTable-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadMappingTable-v1.rst
@@ -35,3 +35,5 @@ Usage
   LoadMappingTable('HRP39180.RAW',ws)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMask-v1.rst b/Code/Mantid/docs/source/algorithms/LoadMask-v1.rst
index eb758a74357decf2625ea715072cfe7819f5d145..33d8258412a079749193b07fa15aa29cf088bf8f 100644
--- a/Code/Mantid/docs/source/algorithms/LoadMask-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadMask-v1.rst
@@ -96,3 +96,5 @@ Output:
     Is detector 20475 masked: True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMcStas-v1.rst b/Code/Mantid/docs/source/algorithms/LoadMcStas-v1.rst
index ff1d90b17754767e99c7d28766bf8fccb4310655..81b0bb05edc0ba0daa2b7988ca85056ec685b4d5 100644
--- a/Code/Mantid/docs/source/algorithms/LoadMcStas-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadMcStas-v1.rst
@@ -84,3 +84,5 @@ scattering instruments and experiments visit the McStas homepage http://www.mcst
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMcStasNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadMcStasNexus-v1.rst
index 2678e81e93bdb8478e50da7f8afaf35141af5681..230d0405dbb00b6d96de72c484c0aa061ec68332 100644
--- a/Code/Mantid/docs/source/algorithms/LoadMcStasNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadMcStasNexus-v1.rst
@@ -21,3 +21,5 @@ general usage for simulating neutron scattering instruments and
 experiments visit the McStas homepage http://www.mcstas.org.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMultipleGSS-v1.rst b/Code/Mantid/docs/source/algorithms/LoadMultipleGSS-v1.rst
index 4fb48a9e03c60d51397c0368c204325831d9a4a3..71e518feb69d48a270a332a2b1747263e65bf79f 100644
--- a/Code/Mantid/docs/source/algorithms/LoadMultipleGSS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadMultipleGSS-v1.rst
@@ -42,3 +42,5 @@ Output:
     It has 1 histogram, with 731 bins
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMuonLog-v1.rst b/Code/Mantid/docs/source/algorithms/LoadMuonLog-v1.rst
index 0fec6bd8b5720e603fb2e09354a72e9126ad9766..aa3890b7f5320b41845af5c2a1052c4ecc5a4b8b 100644
--- a/Code/Mantid/docs/source/algorithms/LoadMuonLog-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadMuonLog-v1.rst
@@ -46,3 +46,5 @@ Output:
    The first entry is 50.000000.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMuonNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadMuonNexus-v1.rst
index 0b34dc75d2b168252e01cd4eaf87052e8a21c8bc..acd6e582bb31550062f1022df13e320769f1b1b6 100644
--- a/Code/Mantid/docs/source/algorithms/LoadMuonNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadMuonNexus-v1.rst
@@ -151,3 +151,5 @@ Output:
    [17 32]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadMuonNexus-v2.rst b/Code/Mantid/docs/source/algorithms/LoadMuonNexus-v2.rst
index fdc90996e8124fa1f9d35201b7028ff10483227f..0ca954061e4aad8e1f7858f51b8fbd86d6ad6d88 100644
--- a/Code/Mantid/docs/source/algorithms/LoadMuonNexus-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadMuonNexus-v2.rst
@@ -81,3 +81,5 @@ file it will call the previous version of the algorithm to perform the
 task.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadNXSPE-v1.rst b/Code/Mantid/docs/source/algorithms/LoadNXSPE-v1.rst
index 39b9704aed8bed048cc51c4b327d82e9bee352fa..b9ceaccf93c1d18c39230ca2dd07d3fef538ba19 100644
--- a/Code/Mantid/docs/source/algorithms/LoadNXSPE-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadNXSPE-v1.rst
@@ -22,3 +22,5 @@ Usage
 See :ref:`algm-SaveNXSPE` usage examples where Save and Load NXSPE operations are tested together.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadNexus-v1.rst
index 4a220bb66693a782afcfd0f4b120e88d6a466e7a..bb19ae94917cfeacf2e8d44b9e9be11fe9426515 100644
--- a/Code/Mantid/docs/source/algorithms/LoadNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadNexus-v1.rst
@@ -79,3 +79,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadNexusLogs-v1.rst b/Code/Mantid/docs/source/algorithms/LoadNexusLogs-v1.rst
index 4ee796d956cbbc2596f60860e0aecd3699157c22..76afbd861aa57bf98fa0a21fec15e02d2491d992 100644
--- a/Code/Mantid/docs/source/algorithms/LoadNexusLogs-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadNexusLogs-v1.rst
@@ -58,3 +58,5 @@ Output:
     Phase1 log size = 46
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadNexusMonitors-v1.rst b/Code/Mantid/docs/source/algorithms/LoadNexusMonitors-v1.rst
index 153115566d990250a91a55e02437df7dde5051cd..f7118912b2f8d2fb05564fce4ebe14ae9567bb2c 100644
--- a/Code/Mantid/docs/source/algorithms/LoadNexusMonitors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadNexusMonitors-v1.rst
@@ -36,3 +36,5 @@ Output:
     Number of monitors = 3
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadNexusProcessed-v1.rst b/Code/Mantid/docs/source/algorithms/LoadNexusProcessed-v1.rst
index 0fa41c95b394d415ccb107d6ba6f5e142d287cab..d12674be469757d885f53cd03a230d451ccfd65f 100644
--- a/Code/Mantid/docs/source/algorithms/LoadNexusProcessed-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadNexusProcessed-v1.rst
@@ -76,3 +76,5 @@ Output:
    Success!
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadPDFgetNFile-v1.rst b/Code/Mantid/docs/source/algorithms/LoadPDFgetNFile-v1.rst
index 72ecdcdb9cd4fcbcab3c40a7ade57e98fce02e09..fa232ab4999bab2023aa4f9ee5b6faed2e2d2db2 100644
--- a/Code/Mantid/docs/source/algorithms/LoadPDFgetNFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadPDFgetNFile-v1.rst
@@ -26,3 +26,5 @@ The file types include
 | `` * .gr``
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadParameterFile-v1.rst b/Code/Mantid/docs/source/algorithms/LoadParameterFile-v1.rst
index 15d9a529ff9260fae95da5cf3620097857a370ba..fda8e1da56297b9ac58ec2b82dcbd8f2d4ad2c29 100644
--- a/Code/Mantid/docs/source/algorithms/LoadParameterFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadParameterFile-v1.rst
@@ -39,3 +39,5 @@ parameter named 'test2' for a component whose detector has an id of '14'.
     </parameter-file>
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadPreNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadPreNexus-v1.rst
index 5b1e575e2ff598df643d540ef307d4bc17cf3da7..b78e915c4ee570ec048ea63a4e0a2264cd143d34 100644
--- a/Code/Mantid/docs/source/algorithms/LoadPreNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadPreNexus-v1.rst
@@ -12,3 +12,5 @@ Description
 Workflow algorithm to load all of the preNeXus files.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadPreNexusMonitors-v1.rst b/Code/Mantid/docs/source/algorithms/LoadPreNexusMonitors-v1.rst
index 0d8075e0b23a49f9de8101299c580da6ae83e8e1..b39bb795ee197bba43b8902167f715d71f46a50c 100644
--- a/Code/Mantid/docs/source/algorithms/LoadPreNexusMonitors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadPreNexusMonitors-v1.rst
@@ -33,3 +33,5 @@ Output:
    The resulting workspace contains 3 spectra -- one for each monitor.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadQKK-v1.rst b/Code/Mantid/docs/source/algorithms/LoadQKK-v1.rst
index c4554e52ebb2f888fcd67c262dfcbdd19d22bef4..857c87654c0c654c7be88e6ab2e5f30a16608888 100644
--- a/Code/Mantid/docs/source/algorithms/LoadQKK-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadQKK-v1.rst
@@ -12,3 +12,5 @@ Description
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadRKH-v1.rst b/Code/Mantid/docs/source/algorithms/LoadRKH-v1.rst
index 08ca3dcd5635ee92ee4100f9ab90aa25d6f5b422..759de92cb3d0b5cc984ad876a901068ac67de742 100644
--- a/Code/Mantid/docs/source/algorithms/LoadRKH-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadRKH-v1.rst
@@ -51,3 +51,5 @@ Output:
    Contents of the file  = [ 8.  4.  9.  7.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadRaw-v3.rst b/Code/Mantid/docs/source/algorithms/LoadRaw-v3.rst
index 8cb305cfedf75087f718e74f1e13575bbec6b5a2..2ed1b9feb55c9624aa6b0250d7a7826f6b0aa4a5 100644
--- a/Code/Mantid/docs/source/algorithms/LoadRaw-v3.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadRaw-v3.rst
@@ -187,3 +187,5 @@ Output
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadRawBin0-v1.rst b/Code/Mantid/docs/source/algorithms/LoadRawBin0-v1.rst
index 06d799b0659628bd2570e37bd822d4cfb35a83fd..9b1a7f32593467b643caeb656f18a2e6fbb49b96 100644
--- a/Code/Mantid/docs/source/algorithms/LoadRawBin0-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadRawBin0-v1.rst
@@ -34,3 +34,5 @@ Output:
    Bin0 contained 55 counts.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadRawSpectrum0-v1.rst b/Code/Mantid/docs/source/algorithms/LoadRawSpectrum0-v1.rst
index c062a8cd620f0ee16cc6fa85b1b77142575d1248..1d964fe7e5869909d83a311f5e10df4b024c5680 100644
--- a/Code/Mantid/docs/source/algorithms/LoadRawSpectrum0-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadRawSpectrum0-v1.rst
@@ -34,3 +34,5 @@ Output:
     Spectrum0 contained 0 counts
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadReflTBL-v1.rst b/Code/Mantid/docs/source/algorithms/LoadReflTBL-v1.rst
index d26a5169ce3528f68d055e59b5bcd98ea44ffae6..1f416c34fde5500adb479920b9754a90e442634b 100644
--- a/Code/Mantid/docs/source/algorithms/LoadReflTBL-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadReflTBL-v1.rst
@@ -22,3 +22,5 @@ becomes
 A, B, C, D, E, P, Q, Z F, G, H, I, J, P, Q, Z K, L, M, N, O, P, Q, Z
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSINQ-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSINQ-v1.rst
index f1c26bea898efb8bd6379a103d1274b605a696a0..6a8e12a3799ab928dd70c1ef2425f36b150e4ec0 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSINQ-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSINQ-v1.rst
@@ -37,3 +37,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSINQFile-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSINQFile-v1.rst
index 917f820caf7aeccb8fbe3d2773dd777939d8bc1e..b7a6bf7f0d6b7156bf148e5d6ec8ee8e5668b8c7 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSINQFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSINQFile-v1.rst
@@ -33,3 +33,5 @@ Output:
     Poldi sample 6904 has 400 histograms.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSINQFocus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSINQFocus-v1.rst
index 16859f22ed0f6caf4cebafa28e821697847ed11d..993beba527742e6b5a46da3c79c2aeb7f315bf9b 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSINQFocus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSINQFocus-v1.rst
@@ -49,3 +49,5 @@ Creating a color fill plot of the resulting workspace should result in an image
    FOCUS data of water at 320 K.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSNSspec-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSNSspec-v1.rst
index fa214d9650264eb8f9a7bb7e7d64eab00fbf4cc6..1f5ccfbd558a3883efbf9ad48148ea189b8094cf 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSNSspec-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSNSspec-v1.rst
@@ -74,3 +74,5 @@ This will create a Workspace2D with 1 spectrum.
 This text file will create a Workspace2D with 3 spectra.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSPE-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSPE-v1.rst
index 69e01b35abe35891cfb6080df546f624a55bd7c1..941084c966c6fcadbba28dce7d9a6d354cc9f646 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSPE-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSPE-v1.rst
@@ -39,3 +39,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSQW-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSQW-v1.rst
index 941c6fd8c76863027aebf78e3a9b1f81dbebd858..4f2f63dd6ff6ed47e657ddbc1230c37d1cfac4fb 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSQW-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSQW-v1.rst
@@ -172,7 +172,7 @@ Usage
 .. testcode:: ExLoadSQW
 
    # Delete existing workspace if it is already in Mantid as LoadSQW does not support overwriting
-   # existig workspaces by desighn
+   # existig workspaces by design
    if 'mdws' in mtd:
        DeleteWorkspace('mdws')
    #
@@ -180,14 +180,16 @@ Usage
    mdws = LoadSQW('test_horace_reader.sqw');
    
    # Check results
-   print "Workspace type is: ",type(mdws)
+   print "Workspace type is: ",mdws.id()
    print "Workspace has:{0:2} dimensions and contains: {1:4} MD events".format(mdws.getNumDims(),mdws.getNEvents())
    
 Output:
 
 .. testoutput:: ExLoadSQW
 
-   Workspace type is:  <class 'mantid.api._api.IMDEventWorkspace'>
+   Workspace type is:  MDEventWorkspace<MDEvent,4>
    Workspace has: 4 dimensions and contains:  580 MD events
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSampleDetailsFromRaw-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSampleDetailsFromRaw-v1.rst
index 5b5431a15e1ffee6a13de6551a18a0c1f938fb69..8d394327da15ed05092da0816047099c27e30b93 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSampleDetailsFromRaw-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSampleDetailsFromRaw-v1.rst
@@ -50,3 +50,5 @@ Output:
     Dimensions H,W,D 20,15,11
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSassena-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSassena-v1.rst
index f5b232387908d878dade11b3bf9b9d40ad09b1ed..c66d4566ff2e3d6175a7808936288e869acb7d5d 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSassena-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSassena-v1.rst
@@ -90,3 +90,5 @@ Output:
     The 989th y-value of the fitted curve: 0.673
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSavuTomoConfig-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSavuTomoConfig-v1.rst
index 77dba9bb7a13dfe018ef52a72283030fb14199d4..3ba9bc8ffb70c6ac65c06059350e81ef5d2ac836 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSavuTomoConfig-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSavuTomoConfig-v1.rst
@@ -72,3 +72,5 @@ Output:
     Cell 2,3: Not available
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSpec-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSpec-v1.rst
index cd801abc91463874ede56aa0f0b206d2fd672fed..b37969d58cf7ec25653300ca8972574a4db4a0e4 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSpec-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSpec-v1.rst
@@ -74,3 +74,5 @@ This will create a :ref:`Workspace2D <Workspace2D>` with 1 spectrum.
 This text file will create a :ref:`Workspace2D <Workspace2D>` with 3 spectra.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSpice2D-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSpice2D-v1.rst
index c4554e52ebb2f888fcd67c262dfcbdd19d22bef4..857c87654c0c654c7be88e6ab2e5f30a16608888 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSpice2D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSpice2D-v1.rst
@@ -12,3 +12,5 @@ Description
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSpiceAscii-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSpiceAscii-v1.rst
index 4f91c1e8c1bd17f4234bdc458adf8cefe524c7a2..589da7a30c83875e02442fb6078dc7e3bb40f440 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSpiceAscii-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSpiceAscii-v1.rst
@@ -114,3 +114,5 @@ Output:
   Center of Mass = 9.00076 +/- 0.00921
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadSpiceXML2DDet-v1.rst b/Code/Mantid/docs/source/algorithms/LoadSpiceXML2DDet-v1.rst
index 6d56064dba3370f72d2eb277b786ae92350c76a6..dff1bf08a691894b0cf68a89c3b7fcd0f9148a0f 100644
--- a/Code/Mantid/docs/source/algorithms/LoadSpiceXML2DDet-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadSpiceXML2DDet-v1.rst
@@ -112,3 +112,5 @@ Output:
   Y[143, 140] = 2.00000
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadTOFRawNexus-v1.rst b/Code/Mantid/docs/source/algorithms/LoadTOFRawNexus-v1.rst
index 2dd2e346f612b579cf6d29b0e29d431123e2c9d0..c9709cb383d334d9abccaf9e3a9b63863da29478 100644
--- a/Code/Mantid/docs/source/algorithms/LoadTOFRawNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadTOFRawNexus-v1.rst
@@ -30,3 +30,5 @@ change!):
    *dspacing*
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadVTK-v1.rst b/Code/Mantid/docs/source/algorithms/LoadVTK-v1.rst
index d9967862ee877134c182f2313282a89b6bbf4ead..1ab52491815d4a7e7297e9da16e12f37c37b1d57 100644
--- a/Code/Mantid/docs/source/algorithms/LoadVTK-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadVTK-v1.rst
@@ -64,5 +64,7 @@ These example is for illustation only. The file used is very large and not publi
 
 .. categories::
 
+.. sourcelink::
+
 
 
diff --git a/Code/Mantid/docs/source/algorithms/LoadVesuvio-v1.rst b/Code/Mantid/docs/source/algorithms/LoadVesuvio-v1.rst
index 384d8833ea93acd9c115603d2b7c951233e682bc..cd2c39a433d997d0405cdf8bc2141e36ffa6859a 100644
--- a/Code/Mantid/docs/source/algorithms/LoadVesuvio-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadVesuvio-v1.rst
@@ -89,3 +89,5 @@ Output::
    Number of spectra: 1
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LoadVulcanCalFile-v1.rst b/Code/Mantid/docs/source/algorithms/LoadVulcanCalFile-v1.rst
index e98cf40e30767e3e601d1f1a2f9a2615732d8ef2..3777b67d3e15c706196e89889ddbe958e96fbe47 100644
--- a/Code/Mantid/docs/source/algorithms/LoadVulcanCalFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LoadVulcanCalFile-v1.rst
@@ -108,3 +108,5 @@ Output:
   Size of mask workspace = 7392
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Logarithm-v1.rst b/Code/Mantid/docs/source/algorithms/Logarithm-v1.rst
index 9b51413550a1a1a0addce1bf25ce19c6a3cdf3e1..7515ff5ad49bc0adfb3a8b521888761d23e16455 100644
--- a/Code/Mantid/docs/source/algorithms/Logarithm-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Logarithm-v1.rst
@@ -59,3 +59,5 @@ Usage
    Log10 for Err spectra 0:  [ 0.      0.0434  0.434   0.434 ]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LogarithmMD-v1.rst b/Code/Mantid/docs/source/algorithms/LogarithmMD-v1.rst
index ea6ad6348955429c9fd1f304939f16b097fce693..8e569665a65d53f9410ef3ceb32b2f7d46dd022b 100644
--- a/Code/Mantid/docs/source/algorithms/LogarithmMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LogarithmMD-v1.rst
@@ -21,3 +21,5 @@ This algorithm cannot be run on a
 :ref:`algm-Logarithm`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/LorentzCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/LorentzCorrection-v1.rst
index 8022a4b00d231a7efaba3e94ce7a5a1f35340c10..626c5e5cc385267fe544896a03eb0d0040f57273 100644
--- a/Code/Mantid/docs/source/algorithms/LorentzCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/LorentzCorrection-v1.rst
@@ -46,3 +46,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/Lorentzian1D-v1.rst b/Code/Mantid/docs/source/algorithms/Lorentzian1D-v1.rst
index 3152104e01c0167a2f6d73ba27b03a87081f32fe..79a0048103b7c1e436034ddf951a997eed2e607c 100644
--- a/Code/Mantid/docs/source/algorithms/Lorentzian1D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Lorentzian1D-v1.rst
@@ -37,3 +37,5 @@ a TOF peak:
    LorentzianWithConstBackground.png
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MDHistoToWorkspace2D-v1.rst b/Code/Mantid/docs/source/algorithms/MDHistoToWorkspace2D-v1.rst
index 77c80845485fcb83dd65c84eefe07a3d6816820f..2eed6b1753b1a3f364b0aa55c83faddbe69ffa99 100644
--- a/Code/Mantid/docs/source/algorithms/MDHistoToWorkspace2D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MDHistoToWorkspace2D-v1.rst
@@ -46,3 +46,5 @@ Output:
    corresponding part of 2D workspace [ 0.  4.  5.  0.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MDNormDirectSC-v1.rst b/Code/Mantid/docs/source/algorithms/MDNormDirectSC-v1.rst
index 5fc6aa1a2ff7ac9d3ec6f636d4085df427479a10..c47842c280d16b3d020a126de16f25bd3c62e7c8 100644
--- a/Code/Mantid/docs/source/algorithms/MDNormDirectSC-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MDNormDirectSC-v1.rst
@@ -80,3 +80,5 @@ The output would look like:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/MDNormSCD-v1.rst b/Code/Mantid/docs/source/algorithms/MDNormSCD-v1.rst
index cd50f7a29cca351f32225a26dc3c13d49a7c3d0c..ce11177e1043f0c90409d9cac3aabae71829c570 100644
--- a/Code/Mantid/docs/source/algorithms/MDNormSCD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MDNormSCD-v1.rst
@@ -88,3 +88,5 @@ Usage
     
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/MSDFit-v1.rst b/Code/Mantid/docs/source/algorithms/MSDFit-v1.rst
index 358c9f42d8af1ced158ad28fab7c3aecffd57870..0b99d7a4ce9ab9c6fff4d3c7b47aace38f96ad42 100644
--- a/Code/Mantid/docs/source/algorithms/MSDFit-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MSDFit-v1.rst
@@ -15,6 +15,11 @@ to obtain the mean square displacement for a given range of runs.
 This algorithm operates on the QSquared workspace (*_q2*) generated by the
 :ref:`ElasticWindowMultiple <algm-ElasticWindowMultiple>` algorithm.
 
+Workflow
+--------
+
+.. diagram:: MSDFit-v1_wkflw.dot
+
 Usage
 -----
 
@@ -45,3 +50,7 @@ Output:
     A1: [ 0.11014908]
 
 .. categories::
+
+.. sourcelink::
+  :cpp: None
+  :h: None
diff --git a/Code/Mantid/docs/source/algorithms/MaskAngle-v1.rst b/Code/Mantid/docs/source/algorithms/MaskAngle-v1.rst
index c9915693bf890bfe73d5ae9dc70dd5c4e7612f80..9452eccdf4786ee176bb2a122b97072e4b2727d6 100644
--- a/Code/Mantid/docs/source/algorithms/MaskAngle-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskAngle-v1.rst
@@ -54,3 +54,5 @@ The instrument view would look like:
    :alt: MaskAngle.png    
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MaskBTP-v1.rst b/Code/Mantid/docs/source/algorithms/MaskBTP-v1.rst
index 378594b7a1d9885a2a3e2f40af65480213e4a261..05b2a47ad34a25516f3d0733f2fa236c7f48c822 100644
--- a/Code/Mantid/docs/source/algorithms/MaskBTP-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskBTP-v1.rst
@@ -82,3 +82,5 @@ The instrument view should look like
    :alt: MaskBTP.png
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MaskBins-v1.rst b/Code/Mantid/docs/source/algorithms/MaskBins-v1.rst
index 48fb101d43af616d6e171f7e69d1c7ac4e4c3f3d..9978adbf23ee0177cc42ed68e9e05b1ef5cc89be 100644
--- a/Code/Mantid/docs/source/algorithms/MaskBins-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskBins-v1.rst
@@ -72,3 +72,5 @@ data these values are simply missed out of the summing that is
 performed.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MaskBinsFromTable-v1.rst b/Code/Mantid/docs/source/algorithms/MaskBinsFromTable-v1.rst
index 95b0252badaf7d47ef70912fffcc69db638da514..f0a4ef4c14254478d5439bf79dbfde8ba8284244 100644
--- a/Code/Mantid/docs/source/algorithms/MaskBinsFromTable-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskBinsFromTable-v1.rst
@@ -69,3 +69,5 @@ in the workspace (though the workspace does not have to have common X
 values in all spectra).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MaskDetectors-v1.rst b/Code/Mantid/docs/source/algorithms/MaskDetectors-v1.rst
index 856d5913457b81275d9528920120bd15d5aba70c..b158f414e14032fd74525decf8a093bc749b6d47 100644
--- a/Code/Mantid/docs/source/algorithms/MaskDetectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskDetectors-v1.rst
@@ -311,3 +311,5 @@ Output
   Detector 104 is masked: False
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MaskDetectorsIf-v1.rst b/Code/Mantid/docs/source/algorithms/MaskDetectorsIf-v1.rst
index 301947bad5134b50b73682c1d95d588b1cc94412..276b40f34ea95c0e63690b257950703c01236c7c 100644
--- a/Code/Mantid/docs/source/algorithms/MaskDetectorsIf-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskDetectorsIf-v1.rst
@@ -15,3 +15,5 @@ the contributing detectors in the output calfile. All other aspects of
 the ``InputCalFile`` are copied over to the ``OutputCalFile``.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MaskDetectorsInShape-v1.rst b/Code/Mantid/docs/source/algorithms/MaskDetectorsInShape-v1.rst
index f44542100f09c6136cdabb310cba6b969079120a..88c69b4c32ca204cad2f6806f7a557b53b7529c6 100644
--- a/Code/Mantid/docs/source/algorithms/MaskDetectorsInShape-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskDetectorsInShape-v1.rst
@@ -82,3 +82,5 @@ Output
   True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MaskMD-v1.rst b/Code/Mantid/docs/source/algorithms/MaskMD-v1.rst
index 70925af9ec09438235f0c3e2abe9508a3cdb3f1f..c0b3e099e7df41c06cb5b480a0c1c3ec5d431e93 100644
--- a/Code/Mantid/docs/source/algorithms/MaskMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskMD-v1.rst
@@ -41,3 +41,5 @@ to the last {X,Y,Z}. Applying this masking will result in two completely
 separate areas masked in a single call to the algorithm.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MaskPeaksWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/MaskPeaksWorkspace-v1.rst
index 7fbdac5fe09b7f2dd0f12b23a6577df8fb7bc29c..b771d01ddbdb419d0b66dc532d7263a45207f140 100644
--- a/Code/Mantid/docs/source/algorithms/MaskPeaksWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskPeaksWorkspace-v1.rst
@@ -35,3 +35,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MaskWorkspaceToCalFile-v1.rst b/Code/Mantid/docs/source/algorithms/MaskWorkspaceToCalFile-v1.rst
index 8164734fbf7b7e305156ede229fb737edc44baaa..9fc0667507484719143819aa0b1c831b19e650b8 100644
--- a/Code/Mantid/docs/source/algorithms/MaskWorkspaceToCalFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaskWorkspaceToCalFile-v1.rst
@@ -63,3 +63,5 @@ Output
   os.remove( calFilePath )
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Max-v1.rst b/Code/Mantid/docs/source/algorithms/Max-v1.rst
index cda3da7d3ee17d01afdbcd5ecd57f3b1694ca9c3..5528c0cc9acff2406ff17dd21aac1bfa3e255517 100644
--- a/Code/Mantid/docs/source/algorithms/Max-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Max-v1.rst
@@ -49,3 +49,5 @@ Output
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/MaxMin-v1.rst b/Code/Mantid/docs/source/algorithms/MaxMin-v1.rst
index feeeed6d6a864dc32143fef73c02350e61ef7adc..de8329a15ceeea04738181d155a95a28ba241761 100644
--- a/Code/Mantid/docs/source/algorithms/MaxMin-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MaxMin-v1.rst
@@ -80,3 +80,5 @@ Output:
    [ 0.3]
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Mean-v1.rst b/Code/Mantid/docs/source/algorithms/Mean-v1.rst
index e8ad20b79acc58d16210736ee55609cfa369b838..ae79c7182c6224f1aca38bf72a1a126fabc807b9 100644
--- a/Code/Mantid/docs/source/algorithms/Mean-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Mean-v1.rst
@@ -52,3 +52,5 @@ Output:
    Mean of y values in second spectrum: [ 6.  7.  8.  9.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MedianDetectorTest-v1.rst b/Code/Mantid/docs/source/algorithms/MedianDetectorTest-v1.rst
index 8774646f65c5845bef4563b3072146d400fc8831..a995af4766ef20f42f8d89d522e3e191bf958d9b 100644
--- a/Code/Mantid/docs/source/algorithms/MedianDetectorTest-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MedianDetectorTest-v1.rst
@@ -44,3 +44,5 @@ Uses the :ref:`algm-SolidAngle`, :ref:`algm-Integration` and
 :ref:`algm-ConvertToDistribution` algorithms.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MergeCalFiles-v1.rst b/Code/Mantid/docs/source/algorithms/MergeCalFiles-v1.rst
index e2710bcc065a6909bcaa96a48c82ee91429c35b0..a3fa528eff8a6f8219edd3fdb42097d10f16cc2b 100644
--- a/Code/Mantid/docs/source/algorithms/MergeCalFiles-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MergeCalFiles-v1.rst
@@ -145,3 +145,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MergeLogs-v1.rst b/Code/Mantid/docs/source/algorithms/MergeLogs-v1.rst
index fd1f2ad4578e78ca09bebe1cfda76944962f5eaf..eabe9d72b6af2e757a2b93f6591b943e4e407b02 100644
--- a/Code/Mantid/docs/source/algorithms/MergeLogs-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MergeLogs-v1.rst
@@ -66,3 +66,5 @@ Output:
   Mixed Phase 1 and 2 Time[4] = 2012-08-14T18:55:55.640000000 .
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MergeMD-v1.rst b/Code/Mantid/docs/source/algorithms/MergeMD-v1.rst
index f8ed3e5798b872287d37fbf7041002d4d2578e3f..f9f4aaecdda0b5feb35485c813c2115119f9b5d5 100644
--- a/Code/Mantid/docs/source/algorithms/MergeMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MergeMD-v1.rst
@@ -31,6 +31,7 @@ Usage
 
 .. testcode:: ExMergeMD
 
+   from mantid.api import IMDEventWorkspace
    # Create sample inelastic workspace for MARI instrument containing 1 at all spectra 
    ws1=CreateSimulationWorkspace(Instrument='MAR',BinParams='-10,1,10',UnitX='DeltaE')
    AddSampleLog(ws1,'Ei','12.','Number')
@@ -46,7 +47,9 @@ Usage
    SumWS=MergeMD(InputWorkspaces='mdWs1,mdWs2',SplitInto='100,100')
 
     # check it looks like the one we wanted
-   print 'merged workspace of type : {0}\n'.format(type(SumWS)),
+   print 'merged workspace of type: {0}\n'.format(SumWS.id()),
+   # this is how you would check whether it is a general MDEventWorkspace
+   print 'it is a type of MDEventWorkspace: {0}\n'.format(isinstance(SumWS, IMDEventWorkspace)),
    print '****************************************************************'   
    print 'workspace 1 has {0} dimensions with {1} points and {2} events'.format(mdWs1.getNumDims(),mdWs1.getNPoints(),mdWs1.getNEvents());
    d1=mdWs1.getDimension(0);d2=mdWs1.getDimension(1)
@@ -65,7 +68,8 @@ Usage
 
 .. testoutput:: ExMergeMD
 
-   merged workspace of type : <class 'mantid.api._api.IMDEventWorkspace'>
+   merged workspace of type: MDEventWorkspace<MDEvent,2>
+   it is a type of MDEventWorkspace: True
    ****************************************************************
    workspace 1 has 2 dimensions with 18231 points and 18231 events
    with d1 min_max=0.0:5.0, d2 min_max=-10.0:10.0
@@ -78,3 +82,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MergeMDFiles-v1.rst b/Code/Mantid/docs/source/algorithms/MergeMDFiles-v1.rst
index 7207f2dde4fdeb95dc9b6fe39a5a28c6d8758072..6d008a3ee0638a3fa859b6250ebc6f5d1d1ea623 100644
--- a/Code/Mantid/docs/source/algorithms/MergeMDFiles-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MergeMDFiles-v1.rst
@@ -37,3 +37,5 @@ See also: :ref:`algm-MergeMD`, for merging any MDWorkspaces in system
 memory (faster, but needs more memory).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MergeRuns-v1.rst b/Code/Mantid/docs/source/algorithms/MergeRuns-v1.rst
index 49b1ac50810c2ce204bf7ee7cfb8336a4c556030..f1d49d83e5a071ab20a956a053d59b52be4e4c90 100644
--- a/Code/Mantid/docs/source/algorithms/MergeRuns-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MergeRuns-v1.rst
@@ -14,6 +14,11 @@ If the input workspaces do not have common binning, the bins in the
 output workspace will cover the entire range of all the input
 workspaces, with the largest bin widths used in regions of overlap.
 
+The combination of each workspace is performed using the :ref:`algm-Plus` algorithm,
+this does not preform any weighting based on the duration of collection, or proton charge.
+If you wish to perform Merge runs that should not be equally weighted then they should be
+corrected individually prior to merging.
+
 Restrictions on the input workspace
 ###################################
 
@@ -37,7 +42,7 @@ Processing Group Workspaces
 ###########################
 
 Multi-period Group Workspaces
-#############################
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Group workspaces will be merged respecting the periods within each
 group. For example if you have two multiperiod group workspaces A and B
@@ -49,7 +54,7 @@ Therefore, merging is conducted such that A\_1 + B\_1 = C\_1 and A\_2 +
 B\_2 = C\_2.
 
 Group Workspaces that are not multiperiod
-#########################################
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If group workspaces are provided that are not multi-period, this
 algorithm will merge across all nested workspaces, to give a singe
@@ -61,6 +66,9 @@ ChildAlgorithms used
 The :ref:`algm-Rebin` algorithm is used, if neccessary, to put all the
 input workspaces onto a common binning.
 
+The :ref:`algm-Plus` algorithm is used to combine each of the workspaces 
+together one pair at a time.
+
 Usage
 -----
 
@@ -74,7 +82,7 @@ Usage
    a = CreateWorkspace(dataX, dataY)
    b = CreateWorkspace(dataX, dataY)
 
-   merged = MergeRuns(InputWorkspaces="a, b")
+   merged = MergeRuns(InputWorkspaces="a, b")  
 
    print "a      = " + str(a.readY(0))
    print "b      = " + str(b.readY(0))
@@ -120,3 +128,5 @@ Usage
    merged   = [ 24.  60.  84.  36.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Min-v1.rst b/Code/Mantid/docs/source/algorithms/Min-v1.rst
index 7037c97f8cd5bdbd0509433a523df0299282cd9e..dfe615e660cbf21a87318bf8775c7d0ab98d4054 100644
--- a/Code/Mantid/docs/source/algorithms/Min-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Min-v1.rst
@@ -42,3 +42,5 @@ Output:
     The new output workspace has  1  histogram, with the minimum Y =  2.0  and it occurs at X between  2.0  and  3.0
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Minus-v1.rst b/Code/Mantid/docs/source/algorithms/Minus-v1.rst
index 6f3fa8afba1523afb16abb95d204bc0161b155a5..915fd3e465fd4c62a1ca6c8914a29b213731570b 100644
--- a/Code/Mantid/docs/source/algorithms/Minus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Minus-v1.rst
@@ -140,3 +140,5 @@ Output:
     The updated Error values are: [ 0.  1.  2.  3.  4.  5.  6.  7.  8.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MinusMD-v1.rst b/Code/Mantid/docs/source/algorithms/MinusMD-v1.rst
index dffb8e271d8046f5a1af475589c67f1310e59070..df468c762969a6875724fa5dd33bd8514f130960 100644
--- a/Code/Mantid/docs/source/algorithms/MinusMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MinusMD-v1.rst
@@ -39,3 +39,5 @@ MDHistoWorkspace and a scalar.
    -  This is not possible.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ModeratorTzero-v1.rst b/Code/Mantid/docs/source/algorithms/ModeratorTzero-v1.rst
index 208f9922eaf76ebabe374a8e8013f4611ac56634..7ec77175e2a9ac8db63bd5432e34339a919318f9 100644
--- a/Code/Mantid/docs/source/algorithms/ModeratorTzero-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ModeratorTzero-v1.rst
@@ -81,3 +81,5 @@ conditions, use of :ref:`algm-ModeratorTzeroLinear` is
 preferred.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ModeratorTzeroLinear-v1.rst b/Code/Mantid/docs/source/algorithms/ModeratorTzeroLinear-v1.rst
index 8ae7606a818b3af749d531105828d9769fc7fbd6..f2352550059403f6aa2f313cc15fededbc0a41f8 100644
--- a/Code/Mantid/docs/source/algorithms/ModeratorTzeroLinear-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ModeratorTzeroLinear-v1.rst
@@ -63,3 +63,5 @@ sample to detector :math:`t_f = 0` and with the initial fligh path
 :math:`L_i` as the distance from source to monitor.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ModifyDetectorDotDatFile-v1.rst b/Code/Mantid/docs/source/algorithms/ModifyDetectorDotDatFile-v1.rst
index 0d8be54cc2a2721cfb61346d248fdf00b704cbad..904b08bc62f1ed0e748171fb9791b7f4065d1ffc 100644
--- a/Code/Mantid/docs/source/algorithms/ModifyDetectorDotDatFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ModifyDetectorDotDatFile-v1.rst
@@ -81,3 +81,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MolDyn-v1.rst b/Code/Mantid/docs/source/algorithms/MolDyn-v1.rst
index 53dcbf959f2649e6048060fe8c661427a14d112f..dfd8ce920b023e3169401e457ba881dfad6a6486 100644
--- a/Code/Mantid/docs/source/algorithms/MolDyn-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MolDyn-v1.rst
@@ -42,3 +42,5 @@ Output:
     NaF_DISF_Sqw-total
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MonitorLiveData-v1.rst b/Code/Mantid/docs/source/algorithms/MonitorLiveData-v1.rst
index 9396035220f86f21350501350ace2b2fdaea6430..cb3401f0a2f30263d61f66253ccab0c88f424b2e 100644
--- a/Code/Mantid/docs/source/algorithms/MonitorLiveData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MonitorLiveData-v1.rst
@@ -27,3 +27,5 @@ Usage
 LoadLiveData is not intended for usage directly, it is part of he process that is started using :ref:`algm-StartLiveData`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MonteCarloAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/MonteCarloAbsorption-v1.rst
index 6d9c53e8857540a0ab014ca785be7a4715c95dc6..c6ef1e7593353b1220c2554c54454809c5fac6c3 100644
--- a/Code/Mantid/docs/source/algorithms/MonteCarloAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MonteCarloAbsorption-v1.rst
@@ -85,3 +85,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MoveInstrumentComponent-v1.rst b/Code/Mantid/docs/source/algorithms/MoveInstrumentComponent-v1.rst
index 6dd0c72b754b5632eef5497dadd6401634138921..e1260852a0df19c78854be1fa54f64a38a438a8f 100644
--- a/Code/Mantid/docs/source/algorithms/MoveInstrumentComponent-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MoveInstrumentComponent-v1.rst
@@ -91,3 +91,5 @@ Output
   [1.08882,-0.108221,-0.145]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MultipleScatteringCylinderAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/MultipleScatteringCylinderAbsorption-v1.rst
index c4c166a21f41c583cef16c3022887da95f813961..1e8c52bd73ec73fe029cb675389f49e72dc2843a 100644
--- a/Code/Mantid/docs/source/algorithms/MultipleScatteringCylinderAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MultipleScatteringCylinderAbsorption-v1.rst
@@ -41,4 +41,17 @@ Output:
        1.62244888]
 
 
+References
+----------
+
+The source for how this calculation is done is
+
+#. J.M. Carpenter *Attenuation Correction Factor for Scattering from Cylindrical Targets* Review of Scientific Instruments **40.4** (1969): 555. doi: `10.1063/1.1684003 <http://dx.doi.org/10.1063/1.1684003>`_
+
+#. D.F.R. Mildner, J.M. Carpenter, and C.A. Pelizzari *Generalized Attenuation Correction Factor for Scattering from Cylindrical Targets* Review of Scientific Instruments **45.4** (1974): 572. doi: `10.1063/1.1686687 <http://dx.doi.org/10.1063/1.1686687>`_
+
+#. D.F.R. Mildner and J.M.Carpenter *Improvements to the Chebyshev Expansion of Attenuation Correction Factors for Cylindrical Samples.* J Appl Crystallogr **23.5** (1990): 378–386 doi: `10.1107/S0021889890005258 <http://dx.doi.org/10.1107/S0021889890005258>`_
+
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Multiply-v1.rst b/Code/Mantid/docs/source/algorithms/Multiply-v1.rst
index aa754a47dc03fab67d8552e786a8aaa4780d8307..c762700441d8d33c98bf5490376b14fe0d9a8f76 100644
--- a/Code/Mantid/docs/source/algorithms/Multiply-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Multiply-v1.rst
@@ -138,3 +138,5 @@ Output:
     The updated Error values are: [  0.    2.5   5.    7.5  10.   12.5  15.   17.5  20. ]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MultiplyMD-v1.rst b/Code/Mantid/docs/source/algorithms/MultiplyMD-v1.rst
index 272f359d5e9859a17395a4fa1b3cba4dbd9cdb67..ab23a28de8f3206f73c804abba911459bcb8975f 100644
--- a/Code/Mantid/docs/source/algorithms/MultiplyMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MultiplyMD-v1.rst
@@ -29,3 +29,5 @@ The error of :math:`f = a * b` is propagated with
       meaning would be.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MultiplyRange-v1.rst b/Code/Mantid/docs/source/algorithms/MultiplyRange-v1.rst
index c6d1c2e5a71d3c3e196a23a25bc4f75bc60ab76f..e5dced2f1a05b2eba6f3d8b3d823e91d473c6ec6 100644
--- a/Code/Mantid/docs/source/algorithms/MultiplyRange-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MultiplyRange-v1.rst
@@ -40,3 +40,5 @@ Output
   [ 3.  3.  3.  3.  3.  3.  1.  1.  1.  1.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MuonCalculateAsymmetry-v1.rst b/Code/Mantid/docs/source/algorithms/MuonCalculateAsymmetry-v1.rst
index dfd89f3bc18e71ea25e5705c24ec4ce04636d44d..1b977a1084e9a7272aefb2610287611cb6e22440 100644
--- a/Code/Mantid/docs/source/algorithms/MuonCalculateAsymmetry-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MuonCalculateAsymmetry-v1.rst
@@ -9,20 +9,23 @@
 Description
 -----------
 
-Converts loaded/prepared Muon data to a data suitable for analysis.
+Converts loaded/prepared Muon data to a data suitable for analysis. Either one or two data acquisition period
+workspaces may be provided (only the first one is mandatory). When both of them are supplied, the algorithm merges the counts and
+then calculates the asymmetry. PeriodOperation determines in which way period data will be
+merged before the asymmetry calculation.
 
-Supports three modes:
+The algorithm supports three asymmetry types or modes:
 
 -  PairAsymmetry - asymmetry is calculated for a given pair of groups,
-   using the alpha value provided.
--  GroupAsymmetry - asymmetry between given group and Muon exponential
-   decay is calculated.
+   using the alpha value provided. The pair to use is specified via
+   PairFirstIndex and PairSecondIndex.
+-  GroupAsymmetry - asymmetry between given group (specified via GroupIndex)
+   and Muon exponential decay is calculated.
 -  GroupCount - **no asymmetry is calculated**, pure counts of the
-   specified group are used.
+   specified group (via GroupIndex) are used.
 
-For every mode, either one or two data acquisition period workspaces can
-be provided. PeriodOperation determines in which way period data will be
-merged at the end.
+Note that this algorithm is intended to be executed on input workspaces whose spectra correspond to previously grouped spectra, hence
+the term 'group' is used instead of 'spectrum'.
 
 Usage
 -----
@@ -54,7 +57,7 @@ Output:
 .. testcode:: ExGroupAsymmetryMultiperiod
 
    y1 = [100,50,10]
-   y2 = [150,20,1]
+   y2 = [ 50,25, 5]
    x = [1,2,3]
 
    input1 = CreateWorkspace(x, y1)
@@ -72,6 +75,8 @@ Output:
 
 .. testoutput:: ExGroupAsymmetryMultiperiod
 
-   Output: [-0.28634067  0.60594273  0.26255546]
+   Output: [ 0.1524242  -0.0916425  -0.71360777]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MuonGroupDetectors-v1.rst b/Code/Mantid/docs/source/algorithms/MuonGroupDetectors-v1.rst
index aa690e34087bac8b0e1257815646fa6a00eeb51a..d91570f70f949365c06bdc15a651e73573618ba3 100644
--- a/Code/Mantid/docs/source/algorithms/MuonGroupDetectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MuonGroupDetectors-v1.rst
@@ -86,3 +86,5 @@ Output:
    No. of grouped spectra in second period: 2
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MuonLoad-v1.rst b/Code/Mantid/docs/source/algorithms/MuonLoad-v1.rst
index 88f1768100e8d416ba8614473ca3dfbd800a8a11..91989d14336d69a960fd81e04a3835801e15d18b 100644
--- a/Code/Mantid/docs/source/algorithms/MuonLoad-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MuonLoad-v1.rst
@@ -66,3 +66,5 @@ Output:
    Integrated asymmetry for the run: 1.701
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MuscatData-v1.rst b/Code/Mantid/docs/source/algorithms/MuscatData-v1.rst
index a48ce29d6f138d0569fffd469b7d1003ac747227..810162435cd4e2bbb04812cd345f478e17c261d8 100644
--- a/Code/Mantid/docs/source/algorithms/MuscatData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MuscatData-v1.rst
@@ -52,3 +52,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/MuscatFunc-v1.rst b/Code/Mantid/docs/source/algorithms/MuscatFunc-v1.rst
index 50af9e4a7990af542e091f002ce0b7af80184b53..a972a285f446d065247c007f154bb9a4aabd3135 100644
--- a/Code/Mantid/docs/source/algorithms/MuscatFunc-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/MuscatFunc-v1.rst
@@ -52,3 +52,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/NexusTester-v1.rst b/Code/Mantid/docs/source/algorithms/NexusTester-v1.rst
index 07f49899e2068a5cb45af45b613ef3dd10e76c21..6314e9a18afc2eaa2694b0696ce88a0934dea449 100644
--- a/Code/Mantid/docs/source/algorithms/NexusTester-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/NexusTester-v1.rst
@@ -24,3 +24,5 @@ The ``SaveSpeed`` and ``LoadSpeed`` output properties are set to the saving
 and loading rates, in MB per second.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/NormaliseByCurrent-v1.rst b/Code/Mantid/docs/source/algorithms/NormaliseByCurrent-v1.rst
index 9c8d7b66d6fdcd5bb9854c6a8592bcbfddd405dc..45c3e3fb2d065804f9b00307da242bb404686fd9 100644
--- a/Code/Mantid/docs/source/algorithms/NormaliseByCurrent-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/NormaliseByCurrent-v1.rst
@@ -77,3 +77,5 @@ Output:
    Normalisation factor 10.0   
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/NormaliseByDetector-v1.rst b/Code/Mantid/docs/source/algorithms/NormaliseByDetector-v1.rst
index 89fbc14b991b748baa33af38bdd65c7c9c6ae89b..92c2c43bde8b9ebd10bb4070e6ff9ec028e114f4 100644
--- a/Code/Mantid/docs/source/algorithms/NormaliseByDetector-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/NormaliseByDetector-v1.rst
@@ -227,3 +227,5 @@ Output:
   The correct value in bin 90 is 0.03 compared to 0.30
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/NormaliseByPeakArea-v1.rst b/Code/Mantid/docs/source/algorithms/NormaliseByPeakArea-v1.rst
index c971b3d7608bb983d7b8e1d0f33953ecd829cdce..1bb9291d2e5a81e58212388ec197a5976b89a7b1 100644
--- a/Code/Mantid/docs/source/algorithms/NormaliseByPeakArea-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/NormaliseByPeakArea-v1.rst
@@ -88,3 +88,5 @@ Usage
     Number of symmetrised spectra is: 1
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/NormaliseByThickness-v1.rst b/Code/Mantid/docs/source/algorithms/NormaliseByThickness-v1.rst
index e989098e9c8a0a7dc09f459a7b7e4049b0a21664..8843002d2daddccb7e1dd17274339bb04eb0660d 100644
--- a/Code/Mantid/docs/source/algorithms/NormaliseByThickness-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/NormaliseByThickness-v1.rst
@@ -48,3 +48,5 @@ Output:
     Max(norm)= 1.03
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/NormaliseToMonitor-v1.rst b/Code/Mantid/docs/source/algorithms/NormaliseToMonitor-v1.rst
index ae37918a283e3ee945d5a43425482eb3db7051b5..61a340bcd1e99d2bce15d43a8b31a6c137211b24 100644
--- a/Code/Mantid/docs/source/algorithms/NormaliseToMonitor-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/NormaliseToMonitor-v1.rst
@@ -32,6 +32,13 @@ If the workspace does not have common binning, then the monitor spectrum
 is rebinned internally to match each data spectrum prior to doing the
 normalisation.
 
+If a bin in the monitor spectrum contains 0 counts there is no special
+treatment, only a warning is logged. The following options are available to deal
+with the issue:
+
+- Smooth the monitor spectrum before normalisation (using for example :ref:`algm-FFTSmooth`, :ref:`algm-SmoothData`, :ref:`algm-SplineSmoothing` algorithms).
+- Replace the infinite numbers and NaNs after normalisation (:ref:`algm-ReplaceSpecialValues` algorithm).
+
 Normalisation by integrated count mode
 ######################################
 
@@ -94,3 +101,5 @@ Output:
    Selected data 1.485135, 0.741801
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/NormaliseToUnity-v1.rst b/Code/Mantid/docs/source/algorithms/NormaliseToUnity-v1.rst
index d7b4c11f79d9874d6ffc7ccce19135bc3cb0bf62..6d40f1162ce480b898fa116f17ecc4458123d7e1 100644
--- a/Code/Mantid/docs/source/algorithms/NormaliseToUnity-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/NormaliseToUnity-v1.rst
@@ -45,3 +45,5 @@ Output:
    [ 0.2239,0.0065,0.0065, 0.0065, 0.0065 ]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/NormaliseVanadium-v1.rst b/Code/Mantid/docs/source/algorithms/NormaliseVanadium-v1.rst
index ccdefa6872380132b18b5b926c67c586bdb4abbe..0a0307f0fd22a86e72534e27cb18354e5112c277 100644
--- a/Code/Mantid/docs/source/algorithms/NormaliseVanadium-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/NormaliseVanadium-v1.rst
@@ -33,3 +33,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/NotMD-v1.rst b/Code/Mantid/docs/source/algorithms/NotMD-v1.rst
index 7399891c2c82aeab95198124ccc62aeaf5726e4a..3c87a3ee903972bee6221fd9f61e02c47d1531e6 100644
--- a/Code/Mantid/docs/source/algorithms/NotMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/NotMD-v1.rst
@@ -15,3 +15,5 @@ element-by-element. Any 0.0 signal is changed to 1.0 (meaning true). Any
 non-zero signal is changed to 0.0 (meaning false).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/OSIRISDiffractionReduction-v1.rst b/Code/Mantid/docs/source/algorithms/OSIRISDiffractionReduction-v1.rst
index 4456ab8957d185311c0022698d6d6cdba697d116..6e4fbe9d245e2f89d6f071fa7aa0ac766ef6cea1 100644
--- a/Code/Mantid/docs/source/algorithms/OSIRISDiffractionReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/OSIRISDiffractionReduction-v1.rst
@@ -9,11 +9,12 @@
 Description
 -----------
 
-Source Code
------------
+Performs a diffraction reduction for OSIRIS using normalisation to a set of
+vanadium sample runs.
 
-The source code for the Python Algorithm may be viewed at:
-`OSIRISDiffractionReduction.py <https://github.com/mantidproject/mantid/blob/master/Code/Mantid/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/OSIRISDiffractionReduction.py>`__
+The dRanges are numbered as per the `OSIRIS manual
+<http://www.isis.stfc.ac.uk/instruments/osiris/documents/osiris-user-guide6672.pdf>`_.
+Otherwise the dRange is determined based on the table provided in the manual.
 
 Usage
 -----
@@ -23,14 +24,14 @@ Usage
 .. testcode:: ExOSIRISDiffractionReductionSimple
 
     import os
-    
+
     def createDummyOSIRISWorkspace(name, func, xmin, xmax, bin_width):
       """Creates a workspace that looks something like an OSIRIS diffraction run"""
       #create workspace according to function
       ws = CreateSampleWorkspace("Histogram", Function="User Defined", UserDefinedFunction=func, XMin=xmin, XMax=xmax, Random=True, BinWidth=bin_width, NumBanks=11, OutputWorkspace=name)
       ws = CropWorkspace(ws, StartWorkspaceIndex=0, EndWorkspaceIndex=1009, OutputWorkspace=name)
       AddSampleLog(ws, 'gd_prtn_chrg', '30.01270866394043',  'Number')
-      
+
       #load instrument parameters
       LoadInstrument(ws, InstrumentName='OSIRIS')
       param_file = config['instrumentDefinition.directory'] + 'OSIRIS_diffraction_diffspec_Parameters.xml'
@@ -82,3 +83,5 @@ Output:
     removeFiles(vanadium)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/OneMinusExponentialCor-v1.rst b/Code/Mantid/docs/source/algorithms/OneMinusExponentialCor-v1.rst
index 933fe56bfa8a8dcbfda13dd0223bf256be5e19b6..873ca5a627ca7f35874a91083520a7987fe2429e 100644
--- a/Code/Mantid/docs/source/algorithms/OneMinusExponentialCor-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/OneMinusExponentialCor-v1.rst
@@ -50,3 +50,5 @@ Output:
     [ 2.59399415  2.94505308  2.99256374]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/OneStepMDEW-v1.rst b/Code/Mantid/docs/source/algorithms/OneStepMDEW-v1.rst
index 85792476505fb5f11d0b991a462cd599b873f4e9..ab2b0dc463fb5ad401df978b8c38e94bfdd0bf6b 100644
--- a/Code/Mantid/docs/source/algorithms/OneStepMDEW-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/OneStepMDEW-v1.rst
@@ -27,3 +27,5 @@ for the details of the usage of these algorithms
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/OptimizeCrystalPlacement-v1.rst b/Code/Mantid/docs/source/algorithms/OptimizeCrystalPlacement-v1.rst
index 6c75451b5bd4c714e8e1c8c14ae45e8100005d8c..540d3c0d13d4fb7a18cab0c786da3f1ca171f79b 100644
--- a/Code/Mantid/docs/source/algorithms/OptimizeCrystalPlacement-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/OptimizeCrystalPlacement-v1.rst
@@ -65,3 +65,5 @@ Output:
     Chi2: 0.0203
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/OptimizeLatticeForCellType-v1.rst b/Code/Mantid/docs/source/algorithms/OptimizeLatticeForCellType-v1.rst
index 2e8cdd7035deb77ef55776cde4997160ebd20696..62fc9b0e767703723675553cae09b3a4e14e33ed 100644
--- a/Code/Mantid/docs/source/algorithms/OptimizeLatticeForCellType-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/OptimizeLatticeForCellType-v1.rst
@@ -51,3 +51,5 @@ Output:
      [ 0.06103109  0.03149982  0.01101201]]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/OrMD-v1.rst b/Code/Mantid/docs/source/algorithms/OrMD-v1.rst
index fc9d2e3488cd5f76f4d367e40dffc5b202c08743..68989ce6df6be1b3c2bfeede37fe672fb3c32f35 100644
--- a/Code/Mantid/docs/source/algorithms/OrMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/OrMD-v1.rst
@@ -14,3 +14,5 @@ operation is performed element-by-element. A signal of 0.0 means "false"
 and any non-zero signal is "true".
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PDDetermineCharacterizations-v1.rst b/Code/Mantid/docs/source/algorithms/PDDetermineCharacterizations-v1.rst
index c5c9b77fa7e0a24e77b3b81a8e4db5a8f855566c..a6709c8885928b21a72457477eb8858c5196ef8e 100644
--- a/Code/Mantid/docs/source/algorithms/PDDetermineCharacterizations-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PDDetermineCharacterizations-v1.rst
@@ -52,3 +52,5 @@ For a description of the  `TableWorkspace <TableWorkspace>`__
 see :ref:`PDLoadCharacterizations <algm-PDLoadCharacterizations>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PDFFourierTransform-v1.rst b/Code/Mantid/docs/source/algorithms/PDFFourierTransform-v1.rst
index 3561f1cc1cf834558c166d727c0f33d5e3b8678c..797e1b5adf0be8a915a6217164c80d5e2b2e634a 100644
--- a/Code/Mantid/docs/source/algorithms/PDFFourierTransform-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PDFFourierTransform-v1.rst
@@ -174,3 +174,5 @@ Usage
    
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PDLoadCharacterizations-v1.rst b/Code/Mantid/docs/source/algorithms/PDLoadCharacterizations-v1.rst
index 5c2c02cfe4bc4671eee65ee77ea71e3645a9b8dd..9d81b4cc29f9c9bd5f1339d0dbcd3b2cf743fd54 100644
--- a/Code/Mantid/docs/source/algorithms/PDLoadCharacterizations-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PDLoadCharacterizations-v1.rst
@@ -71,3 +71,5 @@ tof_max    double
 ========== =======
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Pause-v1.rst b/Code/Mantid/docs/source/algorithms/Pause-v1.rst
index 72552c3f573a76567229eedf87c744d370b1ede4..6c0b7a3ae44e17b6ce6975ea683848c3b7177cbb 100644
--- a/Code/Mantid/docs/source/algorithms/Pause-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Pause-v1.rst
@@ -38,3 +38,5 @@ Output:
    The algorithm paused for ... seconds.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PawleyFit-v1.rst b/Code/Mantid/docs/source/algorithms/PawleyFit-v1.rst
index 10d3a337014519b8edd00c1508306cb42586a9c5..25895ed6fe99d1a6d10954b911f62cd6e6d63fd1 100644
--- a/Code/Mantid/docs/source/algorithms/PawleyFit-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PawleyFit-v1.rst
@@ -99,3 +99,5 @@ It's important to check the output data, which is found in the workspace labeled
 .. [Pawley] Pawley, G. S. “Unit-Cell Refinement from Powder Diffraction Scans.”, J. Appl. Crystallogr. 14, 1981, 357. doi:10.1107/S0021889881009618.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PeakIntegration-v1.rst b/Code/Mantid/docs/source/algorithms/PeakIntegration-v1.rst
index c3d7e1cdd3a1bb97f27ebd04491f20a5d1b2c1db..5883750d5d06cea702d89fe46fe3a59556c6db89 100644
--- a/Code/Mantid/docs/source/algorithms/PeakIntegration-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PeakIntegration-v1.rst
@@ -14,3 +14,5 @@ crystal data and place results into peak workspace. Uses IkedaCarpenter
 function to fit TOF.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PeakIntensityVsRadius-v1.rst b/Code/Mantid/docs/source/algorithms/PeakIntensityVsRadius-v1.rst
index c2498ba96a64db5855b5f8f42ad7ce6d69b2f679..d6179a78564e4f0eb30cc8a2f2d8c6166a5ecd9c 100644
--- a/Code/Mantid/docs/source/algorithms/PeakIntensityVsRadius-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PeakIntensityVsRadius-v1.rst
@@ -71,3 +71,5 @@ Usage
     plotSpectrum('peak_vs_rad', [0,2,3], error_bars=True)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PeaksInRegion-v1.rst b/Code/Mantid/docs/source/algorithms/PeaksInRegion-v1.rst
index 7aaef432228f5b0732f9bee4095829c7b63a7ac7..9481f3552528e837c8a8b7c2d9cf02a777ab0ef3 100644
--- a/Code/Mantid/docs/source/algorithms/PeaksInRegion-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PeaksInRegion-v1.rst
@@ -45,3 +45,5 @@ Output:
    {'Distance': -1.0, 'PeakIndex': 0, 'Intersecting': True}
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PeaksOnSurface-v1.rst b/Code/Mantid/docs/source/algorithms/PeaksOnSurface-v1.rst
index 7a7f7ababce5e8ea1182aa02929270e8b74b0ee5..82685a55679dfb6b1015c709e6d5ccaf01986851 100644
--- a/Code/Mantid/docs/source/algorithms/PeaksOnSurface-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PeaksOnSurface-v1.rst
@@ -49,3 +49,5 @@ Output:
    {'Distance': -1.0, 'PeakIndex': 0, 'Intersecting': True}
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PearlMCAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/PearlMCAbsorption-v1.rst
index c97dcd6695a85ce3697cb5b851bc276b57942d46..98d3162d44126348119401fcc5a4358e84b62283 100644
--- a/Code/Mantid/docs/source/algorithms/PearlMCAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PearlMCAbsorption-v1.rst
@@ -23,3 +23,5 @@ assumed to be calculated :math:`\frac{I}{I_0}` values and are simply
 read in verbatim.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PerformIndexOperations-v1.rst b/Code/Mantid/docs/source/algorithms/PerformIndexOperations-v1.rst
index 7634090f37c125bb98d110346959c24a5e7e6aec..8cf4e0664f65bae59aa2549476257f0b9f280c00 100644
--- a/Code/Mantid/docs/source/algorithms/PerformIndexOperations-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PerformIndexOperations-v1.rst
@@ -53,3 +53,5 @@ Output:
    [ 51.  52.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PhaseQuad-v1.rst b/Code/Mantid/docs/source/algorithms/PhaseQuad-v1.rst
index 314b62c0e8a35ec45634445178eae3d004509064..abf6a64e642b27d65e8babd787d82673852ceadc 100644
--- a/Code/Mantid/docs/source/algorithms/PhaseQuad-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PhaseQuad-v1.rst
@@ -115,3 +115,6 @@ Output:
    Output workspace contains 2 histograms
 
 .. categories::
+
+.. sourcelink::
+    :filename: PhaseQuadMuon
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/PlotAsymmetryByLogValue-v1.rst b/Code/Mantid/docs/source/algorithms/PlotAsymmetryByLogValue-v1.rst
index f091f41e8c53c86398ff703e3614dfb9bed6ae1b..f06e881b91e913b22ae9de7b55d137811597b6d0 100644
--- a/Code/Mantid/docs/source/algorithms/PlotAsymmetryByLogValue-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PlotAsymmetryByLogValue-v1.rst
@@ -138,7 +138,7 @@ Output:
 
 .. testoutput:: ExDeadTimeCorrection
 
-   Y values (asymmetry): [ 0.14542059  0.13674275  0.12017568]
+   Y values (asymmetry): [ 0.1458422   0.1371184   0.12047788]
    X values (sample magn. field): [ 1350.  1360.  1370.]
 
 **Example - Calculating asymmetry as a function of the sample mean temperature:**
@@ -160,3 +160,5 @@ Output:
    X values (sample magn. field): [ 290.  290.  290.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PlotPeakByLogValue-v1.rst b/Code/Mantid/docs/source/algorithms/PlotPeakByLogValue-v1.rst
index 4d8c42755e0edbf6f36eef82f842e96777c4715e..e36ae1d68f1eb3e02fa636c277c220ca85b7f214 100644
--- a/Code/Mantid/docs/source/algorithms/PlotPeakByLogValue-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PlotPeakByLogValue-v1.rst
@@ -127,3 +127,5 @@ Output:
     True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Plus-v1.rst b/Code/Mantid/docs/source/algorithms/Plus-v1.rst
index 5410ac828102b5c5946d6851411553d0db9d7f40..65d9c7c450e983abf1a23dcc646efdcfeb3042b9 100644
--- a/Code/Mantid/docs/source/algorithms/Plus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Plus-v1.rst
@@ -152,3 +152,5 @@ Output:
     The updated Error values are: [ 0.  1.  2.  3.  4.  5.  6.  7.  8.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PlusMD-v1.rst b/Code/Mantid/docs/source/algorithms/PlusMD-v1.rst
index 1afcf0f9a232ed9011696da148c12653f098cbe4..b61fe857e8bb352348bc8d485e9607d9b29eaeae 100644
--- a/Code/Mantid/docs/source/algorithms/PlusMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PlusMD-v1.rst
@@ -52,3 +52,5 @@ or another algorithm requiring it is called. The workspace is marked as
 'requiring file update'.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PointByPointVCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/PointByPointVCorrection-v1.rst
index f806dfa7a2d86c95edcf5409f450fb33b1ea78d6..8cd77e9b2d9129797379113446c2942b2d917d60 100644
--- a/Code/Mantid/docs/source/algorithms/PointByPointVCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PointByPointVCorrection-v1.rst
@@ -41,3 +41,5 @@ This is normally not a problem unless the setup of the instrument has
 been changed between recording the Vanadium and the sample datasets.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoissonErrors-v1.rst b/Code/Mantid/docs/source/algorithms/PoissonErrors-v1.rst
index 42ccbd1e33f3570f163e5456f903a72a05e763b1..a7fca58bc4f3a66897b2d33f86509205dba8831e 100644
--- a/Code/Mantid/docs/source/algorithms/PoissonErrors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoissonErrors-v1.rst
@@ -45,3 +45,5 @@ Output:
     The updated Error values are: [  0.    1.5   3.    4.5   6.    7.5   9.   10.5  12. ]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PolarizationCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/PolarizationCorrection-v1.rst
index 74bc0d51c6bac84a189a47601e3e0b75657e5cda..a7ad6674912b9b942445cae03e1ac1acd94f1da1 100644
--- a/Code/Mantid/docs/source/algorithms/PolarizationCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PolarizationCorrection-v1.rst
@@ -27,3 +27,5 @@ Since this ratio is wavelength dependent, alpha is a polynomial, which is expres
 :math:`\alpha(\lambda) =\sum\limits_{i=0}^{i=2} K_{i}\centerdot\lambda^i`, can be provided as :math:`K_{0}, K_{1}, K_{2}`
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiAnalyseResiduals-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiAnalyseResiduals-v1.rst
index e9352ced7d859fdec4d26a54b270c8a9957e7d4a..2b74cf734c6de152757b50889f605aa0e809fc92 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiAnalyseResiduals-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiAnalyseResiduals-v1.rst
@@ -36,6 +36,7 @@ The following example shows how to calculate the residuals following a fit perfo
     DeleteTableRows(TableWorkspace=peaks_Si_raw, Rows="11-20")
 
     peaks_Si_1D = PoldiFitPeaks1D(correlation_Si, FwhmMultiples=4, PoldiPeakTable="peaks_Si_raw",
+
                                     FitPlotsWorkspace = "fit_plots_Si",
                                     Version=1)
 
@@ -56,7 +57,9 @@ The output contains the range in which residuals are found:
     
 .. testoutput:: ExSiliconMerged
 
-    Residuals are in the range: [ -2361.48 ,  2651.68 ]
+    Residuals are in the range: [ -2361.45 ,  2651.65 ]
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/PoldiAutoCorrelation-v5.rst b/Code/Mantid/docs/source/algorithms/PoldiAutoCorrelation-v5.rst
index adb425fd9e89a0226864cfe0b1b19a37ddb3b3c4..e24bbe90c8b5046fe122dc4480d478503364792b 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiAutoCorrelation-v5.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiAutoCorrelation-v5.rst
@@ -64,3 +64,5 @@ Output:
     The correlation spectrum has 5531 data points.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiCreatePeaksFromCell-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiCreatePeaksFromCell-v1.rst
index d00b5ddec9c0eaf504f443f9d95dbb20af53db86..2f67cb786d7470bb2c434214317ea6e23c11bdbb 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiCreatePeaksFromCell-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiCreatePeaksFromCell-v1.rst
@@ -50,3 +50,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/PoldiCreatePeaksFromFile-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiCreatePeaksFromFile-v1.rst
index e0733b7db2c4f1f1bd81fbb2e8b2f400410c97d8..18150a0d188af9dbb19639ef5d419f520c8bc156 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiCreatePeaksFromFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiCreatePeaksFromFile-v1.rst
@@ -87,3 +87,5 @@ The script produces a WorkspaceGroup which contains a table with reflections for
     Compound 2: Iron_BCC has 8 reflections in the resolution range.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiDataAnalysis-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiDataAnalysis-v1.rst
index 783213d115b6eb9858f003d05374c81eb9e63c64..148ab799cc0085812168e30cc24074a524569cea 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiDataAnalysis-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiDataAnalysis-v1.rst
@@ -72,3 +72,5 @@ This will print the following output:
 If PlotResult is changed to True, a plot of the spectrum and the residuals is created as described above.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiFitPeaks1D-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiFitPeaks1D-v1.rst
index 4b5c5eea469b362c00f50baf6cd6af09cb705da8..9d8cb3979ddfac36293b1188b953bce0cb9abdb6 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiFitPeaks1D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiFitPeaks1D-v1.rst
@@ -56,3 +56,5 @@ Output:
     There are 14 plots available for inspection.
     
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiFitPeaks1D-v2.rst b/Code/Mantid/docs/source/algorithms/PoldiFitPeaks1D-v2.rst
index 9882ddde3fdf0e1d823d260605287f8d41474013..3bc77b32254857fb891e5f045efd1c4597e2f71f 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiFitPeaks1D-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiFitPeaks1D-v2.rst
@@ -13,6 +13,8 @@ Version two of PoldiFitPeaks1D was introduced to solve problems with overlapping
 
 Another thing that's different from version 1 of the algorithm is the background description. When peaks overlap, the description with a quadratic function is not particularly suitable. Instead, Chebyshev-polynomes of degrees 0, 1 and 2 are fitted and the best solution (with respect to quality of the fit) is selected automatically.
 
+Furthermore, after fitting peaks are inspected for meaningful results. Peaks with intensities below zero, too narrow or too broad profiles (the upper limit is specified by the MaximumRelativeFwhm-parameters) are excluded.
+
 Usage
 -----
 
@@ -45,3 +47,5 @@ Variation of the `AllowedOverlap`-parameter influences the quality of the fit at
     PoldiFitPeaks1D(InputWorkspace='correlation_spectrum', FwhmMultiples=2, AllowedOverlap=0.9, PoldiPeakTable='peaks')
     
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiFitPeaks2D-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiFitPeaks2D-v1.rst
index 176af936e6c4d86a6ea5d7d4f357387a801ec9b8..bdbe5fe12c815651f1f603e6bca904032a766832 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiFitPeaks2D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiFitPeaks2D-v1.rst
@@ -13,13 +13,15 @@ PoldiFitPeaks2D is an algorithm that can be used to fit a set of individual peak
 
 The 1D-peak intensities need to be integral intensities, so the peaks are integrated if necessary. If there is no profile information supplied in the peak table (:ref:`algm-PoldiFitPeaks1D` adds this automatically), it's possible to supply a profile function as parameter to this algorithm. If a profile function name is present in the peak table, the one supplied in the parameters has priority.
 
-There are two modes for performing the fit. In the default mode, all peak profiles are fitted independently using the same function that is used for integration. The other possibility is to perform a Pawley-type fit, where peak positions are calculated using lattice parameters and Miller indices (see :ref:`algm-PawleyFit` for a more general explanation of the method). This mode is controlled by the PawleyFit parameter. For these fits, an additional table will be created which contains the refined lattice parameters. Please note that the peaks need to be indexed to use this mode (using :ref:`algm-PoldiCreatePeaksFromCell` and :ref:`algm-PoldiIndexKnownCompounds`).
+There are two modes for performing the fit. In the default mode, all peak profiles are fitted independently using the same function that is used for integration. For profile functions other than Gaussian or Lorentzian it can be necessary to tie the additional profile parameters (for example the "Mixing" parameter of PseudoVoigt) so that they are the same for all peaks in order to get a reasonable fit. This can be achieved by specifying the names of these parameters in a comma separated list to the "GlobalParameters" property.
+
+The other possibility is to perform a Pawley-type fit, where peak positions are calculated using lattice parameters and Miller indices (see :ref:`algm-PawleyFit` for a more general explanation of the method). This mode is controlled by the PawleyFit parameter. For these fits, an additional table will be created which contains the refined lattice parameters. Please note that the peaks need to be indexed to use this mode (using :ref:`algm-PoldiCreatePeaksFromCell` and :ref:`algm-PoldiIndexKnownCompounds`).
 
 Alternatively, if the peaks have been indexed using a different method, the log values `UnitCell` and `CrystalSystem` must be set on the table workspace using :ref:`algm-AddSampleLog`. `UnitCell` must contain a string with 6 numbers that define a unit cell, with lengths in :math:`\mathrm{\AA{}}` and angles in degree (for example `5.4 5.4 5.4 90 90 90`), whereas `CrystalSystem` must be one of the seven crystal systems (for example `Cubic`).
 
 PoldiFitPeaks2D can also be used to calculate a theoretical 2D pattern from a set of peaks by limiting the iterations to 0.
 
-In addition to performing the 2D-fit, a theoretical 1D-diffractogram of the fit-function is calculated as well, which can be used in conjunction with :ref:`algm-PoldiAnalyseResiduals` to assess the quality of a fit.
+In addition to performing the 2D-fit, a theoretical 1D-diffractogram of the fit-function is calculated as well, which can be used in conjunction with :ref:`algm-PoldiAnalyseResiduals` to assess the quality of a fit. Depending on the value of the `OutputIntegratedIntensity`-option, the output peaks intensities are either integrated or describe the maximum.
 
 Usage
 -----
@@ -156,6 +158,8 @@ The refined lattice parameter is printed at the end:
 
 .. testoutput:: ExSilicon2DPawley
 
-    Refined lattice parameter a = 5.43125 +/- 4e-05
+    Refined lattice parameter a = 5.43126 +/- 4e-05
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiIndexKnownCompounds-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiIndexKnownCompounds-v1.rst
index 2adc8e6f22ae2c2d64ff9a3ed3a9c99322d6032c..3b50219eae957fd925ac2ee2c1ec9c9ca2235a51 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiIndexKnownCompounds-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiIndexKnownCompounds-v1.rst
@@ -69,3 +69,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/PoldiLoadRuns-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiLoadRuns-v1.rst
index bf30126aa373657bb697a11dec8f1851c535172a..78f96f69d11fb80637c946edd89398ec0afc5385 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiLoadRuns-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiLoadRuns-v1.rst
@@ -126,3 +126,5 @@ The data loaded in the first call to the algorithm have been overwritten with th
     Names of data workspaces: ['calibration_data_6904']
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiMerge-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiMerge-v1.rst
index e253e1d8343338a3c44620ee26d49765fda5d2e8..8c9adabb4e7c483527ce08f86e1da51b636efbe8 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiMerge-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiMerge-v1.rst
@@ -80,3 +80,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiPeakSearch-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiPeakSearch-v1.rst
index 616782c939af79b2a67fe6a013ab17094e5cd5bd..ddf3e0dbe0041f2553104a21e90d9eeb6db123a5 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiPeakSearch-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiPeakSearch-v1.rst
@@ -79,3 +79,5 @@ Output:
     The correlation spectrum of sample 6904 contains 14 peaks.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PoldiPeakSummary-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiPeakSummary-v1.rst
index a50525cd4f72752b909e4d170a8911d9e8a92a9f..280fb99a2356ceeba6ef15272267d1479bec2b4a 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiPeakSummary-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiPeakSummary-v1.rst
@@ -49,3 +49,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/PoldiTruncateData-v1.rst b/Code/Mantid/docs/source/algorithms/PoldiTruncateData-v1.rst
index ef1fefb01a0781583db73b641721bd2f60789e69..d5f7edc683e0b2ca04f6db67a97267ba72317ded 100644
--- a/Code/Mantid/docs/source/algorithms/PoldiTruncateData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PoldiTruncateData-v1.rst
@@ -74,3 +74,5 @@ Output:
     
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/PolynomialCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/PolynomialCorrection-v1.rst
index 0752f456d460686844b070ccad2d42180f8b3e8e..66a67c502f50f416702998017eb509f4f2c93bdd 100644
--- a/Code/Mantid/docs/source/algorithms/PolynomialCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PolynomialCorrection-v1.rst
@@ -67,3 +67,5 @@ Usage
    First 5 error values: [   4.   16.   36.   64.  100.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Power-v1.rst b/Code/Mantid/docs/source/algorithms/Power-v1.rst
index 2e1bad56af5b89a31d1b6618b4260dfa3ee15e9c..8f7255876acecb717dfef3da15a676d20b8fce57 100644
--- a/Code/Mantid/docs/source/algorithms/Power-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Power-v1.rst
@@ -48,3 +48,5 @@ Output:
    Squared values of second spectrum: [ 25.  36.  49.  64.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PowerLawCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/PowerLawCorrection-v1.rst
index 796b0f820226e6b47df68008d1b011e919162ab2..857b5c0168aa136950ba0162de4e483fc9a0cc71 100644
--- a/Code/Mantid/docs/source/algorithms/PowerLawCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PowerLawCorrection-v1.rst
@@ -50,3 +50,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PowerMD-v1.rst b/Code/Mantid/docs/source/algorithms/PowerMD-v1.rst
index f162b84ef0324aa1e069ddb68831b986ffec0eab..d9c9235dab872c6412438aa3433df5713be6ff41 100644
--- a/Code/Mantid/docs/source/algorithms/PowerMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PowerMD-v1.rst
@@ -20,3 +20,5 @@ This algorithm cannot be run on a
 :ref:`MatrixWorkspace <MatrixWorkspace>` is called :ref:`algm-Power`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PredictFractionalPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/PredictFractionalPeaks-v1.rst
index 9566a4aa5f190dab54665759d0f91c09d770c309..70fa70f2a4d11898139fccba6ea2764868714b10 100644
--- a/Code/Mantid/docs/source/algorithms/PredictFractionalPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PredictFractionalPeaks-v1.rst
@@ -41,3 +41,5 @@ Usage
    Number of fractional peaks: 117
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PredictPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/PredictPeaks-v1.rst
index 68d41a026f2824917818fe915e4ee7d13df6bfe5..aec9f11244ed5df165aa7bd19808c70e9286b6d3 100644
--- a/Code/Mantid/docs/source/algorithms/PredictPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PredictPeaks-v1.rst
@@ -49,3 +49,5 @@ RoundHKL=False.
 .. seealso :: Algorithm :ref:`algm-PredictFractionalPeaks`
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/PreprocessDetectorsToMD-v1.rst b/Code/Mantid/docs/source/algorithms/PreprocessDetectorsToMD-v1.rst
index f2ef5646edfefd2994de114d3d8bdd5f3a490cac..5344e98efd488bc54dda705a421eb8b9c6769daa 100644
--- a/Code/Mantid/docs/source/algorithms/PreprocessDetectorsToMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/PreprocessDetectorsToMD-v1.rst
@@ -90,3 +90,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ProcessBackground-v1.rst b/Code/Mantid/docs/source/algorithms/ProcessBackground-v1.rst
index 62ef4b185786f0d0d69011eadef2b3ea44d481ea..f1a4957b16046a06143e3081d5c1441d305508f8 100644
--- a/Code/Mantid/docs/source/algorithms/ProcessBackground-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ProcessBackground-v1.rst
@@ -361,3 +361,5 @@ Output:
   Fitted background parameters: A0 = 3.90254e+00, A1 = 1.09284e-02, Chi-square = 0.08237
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ProcessDasNexusLog-v1.rst b/Code/Mantid/docs/source/algorithms/ProcessDasNexusLog-v1.rst
index 5b13fe12cf87f1c8324267d551cb53eac980cec6..ab7f79c958359be5332cd2c3a042c4daed239145 100644
--- a/Code/Mantid/docs/source/algorithms/ProcessDasNexusLog-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ProcessDasNexusLog-v1.rst
@@ -22,3 +22,5 @@ Hence algorithm ProcessDasNexusLog is deprecated.
 No usage example is needed for a deprecated algorithm. 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ProjectMD-v1.rst b/Code/Mantid/docs/source/algorithms/ProjectMD-v1.rst
index be0f60c664a45fa1889f9809f3fb64bc0cfc48d8..5e59279a023aff1826094e7af75614fbe677a07e 100644
--- a/Code/Mantid/docs/source/algorithms/ProjectMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ProjectMD-v1.rst
@@ -85,3 +85,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Q1D-v2.rst b/Code/Mantid/docs/source/algorithms/Q1D-v2.rst
index d31726132540ed07a154bb69e5f734cd15ea4561..ec3b8e6f4ec149b736afdfd7d296d37a6dfcf6e9 100644
--- a/Code/Mantid/docs/source/algorithms/Q1D-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/Q1D-v2.rst
@@ -180,8 +180,8 @@ References
 ##########
 
 Calculation of Q is from Seeger, P. A. and Hjelm, R. P. Jr, "Small-Angle
-Neutron Scattering at Pulsed Spallation Sources" (1991) J. Appl **24**
-467-478
+Neutron Scattering at Pulsed Spallation Sources" (1991) `J. Appl 24
+467-478 <http://dx.doi.org/10.1107/S0021889891004764>`_
 
 Previous Versions
 -----------------
@@ -225,3 +225,5 @@ Properties
 +---------+---------------------+-------------+-------------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Q1DWeighted-v1.rst b/Code/Mantid/docs/source/algorithms/Q1DWeighted-v1.rst
index 8e9c1ddf6c32b6765f84a6303a14f62d98fe76f0..dc9a32533cbed0a43ab5372c2c46d3ed2d61cd76 100644
--- a/Code/Mantid/docs/source/algorithms/Q1DWeighted-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Q1DWeighted-v1.rst
@@ -29,3 +29,5 @@ Usage
 This algorithm is not intended to be run individually, rather as a part of the `SANSReduction <http://www.mantidproject.org/Reduction_for_HFIR_SANS>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/QLines-v1.rst b/Code/Mantid/docs/source/algorithms/QLines-v1.rst
index e6366f36bba718f9cadeea15c4b80b335183afaa..7fa831bedaa5f49d9fc69a214e1f518cb28af04b 100644
--- a/Code/Mantid/docs/source/algorithms/QLines-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/QLines-v1.rst
@@ -67,3 +67,5 @@ Usage
 		QLines(SamNumber='26176', ResNumber='26173', InputType='Workspace', ResInputType='Workspace', Instrument='irs', Analyser='graphite002', Plot='None')
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/QueryAllRemoteJobs-v1.rst b/Code/Mantid/docs/source/algorithms/QueryAllRemoteJobs-v1.rst
index 7032130a21ee733cf1c5efd15b137299794fa398..cd0d0d952d010bf4e7ea4a6a8e78c8ae43e17926 100644
--- a/Code/Mantid/docs/source/algorithms/QueryAllRemoteJobs-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/QueryAllRemoteJobs-v1.rst
@@ -17,3 +17,5 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/QueryAllRemoteJobs-v2.rst b/Code/Mantid/docs/source/algorithms/QueryAllRemoteJobs-v2.rst
index 221906803072143613347629ffb7f66e1fd940de..2f8f0e272da67c5c367d92ff395e85c092a3f2a8 100644
--- a/Code/Mantid/docs/source/algorithms/QueryAllRemoteJobs-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/QueryAllRemoteJobs-v2.rst
@@ -34,3 +34,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/QueryMDWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/QueryMDWorkspace-v1.rst
index 80e6a62791cdd7331fc0570dc881bdd7b70f8bdb..7ec0026aa47265dffb7a0cbcbae61c054a5297d3 100644
--- a/Code/Mantid/docs/source/algorithms/QueryMDWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/QueryMDWorkspace-v1.rst
@@ -78,3 +78,5 @@ Usage
    |             28.0000 |              0.0000 |             28.0000 |              0.3982 |             -7.0000 |
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/QueryRemoteFile-v1.rst b/Code/Mantid/docs/source/algorithms/QueryRemoteFile-v1.rst
index ff8c27470d70d6b5480fe98062943159e97c1c45..91c5b712556f01ceac9e4734a98af0e7b1f7ba7e 100644
--- a/Code/Mantid/docs/source/algorithms/QueryRemoteFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/QueryRemoteFile-v1.rst
@@ -16,3 +16,5 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/QueryRemoteFile-v2.rst b/Code/Mantid/docs/source/algorithms/QueryRemoteFile-v2.rst
index 786b875b6f7c3294fb9028901da6701fee00a4ed..41764288088b944962e46a178fcd4db77214b487 100644
--- a/Code/Mantid/docs/source/algorithms/QueryRemoteFile-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/QueryRemoteFile-v2.rst
@@ -31,3 +31,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/QueryRemoteJob-v1.rst b/Code/Mantid/docs/source/algorithms/QueryRemoteJob-v1.rst
index c43635621566c9f5c7762f40234316610a79b0e5..b8d7c1be07c403c3c6f4c8ea61b6179b6de8ceda 100644
--- a/Code/Mantid/docs/source/algorithms/QueryRemoteJob-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/QueryRemoteJob-v1.rst
@@ -16,3 +16,5 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/QueryRemoteJob-v2.rst b/Code/Mantid/docs/source/algorithms/QueryRemoteJob-v2.rst
index 2dd887d226d75d1ff170619039d39d8b0d67c20e..8f017f8c4a23713c51f8e6e14541f1ed7c791cd3 100644
--- a/Code/Mantid/docs/source/algorithms/QueryRemoteJob-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/QueryRemoteJob-v2.rst
@@ -31,3 +31,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Quest-v1.rst b/Code/Mantid/docs/source/algorithms/Quest-v1.rst
index 5585a742f437f7ab0044de23f7a5c9a53e500e2f..4b02d31a3eb5a4be7da6760b8b52329f2051516b 100644
--- a/Code/Mantid/docs/source/algorithms/Quest-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Quest-v1.rst
@@ -47,3 +47,5 @@ Usage
 		Quest(SamNumber='26176', ResNumber='26173', ResNormNumber='26176', InputType='Workspace', ResInputType='Workspace', ResNormInputType='Workspace', Instrument='irs', Analyser='graphite002', )
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Qxy-v1.rst b/Code/Mantid/docs/source/algorithms/Qxy-v1.rst
index 345887424fd0fe68914e1eb27b80a37725e4b2c7..7a191f7970c4ba8532c049e839b82c8b1252de83 100644
--- a/Code/Mantid/docs/source/algorithms/Qxy-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Qxy-v1.rst
@@ -16,3 +16,5 @@ for further documentation on how this algorithm works please see
 :ref:`algm-Q1D`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/REFLReprocess-v1.rst b/Code/Mantid/docs/source/algorithms/REFLReprocess-v1.rst
index c493271a23fa3a8f0e088b77dd350a8b699a38dd..3862660e27418e3f17329aa6509e6e5da795d639 100644
--- a/Code/Mantid/docs/source/algorithms/REFLReprocess-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/REFLReprocess-v1.rst
@@ -12,3 +12,5 @@ Description
 Re-reduce REFL data for an entire experiment using saved parameters
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RRFMuon-v1.rst b/Code/Mantid/docs/source/algorithms/RRFMuon-v1.rst
index b51703b9d31b351fe03f807c9de89f4d9a68e67f..dcb22f0ce5bb92062d15907681ec153d5c3aa610 100644
--- a/Code/Mantid/docs/source/algorithms/RRFMuon-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RRFMuon-v1.rst
@@ -58,4 +58,6 @@ Output:
    -0.0
 
 
-.. categories::
\ No newline at end of file
+.. categories::
+
+.. sourcelink::
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/RadiusSum-v1.rst b/Code/Mantid/docs/source/algorithms/RadiusSum-v1.rst
index d02595a641d3d6f48e01f4d69e285350ee96cd45..36b1513aa96dae57be3cfa04bb2f9291e1c69eea 100644
--- a/Code/Mantid/docs/source/algorithms/RadiusSum-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RadiusSum-v1.rst
@@ -49,3 +49,5 @@ Workspaces attached to instruments.
    :width:  800 px
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RawFileInfo-v1.rst b/Code/Mantid/docs/source/algorithms/RawFileInfo-v1.rst
index 460c590b80fc1bbd73afec7f644edc8e8913fc76..c9e2d59a1346035c63a8d51551c13505b1e63d3c 100644
--- a/Code/Mantid/docs/source/algorithms/RawFileInfo-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RawFileInfo-v1.rst
@@ -16,3 +16,5 @@ column for each value of the ``RPB_STRUCT``, i.e. column names such as ``r_dur``
 etc. This is Mantid's version of the ``Get`` routine in `Open Genie <http://www.opengenie.org/>`__.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RayTracerTester-v1.rst b/Code/Mantid/docs/source/algorithms/RayTracerTester-v1.rst
index 3095a8d5eca82d6b9d28a3205d367e00833f3daf..251ee405ed56d618367a25d0f2caaa1036cba587 100644
--- a/Code/Mantid/docs/source/algorithms/RayTracerTester-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RayTracerTester-v1.rst
@@ -27,3 +27,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ReactorSANSResolution-v1.rst b/Code/Mantid/docs/source/algorithms/ReactorSANSResolution-v1.rst
index 117c4822c30105e746055237df584df1083134ed..d8e589d65dbe3125bd813c4fe594f77ad6e2ecd6 100644
--- a/Code/Mantid/docs/source/algorithms/ReactorSANSResolution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ReactorSANSResolution-v1.rst
@@ -18,3 +18,5 @@ This algorithm is generally not called directly. It's called by
 after the calculation of I(Q). It can only be applied to an I(Q) workspace.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ReadGroupsFromFile-v1.rst b/Code/Mantid/docs/source/algorithms/ReadGroupsFromFile-v1.rst
index a469cdabb1613f57fc73bf1f4bf37555d57e78db..122f6f404f7e12001a44d6f3ca7d46dae439f943 100644
--- a/Code/Mantid/docs/source/algorithms/ReadGroupsFromFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ReadGroupsFromFile-v1.rst
@@ -55,3 +55,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RealFFT-v1.rst b/Code/Mantid/docs/source/algorithms/RealFFT-v1.rst
index c9697584d628f5151a5508ff861855d790dc0fd0..bdec085cdab03c8d4a058eddd58cec905415c60c 100644
--- a/Code/Mantid/docs/source/algorithms/RealFFT-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RealFFT-v1.rst
@@ -82,3 +82,5 @@ Output
   False
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Rebin-v1.rst b/Code/Mantid/docs/source/algorithms/Rebin-v1.rst
index 2d1227c386d08a7b79f092523e136e0796ed09ed..d5fbe3119b7f8f18680f47f3fd42e8d721079681 100644
--- a/Code/Mantid/docs/source/algorithms/Rebin-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Rebin-v1.rst
@@ -57,7 +57,7 @@ For Data-Point Workspaces
 If the input workspace contains data points, rather than histograms,
 then Rebin will automatically use the
 :ref:`ConvertToHistogram <algm-ConvertToHistogram>` and
-:ref:`ConvertToHistogram <algm-ConvertToPointData>` algorithms before and after
+:ref:`ConvertToPointData <algm-ConvertToPointData>` algorithms before and after
 the rebinning has taken place.
 
 FullBinsOnly option
@@ -176,21 +176,23 @@ Output:
    # create some event workspace
    ws = CreateSampleWorkspace(WorkspaceType="Event")
 
-   print "What type is the workspace before 1st rebin: " + str(type(ws))
+   print "What type is the workspace before 1st rebin: " + ws.id()
    # rebin from min to max with size bin = 2 preserving event workspace (default behaviour)
    ws = Rebin(ws, 2)
-   print "What type is the workspace after 1st rebin: " + str(type(ws))
+   print "What type is the workspace after 1st rebin: " + ws.id()
    ws = Rebin(ws, 2, PreserveEvents=False)
-   print "What type is the workspace after 2nd rebin: " + str(type(ws))
+   print "What type is the workspace after 2nd rebin: " + ws.id()
    # note you can also check the type of a workspace using: print isinstance(ws, IEventWorkspace)
 
 Output:
 
 .. testoutput:: ExEventRebin
 
-   What type is the workspace before 1st rebin: <class 'mantid.api._api.IEventWorkspace'>
-   What type is the workspace after 1st rebin: <class 'mantid.api._api.IEventWorkspace'>
-   What type is the workspace after 2nd rebin: <class 'mantid.api._api.MatrixWorkspace'>
+   What type is the workspace before 1st rebin: EventWorkspace
+   What type is the workspace after 1st rebin: EventWorkspace
+   What type is the workspace after 2nd rebin: Workspace2D
 
   
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Rebin2D-v1.rst b/Code/Mantid/docs/source/algorithms/Rebin2D-v1.rst
index 9994311bda924b064c62f9ff7a9ee7125324db11..c2053994c28fb5842115ab47660dd9f5d6049ceb 100644
--- a/Code/Mantid/docs/source/algorithms/Rebin2D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Rebin2D-v1.rst
@@ -67,3 +67,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/RebinByPulseTimes-v1.rst b/Code/Mantid/docs/source/algorithms/RebinByPulseTimes-v1.rst
index 5733bce323580ea01307c8ef72a9dbb0d139700c..fc594da0fa24e66f079365cbe19238ba3584271a 100644
--- a/Code/Mantid/docs/source/algorithms/RebinByPulseTimes-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RebinByPulseTimes-v1.rst
@@ -77,3 +77,5 @@ Output:
    X-axis relative end time in seconds:  100.0
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RebinByTimeAtSample-v1.rst b/Code/Mantid/docs/source/algorithms/RebinByTimeAtSample-v1.rst
index 148dcc2c38d788dd743b4e7df85b7954101d933f..166f073353ab8224ace2c198eba9e573f545847c 100644
--- a/Code/Mantid/docs/source/algorithms/RebinByTimeAtSample-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RebinByTimeAtSample-v1.rst
@@ -48,3 +48,5 @@ This algorithm takes the same inputs as :ref:`algm-RebinByPulseTimes`. See that
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/RebinToWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/RebinToWorkspace-v1.rst
index 88b0dd6a33e72b0e227f8fae65933a03a58fdb85..400aa5a5559d1f5c42a355fa468427044249d35b 100644
--- a/Code/Mantid/docs/source/algorithms/RebinToWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RebinToWorkspace-v1.rst
@@ -15,3 +15,5 @@ algorithm simply builds a parameter list that is passed to the
 :ref:`algm-Rebin` algorithm, which actually does the work.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Rebunch-v1.rst b/Code/Mantid/docs/source/algorithms/Rebunch-v1.rst
index aad06e8dbab1d819b7a76a257f41224debb30960..c70e0d269b9b9bfd74d443786b8e4f4a583d22a6 100644
--- a/Code/Mantid/docs/source/algorithms/Rebunch-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Rebunch-v1.rst
@@ -43,3 +43,5 @@ Output
   "Rebunched" workspace values 0.9 10.9 0.9
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RecordPythonScript-v1.rst b/Code/Mantid/docs/source/algorithms/RecordPythonScript-v1.rst
index 551423daa9eb96acd019f2f898cbae89d450e193..8596533d0a7473c2eac99fd308cccde3f0976768 100644
--- a/Code/Mantid/docs/source/algorithms/RecordPythonScript-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RecordPythonScript-v1.rst
@@ -66,7 +66,7 @@ Output:
     :options: +NORMALIZE_WHITESPACE
 
     The result file has the following python recorded
-    CreateSampleWorkspace(OutputWorkspace='ws',WorkspaceType='Event',Function='Multiple Peaks',UserDefinedFunction='',NumBanks='2',BankPixelWidth='10',NumEvents='1000',Random='0',XUnit='TOF',XMin='0',XMax='20000',BinWidth='200',PixelSpacing='0.0080000000000000002',BankDistanceFromSample='5')
+    CreateSampleWorkspace(OutputWorkspace='ws',WorkspaceType='Event',Function='Multiple Peaks',UserDefinedFunction='',NumBanks='2',BankPixelWidth='10',NumEvents='1000',Random='0',XUnit='TOF',XMin='0',XMax='20000',BinWidth='200',PixelSpacing='0.0080000000000000002',BankDistanceFromSample='5',SourceDistanceFromSample='10')
     CreateFlatEventWorkspace(InputWorkspace='ws',RangeStart='15000',RangeEnd='18000',OutputWorkspace='wsOut')
     RebinToWorkspace(WorkspaceToRebin='wsOut',WorkspaceToMatch='ws',OutputWorkspace='wsOut',PreserveEvents='1')
 
@@ -74,3 +74,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RefLReduction-v1.rst b/Code/Mantid/docs/source/algorithms/RefLReduction-v1.rst
index c9b6fb88e1daebfd1f5ae20069f06bbdf243fa57..9a878fdd9b1fe048f9bf82dc3652f0f5d57f34a2 100644
--- a/Code/Mantid/docs/source/algorithms/RefLReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RefLReduction-v1.rst
@@ -12,3 +12,5 @@ Description
 Liquids Reflectometer (REFL) reduction
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RefReduction-v1.rst b/Code/Mantid/docs/source/algorithms/RefReduction-v1.rst
index f336fc3d7eb35617b85fc41bb8de1695795c0ac2..80dc19fc12e561f50c24dc3167dca157c1721745 100644
--- a/Code/Mantid/docs/source/algorithms/RefReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RefReduction-v1.rst
@@ -14,3 +14,5 @@ specular and off-specular reflectivity for both REFM and REFL
 instruments.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RefRoi-v1.rst b/Code/Mantid/docs/source/algorithms/RefRoi-v1.rst
index c4554e52ebb2f888fcd67c262dfcbdd19d22bef4..857c87654c0c654c7be88e6ab2e5f30a16608888 100644
--- a/Code/Mantid/docs/source/algorithms/RefRoi-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RefRoi-v1.rst
@@ -12,3 +12,5 @@ Description
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RefinePowderDiffProfileSeq-v1.rst b/Code/Mantid/docs/source/algorithms/RefinePowderDiffProfileSeq-v1.rst
index c9f8ef4025656d6ae2db026d3965776108bbb2ff..187da08e14329ba1d184fdcf33b9b60cdda28cd7 100644
--- a/Code/Mantid/docs/source/algorithms/RefinePowderDiffProfileSeq-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RefinePowderDiffProfileSeq-v1.rst
@@ -74,3 +74,5 @@ This is just a brief description for how to use this algorithm.
 | ``7. ``\ *``Save``*\ ``: save current work and history to a Nexus file.``
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RefinePowderInstrumentParameters-v3.rst b/Code/Mantid/docs/source/algorithms/RefinePowderInstrumentParameters-v3.rst
index 799d44ba01e6787c5c5dd5e187944580fbd7584d..dabb9a3335045d2417880a298ba8780e801e4bce 100644
--- a/Code/Mantid/docs/source/algorithms/RefinePowderInstrumentParameters-v3.rst
+++ b/Code/Mantid/docs/source/algorithms/RefinePowderInstrumentParameters-v3.rst
@@ -182,3 +182,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ReflectometryReductionOne-v1.rst b/Code/Mantid/docs/source/algorithms/ReflectometryReductionOne-v1.rst
index 627e6cffd4167de2f511596c6e6eff805a1be451..9567fdead8c4f8512abb137f629215a1994ae016 100644
--- a/Code/Mantid/docs/source/algorithms/ReflectometryReductionOne-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ReflectometryReductionOne-v1.rst
@@ -17,10 +17,9 @@ on an input theta value.
 Historically the work performed by this algorithm was known as the Quick
 script.
 
-Workflow
-########
-
-.. diagram:: ReflectometryReductionOne-v1_wkflw.dot
+If :literal:`MonitorBackgroundWavelengthMin` and
+:literal:`MonitorBackgroundWavelengthMax` are both set to :literal:`0`, then
+background normalization will not be performed on the monitors.
 
 Analysis Modes
 ##############
@@ -51,6 +50,27 @@ parameters associated with the transmission runs will also be required.
 If a single Transmission run is provided, then no stitching parameters
 will be needed.
 
+
+Polynomial Correction
+#####################
+
+If no Transmission runs are provided, then polynomial correction can be
+performed instead. Polynomial correction is enabled by setting the
+:literal:`CorrectionAlgorithm` property. If set to
+:literal:`PolynomialCorrection` it runs the :ref:`algm-PolynomialCorrection`
+algorithm, with this algorithms :literal:`Polynomial` property used as its
+:literal:`Coefficients` property.
+
+If the :literal:`CorrectionAlgorithm` property is set to
+:literal:`ExponentialCorrection`, then the :Ref:`algm-ExponentialCorrection`
+algorithm is used, with C0 and C1 taken from the :literal:`C0` and :literal:`C1`
+properties.
+
+Workflow
+########
+
+.. diagram:: ReflectometryReductionOne-v1_wkflw.dot
+
 Usage
 -----
 
@@ -65,8 +85,8 @@ Usage
    MonitorBackgroundWavelengthMin=15.0, MonitorBackgroundWavelengthMax=17.0, 
    MonitorIntegrationWavelengthMin=4.0, MonitorIntegrationWavelengthMax=10.0 )
 
-   print "The first four IvsLam Y values are: [", str(IvsLam.readY(0)[0]),",", str(IvsLam.readY(0)[1]),",", str(IvsLam.readY(0)[2]),",", str(IvsLam.readY(0)[3]),"]"
-   print "The first four IvsQ Y values are: [", str(IvsQ.readY(0)[0]),",", str(IvsQ.readY(0)[1]),",", str(IvsQ.readY(0)[2]),",", str(IvsQ.readY(0)[3]),"]"
+   print "The first four IvsLam Y values are: [ %.4e, %.4e, %.4e, %.4e ]" % (IvsLam.readY(0)[0], IvsLam.readY(0)[1], IvsLam.readY(0)[2], IvsLam.readY(0)[3])
+   print "The first four IvsQ Y values are: [ %.4e, %.4e, %.4e, %.4e ]" % (IvsQ.readY(0)[0], IvsQ.readY(0)[1], IvsQ.readY(0)[2], IvsQ.readY(0)[3])
    print "Theta out is the same as theta in:",thetaOut
 
 
@@ -74,9 +94,11 @@ Output:
 
 .. testoutput:: ExReflRedOneSimple
 
-   The first four IvsLam Y values are: [ 0.0 , 0.0 , 0.0 , 1.19084981351e-06 ]
-   The first four IvsQ Y values are: [ 3.26638386884e-05 , 5.41802219385e-05 , 4.89364938612e-05 , 5.50890537024e-05 ]
+   The first four IvsLam Y values are: [ 0.0000e+00, 0.0000e+00, 4.9588e-07, 1.2769e-06 ]
+   The first four IvsQ Y values are: [ 2.1435e-05, 5.0384e-05, 5.2332e-05, 5.2042e-05 ]
    Theta out is the same as theta in: 0.7
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ReflectometryReductionOneAuto-v1.rst b/Code/Mantid/docs/source/algorithms/ReflectometryReductionOneAuto-v1.rst
index 809be7a932871e8d3a8f8ca73f0c76c1037d5b92..0cce65d4d5d91397826b2e8058ac0d1287e328ac 100644
--- a/Code/Mantid/docs/source/algorithms/ReflectometryReductionOneAuto-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ReflectometryReductionOneAuto-v1.rst
@@ -36,6 +36,25 @@ The following diagram shows how the :ref:`algm-PolarizationCorrection` algorithm
 
 .. diagram:: ReflectometryReductionOneAuto-v1-PolarizationCorrection_wkflw.dot
 
+Polynomial Correction
+#####################
+
+If no Transmission runs are provided, then polynomial correction can be
+performed instead. Polynomial correction is enabled by setting the
+:literal:`CorrectionAlgorithm` property.
+
+If set to :literal:`AutoDetect`, it looks at the instrument
+parameters for the :literal:`correction` parameter. If it is set to
+:literal:`polynomial`, then polynomial correction is performed using the
+:ref:`algm-PolynomialCorrection` algorithm, with the polynomial string taken
+from the instrument's :literal:`polynomial` parameter. If the
+:literal:`correction` parameter is set to :literal:`exponential` instead, then
+the :Ref:`algm-ExponentialCorrection` algorithm is used, with C0 and C1 taken
+from the instrument parameters, :literal:`C0` and :literal:`C1`.
+
+These can be specified manually by setting the :literal:`CorrectionAlgorithm`,
+:literal:`Polynomial`, :literal:`C0`, and :literal:`C1` properties accordingly.
+
 Usage
 -----
 
@@ -47,16 +66,16 @@ Usage
     # Basic reduction with no transmission run
     IvsQ, IvsLam, thetaOut = ReflectometryReductionOneAuto(InputWorkspace=run, ThetaIn=0.7)
 
-    print "The first four IvsLam Y values are: [", str(IvsLam.readY(0)[0]),",", str(IvsLam.readY(0)[1]),",", str(IvsLam.readY(0)[2]),",", str(IvsLam.readY(0)[3]),"]"
-    print "The first four IvsQ Y values are: [", str(IvsQ.readY(0)[0]),",", str(IvsQ.readY(0)[1]),",", str(IvsQ.readY(0)[2]),",", str(IvsQ.readY(0)[3]),"]"
+    print "The first four IvsLam Y values are: [ %.4e, %.4e, %.4e, %.4e ]" % (IvsLam.readY(0)[0], IvsLam.readY(0)[1], IvsLam.readY(0)[2], IvsLam.readY(0)[3])
+    print "The first four IvsQ Y values are: [ %.4e, %.4e, %.4e, %.4e ]" % (IvsQ.readY(0)[0], IvsQ.readY(0)[1], IvsQ.readY(0)[2], IvsQ.readY(0)[3])
     print "Theta out is the same as theta in:",thetaOut
 
 Output:
 
 .. testoutput:: ExReflRedOneAutoSimple
 
-    The first four IvsLam Y values are: [ 0.0 , 0.0 , 0.0 , 1.19084981351e-06 ]
-    The first four IvsQ Y values are: [ 3.26638386884e-05 , 5.41802219385e-05 , 4.89364938612e-05 , 5.50890537024e-05 ]
+    The first four IvsLam Y values are: [ 0.0000e+00, 0.0000e+00, 4.9588e-07, 1.2769e-06 ]
+    The first four IvsQ Y values are: [ 2.1435e-05, 5.0384e-05, 5.2332e-05, 5.2042e-05 ]
     Theta out is the same as theta in: 0.7
 
 **Example - Reduce a Run with a transmission run**
@@ -68,16 +87,16 @@ Output:
     # Basic reduction with a transmission run
     IvsQ, IvsLam, thetaOut = ReflectometryReductionOneAuto(InputWorkspace=run, FirstTransmissionRun=trans, ThetaIn=0.7)
 
-    print "The first four IvsLam Y values are: [", str(IvsLam.readY(0)[0]),",", str(IvsLam.readY(0)[1]),",", str(IvsLam.readY(0)[2]),",", str(IvsLam.readY(0)[3]),"]"
-    print "The first four IvsQ Y values are: [", str(IvsQ.readY(0)[0]),",", str(IvsQ.readY(0)[1]),",", str(IvsQ.readY(0)[2]),",", str(IvsQ.readY(0)[3]),"]"
+    print "The first four IvsLam Y values are: [ %.4e, %.4e, %.4e, %.4e ]" % (IvsLam.readY(0)[0], IvsLam.readY(0)[1], IvsLam.readY(0)[2], IvsLam.readY(0)[3])
+    print "The first four IvsQ Y values are: [ %.4e, %.4e, %.4e, %.4e ]" % (IvsQ.readY(0)[0], IvsQ.readY(0)[1], IvsQ.readY(0)[2], IvsQ.readY(0)[3])
     print "Theta out is the same as theta in:",thetaOut
 
 Output:
 
 .. testoutput:: ExReflRedOneAutoTrans
 
-    The first four IvsLam Y values are: [ 0.0 , 0.0 , 0.0 , 1.00380795752e-05 ]
-    The first four IvsQ Y values are: [ 0.801217183288 , 0.93447842459 , 0.541409172289 , 0.920895160905 ]
+    The first four IvsLam Y values are: [ 0.0000e+00, 0.0000e+00, 4.8592e-06, 1.0580e-05 ]
+    The first four IvsQ Y values are: [ 9.6396e-01, 8.8177e-01, 7.1679e-01, 6.2066e-01 ]
     Theta out is the same as theta in: 0.7
 
 **Example - Reduce a Run overloading default parameters**
@@ -88,16 +107,48 @@ Output:
     # Reduction overriding the default values for MonitorBackgroundWavelengthMin and MonitorBackgroundWavelengthMax which would otherwise be retirieved from the workspace
     IvsQ, IvsLam, thetaOut = ReflectometryReductionOneAuto(InputWorkspace=run, ThetaIn=0.7, MonitorBackgroundWavelengthMin=0.0, MonitorBackgroundWavelengthMax=1.0)
 
-    print "The first four IvsLam Y values are: [", str(IvsLam.readY(0)[0]),",", str(IvsLam.readY(0)[1]),",", str(IvsLam.readY(0)[2]),",", str(IvsLam.readY(0)[3]),"]"
-    print "The first four IvsQ Y values are: [", str(IvsQ.readY(0)[0]),",", str(IvsQ.readY(0)[1]),",", str(IvsQ.readY(0)[2]),",", str(IvsQ.readY(0)[3]),"]"
+    print "The first four IvsLam Y values are: [ %.4e, %.4e, %.4e, %.4e ]" % (IvsLam.readY(0)[0], IvsLam.readY(0)[1], IvsLam.readY(0)[2], IvsLam.readY(0)[3])
+    print "The first four IvsQ Y values are: [ %.4e, %.4e, %.4e, %.4e ]" % (IvsQ.readY(0)[0], IvsQ.readY(0)[1], IvsQ.readY(0)[2], IvsQ.readY(0)[3])
     print "Theta out is the same as theta in:",thetaOut
 
 Output:
 
 .. testoutput:: ExReflRedOneAutoOverload
 
-    The first four IvsLam Y values are: [ 0.0 , 0.0 , 0.0 , 1.17970288209e-06 ]
-    The first four IvsQ Y values are: [ 3.2358089327e-05 , 5.36730688015e-05 , 4.84784245605e-05 , 5.45733934596e-05 ]
+    The first four IvsLam Y values are: [ 0.0000e+00, 0.0000e+00, 4.9108e-07, 1.2645e-06 ]
+    The first four IvsQ Y values are: [ 2.1227e-05, 4.9897e-05, 5.1825e-05, 5.1538e-05 ]
     Theta out is the same as theta in: 0.7
 
+**Example - Polynomial correction**
+
+.. testcode:: ExReflRedOneAutoPoly
+
+    run = Load(Filename='INTER00013460.nxs')
+    # Set up some paramters, allowing the algorithm to automatically detect the correction to use
+    SetInstrumentParameter(run, "correction", Value="polynomial")
+    SetInstrumentParameter(run, "polynomial", Value="0,0.5,1,2,3")
+
+    IvsQ, IvsLam, thetaOut = ReflectometryReductionOneAuto(InputWorkspace=run, ThetaIn=0.7)
+
+    def findByName(histories, name):
+        return filter(lambda x: x.name() == name, histories)[0]
+
+    # Find the PolynomialCorrection entry in the workspace's history
+    algHist = IvsLam.getHistory()
+    refRedOneAutoHist = findByName(algHist.getAlgorithmHistories(), "ReflectometryReductionOneAuto")
+    refRedOneHist = findByName(refRedOneAutoHist.getChildHistories(), "ReflectometryReductionOne")
+    polyCorHist = findByName(refRedOneHist.getChildHistories(), "PolynomialCorrection")
+
+    coefProp = findByName(polyCorHist.getProperties(), "Coefficients")
+
+    print "Coefficients: '" + coefProp.value() + "'"
+
+Output:
+
+.. testoutput:: ExReflRedOneAutoPoly
+
+    Coefficients: '0,0.5,1,2,3'
+
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Regroup-v1.rst b/Code/Mantid/docs/source/algorithms/Regroup-v1.rst
index 7b2e1d95a8110a1051c0269595329172daf44483..4bfedfb24c0c9c48a6950a67af7270aca0d80400 100644
--- a/Code/Mantid/docs/source/algorithms/Regroup-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Regroup-v1.rst
@@ -65,3 +65,5 @@ Output
   True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RemoveBackground-v1.rst b/Code/Mantid/docs/source/algorithms/RemoveBackground-v1.rst
index d987388f2e52e1f1217d86d18a9e0acb14e0d004..674a4de1e81d322d47dc5ccde0af5672e858a847 100644
--- a/Code/Mantid/docs/source/algorithms/RemoveBackground-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RemoveBackground-v1.rst
@@ -232,3 +232,5 @@ Usage
 
   
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RemoveBins-v1.rst b/Code/Mantid/docs/source/algorithms/RemoveBins-v1.rst
index e0113ac261a4096ec505eea5ec8ab4df3ff24f70..679051664f59c26771fd076b68a81e7fde51e51d 100644
--- a/Code/Mantid/docs/source/algorithms/RemoveBins-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RemoveBins-v1.rst
@@ -80,3 +80,5 @@ Output:
    After RemoveBins [ 10.3    0.     0.     0.15   0.3 ]
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RemoveExpDecay-v1.rst b/Code/Mantid/docs/source/algorithms/RemoveExpDecay-v1.rst
index 2fcc4280d7a46ce8f23a64b30a0dd65b75ffbc1b..7307a59b69f6df06cd07ce3e4b48d5faa0791848 100644
--- a/Code/Mantid/docs/source/algorithms/RemoveExpDecay-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RemoveExpDecay-v1.rst
@@ -41,3 +41,5 @@ Output:
    Exp. decay removed: [-0.24271091  0.79071878 -0.05901962 -0.70332224 -0.76615428]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RemoveLogs-v1.rst b/Code/Mantid/docs/source/algorithms/RemoveLogs-v1.rst
index 8676c075b3875302af770830f0dd37525c351ede..b2b18296f0c306b6ddf1eb72e3511a255b23d7e9 100644
--- a/Code/Mantid/docs/source/algorithms/RemoveLogs-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RemoveLogs-v1.rst
@@ -40,3 +40,5 @@ Output:
    Logs left (should be empty):  []
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RemoveLowResTOF-v1.rst b/Code/Mantid/docs/source/algorithms/RemoveLowResTOF-v1.rst
index 30dcd3e046d1af987b347de8a1338066e0dbbba4..9b4d0bdaafe5b0dccdb55dd878b53340d74b6f73 100644
--- a/Code/Mantid/docs/source/algorithms/RemoveLowResTOF-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RemoveLowResTOF-v1.rst
@@ -30,3 +30,5 @@ it is caculated as
 :math:`tmin = sqrtdmin * sqrtdmin / dspmap`
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RemoveMaskedSpectra-v1.rst b/Code/Mantid/docs/source/algorithms/RemoveMaskedSpectra-v1.rst
index c5047c684fb86aee6178895c370496f47716ad6a..48f66e7e04ddd349be150740cce83bc1c9f7346c 100644
--- a/Code/Mantid/docs/source/algorithms/RemoveMaskedSpectra-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RemoveMaskedSpectra-v1.rst
@@ -41,3 +41,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/RemovePromptPulse-v1.rst b/Code/Mantid/docs/source/algorithms/RemovePromptPulse-v1.rst
index 340092e7c8171f7be59124d25db0d6e70eb840c3..2f4614002a3302c18f37770926700ac8d544f28f 100644
--- a/Code/Mantid/docs/source/algorithms/RemovePromptPulse-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RemovePromptPulse-v1.rst
@@ -56,3 +56,5 @@ The spectra should look like
    :alt: RemovePromptPulse.png
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RemoveWorkspaceHistory-v1.rst b/Code/Mantid/docs/source/algorithms/RemoveWorkspaceHistory-v1.rst
index 1e78290b46e098207a39bd4d817150368e4d6e23..70ca0d27c83c8f0ac6859c81288492a6dd84cad6 100644
--- a/Code/Mantid/docs/source/algorithms/RemoveWorkspaceHistory-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RemoveWorkspaceHistory-v1.rst
@@ -59,5 +59,7 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 
 
diff --git a/Code/Mantid/docs/source/algorithms/RenameLog-v1.rst b/Code/Mantid/docs/source/algorithms/RenameLog-v1.rst
index 7b992e673217c43ec8fc9e2be753174deb13006f..192fb28465e323512696c48e01b5cf80017a861b 100644
--- a/Code/Mantid/docs/source/algorithms/RenameLog-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RenameLog-v1.rst
@@ -41,3 +41,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RenameWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/RenameWorkspace-v1.rst
index 3b0f62aee8d0512216c5730c20546e2bc491be09..a7cea8c6dbeae874dbf18e1f88916a40aeb6b155 100644
--- a/Code/Mantid/docs/source/algorithms/RenameWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RenameWorkspace-v1.rst
@@ -58,3 +58,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RenameWorkspaces-v1.rst b/Code/Mantid/docs/source/algorithms/RenameWorkspaces-v1.rst
index 0f206ba019ebf9ced3bb250b37582177d4dd31c3..99c0c80d2f72b26ab78c00b19d452d9d22669d20 100644
--- a/Code/Mantid/docs/source/algorithms/RenameWorkspaces-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RenameWorkspaces-v1.rst
@@ -83,3 +83,5 @@ Output:
    Workspaces in the ADS _after_ renaming: ['new_ws1_name', 'new_ws2_name', 'new_ws3_name']
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ReplaceSpecialValues-v1.rst b/Code/Mantid/docs/source/algorithms/ReplaceSpecialValues-v1.rst
index 0ab8e8d584ddf63f9bdc45ec7ba86daf10e0a42c..58b88c9812bb5ea7a8bb3416cf99bd65e18a33bc 100644
--- a/Code/Mantid/docs/source/algorithms/ReplaceSpecialValues-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ReplaceSpecialValues-v1.rst
@@ -59,3 +59,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ResNorm-v1.rst b/Code/Mantid/docs/source/algorithms/ResNorm-v1.rst
index e43e7b7820d6f2a0ab8cf706c8136f9a53fafbcd..c89a2e04b82181c0b5f78dc61ad73dc06d1bea18 100644
--- a/Code/Mantid/docs/source/algorithms/ResNorm-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ResNorm-v1.rst
@@ -31,7 +31,7 @@ Usage
 			ws = CropWorkspace(ws, StartWorkspaceIndex=0, EndWorkspaceIndex=9)
 			ws = ScaleX(ws, -5, "Add")
 			ws = ScaleX(ws, 0.1, "Multiply")
-			
+
 			#load instrument and instrument parameters
 			LoadInstrument(ws, InstrumentName='IRIS')
 			path = os.path.join(config['instrumentDefinition.directory'], 'IRIS_graphite_002_Parameters.xml')
@@ -43,7 +43,18 @@ Usage
 		ws = createSampleWorkspace("irs26173_graphite002_red", random=True)
 		res = createSampleWorkspace("irs26173_graphite002_res")
 
-		ResNorm(VanNumber='26176', ResNumber='26173', InputType='Workspace', ResInputType='Workspace', Instrument='irs', Analyser='graphite002', Plot='None')
+		ResNorm(VanNumber='26176',
+            ResNumber='26173',
+            InputType='Workspace',
+            ResInputType='Workspace',
+            Instrument='irs',
+            Analyser='graphite002',
+            Plot='None',
+            Version=1)
 
 
 .. categories::
+
+.. sourcelink::
+  :cpp: None
+  :h: None
diff --git a/Code/Mantid/docs/source/algorithms/ResNorm-v2.rst b/Code/Mantid/docs/source/algorithms/ResNorm-v2.rst
new file mode 100644
index 0000000000000000000000000000000000000000..443ad1fa18e545acf06f2b1f56d10f843f142390
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/ResNorm-v2.rst
@@ -0,0 +1,75 @@
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+This algorithm fits the variation of the width of the resolution file to give a
+stretch factor and fits the peak intensities by normalising the peak area to
+unity and performing a linear fit with the vanadium.
+
+The outpout workspace is a WorkspaceGroup containing two MatrixWorkspaces named
+*_Intensity* and *_Stretch* with the fitted parameters.
+
+Workflow
+--------
+
+.. diagram:: ResNorm-v2_wkflw.dot
+
+Usage
+-----
+
+**Example - a basic example using ResNorm.**
+
+.. testcode:: ExIRISResNorm
+
+    def createSampleWorkspace(name, num_spec=10, random=False):
+      """
+      Creates a sample workspace with a single lorentzian that looks like IRIS data
+      """
+      import os
+
+      # Create sample data
+      function = "name=Lorentzian,Amplitude=8,PeakCentre=5,FWHM=0.7"
+      ws = CreateSampleWorkspace("Histogram",
+                                 Function="User Defined",
+                                 UserDefinedFunction=function,
+                                 XUnit="DeltaE",
+                                 Random=random,
+                                 XMin=0,
+                                 XMax=10,
+                                 BinWidth=0.01)
+
+      # Reduce number of spectra
+      ws = CropWorkspace(ws,
+                         StartWorkspaceIndex=0,
+                         EndWorkspaceIndex=num_spec-1)
+
+      ws = ScaleX(ws, -5, "Add")
+      ws = ScaleX(ws, 0.1, "Multiply")
+
+      # Load instrument and instrument parameters
+      LoadInstrument(ws, InstrumentName='IRIS')
+      path = os.path.join(config['instrumentDefinition.directory'], 'IRIS_graphite_002_Parameters.xml')
+      LoadParameterFile(ws, Filename=path)
+      ws = RenameWorkspace(ws, OutputWorkspace=name)
+
+      return ws
+
+
+    van = createSampleWorkspace("irs26173_graphite002_red", random=True)
+    res = createSampleWorkspace("irs26173_graphite002_res", num_spec=1)
+
+    res_norm = ResNorm(ResolutionWorkspace=res,
+                       VanadiumWorkspace=van,
+                       Version=2)
+
+
+.. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ResampleX-v1.rst b/Code/Mantid/docs/source/algorithms/ResampleX-v1.rst
index 469e52228cf65018e06815df17383cece7f8bd55..96b4bbf0c952550b6afb780c66ad182ae7e24193 100644
--- a/Code/Mantid/docs/source/algorithms/ResampleX-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ResampleX-v1.rst
@@ -19,3 +19,5 @@ The ``LogBinning`` option calculates constant delta-X/X binning and rebins
 using that, otherwise the bins are constant width.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ResetNegatives-v1.rst b/Code/Mantid/docs/source/algorithms/ResetNegatives-v1.rst
index b886ba04e0a95f6a53ca43b3230478c71c442d3e..df5ea7243cd50554d91eacc3ec1722fc23d9086b 100644
--- a/Code/Mantid/docs/source/algorithms/ResetNegatives-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ResetNegatives-v1.rst
@@ -17,3 +17,5 @@ values that are less than zero will be set to ``ResetValue`` which has a
 default of 0.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ResizeRectangularDetector-v1.rst b/Code/Mantid/docs/source/algorithms/ResizeRectangularDetector-v1.rst
index 811b74db817b12046ef0a42400a40d9cc896e165..a39b39db74cedc56f3483989c85de87863920d62 100644
--- a/Code/Mantid/docs/source/algorithms/ResizeRectangularDetector-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ResizeRectangularDetector-v1.rst
@@ -61,3 +61,5 @@ Output:
 	bank 2 was not scaled and remains 0.08 by 0.08
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RetrieveRunInfo-v1.rst b/Code/Mantid/docs/source/algorithms/RetrieveRunInfo-v1.rst
index 5192d6b404d96f15cb4b5ee2a32c6f7c67ecea8f..37f8ce6c281cd1edeb502ac143671256c6b9733c 100644
--- a/Code/Mantid/docs/source/algorithms/RetrieveRunInfo-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RetrieveRunInfo-v1.rst
@@ -74,3 +74,5 @@ Output:
    The title of the second run is "Vanadium cylinder standard   PG002."
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RingProfile-v1.rst b/Code/Mantid/docs/source/algorithms/RingProfile-v1.rst
index c8d7a3c22c9f948e20a2406e51c98d82e2a247a9..9b2b7b0a3434637c628abf553ed6f01f99c2ad22 100644
--- a/Code/Mantid/docs/source/algorithms/RingProfile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RingProfile-v1.rst
@@ -95,3 +95,5 @@ Output:
     The RingProfile has been calculated with 200 bins
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RotateInstrumentComponent-v1.rst b/Code/Mantid/docs/source/algorithms/RotateInstrumentComponent-v1.rst
index d121be4cce051400fd82c96626f69d2fb9c0aa87..fba6d3313def1942d53612094a202677c14f06c3 100644
--- a/Code/Mantid/docs/source/algorithms/RotateInstrumentComponent-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RotateInstrumentComponent-v1.rst
@@ -111,3 +111,5 @@ Output
   The non-zero difference -0.0464531276188 is due to detector 33
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/RunPythonScript-v1.rst b/Code/Mantid/docs/source/algorithms/RunPythonScript-v1.rst
index 821f03a33e9cdd9a835484965dacd05a350ce05d..c636b7f4e17e1e7695f911c72cc31d8f3566a4c7 100644
--- a/Code/Mantid/docs/source/algorithms/RunPythonScript-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/RunPythonScript-v1.rst
@@ -46,3 +46,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSAbsoluteScale-v1.rst b/Code/Mantid/docs/source/algorithms/SANSAbsoluteScale-v1.rst
index 52ee866347c96c751350209ce8093e4b6caf9ec4..8f639082cdb5709eca542e668a00f1cd62b796d0 100644
--- a/Code/Mantid/docs/source/algorithms/SANSAbsoluteScale-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSAbsoluteScale-v1.rst
@@ -33,3 +33,5 @@ This algorithm is rarely called directly. It is called by
 :ref:`HFIRSANSReduction <algm-HFIRSANSReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSAzimuthalAverage1D-v1.rst b/Code/Mantid/docs/source/algorithms/SANSAzimuthalAverage1D-v1.rst
index 45ab6a48183323ac01873adf9a0065d359045606..351c5c2bc179e2886681cfcf654adff935736fcd 100644
--- a/Code/Mantid/docs/source/algorithms/SANSAzimuthalAverage1D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSAzimuthalAverage1D-v1.rst
@@ -27,3 +27,5 @@ If *ComputeResolution* was set to True, the
 :ref:`ReactorSANSResolution <algm-ReactorSANSResolution>` is called.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSBeamFinder-v1.rst b/Code/Mantid/docs/source/algorithms/SANSBeamFinder-v1.rst
index 49dcb5644840dbf1a4f2af901937eb056de584a3..336706fff43f7304aa711b76bc32d3dd995d283f 100644
--- a/Code/Mantid/docs/source/algorithms/SANSBeamFinder-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSBeamFinder-v1.rst
@@ -19,3 +19,5 @@ will store previously calculated results so that the center doesn't have
 to be recalculated every time we load a new file.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSBeamFluxCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/SANSBeamFluxCorrection-v1.rst
index 92c5a8b7364d9105f26e86d7d6f010f3437acc3c..b9e82d217bb849341eeced578d06270450e7bd9b 100644
--- a/Code/Mantid/docs/source/algorithms/SANSBeamFluxCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSBeamFluxCorrection-v1.rst
@@ -47,3 +47,5 @@ Output:
    The actual value of the first bin is 4.13921144273e-09.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSBeamSpreaderTransmission-v1.rst b/Code/Mantid/docs/source/algorithms/SANSBeamSpreaderTransmission-v1.rst
index f65700fc3c37d1cff6c12ded4535278c37ef66df..f5ec4f3ea21189d46b90c06e1ee0f065f4df4be9 100644
--- a/Code/Mantid/docs/source/algorithms/SANSBeamSpreaderTransmission-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSBeamSpreaderTransmission-v1.rst
@@ -36,3 +36,5 @@ This algorithm is rarely called directly. It is called by
 :ref:`HFIRSANSReduction <algm-HFIRSANSReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSDirectBeamTransmission-v1.rst b/Code/Mantid/docs/source/algorithms/SANSDirectBeamTransmission-v1.rst
index 1f26e8247d6d33dcae58e952424904920cda9539..9e860bf4b112570a6b21757b9d2c1f36081f67c5 100644
--- a/Code/Mantid/docs/source/algorithms/SANSDirectBeamTransmission-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSDirectBeamTransmission-v1.rst
@@ -39,3 +39,5 @@ This algorithm is rarely called directly. It is called by
 :ref:`HFIRSANSReduction <algm-HFIRSANSReduction>` or :ref:`EQSANSDirectBeamTransmission <algm-EQSANSDirectBeamTransmission>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSMask-v1.rst b/Code/Mantid/docs/source/algorithms/SANSMask-v1.rst
index 0ad4a67c9d4a18f79015247a2026a160c44e9868..54678ab58066c2228921c440bd8b6ec2d31ffcbf 100644
--- a/Code/Mantid/docs/source/algorithms/SANSMask-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSMask-v1.rst
@@ -17,3 +17,5 @@ This algorithm is rarely called directly. It is called by
 :ref:`SANSReduction <algm-SANSReduction>` or :ref:`HFIRSANSReduction <algm-HFIRSANSReduction>`.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSReduction-v1.rst b/Code/Mantid/docs/source/algorithms/SANSReduction-v1.rst
index 8d06946810ed1b0139fcf2811da8c47c6a67fd61..572972a1d9729257766f2ca59ba113f9ad1e4bf8 100644
--- a/Code/Mantid/docs/source/algorithms/SANSReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSReduction-v1.rst
@@ -55,3 +55,5 @@ The workflow proceeds as follows:
 .. |SANSReduction.png| image:: /images/SANSReduction.png
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSSensitivityCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/SANSSensitivityCorrection-v1.rst
index e65f0a6f3882b3ef15e7b0dac231b0192314d7de..0281a60b75eccb30f66a8a62a78a88b810acd21d 100644
--- a/Code/Mantid/docs/source/algorithms/SANSSensitivityCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSSensitivityCorrection-v1.rst
@@ -61,3 +61,5 @@ workflow algorithm to create a sensitivity workspace, which can then be saved an
 for EQSANS reduction as a pre-calculated sensitivity file.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSSolidAngleCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/SANSSolidAngleCorrection-v1.rst
index 038e27ab26d4d9d7c4e404ccefd6e6088632d2b3..0e2fdebc20797bc4d0f6192cb6f616a7001ee39a 100644
--- a/Code/Mantid/docs/source/algorithms/SANSSolidAngleCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSSolidAngleCorrection-v1.rst
@@ -25,3 +25,5 @@ the plane defined by the beam (Z) axis and the Y-axis.
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSSubtract-v1.rst b/Code/Mantid/docs/source/algorithms/SANSSubtract-v1.rst
index 2a5cd8e13d34d91f33a3a56cc09052e120972bb9..b74a65c7042ff7726a6905826e3951a40b242d38 100644
--- a/Code/Mantid/docs/source/algorithms/SANSSubtract-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSSubtract-v1.rst
@@ -28,3 +28,5 @@ written to disk. Two files will be produced, a 4 column ASCII file and a
 CanSAS XML file.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SANSWideAngleCorrection-v1.rst b/Code/Mantid/docs/source/algorithms/SANSWideAngleCorrection-v1.rst
index 12a5b938f6ff0b67f46a542dd957b74702a28d9c..bb9c4533e3b4763287fc52ebfaee01737841d10d 100644
--- a/Code/Mantid/docs/source/algorithms/SANSWideAngleCorrection-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SANSWideAngleCorrection-v1.rst
@@ -126,8 +126,8 @@ normalized by the transmission counters.
 References
 ----------
 
-Annie Brulet et al. - Improvement of data treatment in SANS - J. Appl.
-Cryst. (2007). 40
+Annie Brulet et al. - Improvement of data treatment in small-angle neutron scattering - `J. Appl.
+Cryst. (2007). 40 <http://dx.doi.org/10.1107/S0021889806051442>`_
 
 Ghosh, Egelhaaf & Rennie - Computing guide for Small Angle Scattering
 Experiments
@@ -158,3 +158,5 @@ Output:
    1.000000 was corrected to 1.004997.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SCARFTomoReconstruction-v1.rst b/Code/Mantid/docs/source/algorithms/SCARFTomoReconstruction-v1.rst
index fff3b4e64b3acd44b3d9c9ee833fa668c7e8e7ad..5dc8c313a622123a276aefbeac44d2e4d995241e 100644
--- a/Code/Mantid/docs/source/algorithms/SCARFTomoReconstruction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SCARFTomoReconstruction-v1.rst
@@ -85,3 +85,5 @@ Output:
    ValueError, as expected, as it was not previously logged on
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SCDCalibratePanels-v1.rst b/Code/Mantid/docs/source/algorithms/SCDCalibratePanels-v1.rst
index 6e4da1575dcae1e432a8e12aa1a82911a08cdfc4..c0dd120839c5de857e8fe9d71e1f3749dcb2e0a8 100644
--- a/Code/Mantid/docs/source/algorithms/SCDCalibratePanels-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SCDCalibratePanels-v1.rst
@@ -131,3 +131,5 @@ Output:
     matches
     	
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SNSPowderReduction-v1.rst b/Code/Mantid/docs/source/algorithms/SNSPowderReduction-v1.rst
index 503a6bd11aa0a0e377b94566685919f7a5769fdf..ba54a060eff1bc053156cd8088c3e5b0c80e176f 100644
--- a/Code/Mantid/docs/source/algorithms/SNSPowderReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SNSPowderReduction-v1.rst
@@ -30,3 +30,5 @@ This is a worksflow algorithm used to process and the results of scattering expe
 Its usage sample can be found in `Mantid System tests repository <https://github.com/mantidproject/systemtests/blob/master/SystemTests/AnalysisTests/SNSPowderRedux.py>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SassenaFFT-v1.rst b/Code/Mantid/docs/source/algorithms/SassenaFFT-v1.rst
index 4c7a47b8b50ef80229ac7d19bdb5a33241fde605..92b7f747f24229f85e9887117c98a09d90c490f7 100644
--- a/Code/Mantid/docs/source/algorithms/SassenaFFT-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SassenaFFT-v1.rst
@@ -104,3 +104,5 @@ Output:
     Number of spectra in fitWorkspace is: 3
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveANSTOAscii-v1.rst b/Code/Mantid/docs/source/algorithms/SaveANSTOAscii-v1.rst
index ac03764c7d9b08eb4d62339db0b44126620bad80..e2e72d58ea211b00f0ee68e6ccbf3007e962b464 100644
--- a/Code/Mantid/docs/source/algorithms/SaveANSTOAscii-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveANSTOAscii-v1.rst
@@ -53,3 +53,5 @@ Output:
     File Exists: True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveAscii-v1.rst b/Code/Mantid/docs/source/algorithms/SaveAscii-v1.rst
index 949a64c262ef9f7b6fcf6b800c9850de8e245177..2e75a29c45cc607e1441f252a37472370acfd23a 100644
--- a/Code/Mantid/docs/source/algorithms/SaveAscii-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveAscii-v1.rst
@@ -22,3 +22,5 @@ spectra (i.e. is not a `ragged workspace <Ragged Workspace>`__). Only
 the X values from the first spectrum in the workspace are saved out.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveAscii-v2.rst b/Code/Mantid/docs/source/algorithms/SaveAscii-v2.rst
index edc34add1b358d2298ac76e0a4cbbdd40d7dc799..7ed94696961b5829734cf9f46cd3d636a7ca0857 100644
--- a/Code/Mantid/docs/source/algorithms/SaveAscii-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveAscii-v2.rst
@@ -125,3 +125,5 @@ Output:
     File Exists: True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveCSV-v1.rst b/Code/Mantid/docs/source/algorithms/SaveCSV-v1.rst
index 75fc7a219c220655665e9d13c6626d208c26c619..627b3ca39867c205293d3cdb3348505487ecf2ba 100644
--- a/Code/Mantid/docs/source/algorithms/SaveCSV-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveCSV-v1.rst
@@ -56,3 +56,5 @@ Usage
   os.remove(filePath)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveCalFile-v1.rst b/Code/Mantid/docs/source/algorithms/SaveCalFile-v1.rst
index 847cb7afebd12489532fdae1e213bfea81d9a452..e2e9171111bedd74aef6a602065c1ba4a6bfbf1e 100644
--- a/Code/Mantid/docs/source/algorithms/SaveCalFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveCalFile-v1.rst
@@ -37,3 +37,5 @@ The format is
 :ref:`algm-LoadCalFile`
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveCanSAS1D-v1.rst b/Code/Mantid/docs/source/algorithms/SaveCanSAS1D-v1.rst
index 3387053be1ca629a5f20b3e6c7bb290ada68f0c6..975f02de45b3022ae48f19eb6383a8bf3fb3afcf 100644
--- a/Code/Mantid/docs/source/algorithms/SaveCanSAS1D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveCanSAS1D-v1.rst
@@ -67,3 +67,5 @@ Output:
    Contents of the file = [ 9.  5.  7.].
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveCanSAS1D-v2.rst b/Code/Mantid/docs/source/algorithms/SaveCanSAS1D-v2.rst
index 0ab5294fcf611024b9947f561a44ff9b9f159344..5ee3428c800c831f477a80bb91e27955bd7d7819 100644
--- a/Code/Mantid/docs/source/algorithms/SaveCanSAS1D-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveCanSAS1D-v2.rst
@@ -67,3 +67,5 @@ Output:
    Contents of the file = [ 9.  5.  7.].
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveDaveGrp-v1.rst b/Code/Mantid/docs/source/algorithms/SaveDaveGrp-v1.rst
index c48964d4bbb970029ad6303412be86216f7188de..94501913cd804dd405ee295da9c80fab39e9a29d 100644
--- a/Code/Mantid/docs/source/algorithms/SaveDaveGrp-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveDaveGrp-v1.rst
@@ -53,3 +53,5 @@ Output:
     os.remove(savefile)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveDetectorsGrouping-v1.rst b/Code/Mantid/docs/source/algorithms/SaveDetectorsGrouping-v1.rst
index 24e1cbf9153b5a2dcedd70633009b96cef666423..8851982509c02aa917ee50839a455fab08202caf 100644
--- a/Code/Mantid/docs/source/algorithms/SaveDetectorsGrouping-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveDetectorsGrouping-v1.rst
@@ -64,3 +64,5 @@ Output:
    os.remove(save_path)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveDiffCal-v1.rst b/Code/Mantid/docs/source/algorithms/SaveDiffCal-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..fa6f577ccbee2fda17d92538d9a919a33210893d
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/SaveDiffCal-v1.rst
@@ -0,0 +1,19 @@
+
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+This algorithm saves a :ref:`diffraction calibration workspace
+<DiffractionCalibrationWorkspace>`, ``MaskWorkspace``, and
+``GroupingWorkspace`` from a hdf5 file.
+
+.. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveDspacemap-v1.rst b/Code/Mantid/docs/source/algorithms/SaveDspacemap-v1.rst
index 0980ecacbe63f126100a38bc4c5b6faeecb0eb29..e7a32b538cf0510df5016142feb0b89ffc50b45d 100644
--- a/Code/Mantid/docs/source/algorithms/SaveDspacemap-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveDspacemap-v1.rst
@@ -43,5 +43,7 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 
 
diff --git a/Code/Mantid/docs/source/algorithms/SaveFocusedXYE-v1.rst b/Code/Mantid/docs/source/algorithms/SaveFocusedXYE-v1.rst
index f4b7a46d64052ded3229f1c7b69a786d13f39530..e56f6ef981a36c7b9198141f9ce275ecad77a485 100644
--- a/Code/Mantid/docs/source/algorithms/SaveFocusedXYE-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveFocusedXYE-v1.rst
@@ -101,3 +101,5 @@ Output:
     removeFiles([file_name])
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveFullprofResolution-v1.rst b/Code/Mantid/docs/source/algorithms/SaveFullprofResolution-v1.rst
index db580c06660bb879dd3dd9cb833f3175a4e68208..621a9cc84bc86d2519290c2fec722ee3bd8d3cc9 100644
--- a/Code/Mantid/docs/source/algorithms/SaveFullprofResolution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveFullprofResolution-v1.rst
@@ -90,5 +90,7 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 
 
diff --git a/Code/Mantid/docs/source/algorithms/SaveGSASInstrumentFile-v1.rst b/Code/Mantid/docs/source/algorithms/SaveGSASInstrumentFile-v1.rst
index 15cea7377bd2c7c0c7e8a9e87e56d266cd2a7831..ba6570f832b3eb5cf1e97c93f78dff2a6e43351e 100644
--- a/Code/Mantid/docs/source/algorithms/SaveGSASInstrumentFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveGSASInstrumentFile-v1.rst
@@ -110,3 +110,5 @@ Output:
   Line 305:  INS  1PAB590   0.00213   0.46016   1.99061  -3.12296
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveGSS-v1.rst b/Code/Mantid/docs/source/algorithms/SaveGSS-v1.rst
index cc048c80acba645fb4955c8dfde6bb530f1f87cf..2205403aacf1c66e925e2b87abf02950d05fb8c1 100644
--- a/Code/Mantid/docs/source/algorithms/SaveGSS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveGSS-v1.rst
@@ -111,3 +111,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveHKL-v1.rst b/Code/Mantid/docs/source/algorithms/SaveHKL-v1.rst
index d876d7a31cb942db3685e62318b7c44b82c870bf..7b103d4b16fdbeac5e5e4f0966036d7fca27d6ec 100644
--- a/Code/Mantid/docs/source/algorithms/SaveHKL-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveHKL-v1.rst
@@ -115,3 +115,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveILLCosmosAscii-v1.rst b/Code/Mantid/docs/source/algorithms/SaveILLCosmosAscii-v1.rst
index 46cdef66dc8cbdb6bc3ac046cc3c500289c88b0a..e232d1f046f643587c870edc48a457dbd1eea682 100644
--- a/Code/Mantid/docs/source/algorithms/SaveILLCosmosAscii-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveILLCosmosAscii-v1.rst
@@ -53,3 +53,5 @@ Output:
     File Exists: True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveISISNexus-v1.rst b/Code/Mantid/docs/source/algorithms/SaveISISNexus-v1.rst
index c4554e52ebb2f888fcd67c262dfcbdd19d22bef4..857c87654c0c654c7be88e6ab2e5f30a16608888 100644
--- a/Code/Mantid/docs/source/algorithms/SaveISISNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveISISNexus-v1.rst
@@ -12,3 +12,5 @@ Description
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveIsawDetCal-v1.rst b/Code/Mantid/docs/source/algorithms/SaveIsawDetCal-v1.rst
index 9a5debd0cfad53df05ac4856c3e5aa7ab8fdc725..39cb1d6e763b51478f9bf072758c3f7153267e58 100644
--- a/Code/Mantid/docs/source/algorithms/SaveIsawDetCal-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveIsawDetCal-v1.rst
@@ -48,3 +48,5 @@ Example file::
   5     58    256    256  15.8190  15.9019  0.2000  46.09  -37.1034   24.4895   12.1518  0.14449  0.59693 -0.78918  0.58774  0.58984  0.55376
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveIsawPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/SaveIsawPeaks-v1.rst
index 19e0858e28f752f2930b7e88683b5e52a434da30..92821a48a1e640f70a43fe7b667c7d9232e59387 100644
--- a/Code/Mantid/docs/source/algorithms/SaveIsawPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveIsawPeaks-v1.rst
@@ -71,3 +71,5 @@ Output
   os.remove( isawPeaksFilePath )
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveIsawQvector-v1.rst b/Code/Mantid/docs/source/algorithms/SaveIsawQvector-v1.rst
index 3ab04f1a5cec83d2bf91d9d858b11e4dab496dfa..be2e824c08ebd3b9e359736f60be9f661d934968 100644
--- a/Code/Mantid/docs/source/algorithms/SaveIsawQvector-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveIsawQvector-v1.rst
@@ -13,3 +13,5 @@ This takes an unprocessed event workspace and writes out a file where
 each event has the :math:`(Q_x, Q_y, Q_z)` as a set of 32-bit floats.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveIsawUB-v1.rst b/Code/Mantid/docs/source/algorithms/SaveIsawUB-v1.rst
index 8d433f5be779e8fd63ddd6a67d0f29da405549a4..8e9e2b4f95953b4796f463c8d6421e3fb4ebab3f 100644
--- a/Code/Mantid/docs/source/algorithms/SaveIsawUB-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveIsawUB-v1.rst
@@ -63,3 +63,5 @@ Output:
     The third line is 0.2 0 0
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveLauenorm-v1.rst b/Code/Mantid/docs/source/algorithms/SaveLauenorm-v1.rst
index 47b87ce1e87ddb2c57d00f07fe0d0275cce479ed..9e784105ce2de4728e6877695b1a81dc0e4310c5 100644
--- a/Code/Mantid/docs/source/algorithms/SaveLauenorm-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveLauenorm-v1.rst
@@ -99,3 +99,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveMD-v1.rst b/Code/Mantid/docs/source/algorithms/SaveMD-v1.rst
index ec5c6809b7d5a5623dfa7cdfae2ab7f78b5c9c62..00a57664583f208fe75edbbaf8d186b476cf4374 100644
--- a/Code/Mantid/docs/source/algorithms/SaveMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveMD-v1.rst
@@ -45,3 +45,5 @@ Output:
     os.remove(savefile)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveMD-v2.rst b/Code/Mantid/docs/source/algorithms/SaveMD-v2.rst
index 2f58ba31b373adcbff21435dabc55257441931fe..1476e21e64967dc1cfcea7d43c586793a5741ca6 100644
--- a/Code/Mantid/docs/source/algorithms/SaveMD-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveMD-v2.rst
@@ -45,3 +45,5 @@ Output:
     os.remove(savefile)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveMask-v1.rst b/Code/Mantid/docs/source/algorithms/SaveMask-v1.rst
index 9a1e229a56d3770a53be54471040b52b2079f966..aafebd61894d22b608b0022eefa2aaf417f7fb66 100644
--- a/Code/Mantid/docs/source/algorithms/SaveMask-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveMask-v1.rst
@@ -55,3 +55,5 @@ Example 1:
    </detector-masking>
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveNISTDAT-v1.rst b/Code/Mantid/docs/source/algorithms/SaveNISTDAT-v1.rst
index 2ac5f67369b850f89d94a9645ae1f215c5b179cf..737c0665dd65fe79257678200e58226efb88846c 100644
--- a/Code/Mantid/docs/source/algorithms/SaveNISTDAT-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveNISTDAT-v1.rst
@@ -47,3 +47,5 @@ Output:
    The data read back in is [-0.0735 -0.0735 -0.0735 ...,  0.0685  0.0685  0.0685]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveNXSPE-v1.rst b/Code/Mantid/docs/source/algorithms/SaveNXSPE-v1.rst
index f1c42486429471337392e75bffbbf61b893df6ce..895f278c85a2ade51502891112054fd1923dcb62 100644
--- a/Code/Mantid/docs/source/algorithms/SaveNXSPE-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveNXSPE-v1.rst
@@ -74,3 +74,5 @@ Output:
    
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveNXTomo-v1.rst b/Code/Mantid/docs/source/algorithms/SaveNXTomo-v1.rst
index f68f0d1a0dc32def01c1652efdf52e0b526bcf7b..495f186f21cc0f4ad54e533177a688c690279d15 100644
--- a/Code/Mantid/docs/source/algorithms/SaveNXTomo-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveNXTomo-v1.rst
@@ -55,3 +55,5 @@ definition
 but extensions and/or different variants might be added in the future.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveNexus-v1.rst b/Code/Mantid/docs/source/algorithms/SaveNexus-v1.rst
index 3c9a59a8f59017f2da50bc17ed2325cc092a3a3a..dd22495bd16685e41a92d91df0af6d4c053480a9 100644
--- a/Code/Mantid/docs/source/algorithms/SaveNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveNexus-v1.rst
@@ -57,3 +57,5 @@ Usage
   os.remove(filePath)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveNexusProcessed-v1.rst b/Code/Mantid/docs/source/algorithms/SaveNexusProcessed-v1.rst
index 5dead787512b7125fb002fad3dc8862958c69b9d..b8925d8a4b1b027a3cd1a3d0be4a449f42beb808 100644
--- a/Code/Mantid/docs/source/algorithms/SaveNexusProcessed-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveNexusProcessed-v1.rst
@@ -154,3 +154,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SavePAR-v1.rst b/Code/Mantid/docs/source/algorithms/SavePAR-v1.rst
index 1fa9b381ded40e3877ce1af0a9d402d9b9221d56..075d7495cd7ca89366f5e23226357a01291ea5e6 100644
--- a/Code/Mantid/docs/source/algorithms/SavePAR-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SavePAR-v1.rst
@@ -70,3 +70,5 @@ Usage
    target file exists? True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SavePDFGui-v1.rst b/Code/Mantid/docs/source/algorithms/SavePDFGui-v1.rst
index f81febe8d360da47932a45b170825fdb91fc4a9e..6bdb8bc8ae173857f61053e9a823726c56ce5ca5 100644
--- a/Code/Mantid/docs/source/algorithms/SavePDFGui-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SavePDFGui-v1.rst
@@ -55,3 +55,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/SavePHX-v1.rst b/Code/Mantid/docs/source/algorithms/SavePHX-v1.rst
index 735f21bae49b4af0173301d48227dddba8682d37..abf97197231823f782587e0c9e7222411a56581c 100644
--- a/Code/Mantid/docs/source/algorithms/SavePHX-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SavePHX-v1.rst
@@ -77,3 +77,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveParameterFile-v1.rst b/Code/Mantid/docs/source/algorithms/SaveParameterFile-v1.rst
index c8de626682f4dde9a526eaed757713c3fcdd2756..006d1142a8cebf5160fe5da8db9853cc8bde1b62 100644
--- a/Code/Mantid/docs/source/algorithms/SaveParameterFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveParameterFile-v1.rst
@@ -59,3 +59,5 @@ Example Output::
     </parameter-file>
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SavePlot1D-v1.rst b/Code/Mantid/docs/source/algorithms/SavePlot1D-v1.rst
index 2e5563e5eee572cf3746b1b55b1c36fac947a8c8..4c290baa439d59868f3640c37a08554ba64347fa 100644
--- a/Code/Mantid/docs/source/algorithms/SavePlot1D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SavePlot1D-v1.rst
@@ -63,3 +63,5 @@ The file should look like
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveRKH-v1.rst b/Code/Mantid/docs/source/algorithms/SaveRKH-v1.rst
index ebaf8e47db4de0170c1f643991e9f59ba134487c..ae8363f1c55e514eb7fdfb16b24722c82d2dbc63 100644
--- a/Code/Mantid/docs/source/algorithms/SaveRKH-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveRKH-v1.rst
@@ -51,3 +51,5 @@ Output:
    Contents of the file  = [ 8.  4.  9.  7.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveReflCustomAscii-v1.rst b/Code/Mantid/docs/source/algorithms/SaveReflCustomAscii-v1.rst
index 2a73c269771a3a5b9e21126e8d0bfd65512a7bd3..96a531afc3f8a967ad360f0e20eb7cedef9a009c 100644
--- a/Code/Mantid/docs/source/algorithms/SaveReflCustomAscii-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveReflCustomAscii-v1.rst
@@ -16,3 +16,5 @@ separated by spaces. This is used by the reflectometry interface.
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveReflTBL-v1.rst b/Code/Mantid/docs/source/algorithms/SaveReflTBL-v1.rst
index 73d7802be4305bba3a16e0cfb247f1b1c02d20ad..c8869136c7a2a9402daaa23dfc972314f6e1c973 100644
--- a/Code/Mantid/docs/source/algorithms/SaveReflTBL-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveReflTBL-v1.rst
@@ -86,3 +86,5 @@ Output:
     File Exists: True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveReflThreeColumnAscii-v1.rst b/Code/Mantid/docs/source/algorithms/SaveReflThreeColumnAscii-v1.rst
index 142cc42f3aa02a242917cd89e445b9c87b3484fa..842b71090339f8b9de0e0ffc4896bb7edb31cf8b 100644
--- a/Code/Mantid/docs/source/algorithms/SaveReflThreeColumnAscii-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveReflThreeColumnAscii-v1.rst
@@ -15,3 +15,5 @@ separated by spaces. This is used by the reflectometry interface.
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveSPE-v1.rst b/Code/Mantid/docs/source/algorithms/SaveSPE-v1.rst
index cd2ddb5b7fe47b6be56167af8d9517ccab3b8c86..7c3f253c58c7e6aaf0b81420019af492503f416f 100644
--- a/Code/Mantid/docs/source/algorithms/SaveSPE-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveSPE-v1.rst
@@ -116,4 +116,6 @@ Output:
 
     File Exists: True
 
-.. categories::
\ No newline at end of file
+.. categories::
+
+.. sourcelink::
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/SaveSavuTomoConfig-v1.rst b/Code/Mantid/docs/source/algorithms/SaveSavuTomoConfig-v1.rst
index ab6fbbf5ba4efb2cea000a4b331cdd94d07e86dd..ddedb427278642ff1e692c66c14096309217b83a 100644
--- a/Code/Mantid/docs/source/algorithms/SaveSavuTomoConfig-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveSavuTomoConfig-v1.rst
@@ -62,3 +62,5 @@ Output:
    Save result:  True
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveToSNSHistogramNexus-v1.rst b/Code/Mantid/docs/source/algorithms/SaveToSNSHistogramNexus-v1.rst
index c51e60c94c82c8bcbdeed9ce4fc03a5f3754e1c1..68823837e149993964376f9ac8c6e0028c8d1bed 100644
--- a/Code/Mantid/docs/source/algorithms/SaveToSNSHistogramNexus-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveToSNSHistogramNexus-v1.rst
@@ -31,3 +31,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveVTK-v1.rst b/Code/Mantid/docs/source/algorithms/SaveVTK-v1.rst
index e8331b8be8e9bba2a6f471886915e0fd72541206..b0bc1962e20bdd43df82d7b7936faa62fd8ea864 100644
--- a/Code/Mantid/docs/source/algorithms/SaveVTK-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveVTK-v1.rst
@@ -16,3 +16,5 @@ histograms. It should only be used for relatively small data sets as the
 resulting file can become quite large relatively quickly.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveVulcanGSS-v1.rst b/Code/Mantid/docs/source/algorithms/SaveVulcanGSS-v1.rst
index 5e66eb2469a8f765f9fa75f3a7c40ee8c656cba9..d526994de1b97531e5977b993ed418f1eed82bfa 100644
--- a/Code/Mantid/docs/source/algorithms/SaveVulcanGSS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveVulcanGSS-v1.rst
@@ -72,3 +72,5 @@ Output:
   ... ...
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SaveZODS-v1.rst b/Code/Mantid/docs/source/algorithms/SaveZODS-v1.rst
index 7a1cc0bc1e6d2b4ad337731d4156e7e823b3c8d6..93a8ac20ea27c6691229e0f0b21ddddc9ade9b54 100644
--- a/Code/Mantid/docs/source/algorithms/SaveZODS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SaveZODS-v1.rst
@@ -97,3 +97,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Scale-v1.rst b/Code/Mantid/docs/source/algorithms/Scale-v1.rst
index 331b5900958a0bdda8dbcce404218baaa82603e8..d32cdb66b0b85017e682e4fbd39163db3b123b6e 100644
--- a/Code/Mantid/docs/source/algorithms/Scale-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Scale-v1.rst
@@ -79,3 +79,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ScaleX-v1.rst b/Code/Mantid/docs/source/algorithms/ScaleX-v1.rst
index 1fd64266eefd3fcbd6f05f49b308a5ef7b157f5f..26ed1ca5760c8ec2e4835c6de086d62057a956c1 100644
--- a/Code/Mantid/docs/source/algorithms/ScaleX-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ScaleX-v1.rst
@@ -51,3 +51,5 @@ Output:
     sigma=0.10
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SelectCellOfType-v1.rst b/Code/Mantid/docs/source/algorithms/SelectCellOfType-v1.rst
index d3b04a7ab37fdac3e5f8a0e9c13e85813a831639..afb8c027fbddf37d127c9bab914059e53b40e5a1 100644
--- a/Code/Mantid/docs/source/algorithms/SelectCellOfType-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SelectCellOfType-v1.rst
@@ -56,3 +56,5 @@ Output:
    14.1310511523 19.247332564 8.60581864273 89.8811706749 105.07133377 89.970386662
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SelectCellWithForm-v1.rst b/Code/Mantid/docs/source/algorithms/SelectCellWithForm-v1.rst
index 3433b925001ac62fe0ff86b4cb6927bbbb586fad..1c6b8c5a32d60a1e95e623ed7193611e4e66d1db 100644
--- a/Code/Mantid/docs/source/algorithms/SelectCellWithForm-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SelectCellWithForm-v1.rst
@@ -56,3 +56,5 @@ Output:
    14.1310511523 19.247332564 8.60581864273 89.8811706749 105.07133377 89.970386662
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SelectPowderDiffPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/SelectPowderDiffPeaks-v1.rst
index 5830462ac3197440d1c7320d24c8f2632de5d048..78b4409b3ec689e4797efc088f267ad81e619c0a 100644
--- a/Code/Mantid/docs/source/algorithms/SelectPowderDiffPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SelectPowderDiffPeaks-v1.rst
@@ -21,3 +21,5 @@ has been implemented.
 There won't be any usage example for SelectPowderDiffPeaks because it is deprecated. 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SendUsage-v1.rst b/Code/Mantid/docs/source/algorithms/SendUsage-v1.rst
index 4b7333cbce4e1f12202db301cef15d73907ee7e1..4ee6bc47626103e66f184585c46d11662375b3b2 100644
--- a/Code/Mantid/docs/source/algorithms/SendUsage-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SendUsage-v1.rst
@@ -18,3 +18,5 @@ statistics to a central server. To disable it set the user property
    usagereports.enabled=0
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetGoniometer-v1.rst b/Code/Mantid/docs/source/algorithms/SetGoniometer-v1.rst
index 60f6d026088ac5742b010a58a5fad77dccb088f6..7e716a11e342f278fd29d61f93502fb2746648bc 100644
--- a/Code/Mantid/docs/source/algorithms/SetGoniometer-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetGoniometer-v1.rst
@@ -70,3 +70,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetInstrumentParameter-v1.rst b/Code/Mantid/docs/source/algorithms/SetInstrumentParameter-v1.rst
index 23330856243bd06e7a1758338bcad0b6dcc67f23..66eed6d6760766340b54465b204fba773ff67548 100644
--- a/Code/Mantid/docs/source/algorithms/SetInstrumentParameter-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetInstrumentParameter-v1.rst
@@ -104,3 +104,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetMDUsingMask-v1.rst b/Code/Mantid/docs/source/algorithms/SetMDUsingMask-v1.rst
index 65bc95bd65d8ca7669c9500c373efc97738de4b8..1c82ef7a0380cf25081f53770b69e2249071cdb7 100644
--- a/Code/Mantid/docs/source/algorithms/SetMDUsingMask-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetMDUsingMask-v1.rst
@@ -34,3 +34,5 @@ Usage (Python)
 | ``ModifiedWS = SetMDUsingMask(InputWorkspace=WS, Value="0", MaskWorkspace=MaskWS)``
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetSampleMaterial-v1.rst b/Code/Mantid/docs/source/algorithms/SetSampleMaterial-v1.rst
index 4f4d227297d632c06f8053bce94fb363c09cce4c..afdff0403c38566e1da80fc0262fa0b56f0a187b 100644
--- a/Code/Mantid/docs/source/algorithms/SetSampleMaterial-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetSampleMaterial-v1.rst
@@ -61,7 +61,7 @@ Number Density
 
 The number density is defined as
 
-.. math:: \rho_n = \frac{ZParameter}{UnitCellVolume}
+.. math:: \rho_n = \frac{N_{atoms}ZParameter}{UnitCellVolume}
 
 It can can be generated in one of two ways:
 
@@ -69,5 +69,29 @@ It can can be generated in one of two ways:
 2. Specifying the ``ZParameter`` and the ``UnitCellVolume`` (or letting
    the algorithm calculate it from the OrientedLattice on the 
    ``InputWorkspace``).
+   
+Linear Absorption Coefficients
+##############################
+
+.. math:: \mu_s = \rho_n \frac{1}{N_{atoms}}\sum_{i}s_{i}n_{i} \text{ units of 1/cm}
+.. math:: s = \sigma_{total scattering}
+.. math:: \mu_a = \rho_n \frac{1}{N_{atoms}}\sum_{i}a_{i}n_{i} \text{ units of 1/cm}
+.. math:: a = \sigma_{absorption} (\lambda=1.8)
+
+A detailed version of this is found in [2]. 
+
+References
+----------
+
+The data used in this algorithm comes from the following paper.
+
+#. Varley F. Sears, *Neutron scattering lengths and cross sections*, Neutron News **3:3** (1992) 26
+   `doi: 10.1080/10448639208218770 <http://dx.doi.org/10.1080/10448639208218770>`_
+#. J. A. K. Howard, O. Johnson, A. J. Schultz and A. M. Stringer, *Determination of the neutron
+   absorption cross section for hydrogen as a function of wavelength with a pulsed neutron 
+   source*, J. Appl. Cryst. (1987). 20, 120-122
+   `doi: 10.1107/S0021889887087028 <http://dx.doi.org/10.1107/S0021889887087028>`_
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetScalingPSD-v1.rst b/Code/Mantid/docs/source/algorithms/SetScalingPSD-v1.rst
index ffe4351f796620fa3278f6300902b041fa2baaad..2e4d21652095f9296fdad9eed4247bc22d953027 100644
--- a/Code/Mantid/docs/source/algorithms/SetScalingPSD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetScalingPSD-v1.rst
@@ -73,3 +73,5 @@ ChildAlgorithms used
 None
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetSpecialCoordinates-v1.rst b/Code/Mantid/docs/source/algorithms/SetSpecialCoordinates-v1.rst
index ab7004a3f69e89673350ec8af55a410869efa8d2..8fc2df29a2fc4ccd2a120eaf7e2720d4b9dcac09 100644
--- a/Code/Mantid/docs/source/algorithms/SetSpecialCoordinates-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetSpecialCoordinates-v1.rst
@@ -30,3 +30,5 @@ flags are new, and legacy workspaces will need to be corrected in order
 for them to work as expected with the Mantid tools.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetUB-v1.rst b/Code/Mantid/docs/source/algorithms/SetUB-v1.rst
index 0709e85fd2cb5f1dc33ef5c4ea0d9bbd9a565fdb..6f97b00fab1c40b5096746664abe204ac2bd8926 100644
--- a/Code/Mantid/docs/source/algorithms/SetUB-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetUB-v1.rst
@@ -55,3 +55,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetUncertainties-v1.rst b/Code/Mantid/docs/source/algorithms/SetUncertainties-v1.rst
index 32c241c9aa4e9627d5bc69512491820aa3f20ab4..9a7843eb76ae27dcbfa823b5f18ffdf01568df1f 100644
--- a/Code/Mantid/docs/source/algorithms/SetUncertainties-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetUncertainties-v1.rst
@@ -15,3 +15,5 @@ The uncertainties for the entire workspace will be recalculated according to the
 - ``SetError"sqrt"`` will recalculate all of the uncertainties to be the square root of the y value
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetupEQSANSReduction-v1.rst b/Code/Mantid/docs/source/algorithms/SetupEQSANSReduction-v1.rst
index 99cee7cfdc30af396130cee737fd9ddb7eada393..0473eefc42b8be532820090f0fadd0945a1e781f 100644
--- a/Code/Mantid/docs/source/algorithms/SetupEQSANSReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetupEQSANSReduction-v1.rst
@@ -16,3 +16,5 @@ PropertyManagerDataService.
 See :ref:`SANSReduction <algm-SANSReduction>` for details.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetupHFIRReduction-v1.rst b/Code/Mantid/docs/source/algorithms/SetupHFIRReduction-v1.rst
index f10f5f14ab3613842d79d2dcbd6fb807fde7c520..c99561635efba677b089a8b4cdb2782dc814bab8 100644
--- a/Code/Mantid/docs/source/algorithms/SetupHFIRReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetupHFIRReduction-v1.rst
@@ -16,3 +16,5 @@ PropertyManagerDataService.
 See :ref:`HFIRSANSReduction <algm-HFIRSANSReduction>` for details.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SetupILLD33Reduction-v1.rst b/Code/Mantid/docs/source/algorithms/SetupILLD33Reduction-v1.rst
index a45cf9b58dc81a0365e6463d4b8352f083eeff62..3077cd0e02d0fa4ed973968a23b7d37794c268aa 100644
--- a/Code/Mantid/docs/source/algorithms/SetupILLD33Reduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SetupILLD33Reduction-v1.rst
@@ -89,3 +89,5 @@ Output:
 	This workspace has 2 dimensions and has 1 histograms.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ShiftLogTime-v1.rst b/Code/Mantid/docs/source/algorithms/ShiftLogTime-v1.rst
index 86373fc35490c41488bbe3cec48e1bdc438d62f1..53d9da60e4c4619bc9a886b766b3801eb98cde37 100644
--- a/Code/Mantid/docs/source/algorithms/ShiftLogTime-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ShiftLogTime-v1.rst
@@ -45,3 +45,5 @@ Output:
     
     
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ShowPeakHKLOffsets-v1.rst b/Code/Mantid/docs/source/algorithms/ShowPeakHKLOffsets-v1.rst
index 846af13dc132b67a4979c59d0e518c0c649d0288..886b1efc0a63a37dce6fd56755f9aadc3e98fdd2 100644
--- a/Code/Mantid/docs/source/algorithms/ShowPeakHKLOffsets-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ShowPeakHKLOffsets-v1.rst
@@ -56,3 +56,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ShowPossibleCells-v1.rst b/Code/Mantid/docs/source/algorithms/ShowPossibleCells-v1.rst
index f790794f877de2965a2c6f6ff7fa77d3e449fa95..5bda7b8703b230c8418c6261cb7e7b59b323d284 100644
--- a/Code/Mantid/docs/source/algorithms/ShowPossibleCells-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ShowPossibleCells-v1.rst
@@ -47,3 +47,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SignalOverError-v1.rst b/Code/Mantid/docs/source/algorithms/SignalOverError-v1.rst
index e166e66107becbc8a2ab11bdef835e3c7bf7460c..7af4426cfe1ff071cd4055ccbdc6966ff4ebb995 100644
--- a/Code/Mantid/docs/source/algorithms/SignalOverError-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SignalOverError-v1.rst
@@ -49,3 +49,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SimulateResolutionConvolvedModel-v1.rst b/Code/Mantid/docs/source/algorithms/SimulateResolutionConvolvedModel-v1.rst
index a5f1546193ff0ad35f678fd6e47d629bb0af94c1..29ff13b3c9aeb631a6d753fe5f31b71ecc218679 100644
--- a/Code/Mantid/docs/source/algorithms/SimulateResolutionConvolvedModel-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SimulateResolutionConvolvedModel-v1.rst
@@ -12,3 +12,5 @@ Description
 Runs a simulation of a model with a selected resolution function.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SliceMD-v1.rst b/Code/Mantid/docs/source/algorithms/SliceMD-v1.rst
index f3967560a5eb20f622215bef3aa91b5e1f8ba43d..446ffbc44a9645f06ba4cc6961af858998aa04b9 100644
--- a/Code/Mantid/docs/source/algorithms/SliceMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SliceMD-v1.rst
@@ -124,6 +124,8 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 
 
 
diff --git a/Code/Mantid/docs/source/algorithms/SliceMDHisto-v1.rst b/Code/Mantid/docs/source/algorithms/SliceMDHisto-v1.rst
index e9e5528f9b00d1645da5b07b2a400c9606b089c9..1c35317af649fcf70a6da75ea86fbc12b5a6c985 100644
--- a/Code/Mantid/docs/source/algorithms/SliceMDHisto-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SliceMDHisto-v1.rst
@@ -71,3 +71,5 @@ Usage
     C      7      -9.00   5.78
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SmoothData-v1.rst b/Code/Mantid/docs/source/algorithms/SmoothData-v1.rst
index 2169ec59010d93d1e52b8def070a4a617dde8c03..c958fa0d90ad99a92b687dfd1f6ac35be4cdce72 100644
--- a/Code/Mantid/docs/source/algorithms/SmoothData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SmoothData-v1.rst
@@ -50,3 +50,5 @@ Example 2: use different NPoints for groups of spectra
   smooth = SmoothData( ws, [3,5], GroupingWorkspace='gr')
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SmoothMD-v1.rst b/Code/Mantid/docs/source/algorithms/SmoothMD-v1.rst
index 57ac9b1775402e29a0e426e15184f763389176f3..b7a6b03d5526ba6fd1c6891b6b120314a7c27201 100644
--- a/Code/Mantid/docs/source/algorithms/SmoothMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SmoothMD-v1.rst
@@ -55,3 +55,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/SmoothNeighbours-v1.rst b/Code/Mantid/docs/source/algorithms/SmoothNeighbours-v1.rst
index 72dec695dd5dea739343dbffebb8726434d390cc..2ac607d8fc459191e2f69a696c656585635d78b5 100644
--- a/Code/Mantid/docs/source/algorithms/SmoothNeighbours-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SmoothNeighbours-v1.rst
@@ -309,3 +309,5 @@ Output:
     [ 8.]]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SofQW-v1.rst b/Code/Mantid/docs/source/algorithms/SofQW-v1.rst
index ef8184c1ed9964bb58c7d8dd14ee6a4316a7c204..d782c732c02a2411261a80b187c9c65c8f219323 100644
--- a/Code/Mantid/docs/source/algorithms/SofQW-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SofQW-v1.rst
@@ -70,3 +70,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SofQWCentre-v1.rst b/Code/Mantid/docs/source/algorithms/SofQWCentre-v1.rst
index 07092d3b71fb3969d6468fd1fdcc21d656025fcb..59eaabe39beb1a265586fa53ff697ca479edd51d 100644
--- a/Code/Mantid/docs/source/algorithms/SofQWCentre-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SofQWCentre-v1.rst
@@ -72,3 +72,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SofQWMoments-v1.rst b/Code/Mantid/docs/source/algorithms/SofQWMoments-v1.rst
index 48cc670000a1f08d38b4bc5cdae114caf22439ee..27a7db835d6633f662143c25fcea4202a26539b2 100644
--- a/Code/Mantid/docs/source/algorithms/SofQWMoments-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SofQWMoments-v1.rst
@@ -38,3 +38,5 @@ Usage
     SofQWMoments(ws, OutputWorkspace='Test')
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SofQWNormalisedPolygon-v1.rst b/Code/Mantid/docs/source/algorithms/SofQWNormalisedPolygon-v1.rst
index 911e403a521a696e5724925a99522bdd53e872ab..f9ea7635ce4b3361b0e188cae8530f600dbfee63 100644
--- a/Code/Mantid/docs/source/algorithms/SofQWNormalisedPolygon-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SofQWNormalisedPolygon-v1.rst
@@ -70,3 +70,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SofQWPolygon-v1.rst b/Code/Mantid/docs/source/algorithms/SofQWPolygon-v1.rst
index 0ac967e645e50f0bffaca08248d17ec5d2796f88..c736e673335613a02b9e1510de8b3f38d192875b 100644
--- a/Code/Mantid/docs/source/algorithms/SofQWPolygon-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SofQWPolygon-v1.rst
@@ -56,3 +56,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SolidAngle-v1.rst b/Code/Mantid/docs/source/algorithms/SolidAngle-v1.rst
index 2a13b9969886710af1cd2dba116e64a104d9b99d..f6fd1e64015b5d06d3a2d9c88ca3c34dd978657c 100644
--- a/Code/Mantid/docs/source/algorithms/SolidAngle-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SolidAngle-v1.rst
@@ -49,3 +49,5 @@ Output:
     Solid angle of Spectra 101 in Bank 2: 1.60e-08
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SortByQVectors-v1.rst b/Code/Mantid/docs/source/algorithms/SortByQVectors-v1.rst
index b16f52b3251b8d50cdeab7149094d437e479be5f..3894d6430cd0afd3a52dd36272d987686f633139 100644
--- a/Code/Mantid/docs/source/algorithms/SortByQVectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SortByQVectors-v1.rst
@@ -40,3 +40,5 @@ Output:
     0.0240240236744
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SortDetectors-v1.rst b/Code/Mantid/docs/source/algorithms/SortDetectors-v1.rst
index 5b2a2d16d66627f2c88669934bb350a9f2ad96f5..bf77d6211396baabfcb7531613e8e34e86c53596 100644
--- a/Code/Mantid/docs/source/algorithms/SortDetectors-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SortDetectors-v1.rst
@@ -42,3 +42,5 @@ Output:
    First few values of downDistances:  5.0 5.0000064 5.0000064 5.00001279998 5.00002559993
    
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SortEvents-v1.rst b/Code/Mantid/docs/source/algorithms/SortEvents-v1.rst
index 6ede713908b102fe3724e146bb7fe778967497f3..b64ae9542749531fcad25b14e3bdf20050d27100 100644
--- a/Code/Mantid/docs/source/algorithms/SortEvents-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SortEvents-v1.rst
@@ -91,6 +91,8 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 
 
 
diff --git a/Code/Mantid/docs/source/algorithms/SortHKL-v1.rst b/Code/Mantid/docs/source/algorithms/SortHKL-v1.rst
index 6bd624882bd6be14215f00c0549d2d4f00000aef..6471aa3225a9a51169cf101cc36de2bf74f3ed85 100644
--- a/Code/Mantid/docs/source/algorithms/SortHKL-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SortHKL-v1.rst
@@ -40,3 +40,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SortPeaksWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/SortPeaksWorkspace-v1.rst
index e478af802c2eee452084ee8791eb9ce6a3e3e39f..ad1973da4ccba1ce7c1d6aa1ec7bed3617bd0b08 100644
--- a/Code/Mantid/docs/source/algorithms/SortPeaksWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SortPeaksWorkspace-v1.rst
@@ -40,3 +40,5 @@ Output:
    Column k in descending order: [5.0, 5.0, 4.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -0.0, -0.0, -0.0, 0.0, -0.0, -0.0, 0.0, -0.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -2.0, -2.0, -2.0, -2.0, -2.0, -2.0, -3.0]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SortTableWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/SortTableWorkspace-v1.rst
index a929b4a6c688d90621e1d6067a1bf68bc07b2c79..9ad6f959b25ae3aa78b56e4db78f5be7f70d0d29 100644
--- a/Code/Mantid/docs/source/algorithms/SortTableWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SortTableWorkspace-v1.rst
@@ -82,3 +82,5 @@ Output:
     
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/SortXAxis-v1.rst b/Code/Mantid/docs/source/algorithms/SortXAxis-v1.rst
index d6d1ed5be5e1a8c321e88f3f92e642add1682f2c..7b14bd708d4c134a878730a0d16c99aef8ae72cd 100644
--- a/Code/Mantid/docs/source/algorithms/SortXAxis-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SortXAxis-v1.rst
@@ -20,3 +20,5 @@ particularly suitable for reformatting workspaces loaded via
 :ref:`LoadAscii <algm-LoadAscii>`. Input workspaces must be a distribution.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SpatialGrouping-v1.rst b/Code/Mantid/docs/source/algorithms/SpatialGrouping-v1.rst
index 294f40b423e830255f287cde85438ab082582942..d2d6ad5332a98d47cf6f4aa5f2eb79efedb54e11 100644
--- a/Code/Mantid/docs/source/algorithms/SpatialGrouping-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SpatialGrouping-v1.rst
@@ -54,3 +54,5 @@ Output:
     os.remove(group_file)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SpecularReflectionCalculateTheta-v1.rst b/Code/Mantid/docs/source/algorithms/SpecularReflectionCalculateTheta-v1.rst
index 4f06bced816e2bc85cb1a6fa5f9603ce062da9ce..8b58089ba80162fb59fda69eca45fbf4f3dc17b7 100644
--- a/Code/Mantid/docs/source/algorithms/SpecularReflectionCalculateTheta-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SpecularReflectionCalculateTheta-v1.rst
@@ -49,3 +49,5 @@ Output:
    45.0
   
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SpecularReflectionPositionCorrect-v1.rst b/Code/Mantid/docs/source/algorithms/SpecularReflectionPositionCorrect-v1.rst
index 86ac3b2acb43880e71fb5553c6a1e08b581568eb..6cbde85fb1b7c4201ac72ec6c441132d1bb4dbff 100644
--- a/Code/Mantid/docs/source/algorithms/SpecularReflectionPositionCorrect-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SpecularReflectionPositionCorrect-v1.rst
@@ -23,6 +23,8 @@ Also see
 
 .. categories::
 
+.. sourcelink::
+
 Usage
 -----
 
@@ -54,4 +56,6 @@ Output:
  
    [0,1,1]
 
-.. categories::
\ No newline at end of file
+.. categories::
+
+.. sourcelink::
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/SphericalAbsorption-v1.rst b/Code/Mantid/docs/source/algorithms/SphericalAbsorption-v1.rst
index 4b08181bfc4816ddd1d28af5dd2d7bca0dc7a882..7ec50367f9bb7e71f1173e06877ba7a588f6d8c1 100644
--- a/Code/Mantid/docs/source/algorithms/SphericalAbsorption-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SphericalAbsorption-v1.rst
@@ -38,3 +38,5 @@ Output:
     The created workspace has spectra:  [ 0.8451289   0.79101809  0.74254761  0.69867599  0.65861079  0.63477521]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SplineBackground-v1.rst b/Code/Mantid/docs/source/algorithms/SplineBackground-v1.rst
index 728dbe08189e3f21f74825165753fd0fb4b0e628..3d52a4b3ec0981fc14cfa7aabeca7c00acef7c90 100644
--- a/Code/Mantid/docs/source/algorithms/SplineBackground-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SplineBackground-v1.rst
@@ -51,3 +51,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SplineInterpolation-v1.rst b/Code/Mantid/docs/source/algorithms/SplineInterpolation-v1.rst
index f6cacef3a8a70489692caaa0b78d6bbcf1d149e4..42a6834fd9c5947404eed835621c0d704946170b 100644
--- a/Code/Mantid/docs/source/algorithms/SplineInterpolation-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SplineInterpolation-v1.rst
@@ -79,3 +79,5 @@ Usage
     interpolated_ws = SplineInterpolation(WorkspaceToMatch=spline_ws, WorkspaceToInterpolate=ws, DerivOrder=2, OutputWorkspaceDeriv='derivs')
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SplineSmoothing-v1.rst b/Code/Mantid/docs/source/algorithms/SplineSmoothing-v1.rst
index df4d71c1ed38a3f3f645361ca7dc7b26527ada55..e2b1c96d2c2a4328efccd69e410bf72c25447b55 100644
--- a/Code/Mantid/docs/source/algorithms/SplineSmoothing-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SplineSmoothing-v1.rst
@@ -53,3 +53,5 @@ Output:
     This has created a spline for each spectra in the wsOut workspace
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Squares-v1.rst b/Code/Mantid/docs/source/algorithms/Squares-v1.rst
index 4548734f90f3fdc5a596385340a2d36273995b9d..72ac28c5736148ff84ad031dd11f13eb6363086c 100644
--- a/Code/Mantid/docs/source/algorithms/Squares-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Squares-v1.rst
@@ -47,4 +47,6 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
 
diff --git a/Code/Mantid/docs/source/algorithms/StartLiveData-v1.rst b/Code/Mantid/docs/source/algorithms/StartLiveData-v1.rst
index 57b0f920bea22dd70e281828628efa47b560d21a..f7e577f946e11bfaa88b859e42d2b5a507410edc 100644
--- a/Code/Mantid/docs/source/algorithms/StartLiveData-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/StartLiveData-v1.rst
@@ -209,3 +209,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StartRemoteTransaction-v1.rst b/Code/Mantid/docs/source/algorithms/StartRemoteTransaction-v1.rst
index d8c0cac01d4b333d698ac81a515fdedba5283f57..a8ab4a1722e0686f22e507f8357fcf1d6d51e441 100644
--- a/Code/Mantid/docs/source/algorithms/StartRemoteTransaction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/StartRemoteTransaction-v1.rst
@@ -15,3 +15,5 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StartRemoteTransaction-v2.rst b/Code/Mantid/docs/source/algorithms/StartRemoteTransaction-v2.rst
index bb589517c9988366170bd3d6815102c98a80401f..cade65226dd4cab358d04453654ad38a37ffdeb1 100644
--- a/Code/Mantid/docs/source/algorithms/StartRemoteTransaction-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/StartRemoteTransaction-v2.rst
@@ -40,3 +40,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StatisticsOfPeaksWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/StatisticsOfPeaksWorkspace-v1.rst
index 6fa0395ddaf1754ca8d2b6c0d0dc34acaeb865f1..437c0bba42ab06289a74312d4976d35c13bfec76 100644
--- a/Code/Mantid/docs/source/algorithms/StatisticsOfPeaksWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/StatisticsOfPeaksWorkspace-v1.rst
@@ -63,3 +63,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StatisticsOfTableWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/StatisticsOfTableWorkspace-v1.rst
index 5e051b843a7691387ed91332e29ef046f6b19086..16f1cf00c98eeaf6b6e8825d9cf3f1c404586bec 100644
--- a/Code/Mantid/docs/source/algorithms/StatisticsOfTableWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/StatisticsOfTableWorkspace-v1.rst
@@ -45,3 +45,5 @@ Output:
     mean of column 'a' is 2.500
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StepScan-v1.rst b/Code/Mantid/docs/source/algorithms/StepScan-v1.rst
index 2ee63b11aaed1fdc4801745a8bc2d90d40b4741b..a280ea6762085e4555d3ee9f6c7fc4ff15810950 100644
--- a/Code/Mantid/docs/source/algorithms/StepScan-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/StepScan-v1.rst
@@ -35,3 +35,7 @@ If necessary, the imput workspace is cloned, to save it from being modified.
 .. image:: ../images/StepScanWorkflow.png
 
 .. categories::
+
+.. sourcelink::
+    :cpp: Framework/WorkflowAlgorithms/src/StepScan.cpp
+    :h: Framework/WorkflowAlgorithms/inc/MantidWorkflowAlgorithms/StepScan.h
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/Stitch1D-v3.rst b/Code/Mantid/docs/source/algorithms/Stitch1D-v3.rst
index c35dd0ee04f6ffb474ebec6de1b33146f2213ba8..af4b441e952d7313f0e80a42ded08229a3e645ef 100644
--- a/Code/Mantid/docs/source/algorithms/Stitch1D-v3.rst
+++ b/Code/Mantid/docs/source/algorithms/Stitch1D-v3.rst
@@ -82,3 +82,6 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
+    :filename: Stitch1D
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/Stitch1DMany-v1.rst b/Code/Mantid/docs/source/algorithms/Stitch1DMany-v1.rst
index ba774fc4cfb43cbb9f2a060c73cc71e44617fc71..e83ee576ca2495a3ff69ee98465af7103530d944 100644
--- a/Code/Mantid/docs/source/algorithms/Stitch1DMany-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Stitch1DMany-v1.rst
@@ -73,3 +73,5 @@ Output:
    :align: center
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StopRemoteTransaction-v1.rst b/Code/Mantid/docs/source/algorithms/StopRemoteTransaction-v1.rst
index b3bbe34c6bf793067f8cf3a51a74cdab56c80725..125656b108fe494c806b3984df79df49ecdacd18 100644
--- a/Code/Mantid/docs/source/algorithms/StopRemoteTransaction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/StopRemoteTransaction-v1.rst
@@ -15,3 +15,5 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StopRemoteTransaction-v2.rst b/Code/Mantid/docs/source/algorithms/StopRemoteTransaction-v2.rst
index de620dca8a796f5232c3137c45c5dcce45f83869..70fbf3dabbfc0f488010983b5e233e43875175f5 100644
--- a/Code/Mantid/docs/source/algorithms/StopRemoteTransaction-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/StopRemoteTransaction-v2.rst
@@ -31,3 +31,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StripPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/StripPeaks-v1.rst
index 5290e8456b741df48fe9a83075208d92c9cb0d0d..d78e605fca96681079ed638e6165ba88f77a6f3f 100644
--- a/Code/Mantid/docs/source/algorithms/StripPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/StripPeaks-v1.rst
@@ -19,3 +19,5 @@ The :ref:`algm-FindPeaks` algorithm is used to identify the peaks in
 the data.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StripVanadiumPeaks-v1.rst b/Code/Mantid/docs/source/algorithms/StripVanadiumPeaks-v1.rst
index 6b5ed9ad6f7fd8965eee1a67ca43d9eccf6da4ed..727981fbc2f213e52dcd34bcf4796d2664185ad1 100644
--- a/Code/Mantid/docs/source/algorithms/StripVanadiumPeaks-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/StripVanadiumPeaks-v1.rst
@@ -52,3 +52,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/StripVanadiumPeaks-v2.rst b/Code/Mantid/docs/source/algorithms/StripVanadiumPeaks-v2.rst
index 62eec8f0698ff505f6c1810a98f7b7ecfd402381..420a3c8f119d5e9365df1a3d9d172fe2bb288592 100644
--- a/Code/Mantid/docs/source/algorithms/StripVanadiumPeaks-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/StripVanadiumPeaks-v2.rst
@@ -42,3 +42,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SubmitRemoteJob-v1.rst b/Code/Mantid/docs/source/algorithms/SubmitRemoteJob-v1.rst
index 3685be67e8b9a6ec77aee63e82a6e661f2d3d611..98739d05b7da1d0296c719578b54d8986a660c67 100644
--- a/Code/Mantid/docs/source/algorithms/SubmitRemoteJob-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SubmitRemoteJob-v1.rst
@@ -15,3 +15,5 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SubmitRemoteJob-v2.rst b/Code/Mantid/docs/source/algorithms/SubmitRemoteJob-v2.rst
index 0ce06a6cc6b2d116520dc00b22fa835e034bc7eb..cfc51ebbe4149ede98e8f3f571078cb0fcbcfceb 100644
--- a/Code/Mantid/docs/source/algorithms/SubmitRemoteJob-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/SubmitRemoteJob-v2.rst
@@ -41,3 +41,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SuggestTibCNCS-v1.rst b/Code/Mantid/docs/source/algorithms/SuggestTibCNCS-v1.rst
index fe608c2284e080b207a9221ba3ca67e47f60d162..44a669945b162b26ae5a76e3aa5679e5d266e894 100644
--- a/Code/Mantid/docs/source/algorithms/SuggestTibCNCS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SuggestTibCNCS-v1.rst
@@ -39,3 +39,5 @@ Output:
     Incident Energy = 1, tibMin = 95621.15, tibMax = 99021.15
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SuggestTibHYSPEC-v1.rst b/Code/Mantid/docs/source/algorithms/SuggestTibHYSPEC-v1.rst
index 2039a795e9cb43e4303c3ea9ff517d3fcdfc0fed..3594b45f4710c95ba677ac87dac1b6e2d72a89d9 100644
--- a/Code/Mantid/docs/source/algorithms/SuggestTibHYSPEC-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SuggestTibHYSPEC-v1.rst
@@ -35,3 +35,5 @@ Output:
     Incident Energy = 40, tibMin = 11898.11, tibMax = 13898.11
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SumEventsByLogValue-v1.rst b/Code/Mantid/docs/source/algorithms/SumEventsByLogValue-v1.rst
index ae733b1f18c27ba157fbfb0b8eb54365c2a8154f..77a9b2cbdfa958c15c54fa6f89a354b759e83431 100644
--- a/Code/Mantid/docs/source/algorithms/SumEventsByLogValue-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SumEventsByLogValue-v1.rst
@@ -87,3 +87,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SumNeighbours-v1.rst b/Code/Mantid/docs/source/algorithms/SumNeighbours-v1.rst
index 47fec64482672fc7bd16985097cbd0374d505c24..bddb7646a8ba20147798ec64329610415fcf9129 100644
--- a/Code/Mantid/docs/source/algorithms/SumNeighbours-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SumNeighbours-v1.rst
@@ -39,3 +39,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SumRowColumn-v1.rst b/Code/Mantid/docs/source/algorithms/SumRowColumn-v1.rst
index 526e2d183d66c7426ac76b79cab1ddf2818c9895..30c3fb171f767b1c417be54c3bef43963c9c0410 100644
--- a/Code/Mantid/docs/source/algorithms/SumRowColumn-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SumRowColumn-v1.rst
@@ -45,3 +45,5 @@ Output:
    Output workspace has 128 points.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/SumSpectra-v1.rst b/Code/Mantid/docs/source/algorithms/SumSpectra-v1.rst
index fbbd2893fa36a7eaaebd3f9198b3f1ae55d56d46..fa1d00ec46715107d7a4065ff54ee7019e5d77ad 100644
--- a/Code/Mantid/docs/source/algorithms/SumSpectra-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/SumSpectra-v1.rst
@@ -111,3 +111,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Symmetrise-v1.rst b/Code/Mantid/docs/source/algorithms/Symmetrise-v1.rst
index 9e6f36b4cede5671d5c7f6eaf575cb10a6bcc677..1ff18b6d42c8359c3d06502bc736848929b12249 100644
--- a/Code/Mantid/docs/source/algorithms/Symmetrise-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Symmetrise-v1.rst
@@ -38,6 +38,8 @@ Usage
     sample_ws = CreateWorkspace(data_x, data_y)
     sample_ws = ScaleX(sample_ws, -1, "Add")  # centre the peak over 0
 
-    symm_ws = Symmetrise(Sample=sample_ws, XMin=0.05, XMax=8.0)
+    symm_ws = Symmetrise(InputWorkspace=sample_ws, XMin=0.05, XMax=8.0)
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/TOFSANSResolution-v1.rst b/Code/Mantid/docs/source/algorithms/TOFSANSResolution-v1.rst
index 31e726d96923060124544250babdc24401dcebc0..7e0a850175c0ad712cefedc58db17fe7b78070c5 100644
--- a/Code/Mantid/docs/source/algorithms/TOFSANSResolution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/TOFSANSResolution-v1.rst
@@ -12,3 +12,5 @@ Description
 Compute the Q resolution for a given I(Q) for a TOF SANS instrument.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/TOFSANSResolutionByPixel-v1.rst b/Code/Mantid/docs/source/algorithms/TOFSANSResolutionByPixel-v1.rst
index d21bb1aa2f33c4628b82188cd067c0b908c56965..fbedfc25b4163594c33c414aadff84dd98decdea 100644
--- a/Code/Mantid/docs/source/algorithms/TOFSANSResolutionByPixel-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/TOFSANSResolutionByPixel-v1.rst
@@ -38,3 +38,5 @@ algorithm as follows:
 histogram bin values of InputWorkspace.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/TestWorkspaceGroupProperty-v1.rst b/Code/Mantid/docs/source/algorithms/TestWorkspaceGroupProperty-v1.rst
index 4bbdfd734ae0385100be77be4508c40e09f41767..6697bc246c57291bf8c069eb583e816c45d1e2fd 100644
--- a/Code/Mantid/docs/source/algorithms/TestWorkspaceGroupProperty-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/TestWorkspaceGroupProperty-v1.rst
@@ -12,3 +12,5 @@ Description
 This algorithm is only used for testing.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ThresholdMD-v1.rst b/Code/Mantid/docs/source/algorithms/ThresholdMD-v1.rst
index 95528b2803d488fa3498b942ec393604cf08a78c..cc41e5ec18200bac57569a2ea97f1c60183ff854 100644
--- a/Code/Mantid/docs/source/algorithms/ThresholdMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ThresholdMD-v1.rst
@@ -77,3 +77,5 @@ Output:
    same bins after threshold greater than 4 [ 0.  4.  0.  0.]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/TimeSlice-v1.rst b/Code/Mantid/docs/source/algorithms/TimeSlice-v1.rst
index 773b4cdcf3376b3f571e32961f2b9df05abdae0d..927d8d945945e30223a204aaaac9a670ac8d261b 100644
--- a/Code/Mantid/docs/source/algorithms/TimeSlice-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/TimeSlice-v1.rst
@@ -38,8 +38,8 @@ Usage
 .. testcode:: ExTimeSliceSimple
 
     time_slice_results = TimeSlice(InputFiles=['IRS26173.raw'],
-                            SpectraRange=[3, 53],
-                            PeakRange=[62500, 65000])
+                                   SpectraRange=[3, 53],
+                                   PeakRange=[62500, 65000])
 
     print time_slice_results.getNames()
 
@@ -50,3 +50,5 @@ Output:
     ['irs26173_slice']
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/TransformHKL-v1.rst b/Code/Mantid/docs/source/algorithms/TransformHKL-v1.rst
index 1f603281a6d1f67ad221903c898bdf4b1f646689..04b403ae80eab55e5af363f1a7347e1a26088e4b 100644
--- a/Code/Mantid/docs/source/algorithms/TransformHKL-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/TransformHKL-v1.rst
@@ -55,3 +55,5 @@ Output:
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/TransformMD-v1.rst b/Code/Mantid/docs/source/algorithms/TransformMD-v1.rst
index 7171af5bd9dac00ee582f01d26fe506290b2b2c5..e2df2485a9273ca636b9f23cc0992f5020aad00f 100644
--- a/Code/Mantid/docs/source/algorithms/TransformMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/TransformMD-v1.rst
@@ -51,3 +51,5 @@ Performance Notes
    because the data gets written out to disk twice otherwise.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/TransformToIqt-v1.rst b/Code/Mantid/docs/source/algorithms/TransformToIqt-v1.rst
index 83480d11785c64b0edfd40982bb5bcdf0ad8006d..3e97d8178b7a0e61a3fa45b6ea8146095c7fcb97 100644
--- a/Code/Mantid/docs/source/algorithms/TransformToIqt-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/TransformToIqt-v1.rst
@@ -81,7 +81,12 @@ automatic back transform is not provided.
 References
 ----------
 
-1. U P Wild, R Holzwarth & H P Good, Rev Sci Instr 48 1621 (1977)
+1. U P Wild, R Holzwarth & H P Good, `Rev Sci Instr 48 1621 (1977) <http://dx.doi.org/10.1063/1.1134962>`_
+
+Workflow
+--------
+
+.. diagram:: TransformToIqt-v1_wkflw.dot
 
 Usage
 -----
@@ -110,3 +115,5 @@ Output:
     Resolution bins: 6
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Transpose-v1.rst b/Code/Mantid/docs/source/algorithms/Transpose-v1.rst
index 35a965646711ff48327279262a95df15700a3534..44218c1a7f57dd3aa20e13f235c0b86345c01318 100644
--- a/Code/Mantid/docs/source/algorithms/Transpose-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Transpose-v1.rst
@@ -43,3 +43,5 @@ Output:
     Rank after = ( 100 , 8 )
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/Transpose3D-v1.rst b/Code/Mantid/docs/source/algorithms/Transpose3D-v1.rst
index d8cd11d102572bcbf30e04ea7f8ddaa32507dc2b..0b31bfbfb5031a31614aab5f4d292048a9133292 100644
--- a/Code/Mantid/docs/source/algorithms/Transpose3D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/Transpose3D-v1.rst
@@ -13,3 +13,6 @@
 
 
 .. categories::
+
+.. sourcelink::
+    :filename: SINQTranspose3D
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/algorithms/USANSReduction-v1.rst b/Code/Mantid/docs/source/algorithms/USANSReduction-v1.rst
index 82c30ce709e2c36013c58516dcbe59c885d73eaf..9f069271b9a234ca772f423c6e4d8fc922296fcf 100644
--- a/Code/Mantid/docs/source/algorithms/USANSReduction-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/USANSReduction-v1.rst
@@ -23,3 +23,5 @@ Each analyzer angle is treated separately.
 More details about the procedure will be documented here as the complete reduction process becomes available.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/USANSSimulation-v1.rst b/Code/Mantid/docs/source/algorithms/USANSSimulation-v1.rst
index 87e8d025635b39070a8813ec6ef4d7defca5208e..d785a71a2e2b428dce37fce865f14762b4b0386d 100644
--- a/Code/Mantid/docs/source/algorithms/USANSSimulation-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/USANSSimulation-v1.rst
@@ -28,3 +28,5 @@ A monitor workspace is created with a fake beam profile.
 of limited use for non-developers.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/UnGroupWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/UnGroupWorkspace-v1.rst
index 99da598df31c853ef377cce9a234984fd4084315..4e4a3c37951eac3e05f6a4b1d55e0195b5ac859e 100644
--- a/Code/Mantid/docs/source/algorithms/UnGroupWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/UnGroupWorkspace-v1.rst
@@ -14,3 +14,5 @@ into several workspaces. You can perform this from the MantidPlot GUI by
 selecting the WorkspaceGroup and clicking "Ungroup".
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/UnwrapMonitor-v1.rst b/Code/Mantid/docs/source/algorithms/UnwrapMonitor-v1.rst
index f79ecbd956aa77e62a6130d0f8a7cc80876fc27b..b197d2b9de730e567ea25006d6bf5e4e682428bc 100644
--- a/Code/Mantid/docs/source/algorithms/UnwrapMonitor-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/UnwrapMonitor-v1.rst
@@ -109,3 +109,5 @@ Output:
     JoinWaveLength is: 1.42417223264
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/UnwrapSNS-v1.rst b/Code/Mantid/docs/source/algorithms/UnwrapSNS-v1.rst
index 813187b010a3688d70e9b4474d556b0b4d095ddf..985747860f3600590319c7feed0415d4c5f8fdc2 100644
--- a/Code/Mantid/docs/source/algorithms/UnwrapSNS-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/UnwrapSNS-v1.rst
@@ -65,3 +65,5 @@ Output:
     Output 0.0
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/UpdateInstrumentFromFile-v1.rst b/Code/Mantid/docs/source/algorithms/UpdateInstrumentFromFile-v1.rst
index e4987aae5d15a37518729f5d6f5f33379f39e7f3..d827e829814e1371d31ae3a79212afb5ede4a0d7 100644
--- a/Code/Mantid/docs/source/algorithms/UpdateInstrumentFromFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/UpdateInstrumentFromFile-v1.rst
@@ -162,3 +162,5 @@ Usage
 
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/UpdatePeakParameterTableValue-v1.rst b/Code/Mantid/docs/source/algorithms/UpdatePeakParameterTableValue-v1.rst
index f95aa846112fdf934ef242f4a8c30997693015de..4628e8697d3c456900937dfb3bc82f0650fa3412 100644
--- a/Code/Mantid/docs/source/algorithms/UpdatePeakParameterTableValue-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/UpdatePeakParameterTableValue-v1.rst
@@ -78,3 +78,5 @@ Output:
     Value after 1.00
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/UpdateScriptRepository-v1.rst b/Code/Mantid/docs/source/algorithms/UpdateScriptRepository-v1.rst
index 3029a0f8ac3fdf1c925c1dd202e3721627db8ae4..a5800a9a21756d7ec15f16d7042fa4bf37ca7441 100644
--- a/Code/Mantid/docs/source/algorithms/UpdateScriptRepository-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/UpdateScriptRepository-v1.rst
@@ -20,3 +20,5 @@ Usage
     UpdateScriptRepository()
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/UploadRemoteFile-v1.rst b/Code/Mantid/docs/source/algorithms/UploadRemoteFile-v1.rst
index 400f65c4bc87c8995d91403bf0701d599319ba6d..651dca4bb1b4febe1c098fad59582d6d7bb85368 100644
--- a/Code/Mantid/docs/source/algorithms/UploadRemoteFile-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/UploadRemoteFile-v1.rst
@@ -17,3 +17,5 @@ For more details, see the `remote job submission API
 docs <http://www.mantidproject.org/Remote_Job_Submission_API>`_.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/UploadRemoteFile-v2.rst b/Code/Mantid/docs/source/algorithms/UploadRemoteFile-v2.rst
index adb2ffa4433579f269aadb5d596ecd820dff7cb2..64e73c925b4502edba067a1024da2739ec58f4fc 100644
--- a/Code/Mantid/docs/source/algorithms/UploadRemoteFile-v2.rst
+++ b/Code/Mantid/docs/source/algorithms/UploadRemoteFile-v2.rst
@@ -35,3 +35,5 @@ the compute resource uses the Mantid remote job submission API as job
 manager (underlying remote job scheduling mechanism).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/UserFunction1D-v1.rst b/Code/Mantid/docs/source/algorithms/UserFunction1D-v1.rst
index 954f06c9652b73fff5132887a0a710afd365d6f9..1d6a7543bf0f30eee1a89163fe09d090f06fa954 100644
--- a/Code/Mantid/docs/source/algorithms/UserFunction1D-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/UserFunction1D-v1.rst
@@ -95,3 +95,5 @@ In this example the fitting function is a\*exp(-(x-c)^2\*s). The
 parameter *s* is fixed.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/VesuvioL1ThetaResolution-v1.rst b/Code/Mantid/docs/source/algorithms/VesuvioL1ThetaResolution-v1.rst
index 65d2963dd3af34a6617fd5b84d8116e7d903abc5..7515964d0829ea72b58ffbf7577a1d7314858278 100644
--- a/Code/Mantid/docs/source/algorithms/VesuvioL1ThetaResolution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/VesuvioL1ThetaResolution-v1.rst
@@ -42,3 +42,5 @@ Output:
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/VesuvioResolution-v1.rst b/Code/Mantid/docs/source/algorithms/VesuvioResolution-v1.rst
index 4d61c9e29e488e3526d95d85269c3c3166d1bb74..e6231c45a987c394a98c6cb6565513802594cff9 100644
--- a/Code/Mantid/docs/source/algorithms/VesuvioResolution-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/VesuvioResolution-v1.rst
@@ -37,3 +37,5 @@ Output:
    Resolution in microsecond and A^-1.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/ViewBOA-v1.rst b/Code/Mantid/docs/source/algorithms/ViewBOA-v1.rst
index c26024814abbe8e1715f38bca76460105ade87d1..b5f5f02969cb25ffee068e48f8a144af3aee78f3 100644
--- a/Code/Mantid/docs/source/algorithms/ViewBOA-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/ViewBOA-v1.rst
@@ -57,3 +57,5 @@ In addition, the three workspaces described above are available, plotting them s
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/VisionLoadDetectorTable-v1.rst b/Code/Mantid/docs/source/algorithms/VisionLoadDetectorTable-v1.rst
index 05723a89f42dd80092fb70962ff67f6574c5eafc..fce9ae6bf565f7d4bca43c966ffcc6b754f11861 100644
--- a/Code/Mantid/docs/source/algorithms/VisionLoadDetectorTable-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/VisionLoadDetectorTable-v1.rst
@@ -19,3 +19,5 @@ from a CSV file into a TableWorkspace.
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/WeightedMean-v1.rst b/Code/Mantid/docs/source/algorithms/WeightedMean-v1.rst
index 4227419b4e2806634d74512eaa3c93b32d224d8f..c23f8b132457ae3f287836fab845f25635920b2c 100644
--- a/Code/Mantid/docs/source/algorithms/WeightedMean-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/WeightedMean-v1.rst
@@ -47,3 +47,5 @@ Output:
       0.9486833  0.9486833  0.9486833]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/WeightedMeanMD-v1.rst b/Code/Mantid/docs/source/algorithms/WeightedMeanMD-v1.rst
index bdabae99fa9440b620cf89c5434a6c2fb9416b6c..a3cfcda5467970de2f6d4d99ef38d620d621a6dd 100644
--- a/Code/Mantid/docs/source/algorithms/WeightedMeanMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/WeightedMeanMD-v1.rst
@@ -15,3 +15,5 @@ algorithm workings. Both inputs must be MDHistoWorkspaces, the algorithm
 will not run with MDEventWorkspaces.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/WeightedMeanOfWorkspace-v1.rst b/Code/Mantid/docs/source/algorithms/WeightedMeanOfWorkspace-v1.rst
index 7047b77f1f0926b2209eb394a9f15b55233556f3..8c512b7c946d6209ed404878ad9832716fb092d7 100644
--- a/Code/Mantid/docs/source/algorithms/WeightedMeanOfWorkspace-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/WeightedMeanOfWorkspace-v1.rst
@@ -41,3 +41,5 @@ Output:
     Weighted Mean Error of Workspace: [ 1.2482116]
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/WienerSmooth-v1.rst b/Code/Mantid/docs/source/algorithms/WienerSmooth-v1.rst
index 8b9fda2ebbcb3e1041ab15763ef92f8456bfb5bc..bc20a9709c73db2cf919da55c6431504cffe6f75 100644
--- a/Code/Mantid/docs/source/algorithms/WienerSmooth-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/WienerSmooth-v1.rst
@@ -80,3 +80,5 @@ Usage
 
 .. categories::
 
+.. sourcelink::
+
diff --git a/Code/Mantid/docs/source/algorithms/XorMD-v1.rst b/Code/Mantid/docs/source/algorithms/XorMD-v1.rst
index ca969f338285f717895624f7eaedbd9491a3b17a..5187c9027cfd1f479f8dac1b5eab102e5f77c6c6 100644
--- a/Code/Mantid/docs/source/algorithms/XorMD-v1.rst
+++ b/Code/Mantid/docs/source/algorithms/XorMD-v1.rst
@@ -14,3 +14,5 @@ MDHistoWorkspaces. The xor operation is performed element-by-element. A
 signal of 0.0 means "false" and any non-zero signal is "true".
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/algorithms/index.rst b/Code/Mantid/docs/source/algorithms/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..89cbd017ac342eae10086273b75da70c059496ec
--- /dev/null
+++ b/Code/Mantid/docs/source/algorithms/index.rst
@@ -0,0 +1,18 @@
+   It contains a hidden root toctree directive so that Sphinx
+   has an internal index of all of the pages and doesn't
+   produce a plethora of warnings about most documents not being in
+   a toctree.
+   See http://sphinx-doc.org/tutorial.html#defining-document-structure
+
+.. _Algorithms List:
+
+==========
+Algorithms
+==========
+
+.. toctree::
+   :hidden:
+   :glob:
+   :maxdepth: 1
+
+   ./*
diff --git a/Code/Mantid/docs/source/concepts/InstrumentDataService.rst b/Code/Mantid/docs/source/concepts/InstrumentDataService.rst
index a9e37ee33d4c6e917bab3380400d25434cdc3e3b..3783dd927d4e2d293f2866a0fc98bb7b5e1bc354 100644
--- a/Code/Mantid/docs/source/concepts/InstrumentDataService.rst
+++ b/Code/Mantid/docs/source/concepts/InstrumentDataService.rst
@@ -12,6 +12,15 @@ are created during a user session. Whenever an instrument definition is
 loaded it is saved in the IDS and further workspaces that refer to the
 same instrument share the same definition.
 
+How does it work?
+-----------------
+The Instrument data service is similar to all of the other :ref:`Data Services <Data Service>`
+in mantid and is implemented as a simple dictionary object holding keys referring to shared pointers to the base
+instrument definitions.  The key is a compound string made up of the Instrument name with a sha1 hash of the text
+of the instrument definition appended.  For those detail minded among you, the has is derived specifically by
+first converting any lines endings within the definition to linux line endings, and then trimming any white space
+from the start and end of the definition before calculating the sha1 checksum.
+
 Extracting an instrument from the Instrument Data Service
 ---------------------------------------------------------
 
@@ -20,14 +29,21 @@ to do as it is all handled by the framework internals. Normally you
 would access the instrument relating to a workspace directly though that
 workspace.
 
-``workspace->getInstrument();``
 
-However if you really did want to access the instrument from the IDS (as
-a :ref:`Shared Pointer <Shared Pointer>`), although this would then lack
-any workspace specific alterations or properties.
+**Example: Getting the instrument from a workspace**
+
+.. testcode:: GetInstrument
+
+    ws = CreateSampleWorkspace("Event",NumBanks=1,BankPixelWidth=1)
+    inst = ws.getInstrument()
+    print inst.getSource().getPos()
+
+Output:
+
+.. testoutput:: GetInstrument
 
-``boost::shared_ptr``\ \ `` intrument = workspace->getInstrument();``
+    [0,0,-10]
 
 
 
-.. categories:: Concepts
\ No newline at end of file
+.. categories:: Concepts
diff --git a/Code/Mantid/docs/source/concepts/InstrumentDefinitionFile.rst b/Code/Mantid/docs/source/concepts/InstrumentDefinitionFile.rst
index 1b991a2258435ea048e366b4603d7b1342d33551..ac1f8bd2050f5373672773cfd8f65ebb92ce05d4 100644
--- a/Code/Mantid/docs/source/concepts/InstrumentDefinitionFile.rst
+++ b/Code/Mantid/docs/source/concepts/InstrumentDefinitionFile.rst
@@ -2,6 +2,8 @@
 
 Instrument Definition File
 ==========================
+.. contents::
+   :depth: 3
 
 .. role:: xml(literal)
    :class: highlight
@@ -15,6 +17,7 @@ To get started creating an IDF follow the instructions on the :ref:`Create an
 IDF <Create_an_IDF>` page, then return here for more detailed
 explanations of syntax and structures.
 
+
 Introduction
 ------------
 
@@ -125,28 +128,55 @@ An IDF can be loaded manually from any file with extension .xml or .XML
 using :ref:`LoadInstrument <algm-LoadInstrument>` or
 :ref:`LoadEmptyInstrument <algm-LoadEmptyInstrument>`.
 
-IDFs located in the MantidInstall instrument directory are automatically
-loaded together with e.g. the loading of raw data file. Such files are
+When loading a data file if the file has an embedded mantid instrument definition
+(as in some nexus files) then this one will be used, otherwise we will attempt to
+determine a matching file from the IDFs located in the MantidInstall instrument directory.
+
+To be found automatically Instrument definition files are
 required to have the format INSTRUMENTNAME\_DefinitionANYTHING.xml,
 where INSTRUMENTNAME is the name of the instrument and ANYTHING can be
 any string including an empty string. Where more than one IDF is defined
 for an instrument the appropriate IDF is loaded based on its
-:ref:`valid-from <Top level instrument>` and
-`valid-to <Top level instrument>` dates. Note for this to work
+:ref:`valid-from <Top level instrument>` date. Note for this to work
 the :ref:`Workspace <Workspace>` for which an IDF is loaded into must
 contain a record of when the data were collected. This information is
 taken from the workspace's :ref:`Run <Run>` object, more specifically the
 *run\_start* property of this object.
 
-In order to programmatically determine which is the correct filename for
-a given date/time you can access a helper method from Python:
+You can determine which file would be selected for an instrument and date
+using the following python:
+
+**Example: Getting the right instrument filename**
+
+.. testcode:: getInstrumentFilename
+
+    # if no date is given it will default to returning the IDF filename that is currently valid.
+    from mantid.api import ExperimentInfo
+    currentIDF = ExperimentInfo.getInstrumentFilename("ARCS")
+    otherIDF = ExperimentInfo.getInstrumentFilename("ARCS", "2012-10-30T00:00:00")
+
+
+Downloaded Instrument File Definitions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+As well as the instrument definitions that ship with Mantid, mantid can also download updates
+or new instrument definitions when it is started.  This is a great way of keeping the files
+current without needing a new release of Mantid for each instrument change.
+
+Mantid does not overwrite files in the MantidInstall instrument directory when downloading files,
+it writes to another location that is a little different on windows and linux.
+
+For windows:
+    %appdata%\\mantidproject\\instrument
 
-.. code-block:: python
+For Linux:
+    ~/.mantid/instrument
 
-   import mantid.api
-   # if no date is given it will default to returning the IDF filename that is currently valid.
-   currentIDF = mantid.api.ExperimentInfo.getInstrumentFilename("ARCS")
-   otherIDF = mantid.api.ExperimentInfo.getInstrumentFilename("ARCS", "2012-10-30")
+You should not edit files there, or add new ones as the may be deleted or overwritten.
+If you have a change to an instrument definition you wish to use then edit a copy in the
+MantidInstall instrument directory, but updated the valid-from date so mantid will pick that one
+up in preference.  Or if you just wish to force a particular instrument definition for a particular
+workspace just run :ref:`LoadInstrument <algm-LoadInstrument>` for that workspace.
 
 More detailed descriptions of various parts of the IDF
 ------------------------------------------------------
@@ -1238,9 +1268,7 @@ apply facing.
 ^^^^^^^^^
 
 Originally introduced to handle detector position coordinates as defined
-by the
-`Ariel <http://www.isis.rl.ac.uk/Disordered/GEM/ariel/index_ariel.htm>`__
-software.
+by the Ariel software.
 
 .. code-block:: xml
 
diff --git a/Code/Mantid/docs/source/concepts/PointAndSpaceGroups.rst b/Code/Mantid/docs/source/concepts/PointAndSpaceGroups.rst
index 57a52cd3acf978d68f265af15859613f64439771..6867c9b4edacef5dbb4ebdebb096cbbb42a57a82 100644
--- a/Code/Mantid/docs/source/concepts/PointAndSpaceGroups.rst
+++ b/Code/Mantid/docs/source/concepts/PointAndSpaceGroups.rst
@@ -238,31 +238,125 @@ Please note that for hexagonal and trigonal space groups, where translations of
     2: [0.333333,0.666667,0.75]
     3: [0.666667,0.333333,0.25]
     4: [0.666667,0.333333,0.75]
-    
-Furthermore, it is possible to create a PointGroup-object from a SpaceGroup object in order to obtain information about the crystal system and to perform the Miller index operations provided by PointGroup. For this, PointGroupFactory has a special method:
+
+Closely related to the generation of equivalent coordinates is the site symmetry group, which leaves a point unchanged:
+
+.. testcode:: ExSiteSymmetryGroupInBuilt
+
+    from mantid.geometry import SpaceGroupFactory, SymmetryElementFactory, SymmetryElement
+
+    def getFullElementSymbol(symmetryElement):
+    # Dictionary for mapping enum values to short strings
+        rotationSenseDict = {
+                                SymmetryElement.RotationSense.Positive: '+',
+                                SymmetryElement.RotationSense.Negative: '-',
+                                SymmetryElement.RotationSense.None: ''
+                            }
+        hmSymbol = element.getHMSymbol()
+        rotationSense = rotationSenseDict[element.getRotationSense()]
+        axis = str(element.getAxis())
+
+        return hmSymbol + rotationSense + ' ' + axis
+
+
+
+    sg = SpaceGroupFactory.createSpaceGroup("P 6/m")
+
+    position = [1./3., 2./3., 0.25]
+    siteSymmetryGroup = sg.getSiteSymmetryGroup(position)
+
+    print "Order of the site symmetry group:", siteSymmetryGroup.getOrder()
+    print "Group elements:"
+    for i, op in enumerate(siteSymmetryGroup.getSymmetryOperations()):
+        element = SymmetryElementFactory.createSymElement(op)
+        print str(i + 1) + ":", op.getIdentifier(), "(" + getFullElementSymbol(element) + ")"
+
+The group contains three symmetry operations:
+
+.. testoutput:: ExSiteSymmetryGroupInBuilt
+
+    Order of the site symmetry group: 3
+    Group elements:
+    1: -x+y,-x,z (3- [0,0,1])
+    2: -y,x-y,z (3+ [0,0,1])
+    3: x,y,z (1 [0,0,0])
+
+An extended example below shows an algorithm to derive the site symmetry group.
+
+Furthermore, it is possible to create a PointGroup-object from a SpaceGroup object in order to obtain information about the crystal system and to perform the Miller index operations provided by PointGroup. For this, PointGroupFactory has a special method, but the point group can also be conveniently created directly from the space group object:
 
 .. testcode:: ExPointGroupFromSpaceGroup
 
     from mantid.geometry import PointGroupFactory, SpaceGroupFactory
 
     # Create space group Fd-3m (for example silicon or diamond)
-    sg = SpaceGroupFactory.createSpaceGroup("F d -3 m")
-    
-    pg = PointGroupFactory.createPointGroupFromSpaceGroup(sg)
-    
-    print "Space group no.", sg.getNumber(), "has point group:", pg.getHMSymbol()
+    sg_diamond = SpaceGroupFactory.createSpaceGroup("F d -3 m")
+    pg_diamond = PointGroupFactory.createPointGroupFromSpaceGroup(sg_diamond)
+
+    print "Space group no.", sg_diamond.getNumber(), "has point group:", pg_diamond.getHMSymbol()
+
+    # Related space group F-43m (sphalerite)
+    sg_zincblende = SpaceGroupFactory.createSpaceGroup("F -4 3 m")
+    pg_zincblende = sg_zincblende.getPointGroup()
+
+    print "Space group no.", sg_zincblende.getNumber(), "has point group:", pg_zincblende.getHMSymbol()
     
 The script prints the point group of the space group in question:
     
 .. testoutput:: ExPointGroupFromSpaceGroup
 
     Space group no. 227 has point group: m-3m
+    Space group no. 216 has point group: -43m
+
+Sometimes it's useful to reverse the above process - which is not exactly possible, because several space groups may map to the same point group. The space group factory does however provide a way to get all space group symbols that belong to a certain point group:
+
+.. testcode:: ExSpaceGroupFactoryPointGroup
+
+    from mantid.geometry import PointGroupFactory, SpaceGroupFactory
+
+    pg = PointGroupFactory.createPointGroup("m-3")
+
+    print "Space groups with point group m-3:", SpaceGroupFactory.getSpaceGroupsForPointGroup(pg)
+
+The example produces the following output:
+
+.. testoutput:: ExSpaceGroupFactoryPointGroup
+
+    Space groups with point group m-3: ['F d -3','F m -3','I a -3','I m -3','P a -3','P m -3','P n -3']
+
+While PointGroup offers useful methods to handle reflections, some information can only be obtained from the space group. The presence of translational symmetry causes the contributions from symmetrically equivalent atoms to the structure factor of certain reflections to cancel out completely so that it can not be observed. These systematically absent reflections are characteristic for each space group, a fact that can be used to determine the space group from measured reflection intensities. The following script shows how to check a few reflections:
+
+.. testcode:: ExSpaceGroupReflectionIsAllowed
+
+    from mantid.kernel import V3D
+    from mantid.geometry import SpaceGroupFactory
+
+    sg = SpaceGroupFactory.createSpaceGroup("F d d d")
+
+    hkls = [V3D(0, 0, 2), V3D(0, 0, 4), V3D(0, 0, 6), V3D(0, 0, 8)]
+
+    for hkl in hkls:
+        print hkl, "is allowed:", sg.isAllowedReflection(hkl)
+
+Because space group :math:`Fddd` contains diamond glide planes, only :math:`00l` reflections with :math:`l=4n` are allowed. The script gives the correct answer for these reflections:
+
+.. testoutput:: ExSpaceGroupReflectionIsAllowed
+
+    [0,0,2] is allowed: False
+    [0,0,4] is allowed: True
+    [0,0,6] is allowed: False
+    [0,0,8] is allowed: True
+
+:ref:`Below <SpaceGroupCheck>` is a more elaborate example which shows one possibility to find a likely candidate space group for a list of reflections. Please note that these reflection conditions only covers the ones listed for the "general position" in ITA. When atoms are located on special positions, there may be additional conditions that need to be fulfilled. A notable example is the :math:`222`-reflection in Silicon. It is forbidden because the silicon atom is located on the :math:`8a` position, which introduces additional reflection conditions.
     
 Very similar constructions are available in C++ as well, as shown in the API documentation.
     
 Other ways of using groups in Mantid
 ------------------------------------
 
+Retrieving information about space group symmetry
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 The previous two sections demonstrated how to perform common tasks using point and space groups in Mantid. With the available Python tools it is however possible to obtain other information as well. One useful method that both PointGroup and SpaceGroup expose is to query the symmetry operations of the group, although in string format:
 
 .. testcode:: ExGroupSymmetryOperationStrings
@@ -365,6 +459,9 @@ This prints the following information:
     
 Looking up space group number 62 (:math:`Pnma` from the example) in ITA shows that the full Hermann-Mauguin symbol for that space group is :math:`P 2_1/n 2_1/m 2_1/a`. The short script gives us all of this information, since there are no translations (the primitive lattice translations are implicit) it must be a primitive lattice (:math:`P`) and all directions encoded in the HM-symbol contain a :math:`2_1` screw axis perpendicular to a glide or mirror plane.
 
+Extracting the site symmetry group
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 With the space group information it's also possible to derive information about site symmetry at specific coordinates and construct the site symmetry group, which is the sub-group of the point group that contains the symmetry operations of the space group that leave the point unchanged. In the following script, the site symmetry group of the :math:`6h` position (coordinates :math:`x, 2x, 1/4`) in space group :math:`P6_3/mmc` (no. 194) is determined:
 
 .. testcode:: ExSiteSymmetryGroup
@@ -415,8 +512,100 @@ The script produces the following output:
     Order of space group: 24
     Site multiplicity: 6
 
-There are four symmmetry operations that leave the coordinates :math:`x,2x,1/4` unchanged, they fulfill the group axioms. Dividing the order of the space group by the order of the site symmetry group gives the correct site multiplicity 6. 
-    
+There are four symmmetry operations that leave the coordinates :math:`x,2x,1/4` unchanged, they fulfill the group axioms. Dividing the order of the space group by the order of the site symmetry group gives the correct site multiplicity 6.
+
+.. _SpaceGroupCheck:
+
+Checking a list of unique reflections for possible space groups
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Building on the example above which showed how to check whether a reflection is allowed by the symmetry operations contained in the space group, the next script goes a bit further. The starting point is a list of symmetry independent reflections with the information whether it's observed or not. A list like can usually be obtained at some point during data reduction after intensities have been determined, which allows for the derivation of the Laue class (and thus, merging the reflections so only unique reflections are available) and decision if a reflection is observed or not (for example :math:`I/\sigma(I) > 3`). Covering all these steps is beyond the scope of this document, so it's assumed that a list with pairs of HKL and a boolean value (`True` for "observed" and `False` for "not observed") is available. Furthermore it's assumed that the space group belongs to Laue class :math:`m\bar{3}m`.
+
+.. testcode:: ExSpaceGroupCheck
+
+    from mantid.geometry import SpaceGroupFactory, PointGroupFactory
+
+    # Small helper function that distinguishes three cases:
+    #   0: The reflection is observed and allowed or not observed and not allowed
+    #  -1: The reflection is allowed, but not observed - additional reflection condition is present
+    #   1: The reflection is observed, but not allowed - systematic absence violation
+    def conditionsMatch(spaceGroup, hkl, isObserved):
+        isAllowed = spaceGroup.isAllowedReflection(hkl)
+
+        if isAllowed == isObserved:
+            return 0
+        elif isAllowed and not isObserved:
+            return -1
+        else:
+            return 1
+
+    # Small helper function that returns the frequency of values in a list. Can be replaced with Counter from collections in Python >= 2.7
+    def getValueFrequencies(values):
+        frequencyDict = {}
+
+        uniqueValues = set(values)
+        for val in uniqueValues:
+            frequencyDict[val] = values.count(val)
+
+        return frequencyDict
+
+    # List of reflections with "observation status" from a hypothetical experiment.
+    reflections = [([1,0,0], False), ([1,1,0], False), ([1,1,1], True), ([2,0,0], False), ([2,1,0], False), ([2,1,1], False),
+                ([2,2,0], True), ([2,2,1], False), ([2,2,2], False), ([3,0,0], False), ([3,1,0], False), ([3,1,1], True),
+                ([3,2,0], False), ([3,2,1], False), ([3,2,2], False), ([3,3,0], False), ([3,3,1], True), ([3,3,2], False),
+                ([3,3,3], True), ([4,0,0], True), ([4,1,0], False), ([4,1,1], False), ([4,2,0], False), ([4,2,1], False),
+                ([4,2,2], True), ([4,3,0], False), ([4,3,1], False), ([4,3,2], False), ([4,3,3], False), ([4,4,0], True),
+                ([4,4,1], False), ([4,4,2], False), ([4,4,3], False), ([5,0,0], False), ([5,1,0], False), ([5,1,1], True),
+                ([5,2,0], False), ([5,2,1], False), ([5,2,2], False), ([5,3,0], False), ([5,3,1], True), ([5,3,2], False),
+                ([5,3,3], True), ([5,4,0], False), ([5,4,1], False), ([5,4,2], False), ([6,0,0], False), ([6,1,0], False),
+                ([6,1,1], False), ([6,2,0], True), ([6,2,1], False), ([6,2,2], False), ([6,3,0], False), ([6,3,1], False)]
+
+    reflectionCount = len(reflections)
+    print "There are", reflectionCount, "reflections to consider."
+
+    # Check space groups and store results in a list
+    spaceGroupMatchList = []
+
+    # As described above, point group m-3m is assumed
+    pg = PointGroupFactory.createPointGroup("m-3m")
+    possibleSpaceGroups = SpaceGroupFactory.getSpaceGroupsForPointGroup(pg)
+    for sgSymbol in possibleSpaceGroups:
+        sgObject = SpaceGroupFactory.createSpaceGroup(sgSymbol)
+
+        # For each (hkl, observed) pair obtain whether this matches the space group's conditions
+        conditionsMatchList = [conditionsMatch(sgObject, x[0], x[1]) for x in reflections]
+
+        # In this list, each reflection has a dictionary with frequency of the values 0, -1 and 1
+        # (see the helper functions defined above).
+        spaceGroupMatchList.append((sgSymbol, getValueFrequencies(conditionsMatchList)))
+
+    # Sort the list according to abscence violations and additional reflection conditions
+    spaceGroupMatchList.sort(key=lambda x: (x[1].get(1, 0), x[1].get(-1, 0)))
+
+    # Print some information about the most likely matches
+    print "5 best matching space groups:"
+
+    for sgPair in spaceGroupMatchList[:5]:
+        sgStatus = sgPair[1]
+        print "    {0}: {1} absence violations, {2: >2} additional absences, {3: >2} matches".format(sgPair[0], sgStatus.get(1, 0), sgStatus.get(-1, 0), sgStatus.get(0, 0))
+
+    print "The best matching space group is:", spaceGroupMatchList[0][0]
+
+The script should produce the following output:
+
+.. testoutput:: ExSpaceGroupCheck
+
+    There are 54 reflections to consider.
+    5 best matching space groups:
+        F d -3 m: 0 absence violations,  3 additional absences, 51 matches
+        F m -3 m: 0 absence violations,  6 additional absences, 48 matches
+        P n -3 m: 0 absence violations, 31 additional absences, 23 matches
+        P m -3 m: 0 absence violations, 42 additional absences, 12 matches
+        F d -3 c: 6 absence violations,  3 additional absences, 45 matches
+    The best matching space group is: F d -3 m
+
+In this case, the script gave the right answer, because the list of reflections was created using the crystal structure of silicon, which, as mentioned above, belongs to space group type :math:`Fd\bar{3}m`. The systematic absences derived from the symmetry operations explain all observations (and absences) expcept three. These are caused by the Si-atom on a special position. The presence of atoms in special positions can lead to incorrect determination of the space group because the introduced additional reflection conditions may match those of a different space group.
+
 .. [ITAPointGroups] International Tables for Crystallography (2006). Vol. A, ch. 10.1, p. 762
 
 .. [Shmueli84] U. Shmueli, Acta Crystallogr. A, 40, p. 559 `DOI: 10.1107/S0108767384001161 <http://dx.doi.org/10.1107/S0108767384001161>`_)
diff --git a/Code/Mantid/docs/source/concepts/PropertiesFile.rst b/Code/Mantid/docs/source/concepts/PropertiesFile.rst
index 2f9aac4024b0e8baa1e432f63c163c052128e237..59990e7afae65e21147b9303ce32575b7c62db42 100644
--- a/Code/Mantid/docs/source/concepts/PropertiesFile.rst
+++ b/Code/Mantid/docs/source/concepts/PropertiesFile.rst
@@ -96,24 +96,48 @@ Directory Properties
 Logging Properties
 ******************
 
-The details of configuring the logging functionality within Mantid will not be explained here. For those who want more details look into the POCO logging classes and the Log4J logging module that it closely emulates. There are several comments in the properties file itself that explain the configuration we provide by default.However there are some obvious areas that you may want to alter and those properties are detailed below.
-
-+----------------------------------------+---------------------------------------------------+-----------------------+
-|Property                                |Description                                        |Example value          |
-+========================================+===================================================+=======================+
-|logging.loggers.root.level              |Defines the lowest level of messages to be output  |debug, informtion,     |
-|                                        |by the system. The default is information, but this|notice, warning,       |
-|                                        |can be lowered to debug for more detailed feedback.|error, critical        |
-|                                        |                                                   |or fatal               |
-+----------------------------------------+---------------------------------------------------+-----------------------+
-|logging.channels.fileFilterChannel.level|The lowest level messages to output to the log     |debug, informtion,     |
-|                                        |file. The default is warning, but this can be      |notice, warning,       |
-|                                        |lowered to debug for more detailed feedback. The   |error, critical        |
-|                                        |higher level of this and logging.loggers.root.level|or fatal               |
-|                                        |will apply.                                        |                       |
-+----------------------------------------+---------------------------------------------------+-----------------------+
-|logging.channels.fileChannel.path       | The Path to the log file.                         |../logs/mantid.log     |
-+----------------------------------------+---------------------------------------------------+-----------------------+
+The details of configuring the logging functionality within Mantid will not be explained here. 
+For those who want more details look into the POCO logging classes and the Log4J logging module 
+that it closely emulates. There are several comments in the properties file itself that explain 
+the configuration we provide by default.  However there are some obvious areas that you may want 
+to alter and those properties are detailed below.
+
++-------------------------------------------+---------------------------------------------------+-----------------------+
+|Property                                   |Description                                        |Example value          |
++===========================================+===================================================+=======================+
+|logging.loggers.root.level                 |Defines the lowest level of messages to be output  |debug, information,    |
+|                                           |by the system, and will override lower settings in |notice, warning,       |
+|                                           |filterChannels. The default is information, but    |error, critical        |
+|                                           |this can be lowered to debug for more detailed     |or fatal               |
+|                                           |feedback.                                          |                       |
+|                                           |                                                   |                       |
++-------------------------------------------+---------------------------------------------------+-----------------------+
+|logging.channels.fileFilterChannel.level   |The lowest level messages to output to the log     |debug, information,    |
+|                                           |file. The default is warning, but this can be      |notice, warning,       |
+|                                           |lowered to debug for more detailed feedback. The   |error, critical        |
+|                                           |higher level of this and logging.loggers.root.level|or fatal               |
+|                                           |will apply.                                        |                       |
++-------------------------------------------+---------------------------------------------------+-----------------------+
+|logging.channels.consoleFilterChannel.level|The lowest level messages to output to the console.|debug, information,    |
+|                                           | The default is warning, but this can be           |notice, warning,       |
+|                                           |lowered to debug for more detailed feedback. The   |error, critical        |
+|                                           |higher level of this and logging.loggers.root.level|or fatal               |
+|                                           |will apply.                                        |                       |
++-------------------------------------------+---------------------------------------------------+-----------------------+
+|logging.channels.fileChannel.path          | The Path to the log file.                         |../logs/mantid.log     |
++-------------------------------------------+---------------------------------------------------+-----------------------+
+The logging priority levels for the file logging and console logging can also be adjusted in python using the commands:
+
+.. testcode:: LoggingConfigExample
+
+  #Set the console to log at debug level on above (7=debug)
+  ConfigService.setConsoleLogLevel(7)
+  #Set the file to only log at critical level (2=critical)
+  ConfigService.setConsoleLogLevel(2)
+  
+.. testoutput:: AddSampleLogExample 
+
+
 
 MantidPlot Properties
 *********************
diff --git a/Code/Mantid/docs/source/concepts/SymmetryGroups.rst b/Code/Mantid/docs/source/concepts/SymmetryGroups.rst
index 538ebd222bde86a386d16ef011ef2526e414d534..ea82bb11b3b0de380b3111c516f8d184922ce819 100644
--- a/Code/Mantid/docs/source/concepts/SymmetryGroups.rst
+++ b/Code/Mantid/docs/source/concepts/SymmetryGroups.rst
@@ -195,7 +195,7 @@ Symmetry elements
 
 Sometimes it's easier to describe symmetry in terms of the symmetry element that is associated to an operation. Several notation systems exist for these elements, but Hermann-Mauguin symbols are most commonly used in crystallography. Information on how to read these symbols can be found in ITA. Except identity, inversions and translations, all symmetry elements have a characteristic axis. In case of mirror and glide planes, this axis is perpendicular to the plane.
 
-Section 11.2 in the same book describes how to derive symmetry elements from matrix and vector pairs. The algorithms from that text are implemented in Mantid as well, so after a symmetry operation has been created using the factory, another factory can be used to generate the symmetry element corresponding to the operation. The resulting object can be queried for its Hermann-Mauguin symbol and its axis. For identity, inversion and translation this returns ``[0, 0, 0]``.
+Section 11.2 in the same book describes how to derive symmetry elements from matrix and vector pairs. The algorithms from that text are implemented in Mantid as well, so after a symmetry operation has been created using the factory, another factory can be used to generate the symmetry element corresponding to the operation. The resulting object can be queried for its Hermann-Mauguin symbol, its axis and its rotation sense (only for rotation axes). For identity, inversion and translation this returns ``[0, 0, 0]``.
 
 .. testcode :: ExSymmetryElement
 
@@ -206,6 +206,7 @@ Section 11.2 in the same book describes how to derive symmetry elements from mat
 
     print "The element corresponding to 'x,y,-z' has the following symbol:", element.getHMSymbol()
     print "The mirror plane is perpendicular to:", element.getAxis()
+    print "Sense of rotation (or None):", element.getRotationSense()
     
 In this case, it's a mirror plane perpendicular to the :math:`z`-axis:
     
@@ -213,6 +214,7 @@ In this case, it's a mirror plane perpendicular to the :math:`z`-axis:
 
     The element corresponding to 'x,y,-z' has the following symbol: m
     The mirror plane is perpendicular to: [0,0,1]
+    Sense of rotation (or None): None
     
 Symmetry groups
 ---------------
diff --git a/Code/Mantid/docs/source/diagrams/ApplyPaalmanPingsCorrection-v1_canscaleonly_wkflw.dot b/Code/Mantid/docs/source/diagrams/ApplyPaalmanPingsCorrection-v1_canscaleonly_wkflw.dot
new file mode 100644
index 0000000000000000000000000000000000000000..1a93889d639d645d6fb349ad23760f0327a43d51
--- /dev/null
+++ b/Code/Mantid/docs/source/diagrams/ApplyPaalmanPingsCorrection-v1_canscaleonly_wkflw.dot
@@ -0,0 +1,24 @@
+digraph ApplyPaalmanPingsCorrection_CanScaleOnly {
+  label="ApplyPaalmanPingsCorrection Container Scale Only Flowchart"
+  $global_style
+
+  subgraph params {
+    $param_style
+    SampleWorkspace
+    CanWorkspace
+    CanScaleFactor
+    OutputWorkspace
+  }
+
+  subgraph algorithms {
+    $algorithm_style
+    Scale
+    Minus
+  }
+
+  CanWorkspace    -> Scale
+  CanScaleFactor  -> Scale
+  Scale           -> Minus           [label="RHSWorkspace"]
+  SampleWorkspace -> Minus           [label="LHSWorkspace"]
+  Minus           -> OutputWorkspace
+}
diff --git a/Code/Mantid/docs/source/diagrams/ApplyPaalmanPingsCorrection-v1_fullcorrection_wkflw.dot b/Code/Mantid/docs/source/diagrams/ApplyPaalmanPingsCorrection-v1_fullcorrection_wkflw.dot
new file mode 100644
index 0000000000000000000000000000000000000000..85491851353a3d05f79630c43c8ca91439eee066
--- /dev/null
+++ b/Code/Mantid/docs/source/diagrams/ApplyPaalmanPingsCorrection-v1_fullcorrection_wkflw.dot
@@ -0,0 +1,58 @@
+digraph ApplyPaalmanPingsCorrection_FullCorrection {
+  label="ApplyPaalmanPingsCorrection Full Corrections Flowchart"
+  $global_style
+
+  subgraph descision {
+    $decision_style
+    IsAccInWavelength   [label="Is in Wavelength?"]
+    IsAcscInWavelength  [label="Is in Wavelength?"]
+    IsAsscInWavelength  [label="Is in Wavelength?"]
+  }
+
+  subgraph params {
+    $param_style
+    SampleWorkspace
+    CorrectionsWorkspace
+    CanWorkspace
+    CanScaleFactor
+    OutputWorkspace
+  }
+
+  subgraph algorithms {
+    $algorithm_style
+    Scale
+    Minus
+    Multiply
+    ConvertUnits_Acc    [label="ConvertUnits"]
+    ConvertUnits_Acsc   [label="ConvertUnits"]
+    ConvertUnits_Assc   [label="ConvertUnits"]
+    Divide_CanAcc       [label="Divide"]
+    Divide_CorrAssc     [label="Divide"]
+  }
+
+  CanWorkspace          -> Scale
+  CanScaleFactor        -> Scale
+  CorrectionsWorkspace  -> IsAccInWavelength    [label="Ac,c"]
+  CorrectionsWorkspace  -> IsAcscInWavelength   [label="Ac,sc"]
+  CorrectionsWorkspace  -> IsAsscInWavelength   [label="As,sc"]
+  IsAccInWavelength     -> ConvertUnits_Acc     [label="No"]
+  IsAcscInWavelength    -> ConvertUnits_Acsc    [label="No"]
+  IsAsscInWavelength    -> ConvertUnits_Assc    [label="No"]
+
+  Scale                 -> Divide_CanAcc        [label="LHSWorkspace"]
+  IsAccInWavelength     -> Divide_CanAcc        [label="Yes, RHSWorkspace"]
+  ConvertUnits_Acc      -> Divide_CanAcc        [label="RHSWorkspace"]
+
+  Divide_CanAcc         -> Multiply             [label="LHSWorkspace"]
+  IsAcscInWavelength    -> Multiply             [label="Yes, RHSWorkspace"]
+  ConvertUnits_Acsc     -> Multiply             [label="RHSWorkspace"]
+
+  SampleWorkspace       -> Minus                [label="LHSWorkspace"]
+  Multiply              -> Minus                [label="RHSWorkspace"]
+
+  Minus                 -> Divide_CorrAssc      [label="LHSWorkspace"]
+  IsAsscInWavelength    -> Divide_CorrAssc      [label="Yes, RHSWorkspace"]
+  ConvertUnits_Assc     -> Divide_CorrAssc      [label="RHSWorkspace"]
+
+  Divide_CorrAssc       -> OutputWorkspace
+}
diff --git a/Code/Mantid/docs/source/diagrams/ApplyPaalmanPingsCorrection-v1_samplecorrectiononly_wkflw.dot b/Code/Mantid/docs/source/diagrams/ApplyPaalmanPingsCorrection-v1_samplecorrectiononly_wkflw.dot
new file mode 100644
index 0000000000000000000000000000000000000000..0165f237a6e3a01129712e41b50702dcf4e34523
--- /dev/null
+++ b/Code/Mantid/docs/source/diagrams/ApplyPaalmanPingsCorrection-v1_samplecorrectiononly_wkflw.dot
@@ -0,0 +1,29 @@
+digraph ApplyPaalmanPingsCorrection_SampleCorrectOnly {
+  label="ApplyPaalmanPingsCorrection Sample Correct Only Flowchart"
+  $global_style
+
+  subgraph descision {
+    $decision_style
+    IsAssInWavelength [label="Is in Wavelength?"]
+  }
+
+  subgraph params {
+    $param_style
+    SampleWorkspace
+    CorrectionsWorkspace
+    OutputWorkspace
+  }
+
+  subgraph algorithms {
+    $algorithm_style
+    Divide
+    ConvertUnits
+  }
+
+  SampleWorkspace       -> Divide             [label="LHSWorkspace"]
+  CorrectionsWorkspace  -> IsAssInWavelength  [label="As,s"]
+  IsAssInWavelength     -> Divide             [label="Yes, RHSWorkspace"]
+  IsAssInWavelength     -> ConvertUnits       [label="No"]
+  ConvertUnits          -> Divide             [label="RHSWorkspace"]
+  Divide                -> OutputWorkspace
+}
diff --git a/Code/Mantid/docs/source/diagrams/ElasticWindow-v1_wkflw.dot b/Code/Mantid/docs/source/diagrams/ElasticWindow-v1_wkflw.dot
new file mode 100644
index 0000000000000000000000000000000000000000..07b6f921dcecdd57404b8538edcd48675454a1d0
--- /dev/null
+++ b/Code/Mantid/docs/source/diagrams/ElasticWindow-v1_wkflw.dot
@@ -0,0 +1,67 @@
+digraph ElasticWindow {
+  label="ElasticWindow Flowchart"
+  $global_style
+
+  subgraph values {
+    $value_style
+    ConvertUnits_Target   [label="QSquared"]
+    ConvertAxis_Q_Taregt  [label="ElasticQ"]
+    ConvertAxis_Q2_Target [label="ElasticQSquared"]
+  }
+
+  subgraph descision {
+    $decision_style
+    HaveBackgroundRange       [label="Have Background Range?"]
+    VertAxisIsSpectraNumber   [label="Vertical Axis is Spectra Number?"]
+  }
+
+  subgraph params {
+    $param_style
+    InputWorkspace
+    OutputInQ
+    OutputInQSquared
+    IntegrationRangeStart
+    IntegrationRangeEnd
+    BackgroundRangeStart
+    BackgroundRangeEnd
+  }
+
+  subgraph algorithms {
+    $algorithm_style
+    CalculateFlatBackground
+    Integration
+    ConvertToHistogram
+    ConvertUnits
+    ConvertAxis_Q   [label="ConvertSpectrumAxis"]
+    ConvertAxis_Q2  [label="ConvertSpectrumAxis"]
+    Transpose_Q     [label="Transpose"]
+    Transpose_Q2    [label="Transpose"]
+    Transpose_Q_B   [label="Transpose"]
+  }
+
+  InputWorkspace          -> HaveBackgroundRange
+  HaveBackgroundRange     -> CalculateFlatBackground  [label="Yes"]
+  BackgroundRangeStart    -> CalculateFlatBackground
+  BackgroundRangeEnd      -> CalculateFlatBackground
+  CalculateFlatBackground -> Integration
+  HaveBackgroundRange     -> Integration              [label="No"]
+  IntegrationRangeStart   -> Integration
+  IntegrationRangeEnd     -> Integration
+  Integration             -> VertAxisIsSpectraNumber
+
+  VertAxisIsSpectraNumber -> ConvertAxis_Q            [label="Yes"]
+  ConvertAxis_Q_Taregt    -> ConvertAxis_Q            [label="Target"]
+  ConvertAxis_Q           -> Transpose_Q
+  Transpose_Q             -> OutputInQ
+  VertAxisIsSpectraNumber -> ConvertAxis_Q2           [label="Yes"]
+  ConvertAxis_Q2_Target   -> ConvertAxis_Q2           [label="Target"]
+  ConvertAxis_Q2          -> Transpose_Q2
+  Transpose_Q2            -> OutputInQSquared
+
+  VertAxisIsSpectraNumber -> Transpose_Q_B            [label="No"]
+  Transpose_Q_B           -> OutputInQ
+  VertAxisIsSpectraNumber -> ConvertToHistogram       [label="No"]
+  ConvertToHistogram      -> ConvertUnits
+  ConvertUnits_Target     -> ConvertUnits             [label="Target"]
+  ConvertUnits            -> OutputInQSquared
+}
diff --git a/Code/Mantid/docs/source/diagrams/ElasticWindowMultiple-v1_wkflw.dot b/Code/Mantid/docs/source/diagrams/ElasticWindowMultiple-v1_wkflw.dot
new file mode 100644
index 0000000000000000000000000000000000000000..8d46a407c60b4f90e68fdfa87e36525eec157c15
--- /dev/null
+++ b/Code/Mantid/docs/source/diagrams/ElasticWindowMultiple-v1_wkflw.dot
@@ -0,0 +1,60 @@
+digraph ElasticWindowMultiple {
+  label="ElasticWindowMultiple Flowchart"
+  $global_style
+
+  subgraph descision {
+    $decision_style
+    HaveTemperatureLogs     [label="Have Temperature Logs?"]
+  }
+
+  subgraph processes {
+    $process_style
+    ProcessTemperatureLogs  [label="Get temperature from run\nand set as vertical axis"]
+    NormaliseByTemperature  [label="Normalise to run with\nlowest temperature"]
+  }
+
+  subgraph params {
+    $param_style
+    InputWorkspaces
+    IntegrationRangeStart
+    IntegrationRangeEnd
+    BackgroundRangeStart
+    BackgroundRangeEnd
+    SampleEnvironmentLogValue
+    SampleEnvironmentLogName
+    OutputInQ
+    OutputInQSquared
+    OutputELF
+    OutputELT
+  }
+
+  subgraph algorithms {
+    $algorithm_style
+    ElasticWindow
+    Logarithm
+    Transpose
+    SortXAxis
+    AppendSpectra_Q         [label="AppendSpectra"]
+    AppendSpectra_Q2        [label="AppendSpectra"]
+  }
+
+  InputWorkspaces           -> ElasticWindow
+  IntegrationRangeStart     -> ElasticWindow
+  IntegrationRangeEnd       -> ElasticWindow
+  BackgroundRangeStart      -> ElasticWindow
+  BackgroundRangeEnd        -> ElasticWindow
+  SampleEnvironmentLogValue -> ProcessTemperatureLogs
+  SampleEnvironmentLogName  -> ProcessTemperatureLogs
+  ElasticWindow             -> ProcessTemperatureLogs
+  ProcessTemperatureLogs    -> Logarithm                [label="OutputInQSquared"]
+  Logarithm                 -> AppendSpectra_Q2
+  ProcessTemperatureLogs    -> AppendSpectra_Q          [label="OutputInQ"]
+  AppendSpectra_Q           -> OutputInQ
+  AppendSpectra_Q2          -> OutputInQSquared
+  AppendSpectra_Q           -> Transpose
+  Transpose                 -> SortXAxis
+  SortXAxis                 -> OutputELF
+  SortXAxis                 -> HaveTemperatureLogs
+  HaveTemperatureLogs       -> NormaliseByTemperature
+  NormaliseByTemperature    -> OutputELT
+}
diff --git a/Code/Mantid/docs/source/diagrams/IndirectILLReduction-v1_wkflw.dot b/Code/Mantid/docs/source/diagrams/IndirectILLReduction-v1_wkflw.dot
index c425104909130dcd7f685a63cd4494ed2be6d6ba..aef33292a9f1e69b999e3a4abae69f95b6f51d1c 100644
--- a/Code/Mantid/docs/source/diagrams/IndirectILLReduction-v1_wkflw.dot
+++ b/Code/Mantid/docs/source/diagrams/IndirectILLReduction-v1_wkflw.dot
@@ -1,16 +1,16 @@
 digraph IndirectILLReduction {
   label="IndirectILLReduction Flowchart"
-  /* $global_style */
+  $global_style
 
   subgraph values{
-    /* $value_style */
+    $value_style
     CE_End          [label="Reduced Workspace"]
     MM_End          [label="Reduced Workspace"]
     MM_ScaleFactor  [label="0.5"]
   }
 
   subgraph descision {
-    /* $decision_style */
+    $decision_style
     Save_Red                      [label="Save?"]
     Save_LeftRed                  [label="Save?"]
     Save_RightRed                 [label="Save?"]
@@ -18,7 +18,7 @@ digraph IndirectILLReduction {
   }
 
   subgraph params {
-    /* $param_style */
+    $param_style
     Run
     Analyser
     Reflection
@@ -32,7 +32,7 @@ digraph IndirectILLReduction {
   }
 
   subgraph algorithms {
-    /* $algorithm_style */
+    $algorithm_style
     LoadILLIndirect
     LoadParameterFile
     GroupDetectors
@@ -60,14 +60,17 @@ digraph IndirectILLReduction {
     MM_SaveNexusProcessed_RightRed  [label="SaveNexusProcessed"]
   }
 
+  subgraph processes {
+    $process_style
+    CE_Normal         [label="Calculate Energy"]
+    CE_Mirror_Right   [label="Calculate Energy (Right)"]
+    CE_Mirror_Left    [label="Calculate Energy (Left)"]
+    RunMirrorMode     [label="Mirror Mode"]
+  }
+
   CE_Start          [label="Calculate Energy"]
   MM_Start          [label="Mirror Mode"]
 
-  CE_Normal         [label="Calculate Energy"]
-  CE_Mirror_Right   [label="Calculate Energy (Right)"]
-  CE_Mirror_Left    [label="Calculate Energy (Left)"]
-  RunMirrorMode     [label="Mirror Mode"]
-
   subgraph calculate_energy {
     CE_Start                      -> CE_Scale_Monitor           [label="Monitor WS"]
     CE_Scale_Monitor              -> CE_CropWorkspace_Monitor
diff --git a/Code/Mantid/docs/source/diagrams/IndirectResolution-v1_wkflw.dot b/Code/Mantid/docs/source/diagrams/IndirectResolution-v1_wkflw.dot
index 439f75fcbfeacf2a026fb11e4f95009fe1be2a15..704a805195446a20989491600183d2d9acb318dd 100644
--- a/Code/Mantid/docs/source/diagrams/IndirectResolution-v1_wkflw.dot
+++ b/Code/Mantid/docs/source/diagrams/IndirectResolution-v1_wkflw.dot
@@ -5,7 +5,6 @@ digraph IndirectResolution {
   subgraph descision {
     $decision_style
     ScaleFactorIsOne [label="ScaleFactor is 1?"]
-    Save [label="Save?"]
   }
 
   subgraph params {
@@ -27,7 +26,6 @@ digraph IndirectResolution {
     Scale
     CalculateFlatBackground
     Rebin
-    SaveNexusProcessed
   }
 
   InputFiles                  -> ISISIndirectEnergyTransfer
@@ -45,6 +43,4 @@ digraph IndirectResolution {
   CalculateFlatBackground     -> Rebin
   RebinParam                  -> Rebin
   Rebin                       -> OutputWorkspace
-  Rebin                       -> Save
-  Save                        -> SaveNexusProcessed [label="Yes"]
 }
diff --git a/Code/Mantid/docs/source/diagrams/IndirectTransmissionMonitor-v1_wkflw.dot b/Code/Mantid/docs/source/diagrams/IndirectTransmissionMonitor-v1_wkflw.dot
new file mode 100644
index 0000000000000000000000000000000000000000..c333bc48f8c35b4878a5bd69573cc650b778d88d
--- /dev/null
+++ b/Code/Mantid/docs/source/diagrams/IndirectTransmissionMonitor-v1_wkflw.dot
@@ -0,0 +1,78 @@
+digraph IndirectTransmissionMonitor {
+  label="IndirectTransmissionMonitor Flowchart"
+  $global_style
+
+  subgraph descision {
+    $decision_style
+    ExtractMonitor_HaveMonitor2_1   [label="Have Monitor 2?"]
+    ExtractMonitor_HaveMonitor2_2   [label="Have Monitor 2?"]
+    ExtractMonitor_IsSameTimeRegime [label="Is Same Start Time?"]
+  }
+
+  subgraph params {
+    $param_style
+    SampleWorkspace
+    CanWorkspace
+    OutputWorkspace
+  }
+
+  subgraph algorithms {
+    $algorithm_style
+
+    ExtractMonitor_CropWorkspace_D1       [label="CropWorkspace"]
+    ExtractMonitor_CropWorkspace_M1       [label="CropWorkspace"]
+    ExtractMonitor_CropWorkspace_M1_2     [label="CropWorkspace"]
+    ExtractMonitor_CropWorkspace_M2       [label="CropWorkspace"]
+    ExtractMonitor_ConvertUnitsMonitor1   [label="ConvertUnits"]
+    ExtractMonitor_ConvertUnitsMonitor2   [label="ConvertUnits"]
+    ExtractMonitor_RebinToWorkspace       [label="RebinToWorkspace"]
+    ExtractMonitor_Divide                 [label="Divide"]
+    ExtractMonitor_UnwrapMonitor          [label="UnwrapMonitor"]
+    ExtractMonitor_RemoveBins             [label="RemoveBins"]
+    ExtractMonitor_FFTSmooth              [label="FFTSmooth"]
+
+    Divide
+    GroupWorkspaces
+  }
+
+  subgraph processes {
+    $process_style
+    ExtractMonitor_Sample   [label="Extract Monitor"]
+    ExtractMonitor_Can      [label="Extract Monitor"]
+  }
+
+  ExtractMonitor_Start  [label="Extract Monitor"]
+  ExtractMonitor_End    [label="End"]
+
+  subgraph ExtractMonitor {
+    ExtractMonitor_Start                -> ExtractMonitor_CropWorkspace_M1      [label="Monitor 1"]
+    ExtractMonitor_Start                -> ExtractMonitor_CropWorkspace_D1      [label="Detector 1"]
+    ExtractMonitor_CropWorkspace_D1     -> ExtractMonitor_IsSameTimeRegime
+    ExtractMonitor_Start                -> ExtractMonitor_HaveMonitor2_1        [label="Monitor 2"]
+    ExtractMonitor_HaveMonitor2_1       -> ExtractMonitor_CropWorkspace_M2      [label="Yes"]
+    ExtractMonitor_IsSameTimeRegime     -> ExtractMonitor_UnwrapMonitor         [label="No"]
+    ExtractMonitor_UnwrapMonitor        -> ExtractMonitor_RemoveBins
+    ExtractMonitor_RemoveBins           -> ExtractMonitor_FFTSmooth
+    ExtractMonitor_FFTSmooth            -> ExtractMonitor_CropWorkspace_M1_2    [label="Yes"]
+    ExtractMonitor_CropWorkspace_M1     -> ExtractMonitor_IsSameTimeRegime
+    ExtractMonitor_IsSameTimeRegime     -> ExtractMonitor_ConvertUnitsMonitor1  [label="Yes"]
+    ExtractMonitor_CropWorkspace_M1     -> ExtractMonitor_HaveMonitor2_2
+    ExtractMonitor_HaveMonitor2_2       -> ExtractMonitor_End                   [label="No"]
+    ExtractMonitor_HaveMonitor2_2       -> ExtractMonitor_ConvertUnitsMonitor2  [label="Yes"]
+    ExtractMonitor_ConvertUnitsMonitor1 -> ExtractMonitor_CropWorkspace_M1_2
+    ExtractMonitor_ConvertUnitsMonitor2 -> ExtractMonitor_RebinToWorkspace      [label="WorkspaceToMatch"]
+    ExtractMonitor_CropWorkspace_M2     -> ExtractMonitor_RebinToWorkspace      [label="WorkspaceToRebin"]
+    ExtractMonitor_RebinToWorkspace     -> ExtractMonitor_Divide                [label="LHS (monitor 2)"]
+    ExtractMonitor_CropWorkspace_M1_2   -> ExtractMonitor_Divide                [label="RHS (monitor 1)"]
+    ExtractMonitor_Divide               -> ExtractMonitor_End
+  }
+
+  SampleWorkspace         -> ExtractMonitor_Sample
+  CanWorkspace            -> ExtractMonitor_Can
+  ExtractMonitor_Sample   -> Divide [label="LHS"]
+  ExtractMonitor_Can      -> Divide [label="RHS"]
+  Divide                  -> GroupWorkspaces
+  SampleWorkspace         -> GroupWorkspaces
+  CanWorkspace            -> GroupWorkspaces
+  GroupWorkspaces         -> OutputWorkspace
+}
diff --git a/Code/Mantid/docs/source/diagrams/MSDFit-v1_wkflw.dot b/Code/Mantid/docs/source/diagrams/MSDFit-v1_wkflw.dot
new file mode 100644
index 0000000000000000000000000000000000000000..7b2c9b4f30d035a8fed73a485e7502f7fa990f80
--- /dev/null
+++ b/Code/Mantid/docs/source/diagrams/MSDFit-v1_wkflw.dot
@@ -0,0 +1,45 @@
+digraph MSDFit {
+  label="MSDFit Flowchart"
+  $global_style
+
+  subgraph params {
+    $param_style
+    InputWorkspace
+    XStart
+    XEnd
+    SpecMin
+    SpecMax
+    OutputWorkspace
+    ParameterWorkspace
+    FitWorkspaces
+  }
+
+  subgraph algorithms {
+    $algorithm_style
+    PlotPeakByLogValue
+    ConvertToMatrixWorkspace_A0 [label="ConvertToMatrixWorkspace"]
+    ConvertToMatrixWorkspace_A1 [label="ConvertToMatrixWorkspace"]
+    SortXAxis
+    GroupWorkspaces
+  }
+
+  subgraph values {
+    $value_style
+    FitFunction [label="Fit Function"]
+  }
+
+  InputWorkspace              -> FitFunction
+  SpecMin                     -> FitFunction
+  SpecMax                     -> FitFunction
+  FitFunction                 -> PlotPeakByLogValue
+  XStart                      -> PlotPeakByLogValue
+  XEnd                        -> PlotPeakByLogValue
+  PlotPeakByLogValue          -> ParameterWorkspace           [label="Parameters"]
+  PlotPeakByLogValue          -> FitWorkspaces                [label="Fitted Workspaces"]
+  PlotPeakByLogValue          -> ConvertToMatrixWorkspace_A0  [label="Parameters"]
+  ConvertToMatrixWorkspace_A0 -> GroupWorkspaces              [label="A0"]
+  PlotPeakByLogValue          -> ConvertToMatrixWorkspace_A1  [label="Parameters"]
+  ConvertToMatrixWorkspace_A1 -> SortXAxis
+  SortXAxis                   -> GroupWorkspaces              [label="A1"]
+  GroupWorkspaces             -> OutputWorkspace
+}
diff --git a/Code/Mantid/docs/source/diagrams/ReflectometryReductionOne-v1_wkflw.dot b/Code/Mantid/docs/source/diagrams/ReflectometryReductionOne-v1_wkflw.dot
index 50720bdce874459636c5b42d73b6cf83b67afd36..59c5a88b9b69ab085427c31ad13524e1e1e9a25a 100644
--- a/Code/Mantid/docs/source/diagrams/ReflectometryReductionOne-v1_wkflw.dot
+++ b/Code/Mantid/docs/source/diagrams/ReflectometryReductionOne-v1_wkflw.dot
@@ -11,6 +11,7 @@ digraph ReflectometryReductionOne {
     outputWorkspaceMT [label="OutputWorkspace"]
     thetaIn           [label="ThetaIn"]
     thetaOut          [label="ThetaOut"]
+    corrAlg           [label="CorrectionAlgorithm"]
   }
 
   subgraph decisions {
@@ -21,6 +22,8 @@ digraph ReflectometryReductionOne {
     checkTransUnits [label="X axis in &lambda;?"]
     checkThetaIn    [label="ThetaIn given?"]
     checkCorDetPos  [label="Correct Detector Positions?"]
+    checkNormDetMon [label="Normalize by\nIntegrated Monitors?"]
+    checkCorrAlg    [label="CorrectionAlgorithm?"]
   }
 
   subgraph algorithms {
@@ -33,6 +36,8 @@ digraph ReflectometryReductionOne {
     divideTrans     [label="Divide\n(InputWorkspace / TransmissionWorkspace)"]
     intMon          [label="Integrate"]
     specRefPosCor   [label="SpecularReflectionPositionCorrect"]
+    polyCorr        [label="PolynomialCorrection"]
+    expCorr         [label="ExponentialCorrection"]
   }
 
   subgraph processes {
@@ -45,7 +50,6 @@ digraph ReflectometryReductionOne {
     valMon          [label="I&#8320;(&lambda;)"]
     valDet          [label="I(&lambda;)"]
     valIntegrated   [label="&Sigma; I&#8320;(&lambda;)"]
-    valInputDiv     [label="I(&lambda;) / &Sigma;I&#8320;(&lambda;)"]
     valTrans        [label="It(&lambda;) / &Sigma;I&#8320;t(&lambda;)"]
   }
 
@@ -54,17 +58,24 @@ digraph ReflectometryReductionOne {
   checkXUnit        -> convertToWL      [label="No"]
   convertToWL       -> valMon           [label="Monitors"]
   convertToWL       -> valDet           [label="Detectors"]
-  valMon            -> intMon
+  valMon            -> checkNormDetMon
+  checkNormDetMon   -> intMon           [label="Yes"]
+  checkNormDetMon   -> divideDetMon     [label="No"]
   valDet            -> checkMultDet
   intMon            -> valIntegrated
   valIntegrated     -> divideDetMon
   checkMultDet      -> directBeamNorm   [label="Yes"]
   checkMultDet      -> divideDetMon     [label="No"]
   directBeamNorm    -> divideDetMon
-  divideDetMon      -> valInputDiv
-  valInputDiv       -> checkTransRun
+  divideDetMon      -> checkTransRun
+  checkTransRun     -> checkCorrAlg     [label="No"]
   checkTransRun     -> divideTrans      [label="Yes"]
-  checkTransRun     -> checkThetaIn     [label="No"]
+  corrAlg           -> checkCorrAlg
+  checkCorrAlg      -> checkThetaIn     [label="None"]
+  checkCorrAlg      -> polyCorr         [label="PolynomialCorrection"]
+  checkCorrAlg      -> expCorr          [label="ExponentialCorrection"]
+  polyCorr          -> checkThetaIn
+  expCorr           -> checkThetaIn
   firstTransRun     -> checkTransUnits
   checkTransUnits   -> valTrans         [label="Yes"]
   checkTransUnits   -> createTransWS    [label="No"]
diff --git a/Code/Mantid/docs/source/diagrams/ResNorm-v2_wkflw.dot b/Code/Mantid/docs/source/diagrams/ResNorm-v2_wkflw.dot
new file mode 100644
index 0000000000000000000000000000000000000000..7cbc7a00393051fdfc1fa73e900876746dc7ff2b
--- /dev/null
+++ b/Code/Mantid/docs/source/diagrams/ResNorm-v2_wkflw.dot
@@ -0,0 +1,55 @@
+digraph ResNorm2 {
+  label="ResNorm v2 Flowchart"
+  $global_style
+
+  subgraph processes {
+    $process_style
+    ExtractStretch [label="Extract stretch factors (XScaling)"]
+    ExtractScaling [label="Extract scaling factors (Scaling)"]
+  }
+
+  subgraph params {
+    $param_style
+    ResolutionWorkspace
+    VanadiumWorkspace
+    EnergyMin
+    EnergyMax
+    CreateOutput
+    OutputWorkspace
+  }
+
+  subgraph algorithms {
+    $algorithm_style
+    NormaliseToUnity
+    AppendSpectra
+    GroupWorkspaces
+    PlotPeakByLogValue
+    ConvertSpectrumAxis
+    CreateWorkspace_Stretch [label="CreateWorkspace"]
+    CreateWorkspace_Scaling [label="CreateWorkspace"]
+  }
+
+  subgraph values {
+    $value_style
+    FitFunction                 [label="Fit Function"]
+    ConvertSpectrumAxis_Target  [label="ElasticQ"]
+  }
+
+  VanadiumWorkspace           -> ConvertSpectrumAxis
+  ConvertSpectrumAxis_Target  -> ConvertSpectrumAxis      [label="Target"]
+  ResolutionWorkspace         -> NormaliseToUnity
+  NormaliseToUnity            -> AppendSpectra
+  AppendSpectra               -> PlotPeakByLogValue
+  ConvertSpectrumAxis         -> FitFunction
+  FitFunction                 -> PlotPeakByLogValue
+  EnergyMin                   -> PlotPeakByLogValue
+  EnergyMax                   -> PlotPeakByLogValue
+  CreateOutput                -> PlotPeakByLogValue
+  PlotPeakByLogValue          -> ExtractStretch           [label="Parameters"]
+  ExtractStretch              -> CreateWorkspace_Stretch
+  CreateWorkspace_Stretch     -> GroupWorkspaces
+  PlotPeakByLogValue          -> ExtractScaling           [label="Parameters"]
+  ExtractScaling              -> CreateWorkspace_Scaling
+  CreateWorkspace_Scaling     -> GroupWorkspaces
+  GroupWorkspaces             -> OutputWorkspace
+}
diff --git a/Code/Mantid/docs/source/diagrams/TimeSlice-v1_wkflw.dot b/Code/Mantid/docs/source/diagrams/TimeSlice-v1_wkflw.dot
index 76921af3009aa3cc1f10bed1fe81b1c33b82026d..f3ce411548306b37e1a77c32892d30c92fda6f8a 100644
--- a/Code/Mantid/docs/source/diagrams/TimeSlice-v1_wkflw.dot
+++ b/Code/Mantid/docs/source/diagrams/TimeSlice-v1_wkflw.dot
@@ -6,7 +6,6 @@ digraph TimeSlice {
     $decision_style
     HaveCalibration [label="Have calibration workspace?"]
     HaveBackgroundRange [label="Have background range?"]
-    Save [label="Save?"]
   }
 
   subgraph params {
@@ -28,7 +27,6 @@ digraph TimeSlice {
     CalculateFlatBackground
     Transpose
     GroupWorkspaces
-    SaveNexusProcessed
   }
 
   InputFiles              -> Load [label="loop for all files"]
@@ -45,8 +43,6 @@ digraph TimeSlice {
   BackgroundRange         -> CalculateFlatBackground
   CalculateFlatBackground -> Integration
   Integration             -> Transpose
-  Transpose               -> Save
-  Save                    -> SaveNexusProcessed [label="Yes"]
   Transpose               -> GroupWorkspaces
   GroupWorkspaces         -> OutputWorkspace
 }
diff --git a/Code/Mantid/docs/source/diagrams/TransformToIqt-v1_wkflw.dot b/Code/Mantid/docs/source/diagrams/TransformToIqt-v1_wkflw.dot
new file mode 100644
index 0000000000000000000000000000000000000000..207c58ce8d8239e611466b580a8e06fb4a8f84bf
--- /dev/null
+++ b/Code/Mantid/docs/source/diagrams/TransformToIqt-v1_wkflw.dot
@@ -0,0 +1,68 @@
+digraph TransformToIqt {
+  label="TransformToIqt Flowchart"
+  $global_style
+
+  subgraph descision {
+    $decision_style
+    IsDryRun                        [label="DryRun?"]
+  }
+
+  subgraph processes {
+    $process_style
+    CalculateBinningParameters      [label="Calculate binning parameters"]
+  }
+
+  subgraph params {
+    $param_style
+    SampleWorkspace
+    ResolutionWorkspace
+    EnergyMin
+    EnergyMax
+    BinReductionFactor
+    ParameterWorkspace
+    OutputWorkspace
+  }
+
+  subgraph algorithms {
+    $algorithm_style
+    Divide
+    Rebin_Sample                    [label="Rebin"]
+    Rebin_Resolution                [label="Rebin"]
+    Integration_Sample              [label="Integration"]
+    ConvertToPointData_Sample       [label="ConvertToPointData"]
+    ExtractFFTSpectrum_Sample       [label="ExtractFFTSpectrum"]
+    Divide_Sample                   [label="Divide"]
+    Rebin_Resolution                [label="Rebin"]
+    Integration_Resolution          [label="Integration"]
+    ConvertToPointData_Resolution   [label="ConvertToPointData"]
+    ExtractFFTSpectrum_Resolution   [label="ExtractFFTSpectrum"]
+    Divide_Resolution               [label="Divide"]
+  }
+
+  SampleWorkspace               -> CalculateBinningParameters
+  EnergyMin                     -> CalculateBinningParameters
+  EnergyMax                     -> CalculateBinningParameters
+  BinReductionFactor            -> CalculateBinningParameters
+  CalculateBinningParameters    -> ParameterWorkspace
+
+  SampleWorkspace               -> IsDryRun
+  IsDryRun                      -> Rebin_Sample                   [label="No"]
+  CalculateBinningParameters    -> Rebin_Sample
+  Rebin_Sample                  -> Integration_Sample
+  Rebin_Sample                  -> ConvertToPointData_Sample
+  ConvertToPointData_Sample     -> ExtractFFTSpectrum_Sample
+  ExtractFFTSpectrum_Sample     -> Divide_Sample                  [label="LHSWorkspace"]
+  Integration_Sample            -> Divide_Sample                  [label="RHSWorkspace"]
+
+  ResolutionWorkspace           -> Rebin_Resolution
+  CalculateBinningParameters    -> Rebin_Resolution
+  Rebin_Resolution              -> Integration_Resolution
+  Rebin_Resolution              -> ConvertToPointData_Resolution
+  ConvertToPointData_Resolution -> ExtractFFTSpectrum_Resolution
+  ExtractFFTSpectrum_Resolution -> Divide_Resolution              [label="LHSWorkspace"]
+  Integration_Resolution        -> Divide_Resolution              [label="RHSWorkspace"]
+
+  Divide_Sample                 -> Divide                         [label="LHSWorkspace"]
+  Divide_Resolution             -> Divide                         [label="RHSWorkspace"]
+  Divide                        -> OutputWorkspace
+}
diff --git a/Code/Mantid/docs/source/fitfunctions/Abragam.rst b/Code/Mantid/docs/source/fitfunctions/Abragam.rst
index 1a712b51f82a3abeaac8bc1c76b2d51c47ff6b73..efe1d8300d4e41df2569ff2d03817288bfc111fe 100644
--- a/Code/Mantid/docs/source/fitfunctions/Abragam.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Abragam.rst
@@ -18,3 +18,5 @@ Abragam fitting function for use by Muon scientists defined by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/BSpline.rst b/Code/Mantid/docs/source/fitfunctions/BSpline.rst
index d981f3f313aca43a34a32e3670154a027a1dcfdb..bf24ad12857f109a1a5cc41c3b2fd5a8a8d39ba4 100644
--- a/Code/Mantid/docs/source/fitfunctions/BSpline.rst
+++ b/Code/Mantid/docs/source/fitfunctions/BSpline.rst
@@ -26,3 +26,5 @@ the type double. Likewise, the attribute names have the form 'xi'.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/BackToBackExponential.rst b/Code/Mantid/docs/source/fitfunctions/BackToBackExponential.rst
index 71eaa7dafc0f15eac497fdc17a6b6bd398b70c8b..1243482273a5553f0bd8dc9a1085c6a8d672b47d 100644
--- a/Code/Mantid/docs/source/fitfunctions/BackToBackExponential.rst
+++ b/Code/Mantid/docs/source/fitfunctions/BackToBackExponential.rst
@@ -34,8 +34,8 @@ For information about how to create parameters from a GSAS parameter file see
 
 References
 
-1. R.B. Von Dreele, J.D. Jorgensen & C.G. Windsor, J. Appl. Cryst., 15,
-581-589, 1982
+1. R.B. Von Dreele, J.D. Jorgensen & C.G. Windsor, `J. Appl. Cryst., 15,
+581-589, 1982 <http://dx.doi.org/10.1107/S0021889882012722>`_
 
 The figure below illustrate this peakshape function fitted to a TOF
 peak:
@@ -52,3 +52,5 @@ peak:
    HRPD instrument.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/BivariateNormal.rst b/Code/Mantid/docs/source/fitfunctions/BivariateNormal.rst
index ee5c9f4a822ae0cbc393bc39e08f383c72e4d309..c537f934ae966537d111ede3e14ae42487aba11a 100644
--- a/Code/Mantid/docs/source/fitfunctions/BivariateNormal.rst
+++ b/Code/Mantid/docs/source/fitfunctions/BivariateNormal.rst
@@ -63,3 +63,5 @@ The values for out in function1D are, for each pixel, the difference of
 V(see formula) and dataY(0).
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/Chebyshev.rst b/Code/Mantid/docs/source/fitfunctions/Chebyshev.rst
index a7d2cee0a319a9beeb527049c2c0658bc9234466..aab7040c30299a811171f1edbf2bf791bf7f7953 100644
--- a/Code/Mantid/docs/source/fitfunctions/Chebyshev.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Chebyshev.rst
@@ -40,3 +40,5 @@ the expansion (fitting) interval.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/ChudleyElliot.rst b/Code/Mantid/docs/source/fitfunctions/ChudleyElliot.rst
index 9c9a5160014208a41c90a33951cf9368333da3d4..228945d1e1ae2560ccc37a424a9c2617794f663d 100644
--- a/Code/Mantid/docs/source/fitfunctions/ChudleyElliot.rst
+++ b/Code/Mantid/docs/source/fitfunctions/ChudleyElliot.rst
@@ -9,9 +9,11 @@ Chudley-Elliot
 Description
 -----------
 
-Models the Q dependence of the QENS line width (Gamma (hwhm)), diffusion coefficients (D), 
-residence times (tau) and jump lengths (length) to extract the associated long range diffusive
-motions of molecules. The Chudley-Elliot Jump diffusion model (1961) has the form:
+Models the Q dependence of the QENS line width (Gamma (hwhm)), diffusion
+coefficients (D), residence times (tau) and jump lengths (length) to extract the
+associated long range diffusive motions of molecules.
+
+The Chudley-Elliot Jump diffusion model [1]_ has the form:
 
 .. math:: Gamma(Q) = (1 - sin(Ql)/Ql)/tau
 
@@ -19,4 +21,11 @@ motions of molecules. The Chudley-Elliot Jump diffusion model (1961) has the for
 
 .. properties::
 
+References
+----------
+
+.. [1] C T Chudley and R J Elliott `1961 Proc. Phys. Soc. 77 353 <http://dx.doi.org/10.1088/0370-1328/77/2/319>`__
+
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/CompositeFunction.rst b/Code/Mantid/docs/source/fitfunctions/CompositeFunction.rst
index a34a4bad82c25ab7f599fc300854d4ffdadcc511..510bce308f32a71db37edda3834a22286d647294 100644
--- a/Code/Mantid/docs/source/fitfunctions/CompositeFunction.rst
+++ b/Code/Mantid/docs/source/fitfunctions/CompositeFunction.rst
@@ -70,3 +70,5 @@ inner one in brackets:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/Convolution.rst b/Code/Mantid/docs/source/fitfunctions/Convolution.rst
index b37645cc3e16ac9de9f04f60b5bda1d07aee8057..4131d38a6c02f0a7699718f67a20c12abd0adb33 100644
--- a/Code/Mantid/docs/source/fitfunctions/Convolution.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Convolution.rst
@@ -43,3 +43,7 @@ Note that the box function is defined on interval [-5, 5]:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
+   :h: Framework/CurveFitting/inc/MantidCurveFitting/Convolution.h
+   :cpp: Framework/CurveFitting/src/Convolution.cpp
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/fitfunctions/CubicSpline.rst b/Code/Mantid/docs/source/fitfunctions/CubicSpline.rst
index 87fa2a3838c67047994681d4407cdd1fe561afbf..bad132ba227a54b5724de70972869e30e8b19ecc 100644
--- a/Code/Mantid/docs/source/fitfunctions/CubicSpline.rst
+++ b/Code/Mantid/docs/source/fitfunctions/CubicSpline.rst
@@ -26,3 +26,5 @@ the type double. Likewise, the attribute names have the form 'xi'.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/DiffRotDiscreteCircle.rst b/Code/Mantid/docs/source/fitfunctions/DiffRotDiscreteCircle.rst
index 0d35a3f3a01c91c14eb18bed881d677f62556e7d..d071e069f734516416067a8d2c0ccaa5aa312768 100644
--- a/Code/Mantid/docs/source/fitfunctions/DiffRotDiscreteCircle.rst
+++ b/Code/Mantid/docs/source/fitfunctions/DiffRotDiscreteCircle.rst
@@ -80,3 +80,5 @@ Then:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/DiffSphere.rst b/Code/Mantid/docs/source/fitfunctions/DiffSphere.rst
index 99afe9d54aa84978cd12181d3df25fffaf887419..c11bf754f2f5470a402499dc71eaf48859125664 100644
--- a/Code/Mantid/docs/source/fitfunctions/DiffSphere.rst
+++ b/Code/Mantid/docs/source/fitfunctions/DiffSphere.rst
@@ -52,3 +52,5 @@ attibute is empty.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/DynamicKuboToyabe.rst b/Code/Mantid/docs/source/fitfunctions/DynamicKuboToyabe.rst
index 024b20741acc088bb279b9fa262236276a03add6..d23576ee075e45dfe163911fcf67baafbc1a32d9 100644
--- a/Code/Mantid/docs/source/fitfunctions/DynamicKuboToyabe.rst
+++ b/Code/Mantid/docs/source/fitfunctions/DynamicKuboToyabe.rst
@@ -32,3 +32,5 @@ small values will lead to long calculation times, while large values will produc
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/EndErfc.rst b/Code/Mantid/docs/source/fitfunctions/EndErfc.rst
index 5fb5bd408ac72ee39db479acb11385849ece91cd..bf15a5316466b7ece0e768ee07a4ddd831decff0 100644
--- a/Code/Mantid/docs/source/fitfunctions/EndErfc.rst
+++ b/Code/Mantid/docs/source/fitfunctions/EndErfc.rst
@@ -18,3 +18,5 @@ The function is A*erfc((B-x)/C) + D for positive A and the same minus 2A for neg
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/ExpDecay.rst b/Code/Mantid/docs/source/fitfunctions/ExpDecay.rst
index 53b46c05843911ed476962f9f61766d1b3fa9f9b..ad1555c109ab1cec60225f73e7fe00b7af9aef44 100644
--- a/Code/Mantid/docs/source/fitfunctions/ExpDecay.rst
+++ b/Code/Mantid/docs/source/fitfunctions/ExpDecay.rst
@@ -18,3 +18,5 @@ Exponential decay function is defined by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/ExpDecayMuon.rst b/Code/Mantid/docs/source/fitfunctions/ExpDecayMuon.rst
index 401b7bbe0eafa0b642764b06cea82773632807bc..d3545e5c89c9c86399e722dff7c4bbdd1532bfa4 100644
--- a/Code/Mantid/docs/source/fitfunctions/ExpDecayMuon.rst
+++ b/Code/Mantid/docs/source/fitfunctions/ExpDecayMuon.rst
@@ -18,3 +18,5 @@ Exponential decay for use by Muon scientists defined by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/ExpDecayOsc.rst b/Code/Mantid/docs/source/fitfunctions/ExpDecayOsc.rst
index 2e722abc77bc33cf45c2da657e7e36e6ce64c116..b2c6ffde86549d19652038fd6f17ef21c93e4e30 100644
--- a/Code/Mantid/docs/source/fitfunctions/ExpDecayOsc.rst
+++ b/Code/Mantid/docs/source/fitfunctions/ExpDecayOsc.rst
@@ -20,3 +20,5 @@ Oscillation exponential decay function is defined by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/FickDiffusion.rst b/Code/Mantid/docs/source/fitfunctions/FickDiffusion.rst
index 3a7a99d858ca9a06603d77f16460ca10980a2703..7a8c53395f29157901d1779ea1b19883d5438e70 100644
--- a/Code/Mantid/docs/source/fitfunctions/FickDiffusion.rst
+++ b/Code/Mantid/docs/source/fitfunctions/FickDiffusion.rst
@@ -20,3 +20,5 @@ motions of molecules. Fick's law for diffusion has the form:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/FlatBackground.rst b/Code/Mantid/docs/source/fitfunctions/FlatBackground.rst
index 2502c12c9ee7915faef3e7192a8c03d737c9158b..60a9bb3d3d501e7ab3760b346c1273ca2c04838d 100644
--- a/Code/Mantid/docs/source/fitfunctions/FlatBackground.rst
+++ b/Code/Mantid/docs/source/fitfunctions/FlatBackground.rst
@@ -18,3 +18,5 @@ A Flat background function is defined as:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/GausDecay.rst b/Code/Mantid/docs/source/fitfunctions/GausDecay.rst
index e0c452795a2eac9c501b0d3d0123c29e80e413c8..5d5e518147ba8cd17e8e9cc1244b877db4cf3bce 100644
--- a/Code/Mantid/docs/source/fitfunctions/GausDecay.rst
+++ b/Code/Mantid/docs/source/fitfunctions/GausDecay.rst
@@ -18,3 +18,5 @@ Gaussian decay for use by Muon scientists defined by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/GausOsc.rst b/Code/Mantid/docs/source/fitfunctions/GausOsc.rst
index e527a75cef62ab5f0678127f98aa67ea5f2cbdc0..0c1d94ea3d5369b556b88d5ab1896601bf79031d 100644
--- a/Code/Mantid/docs/source/fitfunctions/GausOsc.rst
+++ b/Code/Mantid/docs/source/fitfunctions/GausOsc.rst
@@ -18,3 +18,5 @@ Oscillating Gaussian decay for use by Muon scientists defined by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/Gaussian.rst b/Code/Mantid/docs/source/fitfunctions/Gaussian.rst
index 82089b08b88565b02969573850c8acf5b9a219a2..fd50c246e45ebd7e32830d00d672864ef2474310 100644
--- a/Code/Mantid/docs/source/fitfunctions/Gaussian.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Gaussian.rst
@@ -34,3 +34,5 @@ a TOF peak:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/Guinier.rst b/Code/Mantid/docs/source/fitfunctions/Guinier.rst
index 5fe32bc5652e24b4af54a0dc767de079390c4d2a..2d4d6762f5a26c7ca16535186f8d6d0f172fb088 100644
--- a/Code/Mantid/docs/source/fitfunctions/Guinier.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Guinier.rst
@@ -22,3 +22,5 @@ where:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/GuinierPorod.rst b/Code/Mantid/docs/source/fitfunctions/GuinierPorod.rst
index 7f69961ba8735686476dda5035c0ab52e30ba5a4..1fb1d0bc3089c38fd60579338043814988c5dd31 100644
--- a/Code/Mantid/docs/source/fitfunctions/GuinierPorod.rst
+++ b/Code/Mantid/docs/source/fitfunctions/GuinierPorod.rst
@@ -17,3 +17,5 @@ The Guinier-Porod model is defined in Hammouda, J. Appl. Cryst. (2010) 43, 716-7
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/HallRoss.rst b/Code/Mantid/docs/source/fitfunctions/HallRoss.rst
index 2e38ddb96f360a99c6c2f8c9018fb35db1b0e9d6..9e5a23712ee9d93e4ce7d3d4894ab794155c0659 100644
--- a/Code/Mantid/docs/source/fitfunctions/HallRoss.rst
+++ b/Code/Mantid/docs/source/fitfunctions/HallRoss.rst
@@ -9,9 +9,11 @@ Hall-Ross
 Description
 -----------
 
-Models the Q dependence of the QENS line width (Gamma (hwhm)), diffusion coefficients (D), 
-residence times (tau) and jump lengths (l) to extract the associated long range diffusive
-motions of molecules. The Hall-Ross Jump diffusion model has the form:
+Models the Q dependence of the QENS line width (Gamma (hwhm)), diffusion
+coefficients (D), residence times (tau) and jump lengths (l) to extract the
+associated long range diffusive motions of molecules.
+
+The Hall-Ross Jump diffusion model [1]_ has the form:
 
 .. math:: Gamma(Q) = (1-exp(-l*Q^2))/tau
 
@@ -19,4 +21,11 @@ motions of molecules. The Hall-Ross Jump diffusion model has the form:
 
 .. properties::
 
+References
+----------
+
+.. [1] P L Hall & D K Ross `Mol Phys 36 1549 (1978) <http://dx.doi.org/10.1080/00268978100100521>`__
+
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/IkedaCarpenterPV.rst b/Code/Mantid/docs/source/fitfunctions/IkedaCarpenterPV.rst
index b5e3fff6c6eb9bf3366cbc974f6a4c7785e6ba2f..80a20d52b7ac45b2136df9bf3bcd6f690b910b92 100644
--- a/Code/Mantid/docs/source/fitfunctions/IkedaCarpenterPV.rst
+++ b/Code/Mantid/docs/source/fitfunctions/IkedaCarpenterPV.rst
@@ -59,8 +59,8 @@ Fullprof manual, see Ref[2].
 
 References:
 
-#. S. Ikeda and J. M. Carpenter, Nuclear Inst. and Meth. in Phys. Res.
-   A239, 536 (1985)
+#. S. Ikeda and J. M. Carpenter, `Nuclear Inst. and Meth. in Phys. Res.
+   A239, 536 (1985) <http://dx.doi.org/10.1016/0168-9002(85)90033-6>`_
 #. Fullprof manual, see http://www.ill.eu/sites/fullprof/
 
 The figure below illustrate this peakshape function fitted to a TOF
@@ -74,3 +74,5 @@ peak:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/LatticeErrors.rst b/Code/Mantid/docs/source/fitfunctions/LatticeErrors.rst
index a93785e2eb6f82a20d293fb6f3be49ddc88d1697..31e3b987b6b7c4890d8e933014ffc91718ecb6d5 100644
--- a/Code/Mantid/docs/source/fitfunctions/LatticeErrors.rst
+++ b/Code/Mantid/docs/source/fitfunctions/LatticeErrors.rst
@@ -14,3 +14,5 @@ Description
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/LatticeFunction.rst b/Code/Mantid/docs/source/fitfunctions/LatticeFunction.rst
index 1ee418b638b3eccbabf6140b5f04de034d5bbf58..a068acb7b47870a21c243b615940ac05865f8f6e 100644
--- a/Code/Mantid/docs/source/fitfunctions/LatticeFunction.rst
+++ b/Code/Mantid/docs/source/fitfunctions/LatticeFunction.rst
@@ -50,18 +50,18 @@ used to generate Bragg reflections that are expected for the crystal structure o
 
     a_true = 5.4311946
     a = np.round(parameters.cell(0, 1), 7)
-    a_err = np.round(parameters.cell(0, 2), 7)
+    a_err = np.round(parameters.cell(0, 2), 16)
 
     print "Refined lattice parameter: a =", a, "+/-", a_err
     print "Difference from expected value: a_observed - a_expected =", np.round(a - a_true, 7)
-    print "Is this difference within the standard deviation?", "Yes" if np.fabs(a - a_true) < a_err else "No"
+    print "Is this difference within the standard deviation?", "Yes" if np.fabs(a - a_true) <= a_err else "No"
 
 Executing the script produces some output with information about the fit:
 
 .. testoutput:: ExSiliconTheoretical
 
-    Refined lattice parameter: a = 5.4311944 +/- 3e-07
-    Difference from expected value: a_observed - a_expected = -2e-07
+    Refined lattice parameter: a = 5.4311946 +/- 2e-16
+    Difference from expected value: a_observed - a_expected = 0.0
     Is this difference within the standard deviation? Yes
 
 In addition there is also an output workspace, which contains information about the peaks used for the fit and how
@@ -79,3 +79,5 @@ well the peak positions calculated from the fitted parameters match the observed
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/LinearBackground.rst b/Code/Mantid/docs/source/fitfunctions/LinearBackground.rst
index ab2326ad977e634be6d20c6dc0fbb3412cc1a670..ae47ed570e052e960283a4e502e213bb5a441ce4 100644
--- a/Code/Mantid/docs/source/fitfunctions/LinearBackground.rst
+++ b/Code/Mantid/docs/source/fitfunctions/LinearBackground.rst
@@ -21,3 +21,5 @@ be renamed to Linear in the not too distance future.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/LogNormal.rst b/Code/Mantid/docs/source/fitfunctions/LogNormal.rst
index 7508ae683645d7fa8d16d400fa1cd1bb76a906ae..33597a67dc54d3156bd49673ee5f5260d9fc8997 100644
--- a/Code/Mantid/docs/source/fitfunctions/LogNormal.rst
+++ b/Code/Mantid/docs/source/fitfunctions/LogNormal.rst
@@ -18,3 +18,5 @@ The LogNormal fit function is defined by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/Lorentz.rst b/Code/Mantid/docs/source/fitfunctions/Lorentz.rst
index 9fa0774d6d1670e21898b2c5f6b2d889894aae8a..94733d2ec3fcbae4041b5b870c73b210313daaab 100644
--- a/Code/Mantid/docs/source/fitfunctions/Lorentz.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Lorentz.rst
@@ -23,3 +23,5 @@ where:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/Lorentzian.rst b/Code/Mantid/docs/source/fitfunctions/Lorentzian.rst
index 3275bd4e228b36ba590afa9d2ba59ce4fc2020c2..8af80b28262e53c0e40277b8ebb66e89b9c97968 100644
--- a/Code/Mantid/docs/source/fitfunctions/Lorentzian.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Lorentzian.rst
@@ -35,3 +35,5 @@ a TOF peak:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/MuonFInteraction.rst b/Code/Mantid/docs/source/fitfunctions/MuonFInteraction.rst
index 11965be362215b6f2633991f02af7e449b713c66..3d29f2446503eceda671e30ab0971485f56998eb 100644
--- a/Code/Mantid/docs/source/fitfunctions/MuonFInteraction.rst
+++ b/Code/Mantid/docs/source/fitfunctions/MuonFInteraction.rst
@@ -35,3 +35,5 @@ and
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/NeutronBk2BkExpConvPVoigt.rst b/Code/Mantid/docs/source/fitfunctions/NeutronBk2BkExpConvPVoigt.rst
index 660d60695922eb84aa6570b58ddab05d09ab5f36..723e06d76c688d59cc46373080c2f15f04011ead 100644
--- a/Code/Mantid/docs/source/fitfunctions/NeutronBk2BkExpConvPVoigt.rst
+++ b/Code/Mantid/docs/source/fitfunctions/NeutronBk2BkExpConvPVoigt.rst
@@ -191,3 +191,5 @@ where
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/PawleyFunction.rst b/Code/Mantid/docs/source/fitfunctions/PawleyFunction.rst
index f4b6333060230d39fb450710b9e144e16b6fd996..dfe515c5e0d94e054e3dd644a0760b7122520db8 100644
--- a/Code/Mantid/docs/source/fitfunctions/PawleyFunction.rst
+++ b/Code/Mantid/docs/source/fitfunctions/PawleyFunction.rst
@@ -18,3 +18,5 @@ Since the function requires special setup (assignment of HKLs, selection of crys
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/PeakHKLErrors.rst b/Code/Mantid/docs/source/fitfunctions/PeakHKLErrors.rst
index c192cd4e5614b0a8feb62703ce8fb520fae5e94e..49bb7f87bd6bf17a77395461710a9fbd77679c98 100644
--- a/Code/Mantid/docs/source/fitfunctions/PeakHKLErrors.rst
+++ b/Code/Mantid/docs/source/fitfunctions/PeakHKLErrors.rst
@@ -56,3 +56,5 @@ offsets from an integer using the current parameter values.
    be tied to zero.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/Porod.rst b/Code/Mantid/docs/source/fitfunctions/Porod.rst
index dba28edc8291e9546d042795f59daded443cd939..1a9157226afb51701bc6c918adafcb22bc85232a 100644
--- a/Code/Mantid/docs/source/fitfunctions/Porod.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Porod.rst
@@ -22,3 +22,5 @@ where:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/ProductFunction.rst b/Code/Mantid/docs/source/fitfunctions/ProductFunction.rst
index a4b2d8a5313a33cffe303be56fb83770a6077c36..c35d4ca70f7b2f768cbbac3b464aeda9af1c0948 100644
--- a/Code/Mantid/docs/source/fitfunctions/ProductFunction.rst
+++ b/Code/Mantid/docs/source/fitfunctions/ProductFunction.rst
@@ -20,3 +20,5 @@ a ProductFunction can be a composite function itself.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/ProductLinearExp.rst b/Code/Mantid/docs/source/fitfunctions/ProductLinearExp.rst
index 8366c447766274456a8dec4246a40968edb15816..e1d628610360447dc95113ce65cb1314ad77e4b9 100644
--- a/Code/Mantid/docs/source/fitfunctions/ProductLinearExp.rst
+++ b/Code/Mantid/docs/source/fitfunctions/ProductLinearExp.rst
@@ -25,3 +25,5 @@ detector efficiency calibration.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/ProductQuadraticExp.rst b/Code/Mantid/docs/source/fitfunctions/ProductQuadraticExp.rst
index 8c188ee2b2bd8dbb9ebc5ea4e9cad4a98cc85796..6129d373c6a34b2a1c28cb99d866862ed7e649b9 100644
--- a/Code/Mantid/docs/source/fitfunctions/ProductQuadraticExp.rst
+++ b/Code/Mantid/docs/source/fitfunctions/ProductQuadraticExp.rst
@@ -25,3 +25,5 @@ detector efficiency calibration. Also see
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/PseudoVoigt.rst b/Code/Mantid/docs/source/fitfunctions/PseudoVoigt.rst
index 088763ca1e053fd3474028b5c88a32ab2bfe8a3b..8cb3ebd3c82d074c44572210cc710b9bab22ea8e 100644
--- a/Code/Mantid/docs/source/fitfunctions/PseudoVoigt.rst
+++ b/Code/Mantid/docs/source/fitfunctions/PseudoVoigt.rst
@@ -27,3 +27,5 @@ The figure below shows data together with a fitted Pseudo-Voigt function, as wel
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/Quadratic.rst b/Code/Mantid/docs/source/fitfunctions/Quadratic.rst
index 9d14cc234763a57fe2b71afddb8eabefef018f50..ec969de22b9b6177cdc4299d1f9a2d8f8cfcc9c0 100644
--- a/Code/Mantid/docs/source/fitfunctions/Quadratic.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Quadratic.rst
@@ -24,3 +24,7 @@ where
 .. properties::
 
 .. categories::
+
+.. sourcelink::
+    :h: Framework/CurveFitting/inc/MantidCurveFitting/Quadratic.h
+    :cpp: Framework/CurveFitting/src/Quadratic.cpp
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/fitfunctions/SCDPanelErrors.rst b/Code/Mantid/docs/source/fitfunctions/SCDPanelErrors.rst
index 5346010003987b378f65ea46edea7253cfc8f425..1222954984a13298c27d4ba98615795e85da0cf9 100644
--- a/Code/Mantid/docs/source/fitfunctions/SCDPanelErrors.rst
+++ b/Code/Mantid/docs/source/fitfunctions/SCDPanelErrors.rst
@@ -94,3 +94,5 @@ follows:
 The order of rotations correspond to the order used in all of Mantid.
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabe.rst b/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabe.rst
index 52fd2dbb7233b2f82648fb94cf5c6a8c54aebae0..f72f381a3b010a651ec3995b8c5b7e924f00e83e 100644
--- a/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabe.rst
+++ b/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabe.rst
@@ -19,3 +19,5 @@ by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabeTimesExpDecay.rst b/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabeTimesExpDecay.rst
index 560c541551a68ce1b0dc7d2f0b57aef15d4c3193..d5f5c9743c1e7f1bcc6849dda4ec19e785dacc83 100644
--- a/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabeTimesExpDecay.rst
+++ b/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabeTimesExpDecay.rst
@@ -20,3 +20,5 @@ Fitting function for use by Muon scientists defined by:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabeTimesGausDecay.rst b/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabeTimesGausDecay.rst
index cabb93c4dc449b4a09e8a265de085d3d0d43f127..cebe903c9f077fbcb2d3fa8f7b606eaa39a1c599 100644
--- a/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabeTimesGausDecay.rst
+++ b/Code/Mantid/docs/source/fitfunctions/StaticKuboToyabeTimesGausDecay.rst
@@ -20,3 +20,5 @@ Fitting function for use by Muon scientists defined by:
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/StretchExp.rst b/Code/Mantid/docs/source/fitfunctions/StretchExp.rst
index 95832dc5ba30802aded03a38daf5346f2ca2d323..78c2923e80b148bd7b409703f8a62b1085d84597 100644
--- a/Code/Mantid/docs/source/fitfunctions/StretchExp.rst
+++ b/Code/Mantid/docs/source/fitfunctions/StretchExp.rst
@@ -18,3 +18,5 @@ The Stretched exponential fit function is defined by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/StretchExpMuon.rst b/Code/Mantid/docs/source/fitfunctions/StretchExpMuon.rst
index 479f63ab84b5af8e41722551768bbdfa90da7c1d..8f386cf6e9900e68f0644ce8a202cf7b0ff97d4e 100644
--- a/Code/Mantid/docs/source/fitfunctions/StretchExpMuon.rst
+++ b/Code/Mantid/docs/source/fitfunctions/StretchExpMuon.rst
@@ -18,3 +18,5 @@ The Stretched exponential fit function is defined by
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/StretchedExpFT.rst b/Code/Mantid/docs/source/fitfunctions/StretchedExpFT.rst
index fe18e00725c75e650d6f9cfa7e58b3d175690490..54d157e0d9be99cab7bde93d2f5f30d757cd4f07 100644
--- a/Code/Mantid/docs/source/fitfunctions/StretchedExpFT.rst
+++ b/Code/Mantid/docs/source/fitfunctions/StretchedExpFT.rst
@@ -21,3 +21,5 @@ tau is expressed in nano-seconds.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/TabulatedFunction.rst b/Code/Mantid/docs/source/fitfunctions/TabulatedFunction.rst
index 86b0138edbd23e22926bb8de80dfee70c5240bbd..0b8239ab5d03d5b5e2517356d519c39c7a02f212 100644
--- a/Code/Mantid/docs/source/fitfunctions/TabulatedFunction.rst
+++ b/Code/Mantid/docs/source/fitfunctions/TabulatedFunction.rst
@@ -60,3 +60,5 @@ Output:
     Number of spectra in fitWorkspace is: 3
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/TeixeiraWater.rst b/Code/Mantid/docs/source/fitfunctions/TeixeiraWater.rst
index d90ac80300126a165c9959506bbb9c0e39240ac3..dea93d3ee4a382a4df92e119e2e9fb3f8c6ad35d 100644
--- a/Code/Mantid/docs/source/fitfunctions/TeixeiraWater.rst
+++ b/Code/Mantid/docs/source/fitfunctions/TeixeiraWater.rst
@@ -9,9 +9,13 @@ TeixeiraWater
 Description
 -----------
 
-Teixeira's model for water. Models the Q dependence of the QENS line width (Gamma (hwhm)), diffusion coefficients (D), 
-residence times (tau) and jump lengths (length) to extract the associated long range diffusive
-motions of molecules. The this model (1961) has the form:
+Teixeira's model for water [1]_.
+
+Models the Q dependence of the QENS line width (Gamma (hwhm)), diffusion
+coefficients (D), residence times (tau) and jump lengths (length) to extract the
+associated long range diffusive motions of molecules.
+
+This model (1961) has the form:
 
 .. math:: Gamma(Q) = D*Q^2/(1 + D*Q^2*tau)
 
@@ -19,4 +23,11 @@ motions of molecules. The this model (1961) has the form:
 
 .. properties::
 
+References
+----------
+
+.. [1] J. Teixeira, M.-C. Bellissent-Funel, S. H. Chen, and A. J. Dianoux. `Phys. Rev. A, 31:1913–1917 <http://dx.doi.org/10.1103/PhysRevA.31.1913>`__
+
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/ThermalNeutronBk2BkExpConvPVoigt.rst b/Code/Mantid/docs/source/fitfunctions/ThermalNeutronBk2BkExpConvPVoigt.rst
index 3d98d0c087acf15d928eb86e59a61ebc3f273e27..03b64ec8318543cc850adb1d9a59088a57b84062 100644
--- a/Code/Mantid/docs/source/fitfunctions/ThermalNeutronBk2BkExpConvPVoigt.rst
+++ b/Code/Mantid/docs/source/fitfunctions/ThermalNeutronBk2BkExpConvPVoigt.rst
@@ -177,3 +177,5 @@ where
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/fitfunctions/UserFunction.rst b/Code/Mantid/docs/source/fitfunctions/UserFunction.rst
index 515768778c28d2fc27ac452fce2c71e7e941ab0e..9cda7f413fdb76f7d3bbc3a30e82de60e69f4a32 100644
--- a/Code/Mantid/docs/source/fitfunctions/UserFunction.rst
+++ b/Code/Mantid/docs/source/fitfunctions/UserFunction.rst
@@ -23,3 +23,7 @@ go first in UserFunction definition.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
+    :h: Framework/CurveFitting/inc/MantidCurveFitting/UserFunction.h
+    :cpp: Framework/CurveFitting/src/UserFunction.cpp
\ No newline at end of file
diff --git a/Code/Mantid/docs/source/fitfunctions/Voigt.rst b/Code/Mantid/docs/source/fitfunctions/Voigt.rst
index 7d71da02945dab3ef27745558838d33b3c0d3c05..9368326154692939ec93294180b08928b662aee4 100644
--- a/Code/Mantid/docs/source/fitfunctions/Voigt.rst
+++ b/Code/Mantid/docs/source/fitfunctions/Voigt.rst
@@ -41,3 +41,5 @@ to generate good approximation to the true function.
 .. properties::
 
 .. categories::
+
+.. sourcelink::
diff --git a/Code/Mantid/docs/source/images/ALCBaselineModelling.png b/Code/Mantid/docs/source/images/ALCBaselineModelling.png
new file mode 100644
index 0000000000000000000000000000000000000000..cdcd6b33d687ac51fdcf4a3d0c085b73338efe85
Binary files /dev/null and b/Code/Mantid/docs/source/images/ALCBaselineModelling.png differ
diff --git a/Code/Mantid/docs/source/images/ALCDataLoading.png b/Code/Mantid/docs/source/images/ALCDataLoading.png
new file mode 100644
index 0000000000000000000000000000000000000000..4819c8a8c877528892bef2042879318bb8b876ff
Binary files /dev/null and b/Code/Mantid/docs/source/images/ALCDataLoading.png differ
diff --git a/Code/Mantid/docs/source/images/ALCPeakFitting.png b/Code/Mantid/docs/source/images/ALCPeakFitting.png
new file mode 100644
index 0000000000000000000000000000000000000000..83982c745083cda251db50f45a5656a2e3537a08
Binary files /dev/null and b/Code/Mantid/docs/source/images/ALCPeakFitting.png differ
diff --git a/Code/Mantid/docs/source/images/BinMD_AxisAligned.png b/Code/Mantid/docs/source/images/BinMD_AxisAligned.png
new file mode 100644
index 0000000000000000000000000000000000000000..52da21139dc0613a6da347994cbcec2913245985
Binary files /dev/null and b/Code/Mantid/docs/source/images/BinMD_AxisAligned.png differ
diff --git a/Code/Mantid/docs/source/images/BinMD_NonAxisAligned.png b/Code/Mantid/docs/source/images/BinMD_NonAxisAligned.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae450a870e5e3f7765a3519c6a3cb2076d3a9a9a
Binary files /dev/null and b/Code/Mantid/docs/source/images/BinMD_NonAxisAligned.png differ
diff --git a/Code/Mantid/docs/source/images/CreateSampleWorkspaceInstrument.pdn b/Code/Mantid/docs/source/images/CreateSampleWorkspaceInstrument.pdn
new file mode 100644
index 0000000000000000000000000000000000000000..e6572c87dec1ba094a6b3f75f4dcbaf26340d2ed
Binary files /dev/null and b/Code/Mantid/docs/source/images/CreateSampleWorkspaceInstrument.pdn differ
diff --git a/Code/Mantid/docs/source/images/CreateSampleWorkspaceInstrument.png b/Code/Mantid/docs/source/images/CreateSampleWorkspaceInstrument.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9ba27860a10c651e250aec6f4f5f824df889a62
Binary files /dev/null and b/Code/Mantid/docs/source/images/CreateSampleWorkspaceInstrument.png differ
diff --git a/Code/Mantid/docs/source/images/Mantid_Logo_Transparent.png b/Code/Mantid/docs/source/images/Mantid_Logo_Transparent.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d487d969ae677cc389d81f598cde6a888439d5d
Binary files /dev/null and b/Code/Mantid/docs/source/images/Mantid_Logo_Transparent.png differ
diff --git a/Code/Mantid/docs/source/images/mantid.png b/Code/Mantid/docs/source/images/mantid.png
new file mode 100644
index 0000000000000000000000000000000000000000..249f3158203b62014edcb6f1a2f952f402ffd9d9
Binary files /dev/null and b/Code/Mantid/docs/source/images/mantid.png differ
diff --git a/Code/Mantid/docs/source/index.rst b/Code/Mantid/docs/source/index.rst
index 65ef864bf2be1dad3543b9a7deee9cf17ba703e0..f24258efea5deff103010bb2e2f726e5d2dbb641 100644
--- a/Code/Mantid/docs/source/index.rst
+++ b/Code/Mantid/docs/source/index.rst
@@ -7,24 +7,35 @@
 
 .. _contents:
 
-===============
- Documentation
-===============
+.. image:: images/Mantid_Logo_Transparent.png
+   :alt: The logo for the Mantid Project
+   :align: center
+
+====================
+Mantid Documentation
+====================
 
 .. toctree::
    :hidden:
    :glob:
    :maxdepth: 1
 
+   algorithms/index
    algorithms/*
    concepts/index
    interfaces/index
    fitfunctions/*
    api/index
 
+
 This is the documentation for Mantid |release|.
 
-**Parts:**
+**Sections:**
+
+.. image:: images/mantid.png
+   :alt: A preying mantis with arms upraised
+   :width: 200px
+   :align: right
 
 * `Algorithms <algorithms/index.html>`_
 * `Concepts <concepts/index.html>`_
@@ -32,3 +43,5 @@ This is the documentation for Mantid |release|.
 * `Fit Functions <fitfunctions/index.html>`_
 * `API <api/index.html>`_
     - `Python <api/python/index.html>`_
+
+
diff --git a/Code/Mantid/docs/source/interfaces/Indirect_Bayes.rst b/Code/Mantid/docs/source/interfaces/Indirect_Bayes.rst
index 8e02f100c9a87ff5d786e5b2201027e85ac6545c..e36375f7a95202193de4bff6b0afb47e8d2f8a67 100644
--- a/Code/Mantid/docs/source/interfaces/Indirect_Bayes.rst
+++ b/Code/Mantid/docs/source/interfaces/Indirect_Bayes.rst
@@ -11,7 +11,7 @@ Overview
   :align: right
   :width: 350
 
-TODO
+Provides Bayesian analysis routines primarily for use with QENS data.
 
 Action Buttons
 --------------
@@ -29,8 +29,6 @@ Manage Directories
 ResNorm
 -------
 
-.. warning:: This interface is only available on Windows
-
 .. interface:: Bayes
   :widget: ResNorm
 
@@ -38,13 +36,14 @@ This tab creates a group 'normalisation' file by taking a resolution file and
 fitting it to all the groups in the resolution (vanadium) data file which has
 the same grouping as the sample data of interest.
 
-The routine varies the width of the resolution file to give a 'stretch factor'
+The routine fits the width of the resolution file to give a 'stretch factor'
 and the area provides an intensity normalisation factor.
 
-The fitted parameters are in the group workspace with suffix _ResNorm with
-additional suffices of Intensity & Stretch.
+The fitted parameters are in the group workspace with suffix *_ResNorm* with
+additional suffices of *_Intensity* & *_Stretch*.
 
-The fitted data are in the workspace ending in _ResNorm_Fit.
+The processing on this tab is provided by the :ref:`ResNorm <algm-ResNorm>`
+algorithm.
 
 Options
 ~~~~~~~
@@ -59,12 +58,6 @@ Resolution File
 EMin & EMax
   The energy range to perform fitting within.
 
-Van Binning
-  Vanadium binning to use.
-
-Verbose
-  Provides more information on the Results Log.
-
 Plot Result
   Plots the result workspaces.
 
@@ -140,9 +133,6 @@ Sample Binning
 Resolution Binning
   Resolution binning to use.
 
-Verbose
-  Provides more information on the Results Log.
-
 Plot Result
   Plots the result workspaces.
 
@@ -192,44 +182,6 @@ Sigma
 Beta
   Value of Beta to use.
 
-Verbose
-  Provides more information on the Results Log.
-
-Plot Result
-  Plots the result workspaces.
-
-Save Result
-  Saves the result in the default save directory.
-
-JumpFit
--------
-
-.. interface:: Bayes
-  :widget: JumpFit
-
-One of the models used to interpret diffusion is that of jump diffusion in which
-it is assumed that an atom remains at a given site for a time :math:`\tau`; and
-then moves rapidly, that is, in a time negligible compared to :math:`\tau`;
-hence ‘jump’.
-
-Options
-~~~~~~~
-
-Sample
-  A sample workspace created with either ConvFit or Quasi.
-
-Fit Funcion
-  Selects the model to be used for fitting.
-
-Width
-  Spectrum in the sample workspace to fit.
-
-QMin & QMax
-  The Q range to perform fitting within.
-
-Verbose
-  Provides more information on the Results Log.
-
 Plot Result
   Plots the result workspaces.
 
diff --git a/Code/Mantid/docs/source/interfaces/Indirect_Corrections.rst b/Code/Mantid/docs/source/interfaces/Indirect_Corrections.rst
new file mode 100644
index 0000000000000000000000000000000000000000..83b31e2455b4894a334dd31dbc24035a22f0bbee
--- /dev/null
+++ b/Code/Mantid/docs/source/interfaces/Indirect_Corrections.rst
@@ -0,0 +1,357 @@
+Indirect Corrections
+====================
+
+.. contents:: Table of Contents
+  :local:
+
+Overview
+--------
+
+.. interface:: Corrections
+  :align: right
+  :width: 350
+
+Provides correction routines for quasielastic, inelastic and diffraction
+reductions.
+
+Action Buttons
+~~~~~~~~~~~~~~
+
+?
+  Opens this help page.
+
+Py
+  Exports a Python script which will replicate the processing done by the current tab.
+
+Run
+  Runs the processing configured on the current tab.
+
+Manage Directories
+  Opens the Manage Directories dialog allowing you to change your search directories
+  and default save directory and enable/disable data archive search.
+
+Calculate Paalman Pings
+-----------------------
+
+.. interface:: Corrections
+  :widget: tabCalculatePaalmanPings
+
+Calculates absorption corrections in the Paalman & Pings absorption factors that
+could be applied to the data when given information about the sample (and
+optionally can) geometry.
+
+Options
+~~~~~~~
+
+Input
+  Either a reduced file (*_red.nxs*) or workspace (*_red*) or an :math:`S(Q,
+  \omega)` file (*_sqw.nxs*) or workspace (*_sqw*).
+
+Use Can
+  If checked allows you to select a workspace for the container in the format of
+  either a reduced file (*_red.nxs*) or workspace (*_red*) or an :math:`S(Q,
+  \omega)` file (*_sqw.nxs*) or workspace (*_sqw*).
+
+Sample Shape
+  Sets the shape of the sample, this affects the options for the shape details
+  (see below).
+
+Sample/Can Number Density
+  Density of the sample or container.
+
+Sample/Can Chemical Formula
+  Chemical formula of the sample or can material. This must be provided in the
+  format expected by the :ref:`SetSampleMaterial <algm-SetSampleMaterial>`
+  algorithm.
+
+Plot Output
+  Plots the :math:`A_{s,s}`, :math:`A_{s,sc}`, :math:`A_{c,sc}` and
+  :math:`A_{c,c}` workspaces as spectra plots.
+
+Save Result
+  If enabled the result will be saved as a NeXus file in the default save
+  directory.
+
+Shape Details
+~~~~~~~~~~~~~
+
+Depending on the shape of the sample different parameters for the sample
+dimension are required and are detailed below.
+
+Flat Plate
+##########
+
+.. interface:: Corrections
+  :widget: pgFlatPlate
+
+The calculation for a flat plate geometry is performed by the
+:ref:`FlatPlatePaalmanPingsCorrection <algm-FlatPlatePaalmanPingsCorrection>`
+algorithm.
+
+Sample Thickness
+  Thickness of sample in :math:`cm`.
+
+Sample Angle
+  Sample angle in degrees.
+
+Can Front Thickness
+  Thickness of front container in :math:`cm`.
+
+Can Back Thickness
+  Thickness of back container in :math:`cm`.
+
+Cylinder
+########
+
+.. interface:: Corrections
+  :widget: pgCylinder
+
+The calculation for a cylindrical geometry is performed by the
+:ref:`CylinderPaalmanPingsCorrection <algm-CylinderPaalmanPingsCorrection>`
+algorithm, this algorithm is currently only available on Windows as it uses
+FORTRAN code dependant of F2Py.
+
+Sample Inner Radius
+  Radius of the inner wall of the sample in :math:`cm`.
+
+Sample Outer Radius
+  Radius of the outer wall of the sample in :math:`cm`.
+
+Container Outer Radius
+  Radius of outer wall of the container in :math:`cm`.
+
+Beam Height
+  Height of incident beam :math:`cm`.
+
+Beam Width
+  Width of incident beam in :math:`cm`.
+
+Step Size
+  Step size used in calculation.
+
+Annulus
+#######
+
+.. interface:: Corrections
+  :widget: pgAnnulus
+
+The calculation for an annular geometry is performed by the
+:ref:`CylinderPaalmanPingsCorrection <algm-CylinderPaalmanPingsCorrection>`
+algorithm, this algorithm is currently only available on Windows as it uses
+FORTRAN code dependant of F2Py.
+
+The options here are the same as for Cylinder.
+
+Background
+~~~~~~~~~~
+
+The main correction to be applied to neutron scattering data is that for
+absorption both in the sample and its container, when present. For flat plate
+geometry, the corrections can be analytical and have been discussed for example
+by Carlile [1]. The situation for cylindrical geometry is more complex and
+requires numerical integration. These techniques are well known and used in
+liquid and amorphous diffraction, and are described in the ATLAS manual [2].
+
+The absorption corrections use the formulism of Paalman and Pings [3] and
+involve the attenuation factors :math:`A_{i,j}` where :math:`i` refers to
+scattering and :math:`j` attenuation. For example, :math:`A_{s,sc}` is the
+attenuation factor for scattering in the sample and attenuation in the sample
+plus container. If the scattering cross sections for sample and container are
+:math:`\Sigma_{s}` and :math:`\Sigma_{c}` respectively, then the measured
+scattering from the empty container is :math:`I_{c} = \Sigma_{c}A_{c,c}` and
+that from the sample plus container is :math:`I_{sc} = \Sigma_{s}A_{s,sc} +
+\Sigma_{c}A_{c,sc}`, thus :math:`\Sigma_{s} = (I_{sc} - I_{c}A_{c,sc}/A_{c,c}) /
+A_{s,sc}`.
+
+References:
+
+1. C J Carlile, Rutherford Laboratory report, RL-74-103 (1974)
+2. A K Soper, W S Howells & A C Hannon, `RAL Report RAL-89-046 (1989) <http://wwwisis2.isis.rl.ac.uk/Disordered/Manuals/ATLAS/ATLAS%20manual%20v1.0%20Intro.pdf>`_
+3. H H Paalman & C J Pings, `J Appl Phys 33 2635 (1962) <http://dx.doi.org/10.1063/1.1729034>`_
+
+Apply Paalman Pings
+-------------------
+
+.. interface:: Corrections
+  :widget: tabApplyPaalmanPings
+
+The Apply Corrections tab applies the corrections calculated in the Calculate
+Corrections tab of the Indirect Data Analysis interface.
+
+This uses the :ref:`ApplyPaalmanPingsCorrection
+<algm-ApplyPaalmanPingsCorrection>` algorithm to apply absorption corrections in
+the form of the Paalman & Pings correction factors. When *Use Can* is disabled
+only the :math:`A_{s,s}` factor must be provided, when using a container the
+additional factors must be provided: :math:`A_{c,sc}`, :math:`A_{s,sc}` and
+:math:`A_{c,c}`.
+
+Once run the corrected output and can correction is shown in the preview plot,
+the Spectrum spin box can be used to scroll through each spectrum. Note that
+when this plot shows the result of a calculation the X axis is always in
+wavelength, however when data is initially selected the X axis unit matches that
+of the sample workspace.
+
+The input and container workspaces will be converted to wavelength (using
+:ref:`ConvertUnits <algm-ConvertUnits>`) if they do not already have wavelength
+as their X unit.
+
+The binning of the sample, container and corrections factor workspace must all
+match, if the sample and container do not match you will be given the option to
+rebin (using :ref:`RebinToWorkspace <algm-RebinToWorkspace>`) the sample to
+match the container, if the correction factors do not match you will be given
+the option to interpolate (:ref:`SplineInterpolation
+<algm-SplineInterpolation>`) the correction factor to match the sample.
+
+Options
+~~~~~~~
+
+Input
+  Either a reduced file (*_red.nxs*) or workspace (*_red*) or an :math:`S(Q,
+  \omega)` file (*_sqw.nxs*) or workspace (*_sqw*).
+
+Geometry
+  Sets the sample geometry (this must match the sample shape used when running
+  Calculate Corrections).
+
+Use Can
+  If checked allows you to select a workspace for the container in the format of
+  either a reduced file (*_red.nxs*) or workspace (*_red*) or an :math:`S(Q,
+  \omega)` file (*_sqw.nxs*) or workspace (*_sqw*).
+
+Scale Can by factor
+  Allows the container intensity to be scaled by a given scale factor before
+  being used in the corrections calculation.
+
+Use Corrections
+  The Paalman & Pings correction factors to use in the calculation, note that
+  the file or workspace name must end in either *_flt_abs* or *_cyl_abs* for the
+  flat plate and cylinder geometries respectively.
+
+Plot Output
+  Gives the option to create either a spectra or contour plot (or both) of the
+  corrected workspace.
+
+Save Result
+  If enabled the result will be saved as a NeXus file in the default save
+  directory.
+
+Absorption Corrections
+----------------------
+
+.. interface:: Corrections
+  :widget: tabAbsorptionCorrections
+
+The Absorption Corrections tab provides a cross platform alternative to the
+previous Calculate and Apply Corrections tabs.
+
+Common Options
+~~~~~~~~~~~~~~
+
+Sample Input
+  Used to select the sample from either a file or a workspace already loaded
+  into Mantid.
+
+Use Container
+  Used to enable or disable use of a container and selects one from either a
+  file or loaded workspace.
+
+Shape
+  Select the shape of the sample (see specific geometry options below).
+
+Number Density
+  Number density for either the sample or container.
+
+Chemical Formula
+  Chemical formula for either the sample or container in the format expected by
+  :ref:`SetSampleMaterial <algm-SetSampleMaterial>`.
+
+Use Container Corrections
+  Enables full container corrections, if disabled only a can subtraction will be
+  performed.
+
+Scale
+  Scale factor to scale container input by.
+
+Keep Correction Factors
+  If checked a :ref:`WorkspaceGroup` containing the correction factors will also
+  be created, this will have the suffix *_Factors*.
+
+Plot Result
+  If checked the corrected workspace and correction factors will be plotted.
+
+Save Result
+  If checked the corrected workspace and (if *Keep Correction Factors* is
+  checked) the correction factor workspace will be saved as a NeXus file in the
+  default save directory.
+
+Flat Plate
+~~~~~~~~~~
+
+.. interface:: Corrections
+  :widget: pgAbsCorFlatPlate
+
+Flat plate calculations are provided by the
+:ref:`IndirectFlatPlateAbsorption <algm-IndirectFlatPlateAbsorption>` algorithm.
+
+Sample Width
+  Width of the sample in :math:`cm`.
+
+Sample Height
+  Height of the sample in :math:`cm`.
+
+Sample Thickness
+  Thickness of the sample in :math:`cm`.
+
+Container Front Thickness
+  Thickness of the front of the container in :math:`cm`.
+
+Container Back Thickness
+  Thickness of the back of the container in :math:`cm`.
+
+Element Size
+  Size of the square "chunks" to divide the frontal area of the sample into to
+  calculate corrections in :math:`cm`.
+
+Annulus
+~~~~~~~
+
+.. interface:: Corrections
+  :widget: pgAbsCorAnnulus
+
+Annulus calculations are provided by the :ref:`IndirectAnnulusAbsorption
+<algm-IndirectAnnulusAbsorption>` algorithm.
+
+Sample Inner Radius
+  Radius of the inner wall of the sample in :math:`cm`.
+
+Sample Outer Radius
+  Radius of the outer wall of the sample in :math:`cm`.
+
+Container Inner Radius
+  Radius of the inner wall of the container in :math:`cm`.
+
+Container Outer Radius
+  Radius of the outer wall of the container in :math:`cm`.
+
+Neutron Events
+  Number of events to use in the Monte Carlo simulation.
+
+Cylinder
+~~~~~~~~
+
+.. interface:: Corrections
+  :widget: pgAbsCorCylinder
+
+Cylinder calculations are provided by the
+:ref:`IndirectCylinderAbsorption <algm-IndirectCylinderAbsorption>` algorithm.
+
+Sample Radius
+  Radius of the outer wall of the sample in :math:`cm`.
+
+Container Radius
+  Radius of the outer wall of the container in :math:`cm`.
+
+Neutron Events
+  Number of events to use in the Monte Carlo simulation.
+
+.. categories:: Interfaces Indirect
diff --git a/Code/Mantid/docs/source/interfaces/Indirect_DataAnalysis.rst b/Code/Mantid/docs/source/interfaces/Indirect_DataAnalysis.rst
index 5a956ae933d98509547709f4f7298778e99da36c..3647dbbea9283837f3898ba9c82f3078151cc025 100644
--- a/Code/Mantid/docs/source/interfaces/Indirect_DataAnalysis.rst
+++ b/Code/Mantid/docs/source/interfaces/Indirect_DataAnalysis.rst
@@ -520,335 +520,43 @@ Polymer
 
 References:
 
-1. J S Higgins, R E Ghosh, W S Howells & G Allen, JCS Faraday II 73 40 (1977)
-2. J S Higgins, G Allen, R E Ghosh, W S Howells & B Farnoux, Chem Phys Lett 49 197 (1977)
+1. J S Higgins, R E Ghosh, W S Howells & G Allen, `JCS Faraday II 73 40 (1977) <http://dx.doi.org/10.1039/F29777300040>`_
+2. J S Higgins, G Allen, R E Ghosh, W S Howells & B Farnoux, `Chem Phys Lett 49 197 (1977) <http://dx.doi.org/10.1016/0009-2614(77)80569-1>`_
 
-Calculate Corrections
----------------------
-
-.. interface:: Data Analysis
-  :widget: tabCalcCorr
-
-Calculates absorption corrections in the Paalman & Pings absorption factors that
-could be applied to the data when given information about the sample (and
-optionally can) geometry.
-
-Options
-~~~~~~~
-
-Input
-  Either a reduced file (*_red.nxs*) or workspace (*_red*) or an :math:`S(Q,
-  \omega)` file (*_sqw.nxs*) or workspace (*_sqw*).
-
-Use Can
-  If checked allows you to select a workspace for the container in the format of
-  either a reduced file (*_red.nxs*) or workspace (*_red*) or an :math:`S(Q,
-  \omega)` file (*_sqw.nxs*) or workspace (*_sqw*).
-
-Sample Shape
-  Sets the shape of the sample, this affects the options for the shape details
-  (see below).
-
-Sample/Can Number Density
-  Density of the sample or container.
-
-Sample/Can Chemical Formula
-  Chemical formula of the sample or can material. This must be provided in the
-  format expected by the :ref:`SetSampleMaterial <algm-SetSampleMaterial>`
-  algorithm.
-
-Plot Output
-  Plots the :math:`A_{s,s}`, :math:`A_{s,sc}`, :math:`A_{c,sc}` and
-  :math:`A_{c,c}` workspaces as spectra plots.
-
-Save Result
-  If enabled the result will be saved as a NeXus file in the default save
-  directory.
-
-Shape Details
-~~~~~~~~~~~~~
-
-Depending on the shape of the sample different parameters for the sample
-dimension are required and are detailed below.
-
-Flat Plate
-##########
-
-.. interface:: Data Analysis
-  :widget: pgFlatPlate
-
-The calculation for a flat plate geometry is performed by the
-:ref:`FlatPlatePaalmanPingsCorrection <algm-FlatPlatePaalmanPingsCorrection>`
-algorithm.
-
-Sample Thickness
-  Thickness of sample in :math:`cm`.
-
-Sample Angle
-  Sample angle in degrees.
-
-Can Front Thickness
-  Thickness of front container in :math:`cm`.
-
-Can Back Thickness
-  Thickness of back container in :math:`cm`.
-
-Cylinder
-########
-
-.. warning:: This mode is only available on Windows
-
-.. interface:: Data Analysis
-  :widget: pgCylinder
-
-The calculation for a cylindrical geometry is performed by the
-:ref:`CylinderPaalmanPingsCorrection <algm-CylinderPaalmanPingsCorrection>`
-algorithm, this algorithm is currently only available on Windows as it uses
-FORTRAN code dependant of F2Py.
-
-Sample Inner Radius
-  Radius of the inner wall of the sample in :math:`cm`.
-
-Sample Outer Radius
-  Radius of the outer wall of the sample in :math:`cm`.
-
-Container Outer Radius
-  Radius of outer wall of the container in :math:`cm`.
-
-Beam Height
-  Height of incident beam :math:`cm`.
-
-Beam Width
-  Width of incident beam in :math:`cm`.
-
-Step Size
-  Step size used in calculation.
-
-Annulus
-#######
-
-.. warning:: This mode is only available on Windows
+JumpFit
+-------
 
 .. interface:: Data Analysis
-  :widget: pgAnnulus
-
-The calculation for an annular geometry is performed by the
-:ref:`CylinderPaalmanPingsCorrection <algm-CylinderPaalmanPingsCorrection>`
-algorithm, this algorithm is currently only available on Windows as it uses
-FORTRAN code dependant of F2Py.
-
-The options here are the same as for Cylinder.
-
-Background
-~~~~~~~~~~
-
-The main correction to be applied to neutron scattering data is that for
-absorption both in the sample and its container, when present. For flat plate
-geometry, the corrections can be analytical and have been discussed for example
-by Carlile [1]. The situation for cylindrical geometry is more complex and
-requires numerical integration. These techniques are well known and used in
-liquid and amorphous diffraction, and are described in the ATLAS manual [2].
-
-The absorption corrections use the formulism of Paalman and Pings [3] and
-involve the attenuation factors :math:`A_{i,j}` where :math:`i` refers to
-scattering and :math:`j` attenuation. For example, :math:`A_{s,sc}` is the
-attenuation factor for scattering in the sample and attenuation in the sample
-plus container. If the scattering cross sections for sample and container are
-:math:`\Sigma_{s}` and :math:`\Sigma_{c}` respectively, then the measured
-scattering from the empty container is :math:`I_{c} = \Sigma_{c}A_{c,c}` and
-that from the sample plus container is :math:`I_{sc} = \Sigma_{s}A_{s,sc} +
-\Sigma_{c}A_{c,sc}`, thus :math:`\Sigma_{s} = (I_{sc} - I_{c}A_{c,sc}/A_{c,c}) /
-A_{s,sc}`.
-
-References:
-
-1. C J Carlile, Rutherford Laboratory report, RL-74-103 (1974)
-2. A K Soper, W S Howells & A C Hannon, RAL Report RAL-89-046 (1989)
-3. H H Paalman & C J Pings, J Appl Phys 33 2635 (1962)
-
-Apply Corrections
------------------
+  :widget: tabJumpFit
 
-.. interface:: Data Analysis
-  :widget: tabApplyCorr
-
-The Apply Corrections tab applies the corrections calculated in the Calculate
-Corrections tab of the Indirect Data Analysis interface.
-
-This uses the :ref:`ApplyPaalmanPingsCorrection
-<algm-ApplyPaalmanPingsCorrection>` algorithm to apply absorption corrections in
-the form of the Paalman & Pings correction factors. When *Use Can* is disabled
-only the :math:`A_{s,s}` factor must be provided, when using a container the
-additional factors must be provided: :math:`A_{c,sc}`, :math:`A_{s,sc}` and
-:math:`A_{c,c}`.
-
-Once run the corrected output and can correction is shown in the preview plot,
-the Spectrum spin box can be used to scroll through each spectrum. Note that
-when this plot shows the result of a calculation the X axis is always in
-wavelength, however when data is initially selected the X axis unit matches that
-of the sample workspace.
-
-The input and container workspaces will be converted to wavelength (using
-:ref:`ConvertUnits <algm-ConvertUnits>`) if they do not already have wavelength
-as their X unit.
-
-The binning of the sample, container and corrections factor workspace must all
-match, if the sample and container do not match you will be given the option to
-rebin (using :ref:`RebinToWorkspace <algm-RebinToWorkspace>`) the sample to
-match the container, if the correction factors do not match you will be given
-the option to interpolate (:ref:`SplineInterpolation
-<algm-SplineInterpolation>`) the correction factor to match the sample.
+One of the models used to interpret diffusion is that of jump diffusion in which
+it is assumed that an atom remains at a given site for a time :math:`\tau`; and
+then moves rapidly, that is, in a time negligible compared to :math:`\tau`;
+hence ‘jump’.
 
 Options
 ~~~~~~~
 
-Input
-  Either a reduced file (*_red.nxs*) or workspace (*_red*) or an :math:`S(Q,
-  \omega)` file (*_sqw.nxs*) or workspace (*_sqw*).
-
-Geometry
-  Sets the sample geometry (this must match the sample shape used when running
-  Calculate Corrections).
-
-Use Can
-  If checked allows you to select a workspace for the container in the format of
-  either a reduced file (*_red.nxs*) or workspace (*_red*) or an :math:`S(Q,
-  \omega)` file (*_sqw.nxs*) or workspace (*_sqw*).
-
-Scale Can by factor
-  Allows the container intensity to be scaled by a given scale factor before
-  being used in the corrections calculation.
-
-Use Corrections
-  The Paalman & Pings correction factors to use in the calculation, note that
-  the file or workspace name must end in either *_flt_abs* or *_cyl_abs* for the
-  flat plate and cylinder geometries respectively.
-
-Plot Output
-  Gives the option to create either a spectra or contour plot (or both) of the
-  corrected workspace.
-
-Save Result
-  If enabled the result will be saved as a NeXus file in the default save
-  directory.
-
-Absorption Corrections
-----------------------
-
-.. interface:: Data Analysis
-  :widget: tabAbsorptionCorrections
-
-The Absorption Corrections tab provides a cross platform alternative to the
-previous Calculate and Apply Corrections tabs.
-
-Common Options
-~~~~~~~~~~~~~~
-
-Sample Input
-  Used to select the sample from either a file or a workspace already loaded
-  into Mantid.
-
-Use Container
-  Used to enable or disable use of a container and selects one from either a
-  file or loaded workspace.
-
-Shape
-  Select the shape of the sample (see specific geometry options below).
-
-Number Density
-  Number density for either the sample or container.
+Sample
+  A sample workspace created with either ConvFit or Quasi.
 
-Chemical Formula
-  Chemical formula for either the sample or container in the format expected by
-  :ref:`SetSampleMaterial <algm-SetSampleMaterial>`.
+Fit Funcion
+  Selects the model to be used for fitting.
 
-Use Container Corrections
-  Enables full container corrections, if disabled only a can subtraction will be
-  performed.
+Width
+  Spectrum in the sample workspace to fit.
 
-Scale
-  Scale factor to scale container input by.
+QMin & QMax
+  The Q range to perform fitting within.
 
-Keep Correction Factors
-  If checked a :ref:`WorkspaceGroup` containing the correction factors will also
-  be created, this will have the suffix *_Factors*.
+Fitting Parameters
+  Provides the option to change the defautl fitting parameters passed to the
+  chosen function.
 
 Plot Result
-  If checked the corrected workspace and correction factors will be plotted.
+  Plots the result workspaces.
 
 Save Result
-  If checked the corrected workspace and (if *Keep Correction Factors* is
-  checked) the correction factor workspace will be saved as a NeXus file in the
-  default save directory.
-
-Flat Plate
-~~~~~~~~~~
-
-.. interface:: Data Analysis
-  :widget: pgAbsCorFlatPlate
-
-Flat plate calculations are provided by the
-:ref:`IndirectFlatPlateAbsorption <algm-IndirectFlatPlateAbsorption>` algorithm.
-
-Sample Width
-  Width of the sample in :math:`cm`.
-
-Sample Height
-  Height of the sample in :math:`cm`.
-
-Sample Thickness
-  Thickness of the sample in :math:`cm`.
-
-Container Front Thickness
-  Thickness of the front of the container in :math:`cm`.
-
-Container Back Thickness
-  Thickness of the back of the container in :math:`cm`.
-
-Element Size
-  Size of the square "chunks" to divide the frontal area of the sample into to
-  calculate corrections in :math:`cm`.
-
-Annulus
-~~~~~~~
-
-.. interface:: Data Analysis
-  :widget: pgAbsCorAnnulus
-
-Annulus calculations are provided by the :ref:`IndirectAnnulusAbsorption
-<algm-IndirectAnnulusAbsorption>` algorithm.
-
-Sample Inner Radius
-  Radius of the inner wall of the sample in :math:`cm`.
-
-Sample Outer Radius
-  Radius of the outer wall of the sample in :math:`cm`.
-
-Container Inner Radius
-  Radius of the inner wall of the container in :math:`cm`.
-
-Container Outer Radius
-  Radius of the outer wall of the container in :math:`cm`.
-
-Neutron Events
-  Number of events to use in the Monte Carlo simulation.
-
-Cylinder
-~~~~~~~~
-
-.. interface:: Data Analysis
-  :widget: pgAbsCorCylinder
-
-Cylinder calculations are provided by the
-:ref:`IndirectCylinderAbsorption <algm-IndirectCylinderAbsorption>` algorithm.
-
-Sample Radius
-  Radius of the outer wall of the sample in :math:`cm`.
-
-Container Radius
-  Radius of the outer wall of the container in :math:`cm`.
-
-Neutron Events
-  Number of events to use in the Monte Carlo simulation.
+  Saves the result in the default save directory.
 
 .. categories:: Interfaces Indirect
diff --git a/Code/Mantid/docs/source/interfaces/Indirect_DataReduction.rst b/Code/Mantid/docs/source/interfaces/Indirect_DataReduction.rst
index a760d67f717ab4f373feb9ef87b439914f7cc6a8..5c1e69501dad60d74e3947921d8b11be843eceb8 100644
--- a/Code/Mantid/docs/source/interfaces/Indirect_DataReduction.rst
+++ b/Code/Mantid/docs/source/interfaces/Indirect_DataReduction.rst
@@ -76,7 +76,7 @@ Sum Files
   If selected the data from each raw file will be summed and from then on
   treated as a single run.
 
-Load Logs
+Load Log Files
   If selected the sample logs will be laoded from each of the run files.
 
 Grouping
@@ -467,8 +467,8 @@ Input
   Allows you to select a reduced NeXus file (*_red.nxs*) or workspace (*_red*) as the
   input to the algorithm.
 
-Rebin Type
-  Selects the SofQW algorithm that will be used.
+Method
+  Selects the :ref:`SofQW <algm-SofQW>` method that will be used.
 
 Q Low, Q Width & Q High
   Q binning parameters that are passed to the SofQW algorithm.
diff --git a/Code/Mantid/docs/source/interfaces/Indirect_Diffraction.rst b/Code/Mantid/docs/source/interfaces/Indirect_Diffraction.rst
index ed37b2458c6d2d334eced7727b80ead970bfb1db..bff6275ca735ca8199e8dbdeda4c872dedc52891 100644
--- a/Code/Mantid/docs/source/interfaces/Indirect_Diffraction.rst
+++ b/Code/Mantid/docs/source/interfaces/Indirect_Diffraction.rst
@@ -49,9 +49,18 @@ Run Numbers
   specified in the same manner as in the Energy Transfer tab on Indirect Data
   Reduction.
 
+Use Container
+  This option allows the subtraction of a run for an empty container run.
+
+Scale Container
+  This option allows for an optional scale factor to be applied to the container
+  data before it is subtracted.
+
 Spectra Min & Spectra Max
   Specify the range of spectra to use in the reduction, the default values of
-  this are set based on the instrument and reflection selected.
+  this are set based on the instrument and reflection selected. Note that these
+  options will be disabled when using OSIRIS in diffonly mode, in which case the
+  entire spectra range will be used.
 
 Plot Type
   Specify the type of plot to be created when the reduction is complete, either
@@ -76,6 +85,12 @@ The available options are the same, except that a single calibration file and
 one or more vanadium files must be specified instead of rebinning values. These
 files are remembered by the interface so only have to be set once per cycle.
 
+There is also the option to manually set the dRange used in all of the sample
+runs, note that in this case all sample iles must correspond to the same dRange.
+The dRanges are numbered as per the `OSIRIS manual
+<http://www.isis.stfc.ac.uk/instruments/osiris/documents/osiris-user-guide6672.pdf>`_.
+Otherwise the dRange is determined based on the table provided in the manual.
+
 Note: There must be a corresponding vanadium file with the same dRanges for each
 of the data files entered, but leaving in a full complement of vanadium files -
 even if they are not all used - should not be a problem. Further, mixing up the
@@ -89,8 +104,9 @@ IRIS, OSIRIS diffspec, TOSCA & VESUVIO
 .. interface:: Diffraction
   :widget: pageDSpaceRebin
 
-All other instruments are supported through the :ref:`MSGDiffractionReduction
-<algm-MSGDiffractionReduction>` algorithm and share the same set of options:
+All other instruments are supported through the
+:ref:`ISISIndirectDiffractionReduction <algm-ISISIndirectDiffractionReduction>`
+algorithm and share the same set of options:
 
 Sum Files
   If selected the raw files will be summed after they are loaded and the
diff --git a/Code/Mantid/docs/source/interfaces/Indirect_Simulation.rst b/Code/Mantid/docs/source/interfaces/Indirect_Simulation.rst
index 153770602018b9b1c18f785fa5d85560d21bb55d..e856900caf6eadf887b216c2ae96c3c0bcaf63dd 100644
--- a/Code/Mantid/docs/source/interfaces/Indirect_Simulation.rst
+++ b/Code/Mantid/docs/source/interfaces/Indirect_Simulation.rst
@@ -100,7 +100,7 @@ DensityOfStates
   :widget: dos
 
 The DensityOfStates interface is used to load CASTEP simulations using the
-:ref:`DensityOfStates <algm-DensityOfStates>` algorithm. It supports loading
+:ref:`SimulatedDensityOfStates <algm-SimulatedDensityOfStates>` algorithm. It supports loading
 full and partial densities of states, raman and IR spectroscopy.
 
 Options
diff --git a/Code/Mantid/docs/source/interfaces/Muon_ALC.rst b/Code/Mantid/docs/source/interfaces/Muon_ALC.rst
index ab43bd67b45ade1b3e738400cc848b9657c44abd..d53ed69019b372a199c55791a957087a211bae90 100644
--- a/Code/Mantid/docs/source/interfaces/Muon_ALC.rst
+++ b/Code/Mantid/docs/source/interfaces/Muon_ALC.rst
@@ -10,7 +10,8 @@ Overview
 The Avoided Level Crossing (ALC) :math:`\mu SR` technique probes the energy levels of a
 muoniated radical system, and can be used to elucidate the regiochemistry of
 muonium addition, dynamic processes, and reaction kinetics, through measurement
-of the muon and proton hyperfine coupling interactions.
+of the muon and proton hyperfine coupling interactions. Examples of how the ALC
+technique can be used are presented in this `brochure <http://www.mantidproject.org/images/3/39/Muon_level_crossing_resonance_leaflet.pdf>`__.
 
 Radical systems are formed during muon thermalisation, during which a portion of
 the implanted muons are able to capture electrons to form muonium (:math:`\mu+e`). Muonium
@@ -60,37 +61,100 @@ necessary to determine a baseline, perform a baseline subtraction and then
 fit the peaks. The Muon ALC interface integrates this sequence of
 operations hiding the complexity of the underlying algorithms.
 
+Global Options
+--------------
+
+Gloabl options are options visible and accesible from any step in the
+interface. Currently, there are two buttons that can be used at any point during the analysis.
+
+Export Results
+~~~~~~~~~~~~~~
+
+The 'Export results...' button allows the user to export intermediate results at any step. When clicked,
+it propmts the user to enter a label for the workspace group that will gather the ALC results. This
+label is defaulted to 'ALCResults'. In the DataLoading step, data are exported in a workspace named
+<Label>_Loaded_Data, which contains a single spectrum. In the BaselineModelling step, data and model
+are exported in a set of three workspaces: a workspace named <Label>_Baseline_Workspace, which contains
+three spectra corresponding to the original data, model and corrected data respectively, a TableWorkspace
+named <Label>_Baseline_Model with information on the fitting parameters, and a second TableWorkspace
+named <Label>_Baseline_Sections containing information on the sections used to fit the baseline. When
+exporting results in the PeakFitting steps, two workspaces will be created: a <Label>_Peaks_Workspace,
+that contains at least three spectra: the corrected data (i.e., the data after the baseline model
+subtraction), fitting function and difference curve. If more than one peak was fitted, individual peaks
+will be stored in subsequent spectra. The <Label>_Peaks_FitResults TableWorkspace provides information
+about the fitting parameters and errors.
+
+Note that the 'Export results...' button exports as much information as possible, which means that all
+the data stored in the interface will be exported when clicked, regardless of the current step. For
+example, if the user starts a new analysis and the button is used in the 'DataLoading' step, only the
+<Label>_Loaded_Data workspace will be created in the ADS. However, if the user proceeds with the analysis
+and clicks 'Export results...' at the 'BaselineModelling' step, the interface will export not only the
+<Label>_Baseline_* workspaces but also the <Label>_Loaded_Data workspace. In the same way, if the user
+has completed the peak fitting analysis and uses the button in the PeakFitting step, not only the
+<Label>_Peaks_* workspaces will be created, but also the <Label>_Baseline_* and the <Label>_Loaded_Data
+workspaces. Also, note that if 'Export results...' is used at a specific step but results from a previous
+analysis exist in a subsequent stage of the analysis, the latter will be exported as well.
+
+Import Results
+~~~~~~~~~~~~~~
+
+The 'Import results...' button allows the user to load previously analysed data, ideally saved using
+'Export results...'. When clicked, it propmts the user to enter a label for the workspace group from which
+data will be imported, which is defaulted to 'ALCResults'. The interface then searches for a workspace
+corresponding to the
+interface's step from which it was called. This means that if the user is currently in the
+DataLoading step, the interface will search for a workspace named <Label>_Loaded_Data. If
+it is used from the BaselineModelling step, the workspace named <Label>_Baseline_Workspace
+will be loaded. Finally, if PeakFitting is the current step in the analysis, the workspace
+<Label>_Peaks_Workspaces will be imported. Note that using the 'Import results...' button
+at a specific step does not produce the loading of data corresponding to previous or subsequent
+steps. In addition, data at subsequent steps will not be cleared. For instance, if some data
+were analysed in the PeakFitting step and you went back to BaselineModelling to import a new
+set of runs, previous peaks would be kept in PeakFitting. Note that at this stage of development
+'Import results...' does not load fitting results or fitting sections.
+
+Description
+-----------
+
+This section describes the three steps in the analysis: Data Loading, Baseline Modelling and Peak
+Fitting.
 
 Data Loading
-------------
-
-The Data Loading step, provides an interface for the 
-:ref:`PlotAsymmetryByLogValue <algm-PlotAsymmetryByLogValue>` algorithm, 
-in which a sequence of runs are loaded through the fields 
-*First* and *Last*. All datasets with run number between these limits will be 
-loaded, and an error message will be shown if any of them is missing. The 
-user must supply the log data that will be used as X parameter from the list 
-of available log values.
-
-.. interface:: ALC
-  :widget: dataLoadingView
-  :align: center
-  :width: 800
+~~~~~~~~~~~~
+
+In the Data Loading step, a sequence of runs are loaded through the fields **First** and **Last**.
+All datasets with run number between these limits will be loaded, and a warning message
+will be shown if any of them is missing. The input files must be Muon Nexus files with
+names beginning with at least one letter and followed by a number. In addition, the user must supply
+the **Log** data that will be used as X parameter from the list of available log values.
+Some additional options may be specified: the **Dead Time Corrections**, if any, can be
+loaded from the input dataset itself or from a custom file specified by the user. The
+detector **Grouping** is defaulted to **Auto**, in which case the grouping information
+is read from the run data, although it can be customized by setting the list of spectra
+for the forward and backward groups. The user can also choose the **Period** number
+that corresponds to the red period, and the number corresponding to the green period,
+if the option **Subtract** is checked, and finally the type of **Calculation** together
+with the time limits. A click on the **Load** button results in the calculation of the
+asymmetry, displayed on the right panel.
+
+.. figure:: ../images/ALCDataLoading.png
+   :align: center
+   :width: 800
 
 Options
-~~~~~~~
-
+^^^^^^^
 First
-  First run of the sequence of datasets.
+  The path to the first nexus file in the series.
 
 Last
-  Last run of the sequence of datasets.
+  The path to the last nexus file in the series.
 
 Log
-  Log value to use as X parameter
+  The name of the log value which will be used as the X-axis in the output workspace. The list of
+  possible logs is automatically populated when the first nexus file is browsed and selected.
 
 Function
-  The function to apply to the time series log: Mean/Min/Max/First/Last
+  The function to apply to the time series log: Mean/Min/Max/First/Last.
 
 Dead Time Correction
   Type of dead time corrections to apply. Options are *None*, in which case no 
@@ -117,54 +181,77 @@ Load
   Computes the asymmetry according to selected options and displays it against the 
   chosen log value.
 
+Loaded Data
+  Graph where the asymmetry as a function of the Log value is displayed. These are the
+  data passed to the BaselineModelling step.
+
 Baseline Modelling
-------------------
+~~~~~~~~~~~~~~~~~~
 
-In the Baseline Modelling step, the user can fit the baseline by selecting which 
+In the Baseline Modelling step, the user can fit a baseline by selecting which
 sections of the data should be used in the fit, and what the baseline fit 
-function should be. To select a baseline function, right-click on the *Function* 
-region, then *Add function* and choose among the different possibilities. Then 
-pick the desired fitting sections. 
+function should be. To select a baseline function, right-click on the **Function**
+region, then **Add function** and choose among the different possibilities. Then
+pick the desired fitting sections by right-clicking in the **Sections** area as
+many times as sections to use. Sections are also displayed on the **Baseline model**
+graph and can be easily modified by clicking and dragging the corresponding
+vertical lines.
 
-.. interface:: ALC
-  :widget: baselineModellingView
-  :align: center
-  :width: 400
+.. figure:: ../images/ALCBaselineModelling.png
+   :align: center
+   :width: 800
 
 Options
-~~~~~~~
+^^^^^^^
 
 Function
   Right-click on the blank area to add a baseline function.
 
 Sections
   Right-click on the blank area to add as many sections as needed to 
-  select the ranges to fit.
+  select the different ranges to fit. Each section is coloured differently and
+  can be modified by dragging the vertical lines.
 
 ?
   Shows this help page.
 
 Fit
   Fits the data.
+
+Baseline model
+  Graph where the original data and the model are displayed, together with
+  the fitting ranges.
+
+Corrected data
+  Graph where the corrected data, i.e., the original data with the baseline
+  subtracted, are displayed. These are the data passed to the PeakFitting
+  step.
   
 Peak Fitting
-------------
+~~~~~~~~~~~~
 
-In the Peak Fitting step, data with the baseline subtracted are shown in 
+In the Peak Fitting step, the data with the baseline subtracted are shown in 
 the right panel. The user can study the peaks of interest all with the same simple 
-interface. To add a new peak, right-click on the Peaks region, then select 
-*Add function* and choose among the different possibilities in the category Peak.
+interface. To add a new peak, right-click on the **Peaks** region, then select
+**Add function** and choose among the different possibilities in the category Peak.
+Add as many peaks as needed. To activate the peak picker tool, click on one of
+the functions in the browser and then left-click on the graph near the peak's
+center while holding the Shift key. This will move the picker tool associated
+with the highlighted function to the desired location. To set the peak width,
+click and drag while holding Crtl. You can then tune the heigth by clicking on
+the appropriate point in the graph while holding Shift. Repeat the same steps
+with the rest of the functions in the browser and hit **Fit** to fit the peaks.
 
-.. interface:: ALC
-  :widget: peakFittingView
-  :align: center
-  :width: 600
+
+.. figure:: ../images/ALCPeakFitting.png
+   :align: center
+   :width: 800
 
 Options
-~~~~~~~
+^^^^^^^
 
 Peaks
-  Right-click on the blank area to add a peak function.
+  Right-click on the blank area to add as many peak functions as needed.
 
 ?
   Shows this help page.
@@ -172,4 +259,18 @@ Peaks
 Fit
   Fits the data.
 
+Peak graph
+  Graph where the corrected data and the fitted peaks are displayed.
+
+Run the ALC interface
+---------------------
+
+The interface is available from the MantidPlot Interfaces menu: Interfaces -> Muon -> ALC.
+
+Feedback & Comments
+-------------------
+
+If you have any questions or comments about this interface or this help page, please
+contact the `Mantid team <http://www.mantidproject.org/Contact>`__ or the `Muon group <http://www.isis.stfc.ac.uk/groups/muons/muons3385.html>`__. 
+
 .. categories:: Interfaces Muon
diff --git a/Code/Mantid/docs/source/interfaces/SampleTransmissionCalculator.rst b/Code/Mantid/docs/source/interfaces/SampleTransmissionCalculator.rst
index 8034599e960954ca08701cdcde9d3c8cc550e199..bf8d38245b8094e530348405bc6b8504a4a76fdb 100644
--- a/Code/Mantid/docs/source/interfaces/SampleTransmissionCalculator.rst
+++ b/Code/Mantid/docs/source/interfaces/SampleTransmissionCalculator.rst
@@ -43,7 +43,8 @@ Sample Details
 
 The sample details required are the chemical formula which is to be given in the
 format expected by the :ref:`SetSampleMaterial <algm-SetSampleMaterial>`
-algorithm, number density in :math:`\mathrm{\AA{}}^3` and thickness in :math:`cm`.
+algorithm, number density per atom in :math:`atoms/\mathrm{\AA{}}^3` and
+thickness in :math:`cm`.
 
 Output
 ~~~~~~
diff --git a/Code/Mantid/docs/source/interfaces/ScriptingWindow.rst b/Code/Mantid/docs/source/interfaces/ScriptingWindow.rst
index 0dbafd955184162d279661c186f7cb7241fee891..affba1cae04c24853c7a241953cf1fe62d4f48d6 100644
--- a/Code/Mantid/docs/source/interfaces/ScriptingWindow.rst
+++ b/Code/Mantid/docs/source/interfaces/ScriptingWindow.rst
@@ -9,19 +9,19 @@ Overview
 
 .. image:: /images/ScriptingWindow.png
 
-The scripting window allows you to write and execute Python scipts that interact
-with the Mantid :ref:`Python API`. It can be accessed either by selecting the
+The scripting window allows you to write and execute Python scripts that interact
+with the Mantid :ref:`Python API <api>`. It can be accessed either by selecting the
 *Script Window* option from the *View* menu in MantidPlot or by pressing F3.
 
 Editor Options
 --------------
 
-The general options for the script editor are controled using the *Edit* and
+The general options for the script editor are controlled using the *Edit* and
 *Window* menus.
 
 Alongside the standard text copy and paste tools the *Edit* menu has tools that
 help format Python code, all of these tools can operate over a subsection of the
-code which is selected by highlighting it in th editor.
+code which is selected by highlighting it in the editor.
 
 Comment
   Comments out the selected lines or the current line if no code is highlighted.
@@ -38,7 +38,7 @@ Spaces to Tabs
   Converts any spaces in the current selection (or the entire script if no code
   is highlighted) to tabs.
 
-The *Window* menu contains options realting to the way in which code is
+The *Window* menu contains options relating to the way in which code is
 displayed in the editor:
 
 Always On Top
@@ -46,7 +46,7 @@ Always On Top
   other windows.
 
 Progress Reporting
-  This option ebales the green arrow which points to the current line being
+  This option enables the green arrow which points to the current line being
   executed on the left hand side of the editor.
 
 .. image:: /images/ScriptingWindow_FoldingOptionEnabled.png
@@ -91,7 +91,7 @@ Execute Selection
   selected by highlighting the lines you wish to execute in the editor window
   and selecting the option.
 
-Note that when using th *Execute Selection* option you must have the entire line
+Note that when using the *Execute Selection* option you must have the entire line
 selected as the code is taken from the first highlighted character to the last.
 For this reason there is also a limitation that prevents you from executing a
 selection where the first line is indented at any level as this will generate an
@@ -111,13 +111,13 @@ Script Output
 -------------
 
 The output pane at the bottom of the window displays the output from the script
-in the current tab, this shows the times exectution of the script has started
+in the current tab, this shows the times execution of the script has started
 and finished as well as anything output from the script using :code:`print`
 statements.
 
 .. image:: /images/ScriptingWindow_OutputOptions.png
 
-Right clicking on the output pane opens the conetct menu which allows you to
+Right clicking on the output pane opens the context menu which allows you to
 export the output in multiple ways as well as clearing the window.
 
 .. categories:: Interfaces
diff --git a/Code/Mantid/docs/source/interfaces/TOF_Converter.rst b/Code/Mantid/docs/source/interfaces/TOF_Converter.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f5b82aa8311ae0c0c8743ff2dfbbc521aeacd535
--- /dev/null
+++ b/Code/Mantid/docs/source/interfaces/TOF_Converter.rst
@@ -0,0 +1,35 @@
+Time of Flight Converter
+========================
+
+Description
+-----------
+
+Converts the units of single value which can be either entered by the user or by using a :ref:`workspace <Workspace>` with a single value in it.
+ToF converter takes multiple inputs depending on the units you wish to convert between.
+
+Input
+-----
+
+ToF Converter will take an Input value i.e the value you wish to convert. 
+If you wish to convert Momentum Transfer or d-spacing then a Scattering angle :math:`\theta` will need to be specified.
+If you wish to convert Time of Flight then you will need to specify a Total Flight path in meters.
+
+Output
+------
+The output of the program will be the converted value produced by the input values specified.
+
+Available Conversion Units
+--------------------------
+
+Some of the units available are those registered with see: `UnitFactory <http://www.mantidproject.org/Units>`__.
+The units that are not specified in `UnitFactory <http://www.mantidproject.org/Units>`__ but are used in ToFConverter
+are: 
+
+Nu (:math:`\nu`): :math:`\frac{h}{m_{N}\lambda^2}`
+
+Velocity: :math:`\frac{h}{m_{N}\lambda}` and
+
+Temperature: :math:`\frac{m_{N} v_{p}^2}{2k_{b}}`. 
+
+.. categories:: Interfaces
+
diff --git a/Code/Mantid/docs/sphinxext/mantiddoc/directives/__init__.py b/Code/Mantid/docs/sphinxext/mantiddoc/directives/__init__.py
index 6eae3ae3c18436c2c56e1b2cd5dfb9f2cffe4ed8..aea156091ece2b95afd69e828c186a76bc2469b3 100644
--- a/Code/Mantid/docs/sphinxext/mantiddoc/directives/__init__.py
+++ b/Code/Mantid/docs/sphinxext/mantiddoc/directives/__init__.py
@@ -7,7 +7,7 @@
    'mantiddoc.directives' to be added to the Sphinx extensions configuration.
 """
 
-import algorithm, alias, attributes, categories, diagram, interface, properties, summary
+import algorithm, alias, attributes, categories, diagram, interface, properties, sourcelink, summary
 
 def setup(app):
     """
@@ -23,4 +23,5 @@ def setup(app):
     diagram.setup(app)
     interface.setup(app)
     properties.setup(app)
+    sourcelink.setup(app)
     summary.setup(app)
diff --git a/Code/Mantid/docs/sphinxext/mantiddoc/directives/properties.py b/Code/Mantid/docs/sphinxext/mantiddoc/directives/properties.py
index f7dedfee1e585addcdc1594fac6e49d745a867ff..3fdf7c0d4837eeb32668294db801a2cb4405c9c4 100644
--- a/Code/Mantid/docs/sphinxext/mantiddoc/directives/properties.py
+++ b/Code/Mantid/docs/sphinxext/mantiddoc/directives/properties.py
@@ -74,7 +74,7 @@ class PropertiesDirective(AlgorithmBaseDirective):
                     str(direction_string[prop.direction]),
                     property_type_dict.get(str(prop.type),str(prop.type)),
                     str(self._get_default_prop(prop)),
-                    str(prop.documentation.replace("\n", " "))
+                    self._create_property_description_string(prop)
                     ))
 
             self.add_rst(self.make_header("Properties"))
@@ -200,6 +200,43 @@ class PropertiesDirective(AlgorithmBaseDirective):
 
         return defaultstr
 
+    def _create_property_description_string(self, prop):
+        """
+        Converts the description of the property to a more use-friendly one.
+
+        Args:
+          prop. The property to find the default value of.
+
+        Returns:
+          str: The string to add to the property table description section.
+        """
+        desc = str(prop.documentation.replace("\n", " "))
+
+        allowedValueString = str(prop.allowedValues)
+        # 4 allows for ['']
+        if len(allowedValueString) > 4: 
+            ##make sure the last sentence ended with a full stop (or equivalent)
+            if (not desc.rstrip().endswith("."))      \
+                and (not desc.rstrip().endswith("!")) \
+                and (not desc.rstrip().endswith("?")) \
+                and (len(desc.strip())>0):
+                desc += "."
+            isFileExts = True
+            for item in prop.allowedValues:
+                #check it does not look like a file extension
+                if (not item.startswith(".")) and (not item[-4:].startswith(".")):
+                    isFileExts = False
+                    break
+                    
+            prefixString = " Allowed values: "
+            if isFileExts:
+                prefixString = " Allowed extensions: "
+            #put a space in between entries to allow the line to break
+            allowedValueString = allowedValueString.replace("','","', '")
+            desc += prefixString + allowedValueString
+
+        return desc
+
 
 def setup(app):
     """
diff --git a/Code/Mantid/docs/sphinxext/mantiddoc/directives/sourcelink.py b/Code/Mantid/docs/sphinxext/mantiddoc/directives/sourcelink.py
new file mode 100644
index 0000000000000000000000000000000000000000..7bb5d76ec461eabe16381c3c6a84c7c3673947a7
--- /dev/null
+++ b/Code/Mantid/docs/sphinxext/mantiddoc/directives/sourcelink.py
@@ -0,0 +1,241 @@
+from base import AlgorithmBaseDirective
+from os import path, walk
+import mantid
+
+class SourceLinkError(Exception):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        return str(self.value)
+        
+class SourceLinkDirective(AlgorithmBaseDirective):
+    """
+    Obtains the github links to the .cpp and .h or .py files depending on the name and version.
+    
+    Example directive usage:
+    
+    Default Usage:
+    .. sourcelink::
+    
+    Overriding the filename for searching:
+    .. sourcelink::
+        :filename: SINQTranspose3D
+        
+    suppressing sanity checks:
+    .. sourcelink::
+        :sanity_checks: 0    
+        
+    specifying specific files 
+    (paths should use / and start from but not include the Mantid directory):
+    .. sourcelink::
+         :h: Framework/ICat/inc/MantidICat/CatalogSearch.h
+         :cpp: Framework/ICat/src/CatalogSearch.cpp
+         
+    suppressing a specific file type (None is case insensitive):
+    .. sourcelink::
+      :filename: FilterEventsByLogValuePreNexus
+      :py: None
+    """
+
+    required_arguments, optional_arguments = 0, 0
+    option_spec = {"filename":str,"sanity_checks":int,"cpp":str, "h":str, "py":str}
+
+    #IMPORTANT: keys must match the option spec above 
+    # - apart from filename and sanity_checks
+    file_types = {"h":"C++ header", "cpp":"C++ source","py":"Python"}
+    file_lookup = {} 
+    
+    mantid_directory_cache=None
+
+    def execute(self):
+        """
+        Called by Sphinx when the ..sourcelink:: directive is encountered.
+        """
+        file_paths = {}
+        error_string = ""
+        sanity_checks = self.options.get("sanity_checks", 1)
+        file_name = self.options.get("filename", None)
+        if file_name is None:
+            #build a sensible default
+            file_name = self.algorithm_name()
+            if (self.algorithm_version() != 1) and (self.algorithm_version() is not None):
+                file_name += str(self.algorithm_version())
+                
+        
+        for extension in self.file_types.keys():
+            file_paths[extension] = self.options.get(extension, None)
+            if file_paths[extension] is None:
+                try:
+                    file_paths[extension] = self.find_source_file(file_name,extension)
+                except SourceLinkError as err:
+                    error_string += str(err) + "\n"
+            elif file_paths[extension].lower() == "none":
+                # the users has specifically chosen to suppress this - set it to a "proper" None
+                #but do not search for this file
+                file_paths[extension] = None
+            else:
+                #prepend the base framework directory
+                file_paths[extension] = path.join(self.get_mantid_directory(),file_paths[extension])
+                if not path.exists(file_paths[extension]):
+                    error_string +="Cannot find " + extension + " file at " + file_paths[extension] + "\n"
+
+        #throw accumulated errors now if you have any
+        if error_string != "":
+            raise SourceLinkError(error_string)                
+                    
+        try:
+            self.output_to_page(file_paths,file_name,sanity_checks);
+        except SourceLinkError as err:
+            error_string += str(err) + "\n"
+                    
+        if error_string != "":
+            raise SourceLinkError(error_string)                
+
+        return []
+
+    def find_source_file(self, file_name, extension):
+        """
+        Searches the source code for a matching filename with the correct extension
+        """
+        # parse the source tree if it has not already been done
+        if len(self.file_lookup) == 0:
+            self.parse_source_tree(file_name,extension)
+            
+        try:
+            path_list = self.file_lookup[file_name][extension]
+            if len(path_list) == 1:
+                return path_list[0]
+            else:
+                suggested_path = "os_agnostic_path_to_file_from_Code/Mantid"
+                if len(path_list) > 1:
+                    suggested_path = path_list[0]
+                    #harmonize slashes
+                    suggested_path = suggested_path.replace("\\","/")
+                    #remove everything before and including the Mantid directory
+                    strip_off_token = "Code/Mantid/"
+                    index = suggested_path.find(strip_off_token)
+                    if index != -1:
+                        suggested_path = suggested_path[index+len(strip_off_token):]
+                raise SourceLinkError("Found multiple possibilities for " + file_name + "." + extension + "\n" + 
+                "Possible matches" +  str(path_list) + "\n" + 
+                "Specify one using the " + extension + " option\n" + 
+                "e.g. \n" + 
+                ".. sourcelink:\n" + 
+                "      :" + extension + ": " + suggested_path)
+                
+            return self.file_lookup[file_name][extension]
+        except KeyError:
+            #value is not present
+            return None
+            
+    def get_mantid_directory(self):
+        """
+        returns the Code\Mantid directory
+        """
+        if self.mantid_directory_cache is None:
+            env = self.state.document.settings.env
+            dir = env.srcdir #= C:\Mantid\Code\Mantid\docs\source
+            #go up the path until dir point to the "Mantid" directory
+            (head,tail) = path.split(dir)
+            while tail != "Mantid":
+                dir = head
+                (head,tail) = path.split(head)
+                if (head == ""):
+                    raise IOError ("Could not find the 'Mantid' directory in " + env.srcdir)
+
+            self.mantid_directory_cache = dir
+        return self.mantid_directory_cache
+    
+    def parse_source_tree(self, file_name, extension):
+        """
+        Fills the file_lookup dictionary after parsing the source code
+        """        
+        for dirName, subdirList, fileList in walk(self.get_mantid_directory()):
+            for fname in fileList:
+                (baseName, fileExtension) = path.splitext(fname)            
+                #strip the dot from the extension
+                fileExtension = fileExtension[1:] 
+                #build the data object that is e.g.
+                #file_lookup["Rebin2"]["cpp"] = ['C:\Mantid\Code\Mantid\Framework\Algorithms\src\Rebin2.cpp','possible other location']
+                if fileExtension in self.file_types.keys():
+                    if baseName not in self.file_lookup.keys():
+                        self.file_lookup[baseName] = {}
+                    if fileExtension not in self.file_lookup[baseName].keys():
+                        self.file_lookup[baseName][fileExtension] = []
+                    self.file_lookup[baseName][fileExtension].append(path.join(dirName,fname))
+        return
+        
+    def output_to_page(self, file_paths,file_name,sanity_checks):
+        """
+        Outputs the sourcelinks and heading to the rst page
+        and performs some sanity checks
+        """
+        valid_ext_list = []
+        
+        self.add_rst(self.make_header("Source"))
+        for extension, filepath in file_paths.iteritems():
+            if filepath is not None:
+                self.output_path_to_page(filepath,extension)
+                valid_ext_list.append(extension)
+                
+                    
+        #do some sanity checks - unless suppressed
+        if sanity_checks > 0:
+            suggested_path = "os_agnostic_path_to_file_from_Code/Mantid"
+            if len(valid_ext_list) == 0:
+                raise SourceLinkError("No file possibilities for " + file_name + " have been found\n" + 
+                    "Please specify a better one using the :filename: opiton or use the " + str(self.file_types.keys()) + " options\n" + 
+                    "e.g. \n" + 
+                    ".. sourcelink:\n" + 
+                    "      :" + self.file_types.keys()[0] + ": " + suggested_path + "\n "+
+                    "or \n" + 
+                    ".. sourcelink:\n" + 
+                    "      :filename: " + file_name) 
+            #if the have a cpp we should also have a h
+            if ("cpp" in valid_ext_list) or ("h" in valid_ext_list):
+                if ("cpp" not in valid_ext_list) or ("h" not in valid_ext_list):
+                    raise SourceLinkError("Only one of .h and .cpp found for " + file_name + "\n" + 
+                    "valid files found for " + str(valid_ext_list) + "\n" + 
+                    "Please specify the missing one using an " + str(self.file_types.keys()) + " option\n" + 
+                    "e.g. \n" + 
+                    ".. sourcelink:\n" + 
+                    "      :" + self.file_types.keys()[0] + ": " + suggested_path) 
+        return
+        
+    def output_path_to_page(self, filepath, extension):
+        """
+        Outputs the source link for a file to the rst page
+        """
+        dirName,fName = path.split(filepath)
+        self.add_rst(self.file_types[extension] + ": `" + fName + " <" + self.convert_path_to_github_url(filepath) + ">`_\n\n")
+        return
+        
+        
+    def convert_path_to_github_url(self, file_path):
+        """
+        Converts a file path to the github url for that same file
+        """
+        #example path C:\Mantid\Code\Mantid/Framework/Algorithms/inc/MantidAlgorithms/MergeRuns.h
+        #example url  https://github.com/mantidproject/mantid/blob/master/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/MergeRuns.h
+        
+        url = file_path
+        #harmonize slashes
+        url = url.replace("\\","/")
+        #remove everything before Code
+        index = url.find("Code")
+        if index != -1:
+            url = url[index:]
+        else:
+            raise SourceLinkError ("Could not find the 'Code' directory in " + url)
+        #prepend the github part
+        url = "https://github.com/mantidproject/mantid/blob/" + mantid.kernel.revision_full() + "/" + url
+        return url
+    
+def setup(app):
+    """
+    Setup the directives when the extension is activated
+
+    Args:
+      app: The main Sphinx application object
+    """
+    app.add_directive('sourcelink', SourceLinkDirective)
diff --git a/Code/Mantid/instrument/BASIS_Definition_20130121-.xml b/Code/Mantid/instrument/BASIS_Definition_20130121-20131231.xml
similarity index 99%
rename from Code/Mantid/instrument/BASIS_Definition_20130121-.xml
rename to Code/Mantid/instrument/BASIS_Definition_20130121-20131231.xml
index 6371aaaf973b9d8d58f46bb4b2c930d73d7e182e..f0c2a1e1b2f960c7520b1b418fb377131df2e18d 100644
--- a/Code/Mantid/instrument/BASIS_Definition_20130121-.xml
+++ b/Code/Mantid/instrument/BASIS_Definition_20130121-20131231.xml
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='ASCII'?>
-<instrument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mantidproject.org/IDF/1.0" last-modified="2013-01-21 00:00:00.139761" valid-to="2100-01-31 23:59:59" name="BASIS" valid-from="2013-01-21 00:00:00" xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 http://schema.mantidproject.org/IDF/1.0/IDFSchema.xsd">
+<instrument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mantidproject.org/IDF/1.0" last-modified="2013-01-21 00:00:00.139761" valid-to="2013-12-31 23:59:59" name="BASIS" valid-from="2013-01-21 00:00:00" xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 http://schema.mantidproject.org/IDF/1.0/IDFSchema.xsd">
   <!--Created by Michael Reuter-->
   <defaults>
     <length unit="metre"/>
diff --git a/Code/Mantid/instrument/BASIS_Definition_20140101-.xml b/Code/Mantid/instrument/BASIS_Definition_20140101-.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eb48c7535badf4c96cfc809ef87a98d719613f5b
--- /dev/null
+++ b/Code/Mantid/instrument/BASIS_Definition_20140101-.xml
@@ -0,0 +1,91376 @@
+<?xml version='1.0' encoding='ASCII'?>
+<instrument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mantidproject.org/IDF/1.0" last-modified="2015-06-04 19:15:40.888407" name="BASIS" valid-from="2014-01-01 00:00:00" valid-to="2100-01-31 23:59:59" xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 http://schema.mantidproject.org/IDF/1.0/IDFSchema.xsd">
+  <!--Created by Michael Reuter & Jose Borreguero-->
+  <defaults>
+    <length unit="metre"/>
+    <angle unit="degree"/>
+    <indirect-neutronic-positions/>
+    <reference-frame>
+      <along-beam axis="z"/>
+      <pointing-up axis="y"/>
+      <handedness val="right"/>
+    </reference-frame>
+  </defaults>
+  <!--SOURCE AND SAMPLE POSITION-->
+  <component type="moderator">
+    <location z="-84.0"/>
+  </component>
+  <type is="Source" name="moderator"/>
+  <component type="sample-position">
+    <location x="0.0" y="0.0" z="0.0"/>
+  </component>
+  <type is="SamplePos" name="sample-position"/>
+  <!--MONITORS-->
+  <component idlist="monitors" type="monitors">
+    <location/>
+  </component>
+  <type name="monitors">
+    <component type="monitor">
+      <location name="monitor1" z="-0.23368">
+        <neutronic z="-0.23368"/>
+      </location>
+    </component>
+  </type>
+  <!--INELASTIC DECTECTORS-->
+  <component type="silicon">
+    <location/>
+  </component>
+  <type name="silicon">
+    <component idlist="bank1" type="bank1">
+      <location/>
+    </component>
+    <component idlist="bank2" type="bank2">
+      <location/>
+    </component>
+    <component idlist="bank3" type="bank3">
+      <location/>
+    </component>
+    <component idlist="bank4" type="bank4">
+      <location/>
+    </component>
+  </type>
+  <component idlist="bank1" type="bank1">
+    <location/>
+  </component>
+  <type name="bank1">
+    <component type="pixel">
+      <location name="5" x="0.487260681056" y="0.21631015625" z="2.39457769788">
+        <neutronic p="1.04109" r="4.72838" t="11.5018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6" x="0.487260681056" y="0.2544921875" z="2.39457769788">
+        <neutronic p="3.9807" r="4.72855" t="11.5271"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7" x="0.487260681056" y="0.29267421875" z="2.39457769788">
+        <neutronic p="6.90162" r="4.7287" t="11.5817"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8" x="0.487260681056" y="0.33085625" z="2.39457769788">
+        <neutronic p="9.78903" r="4.72882" t="11.6653"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9" x="0.487260681056" y="0.36903828125" z="2.39457769788">
+        <neutronic p="12.6291" r="4.72891" t="11.7773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10" x="0.487260681056" y="0.4072203125" z="2.39457769788">
+        <neutronic p="15.4095" r="4.72897" t="11.9168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11" x="0.487260681056" y="0.44540234375" z="2.39457769788">
+        <neutronic p="18.1194" r="4.729" t="12.0828"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12" x="0.487260681056" y="0.483584375" z="2.39457769788">
+        <neutronic p="20.7498" r="4.72901" t="12.2742"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13" x="0.487260681056" y="0.52176640625" z="2.39457769788">
+        <neutronic p="23.2935" r="4.72898" t="12.4898"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14" x="0.487260681056" y="0.5599484375" z="2.39457769788">
+        <neutronic p="25.7452" r="4.72893" t="12.728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15" x="0.487260681056" y="0.59813046875" z="2.39457769788">
+        <neutronic p="28.1014" r="4.72885" t="12.9877"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="16" x="0.487260681056" y="0.6363125" z="2.39457769788">
+        <neutronic p="30.36" r="4.72874" t="13.2672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="17" x="0.487260681056" y="0.67449453125" z="2.39457769788">
+        <neutronic p="32.5202" r="4.7286" t="13.5654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="18" x="0.487260681056" y="0.7126765625" z="2.39457769788">
+        <neutronic p="34.5828" r="4.72843" t="13.8806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="19" x="0.487260681056" y="0.75085859375" z="2.39457769788">
+        <neutronic p="36.549" r="4.72824" t="14.2117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="20" x="0.487260681056" y="0.789040625" z="2.39457769788">
+        <neutronic p="38.4213" r="4.72801" t="14.5572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="21" x="0.487260681056" y="0.82722265625" z="2.39457769788">
+        <neutronic p="40.2023" r="4.72776" t="14.916"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="22" x="0.487260681056" y="0.8654046875" z="2.39457769788">
+        <neutronic p="41.8955" r="4.72748" t="15.2869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="23" x="0.487260681056" y="0.90358671875" z="2.39457769788">
+        <neutronic p="43.5044" r="4.72717" t="15.6688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="24" x="0.487260681056" y="0.94176875" z="2.39457769788">
+        <neutronic p="45.0328" r="4.72684" t="16.0606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="25" x="0.487260681056" y="0.97995078125" z="2.39457769788">
+        <neutronic p="46.4845" r="4.72647" t="16.4613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="26" x="0.487260681056" y="1.0181328125" z="2.39457769788">
+        <neutronic p="47.8634" r="4.72608" t="16.8701"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="27" x="0.487260681056" y="1.05631484375" z="2.39457769788">
+        <neutronic p="49.1734" r="4.72566" t="17.286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="28" x="0.487260681056" y="1.094496875" z="2.39457769788">
+        <neutronic p="50.4183" r="4.72521" t="17.7084"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="29" x="0.487260681056" y="1.13267890625" z="2.39457769788">
+        <neutronic p="51.6016" r="4.72474" t="18.1364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="30" x="0.487260681056" y="1.1708609375" z="2.39457769788">
+        <neutronic p="52.7269" r="4.72424" t="18.5694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="31" x="0.487260681056" y="1.20904296875" z="2.39457769788">
+        <neutronic p="53.7975" r="4.72371" t="19.0068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="32" x="0.487260681056" y="1.247225" z="2.39457769788">
+        <neutronic p="54.8167" r="4.72315" t="19.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="33" x="0.487260681056" y="1.28540703125" z="2.39457769788">
+        <neutronic p="55.7874" r="4.72257" t="19.8923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="34" x="0.487260681056" y="1.3235890625" z="2.39457769788">
+        <neutronic p="56.7124" r="4.72196" t="20.3394"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="35" x="0.487260681056" y="1.36177109375" z="2.39457769788">
+        <neutronic p="57.5945" r="4.72133" t="20.7888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="36" x="0.487260681056" y="1.399953125" z="2.39457769788">
+        <neutronic p="58.4362" r="4.72066" t="21.24"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="37" x="0.487260681056" y="1.43813515625" z="2.39457769788">
+        <neutronic p="59.2399" r="4.71998" t="21.6926"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="38" x="0.487260681056" y="1.4763171875" z="2.39457769788">
+        <neutronic p="60.0077" r="4.71926" t="22.1463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="39" x="0.487260681056" y="1.51449921875" z="2.39457769788">
+        <neutronic p="60.7418" r="4.71852" t="22.6007"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="40" x="0.487260681056" y="1.55268125" z="2.39457769788">
+        <neutronic p="61.4441" r="4.71776" t="23.0555"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="41" x="0.487260681056" y="1.59086328125" z="2.39457769788">
+        <neutronic p="62.1164" r="4.71697" t="23.5104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="42" x="0.487260681056" y="1.6290453125" z="2.39457769788">
+        <neutronic p="62.7604" r="4.71616" t="23.9651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="43" x="0.487260681056" y="1.66722734375" z="2.39457769788">
+        <neutronic p="63.3778" r="4.71532" t="24.4194"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="44" x="0.487260681056" y="1.705409375" z="2.39457769788">
+        <neutronic p="63.9699" r="4.71445" t="24.8729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="45" x="0.487260681056" y="1.74359140625" z="2.39457769788">
+        <neutronic p="64.5382" r="4.71356" t="25.3256"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="46" x="0.487260681056" y="1.7817734375" z="2.39457769788">
+        <neutronic p="65.084" r="4.71265" t="25.7772"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="47" x="0.487260681056" y="1.81995546875" z="2.39457769788">
+        <neutronic p="65.6086" r="4.71172" t="26.2275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="48" x="0.487260681056" y="1.8581375" z="2.39457769788">
+        <neutronic p="66.1129" r="4.71076" t="26.6764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="49" x="0.487260681056" y="1.89631953125" z="2.39457769788">
+        <neutronic p="66.5981" r="4.70977" t="27.1236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="69" x="0.598410194885" y="0.21631015625" z="2.36924683416">
+        <neutronic p="0.844879" r="4.72838" t="14.2233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="70" x="0.598410194885" y="0.2544921875" z="2.36924683416">
+        <neutronic p="3.23214" r="4.72855" t="14.2436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="71" x="0.598410194885" y="0.29267421875" z="2.36924683416">
+        <neutronic p="5.60996" r="4.7287" t="14.2875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="72" x="0.598410194885" y="0.33085625" z="2.36924683416">
+        <neutronic p="7.97025" r="4.72882" t="14.3548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="73" x="0.598410194885" y="0.36903828125" z="2.36924683416">
+        <neutronic p="10.3053" r="4.72891" t="14.4453"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="74" x="0.598410194885" y="0.4072203125" z="2.36924683416">
+        <neutronic p="12.6079" r="4.72897" t="14.5585"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="75" x="0.598410194885" y="0.44540234375" z="2.36924683416">
+        <neutronic p="14.8714" r="4.729" t="14.6937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="76" x="0.598410194885" y="0.483584375" z="2.36924683416">
+        <neutronic p="17.09" r="4.72901" t="14.8504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="77" x="0.598410194885" y="0.52176640625" z="2.36924683416">
+        <neutronic p="19.2584" r="4.72898" t="15.0277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="78" x="0.598410194885" y="0.5599484375" z="2.36924683416">
+        <neutronic p="21.3724" r="4.72893" t="15.2249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="79" x="0.598410194885" y="0.59813046875" z="2.36924683416">
+        <neutronic p="23.4285" r="4.72885" t="15.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="80" x="0.598410194885" y="0.6363125" z="2.36924683416">
+        <neutronic p="25.4239" r="4.72874" t="15.6752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="81" x="0.598410194885" y="0.67449453125" z="2.36924683416">
+        <neutronic p="27.3566" r="4.7286" t="15.9265"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="82" x="0.598410194885" y="0.7126765625" z="2.36924683416">
+        <neutronic p="29.2253" r="4.72843" t="16.1939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="83" x="0.598410194885" y="0.75085859375" z="2.36924683416">
+        <neutronic p="31.0293" r="4.72824" t="16.4765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="84" x="0.598410194885" y="0.789040625" z="2.36924683416">
+        <neutronic p="32.7686" r="4.72801" t="16.7733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="85" x="0.598410194885" y="0.82722265625" z="2.36924683416">
+        <neutronic p="34.4436" r="4.72776" t="17.0834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="86" x="0.598410194885" y="0.8654046875" z="2.36924683416">
+        <neutronic p="36.0549" r="4.72748" t="17.4058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="87" x="0.598410194885" y="0.90358671875" z="2.36924683416">
+        <neutronic p="37.6038" r="4.72717" t="17.7397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="88" x="0.598410194885" y="0.94176875" z="2.36924683416">
+        <neutronic p="39.0916" r="4.72684" t="18.0842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="89" x="0.598410194885" y="0.97995078125" z="2.36924683416">
+        <neutronic p="40.52" r="4.72647" t="18.4384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="90" x="0.598410194885" y="1.0181328125" z="2.36924683416">
+        <neutronic p="41.8908" r="4.72608" t="18.8016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="91" x="0.598410194885" y="1.05631484375" z="2.36924683416">
+        <neutronic p="43.2059" r="4.72566" t="19.173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="92" x="0.598410194885" y="1.094496875" z="2.36924683416">
+        <neutronic p="44.4674" r="4.72521" t="19.5519"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="93" x="0.598410194885" y="1.13267890625" z="2.36924683416">
+        <neutronic p="45.6773" r="4.72474" t="19.9376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="94" x="0.598410194885" y="1.1708609375" z="2.36924683416">
+        <neutronic p="46.8376" r="4.72424" t="20.3294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="95" x="0.598410194885" y="1.20904296875" z="2.36924683416">
+        <neutronic p="47.9504" r="4.72371" t="20.7268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="96" x="0.598410194885" y="1.247225" z="2.36924683416">
+        <neutronic p="49.0179" r="4.72315" t="21.1291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="97" x="0.598410194885" y="1.28540703125" z="2.36924683416">
+        <neutronic p="50.042" r="4.72257" t="21.5359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="98" x="0.598410194885" y="1.3235890625" z="2.36924683416">
+        <neutronic p="51.0246" r="4.72196" t="21.9465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="99" x="0.598410194885" y="1.36177109375" z="2.36924683416">
+        <neutronic p="51.9678" r="4.72133" t="22.3606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="100" x="0.598410194885" y="1.399953125" z="2.36924683416">
+        <neutronic p="52.8732" r="4.72066" t="22.7776"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="101" x="0.598410194885" y="1.43813515625" z="2.36924683416">
+        <neutronic p="53.7428" r="4.71998" t="23.1972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="102" x="0.598410194885" y="1.4763171875" z="2.36924683416">
+        <neutronic p="54.5783" r="4.71926" t="23.6189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="103" x="0.598410194885" y="1.51449921875" z="2.36924683416">
+        <neutronic p="55.3811" r="4.71852" t="24.0423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="104" x="0.598410194885" y="1.55268125" z="2.36924683416">
+        <neutronic p="56.153" r="4.71776" t="24.4672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="105" x="0.598410194885" y="1.59086328125" z="2.36924683416">
+        <neutronic p="56.8954" r="4.71697" t="24.8932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="106" x="0.598410194885" y="1.6290453125" z="2.36924683416">
+        <neutronic p="57.6098" r="4.71616" t="25.3199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="107" x="0.598410194885" y="1.66722734375" z="2.36924683416">
+        <neutronic p="58.2974" r="4.71532" t="25.7472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="108" x="0.598410194885" y="1.705409375" z="2.36924683416">
+        <neutronic p="58.9595" r="4.71445" t="26.1746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="109" x="0.598410194885" y="1.74359140625" z="2.36924683416">
+        <neutronic p="59.5974" r="4.71356" t="26.602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="110" x="0.598410194885" y="1.7817734375" z="2.36924683416">
+        <neutronic p="60.2123" r="4.71265" t="27.0291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="111" x="0.598410194885" y="1.81995546875" z="2.36924683416">
+        <neutronic p="60.8051" r="4.71172" t="27.4557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="112" x="0.598410194885" y="1.8581375" z="2.36924683416">
+        <neutronic p="61.377" r="4.71076" t="27.8816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="113" x="0.598410194885" y="1.89631953125" z="2.36924683416">
+        <neutronic p="61.9289" r="4.70977" t="28.3066"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="133" x="0.708257363137" y="0.21631015625" z="2.33875967771">
+        <neutronic p="0.712249" r="4.72838" t="16.9449"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="134" x="0.708257363137" y="0.2544921875" z="2.33875967771">
+        <neutronic p="2.72553" r="4.72855" t="16.9617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="135" x="0.708257363137" y="0.29267421875" z="2.33875967771">
+        <neutronic p="4.73357" r="4.7287" t="16.9983"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="136" x="0.708257363137" y="0.33085625" z="2.33875967771">
+        <neutronic p="6.73147" r="4.72882" t="17.0544"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="137" x="0.708257363137" y="0.36903828125" z="2.33875967771">
+        <neutronic p="8.71447" r="4.72891" t="17.13"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="138" x="0.708257363137" y="0.4072203125" z="2.33875967771">
+        <neutronic p="10.678" r="4.72897" t="17.2247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="139" x="0.708257363137" y="0.44540234375" z="2.33875967771">
+        <neutronic p="12.6179" r="4.729" t="17.3381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="140" x="0.708257363137" y="0.483584375" z="2.33875967771">
+        <neutronic p="14.5302" r="4.72901" t="17.4699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="141" x="0.708257363137" y="0.52176640625" z="2.33875967771">
+        <neutronic p="16.4112" r="4.72898" t="17.6196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="142" x="0.708257363137" y="0.5599484375" z="2.33875967771">
+        <neutronic p="18.2578" r="4.72893" t="17.7865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="143" x="0.708257363137" y="0.59813046875" z="2.33875967771">
+        <neutronic p="20.0671" r="4.72885" t="17.9703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="144" x="0.708257363137" y="0.6363125" z="2.33875967771">
+        <neutronic p="21.8368" r="4.72874" t="18.1701"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="145" x="0.708257363137" y="0.67449453125" z="2.33875967771">
+        <neutronic p="23.5649" r="4.7286" t="18.3854"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="146" x="0.708257363137" y="0.7126765625" z="2.33875967771">
+        <neutronic p="25.2498" r="4.72843" t="18.6155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="147" x="0.708257363137" y="0.75085859375" z="2.33875967771">
+        <neutronic p="26.8902" r="4.72824" t="18.8596"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="148" x="0.708257363137" y="0.789040625" z="2.33875967771">
+        <neutronic p="28.4853" r="4.72801" t="19.1172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="149" x="0.708257363137" y="0.82722265625" z="2.33875967771">
+        <neutronic p="30.0347" r="4.72776" t="19.3874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="150" x="0.708257363137" y="0.8654046875" z="2.33875967771">
+        <neutronic p="31.5379" r="4.72748" t="19.6696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="151" x="0.708257363137" y="0.90358671875" z="2.33875967771">
+        <neutronic p="32.9951" r="4.72717" t="19.963"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="152" x="0.708257363137" y="0.94176875" z="2.33875967771">
+        <neutronic p="34.4066" r="4.72684" t="20.267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="153" x="0.708257363137" y="0.97995078125" z="2.33875967771">
+        <neutronic p="35.7728" r="4.72647" t="20.5809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="154" x="0.708257363137" y="1.0181328125" z="2.33875967771">
+        <neutronic p="37.0943" r="4.72608" t="20.9041"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="155" x="0.708257363137" y="1.05631484375" z="2.33875967771">
+        <neutronic p="38.372" r="4.72566" t="21.2358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="156" x="0.708257363137" y="1.094496875" z="2.33875967771">
+        <neutronic p="39.6068" r="4.72521" t="21.5754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="157" x="0.708257363137" y="1.13267890625" z="2.33875967771">
+        <neutronic p="40.7998" r="4.72474" t="21.9224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="158" x="0.708257363137" y="1.1708609375" z="2.33875967771">
+        <neutronic p="41.9519" r="4.72424" t="22.2762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="159" x="0.708257363137" y="1.20904296875" z="2.33875967771">
+        <neutronic p="43.0645" r="4.72371" t="22.6362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="160" x="0.708257363137" y="1.247225" z="2.33875967771">
+        <neutronic p="44.1386" r="4.72315" t="23.0019"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="161" x="0.708257363137" y="1.28540703125" z="2.33875967771">
+        <neutronic p="45.1755" r="4.72257" t="23.3727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="162" x="0.708257363137" y="1.3235890625" z="2.33875967771">
+        <neutronic p="46.1765" r="4.72196" t="23.7483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="163" x="0.708257363137" y="1.36177109375" z="2.33875967771">
+        <neutronic p="47.1428" r="4.72133" t="24.128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="164" x="0.708257363137" y="1.399953125" z="2.33875967771">
+        <neutronic p="48.0757" r="4.72066" t="24.5115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="165" x="0.708257363137" y="1.43813515625" z="2.33875967771">
+        <neutronic p="48.9763" r="4.71998" t="24.8984"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="166" x="0.708257363137" y="1.4763171875" z="2.33875967771">
+        <neutronic p="49.8459" r="4.71926" t="25.2883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="167" x="0.708257363137" y="1.51449921875" z="2.33875967771">
+        <neutronic p="50.6857" r="4.71852" t="25.6807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="168" x="0.708257363137" y="1.55268125" z="2.33875967771">
+        <neutronic p="51.4968" r="4.71776" t="26.0753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="169" x="0.708257363137" y="1.59086328125" z="2.33875967771">
+        <neutronic p="52.2804" r="4.71697" t="26.4718"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="170" x="0.708257363137" y="1.6290453125" z="2.33875967771">
+        <neutronic p="53.0376" r="4.71616" t="26.8699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="171" x="0.708257363137" y="1.66722734375" z="2.33875967771">
+        <neutronic p="53.7694" r="4.71532" t="27.2692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="172" x="0.708257363137" y="1.705409375" z="2.33875967771">
+        <neutronic p="54.4768" r="4.71445" t="27.6695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="173" x="0.708257363137" y="1.74359140625" z="2.33875967771">
+        <neutronic p="55.1608" r="4.71356" t="28.0706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="174" x="0.708257363137" y="1.7817734375" z="2.33875967771">
+        <neutronic p="55.8224" r="4.71265" t="28.472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="175" x="0.708257363137" y="1.81995546875" z="2.33875967771">
+        <neutronic p="56.4625" r="4.71172" t="28.8737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="176" x="0.708257363137" y="1.8581375" z="2.33875967771">
+        <neutronic p="57.082" r="4.71076" t="29.2753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="177" x="0.708257363137" y="1.89631953125" z="2.33875967771">
+        <neutronic p="57.6816" r="4.70977" t="29.6767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="197" x="0.816563120746" y="0.21631015625" z="2.30318257903">
+        <neutronic p="0.616811" r="4.72838" t="19.6665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="198" x="0.816563120746" y="0.2544921875" z="2.30318257903">
+        <neutronic p="2.36074" r="4.72855" t="19.6809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="199" x="0.816563120746" y="0.29267421875" z="2.30318257903">
+        <neutronic p="4.10157" r="4.7287" t="19.7121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="200" x="0.816563120746" y="0.33085625" z="2.30318257903">
+        <neutronic p="5.83611" r="4.72882" t="19.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="201" x="0.816563120746" y="0.36903828125" z="2.30318257903">
+        <neutronic p="7.56121" r="4.72891" t="19.8246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="202" x="0.816563120746" y="0.4072203125" z="2.30318257903">
+        <neutronic p="9.27385" r="4.72897" t="19.9056"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="203" x="0.816563120746" y="0.44540234375" z="2.30318257903">
+        <neutronic p="10.9711" r="4.729" t="20.0028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="204" x="0.816563120746" y="0.483584375" z="2.30318257903">
+        <neutronic p="12.6503" r="4.72901" t="20.1159"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="205" x="0.816563120746" y="0.52176640625" z="2.30318257903">
+        <neutronic p="14.3088" r="4.72898" t="20.2446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="206" x="0.816563120746" y="0.5599484375" z="2.30318257903">
+        <neutronic p="15.9442" r="4.72893" t="20.3886"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="207" x="0.816563120746" y="0.59813046875" z="2.30318257903">
+        <neutronic p="17.5545" r="4.72885" t="20.5474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="208" x="0.816563120746" y="0.6363125" z="2.30318257903">
+        <neutronic p="19.1377" r="4.72874" t="20.7205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="209" x="0.816563120746" y="0.67449453125" z="2.30318257903">
+        <neutronic p="20.6921" r="4.7286" t="20.9076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="210" x="0.816563120746" y="0.7126765625" z="2.30318257903">
+        <neutronic p="22.2163" r="4.72843" t="21.1081"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="211" x="0.816563120746" y="0.75085859375" z="2.30318257903">
+        <neutronic p="23.709" r="4.72824" t="21.3214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="212" x="0.816563120746" y="0.789040625" z="2.30318257903">
+        <neutronic p="25.1693" r="4.72801" t="21.5472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="213" x="0.816563120746" y="0.82722265625" z="2.30318257903">
+        <neutronic p="26.5962" r="4.72776" t="21.7847"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="214" x="0.816563120746" y="0.8654046875" z="2.30318257903">
+        <neutronic p="27.9893" r="4.72748" t="22.0336"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="215" x="0.816563120746" y="0.90358671875" z="2.30318257903">
+        <neutronic p="29.3481" r="4.72717" t="22.2932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="216" x="0.816563120746" y="0.94176875" z="2.30318257903">
+        <neutronic p="30.6724" r="4.72684" t="22.5629"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="217" x="0.816563120746" y="0.97995078125" z="2.30318257903">
+        <neutronic p="31.9621" r="4.72647" t="22.8423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="218" x="0.816563120746" y="1.0181328125" z="2.30318257903">
+        <neutronic p="33.2172" r="4.72608" t="23.1308"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="219" x="0.816563120746" y="1.05631484375" z="2.30318257903">
+        <neutronic p="34.438" r="4.72566" t="23.4278"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="220" x="0.816563120746" y="1.094496875" z="2.30318257903">
+        <neutronic p="35.6249" r="4.72521" t="23.7329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="221" x="0.816563120746" y="1.13267890625" z="2.30318257903">
+        <neutronic p="36.7781" r="4.72474" t="24.0454"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="222" x="0.816563120746" y="1.1708609375" z="2.30318257903">
+        <neutronic p="37.8982" r="4.72424" t="24.365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="223" x="0.816563120746" y="1.20904296875" z="2.30318257903">
+        <neutronic p="38.9859" r="4.72371" t="24.6911"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="224" x="0.816563120746" y="1.247225" z="2.30318257903">
+        <neutronic p="40.0416" r="4.72315" t="25.0232"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="225" x="0.816563120746" y="1.28540703125" z="2.30318257903">
+        <neutronic p="41.0662" r="4.72257" t="25.3609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="226" x="0.816563120746" y="1.3235890625" z="2.30318257903">
+        <neutronic p="42.0602" r="4.72196" t="25.7037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="227" x="0.816563120746" y="1.36177109375" z="2.30318257903">
+        <neutronic p="43.0246" r="4.72133" t="26.0512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="228" x="0.816563120746" y="1.399953125" z="2.30318257903">
+        <neutronic p="43.96" r="4.72066" t="26.4031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="229" x="0.816563120746" y="1.43813515625" z="2.30318257903">
+        <neutronic p="44.8673" r="4.71998" t="26.7588"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="230" x="0.816563120746" y="1.4763171875" z="2.30318257903">
+        <neutronic p="45.7473" r="4.71926" t="27.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="231" x="0.816563120746" y="1.51449921875" z="2.30318257903">
+        <neutronic p="46.6008" r="4.71852" t="27.4804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="232" x="0.816563120746" y="1.55268125" z="2.30318257903">
+        <neutronic p="47.4286" r="4.71776" t="27.8456"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="233" x="0.816563120746" y="1.59086328125" z="2.30318257903">
+        <neutronic p="48.2314" r="4.71697" t="28.2133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="234" x="0.816563120746" y="1.6290453125" z="2.30318257903">
+        <neutronic p="49.0102" r="4.71616" t="28.5832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="235" x="0.816563120746" y="1.66722734375" z="2.30318257903">
+        <neutronic p="49.7657" r="4.71532" t="28.9549"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="236" x="0.816563120746" y="1.705409375" z="2.30318257903">
+        <neutronic p="50.4986" r="4.71445" t="29.3281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="237" x="0.816563120746" y="1.74359140625" z="2.30318257903">
+        <neutronic p="51.2098" r="4.71356" t="29.7027"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="238" x="0.816563120746" y="1.7817734375" z="2.30318257903">
+        <neutronic p="51.8999" r="4.71265" t="30.0783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="239" x="0.816563120746" y="1.81995546875" z="2.30318257903">
+        <neutronic p="52.5698" r="4.71172" t="30.4547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="240" x="0.816563120746" y="1.8581375" z="2.30318257903">
+        <neutronic p="53.22" r="4.71076" t="30.8317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="241" x="0.816563120746" y="1.89631953125" z="2.30318257903">
+        <neutronic p="53.8513" r="4.70977" t="31.2089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="261" x="0.92309175728" y="0.21631015625" z="2.26259296608">
+        <neutronic p="0.545011" r="4.72838" t="22.3882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="262" x="0.92309175728" y="0.2544921875" z="2.26259296608">
+        <neutronic p="2.08618" r="4.72855" t="22.4007"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="263" x="0.92309175728" y="0.29267421875" z="2.26259296608">
+        <neutronic p="3.62546" r="4.7287" t="22.4277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="264" x="0.92309175728" y="0.33085625" z="2.26259296608">
+        <neutronic p="5.16062" r="4.72882" t="22.4693"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="265" x="0.92309175728" y="0.36903828125" z="2.26259296608">
+        <neutronic p="6.68949" r="4.72891" t="22.5254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="266" x="0.92309175728" y="0.4072203125" z="2.26259296608">
+        <neutronic p="8.20992" r="4.72897" t="22.5959"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="267" x="0.92309175728" y="0.44540234375" z="2.26259296608">
+        <neutronic p="9.71985" r="4.729" t="22.6805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="268" x="0.92309175728" y="0.483584375" z="2.26259296608">
+        <neutronic p="11.2173" r="4.72901" t="22.7791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="269" x="0.92309175728" y="0.52176640625" z="2.26259296608">
+        <neutronic p="12.7004" r="4.72898" t="22.8915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="270" x="0.92309175728" y="0.5599484375" z="2.26259296608">
+        <neutronic p="14.1674" r="4.72893" t="23.0173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="271" x="0.92309175728" y="0.59813046875" z="2.26259296608">
+        <neutronic p="15.6167" r="4.72885" t="23.1564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="272" x="0.92309175728" y="0.6363125" z="2.26259296608">
+        <neutronic p="17.0467" r="4.72874" t="23.3082"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="273" x="0.92309175728" y="0.67449453125" z="2.26259296608">
+        <neutronic p="18.456" r="4.7286" t="23.4727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="274" x="0.92309175728" y="0.7126765625" z="2.26259296608">
+        <neutronic p="19.8435" r="4.72843" t="23.6492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="275" x="0.92309175728" y="0.75085859375" z="2.26259296608">
+        <neutronic p="21.208" r="4.72824" t="23.8375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="276" x="0.92309175728" y="0.789040625" z="2.26259296608">
+        <neutronic p="22.5485" r="4.72801" t="24.0371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="277" x="0.92309175728" y="0.82722265625" z="2.26259296608">
+        <neutronic p="23.8644" r="4.72776" t="24.2477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="278" x="0.92309175728" y="0.8654046875" z="2.26259296608">
+        <neutronic p="25.1548" r="4.72748" t="24.4688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="279" x="0.92309175728" y="0.90358671875" z="2.26259296608">
+        <neutronic p="26.4192" r="4.72717" t="24.6999"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="280" x="0.92309175728" y="0.94176875" z="2.26259296608">
+        <neutronic p="27.6572" r="4.72684" t="24.9406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="281" x="0.92309175728" y="0.97995078125" z="2.26259296608">
+        <neutronic p="28.8685" r="4.72647" t="25.1905"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="282" x="0.92309175728" y="1.0181328125" z="2.26259296608">
+        <neutronic p="30.0529" r="4.72608" t="25.4492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="283" x="0.92309175728" y="1.05631484375" z="2.26259296608">
+        <neutronic p="31.2103" r="4.72566" t="25.7161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="284" x="0.92309175728" y="1.094496875" z="2.26259296608">
+        <neutronic p="32.3406" r="4.72521" t="25.9909"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="285" x="0.92309175728" y="1.13267890625" z="2.26259296608">
+        <neutronic p="33.444" r="4.72474" t="26.2731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="286" x="0.92309175728" y="1.1708609375" z="2.26259296608">
+        <neutronic p="34.5206" r="4.72424" t="26.5622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="287" x="0.92309175728" y="1.20904296875" z="2.26259296608">
+        <neutronic p="35.5706" r="4.72371" t="26.8579"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="288" x="0.92309175728" y="1.247225" z="2.26259296608">
+        <neutronic p="36.5943" r="4.72315" t="27.1598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="289" x="0.92309175728" y="1.28540703125" z="2.26259296608">
+        <neutronic p="37.5921" r="4.72257" t="27.4674"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="290" x="0.92309175728" y="1.3235890625" z="2.26259296608">
+        <neutronic p="38.5643" r="4.72196" t="27.7803"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="291" x="0.92309175728" y="1.36177109375" z="2.26259296608">
+        <neutronic p="39.5113" r="4.72133" t="28.0982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="292" x="0.92309175728" y="1.399953125" z="2.26259296608">
+        <neutronic p="40.4337" r="4.72066" t="28.4206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="293" x="0.92309175728" y="1.43813515625" z="2.26259296608">
+        <neutronic p="41.3318" r="4.71998" t="28.7473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="294" x="0.92309175728" y="1.4763171875" z="2.26259296608">
+        <neutronic p="42.2062" r="4.71926" t="29.0778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="295" x="0.92309175728" y="1.51449921875" z="2.26259296608">
+        <neutronic p="43.0575" r="4.71852" t="29.4119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="296" x="0.92309175728" y="1.55268125" z="2.26259296608">
+        <neutronic p="43.8862" r="4.71776" t="29.7491"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="297" x="0.92309175728" y="1.59086328125" z="2.26259296608">
+        <neutronic p="44.6927" r="4.71697" t="30.0893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="298" x="0.92309175728" y="1.6290453125" z="2.26259296608">
+        <neutronic p="45.4778" r="4.71616" t="30.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="299" x="0.92309175728" y="1.66722734375" z="2.26259296608">
+        <neutronic p="46.2418" r="4.71532" t="30.777"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="300" x="0.92309175728" y="1.705409375" z="2.26259296608">
+        <neutronic p="46.9855" r="4.71445" t="31.1241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="301" x="0.92309175728" y="1.74359140625" z="2.26259296608">
+        <neutronic p="47.7094" r="4.71356" t="31.4729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="302" x="0.92309175728" y="1.7817734375" z="2.26259296608">
+        <neutronic p="48.4139" r="4.71265" t="31.8231"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="303" x="0.92309175728" y="1.81995546875" z="2.26259296608">
+        <neutronic p="49.0997" r="4.71172" t="32.1747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="304" x="0.92309175728" y="1.8581375" z="2.26259296608">
+        <neutronic p="49.7674" r="4.71076" t="32.5272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="305" x="0.92309175728" y="1.89631953125" z="2.26259296608">
+        <neutronic p="50.4174" r="4.70977" t="32.8806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="325" x="1.02761142994" y="0.21631015625" z="2.21707917575">
+        <neutronic p="0.489173" r="4.72838" t="25.1099"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="326" x="1.02761142994" y="0.2544921875" z="2.21707917575">
+        <neutronic p="1.87259" r="4.72855" t="25.1209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="327" x="1.02761142994" y="0.29267421875" z="2.21707917575">
+        <neutronic p="3.25484" r="4.7287" t="25.1447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="328" x="1.02761142994" y="0.33085625" z="2.21707917575">
+        <neutronic p="4.6343" r="4.72882" t="25.1813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="329" x="1.02761142994" y="0.36903828125" z="2.21707917575">
+        <neutronic p="6.00938" r="4.72891" t="25.2306"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="330" x="1.02761142994" y="0.4072203125" z="2.21707917575">
+        <neutronic p="7.37852" r="4.72897" t="25.2926"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="331" x="1.02761142994" y="0.44540234375" z="2.21707917575">
+        <neutronic p="8.74019" r="4.729" t="25.3672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="332" x="1.02761142994" y="0.483584375" z="2.21707917575">
+        <neutronic p="10.0929" r="4.72901" t="25.4542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="333" x="1.02761142994" y="0.52176640625" z="2.21707917575">
+        <neutronic p="11.4353" r="4.72898" t="25.5533"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="334" x="1.02761142994" y="0.5599484375" z="2.21707917575">
+        <neutronic p="12.766" r="4.72893" t="25.6645"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="335" x="1.02761142994" y="0.59813046875" z="2.21707917575">
+        <neutronic p="14.0836" r="4.72885" t="25.7875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="336" x="1.02761142994" y="0.6363125" z="2.21707917575">
+        <neutronic p="15.3872" r="4.72874" t="25.9221"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="337" x="1.02761142994" y="0.67449453125" z="2.21707917575">
+        <neutronic p="16.6754" r="4.7286" t="26.0679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="338" x="1.02761142994" y="0.7126765625" z="2.21707917575">
+        <neutronic p="17.9473" r="4.72843" t="26.2247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="339" x="1.02761142994" y="0.75085859375" z="2.21707917575">
+        <neutronic p="19.202" r="4.72824" t="26.3923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="340" x="1.02761142994" y="0.789040625" z="2.21707917575">
+        <neutronic p="20.4386" r="4.72801" t="26.5702"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="341" x="1.02761142994" y="0.82722265625" z="2.21707917575">
+        <neutronic p="21.6564" r="4.72776" t="26.7581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="342" x="1.02761142994" y="0.8654046875" z="2.21707917575">
+        <neutronic p="22.8547" r="4.72748" t="26.9557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="343" x="1.02761142994" y="0.90358671875" z="2.21707917575">
+        <neutronic p="24.0329" r="4.72717" t="27.1627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="344" x="1.02761142994" y="0.94176875" z="2.21707917575">
+        <neutronic p="25.1906" r="4.72684" t="27.3787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="345" x="1.02761142994" y="0.97995078125" z="2.21707917575">
+        <neutronic p="26.3274" r="4.72647" t="27.6034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="346" x="1.02761142994" y="1.0181328125" z="2.21707917575">
+        <neutronic p="27.4429" r="4.72608" t="27.8362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="347" x="1.02761142994" y="1.05631484375" z="2.21707917575">
+        <neutronic p="28.5369" r="4.72566" t="28.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="348" x="1.02761142994" y="1.094496875" z="2.21707917575">
+        <neutronic p="29.6093" r="4.72521" t="28.3253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="349" x="1.02761142994" y="1.13267890625" z="2.21707917575">
+        <neutronic p="30.6598" r="4.72474" t="28.5808"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="350" x="1.02761142994" y="1.1708609375" z="2.21707917575">
+        <neutronic p="31.6886" r="4.72424" t="28.8431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="351" x="1.02761142994" y="1.20904296875" z="2.21707917575">
+        <neutronic p="32.6956" r="4.72371" t="29.1117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="352" x="1.02761142994" y="1.247225" z="2.21707917575">
+        <neutronic p="33.6809" r="4.72315" t="29.3865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="353" x="1.02761142994" y="1.28540703125" z="2.21707917575">
+        <neutronic p="34.6445" r="4.72257" t="29.6669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="354" x="1.02761142994" y="1.3235890625" z="2.21707917575">
+        <neutronic p="35.5868" r="4.72196" t="29.9528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="355" x="1.02761142994" y="1.36177109375" z="2.21707917575">
+        <neutronic p="36.5078" r="4.72133" t="30.2436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="356" x="1.02761142994" y="1.399953125" z="2.21707917575">
+        <neutronic p="37.4079" r="4.72066" t="30.5391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="357" x="1.02761142994" y="1.43813515625" z="2.21707917575">
+        <neutronic p="38.2873" r="4.71998" t="30.839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="358" x="1.02761142994" y="1.4763171875" z="2.21707917575">
+        <neutronic p="39.1462" r="4.71926" t="31.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="359" x="1.02761142994" y="1.51449921875" z="2.21707917575">
+        <neutronic p="39.9851" r="4.71852" t="31.4506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="360" x="1.02761142994" y="1.55268125" z="2.21707917575">
+        <neutronic p="40.8042" r="4.71776" t="31.7617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="361" x="1.02761142994" y="1.59086328125" z="2.21707917575">
+        <neutronic p="41.6039" r="4.71697" t="32.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="362" x="1.02761142994" y="1.6290453125" z="2.21707917575">
+        <neutronic p="42.3847" r="4.71616" t="32.3931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="363" x="1.02761142994" y="1.66722734375" z="2.21707917575">
+        <neutronic p="43.1468" r="4.71532" t="32.7128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="364" x="1.02761142994" y="1.705409375" z="2.21707917575">
+        <neutronic p="43.8906" r="4.71445" t="33.0348"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="365" x="1.02761142994" y="1.74359140625" z="2.21707917575">
+        <neutronic p="44.6167" r="4.71356" t="33.3589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="366" x="1.02761142994" y="1.7817734375" z="2.21707917575">
+        <neutronic p="45.3253" r="4.71265" t="33.6848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="367" x="1.02761142994" y="1.81995546875" z="2.21707917575">
+        <neutronic p="46.0168" r="4.71172" t="34.0123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="368" x="1.02761142994" y="1.8581375" z="2.21707917575">
+        <neutronic p="46.6918" r="4.71076" t="34.3412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="369" x="1.02761142994" y="1.89631953125" z="2.21707917575">
+        <neutronic p="47.3505" r="4.70977" t="34.6712"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="389" x="1.1298946681" y="0.21631015625" z="2.16674026166">
+        <neutronic p="0.444622" r="4.72838" t="27.8316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="390" x="1.1298946681" y="0.2544921875" z="2.16674026166">
+        <neutronic p="1.70215" r="4.72855" t="27.8414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="391" x="1.1298946681" y="0.29267421875" z="2.16674026166">
+        <neutronic p="2.95895" r="4.7287" t="27.8625"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="392" x="1.1298946681" y="0.33085625" z="2.16674026166">
+        <neutronic p="4.21382" r="4.72882" t="27.895"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="393" x="1.1298946681" y="0.36903828125" z="2.16674026166">
+        <neutronic p="5.46554" r="4.72891" t="27.9388"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="394" x="1.1298946681" y="0.4072203125" z="2.16674026166">
+        <neutronic p="6.71294" r="4.72897" t="27.994"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="395" x="1.1298946681" y="0.44540234375" z="2.16674026166">
+        <neutronic p="7.95485" r="4.729" t="28.0603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="396" x="1.1298946681" y="0.483584375" z="2.16674026166">
+        <neutronic p="9.19013" r="4.72901" t="28.1376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="397" x="1.1298946681" y="0.52176640625" z="2.16674026166">
+        <neutronic p="10.4177" r="4.72898" t="28.2259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="398" x="1.1298946681" y="0.5599484375" z="2.16674026166">
+        <neutronic p="11.6365" r="4.72893" t="28.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="399" x="1.1298946681" y="0.59813046875" z="2.16674026166">
+        <neutronic p="12.8455" r="4.72885" t="28.4347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="400" x="1.1298946681" y="0.6363125" z="2.16674026166">
+        <neutronic p="14.0438" r="4.72874" t="28.5548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="401" x="1.1298946681" y="0.67449453125" z="2.16674026166">
+        <neutronic p="15.2304" r="4.7286" t="28.6852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="402" x="1.1298946681" y="0.7126765625" z="2.16674026166">
+        <neutronic p="16.4046" r="4.72843" t="28.8254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="403" x="1.1298946681" y="0.75085859375" z="2.16674026166">
+        <neutronic p="17.5655" r="4.72824" t="28.9755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="404" x="1.1298946681" y="0.789040625" z="2.16674026166">
+        <neutronic p="18.7124" r="4.72801" t="29.135"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="405" x="1.1298946681" y="0.82722265625" z="2.16674026166">
+        <neutronic p="19.8447" r="4.72776" t="29.3037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="406" x="1.1298946681" y="0.8654046875" z="2.16674026166">
+        <neutronic p="20.9617" r="4.72748" t="29.4814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="407" x="1.1298946681" y="0.90358671875" z="2.16674026166">
+        <neutronic p="22.0629" r="4.72717" t="29.6677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="408" x="1.1298946681" y="0.94176875" z="2.16674026166">
+        <neutronic p="23.1479" r="4.72684" t="29.8624"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="409" x="1.1298946681" y="0.97995078125" z="2.16674026166">
+        <neutronic p="24.2162" r="4.72647" t="30.0652"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="410" x="1.1298946681" y="1.0181328125" z="2.16674026166">
+        <neutronic p="25.2675" r="4.72608" t="30.2757"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="411" x="1.1298946681" y="1.05631484375" z="2.16674026166">
+        <neutronic p="26.3015" r="4.72566" t="30.4936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="412" x="1.1298946681" y="1.094496875" z="2.16674026166">
+        <neutronic p="27.3179" r="4.72521" t="30.7187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="413" x="1.1298946681" y="1.13267890625" z="2.16674026166">
+        <neutronic p="28.3166" r="4.72474" t="30.9506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="414" x="1.1298946681" y="1.1708609375" z="2.16674026166">
+        <neutronic p="29.2973" r="4.72424" t="31.189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="415" x="1.1298946681" y="1.20904296875" z="2.16674026166">
+        <neutronic p="30.2601" r="4.72371" t="31.4337"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="416" x="1.1298946681" y="1.247225" z="2.16674026166">
+        <neutronic p="31.2049" r="4.72315" t="31.6842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="417" x="1.1298946681" y="1.28540703125" z="2.16674026166">
+        <neutronic p="32.1316" r="4.72257" t="31.9402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="418" x="1.1298946681" y="1.3235890625" z="2.16674026166">
+        <neutronic p="33.0403" r="4.72196" t="32.2016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="419" x="1.1298946681" y="1.36177109375" z="2.16674026166">
+        <neutronic p="33.9311" r="4.72133" t="32.4679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="420" x="1.1298946681" y="1.399953125" z="2.16674026166">
+        <neutronic p="34.804" r="4.72066" t="32.7389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="421" x="1.1298946681" y="1.43813515625" z="2.16674026166">
+        <neutronic p="35.6593" r="4.71998" t="33.0143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="422" x="1.1298946681" y="1.4763171875" z="2.16674026166">
+        <neutronic p="36.497" r="4.71926" t="33.2937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="423" x="1.1298946681" y="1.51449921875" z="2.16674026166">
+        <neutronic p="37.3173" r="4.71852" t="33.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="424" x="1.1298946681" y="1.55268125" z="2.16674026166">
+        <neutronic p="38.1205" r="4.71776" t="33.8638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="425" x="1.1298946681" y="1.59086328125" z="2.16674026166">
+        <neutronic p="38.9067" r="4.71697" t="34.1539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="426" x="1.1298946681" y="1.6290453125" z="2.16674026166">
+        <neutronic p="39.6762" r="4.71616" t="34.4471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="427" x="1.1298946681" y="1.66722734375" z="2.16674026166">
+        <neutronic p="40.4292" r="4.71532" t="34.743"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="428" x="1.1298946681" y="1.705409375" z="2.16674026166">
+        <neutronic p="41.1661" r="4.71445" t="35.0414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="429" x="1.1298946681" y="1.74359140625" z="2.16674026166">
+        <neutronic p="41.8871" r="4.71356" t="35.3421"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="430" x="1.1298946681" y="1.7817734375" z="2.16674026166">
+        <neutronic p="42.5924" r="4.71265" t="35.6448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="431" x="1.1298946681" y="1.81995546875" z="2.16674026166">
+        <neutronic p="43.2823" r="4.71172" t="35.9494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="432" x="1.1298946681" y="1.8581375" z="2.16674026166">
+        <neutronic p="43.9573" r="4.71076" t="36.2556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="433" x="1.1298946681" y="1.89631953125" z="2.16674026166">
+        <neutronic p="44.6175" r="4.70977" t="36.5632"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="453" x="1.22971886841" y="0.21631015625" z="2.11168577852">
+        <neutronic p="0.408353" r="4.72838" t="30.5534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="454" x="1.22971886841" y="0.2544921875" z="2.11168577852">
+        <neutronic p="1.56336" r="4.72855" t="30.5621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="455" x="1.22971886841" y="0.29267421875" z="2.11168577852">
+        <neutronic p="2.71795" r="4.7287" t="30.581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="456" x="1.22971886841" y="0.33085625" z="2.11168577852">
+        <neutronic p="3.87116" r="4.72882" t="30.6101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="457" x="1.22971886841" y="0.36903828125" z="2.11168577852">
+        <neutronic p="5.02207" r="4.72891" t="30.6493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="458" x="1.22971886841" y="0.4072203125" z="2.11168577852">
+        <neutronic p="6.16974" r="4.72897" t="30.6986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="459" x="1.22971886841" y="0.44540234375" z="2.11168577852">
+        <neutronic p="7.31326" r="4.729" t="30.758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="460" x="1.22971886841" y="0.483584375" z="2.11168577852">
+        <neutronic p="8.45174" r="4.72901" t="30.8273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="461" x="1.22971886841" y="0.52176640625" z="2.11168577852">
+        <neutronic p="9.58431" r="4.72898" t="30.9065"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="462" x="1.22971886841" y="0.5599484375" z="2.11168577852">
+        <neutronic p="10.7101" r="4.72893" t="30.9954"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="463" x="1.22971886841" y="0.59813046875" z="2.11168577852">
+        <neutronic p="11.8284" r="4.72885" t="31.0938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="464" x="1.22971886841" y="0.6363125" z="2.11168577852">
+        <neutronic p="12.9383" r="4.72874" t="31.2017"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="465" x="1.22971886841" y="0.67449453125" z="2.11168577852">
+        <neutronic p="14.0392" r="4.7286" t="31.3188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="466" x="1.22971886841" y="0.7126765625" z="2.11168577852">
+        <neutronic p="15.1303" r="4.72843" t="31.4451"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="467" x="1.22971886841" y="0.75085859375" z="2.11168577852">
+        <neutronic p="16.2109" r="4.72824" t="31.5801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="468" x="1.22971886841" y="0.789040625" z="2.11168577852">
+        <neutronic p="17.2805" r="4.72801" t="31.7239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="469" x="1.22971886841" y="0.82722265625" z="2.11168577852">
+        <neutronic p="18.3384" r="4.72776" t="31.8761"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="470" x="1.22971886841" y="0.8654046875" z="2.11168577852">
+        <neutronic p="19.3842" r="4.72748" t="32.0366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="471" x="1.22971886841" y="0.90358671875" z="2.11168577852">
+        <neutronic p="20.4174" r="4.72717" t="32.205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="472" x="1.22971886841" y="0.94176875" z="2.11168577852">
+        <neutronic p="21.4374" r="4.72684" t="32.3812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="473" x="1.22971886841" y="0.97995078125" z="2.11168577852">
+        <neutronic p="22.444" r="4.72647" t="32.5648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="474" x="1.22971886841" y="1.0181328125" z="2.11168577852">
+        <neutronic p="23.4368" r="4.72608" t="32.7557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="475" x="1.22971886841" y="1.05631484375" z="2.11168577852">
+        <neutronic p="24.4154" r="4.72566" t="32.9536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="476" x="1.22971886841" y="1.094496875" z="2.11168577852">
+        <neutronic p="25.3796" r="4.72521" t="33.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="477" x="1.22971886841" y="1.13267890625" z="2.11168577852">
+        <neutronic p="26.3291" r="4.72474" t="33.3692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="478" x="1.22971886841" y="1.1708609375" z="2.11168577852">
+        <neutronic p="27.2638" r="4.72424" t="33.5865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="479" x="1.22971886841" y="1.20904296875" z="2.11168577852">
+        <neutronic p="28.1836" r="4.72371" t="33.8096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="480" x="1.22971886841" y="1.247225" z="2.11168577852">
+        <neutronic p="29.0882" r="4.72315" t="34.0383"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="481" x="1.22971886841" y="1.28540703125" z="2.11168577852">
+        <neutronic p="29.9777" r="4.72257" t="34.2725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="482" x="1.22971886841" y="1.3235890625" z="2.11168577852">
+        <neutronic p="30.852" r="4.72196" t="34.5117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="483" x="1.22971886841" y="1.36177109375" z="2.11168577852">
+        <neutronic p="31.7111" r="4.72133" t="34.7558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="484" x="1.22971886841" y="1.399953125" z="2.11168577852">
+        <neutronic p="32.5549" r="4.72066" t="35.0044"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="485" x="1.22971886841" y="1.43813515625" z="2.11168577852">
+        <neutronic p="33.3835" r="4.71998" t="35.2574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="486" x="1.22971886841" y="1.4763171875" z="2.11168577852">
+        <neutronic p="34.197" r="4.71926" t="35.5144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="487" x="1.22971886841" y="1.51449921875" z="2.11168577852">
+        <neutronic p="34.9955" r="4.71852" t="35.7752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="488" x="1.22971886841" y="1.55268125" z="2.11168577852">
+        <neutronic p="35.779" r="4.71776" t="36.0396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="489" x="1.22971886841" y="1.59086328125" z="2.11168577852">
+        <neutronic p="36.5478" r="4.71697" t="36.3073"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="490" x="1.22971886841" y="1.6290453125" z="2.11168577852">
+        <neutronic p="37.3018" r="4.71616" t="36.5781"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="491" x="1.22971886841" y="1.66722734375" z="2.11168577852">
+        <neutronic p="38.0414" r="4.71532" t="36.8518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="492" x="1.22971886841" y="1.705409375" z="2.11168577852">
+        <neutronic p="38.7666" r="4.71445" t="37.1281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="493" x="1.22971886841" y="1.74359140625" z="2.11168577852">
+        <neutronic p="39.4776" r="4.71356" t="37.4067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="494" x="1.22971886841" y="1.7817734375" z="2.11168577852">
+        <neutronic p="40.1747" r="4.71265" t="37.6876"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="495" x="1.22971886841" y="1.81995546875" z="2.11168577852">
+        <neutronic p="40.858" r="4.71172" t="37.9705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="496" x="1.22971886841" y="1.8581375" z="2.11168577852">
+        <neutronic p="41.5278" r="4.71076" t="38.2552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="497" x="1.22971886841" y="1.89631953125" z="2.11168577852">
+        <neutronic p="42.1842" r="4.70977" t="38.5414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="517" x="1.3268667792" y="0.21631015625" z="2.05203554373">
+        <neutronic p="0.378344" r="4.72838" t="33.2751"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="518" x="1.3268667792" y="0.2544921875" z="2.05203554373">
+        <neutronic p="1.44852" r="4.72855" t="33.2829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="519" x="1.3268667792" y="0.29267421875" z="2.05203554373">
+        <neutronic p="2.51848" r="4.7287" t="33.2999"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="520" x="1.3268667792" y="0.33085625" z="2.05203554373">
+        <neutronic p="3.58744" r="4.72882" t="33.3261"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="521" x="1.3268667792" y="0.36903828125" z="2.05203554373">
+        <neutronic p="4.65468" r="4.72891" t="33.3614"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="522" x="1.3268667792" y="0.4072203125" z="2.05203554373">
+        <neutronic p="5.71945" r="4.72897" t="33.4058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="523" x="1.3268667792" y="0.44540234375" z="2.05203554373">
+        <neutronic p="6.78101" r="4.729" t="33.4593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="524" x="1.3268667792" y="0.483584375" z="2.05203554373">
+        <neutronic p="7.83864" r="4.72901" t="33.5217"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="525" x="1.3268667792" y="0.52176640625" z="2.05203554373">
+        <neutronic p="8.89165" r="4.72898" t="33.5931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="526" x="1.3268667792" y="0.5599484375" z="2.05203554373">
+        <neutronic p="9.93935" r="4.72893" t="33.6732"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="527" x="1.3268667792" y="0.59813046875" z="2.05203554373">
+        <neutronic p="10.9811" r="4.72885" t="33.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="528" x="1.3268667792" y="0.6363125" z="2.05203554373">
+        <neutronic p="12.0162" r="4.72874" t="33.8593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="529" x="1.3268667792" y="0.67449453125" z="2.05203554373">
+        <neutronic p="13.044" r="4.7286" t="33.9651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="530" x="1.3268667792" y="0.7126765625" z="2.05203554373">
+        <neutronic p="14.0641" r="4.72843" t="34.0792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="531" x="1.3268667792" y="0.75085859375" z="2.05203554373">
+        <neutronic p="15.0758" r="4.72824" t="34.2013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="532" x="1.3268667792" y="0.789040625" z="2.05203554373">
+        <neutronic p="16.0785" r="4.72801" t="34.3314"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="533" x="1.3268667792" y="0.82722265625" z="2.05203554373">
+        <neutronic p="17.0719" r="4.72776" t="34.4692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="534" x="1.3268667792" y="0.8654046875" z="2.05203554373">
+        <neutronic p="18.0554" r="4.72748" t="34.6146"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="535" x="1.3268667792" y="0.90358671875" z="2.05203554373">
+        <neutronic p="19.0286" r="4.72717" t="34.7674"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="536" x="1.3268667792" y="0.94176875" z="2.05203554373">
+        <neutronic p="19.9911" r="4.72684" t="34.9273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="537" x="1.3268667792" y="0.97995078125" z="2.05203554373">
+        <neutronic p="20.9425" r="4.72647" t="35.0942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="538" x="1.3268667792" y="1.0181328125" z="2.05203554373">
+        <neutronic p="21.8825" r="4.72608" t="35.2677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="539" x="1.3268667792" y="1.05631484375" z="2.05203554373">
+        <neutronic p="22.8108" r="4.72566" t="35.4479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="540" x="1.3268667792" y="1.094496875" z="2.05203554373">
+        <neutronic p="23.7271" r="4.72521" t="35.6342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="541" x="1.3268667792" y="1.13267890625" z="2.05203554373">
+        <neutronic p="24.6312" r="4.72474" t="35.8267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="542" x="1.3268667792" y="1.1708609375" z="2.05203554373">
+        <neutronic p="25.5229" r="4.72424" t="36.0249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="543" x="1.3268667792" y="1.20904296875" z="2.05203554373">
+        <neutronic p="26.402" r="4.72371" t="36.2288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="544" x="1.3268667792" y="1.247225" z="2.05203554373">
+        <neutronic p="27.2684" r="4.72315" t="36.438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="545" x="1.3268667792" y="1.28540703125" z="2.05203554373">
+        <neutronic p="28.1219" r="4.72257" t="36.6523"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="546" x="1.3268667792" y="1.3235890625" z="2.05203554373">
+        <neutronic p="28.9624" r="4.72196" t="36.8715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="547" x="1.3268667792" y="1.36177109375" z="2.05203554373">
+        <neutronic p="29.7899" r="4.72133" t="37.0954"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="548" x="1.3268667792" y="1.399953125" z="2.05203554373">
+        <neutronic p="30.6043" r="4.72066" t="37.3236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="549" x="1.3268667792" y="1.43813515625" z="2.05203554373">
+        <neutronic p="31.4057" r="4.71998" t="37.5561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="550" x="1.3268667792" y="1.4763171875" z="2.05203554373">
+        <neutronic p="32.1939" r="4.71926" t="37.7925"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="551" x="1.3268667792" y="1.51449921875" z="2.05203554373">
+        <neutronic p="32.9691" r="4.71852" t="38.0327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="552" x="1.3268667792" y="1.55268125" z="2.05203554373">
+        <neutronic p="33.7312" r="4.71776" t="38.2763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="553" x="1.3268667792" y="1.59086328125" z="2.05203554373">
+        <neutronic p="34.4804" r="4.71697" t="38.5233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="554" x="1.3268667792" y="1.6290453125" z="2.05203554373">
+        <neutronic p="35.2167" r="4.71616" t="38.7734"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="555" x="1.3268667792" y="1.66722734375" z="2.05203554373">
+        <neutronic p="35.9401" r="4.71532" t="39.0263"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="556" x="1.3268667792" y="1.705409375" z="2.05203554373">
+        <neutronic p="36.6509" r="4.71445" t="39.2819"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="557" x="1.3268667792" y="1.74359140625" z="2.05203554373">
+        <neutronic p="37.349" r="4.71356" t="39.5399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="558" x="1.3268667792" y="1.7817734375" z="2.05203554373">
+        <neutronic p="38.0347" r="4.71265" t="39.8003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="559" x="1.3268667792" y="1.81995546875" z="2.05203554373">
+        <neutronic p="38.708" r="4.71172" t="40.0627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="560" x="1.3268667792" y="1.8581375" z="2.05203554373">
+        <neutronic p="39.3691" r="4.71076" t="40.327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="561" x="1.3268667792" y="1.89631953125" z="2.05203554373">
+        <neutronic p="40.0182" r="4.70977" t="40.593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="581" x="1.42112697335" y="0.21631015625" z="1.98791937666">
+        <neutronic p="0.353186" r="4.72838" t="35.9969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="582" x="1.42112697335" y="0.2544921875" z="1.98791937666">
+        <neutronic p="1.35224" r="4.72855" t="36.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="583" x="1.42112697335" y="0.29267421875" z="1.98791937666">
+        <neutronic p="2.3512" r="4.7287" t="36.0193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="584" x="1.42112697335" y="0.33085625" z="1.98791937666">
+        <neutronic p="3.34945" r="4.72882" t="36.043"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="585" x="1.42112697335" y="0.36903828125" z="1.98791937666">
+        <neutronic p="4.34639" r="4.72891" t="36.0749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="586" x="1.42112697335" y="0.4072203125" z="1.98791937666">
+        <neutronic p="5.3414" r="4.72897" t="36.115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="587" x="1.42112697335" y="0.44540234375" z="1.98791937666">
+        <neutronic p="6.33388" r="4.729" t="36.1633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="588" x="1.42112697335" y="0.483584375" z="1.98791937666">
+        <neutronic p="7.32325" r="4.72901" t="36.2198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="589" x="1.42112697335" y="0.52176640625" z="1.98791937666">
+        <neutronic p="8.30892" r="4.72898" t="36.2843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="590" x="1.42112697335" y="0.5599484375" z="1.98791937666">
+        <neutronic p="9.29033" r="4.72893" t="36.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="591" x="1.42112697335" y="0.59813046875" z="1.98791937666">
+        <neutronic p="10.2669" r="4.72885" t="36.4372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="592" x="1.42112697335" y="0.6363125" z="1.98791937666">
+        <neutronic p="11.2382" r="4.72874" t="36.5254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="593" x="1.42112697335" y="0.67449453125" z="1.98791937666">
+        <neutronic p="12.2035" r="4.7286" t="36.6212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="594" x="1.42112697335" y="0.7126765625" z="1.98791937666">
+        <neutronic p="13.1625" r="4.72843" t="36.7246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="595" x="1.42112697335" y="0.75085859375" z="1.98791937666">
+        <neutronic p="14.1147" r="4.72824" t="36.8354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="596" x="1.42112697335" y="0.789040625" z="1.98791937666">
+        <neutronic p="15.0595" r="4.72801" t="36.9535"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="597" x="1.42112697335" y="0.82722265625" z="1.98791937666">
+        <neutronic p="15.9966" r="4.72776" t="37.0786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="598" x="1.42112697335" y="0.8654046875" z="1.98791937666">
+        <neutronic p="16.9256" r="4.72748" t="37.2108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="599" x="1.42112697335" y="0.90358671875" z="1.98791937666">
+        <neutronic p="17.8461" r="4.72717" t="37.3497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="600" x="1.42112697335" y="0.94176875" z="1.98791937666">
+        <neutronic p="18.7576" r="4.72684" t="37.4952"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="601" x="1.42112697335" y="0.97995078125" z="1.98791937666">
+        <neutronic p="19.66" r="4.72647" t="37.6471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="602" x="1.42112697335" y="1.0181328125" z="1.98791937666">
+        <neutronic p="20.5528" r="4.72608" t="37.8053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="603" x="1.42112697335" y="1.05631484375" z="1.98791937666">
+        <neutronic p="21.4358" r="4.72566" t="37.9695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="604" x="1.42112697335" y="1.094496875" z="1.98791937666">
+        <neutronic p="22.3087" r="4.72521" t="38.1396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="605" x="1.42112697335" y="1.13267890625" z="1.98791937666">
+        <neutronic p="23.1713" r="4.72474" t="38.3154"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="606" x="1.42112697335" y="1.1708609375" z="1.98791937666">
+        <neutronic p="24.0233" r="4.72424" t="38.4966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="607" x="1.42112697335" y="1.20904296875" z="1.98791937666">
+        <neutronic p="24.8647" r="4.72371" t="38.683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="608" x="1.42112697335" y="1.247225" z="1.98791937666">
+        <neutronic p="25.6952" r="4.72315" t="38.8745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="609" x="1.42112697335" y="1.28540703125" z="1.98791937666">
+        <neutronic p="26.5147" r="4.72257" t="39.0709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="610" x="1.42112697335" y="1.3235890625" z="1.98791937666">
+        <neutronic p="27.3231" r="4.72196" t="39.2719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="611" x="1.42112697335" y="1.36177109375" z="1.98791937666">
+        <neutronic p="28.1202" r="4.72133" t="39.4773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="612" x="1.42112697335" y="1.399953125" z="1.98791937666">
+        <neutronic p="28.906" r="4.72066" t="39.687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="613" x="1.42112697335" y="1.43813515625" z="1.98791937666">
+        <neutronic p="29.6805" r="4.71998" t="39.9006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="614" x="1.42112697335" y="1.4763171875" z="1.98791937666">
+        <neutronic p="30.4436" r="4.71926" t="40.1181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="615" x="1.42112697335" y="1.51449921875" z="1.98791937666">
+        <neutronic p="31.1952" r="4.71852" t="40.3392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="616" x="1.42112697335" y="1.55268125" z="1.98791937666">
+        <neutronic p="31.9355" r="4.71776" t="40.5638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="617" x="1.42112697335" y="1.59086328125" z="1.98791937666">
+        <neutronic p="32.6643" r="4.71697" t="40.7915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="618" x="1.42112697335" y="1.6290453125" z="1.98791937666">
+        <neutronic p="33.3817" r="4.71616" t="41.0223"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="619" x="1.42112697335" y="1.66722734375" z="1.98791937666">
+        <neutronic p="34.0878" r="4.71532" t="41.2559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="620" x="1.42112697335" y="1.705409375" z="1.98791937666">
+        <neutronic p="34.7826" r="4.71445" t="41.4922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="621" x="1.42112697335" y="1.74359140625" z="1.98791937666">
+        <neutronic p="35.4661" r="4.71356" t="41.7309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="622" x="1.42112697335" y="1.7817734375" z="1.98791937666">
+        <neutronic p="36.1385" r="4.71265" t="41.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="623" x="1.42112697335" y="1.81995546875" z="1.98791937666">
+        <neutronic p="36.7998" r="4.71172" t="42.2151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="624" x="1.42112697335" y="1.8581375" z="1.98791937666">
+        <neutronic p="37.4502" r="4.71076" t="42.4602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="625" x="1.42112697335" y="1.89631953125" z="1.98791937666">
+        <neutronic p="38.0896" r="4.70977" t="42.7071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="645" x="1.51229430839" y="0.21631015625" z="1.91947681604">
+        <neutronic p="0.331867" r="4.72838" t="38.7187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="646" x="1.51229430839" y="0.2544921875" z="1.91947681604">
+        <neutronic p="1.27064" r="4.72855" t="38.7251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="647" x="1.51229430839" y="0.29267421875" z="1.91947681604">
+        <neutronic p="2.20942" r="4.7287" t="38.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="648" x="1.51229430839" y="0.33085625" z="1.91947681604">
+        <neutronic p="3.14769" r="4.72882" t="38.7604"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="649" x="1.51229430839" y="0.36903828125" z="1.91947681604">
+        <neutronic p="4.08494" r="4.72891" t="38.7893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="650" x="1.51229430839" y="0.4072203125" z="1.91947681604">
+        <neutronic p="5.02068" r="4.72897" t="38.8257"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="651" x="1.51229430839" y="0.44540234375" z="1.91947681604">
+        <neutronic p="5.95439" r="4.729" t="38.8695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="652" x="1.51229430839" y="0.483584375" z="1.91947681604">
+        <neutronic p="6.88558" r="4.72901" t="38.9207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="653" x="1.51229430839" y="0.52176640625" z="1.91947681604">
+        <neutronic p="7.81376" r="4.72898" t="38.9793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="654" x="1.51229430839" y="0.5599484375" z="1.91947681604">
+        <neutronic p="8.73847" r="4.72893" t="39.0451"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="655" x="1.51229430839" y="0.59813046875" z="1.91947681604">
+        <neutronic p="9.65922" r="4.72885" t="39.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="656" x="1.51229430839" y="0.6363125" z="1.91947681604">
+        <neutronic p="10.5756" r="4.72874" t="39.1981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="657" x="1.51229430839" y="0.67449453125" z="1.91947681604">
+        <neutronic p="11.4871" r="4.7286" t="39.2852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="658" x="1.51229430839" y="0.7126765625" z="1.91947681604">
+        <neutronic p="12.3933" r="4.72843" t="39.3791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="659" x="1.51229430839" y="0.75085859375" z="1.91947681604">
+        <neutronic p="13.2938" r="4.72824" t="39.4798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="660" x="1.51229430839" y="0.789040625" z="1.91947681604">
+        <neutronic p="14.1883" r="4.72801" t="39.5872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="661" x="1.51229430839" y="0.82722265625" z="1.91947681604">
+        <neutronic p="15.0763" r="4.72776" t="39.7011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="662" x="1.51229430839" y="0.8654046875" z="1.91947681604">
+        <neutronic p="15.9575" r="4.72748" t="39.8214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="663" x="1.51229430839" y="0.90358671875" z="1.91947681604">
+        <neutronic p="16.8315" r="4.72717" t="39.9479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="664" x="1.51229430839" y="0.94176875" z="1.91947681604">
+        <neutronic p="17.6981" r="4.72684" t="40.0806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="665" x="1.51229430839" y="0.97995078125" z="1.91947681604">
+        <neutronic p="18.5568" r="4.72647" t="40.2191"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="666" x="1.51229430839" y="1.0181328125" z="1.91947681604">
+        <neutronic p="19.4075" r="4.72608" t="40.3635"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="667" x="1.51229430839" y="1.05631484375" z="1.91947681604">
+        <neutronic p="20.2498" r="4.72566" t="40.5134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="668" x="1.51229430839" y="1.094496875" z="1.91947681604">
+        <neutronic p="21.0836" r="4.72521" t="40.6688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="669" x="1.51229430839" y="1.13267890625" z="1.91947681604">
+        <neutronic p="21.9086" r="4.72474" t="40.8295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="670" x="1.51229430839" y="1.1708609375" z="1.91947681604">
+        <neutronic p="22.7245" r="4.72424" t="40.9953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="671" x="1.51229430839" y="1.20904296875" z="1.91947681604">
+        <neutronic p="23.5313" r="4.72371" t="41.1659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="672" x="1.51229430839" y="1.247225" z="1.91947681604">
+        <neutronic p="24.3287" r="4.72315" t="41.3414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="673" x="1.51229430839" y="1.28540703125" z="1.91947681604">
+        <neutronic p="25.1166" r="4.72257" t="41.5213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="674" x="1.51229430839" y="1.3235890625" z="1.91947681604">
+        <neutronic p="25.8948" r="4.72196" t="41.7057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="675" x="1.51229430839" y="1.36177109375" z="1.91947681604">
+        <neutronic p="26.6633" r="4.72133" t="41.8942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="676" x="1.51229430839" y="1.399953125" z="1.91947681604">
+        <neutronic p="27.422" r="4.72066" t="42.0868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="677" x="1.51229430839" y="1.43813515625" z="1.91947681604">
+        <neutronic p="28.1707" r="4.71998" t="42.2832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="678" x="1.51229430839" y="1.4763171875" z="1.91947681604">
+        <neutronic p="28.9094" r="4.71926" t="42.4832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="679" x="1.51229430839" y="1.51449921875" z="1.91947681604">
+        <neutronic p="29.6381" r="4.71852" t="42.6868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="680" x="1.51229430839" y="1.55268125" z="1.91947681604">
+        <neutronic p="30.3567" r="4.71776" t="42.8936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="681" x="1.51229430839" y="1.59086328125" z="1.91947681604">
+        <neutronic p="31.0652" r="4.71697" t="43.1035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="682" x="1.51229430839" y="1.6290453125" z="1.91947681604">
+        <neutronic p="31.7636" r="4.71616" t="43.3164"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="683" x="1.51229430839" y="1.66722734375" z="1.91947681604">
+        <neutronic p="32.4519" r="4.71532" t="43.532"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="684" x="1.51229430839" y="1.705409375" z="1.91947681604">
+        <neutronic p="33.1301" r="4.71445" t="43.7502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="685" x="1.51229430839" y="1.74359140625" z="1.91947681604">
+        <neutronic p="33.7983" r="4.71356" t="43.9709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="686" x="1.51229430839" y="1.7817734375" z="1.91947681604">
+        <neutronic p="34.4565" r="4.71265" t="44.1938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="687" x="1.51229430839" y="1.81995546875" z="1.91947681604">
+        <neutronic p="35.1047" r="4.71172" t="44.4188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="688" x="1.51229430839" y="1.8581375" z="1.91947681604">
+        <neutronic p="35.743" r="4.71076" t="44.6458"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="689" x="1.51229430839" y="1.89631953125" z="1.91947681604">
+        <neutronic p="36.3715" r="4.70977" t="44.8746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="709" x="1.60017037295" y="0.21631015625" z="1.84685681633">
+        <neutronic p="0.313643" r="4.72838" t="41.4404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="710" x="1.60017037295" y="0.2544921875" z="1.84685681633">
+        <neutronic p="1.20088" r="4.72855" t="41.4462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="711" x="1.60017037295" y="0.29267421875" z="1.84685681633">
+        <neutronic p="2.0882" r="4.7287" t="41.4589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="712" x="1.60017037295" y="0.33085625" z="1.84685681633">
+        <neutronic p="2.97515" r="4.72882" t="41.4783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="713" x="1.60017037295" y="0.36903828125" z="1.84685681633">
+        <neutronic p="3.86132" r="4.72891" t="41.5046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="714" x="1.60017037295" y="0.4072203125" z="1.84685681633">
+        <neutronic p="4.74626" r="4.72897" t="41.5377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="715" x="1.60017037295" y="0.44540234375" z="1.84685681633">
+        <neutronic p="5.62956" r="4.729" t="41.5775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="716" x="1.60017037295" y="0.483584375" z="1.84685681633">
+        <neutronic p="6.51079" r="4.72901" t="41.624"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="717" x="1.60017037295" y="0.52176640625" z="1.84685681633">
+        <neutronic p="7.38954" r="4.72898" t="41.6772"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="718" x="1.60017037295" y="0.5599484375" z="1.84685681633">
+        <neutronic p="8.26541" r="4.72893" t="41.737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="719" x="1.60017037295" y="0.59813046875" z="1.84685681633">
+        <neutronic p="9.13798" r="4.72885" t="41.8034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="720" x="1.60017037295" y="0.6363125" z="1.84685681633">
+        <neutronic p="10.0069" r="4.72874" t="41.8762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="721" x="1.60017037295" y="0.67449453125" z="1.84685681633">
+        <neutronic p="10.8717" r="4.7286" t="41.9554"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="722" x="1.60017037295" y="0.7126765625" z="1.84685681633">
+        <neutronic p="11.7321" r="4.72843" t="42.0409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="723" x="1.60017037295" y="0.75085859375" z="1.84685681633">
+        <neutronic p="12.5877" r="4.72824" t="42.1326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="724" x="1.60017037295" y="0.789040625" z="1.84685681633">
+        <neutronic p="13.4382" r="4.72801" t="42.2304"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="725" x="1.60017037295" y="0.82722265625" z="1.84685681633">
+        <neutronic p="14.2832" r="4.72776" t="42.3342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="726" x="1.60017037295" y="0.8654046875" z="1.84685681633">
+        <neutronic p="15.1224" r="4.72748" t="42.4438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="727" x="1.60017037295" y="0.90358671875" z="1.84685681633">
+        <neutronic p="15.9555" r="4.72717" t="42.5592"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="728" x="1.60017037295" y="0.94176875" z="1.84685681633">
+        <neutronic p="16.7822" r="4.72684" t="42.6802"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="729" x="1.60017037295" y="0.97995078125" z="1.84685681633">
+        <neutronic p="17.6023" r="4.72647" t="42.8067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="730" x="1.60017037295" y="1.0181328125" z="1.84685681633">
+        <neutronic p="18.4155" r="4.72608" t="42.9385"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="731" x="1.60017037295" y="1.05631484375" z="1.84685681633">
+        <neutronic p="19.2215" r="4.72566" t="43.0755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="732" x="1.60017037295" y="1.094496875" z="1.84685681633">
+        <neutronic p="20.0201" r="4.72521" t="43.2176"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="733" x="1.60017037295" y="1.13267890625" z="1.84685681633">
+        <neutronic p="20.8111" r="4.72474" t="43.3645"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="734" x="1.60017037295" y="1.1708609375" z="1.84685681633">
+        <neutronic p="21.5943" r="4.72424" t="43.5162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="735" x="1.60017037295" y="1.20904296875" z="1.84685681633">
+        <neutronic p="22.3695" r="4.72371" t="43.6725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="736" x="1.60017037295" y="1.247225" z="1.84685681633">
+        <neutronic p="23.1366" r="4.72315" t="43.8332"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="737" x="1.60017037295" y="1.28540703125" z="1.84685681633">
+        <neutronic p="23.8954" r="4.72257" t="43.9982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="738" x="1.60017037295" y="1.3235890625" z="1.84685681633">
+        <neutronic p="24.6458" r="4.72196" t="44.1673"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="739" x="1.60017037295" y="1.36177109375" z="1.84685681633">
+        <neutronic p="25.3876" r="4.72133" t="44.3403"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="740" x="1.60017037295" y="1.399953125" z="1.84685681633">
+        <neutronic p="26.1208" r="4.72066" t="44.5171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="741" x="1.60017037295" y="1.43813515625" z="1.84685681633">
+        <neutronic p="26.8452" r="4.71998" t="44.6976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="742" x="1.60017037295" y="1.4763171875" z="1.84685681633">
+        <neutronic p="27.5608" r="4.71926" t="44.8815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="743" x="1.60017037295" y="1.51449921875" z="1.84685681633">
+        <neutronic p="28.2675" r="4.71852" t="45.0687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="744" x="1.60017037295" y="1.55268125" z="1.84685681633">
+        <neutronic p="28.9653" r="4.71776" t="45.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="745" x="1.60017037295" y="1.59086328125" z="1.84685681633">
+        <neutronic p="29.6541" r="4.71697" t="45.4524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="746" x="1.60017037295" y="1.6290453125" z="1.84685681633">
+        <neutronic p="30.3339" r="4.71616" t="45.6485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="747" x="1.60017037295" y="1.66722734375" z="1.84685681633">
+        <neutronic p="31.0046" r="4.71532" t="45.8473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="748" x="1.60017037295" y="1.705409375" z="1.84685681633">
+        <neutronic p="31.6663" r="4.71445" t="46.0487"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="749" x="1.60017037295" y="1.74359140625" z="1.84685681633">
+        <neutronic p="32.319" r="4.71356" t="46.2524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="750" x="1.60017037295" y="1.7817734375" z="1.84685681633">
+        <neutronic p="32.9627" r="4.71265" t="46.4583"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="751" x="1.60017037295" y="1.81995546875" z="1.84685681633">
+        <neutronic p="33.5974" r="4.71172" t="46.6663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="752" x="1.60017037295" y="1.8581375" z="1.84685681633">
+        <neutronic p="34.2231" r="4.71076" t="46.8762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="753" x="1.60017037295" y="1.89631953125" z="1.84685681633">
+        <neutronic p="34.8399" r="4.70977" t="47.0879"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="773" x="1.68456391863" y="0.21631015625" z="1.77021742352">
+        <neutronic p="0.297953" r="4.72838" t="44.1622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="774" x="1.68456391863" y="0.2544921875" z="1.77021742352">
+        <neutronic p="1.14083" r="4.72855" t="44.1675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="775" x="1.68456391863" y="0.29267421875" z="1.77021742352">
+        <neutronic p="1.98382" r="4.7287" t="44.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="776" x="1.68456391863" y="0.33085625" z="1.77021742352">
+        <neutronic p="2.82657" r="4.72882" t="44.1967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="777" x="1.68456391863" y="0.36903828125" z="1.77021742352">
+        <neutronic p="3.66869" r="4.72891" t="44.2206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="778" x="1.68456391863" y="0.4072203125" z="1.77021742352">
+        <neutronic p="4.50983" r="4.72897" t="44.2506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="779" x="1.68456391863" y="0.44540234375" z="1.77021742352">
+        <neutronic p="5.34962" r="4.729" t="44.2868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="780" x="1.68456391863" y="0.483584375" z="1.77021742352">
+        <neutronic p="6.18768" r="4.72901" t="44.3291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="781" x="1.68456391863" y="0.52176640625" z="1.77021742352">
+        <neutronic p="7.02367" r="4.72898" t="44.3775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="782" x="1.68456391863" y="0.5599484375" z="1.77021742352">
+        <neutronic p="7.85723" r="4.72893" t="44.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="783" x="1.68456391863" y="0.59813046875" z="1.77021742352">
+        <neutronic p="8.68801" r="4.72885" t="44.4923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="784" x="1.68456391863" y="0.6363125" z="1.77021742352">
+        <neutronic p="9.51567" r="4.72874" t="44.5586"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="785" x="1.68456391863" y="0.67449453125" z="1.77021742352">
+        <neutronic p="10.3399" r="4.7286" t="44.6308"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="786" x="1.68456391863" y="0.7126765625" z="1.77021742352">
+        <neutronic p="11.1603" r="4.72843" t="44.7086"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="787" x="1.68456391863" y="0.75085859375" z="1.77021742352">
+        <neutronic p="11.9766" r="4.72824" t="44.7922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="788" x="1.68456391863" y="0.789040625" z="1.77021742352">
+        <neutronic p="12.7886" r="4.72801" t="44.8813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="789" x="1.68456391863" y="0.82722265625" z="1.77021742352">
+        <neutronic p="13.5958" r="4.72776" t="44.9759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="790" x="1.68456391863" y="0.8654046875" z="1.77021742352">
+        <neutronic p="14.3981" r="4.72748" t="45.0759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="791" x="1.68456391863" y="0.90358671875" z="1.77021742352">
+        <neutronic p="15.1951" r="4.72717" t="45.1812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="792" x="1.68456391863" y="0.94176875" z="1.77021742352">
+        <neutronic p="15.9866" r="4.72684" t="45.2916"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="793" x="1.68456391863" y="0.97995078125" z="1.77021742352">
+        <neutronic p="16.7724" r="4.72647" t="45.4071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="794" x="1.68456391863" y="1.0181328125" z="1.77021742352">
+        <neutronic p="17.5521" r="4.72608" t="45.5275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="795" x="1.68456391863" y="1.05631484375" z="1.77021742352">
+        <neutronic p="18.3257" r="4.72566" t="45.6527"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="796" x="1.68456391863" y="1.094496875" z="1.77021742352">
+        <neutronic p="19.0928" r="4.72521" t="45.7825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="797" x="1.68456391863" y="1.13267890625" z="1.77021742352">
+        <neutronic p="19.8532" r="4.72474" t="45.9169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="798" x="1.68456391863" y="1.1708609375" z="1.77021742352">
+        <neutronic p="20.6069" r="4.72424" t="46.0557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="799" x="1.68456391863" y="1.20904296875" z="1.77021742352">
+        <neutronic p="21.3535" r="4.72371" t="46.1987"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="800" x="1.68456391863" y="1.247225" z="1.77021742352">
+        <neutronic p="22.093" r="4.72315" t="46.3459"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="801" x="1.68456391863" y="1.28540703125" z="1.77021742352">
+        <neutronic p="22.8253" r="4.72257" t="46.4971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="802" x="1.68456391863" y="1.3235890625" z="1.77021742352">
+        <neutronic p="23.55" r="4.72196" t="46.6521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="803" x="1.68456391863" y="1.36177109375" z="1.77021742352">
+        <neutronic p="24.2673" r="4.72133" t="46.8108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="804" x="1.68456391863" y="1.399953125" z="1.77021742352">
+        <neutronic p="24.9768" r="4.72066" t="46.973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="805" x="1.68456391863" y="1.43813515625" z="1.77021742352">
+        <neutronic p="25.6786" r="4.71998" t="47.1387"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="806" x="1.68456391863" y="1.4763171875" z="1.77021742352">
+        <neutronic p="26.3726" r="4.71926" t="47.3076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="807" x="1.68456391863" y="1.51449921875" z="1.77021742352">
+        <neutronic p="27.0586" r="4.71852" t="47.4796"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="808" x="1.68456391863" y="1.55268125" z="1.77021742352">
+        <neutronic p="27.7366" r="4.71776" t="47.6546"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="809" x="1.68456391863" y="1.59086328125" z="1.77021742352">
+        <neutronic p="28.4066" r="4.71697" t="47.8325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="810" x="1.68456391863" y="1.6290453125" z="1.77021742352">
+        <neutronic p="29.0685" r="4.71616" t="48.013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="811" x="1.68456391863" y="1.66722734375" z="1.77021742352">
+        <neutronic p="29.7223" r="4.71532" t="48.1961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="812" x="1.68456391863" y="1.705409375" z="1.77021742352">
+        <neutronic p="30.368" r="4.71445" t="48.3816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="813" x="1.68456391863" y="1.74359140625" z="1.77021742352">
+        <neutronic p="31.0055" r="4.71356" t="48.5694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="814" x="1.68456391863" y="1.7817734375" z="1.77021742352">
+        <neutronic p="31.6348" r="4.71265" t="48.7593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="815" x="1.68456391863" y="1.81995546875" z="1.77021742352">
+        <neutronic p="32.256" r="4.71172" t="48.9512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="816" x="1.68456391863" y="1.8581375" z="1.77021742352">
+        <neutronic p="32.869" r="4.71076" t="49.145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="817" x="1.68456391863" y="1.89631953125" z="1.77021742352">
+        <neutronic p="33.4739" r="4.70977" t="49.3405"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="837" x="1.76529127615" y="0.21631015625" z="1.6897254312">
+        <neutronic p="0.284369" r="4.72838" t="46.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="838" x="1.76529127615" y="0.2544921875" z="1.6897254312">
+        <neutronic p="1.08883" r="4.72855" t="46.8888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="839" x="1.76529127615" y="0.29267421875" z="1.6897254312">
+        <neutronic p="1.89344" r="4.7287" t="46.8993"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="840" x="1.76529127615" y="0.33085625" z="1.6897254312">
+        <neutronic p="2.6979" r="4.72882" t="46.9153"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="841" x="1.76529127615" y="0.36903828125" z="1.6897254312">
+        <neutronic p="3.50186" r="4.72891" t="46.9371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="842" x="1.76529127615" y="0.4072203125" z="1.6897254312">
+        <neutronic p="4.30502" r="4.72897" t="46.9644"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="843" x="1.76529127615" y="0.44540234375" z="1.6897254312">
+        <neutronic p="5.10704" r="4.729" t="46.9973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="844" x="1.76529127615" y="0.483584375" z="1.6897254312">
+        <neutronic p="5.90762" r="4.72901" t="47.0358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="845" x="1.76529127615" y="0.52176640625" z="1.6897254312">
+        <neutronic p="6.70644" r="4.72898" t="47.0799"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="846" x="1.76529127615" y="0.5599484375" z="1.6897254312">
+        <neutronic p="7.50319" r="4.72893" t="47.1294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="847" x="1.76529127615" y="0.59813046875" z="1.6897254312">
+        <neutronic p="8.29756" r="4.72885" t="47.1843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="848" x="1.76529127615" y="0.6363125" z="1.6897254312">
+        <neutronic p="9.08925" r="4.72874" t="47.2447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="849" x="1.76529127615" y="0.67449453125" z="1.6897254312">
+        <neutronic p="9.87797" r="4.7286" t="47.3104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="850" x="1.76529127615" y="0.7126765625" z="1.6897254312">
+        <neutronic p="10.6634" r="4.72843" t="47.3813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="851" x="1.76529127615" y="0.75085859375" z="1.6897254312">
+        <neutronic p="11.4454" r="4.72824" t="47.4574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="852" x="1.76529127615" y="0.789040625" z="1.6897254312">
+        <neutronic p="12.2235" r="4.72801" t="47.5386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="853" x="1.76529127615" y="0.82722265625" z="1.6897254312">
+        <neutronic p="12.9975" r="4.72776" t="47.6248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="854" x="1.76529127615" y="0.8654046875" z="1.6897254312">
+        <neutronic p="13.7672" r="4.72748" t="47.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="855" x="1.76529127615" y="0.90358671875" z="1.6897254312">
+        <neutronic p="14.5324" r="4.72717" t="47.812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="856" x="1.76529127615" y="0.94176875" z="1.6897254312">
+        <neutronic p="15.2927" r="4.72684" t="47.9127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="857" x="1.76529127615" y="0.97995078125" z="1.6897254312">
+        <neutronic p="16.0479" r="4.72647" t="48.0181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="858" x="1.76529127615" y="1.0181328125" z="1.6897254312">
+        <neutronic p="16.798" r="4.72608" t="48.128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="859" x="1.76529127615" y="1.05631484375" z="1.6897254312">
+        <neutronic p="17.5425" r="4.72566" t="48.2423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="860" x="1.76529127615" y="1.094496875" z="1.6897254312">
+        <neutronic p="18.2814" r="4.72521" t="48.361"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="861" x="1.76529127615" y="1.13267890625" z="1.6897254312">
+        <neutronic p="19.0145" r="4.72474" t="48.4838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="862" x="1.76529127615" y="1.1708609375" z="1.6897254312">
+        <neutronic p="19.7415" r="4.72424" t="48.6107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="863" x="1.76529127615" y="1.20904296875" z="1.6897254312">
+        <neutronic p="20.4624" r="4.72371" t="48.7415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="864" x="1.76529127615" y="1.247225" z="1.6897254312">
+        <neutronic p="21.1769" r="4.72315" t="48.8761"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="865" x="1.76529127615" y="1.28540703125" z="1.6897254312">
+        <neutronic p="21.8849" r="4.72257" t="49.0145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="866" x="1.76529127615" y="1.3235890625" z="1.6897254312">
+        <neutronic p="22.5863" r="4.72196" t="49.1564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="867" x="1.76529127615" y="1.36177109375" z="1.6897254312">
+        <neutronic p="23.281" r="4.72133" t="49.3018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="868" x="1.76529127615" y="1.399953125" z="1.6897254312">
+        <neutronic p="23.9689" r="4.72066" t="49.4505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="869" x="1.76529127615" y="1.43813515625" z="1.6897254312">
+        <neutronic p="24.6498" r="4.71998" t="49.6023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="870" x="1.76529127615" y="1.4763171875" z="1.6897254312">
+        <neutronic p="25.3237" r="4.71926" t="49.7573"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="871" x="1.76529127615" y="1.51449921875" z="1.6897254312">
+        <neutronic p="25.9904" r="4.71852" t="49.9151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="872" x="1.76529127615" y="1.55268125" z="1.6897254312">
+        <neutronic p="26.65" r="4.71776" t="50.0758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="873" x="1.76529127615" y="1.59086328125" z="1.6897254312">
+        <neutronic p="27.3023" r="4.71697" t="50.2391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="874" x="1.76529127615" y="1.6290453125" z="1.6897254312">
+        <neutronic p="27.9473" r="4.71616" t="50.405"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="875" x="1.76529127615" y="1.66722734375" z="1.6897254312">
+        <neutronic p="28.585" r="4.71532" t="50.5733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="876" x="1.76529127615" y="1.705409375" z="1.6897254312">
+        <neutronic p="29.2153" r="4.71445" t="50.7439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="877" x="1.76529127615" y="1.74359140625" z="1.6897254312">
+        <neutronic p="29.8382" r="4.71356" t="50.9167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="878" x="1.76529127615" y="1.7817734375" z="1.6897254312">
+        <neutronic p="30.4537" r="4.71265" t="51.0915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="879" x="1.76529127615" y="1.81995546875" z="1.6897254312">
+        <neutronic p="31.0617" r="4.71172" t="51.2682"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="880" x="1.76529127615" y="1.8581375" z="1.6897254312">
+        <neutronic p="31.6623" r="4.71076" t="51.4467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="881" x="1.76529127615" y="1.89631953125" z="1.6897254312">
+        <neutronic p="32.2554" r="4.70977" t="51.627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="901" x="1.84217675514" y="0.21631015625" z="1.6055560175">
+        <neutronic p="0.272558" r="4.72838" t="49.6058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="902" x="1.84217675514" y="0.2544921875" z="1.6055560175">
+        <neutronic p="1.04361" r="4.72855" t="49.6101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="903" x="1.84217675514" y="0.29267421875" z="1.6055560175">
+        <neutronic p="1.81485" r="4.7287" t="49.6196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="904" x="1.84217675514" y="0.33085625" z="1.6055560175">
+        <neutronic p="2.586" r="4.72882" t="49.6343"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="905" x="1.84217675514" y="0.36903828125" z="1.6055560175">
+        <neutronic p="3.35675" r="4.72891" t="49.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="906" x="1.84217675514" y="0.4072203125" z="1.6055560175">
+        <neutronic p="4.12684" r="4.72897" t="49.6789"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="907" x="1.84217675514" y="0.44540234375" z="1.6055560175">
+        <neutronic p="4.89598" r="4.729" t="49.7088"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="908" x="1.84217675514" y="0.483584375" z="1.6055560175">
+        <neutronic p="5.66388" r="4.72901" t="49.7438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="909" x="1.84217675514" y="0.52176640625" z="1.6055560175">
+        <neutronic p="6.43027" r="4.72898" t="49.7838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="910" x="1.84217675514" y="0.5599484375" z="1.6055560175">
+        <neutronic p="7.19488" r="4.72893" t="49.8289"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="911" x="1.84217675514" y="0.59813046875" z="1.6055560175">
+        <neutronic p="7.95743" r="4.72885" t="49.8788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="912" x="1.84217675514" y="0.6363125" z="1.6055560175">
+        <neutronic p="8.71765" r="4.72874" t="49.9337"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="913" x="1.84217675514" y="0.67449453125" z="1.6055560175">
+        <neutronic p="9.47529" r="4.7286" t="49.9935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="914" x="1.84217675514" y="0.7126765625" z="1.6055560175">
+        <neutronic p="10.2301" r="4.72843" t="50.058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="915" x="1.84217675514" y="0.75085859375" z="1.6055560175">
+        <neutronic p="10.9818" r="4.72824" t="50.1273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="916" x="1.84217675514" y="0.789040625" z="1.6055560175">
+        <neutronic p="11.7301" r="4.72801" t="50.2012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="917" x="1.84217675514" y="0.82722265625" z="1.6055560175">
+        <neutronic p="12.4749" r="4.72776" t="50.2797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="918" x="1.84217675514" y="0.8654046875" z="1.6055560175">
+        <neutronic p="13.2159" r="4.72748" t="50.3628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="919" x="1.84217675514" y="0.90358671875" z="1.6055560175">
+        <neutronic p="13.9528" r="4.72717" t="50.4502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="920" x="1.84217675514" y="0.94176875" z="1.6055560175">
+        <neutronic p="14.6855" r="4.72684" t="50.542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="921" x="1.84217675514" y="0.97995078125" z="1.6055560175">
+        <neutronic p="15.4137" r="4.72647" t="50.6381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="922" x="1.84217675514" y="1.0181328125" z="1.6055560175">
+        <neutronic p="16.1373" r="4.72608" t="50.7383"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="923" x="1.84217675514" y="1.05631484375" z="1.6055560175">
+        <neutronic p="16.856" r="4.72566" t="50.8425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="924" x="1.84217675514" y="1.094496875" z="1.6055560175">
+        <neutronic p="17.5697" r="4.72521" t="50.9508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="925" x="1.84217675514" y="1.13267890625" z="1.6055560175">
+        <neutronic p="18.2782" r="4.72474" t="51.0628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="926" x="1.84217675514" y="1.1708609375" z="1.6055560175">
+        <neutronic p="18.9814" r="4.72424" t="51.1787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="927" x="1.84217675514" y="1.20904296875" z="1.6055560175">
+        <neutronic p="19.679" r="4.72371" t="51.2981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="928" x="1.84217675514" y="1.247225" z="1.6055560175">
+        <neutronic p="20.3709" r="4.72315" t="51.4211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="929" x="1.84217675514" y="1.28540703125" z="1.6055560175">
+        <neutronic p="21.0571" r="4.72257" t="51.5476"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="930" x="1.84217675514" y="1.3235890625" z="1.6055560175">
+        <neutronic p="21.7373" r="4.72196" t="51.6773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="931" x="1.84217675514" y="1.36177109375" z="1.6055560175">
+        <neutronic p="22.4115" r="4.72133" t="51.8102"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="932" x="1.84217675514" y="1.399953125" z="1.6055560175">
+        <neutronic p="23.0795" r="4.72066" t="51.9462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="933" x="1.84217675514" y="1.43813515625" z="1.6055560175">
+        <neutronic p="23.7412" r="4.71998" t="52.0852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="934" x="1.84217675514" y="1.4763171875" z="1.6055560175">
+        <neutronic p="24.3966" r="4.71926" t="52.227"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="935" x="1.84217675514" y="1.51449921875" z="1.6055560175">
+        <neutronic p="25.0456" r="4.71852" t="52.3716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="936" x="1.84217675514" y="1.55268125" z="1.6055560175">
+        <neutronic p="25.688" r="4.71776" t="52.5188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="937" x="1.84217675514" y="1.59086328125" z="1.6055560175">
+        <neutronic p="26.3239" r="4.71697" t="52.6685"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="938" x="1.84217675514" y="1.6290453125" z="1.6055560175">
+        <neutronic p="26.9531" r="4.71616" t="52.8206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="939" x="1.84217675514" y="1.66722734375" z="1.6055560175">
+        <neutronic p="27.5757" r="4.71532" t="52.9749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="940" x="1.84217675514" y="1.705409375" z="1.6055560175">
+        <neutronic p="28.1915" r="4.71445" t="53.1315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="941" x="1.84217675514" y="1.74359140625" z="1.6055560175">
+        <neutronic p="28.8005" r="4.71356" t="53.29"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="942" x="1.84217675514" y="1.7817734375" z="1.6055560175">
+        <neutronic p="29.4028" r="4.71265" t="53.4505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="943" x="1.84217675514" y="1.81995546875" z="1.6055560175">
+        <neutronic p="29.9982" r="4.71172" t="53.6129"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="944" x="1.84217675514" y="1.8581375" z="1.6055560175">
+        <neutronic p="30.5868" r="4.71076" t="53.777"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="945" x="1.84217675514" y="1.89631953125" z="1.6055560175">
+        <neutronic p="31.1686" r="4.70977" t="53.9426"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="965" x="1.91505302645" y="0.21631015625" z="1.5178923639">
+        <neutronic p="0.262257" r="4.72838" t="52.3276"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="966" x="1.91505302645" y="0.2544921875" z="1.5178923639">
+        <neutronic p="1.00418" r="4.72855" t="52.3315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="967" x="1.91505302645" y="0.29267421875" z="1.5178923639">
+        <neutronic p="1.74631" r="4.7287" t="52.3401"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="968" x="1.91505302645" y="0.33085625" z="1.5178923639">
+        <neutronic p="2.48839" r="4.72882" t="52.3534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="969" x="1.91505302645" y="0.36903828125" z="1.5178923639">
+        <neutronic p="3.23016" r="4.72891" t="52.3713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="970" x="1.91505302645" y="0.4072203125" z="1.5178923639">
+        <neutronic p="3.97138" r="4.72897" t="52.3939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="971" x="1.91505302645" y="0.44540234375" z="1.5178923639">
+        <neutronic p="4.71179" r="4.729" t="52.4211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="972" x="1.91505302645" y="0.483584375" z="1.5178923639">
+        <neutronic p="5.45113" r="4.72901" t="52.4528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="973" x="1.91505302645" y="0.52176640625" z="1.5178923639">
+        <neutronic p="6.18917" r="4.72898" t="52.4892"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="974" x="1.91505302645" y="0.5599484375" z="1.5178923639">
+        <neutronic p="6.92565" r="4.72893" t="52.5301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="975" x="1.91505302645" y="0.59813046875" z="1.5178923639">
+        <neutronic p="7.66032" r="4.72885" t="52.5754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="976" x="1.91505302645" y="0.6363125" z="1.5178923639">
+        <neutronic p="8.39296" r="4.72874" t="52.6253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="977" x="1.91505302645" y="0.67449453125" z="1.5178923639">
+        <neutronic p="9.12331" r="4.7286" t="52.6796"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="978" x="1.91505302645" y="0.7126765625" z="1.5178923639">
+        <neutronic p="9.85116" r="4.72843" t="52.7382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="979" x="1.91505302645" y="0.75085859375" z="1.5178923639">
+        <neutronic p="10.5763" r="4.72824" t="52.8011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="980" x="1.91505302645" y="0.789040625" z="1.5178923639">
+        <neutronic p="11.2984" r="4.72801" t="52.8683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="981" x="1.91505302645" y="0.82722265625" z="1.5178923639">
+        <neutronic p="12.0174" r="4.72776" t="52.9397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="982" x="1.91505302645" y="0.8654046875" z="1.5178923639">
+        <neutronic p="12.733" r="4.72748" t="53.0152"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="983" x="1.91505302645" y="0.90358671875" z="1.5178923639">
+        <neutronic p="13.445" r="4.72717" t="53.0947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="984" x="1.91505302645" y="0.94176875" z="1.5178923639">
+        <neutronic p="14.1532" r="4.72684" t="53.1782"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="985" x="1.91505302645" y="0.97995078125" z="1.5178923639">
+        <neutronic p="14.8574" r="4.72647" t="53.2655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="986" x="1.91505302645" y="1.0181328125" z="1.5178923639">
+        <neutronic p="15.5575" r="4.72608" t="53.3567"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="987" x="1.91505302645" y="1.05631484375" z="1.5178923639">
+        <neutronic p="16.2532" r="4.72566" t="53.4516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="988" x="1.91505302645" y="1.094496875" z="1.5178923639">
+        <neutronic p="16.9444" r="4.72521" t="53.5501"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="989" x="1.91505302645" y="1.13267890625" z="1.5178923639">
+        <neutronic p="17.631" r="4.72474" t="53.6522"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="990" x="1.91505302645" y="1.1708609375" z="1.5178923639">
+        <neutronic p="18.3127" r="4.72424" t="53.7577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="991" x="1.91505302645" y="1.20904296875" z="1.5178923639">
+        <neutronic p="18.9894" r="4.72371" t="53.8665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="992" x="1.91505302645" y="1.247225" z="1.5178923639">
+        <neutronic p="19.6611" r="4.72315" t="53.9786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="993" x="1.91505302645" y="1.28540703125" z="1.5178923639">
+        <neutronic p="20.3275" r="4.72257" t="54.0939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="994" x="1.91505302645" y="1.3235890625" z="1.5178923639">
+        <neutronic p="20.9885" r="4.72196" t="54.2122"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="995" x="1.91505302645" y="1.36177109375" z="1.5178923639">
+        <neutronic p="21.6441" r="4.72133" t="54.3335"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="996" x="1.91505302645" y="1.399953125" z="1.5178923639">
+        <neutronic p="22.294" r="4.72066" t="54.4576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="997" x="1.91505302645" y="1.43813515625" z="1.5178923639">
+        <neutronic p="22.9383" r="4.71998" t="54.5844"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="998" x="1.91505302645" y="1.4763171875" z="1.5178923639">
+        <neutronic p="23.5768" r="4.71926" t="54.7139"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="999" x="1.91505302645" y="1.51449921875" z="1.5178923639">
+        <neutronic p="24.2095" r="4.71852" t="54.846"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1000" x="1.91505302645" y="1.55268125" z="1.5178923639">
+        <neutronic p="24.8362" r="4.71776" t="54.9805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1001" x="1.91505302645" y="1.59086328125" z="1.5178923639">
+        <neutronic p="25.4568" r="4.71697" t="55.1173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1002" x="1.91505302645" y="1.6290453125" z="1.5178923639">
+        <neutronic p="26.0715" r="4.71616" t="55.2563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1003" x="1.91505302645" y="1.66722734375" z="1.5178923639">
+        <neutronic p="26.6799" r="4.71532" t="55.3975"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1004" x="1.91505302645" y="1.705409375" z="1.5178923639">
+        <neutronic p="27.2823" r="4.71445" t="55.5407"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1005" x="1.91505302645" y="1.74359140625" z="1.5178923639">
+        <neutronic p="27.8784" r="4.71356" t="55.6858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1006" x="1.91505302645" y="1.7817734375" z="1.5178923639">
+        <neutronic p="28.4682" r="4.71265" t="55.8328"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1007" x="1.91505302645" y="1.81995546875" z="1.5178923639">
+        <neutronic p="29.0517" r="4.71172" t="55.9814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1008" x="1.91505302645" y="1.8581375" z="1.5178923639">
+        <neutronic p="29.629" r="4.71076" t="56.1317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1009" x="1.91505302645" y="1.89631953125" z="1.5178923639">
+        <neutronic p="30.1999" r="4.70977" t="56.2836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1029" x="1.98376148635" y="0.21631015625" z="1.42692525655">
+        <neutronic p="0.253257" r="4.72838" t="55.0494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1030" x="1.98376148635" y="0.2544921875" z="1.42692525655">
+        <neutronic p="0.969725" r="4.72855" t="55.0529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1031" x="1.98376148635" y="0.29267421875" z="1.42692525655">
+        <neutronic p="1.68641" r="4.7287" t="55.0607"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1032" x="1.98376148635" y="0.33085625" z="1.42692525655">
+        <neutronic p="2.40309" r="4.72882" t="55.0728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1033" x="1.98376148635" y="0.36903828125" z="1.42692525655">
+        <neutronic p="3.11953" r="4.72891" t="55.089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1034" x="1.98376148635" y="0.4072203125" z="1.42692525655">
+        <neutronic p="3.8355" r="4.72897" t="55.1094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1035" x="1.98376148635" y="0.44540234375" z="1.42692525655">
+        <neutronic p="4.55078" r="4.729" t="55.134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1036" x="1.98376148635" y="0.483584375" z="1.42692525655">
+        <neutronic p="5.26513" r="4.72901" t="55.1628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1037" x="1.98376148635" y="0.52176640625" z="1.42692525655">
+        <neutronic p="5.97833" r="4.72898" t="55.1957"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1038" x="1.98376148635" y="0.5599484375" z="1.42692525655">
+        <neutronic p="6.69016" r="4.72893" t="55.2327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1039" x="1.98376148635" y="0.59813046875" z="1.42692525655">
+        <neutronic p="7.4004" r="4.72885" t="55.2738"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1040" x="1.98376148635" y="0.6363125" z="1.42692525655">
+        <neutronic p="8.10882" r="4.72874" t="55.319"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1041" x="1.98376148635" y="0.67449453125" z="1.42692525655">
+        <neutronic p="8.81522" r="4.7286" t="55.3681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1042" x="1.98376148635" y="0.7126765625" z="1.42692525655">
+        <neutronic p="9.51938" r="4.72843" t="55.4212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1043" x="1.98376148635" y="0.75085859375" z="1.42692525655">
+        <neutronic p="10.2211" r="4.72824" t="55.4783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1044" x="1.98376148635" y="0.789040625" z="1.42692525655">
+        <neutronic p="10.9202" r="4.72801" t="55.5392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1045" x="1.98376148635" y="0.82722265625" z="1.42692525655">
+        <neutronic p="11.6164" r="4.72776" t="55.6038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1046" x="1.98376148635" y="0.8654046875" z="1.42692525655">
+        <neutronic p="12.3096" r="4.72748" t="55.6723"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1047" x="1.98376148635" y="0.90358671875" z="1.42692525655">
+        <neutronic p="12.9995" r="4.72717" t="55.7444"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1048" x="1.98376148635" y="0.94176875" z="1.42692525655">
+        <neutronic p="13.686" r="4.72684" t="55.8201"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1049" x="1.98376148635" y="0.97995078125" z="1.42692525655">
+        <neutronic p="14.369" r="4.72647" t="55.8994"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1050" x="1.98376148635" y="1.0181328125" z="1.42692525655">
+        <neutronic p="15.0482" r="4.72608" t="55.9821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1051" x="1.98376148635" y="1.05631484375" z="1.42692525655">
+        <neutronic p="15.7235" r="4.72566" t="56.0682"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1052" x="1.98376148635" y="1.094496875" z="1.42692525655">
+        <neutronic p="16.3947" r="4.72521" t="56.1576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1053" x="1.98376148635" y="1.13267890625" z="1.42692525655">
+        <neutronic p="17.0616" r="4.72474" t="56.2503"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1054" x="1.98376148635" y="1.1708609375" z="1.42692525655">
+        <neutronic p="17.7242" r="4.72424" t="56.3461"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1055" x="1.98376148635" y="1.20904296875" z="1.42692525655">
+        <neutronic p="18.3823" r="4.72371" t="56.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1056" x="1.98376148635" y="1.247225" z="1.42692525655">
+        <neutronic p="19.0357" r="4.72315" t="56.5468"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1057" x="1.98376148635" y="1.28540703125" z="1.42692525655">
+        <neutronic p="19.6843" r="4.72257" t="56.6516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1058" x="1.98376148635" y="1.3235890625" z="1.42692525655">
+        <neutronic p="20.3281" r="4.72196" t="56.7591"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1059" x="1.98376148635" y="1.36177109375" z="1.42692525655">
+        <neutronic p="20.9668" r="4.72133" t="56.8694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1060" x="1.98376148635" y="1.399953125" z="1.42692525655">
+        <neutronic p="21.6005" r="4.72066" t="56.9823"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1061" x="1.98376148635" y="1.43813515625" z="1.42692525655">
+        <neutronic p="22.2289" r="4.71998" t="57.0977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1062" x="1.98376148635" y="1.4763171875" z="1.42692525655">
+        <neutronic p="22.8521" r="4.71926" t="57.2155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1063" x="1.98376148635" y="1.51449921875" z="1.42692525655">
+        <neutronic p="23.4698" r="4.71852" t="57.3357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1064" x="1.98376148635" y="1.55268125" z="1.42692525655">
+        <neutronic p="24.0821" r="4.71776" t="57.4582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1065" x="1.98376148635" y="1.59086328125" z="1.42692525655">
+        <neutronic p="24.6889" r="4.71697" t="57.5828"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1066" x="1.98376148635" y="1.6290453125" z="1.42692525655">
+        <neutronic p="25.2901" r="4.71616" t="57.7094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1067" x="1.98376148635" y="1.66722734375" z="1.42692525655">
+        <neutronic p="25.8856" r="4.71532" t="57.8381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1068" x="1.98376148635" y="1.705409375" z="1.42692525655">
+        <neutronic p="26.4755" r="4.71445" t="57.9686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1069" x="1.98376148635" y="1.74359140625" z="1.42692525655">
+        <neutronic p="27.0595" r="4.71356" t="58.1009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1070" x="1.98376148635" y="1.7817734375" z="1.42692525655">
+        <neutronic p="27.6378" r="4.71265" t="58.235"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1071" x="1.98376148635" y="1.81995546875" z="1.42692525655">
+        <neutronic p="28.2103" r="4.71172" t="58.3706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1072" x="1.98376148635" y="1.8581375" z="1.42692525655">
+        <neutronic p="28.7769" r="4.71076" t="58.5078"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1073" x="1.98376148635" y="1.89631953125" z="1.42692525655">
+        <neutronic p="29.3377" r="4.70977" t="58.6464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1093" x="2.04815260169" y="0.21631015625" z="1.33285267103">
+        <neutronic p="0.24539" r="4.72838" t="57.7711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1094" x="2.04815260169" y="0.2544921875" z="1.33285267103">
+        <neutronic p="0.939605" r="4.72855" t="57.7744"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1095" x="2.04815260169" y="0.29267421875" z="1.33285267103">
+        <neutronic p="1.63405" r="4.7287" t="57.7814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1096" x="2.04815260169" y="0.33085625" z="1.33285267103">
+        <neutronic p="2.32852" r="4.72882" t="57.7923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1097" x="2.04815260169" y="0.36903828125" z="1.33285267103">
+        <neutronic p="3.0228" r="4.72891" t="57.8069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1098" x="2.04815260169" y="0.4072203125" z="1.33285267103">
+        <neutronic p="3.71669" r="4.72897" t="57.8253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1099" x="2.04815260169" y="0.44540234375" z="1.33285267103">
+        <neutronic p="4.40997" r="4.729" t="57.8475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1100" x="2.04815260169" y="0.483584375" z="1.33285267103">
+        <neutronic p="5.10244" r="4.72901" t="57.8735"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1101" x="2.04815260169" y="0.52176640625" z="1.33285267103">
+        <neutronic p="5.79389" r="4.72898" t="57.9031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1102" x="2.04815260169" y="0.5599484375" z="1.33285267103">
+        <neutronic p="6.48413" r="4.72893" t="57.9366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1103" x="2.04815260169" y="0.59813046875" z="1.33285267103">
+        <neutronic p="7.17293" r="4.72885" t="57.9737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1104" x="2.04815260169" y="0.6363125" z="1.33285267103">
+        <neutronic p="7.86012" r="4.72874" t="58.0144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1105" x="2.04815260169" y="0.67449453125" z="1.33285267103">
+        <neutronic p="8.54548" r="4.7286" t="58.0588"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1106" x="2.04815260169" y="0.7126765625" z="1.33285267103">
+        <neutronic p="9.22882" r="4.72843" t="58.1067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1107" x="2.04815260169" y="0.75085859375" z="1.33285267103">
+        <neutronic p="9.90996" r="4.72824" t="58.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1108" x="2.04815260169" y="0.789040625" z="1.33285267103">
+        <neutronic p="10.5887" r="4.72801" t="58.2132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1109" x="2.04815260169" y="0.82722265625" z="1.33285267103">
+        <neutronic p="11.2649" r="4.72776" t="58.2716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1110" x="2.04815260169" y="0.8654046875" z="1.33285267103">
+        <neutronic p="11.9383" r="4.72748" t="58.3334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1111" x="2.04815260169" y="0.90358671875" z="1.33285267103">
+        <neutronic p="12.6088" r="4.72717" t="58.3986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1112" x="2.04815260169" y="0.94176875" z="1.33285267103">
+        <neutronic p="13.2762" r="4.72684" t="58.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1113" x="2.04815260169" y="0.97995078125" z="1.33285267103">
+        <neutronic p="13.9403" r="4.72647" t="58.5386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1114" x="2.04815260169" y="1.0181328125" z="1.33285267103">
+        <neutronic p="14.601" r="4.72608" t="58.6134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1115" x="2.04815260169" y="1.05631484375" z="1.33285267103">
+        <neutronic p="15.2581" r="4.72566" t="58.6912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1116" x="2.04815260169" y="1.094496875" z="1.33285267103">
+        <neutronic p="15.9115" r="4.72521" t="58.7721"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1117" x="2.04815260169" y="1.13267890625" z="1.33285267103">
+        <neutronic p="16.561" r="4.72474" t="58.8559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1118" x="2.04815260169" y="1.1708609375" z="1.33285267103">
+        <neutronic p="17.2066" r="4.72424" t="58.9425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1119" x="2.04815260169" y="1.20904296875" z="1.33285267103">
+        <neutronic p="17.848" r="4.72371" t="59.032"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1120" x="2.04815260169" y="1.247225" z="1.33285267103">
+        <neutronic p="18.4851" r="4.72315" t="59.1241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1121" x="2.04815260169" y="1.28540703125" z="1.33285267103">
+        <neutronic p="19.1178" r="4.72257" t="59.2189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1122" x="2.04815260169" y="1.3235890625" z="1.33285267103">
+        <neutronic p="19.7461" r="4.72196" t="59.3163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1123" x="2.04815260169" y="1.36177109375" z="1.33285267103">
+        <neutronic p="20.3697" r="4.72133" t="59.4161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1124" x="2.04815260169" y="1.399953125" z="1.33285267103">
+        <neutronic p="20.9887" r="4.72066" t="59.5183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1125" x="2.04815260169" y="1.43813515625" z="1.33285267103">
+        <neutronic p="21.6028" r="4.71998" t="59.6229"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1126" x="2.04815260169" y="1.4763171875" z="1.33285267103">
+        <neutronic p="22.2121" r="4.71926" t="59.7297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1127" x="2.04815260169" y="1.51449921875" z="1.33285267103">
+        <neutronic p="22.8164" r="4.71852" t="59.8386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1128" x="2.04815260169" y="1.55268125" z="1.33285267103">
+        <neutronic p="23.4156" r="4.71776" t="59.9496"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1129" x="2.04815260169" y="1.59086328125" z="1.33285267103">
+        <neutronic p="24.0098" r="4.71697" t="60.0626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1130" x="2.04815260169" y="1.6290453125" z="1.33285267103">
+        <neutronic p="24.5987" r="4.71616" t="60.1775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1131" x="2.04815260169" y="1.66722734375" z="1.33285267103">
+        <neutronic p="25.1824" r="4.71532" t="60.2942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1132" x="2.04815260169" y="1.705409375" z="1.33285267103">
+        <neutronic p="25.7608" r="4.71445" t="60.4126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1133" x="2.04815260169" y="1.74359140625" z="1.33285267103">
+        <neutronic p="26.3338" r="4.71356" t="60.5327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1134" x="2.04815260169" y="1.7817734375" z="1.33285267103">
+        <neutronic p="26.9015" r="4.71265" t="60.6544"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1135" x="2.04815260169" y="1.81995546875" z="1.33285267103">
+        <neutronic p="27.4637" r="4.71172" t="60.7776"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1136" x="2.04815260169" y="1.8581375" z="1.33285267103">
+        <neutronic p="28.0205" r="4.71076" t="60.9022"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1137" x="2.04815260169" y="1.89631953125" z="1.33285267103">
+        <neutronic p="28.5717" r="4.70977" t="61.0282"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1157" x="2.10808623536" y="0.21631015625" z="1.23587934152">
+        <neutronic p="0.238518" r="4.72838" t="60.4929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1158" x="2.10808623536" y="0.2544921875" z="1.23587934152">
+        <neutronic p="0.913298" r="4.72855" t="60.4958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1159" x="2.10808623536" y="0.29267421875" z="1.23587934152">
+        <neutronic p="1.58832" r="4.7287" t="60.5022"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1160" x="2.10808623536" y="0.33085625" z="1.23587934152">
+        <neutronic p="2.26338" r="4.72882" t="60.5119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1161" x="2.10808623536" y="0.36903828125" z="1.23587934152">
+        <neutronic p="2.93831" r="4.72891" t="60.525"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1162" x="2.10808623536" y="0.4072203125" z="1.23587934152">
+        <neutronic p="3.61289" r="4.72897" t="60.5416"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1163" x="2.10808623536" y="0.44540234375" z="1.23587934152">
+        <neutronic p="4.28695" r="4.729" t="60.5615"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1164" x="2.10808623536" y="0.483584375" z="1.23587934152">
+        <neutronic p="4.96028" r="4.72901" t="60.5848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1165" x="2.10808623536" y="0.52176640625" z="1.23587934152">
+        <neutronic p="5.63271" r="4.72898" t="60.6115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1166" x="2.10808623536" y="0.5599484375" z="1.23587934152">
+        <neutronic p="6.30403" r="4.72893" t="60.6415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1167" x="2.10808623536" y="0.59813046875" z="1.23587934152">
+        <neutronic p="6.97408" r="4.72885" t="60.6748"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1168" x="2.10808623536" y="0.6363125" z="1.23587934152">
+        <neutronic p="7.64265" r="4.72874" t="60.7114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1169" x="2.10808623536" y="0.67449453125" z="1.23587934152">
+        <neutronic p="8.30957" r="4.7286" t="60.7512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1170" x="2.10808623536" y="0.7126765625" z="1.23587934152">
+        <neutronic p="8.97465" r="4.72843" t="60.7943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1171" x="2.10808623536" y="0.75085859375" z="1.23587934152">
+        <neutronic p="9.63773" r="4.72824" t="60.8406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1172" x="2.10808623536" y="0.789040625" z="1.23587934152">
+        <neutronic p="10.2986" r="4.72801" t="60.8899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1173" x="2.10808623536" y="0.82722265625" z="1.23587934152">
+        <neutronic p="10.9572" r="4.72776" t="60.9424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1174" x="2.10808623536" y="0.8654046875" z="1.23587934152">
+        <neutronic p="11.6132" r="4.72748" t="60.998"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1175" x="2.10808623536" y="0.90358671875" z="1.23587934152">
+        <neutronic p="12.2665" r="4.72717" t="61.0565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1176" x="2.10808623536" y="0.94176875" z="1.23587934152">
+        <neutronic p="12.917" r="4.72684" t="61.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1177" x="2.10808623536" y="0.97995078125" z="1.23587934152">
+        <neutronic p="13.5645" r="4.72647" t="61.1824"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1178" x="2.10808623536" y="1.0181328125" z="1.23587934152">
+        <neutronic p="14.2089" r="4.72608" t="61.2497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1179" x="2.10808623536" y="1.05631484375" z="1.23587934152">
+        <neutronic p="14.85" r="4.72566" t="61.3197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1180" x="2.10808623536" y="1.094496875" z="1.23587934152">
+        <neutronic p="15.4876" r="4.72521" t="61.3924"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1181" x="2.10808623536" y="1.13267890625" z="1.23587934152">
+        <neutronic p="16.1217" r="4.72474" t="61.4678"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1182" x="2.10808623536" y="1.1708609375" z="1.23587934152">
+        <neutronic p="16.7521" r="4.72424" t="61.5457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1183" x="2.10808623536" y="1.20904296875" z="1.23587934152">
+        <neutronic p="17.3786" r="4.72371" t="61.6262"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1184" x="2.10808623536" y="1.247225" z="1.23587934152">
+        <neutronic p="18.0013" r="4.72315" t="61.7092"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1185" x="2.10808623536" y="1.28540703125" z="1.23587934152">
+        <neutronic p="18.6199" r="4.72257" t="61.7945"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1186" x="2.10808623536" y="1.3235890625" z="1.23587934152">
+        <neutronic p="19.2343" r="4.72196" t="61.8822"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1187" x="2.10808623536" y="1.36177109375" z="1.23587934152">
+        <neutronic p="19.8444" r="4.72133" t="61.9721"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1188" x="2.10808623536" y="1.399953125" z="1.23587934152">
+        <neutronic p="20.4502" r="4.72066" t="62.0642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1189" x="2.10808623536" y="1.43813515625" z="1.23587934152">
+        <neutronic p="21.0515" r="4.71998" t="62.1584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1190" x="2.10808623536" y="1.4763171875" z="1.23587934152">
+        <neutronic p="21.6483" r="4.71926" t="62.2546"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1191" x="2.10808623536" y="1.51449921875" z="1.23587934152">
+        <neutronic p="22.2405" r="4.71852" t="62.3528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1192" x="2.10808623536" y="1.55268125" z="1.23587934152">
+        <neutronic p="22.828" r="4.71776" t="62.4529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1193" x="2.10808623536" y="1.59086328125" z="1.23587934152">
+        <neutronic p="23.4106" r="4.71697" t="62.5548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1194" x="2.10808623536" y="1.6290453125" z="1.23587934152">
+        <neutronic p="23.9885" r="4.71616" t="62.6584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1195" x="2.10808623536" y="1.66722734375" z="1.23587934152">
+        <neutronic p="24.5615" r="4.71532" t="62.7637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1196" x="2.10808623536" y="1.705409375" z="1.23587934152">
+        <neutronic p="25.1295" r="4.71445" t="62.8706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1197" x="2.10808623536" y="1.74359140625" z="1.23587934152">
+        <neutronic p="25.6924" r="4.71356" t="62.979"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1198" x="2.10808623536" y="1.7817734375" z="1.23587934152">
+        <neutronic p="26.2504" r="4.71265" t="63.0888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1199" x="2.10808623536" y="1.81995546875" z="1.23587934152">
+        <neutronic p="26.8032" r="4.71172" t="63.2"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1200" x="2.10808623536" y="1.8581375" z="1.23587934152">
+        <neutronic p="27.351" r="4.71076" t="63.3125"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1201" x="2.10808623536" y="1.89631953125" z="1.23587934152">
+        <neutronic p="27.8935" r="4.70977" t="63.4263"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1221" x="2.16343195123" y="0.21631015625" z="1.13621631519">
+        <neutronic p="0.232531" r="4.72838" t="63.2147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1222" x="2.16343195123" y="0.2544921875" z="1.13621631519">
+        <neutronic p="0.890377" r="4.72855" t="63.2173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1223" x="2.16343195123" y="0.29267421875" z="1.13621631519">
+        <neutronic p="1.54847" r="4.7287" t="63.223"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1224" x="2.16343195123" y="0.33085625" z="1.13621631519">
+        <neutronic p="2.20663" r="4.72882" t="63.2316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1225" x="2.16343195123" y="0.36903828125" z="1.13621631519">
+        <neutronic p="2.86468" r="4.72891" t="63.2434"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1226" x="2.16343195123" y="0.4072203125" z="1.13621631519">
+        <neutronic p="3.52244" r="4.72897" t="63.2581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1227" x="2.16343195123" y="0.44540234375" z="1.13621631519">
+        <neutronic p="4.17973" r="4.729" t="63.2759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1228" x="2.16343195123" y="0.483584375" z="1.13621631519">
+        <neutronic p="4.83638" r="4.72901" t="63.2967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1229" x="2.16343195123" y="0.52176640625" z="1.13621631519">
+        <neutronic p="5.4922" r="4.72898" t="63.3205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1230" x="2.16343195123" y="0.5599484375" z="1.13621631519">
+        <neutronic p="6.14703" r="4.72893" t="63.3472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1231" x="2.16343195123" y="0.59813046875" z="1.13621631519">
+        <neutronic p="6.80068" r="4.72885" t="63.377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1232" x="2.16343195123" y="0.6363125" z="1.13621631519">
+        <neutronic p="7.453" r="4.72874" t="63.4096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1233" x="2.16343195123" y="0.67449453125" z="1.13621631519">
+        <neutronic p="8.1038" r="4.7286" t="63.4452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1234" x="2.16343195123" y="0.7126765625" z="1.13621631519">
+        <neutronic p="8.75292" r="4.72843" t="63.4836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1235" x="2.16343195123" y="0.75085859375" z="1.13621631519">
+        <neutronic p="9.40019" r="4.72824" t="63.5249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1236" x="2.16343195123" y="0.789040625" z="1.13621631519">
+        <neutronic p="10.0455" r="4.72801" t="63.569"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1237" x="2.16343195123" y="0.82722265625" z="1.13621631519">
+        <neutronic p="10.6886" r="4.72776" t="63.6159"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1238" x="2.16343195123" y="0.8654046875" z="1.13621631519">
+        <neutronic p="11.3293" r="4.72748" t="63.6655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1239" x="2.16343195123" y="0.90358671875" z="1.13621631519">
+        <neutronic p="11.9676" r="4.72717" t="63.7177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1240" x="2.16343195123" y="0.94176875" z="1.13621631519">
+        <neutronic p="12.6033" r="4.72684" t="63.7727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1241" x="2.16343195123" y="0.97995078125" z="1.13621631519">
+        <neutronic p="13.2362" r="4.72647" t="63.8302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1242" x="2.16343195123" y="1.0181328125" z="1.13621631519">
+        <neutronic p="13.8662" r="4.72608" t="63.8902"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1243" x="2.16343195123" y="1.05631484375" z="1.13621631519">
+        <neutronic p="14.4931" r="4.72566" t="63.9528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1244" x="2.16343195123" y="1.094496875" z="1.13621631519">
+        <neutronic p="15.1169" r="4.72521" t="64.0178"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1245" x="2.16343195123" y="1.13267890625" z="1.13621631519">
+        <neutronic p="15.7373" r="4.72474" t="64.0851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1246" x="2.16343195123" y="1.1708609375" z="1.13621631519">
+        <neutronic p="16.3543" r="4.72424" t="64.1548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1247" x="2.16343195123" y="1.20904296875" z="1.13621631519">
+        <neutronic p="16.9678" r="4.72371" t="64.2268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1248" x="2.16343195123" y="1.247225" z="1.13621631519">
+        <neutronic p="17.5776" r="4.72315" t="64.3009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1249" x="2.16343195123" y="1.28540703125" z="1.13621631519">
+        <neutronic p="18.1836" r="4.72257" t="64.3773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1250" x="2.16343195123" y="1.3235890625" z="1.13621631519">
+        <neutronic p="18.7857" r="4.72196" t="64.4557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1251" x="2.16343195123" y="1.36177109375" z="1.13621631519">
+        <neutronic p="19.3839" r="4.72133" t="64.5361"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1252" x="2.16343195123" y="1.399953125" z="1.13621631519">
+        <neutronic p="19.978" r="4.72066" t="64.6185"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1253" x="2.16343195123" y="1.43813515625" z="1.13621631519">
+        <neutronic p="20.5679" r="4.71998" t="64.7028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1254" x="2.16343195123" y="1.4763171875" z="1.13621631519">
+        <neutronic p="21.1535" r="4.71926" t="64.7889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1255" x="2.16343195123" y="1.51449921875" z="1.13621631519">
+        <neutronic p="21.7348" r="4.71852" t="64.8768"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1256" x="2.16343195123" y="1.55268125" z="1.13621631519">
+        <neutronic p="22.3118" r="4.71776" t="64.9663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1257" x="2.16343195123" y="1.59086328125" z="1.13621631519">
+        <neutronic p="22.8842" r="4.71697" t="65.0576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1258" x="2.16343195123" y="1.6290453125" z="1.13621631519">
+        <neutronic p="23.4521" r="4.71616" t="65.1504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1259" x="2.16343195123" y="1.66722734375" z="1.13621631519">
+        <neutronic p="24.0154" r="4.71532" t="65.2447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1260" x="2.16343195123" y="1.705409375" z="1.13621631519">
+        <neutronic p="24.574" r="4.71445" t="65.3404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1261" x="2.16343195123" y="1.74359140625" z="1.13621631519">
+        <neutronic p="25.128" r="4.71356" t="65.4376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1262" x="2.16343195123" y="1.7817734375" z="1.13621631519">
+        <neutronic p="25.6771" r="4.71265" t="65.536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1263" x="2.16343195123" y="1.81995546875" z="1.13621631519">
+        <neutronic p="26.2215" r="4.71172" t="65.6357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1264" x="2.16343195123" y="1.8581375" z="1.13621631519">
+        <neutronic p="26.761" r="4.71076" t="65.7366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1265" x="2.16343195123" y="1.89631953125" z="1.13621631519">
+        <neutronic p="27.2956" r="4.70977" t="65.8386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1285" x="2.21406929806" y="0.21631015625" z="1.03408049294">
+        <neutronic p="0.227338" r="4.72838" t="65.9365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1286" x="2.21406929806" y="0.2544921875" z="1.03408049294">
+        <neutronic p="0.870495" r="4.72855" t="65.9388"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1287" x="2.21406929806" y="0.29267421875" z="1.03408049294">
+        <neutronic p="1.5139" r="4.7287" t="65.9438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1288" x="2.21406929806" y="0.33085625" z="1.03408049294">
+        <neutronic p="2.15739" r="4.72882" t="65.9515"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1289" x="2.21406929806" y="0.36903828125" z="1.03408049294">
+        <neutronic p="2.8008" r="4.72891" t="65.9618"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1290" x="2.21406929806" y="0.4072203125" z="1.03408049294">
+        <neutronic p="3.44396" r="4.72897" t="65.9749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1291" x="2.21406929806" y="0.44540234375" z="1.03408049294">
+        <neutronic p="4.0867" r="4.729" t="65.9906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1292" x="2.21406929806" y="0.483584375" z="1.03408049294">
+        <neutronic p="4.72886" r="4.72901" t="66.009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1293" x="2.21406929806" y="0.52176640625" z="1.03408049294">
+        <neutronic p="5.37026" r="4.72898" t="66.0301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1294" x="2.21406929806" y="0.5599484375" z="1.03408049294">
+        <neutronic p="6.01076" r="4.72893" t="66.0537"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1295" x="2.21406929806" y="0.59813046875" z="1.03408049294">
+        <neutronic p="6.65018" r="4.72885" t="66.0801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1296" x="2.21406929806" y="0.6363125" z="1.03408049294">
+        <neutronic p="7.28835" r="4.72874" t="66.1089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1297" x="2.21406929806" y="0.67449453125" z="1.03408049294">
+        <neutronic p="7.92514" r="4.7286" t="66.1404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1298" x="2.21406929806" y="0.7126765625" z="1.03408049294">
+        <neutronic p="8.56036" r="4.72843" t="66.1745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1299" x="2.21406929806" y="0.75085859375" z="1.03408049294">
+        <neutronic p="9.19388" r="4.72824" t="66.211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1300" x="2.21406929806" y="0.789040625" z="1.03408049294">
+        <neutronic p="9.82552" r="4.72801" t="66.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1301" x="2.21406929806" y="0.82722265625" z="1.03408049294">
+        <neutronic p="10.4552" r="4.72776" t="66.2915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1302" x="2.21406929806" y="0.8654046875" z="1.03408049294">
+        <neutronic p="11.0826" r="4.72748" t="66.3354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1303" x="2.21406929806" y="0.90358671875" z="1.03408049294">
+        <neutronic p="11.7078" r="4.72717" t="66.3817"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1304" x="2.21406929806" y="0.94176875" z="1.03408049294">
+        <neutronic p="12.3305" r="4.72684" t="66.4303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1305" x="2.21406929806" y="0.97995078125" z="1.03408049294">
+        <neutronic p="12.9507" r="4.72647" t="66.4813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1306" x="2.21406929806" y="1.0181328125" z="1.03408049294">
+        <neutronic p="13.5681" r="4.72608" t="66.5345"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1307" x="2.21406929806" y="1.05631484375" z="1.03408049294">
+        <neutronic p="14.1826" r="4.72566" t="66.5899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1308" x="2.21406929806" y="1.094496875" z="1.03408049294">
+        <neutronic p="14.7942" r="4.72521" t="66.6474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1309" x="2.21406929806" y="1.13267890625" z="1.03408049294">
+        <neutronic p="15.4027" r="4.72474" t="66.7071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1310" x="2.21406929806" y="1.1708609375" z="1.03408049294">
+        <neutronic p="16.008" r="4.72424" t="66.7689"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1311" x="2.21406929806" y="1.20904296875" z="1.03408049294">
+        <neutronic p="16.6099" r="4.72371" t="66.8326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1312" x="2.21406929806" y="1.247225" z="1.03408049294">
+        <neutronic p="17.2084" r="4.72315" t="66.8984"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1313" x="2.21406929806" y="1.28540703125" z="1.03408049294">
+        <neutronic p="17.8034" r="4.72257" t="66.966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1314" x="2.21406929806" y="1.3235890625" z="1.03408049294">
+        <neutronic p="18.3947" r="4.72196" t="67.0355"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1315" x="2.21406929806" y="1.36177109375" z="1.03408049294">
+        <neutronic p="18.9823" r="4.72133" t="67.1068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1316" x="2.21406929806" y="1.399953125" z="1.03408049294">
+        <neutronic p="19.566" r="4.72066" t="67.1799"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1317" x="2.21406929806" y="1.43813515625" z="1.03408049294">
+        <neutronic p="20.1458" r="4.71998" t="67.2547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1318" x="2.21406929806" y="1.4763171875" z="1.03408049294">
+        <neutronic p="20.7216" r="4.71926" t="67.331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1319" x="2.21406929806" y="1.51449921875" z="1.03408049294">
+        <neutronic p="21.2933" r="4.71852" t="67.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1320" x="2.21406929806" y="1.55268125" z="1.03408049294">
+        <neutronic p="21.8609" r="4.71776" t="67.4885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1321" x="2.21406929806" y="1.59086328125" z="1.03408049294">
+        <neutronic p="22.4242" r="4.71697" t="67.5695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1322" x="2.21406929806" y="1.6290453125" z="1.03408049294">
+        <neutronic p="22.9833" r="4.71616" t="67.6519"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1323" x="2.21406929806" y="1.66722734375" z="1.03408049294">
+        <neutronic p="23.5379" r="4.71532" t="67.7356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1324" x="2.21406929806" y="1.705409375" z="1.03408049294">
+        <neutronic p="24.0882" r="4.71445" t="67.8206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1325" x="2.21406929806" y="1.74359140625" z="1.03408049294">
+        <neutronic p="24.634" r="4.71356" t="67.9069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1326" x="2.21406929806" y="1.7817734375" z="1.03408049294">
+        <neutronic p="25.1753" r="4.71265" t="67.9943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1327" x="2.21406929806" y="1.81995546875" z="1.03408049294">
+        <neutronic p="25.7121" r="4.71172" t="68.0829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1328" x="2.21406929806" y="1.8581375" z="1.03408049294">
+        <neutronic p="26.2442" r="4.71076" t="68.1725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1329" x="2.21406929806" y="1.89631953125" z="1.03408049294">
+        <neutronic p="26.7717" r="4.70977" t="68.2632"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1349" x="2.25988807165" y="0.21631015625" z="0.929694157301">
+        <neutronic p="0.222864" r="4.72838" t="68.6583"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1350" x="2.25988807165" y="0.2544921875" z="0.929694157301">
+        <neutronic p="0.853364" r="4.72855" t="68.6603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1351" x="2.25988807165" y="0.29267421875" z="0.929694157301">
+        <neutronic p="1.48412" r="4.7287" t="68.6647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1352" x="2.25988807165" y="0.33085625" z="0.929694157301">
+        <neutronic p="2.11497" r="4.72882" t="68.6714"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1353" x="2.25988807165" y="0.36903828125" z="0.929694157301">
+        <neutronic p="2.74576" r="4.72891" t="68.6805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1354" x="2.25988807165" y="0.4072203125" z="0.929694157301">
+        <neutronic p="3.37633" r="4.72897" t="68.6919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1355" x="2.25988807165" y="0.44540234375" z="0.929694157301">
+        <neutronic p="4.00653" r="4.729" t="68.7057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1356" x="2.25988807165" y="0.483584375" z="0.929694157301">
+        <neutronic p="4.63619" r="4.72901" t="68.7218"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1357" x="2.25988807165" y="0.52176640625" z="0.929694157301">
+        <neutronic p="5.26516" r="4.72898" t="68.7402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1358" x="2.25988807165" y="0.5599484375" z="0.929694157301">
+        <neutronic p="5.89329" r="4.72893" t="68.7609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1359" x="2.25988807165" y="0.59813046875" z="0.929694157301">
+        <neutronic p="6.52042" r="4.72885" t="68.7839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1360" x="2.25988807165" y="0.6363125" z="0.929694157301">
+        <neutronic p="7.1464" r="4.72874" t="68.8092"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1361" x="2.25988807165" y="0.67449453125" z="0.929694157301">
+        <neutronic p="7.77107" r="4.7286" t="68.8368"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1362" x="2.25988807165" y="0.7126765625" z="0.929694157301">
+        <neutronic p="8.3943" r="4.72843" t="68.8665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1363" x="2.25988807165" y="0.75085859375" z="0.929694157301">
+        <neutronic p="9.01592" r="4.72824" t="68.8985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1364" x="2.25988807165" y="0.789040625" z="0.929694157301">
+        <neutronic p="9.6358" r="4.72801" t="68.9327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1365" x="2.25988807165" y="0.82722265625" z="0.929694157301">
+        <neutronic p="10.2538" r="4.72776" t="68.969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1366" x="2.25988807165" y="0.8654046875" z="0.929694157301">
+        <neutronic p="10.8697" r="4.72748" t="69.0075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1367" x="2.25988807165" y="0.90358671875" z="0.929694157301">
+        <neutronic p="11.4835" r="4.72717" t="69.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1368" x="2.25988807165" y="0.94176875" z="0.929694157301">
+        <neutronic p="12.095" r="4.72684" t="69.0906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1369" x="2.25988807165" y="0.97995078125" z="0.929694157301">
+        <neutronic p="12.7041" r="4.72647" t="69.1352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1370" x="2.25988807165" y="1.0181328125" z="0.929694157301">
+        <neutronic p="13.3106" r="4.72608" t="69.1818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1371" x="2.25988807165" y="1.05631484375" z="0.929694157301">
+        <neutronic p="13.9144" r="4.72566" t="69.2303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1372" x="2.25988807165" y="1.094496875" z="0.929694157301">
+        <neutronic p="14.5154" r="4.72521" t="69.2807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1373" x="2.25988807165" y="1.13267890625" z="0.929694157301">
+        <neutronic p="15.1135" r="4.72474" t="69.333"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1374" x="2.25988807165" y="1.1708609375" z="0.929694157301">
+        <neutronic p="15.7086" r="4.72424" t="69.3871"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1375" x="2.25988807165" y="1.20904296875" z="0.929694157301">
+        <neutronic p="16.3005" r="4.72371" t="69.443"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1376" x="2.25988807165" y="1.247225" z="0.929694157301">
+        <neutronic p="16.8892" r="4.72315" t="69.5006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1377" x="2.25988807165" y="1.28540703125" z="0.929694157301">
+        <neutronic p="17.4745" r="4.72257" t="69.5599"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1378" x="2.25988807165" y="1.3235890625" z="0.929694157301">
+        <neutronic p="18.0564" r="4.72196" t="69.6209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1379" x="2.25988807165" y="1.36177109375" z="0.929694157301">
+        <neutronic p="18.6347" r="4.72133" t="69.6834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1380" x="2.25988807165" y="1.399953125" z="0.929694157301">
+        <neutronic p="19.2094" r="4.72066" t="69.7474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1381" x="2.25988807165" y="1.43813515625" z="0.929694157301">
+        <neutronic p="19.7803" r="4.71998" t="69.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1382" x="2.25988807165" y="1.4763171875" z="0.929694157301">
+        <neutronic p="20.3475" r="4.71926" t="69.88"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1383" x="2.25988807165" y="1.51449921875" z="0.929694157301">
+        <neutronic p="20.9108" r="4.71852" t="69.9484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1384" x="2.25988807165" y="1.55268125" z="0.929694157301">
+        <neutronic p="21.4701" r="4.71776" t="70.0181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1385" x="2.25988807165" y="1.59086328125" z="0.929694157301">
+        <neutronic p="22.0254" r="4.71697" t="70.0892"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1386" x="2.25988807165" y="1.6290453125" z="0.929694157301">
+        <neutronic p="22.5767" r="4.71616" t="70.1615"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1387" x="2.25988807165" y="1.66722734375" z="0.929694157301">
+        <neutronic p="23.1238" r="4.71532" t="70.2349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1388" x="2.25988807165" y="1.705409375" z="0.929694157301">
+        <neutronic p="23.6666" r="4.71445" t="70.3096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1389" x="2.25988807165" y="1.74359140625" z="0.929694157301">
+        <neutronic p="24.2053" r="4.71356" t="70.3853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1390" x="2.25988807165" y="1.7817734375" z="0.929694157301">
+        <neutronic p="24.7396" r="4.71265" t="70.4621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1391" x="2.25988807165" y="1.81995546875" z="0.929694157301">
+        <neutronic p="25.2696" r="4.71172" t="70.5398"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1392" x="2.25988807165" y="1.8581375" z="0.929694157301">
+        <neutronic p="25.7952" r="4.71076" t="70.6186"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1393" x="2.25988807165" y="1.89631953125" z="0.929694157301">
+        <neutronic p="26.3164" r="4.70977" t="70.6982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1413" x="2.30078855464" y="0.21631015625" z="0.823284488697">
+        <neutronic p="0.219047" r="4.72838" t="71.3801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1414" x="2.30078855464" y="0.2544921875" z="0.823284488697">
+        <neutronic p="0.83875" r="4.72855" t="71.3819"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1415" x="2.30078855464" y="0.29267421875" z="0.823284488697">
+        <neutronic p="1.45871" r="4.7287" t="71.3856"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1416" x="2.30078855464" y="0.33085625" z="0.823284488697">
+        <neutronic p="2.07878" r="4.72882" t="71.3914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1417" x="2.30078855464" y="0.36903828125" z="0.823284488697">
+        <neutronic p="2.6988" r="4.72891" t="71.3992"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1418" x="2.30078855464" y="0.4072203125" z="0.823284488697">
+        <neutronic p="3.31863" r="4.72897" t="71.4091"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1419" x="2.30078855464" y="0.44540234375" z="0.823284488697">
+        <neutronic p="3.93812" r="4.729" t="71.4209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1420" x="2.30078855464" y="0.483584375" z="0.823284488697">
+        <neutronic p="4.55712" r="4.72901" t="71.4348"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1421" x="2.30078855464" y="0.52176640625" z="0.823284488697">
+        <neutronic p="5.17548" r="4.72898" t="71.4507"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1422" x="2.30078855464" y="0.5599484375" z="0.823284488697">
+        <neutronic p="5.79305" r="4.72893" t="71.4686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1423" x="2.30078855464" y="0.59813046875" z="0.823284488697">
+        <neutronic p="6.40968" r="4.72885" t="71.4884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1424" x="2.30078855464" y="0.6363125" z="0.823284488697">
+        <neutronic p="7.02523" r="4.72874" t="71.5103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1425" x="2.30078855464" y="0.67449453125" z="0.823284488697">
+        <neutronic p="7.63956" r="4.7286" t="71.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1426" x="2.30078855464" y="0.7126765625" z="0.823284488697">
+        <neutronic p="8.25252" r="4.72843" t="71.5597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1427" x="2.30078855464" y="0.75085859375" z="0.823284488697">
+        <neutronic p="8.86397" r="4.72824" t="71.5873"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1428" x="2.30078855464" y="0.789040625" z="0.823284488697">
+        <neutronic p="9.47377" r="4.72801" t="71.6168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1429" x="2.30078855464" y="0.82722265625" z="0.823284488697">
+        <neutronic p="10.0818" r="4.72776" t="71.6481"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1430" x="2.30078855464" y="0.8654046875" z="0.823284488697">
+        <neutronic p="10.6879" r="4.72748" t="71.6813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1431" x="2.30078855464" y="0.90358671875" z="0.823284488697">
+        <neutronic p="11.292" r="4.72717" t="71.7163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1432" x="2.30078855464" y="0.94176875" z="0.823284488697">
+        <neutronic p="11.8938" r="4.72684" t="71.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1433" x="2.30078855464" y="0.97995078125" z="0.823284488697">
+        <neutronic p="12.4934" r="4.72647" t="71.7915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1434" x="2.30078855464" y="1.0181328125" z="0.823284488697">
+        <neutronic p="13.0905" r="4.72608" t="71.8317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1435" x="2.30078855464" y="1.05631484375" z="0.823284488697">
+        <neutronic p="13.6851" r="4.72566" t="71.8736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1436" x="2.30078855464" y="1.094496875" z="0.823284488697">
+        <neutronic p="14.2771" r="4.72521" t="71.9171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1437" x="2.30078855464" y="1.13267890625" z="0.823284488697">
+        <neutronic p="14.8662" r="4.72474" t="71.9623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1438" x="2.30078855464" y="1.1708609375" z="0.823284488697">
+        <neutronic p="15.4525" r="4.72424" t="72.009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1439" x="2.30078855464" y="1.20904296875" z="0.823284488697">
+        <neutronic p="16.0358" r="4.72371" t="72.0572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1440" x="2.30078855464" y="1.247225" z="0.823284488697">
+        <neutronic p="16.616" r="4.72315" t="72.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1441" x="2.30078855464" y="1.28540703125" z="0.823284488697">
+        <neutronic p="17.193" r="4.72257" t="72.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1442" x="2.30078855464" y="1.3235890625" z="0.823284488697">
+        <neutronic p="17.7667" r="4.72196" t="72.2108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1443" x="2.30078855464" y="1.36177109375" z="0.823284488697">
+        <neutronic p="18.337" r="4.72133" t="72.2648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1444" x="2.30078855464" y="1.399953125" z="0.823284488697">
+        <neutronic p="18.9039" r="4.72066" t="72.3202"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1445" x="2.30078855464" y="1.43813515625" z="0.823284488697">
+        <neutronic p="19.4672" r="4.71998" t="72.3768"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1446" x="2.30078855464" y="1.4763171875" z="0.823284488697">
+        <neutronic p="20.0269" r="4.71926" t="72.4347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1447" x="2.30078855464" y="1.51449921875" z="0.823284488697">
+        <neutronic p="20.5829" r="4.71852" t="72.4938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1448" x="2.30078855464" y="1.55268125" z="0.823284488697">
+        <neutronic p="21.1351" r="4.71776" t="72.5541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1449" x="2.30078855464" y="1.59086328125" z="0.823284488697">
+        <neutronic p="21.6835" r="4.71697" t="72.6155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1450" x="2.30078855464" y="1.6290453125" z="0.823284488697">
+        <neutronic p="22.2279" r="4.71616" t="72.6779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1451" x="2.30078855464" y="1.66722734375" z="0.823284488697">
+        <neutronic p="22.7684" r="4.71532" t="72.7415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1452" x="2.30078855464" y="1.705409375" z="0.823284488697">
+        <neutronic p="23.3049" r="4.71445" t="72.806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1453" x="2.30078855464" y="1.74359140625" z="0.823284488697">
+        <neutronic p="23.8372" r="4.71356" t="72.8715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1454" x="2.30078855464" y="1.7817734375" z="0.823284488697">
+        <neutronic p="24.3655" r="4.71265" t="72.9379"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1455" x="2.30078855464" y="1.81995546875" z="0.823284488697">
+        <neutronic p="24.8896" r="4.71172" t="73.0052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1456" x="2.30078855464" y="1.8581375" z="0.823284488697">
+        <neutronic p="25.4095" r="4.71076" t="73.0733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1457" x="2.30078855464" y="1.89631953125" z="0.823284488697">
+        <neutronic p="25.9251" r="4.70977" t="73.1422"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1477" x="2.33668173358" y="0.21631015625" z="0.71508307102">
+        <neutronic p="0.215837" r="4.72838" t="74.1019"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1478" x="2.33668173358" y="0.2544921875" z="0.71508307102">
+        <neutronic p="0.826461" r="4.72855" t="74.1034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1479" x="2.33668173358" y="0.29267421875" z="0.71508307102">
+        <neutronic p="1.43734" r="4.7287" t="74.1066"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1480" x="2.33668173358" y="0.33085625" z="0.71508307102">
+        <neutronic p="2.04834" r="4.72882" t="74.1115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1481" x="2.33668173358" y="0.36903828125" z="0.71508307102">
+        <neutronic p="2.65931" r="4.72891" t="74.1181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1482" x="2.33668173358" y="0.4072203125" z="0.71508307102">
+        <neutronic p="3.27011" r="4.72897" t="74.1264"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1483" x="2.33668173358" y="0.44540234375" z="0.71508307102">
+        <neutronic p="3.88059" r="4.729" t="74.1364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1484" x="2.33668173358" y="0.483584375" z="0.71508307102">
+        <neutronic p="4.49062" r="4.72901" t="74.1482"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1485" x="2.33668173358" y="0.52176640625" z="0.71508307102">
+        <neutronic p="5.10004" r="4.72898" t="74.1616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1486" x="2.33668173358" y="0.5599484375" z="0.71508307102">
+        <neutronic p="5.70872" r="4.72893" t="74.1767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1487" x="2.33668173358" y="0.59813046875" z="0.71508307102">
+        <neutronic p="6.31652" r="4.72885" t="74.1935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1488" x="2.33668173358" y="0.6363125" z="0.71508307102">
+        <neutronic p="6.92329" r="4.72874" t="74.2119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1489" x="2.33668173358" y="0.67449453125" z="0.71508307102">
+        <neutronic p="7.52891" r="4.7286" t="74.232"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1490" x="2.33668173358" y="0.7126765625" z="0.71508307102">
+        <neutronic p="8.13322" r="4.72843" t="74.2538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1491" x="2.33668173358" y="0.75085859375" z="0.71508307102">
+        <neutronic p="8.7361" r="4.72824" t="74.2771"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1492" x="2.33668173358" y="0.789040625" z="0.71508307102">
+        <neutronic p="9.33741" r="4.72801" t="74.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1493" x="2.33668173358" y="0.82722265625" z="0.71508307102">
+        <neutronic p="9.93703" r="4.72776" t="74.3285"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1494" x="2.33668173358" y="0.8654046875" z="0.71508307102">
+        <neutronic p="10.5348" r="4.72748" t="74.3566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1495" x="2.33668173358" y="0.90358671875" z="0.71508307102">
+        <neutronic p="11.1306" r="4.72717" t="74.3862"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1496" x="2.33668173358" y="0.94176875" z="0.71508307102">
+        <neutronic p="11.7244" r="4.72684" t="74.4172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1497" x="2.33668173358" y="0.97995078125" z="0.71508307102">
+        <neutronic p="12.316" r="4.72647" t="74.4498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1498" x="2.33668173358" y="1.0181328125" z="0.71508307102">
+        <neutronic p="12.9052" r="4.72608" t="74.4838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1499" x="2.33668173358" y="1.05631484375" z="0.71508307102">
+        <neutronic p="13.492" r="4.72566" t="74.5192"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1500" x="2.33668173358" y="1.094496875" z="0.71508307102">
+        <neutronic p="14.0762" r="4.72521" t="74.5561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1501" x="2.33668173358" y="1.13267890625" z="0.71508307102">
+        <neutronic p="14.6578" r="4.72474" t="74.5943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1502" x="2.33668173358" y="1.1708609375" z="0.71508307102">
+        <neutronic p="15.2367" r="4.72424" t="74.6338"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1503" x="2.33668173358" y="1.20904296875" z="0.71508307102">
+        <neutronic p="15.8127" r="4.72371" t="74.6746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1504" x="2.33668173358" y="1.247225" z="0.71508307102">
+        <neutronic p="16.3857" r="4.72315" t="74.7167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1505" x="2.33668173358" y="1.28540703125" z="0.71508307102">
+        <neutronic p="16.9556" r="4.72257" t="74.7601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1506" x="2.33668173358" y="1.3235890625" z="0.71508307102">
+        <neutronic p="17.5224" r="4.72196" t="74.8046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1507" x="2.33668173358" y="1.36177109375" z="0.71508307102">
+        <neutronic p="18.0859" r="4.72133" t="74.8503"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1508" x="2.33668173358" y="1.399953125" z="0.71508307102">
+        <neutronic p="18.6462" r="4.72066" t="74.8972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1509" x="2.33668173358" y="1.43813515625" z="0.71508307102">
+        <neutronic p="19.203" r="4.71998" t="74.9452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1510" x="2.33668173358" y="1.4763171875" z="0.71508307102">
+        <neutronic p="19.7563" r="4.71926" t="74.9942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1511" x="2.33668173358" y="1.51449921875" z="0.71508307102">
+        <neutronic p="20.3061" r="4.71852" t="75.0442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1512" x="2.33668173358" y="1.55268125" z="0.71508307102">
+        <neutronic p="20.8522" r="4.71776" t="75.0953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1513" x="2.33668173358" y="1.59086328125" z="0.71508307102">
+        <neutronic p="21.3946" r="4.71697" t="75.1473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1514" x="2.33668173358" y="1.6290453125" z="0.71508307102">
+        <neutronic p="21.9333" r="4.71616" t="75.2002"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1515" x="2.33668173358" y="1.66722734375" z="0.71508307102">
+        <neutronic p="22.4681" r="4.71532" t="75.254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1516" x="2.33668173358" y="1.705409375" z="0.71508307102">
+        <neutronic p="22.9991" r="4.71445" t="75.3087"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1517" x="2.33668173358" y="1.74359140625" z="0.71508307102">
+        <neutronic p="23.5261" r="4.71356" t="75.3642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1518" x="2.33668173358" y="1.7817734375" z="0.71508307102">
+        <neutronic p="24.0492" r="4.71265" t="75.4205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1519" x="2.33668173358" y="1.81995546875" z="0.71508307102">
+        <neutronic p="24.5682" r="4.71172" t="75.4775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1520" x="2.33668173358" y="1.8581375" z="0.71508307102">
+        <neutronic p="25.0832" r="4.71076" t="75.5352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1521" x="2.33668173358" y="1.89631953125" z="0.71508307102">
+        <neutronic p="25.5941" r="4.70977" t="75.5936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1541" x="2.36748949261" y="0.21631015625" z="0.605325387621">
+        <neutronic p="0.213194" r="4.72838" t="76.8237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1542" x="2.36748949261" y="0.2544921875" z="0.605325387621">
+        <neutronic p="0.816342" r="4.72855" t="76.8249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1543" x="2.36748949261" y="0.29267421875" z="0.605325387621">
+        <neutronic p="1.41975" r="4.7287" t="76.8275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1544" x="2.36748949261" y="0.33085625" z="0.605325387621">
+        <neutronic p="2.02328" r="4.72882" t="76.8316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1545" x="2.36748949261" y="0.36903828125" z="0.605325387621">
+        <neutronic p="2.62679" r="4.72891" t="76.837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1546" x="2.36748949261" y="0.4072203125" z="0.605325387621">
+        <neutronic p="3.23015" r="4.72897" t="76.8438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1547" x="2.36748949261" y="0.44540234375" z="0.605325387621">
+        <neutronic p="3.83322" r="4.729" t="76.8521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1548" x="2.36748949261" y="0.483584375" z="0.605325387621">
+        <neutronic p="4.43585" r="4.72901" t="76.8617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1549" x="2.36748949261" y="0.52176640625" z="0.605325387621">
+        <neutronic p="5.03791" r="4.72898" t="76.8728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1550" x="2.36748949261" y="0.5599484375" z="0.605325387621">
+        <neutronic p="5.63927" r="4.72893" t="76.8852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1551" x="2.36748949261" y="0.59813046875" z="0.605325387621">
+        <neutronic p="6.23979" r="4.72885" t="76.899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1552" x="2.36748949261" y="0.6363125" z="0.605325387621">
+        <neutronic p="6.83932" r="4.72874" t="76.9142"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1553" x="2.36748949261" y="0.67449453125" z="0.605325387621">
+        <neutronic p="7.43775" r="4.7286" t="76.9307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1554" x="2.36748949261" y="0.7126765625" z="0.605325387621">
+        <neutronic p="8.03493" r="4.72843" t="76.9485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1555" x="2.36748949261" y="0.75085859375" z="0.605325387621">
+        <neutronic p="8.63074" r="4.72824" t="76.9677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1556" x="2.36748949261" y="0.789040625" z="0.605325387621">
+        <neutronic p="9.22505" r="4.72801" t="76.9882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1557" x="2.36748949261" y="0.82722265625" z="0.605325387621">
+        <neutronic p="9.81773" r="4.72776" t="77.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1558" x="2.36748949261" y="0.8654046875" z="0.605325387621">
+        <neutronic p="10.4086" r="4.72748" t="77.0331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1559" x="2.36748949261" y="0.90358671875" z="0.605325387621">
+        <neutronic p="10.9977" r="4.72717" t="77.0574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1560" x="2.36748949261" y="0.94176875" z="0.605325387621">
+        <neutronic p="11.5847" r="4.72684" t="77.083"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1561" x="2.36748949261" y="0.97995078125" z="0.605325387621">
+        <neutronic p="12.1697" r="4.72647" t="77.1097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1562" x="2.36748949261" y="1.0181328125" z="0.605325387621">
+        <neutronic p="12.7524" r="4.72608" t="77.1377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1563" x="2.36748949261" y="1.05631484375" z="0.605325387621">
+        <neutronic p="13.3327" r="4.72566" t="77.1669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1564" x="2.36748949261" y="1.094496875" z="0.605325387621">
+        <neutronic p="13.9106" r="4.72521" t="77.1972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1565" x="2.36748949261" y="1.13267890625" z="0.605325387621">
+        <neutronic p="14.486" r="4.72474" t="77.2286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1566" x="2.36748949261" y="1.1708609375" z="0.605325387621">
+        <neutronic p="15.0586" r="4.72424" t="77.2611"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1567" x="2.36748949261" y="1.20904296875" z="0.605325387621">
+        <neutronic p="15.6285" r="4.72371" t="77.2947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1568" x="2.36748949261" y="1.247225" z="0.605325387621">
+        <neutronic p="16.1956" r="4.72315" t="77.3293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1569" x="2.36748949261" y="1.28540703125" z="0.605325387621">
+        <neutronic p="16.7597" r="4.72257" t="77.365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1570" x="2.36748949261" y="1.3235890625" z="0.605325387621">
+        <neutronic p="17.3207" r="4.72196" t="77.4016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1571" x="2.36748949261" y="1.36177109375" z="0.605325387621">
+        <neutronic p="17.8786" r="4.72133" t="77.4393"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1572" x="2.36748949261" y="1.399953125" z="0.605325387621">
+        <neutronic p="18.4333" r="4.72066" t="77.4778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1573" x="2.36748949261" y="1.43813515625" z="0.605325387621">
+        <neutronic p="18.9848" r="4.71998" t="77.5173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1574" x="2.36748949261" y="1.4763171875" z="0.605325387621">
+        <neutronic p="19.5328" r="4.71926" t="77.5576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1575" x="2.36748949261" y="1.51449921875" z="0.605325387621">
+        <neutronic p="20.0774" r="4.71852" t="77.5988"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1576" x="2.36748949261" y="1.55268125" z="0.605325387621">
+        <neutronic p="20.6184" r="4.71776" t="77.6409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1577" x="2.36748949261" y="1.59086328125" z="0.605325387621">
+        <neutronic p="21.1559" r="4.71697" t="77.6837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1578" x="2.36748949261" y="1.6290453125" z="0.605325387621">
+        <neutronic p="21.6898" r="4.71616" t="77.7272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1579" x="2.36748949261" y="1.66722734375" z="0.605325387621">
+        <neutronic p="22.2199" r="4.71532" t="77.7716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1580" x="2.36748949261" y="1.705409375" z="0.605325387621">
+        <neutronic p="22.7463" r="4.71445" t="77.8166"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1581" x="2.36748949261" y="1.74359140625" z="0.605325387621">
+        <neutronic p="23.2689" r="4.71356" t="77.8623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1582" x="2.36748949261" y="1.7817734375" z="0.605325387621">
+        <neutronic p="23.7876" r="4.71265" t="77.9086"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1583" x="2.36748949261" y="1.81995546875" z="0.605325387621">
+        <neutronic p="24.3024" r="4.71172" t="77.9556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1584" x="2.36748949261" y="1.8581375" z="0.605325387621">
+        <neutronic p="24.8132" r="4.71076" t="78.0031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1585" x="2.36748949261" y="1.89631953125" z="0.605325387621">
+        <neutronic p="25.3201" r="4.70977" t="78.0512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1605" x="2.39314478349" y="0.21631015625" z="0.494250308817">
+        <neutronic p="0.211085" r="4.72838" t="79.5455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1606" x="2.39314478349" y="0.2544921875" z="0.494250308817">
+        <neutronic p="0.808269" r="4.72855" t="79.5465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1607" x="2.39314478349" y="0.29267421875" z="0.494250308817">
+        <neutronic p="1.40571" r="4.7287" t="79.5485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1608" x="2.39314478349" y="0.33085625" z="0.494250308817">
+        <neutronic p="2.00329" r="4.72882" t="79.5517"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1609" x="2.39314478349" y="0.36903828125" z="0.494250308817">
+        <neutronic p="2.60085" r="4.72891" t="79.556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1610" x="2.39314478349" y="0.4072203125" z="0.494250308817">
+        <neutronic p="3.19827" r="4.72897" t="79.5614"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1611" x="2.39314478349" y="0.44540234375" z="0.494250308817">
+        <neutronic p="3.79542" r="4.729" t="79.5679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1612" x="2.39314478349" y="0.483584375" z="0.494250308817">
+        <neutronic p="4.39215" r="4.72901" t="79.5755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1613" x="2.39314478349" y="0.52176640625" z="0.494250308817">
+        <neutronic p="4.98834" r="4.72898" t="79.5842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1614" x="2.39314478349" y="0.5599484375" z="0.494250308817">
+        <neutronic p="5.58385" r="4.72893" t="79.594"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1615" x="2.39314478349" y="0.59813046875" z="0.494250308817">
+        <neutronic p="6.17855" r="4.72885" t="79.6049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1616" x="2.39314478349" y="0.6363125" z="0.494250308817">
+        <neutronic p="6.77231" r="4.72874" t="79.6168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1617" x="2.39314478349" y="0.67449453125" z="0.494250308817">
+        <neutronic p="7.365" r="4.7286" t="79.6298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1618" x="2.39314478349" y="0.7126765625" z="0.494250308817">
+        <neutronic p="7.95649" r="4.72843" t="79.6439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1619" x="2.39314478349" y="0.75085859375" z="0.494250308817">
+        <neutronic p="8.54665" r="4.72824" t="79.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1620" x="2.39314478349" y="0.789040625" z="0.494250308817">
+        <neutronic p="9.13536" r="4.72801" t="79.6752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1621" x="2.39314478349" y="0.82722265625" z="0.494250308817">
+        <neutronic p="9.72249" r="4.72776" t="79.6924"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1622" x="2.39314478349" y="0.8654046875" z="0.494250308817">
+        <neutronic p="10.3079" r="4.72748" t="79.7106"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1623" x="2.39314478349" y="0.90358671875" z="0.494250308817">
+        <neutronic p="10.8915" r="4.72717" t="79.7297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1624" x="2.39314478349" y="0.94176875" z="0.494250308817">
+        <neutronic p="11.4732" r="4.72684" t="79.7499"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1625" x="2.39314478349" y="0.97995078125" z="0.494250308817">
+        <neutronic p="12.0528" r="4.72647" t="79.771"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1626" x="2.39314478349" y="1.0181328125" z="0.494250308817">
+        <neutronic p="12.6303" r="4.72608" t="79.7931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1627" x="2.39314478349" y="1.05631484375" z="0.494250308817">
+        <neutronic p="13.2055" r="4.72566" t="79.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1628" x="2.39314478349" y="1.094496875" z="0.494250308817">
+        <neutronic p="13.7783" r="4.72521" t="79.8399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1629" x="2.39314478349" y="1.13267890625" z="0.494250308817">
+        <neutronic p="14.3486" r="4.72474" t="79.8647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1630" x="2.39314478349" y="1.1708609375" z="0.494250308817">
+        <neutronic p="14.9164" r="4.72424" t="79.8904"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1631" x="2.39314478349" y="1.20904296875" z="0.494250308817">
+        <neutronic p="15.4814" r="4.72371" t="79.9169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1632" x="2.39314478349" y="1.247225" z="0.494250308817">
+        <neutronic p="16.0437" r="4.72315" t="79.9442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1633" x="2.39314478349" y="1.28540703125" z="0.494250308817">
+        <neutronic p="16.6031" r="4.72257" t="79.9723"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1634" x="2.39314478349" y="1.3235890625" z="0.494250308817">
+        <neutronic p="17.1595" r="4.72196" t="80.0012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1635" x="2.39314478349" y="1.36177109375" z="0.494250308817">
+        <neutronic p="17.7129" r="4.72133" t="80.0309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1636" x="2.39314478349" y="1.399953125" z="0.494250308817">
+        <neutronic p="18.2632" r="4.72066" t="80.0613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1637" x="2.39314478349" y="1.43813515625" z="0.494250308817">
+        <neutronic p="18.8103" r="4.71998" t="80.0925"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1638" x="2.39314478349" y="1.4763171875" z="0.494250308817">
+        <neutronic p="19.354" r="4.71926" t="80.1243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1639" x="2.39314478349" y="1.51449921875" z="0.494250308817">
+        <neutronic p="19.8944" r="4.71852" t="80.1568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1640" x="2.39314478349" y="1.55268125" z="0.494250308817">
+        <neutronic p="20.4314" r="4.71776" t="80.19"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1641" x="2.39314478349" y="1.59086328125" z="0.494250308817">
+        <neutronic p="20.9649" r="4.71697" t="80.2237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1642" x="2.39314478349" y="1.6290453125" z="0.494250308817">
+        <neutronic p="21.4949" r="4.71616" t="80.2581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1643" x="2.39314478349" y="1.66722734375" z="0.494250308817">
+        <neutronic p="22.0212" r="4.71532" t="80.2931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1644" x="2.39314478349" y="1.705409375" z="0.494250308817">
+        <neutronic p="22.5439" r="4.71445" t="80.3286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1645" x="2.39314478349" y="1.74359140625" z="0.494250308817">
+        <neutronic p="23.0629" r="4.71356" t="80.3647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1646" x="2.39314478349" y="1.7817734375" z="0.494250308817">
+        <neutronic p="23.5781" r="4.71265" t="80.4013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1647" x="2.39314478349" y="1.81995546875" z="0.494250308817">
+        <neutronic p="24.0895" r="4.71172" t="80.4384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1648" x="2.39314478349" y="1.8581375" z="0.494250308817">
+        <neutronic p="24.597" r="4.71076" t="80.4759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1649" x="2.39314478349" y="1.89631953125" z="0.494250308817">
+        <neutronic p="25.1006" r="4.70977" t="80.5139"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1669" x="2.41359177152" y="0.21631015625" z="0.38209957203">
+        <neutronic p="0.209486" r="4.72838" t="82.2673"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1670" x="2.41359177152" y="0.2544921875" z="0.38209957203">
+        <neutronic p="0.802147" r="4.72855" t="82.268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1671" x="2.41359177152" y="0.29267421875" z="0.38209957203">
+        <neutronic p="1.39507" r="4.7287" t="82.2695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1672" x="2.41359177152" y="0.33085625" z="0.38209957203">
+        <neutronic p="1.98812" r="4.72882" t="82.2719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1673" x="2.41359177152" y="0.36903828125" z="0.38209957203">
+        <neutronic p="2.58117" r="4.72891" t="82.275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1674" x="2.41359177152" y="0.4072203125" z="0.38209957203">
+        <neutronic p="3.17409" r="4.72897" t="82.279"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1675" x="2.41359177152" y="0.44540234375" z="0.38209957203">
+        <neutronic p="3.76674" r="4.729" t="82.2838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1676" x="2.41359177152" y="0.483584375" z="0.38209957203">
+        <neutronic p="4.359" r="4.72901" t="82.2894"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1677" x="2.41359177152" y="0.52176640625" z="0.38209957203">
+        <neutronic p="4.95073" r="4.72898" t="82.2958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1678" x="2.41359177152" y="0.5599484375" z="0.38209957203">
+        <neutronic p="5.54181" r="4.72893" t="82.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1679" x="2.41359177152" y="0.59813046875" z="0.38209957203">
+        <neutronic p="6.1321" r="4.72885" t="82.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1680" x="2.41359177152" y="0.6363125" z="0.38209957203">
+        <neutronic p="6.72147" r="4.72874" t="82.3198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1681" x="2.41359177152" y="0.67449453125" z="0.38209957203">
+        <neutronic p="7.30981" r="4.7286" t="82.3294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1682" x="2.41359177152" y="0.7126765625" z="0.38209957203">
+        <neutronic p="7.89697" r="4.72843" t="82.3397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1683" x="2.41359177152" y="0.75085859375" z="0.38209957203">
+        <neutronic p="8.48284" r="4.72824" t="82.3509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1684" x="2.41359177152" y="0.789040625" z="0.38209957203">
+        <neutronic p="9.0673" r="4.72801" t="82.3628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1685" x="2.41359177152" y="0.82722265625" z="0.38209957203">
+        <neutronic p="9.65022" r="4.72776" t="82.3754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1686" x="2.41359177152" y="0.8654046875" z="0.38209957203">
+        <neutronic p="10.2315" r="4.72748" t="82.3888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1687" x="2.41359177152" y="0.90358671875" z="0.38209957203">
+        <neutronic p="10.811" r="4.72717" t="82.4029"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1688" x="2.41359177152" y="0.94176875" z="0.38209957203">
+        <neutronic p="11.3886" r="4.72684" t="82.4177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1689" x="2.41359177152" y="0.97995078125" z="0.38209957203">
+        <neutronic p="11.9642" r="4.72647" t="82.4333"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1690" x="2.41359177152" y="1.0181328125" z="0.38209957203">
+        <neutronic p="12.5376" r="4.72608" t="82.4495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1691" x="2.41359177152" y="1.05631484375" z="0.38209957203">
+        <neutronic p="13.1089" r="4.72566" t="82.4664"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1692" x="2.41359177152" y="1.094496875" z="0.38209957203">
+        <neutronic p="13.6778" r="4.72521" t="82.484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1693" x="2.41359177152" y="1.13267890625" z="0.38209957203">
+        <neutronic p="14.2444" r="4.72474" t="82.5023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1694" x="2.41359177152" y="1.1708609375" z="0.38209957203">
+        <neutronic p="14.8083" r="4.72424" t="82.5211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1695" x="2.41359177152" y="1.20904296875" z="0.38209957203">
+        <neutronic p="15.3697" r="4.72371" t="82.5407"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1696" x="2.41359177152" y="1.247225" z="0.38209957203">
+        <neutronic p="15.9283" r="4.72315" t="82.5608"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1697" x="2.41359177152" y="1.28540703125" z="0.38209957203">
+        <neutronic p="16.4842" r="4.72257" t="82.5815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1698" x="2.41359177152" y="1.3235890625" z="0.38209957203">
+        <neutronic p="17.0371" r="4.72196" t="82.6028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1699" x="2.41359177152" y="1.36177109375" z="0.38209957203">
+        <neutronic p="17.587" r="4.72133" t="82.6246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1700" x="2.41359177152" y="1.399953125" z="0.38209957203">
+        <neutronic p="18.1339" r="4.72066" t="82.647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1701" x="2.41359177152" y="1.43813515625" z="0.38209957203">
+        <neutronic p="18.6777" r="4.71998" t="82.67"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1702" x="2.41359177152" y="1.4763171875" z="0.38209957203">
+        <neutronic p="19.2182" r="4.71926" t="82.6934"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1703" x="2.41359177152" y="1.51449921875" z="0.38209957203">
+        <neutronic p="19.7554" r="4.71852" t="82.7174"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1704" x="2.41359177152" y="1.55268125" z="0.38209957203">
+        <neutronic p="20.2893" r="4.71776" t="82.7418"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1705" x="2.41359177152" y="1.59086328125" z="0.38209957203">
+        <neutronic p="20.8198" r="4.71697" t="82.7667"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1706" x="2.41359177152" y="1.6290453125" z="0.38209957203">
+        <neutronic p="21.3468" r="4.71616" t="82.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1707" x="2.41359177152" y="1.66722734375" z="0.38209957203">
+        <neutronic p="21.8702" r="4.71532" t="82.8178"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1708" x="2.41359177152" y="1.705409375" z="0.38209957203">
+        <neutronic p="22.39" r="4.71445" t="82.8439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1709" x="2.41359177152" y="1.74359140625" z="0.38209957203">
+        <neutronic p="22.9062" r="4.71356" t="82.8705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1710" x="2.41359177152" y="1.7817734375" z="0.38209957203">
+        <neutronic p="23.4187" r="4.71265" t="82.8975"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1711" x="2.41359177152" y="1.81995546875" z="0.38209957203">
+        <neutronic p="23.9275" r="4.71172" t="82.9248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1712" x="2.41359177152" y="1.8581375" z="0.38209957203">
+        <neutronic p="24.4325" r="4.71076" t="82.9524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1713" x="2.41359177152" y="1.89631953125" z="0.38209957203">
+        <neutronic p="24.9336" r="4.70977" t="82.9804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1733" x="2.42878595706" y="0.21631015625" z="0.269117255682">
+        <neutronic p="0.208378" r="4.72838" t="84.9891"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1734" x="2.42878595706" y="0.2544921875" z="0.269117255682">
+        <neutronic p="0.797902" r="4.72855" t="84.9896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1735" x="2.42878595706" y="0.29267421875" z="0.269117255682">
+        <neutronic p="1.38769" r="4.7287" t="84.9906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1736" x="2.42878595706" y="0.33085625" z="0.269117255682">
+        <neutronic p="1.97761" r="4.72882" t="84.9921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1737" x="2.42878595706" y="0.36903828125" z="0.269117255682">
+        <neutronic p="2.56753" r="4.72891" t="84.9941"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1738" x="2.42878595706" y="0.4072203125" z="0.269117255682">
+        <neutronic p="3.15733" r="4.72897" t="84.9967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1739" x="2.42878595706" y="0.44540234375" z="0.269117255682">
+        <neutronic p="3.74687" r="4.729" t="84.9997"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1740" x="2.42878595706" y="0.483584375" z="0.269117255682">
+        <neutronic p="4.33602" r="4.72901" t="85.0034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1741" x="2.42878595706" y="0.52176640625" z="0.269117255682">
+        <neutronic p="4.92467" r="4.72898" t="85.0075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1742" x="2.42878595706" y="0.5599484375" z="0.269117255682">
+        <neutronic p="5.51266" r="4.72893" t="85.0121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1743" x="2.42878595706" y="0.59813046875" z="0.269117255682">
+        <neutronic p="6.0999" r="4.72885" t="85.0173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1744" x="2.42878595706" y="0.6363125" z="0.269117255682">
+        <neutronic p="6.68623" r="4.72874" t="85.023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1745" x="2.42878595706" y="0.67449453125" z="0.269117255682">
+        <neutronic p="7.27154" r="4.7286" t="85.0292"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1746" x="2.42878595706" y="0.7126765625" z="0.269117255682">
+        <neutronic p="7.85571" r="4.72843" t="85.0359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1747" x="2.42878595706" y="0.75085859375" z="0.269117255682">
+        <neutronic p="8.4386" r="4.72824" t="85.0431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1748" x="2.42878595706" y="0.789040625" z="0.269117255682">
+        <neutronic p="9.02011" r="4.72801" t="85.0508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1749" x="2.42878595706" y="0.82722265625" z="0.269117255682">
+        <neutronic p="9.6001" r="4.72776" t="85.0589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1750" x="2.42878595706" y="0.8654046875" z="0.269117255682">
+        <neutronic p="10.1785" r="4.72748" t="85.0676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1751" x="2.42878595706" y="0.90358671875" z="0.269117255682">
+        <neutronic p="10.7551" r="4.72717" t="85.0767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1752" x="2.42878595706" y="0.94176875" z="0.269117255682">
+        <neutronic p="11.3299" r="4.72684" t="85.0863"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1753" x="2.42878595706" y="0.97995078125" z="0.269117255682">
+        <neutronic p="11.9027" r="4.72647" t="85.0963"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1754" x="2.42878595706" y="1.0181328125" z="0.269117255682">
+        <neutronic p="12.4734" r="4.72608" t="85.1068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1755" x="2.42878595706" y="1.05631484375" z="0.269117255682">
+        <neutronic p="13.0419" r="4.72566" t="85.1177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1756" x="2.42878595706" y="1.094496875" z="0.269117255682">
+        <neutronic p="13.6082" r="4.72521" t="85.1291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1757" x="2.42878595706" y="1.13267890625" z="0.269117255682">
+        <neutronic p="14.172" r="4.72474" t="85.1409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1758" x="2.42878595706" y="1.1708609375" z="0.269117255682">
+        <neutronic p="14.7334" r="4.72424" t="85.1531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1759" x="2.42878595706" y="1.20904296875" z="0.269117255682">
+        <neutronic p="15.2922" r="4.72371" t="85.1657"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1760" x="2.42878595706" y="1.247225" z="0.269117255682">
+        <neutronic p="15.8483" r="4.72315" t="85.1786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1761" x="2.42878595706" y="1.28540703125" z="0.269117255682">
+        <neutronic p="16.4016" r="4.72257" t="85.192"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1762" x="2.42878595706" y="1.3235890625" z="0.269117255682">
+        <neutronic p="16.9521" r="4.72196" t="85.2058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1763" x="2.42878595706" y="1.36177109375" z="0.269117255682">
+        <neutronic p="17.4997" r="4.72133" t="85.2199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1764" x="2.42878595706" y="1.399953125" z="0.269117255682">
+        <neutronic p="18.0442" r="4.72066" t="85.2344"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1765" x="2.42878595706" y="1.43813515625" z="0.269117255682">
+        <neutronic p="18.5856" r="4.71998" t="85.2492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1766" x="2.42878595706" y="1.4763171875" z="0.269117255682">
+        <neutronic p="19.1239" r="4.71926" t="85.2643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1767" x="2.42878595706" y="1.51449921875" z="0.269117255682">
+        <neutronic p="19.6589" r="4.71852" t="85.2798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1768" x="2.42878595706" y="1.55268125" z="0.269117255682">
+        <neutronic p="20.1906" r="4.71776" t="85.2956"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1769" x="2.42878595706" y="1.59086328125" z="0.269117255682">
+        <neutronic p="20.719" r="4.71697" t="85.3117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1770" x="2.42878595706" y="1.6290453125" z="0.269117255682">
+        <neutronic p="21.2439" r="4.71616" t="85.328"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1771" x="2.42878595706" y="1.66722734375" z="0.269117255682">
+        <neutronic p="21.7653" r="4.71532" t="85.3447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1772" x="2.42878595706" y="1.705409375" z="0.269117255682">
+        <neutronic p="22.2832" r="4.71445" t="85.3616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1773" x="2.42878595706" y="1.74359140625" z="0.269117255682">
+        <neutronic p="22.7975" r="4.71356" t="85.3788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1774" x="2.42878595706" y="1.7817734375" z="0.269117255682">
+        <neutronic p="23.3081" r="4.71265" t="85.3962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1775" x="2.42878595706" y="1.81995546875" z="0.269117255682">
+        <neutronic p="23.815" r="4.71172" t="85.4138"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1776" x="2.42878595706" y="1.8581375" z="0.269117255682">
+        <neutronic p="24.3182" r="4.71076" t="85.4317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1777" x="2.42878595706" y="1.89631953125" z="0.269117255682">
+        <neutronic p="24.8176" r="4.70977" t="85.4498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1797" x="2.43869427234" y="0.21631015625" z="0.155549247996">
+        <neutronic p="0.207747" r="4.72838" t="87.7109"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1798" x="2.43869427234" y="0.2544921875" z="0.155549247996">
+        <neutronic p="0.795488" r="4.72855" t="87.7111"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1799" x="2.43869427234" y="0.29267421875" z="0.155549247996">
+        <neutronic p="1.38349" r="4.7287" t="87.7116"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1800" x="2.43869427234" y="0.33085625" z="0.155549247996">
+        <neutronic p="1.97163" r="4.72882" t="87.7123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1801" x="2.43869427234" y="0.36903828125" z="0.155549247996">
+        <neutronic p="2.55977" r="4.72891" t="87.7132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1802" x="2.43869427234" y="0.4072203125" z="0.155549247996">
+        <neutronic p="3.14779" r="4.72897" t="87.7144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1803" x="2.43869427234" y="0.44540234375" z="0.155549247996">
+        <neutronic p="3.73556" r="4.729" t="87.7158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1804" x="2.43869427234" y="0.483584375" z="0.155549247996">
+        <neutronic p="4.32295" r="4.72901" t="87.7174"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1805" x="2.43869427234" y="0.52176640625" z="0.155549247996">
+        <neutronic p="4.90983" r="4.72898" t="87.7193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1806" x="2.43869427234" y="0.5599484375" z="0.155549247996">
+        <neutronic p="5.49608" r="4.72893" t="87.7214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1807" x="2.43869427234" y="0.59813046875" z="0.155549247996">
+        <neutronic p="6.08157" r="4.72885" t="87.7238"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1808" x="2.43869427234" y="0.6363125" z="0.155549247996">
+        <neutronic p="6.66618" r="4.72874" t="87.7264"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1809" x="2.43869427234" y="0.67449453125" z="0.155549247996">
+        <neutronic p="7.24977" r="4.7286" t="87.7292"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1810" x="2.43869427234" y="0.7126765625" z="0.155549247996">
+        <neutronic p="7.83223" r="4.72843" t="87.7322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1811" x="2.43869427234" y="0.75085859375" z="0.155549247996">
+        <neutronic p="8.41343" r="4.72824" t="87.7355"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1812" x="2.43869427234" y="0.789040625" z="0.155549247996">
+        <neutronic p="8.99326" r="4.72801" t="87.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1813" x="2.43869427234" y="0.82722265625" z="0.155549247996">
+        <neutronic p="9.57159" r="4.72776" t="87.7427"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1814" x="2.43869427234" y="0.8654046875" z="0.155549247996">
+        <neutronic p="10.1483" r="4.72748" t="87.7467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1815" x="2.43869427234" y="0.90358671875" z="0.155549247996">
+        <neutronic p="10.7233" r="4.72717" t="87.7508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1816" x="2.43869427234" y="0.94176875" z="0.155549247996">
+        <neutronic p="11.2965" r="4.72684" t="87.7552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1817" x="2.43869427234" y="0.97995078125" z="0.155549247996">
+        <neutronic p="11.8677" r="4.72647" t="87.7598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1818" x="2.43869427234" y="1.0181328125" z="0.155549247996">
+        <neutronic p="12.4368" r="4.72608" t="87.7646"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1819" x="2.43869427234" y="1.05631484375" z="0.155549247996">
+        <neutronic p="13.0038" r="4.72566" t="87.7696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1820" x="2.43869427234" y="1.094496875" z="0.155549247996">
+        <neutronic p="13.5685" r="4.72521" t="87.7747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1821" x="2.43869427234" y="1.13267890625" z="0.155549247996">
+        <neutronic p="14.1309" r="4.72474" t="87.7801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1822" x="2.43869427234" y="1.1708609375" z="0.155549247996">
+        <neutronic p="14.6907" r="4.72424" t="87.7857"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1823" x="2.43869427234" y="1.20904296875" z="0.155549247996">
+        <neutronic p="15.2481" r="4.72371" t="87.7914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1824" x="2.43869427234" y="1.247225" z="0.155549247996">
+        <neutronic p="15.8027" r="4.72315" t="87.7973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1825" x="2.43869427234" y="1.28540703125" z="0.155549247996">
+        <neutronic p="16.3546" r="4.72257" t="87.8034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1826" x="2.43869427234" y="1.3235890625" z="0.155549247996">
+        <neutronic p="16.9037" r="4.72196" t="87.8097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1827" x="2.43869427234" y="1.36177109375" z="0.155549247996">
+        <neutronic p="17.4499" r="4.72133" t="87.8162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1828" x="2.43869427234" y="1.399953125" z="0.155549247996">
+        <neutronic p="17.9931" r="4.72066" t="87.8228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1829" x="2.43869427234" y="1.43813515625" z="0.155549247996">
+        <neutronic p="18.5332" r="4.71998" t="87.8295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1830" x="2.43869427234" y="1.4763171875" z="0.155549247996">
+        <neutronic p="19.0702" r="4.71926" t="87.8364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1831" x="2.43869427234" y="1.51449921875" z="0.155549247996">
+        <neutronic p="19.604" r="4.71852" t="87.8435"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1832" x="2.43869427234" y="1.55268125" z="0.155549247996">
+        <neutronic p="20.1344" r="4.71776" t="87.8507"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1833" x="2.43869427234" y="1.59086328125" z="0.155549247996">
+        <neutronic p="20.6616" r="4.71697" t="87.858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1834" x="2.43869427234" y="1.6290453125" z="0.155549247996">
+        <neutronic p="21.1853" r="4.71616" t="87.8655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1835" x="2.43869427234" y="1.66722734375" z="0.155549247996">
+        <neutronic p="21.7056" r="4.71532" t="87.8731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1836" x="2.43869427234" y="1.705409375" z="0.155549247996">
+        <neutronic p="22.2223" r="4.71445" t="87.8808"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1837" x="2.43869427234" y="1.74359140625" z="0.155549247996">
+        <neutronic p="22.7355" r="4.71356" t="87.8886"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1838" x="2.43869427234" y="1.7817734375" z="0.155549247996">
+        <neutronic p="23.245" r="4.71265" t="87.8966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1839" x="2.43869427234" y="1.81995546875" z="0.155549247996">
+        <neutronic p="23.7509" r="4.71172" t="87.9046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1840" x="2.43869427234" y="1.8581375" z="0.155549247996">
+        <neutronic p="24.2531" r="4.71076" t="87.9128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1841" x="2.43869427234" y="1.89631953125" z="0.155549247996">
+        <neutronic p="24.7515" r="4.70977" t="87.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1861" x="2.44329515349" y="0.21631015625" z="0.0416427118618">
+        <neutronic p="0.207587" r="4.72838" t="90.4327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1862" x="2.44329515349" y="0.2544921875" z="0.0416427118618">
+        <neutronic p="0.794876" r="4.72855" t="90.4327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1863" x="2.44329515349" y="0.29267421875" z="0.0416427118618">
+        <neutronic p="1.38243" r="4.7287" t="90.4326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1864" x="2.44329515349" y="0.33085625" z="0.0416427118618">
+        <neutronic p="1.97011" r="4.72882" t="90.4325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1865" x="2.44329515349" y="0.36903828125" z="0.0416427118618">
+        <neutronic p="2.5578" r="4.72891" t="90.4323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1866" x="2.44329515349" y="0.4072203125" z="0.0416427118618">
+        <neutronic p="3.14537" r="4.72897" t="90.4321"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1867" x="2.44329515349" y="0.44540234375" z="0.0416427118618">
+        <neutronic p="3.73269" r="4.729" t="90.4318"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1868" x="2.44329515349" y="0.483584375" z="0.0416427118618">
+        <neutronic p="4.31964" r="4.72901" t="90.4315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1869" x="2.44329515349" y="0.52176640625" z="0.0416427118618">
+        <neutronic p="4.90608" r="4.72898" t="90.4311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1870" x="2.44329515349" y="0.5599484375" z="0.0416427118618">
+        <neutronic p="5.49188" r="4.72893" t="90.4307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1871" x="2.44329515349" y="0.59813046875" z="0.0416427118618">
+        <neutronic p="6.07693" r="4.72885" t="90.4303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1872" x="2.44329515349" y="0.6363125" z="0.0416427118618">
+        <neutronic p="6.66109" r="4.72874" t="90.4298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1873" x="2.44329515349" y="0.67449453125" z="0.0416427118618">
+        <neutronic p="7.24425" r="4.7286" t="90.4293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1874" x="2.44329515349" y="0.7126765625" z="0.0416427118618">
+        <neutronic p="7.82627" r="4.72843" t="90.4287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1875" x="2.44329515349" y="0.75085859375" z="0.0416427118618">
+        <neutronic p="8.40705" r="4.72824" t="90.4281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1876" x="2.44329515349" y="0.789040625" z="0.0416427118618">
+        <neutronic p="8.98645" r="4.72801" t="90.4274"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1877" x="2.44329515349" y="0.82722265625" z="0.0416427118618">
+        <neutronic p="9.56436" r="4.72776" t="90.4267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1878" x="2.44329515349" y="0.8654046875" z="0.0416427118618">
+        <neutronic p="10.1407" r="4.72748" t="90.426"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1879" x="2.44329515349" y="0.90358671875" z="0.0416427118618">
+        <neutronic p="10.7152" r="4.72717" t="90.4252"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1880" x="2.44329515349" y="0.94176875" z="0.0416427118618">
+        <neutronic p="11.288" r="4.72684" t="90.4244"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1881" x="2.44329515349" y="0.97995078125" z="0.0416427118618">
+        <neutronic p="11.8588" r="4.72647" t="90.4235"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1882" x="2.44329515349" y="1.0181328125" z="0.0416427118618">
+        <neutronic p="12.4275" r="4.72608" t="90.4226"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1883" x="2.44329515349" y="1.05631484375" z="0.0416427118618">
+        <neutronic p="12.9941" r="4.72566" t="90.4216"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1884" x="2.44329515349" y="1.094496875" z="0.0416427118618">
+        <neutronic p="13.5584" r="4.72521" t="90.4207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1885" x="2.44329515349" y="1.13267890625" z="0.0416427118618">
+        <neutronic p="14.1204" r="4.72474" t="90.4197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1886" x="2.44329515349" y="1.1708609375" z="0.0416427118618">
+        <neutronic p="14.6799" r="4.72424" t="90.4186"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1887" x="2.44329515349" y="1.20904296875" z="0.0416427118618">
+        <neutronic p="15.2369" r="4.72371" t="90.4175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1888" x="2.44329515349" y="1.247225" z="0.0416427118618">
+        <neutronic p="15.7912" r="4.72315" t="90.4164"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1889" x="2.44329515349" y="1.28540703125" z="0.0416427118618">
+        <neutronic p="16.3427" r="4.72257" t="90.4152"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1890" x="2.44329515349" y="1.3235890625" z="0.0416427118618">
+        <neutronic p="16.8915" r="4.72196" t="90.4141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1891" x="2.44329515349" y="1.36177109375" z="0.0416427118618">
+        <neutronic p="17.4373" r="4.72133" t="90.4128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1892" x="2.44329515349" y="1.399953125" z="0.0416427118618">
+        <neutronic p="17.9802" r="4.72066" t="90.4116"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1893" x="2.44329515349" y="1.43813515625" z="0.0416427118618">
+        <neutronic p="18.5199" r="4.71998" t="90.4103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1894" x="2.44329515349" y="1.4763171875" z="0.0416427118618">
+        <neutronic p="19.0566" r="4.71926" t="90.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1895" x="2.44329515349" y="1.51449921875" z="0.0416427118618">
+        <neutronic p="19.59" r="4.71852" t="90.4077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1896" x="2.44329515349" y="1.55268125" z="0.0416427118618">
+        <neutronic p="20.1202" r="4.71776" t="90.4063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1897" x="2.44329515349" y="1.59086328125" z="0.0416427118618">
+        <neutronic p="20.647" r="4.71697" t="90.4049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1898" x="2.44329515349" y="1.6290453125" z="0.0416427118618">
+        <neutronic p="21.1705" r="4.71616" t="90.4035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1899" x="2.44329515349" y="1.66722734375" z="0.0416427118618">
+        <neutronic p="21.6904" r="4.71532" t="90.4021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1900" x="2.44329515349" y="1.705409375" z="0.0416427118618">
+        <neutronic p="22.2069" r="4.71445" t="90.4006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1901" x="2.44329515349" y="1.74359140625" z="0.0416427118618">
+        <neutronic p="22.7198" r="4.71356" t="90.3992"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1902" x="2.44329515349" y="1.7817734375" z="0.0416427118618">
+        <neutronic p="23.229" r="4.71265" t="90.3977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1903" x="2.44329515349" y="1.81995546875" z="0.0416427118618">
+        <neutronic p="23.7347" r="4.71172" t="90.3961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1904" x="2.44329515349" y="1.8581375" z="0.0416427118618">
+        <neutronic p="24.2366" r="4.71076" t="90.3946"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1905" x="2.44329515349" y="1.89631953125" z="0.0416427118618">
+        <neutronic p="24.7348" r="4.70977" t="90.393"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1925" x="2.4425785874" y="0.21631015625" z="-0.0723544530789">
+        <neutronic p="0.207896" r="4.72838" t="93.1545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1926" x="2.4425785874" y="0.2544921875" z="-0.0723544530789">
+        <neutronic p="0.796059" r="4.72855" t="93.1542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1927" x="2.4425785874" y="0.29267421875" z="-0.0723544530789">
+        <neutronic p="1.38448" r="4.7287" t="93.1536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1928" x="2.4425785874" y="0.33085625" z="-0.0723544530789">
+        <neutronic p="1.97304" r="4.72882" t="93.1527"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1929" x="2.4425785874" y="0.36903828125" z="-0.0723544530789">
+        <neutronic p="2.56161" r="4.72891" t="93.1514"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1930" x="2.4425785874" y="0.4072203125" z="-0.0723544530789">
+        <neutronic p="3.15005" r="4.72897" t="93.1498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1931" x="2.4425785874" y="0.44540234375" z="-0.0723544530789">
+        <neutronic p="3.73824" r="4.729" t="93.1479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1932" x="2.4425785874" y="0.483584375" z="-0.0723544530789">
+        <neutronic p="4.32604" r="4.72901" t="93.1456"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1933" x="2.4425785874" y="0.52176640625" z="-0.0723544530789">
+        <neutronic p="4.91334" r="4.72898" t="93.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1934" x="2.4425785874" y="0.5599484375" z="-0.0723544530789">
+        <neutronic p="5.50001" r="4.72893" t="93.1401"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1935" x="2.4425785874" y="0.59813046875" z="-0.0723544530789">
+        <neutronic p="6.08591" r="4.72885" t="93.1368"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1936" x="2.4425785874" y="0.6363125" z="-0.0723544530789">
+        <neutronic p="6.67092" r="4.72874" t="93.1332"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1937" x="2.4425785874" y="0.67449453125" z="-0.0723544530789">
+        <neutronic p="7.25492" r="4.7286" t="93.1293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1938" x="2.4425785874" y="0.7126765625" z="-0.0723544530789">
+        <neutronic p="7.83778" r="4.72843" t="93.1251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1939" x="2.4425785874" y="0.75085859375" z="-0.0723544530789">
+        <neutronic p="8.41939" r="4.72824" t="93.1206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1940" x="2.4425785874" y="0.789040625" z="-0.0723544530789">
+        <neutronic p="8.99961" r="4.72801" t="93.1158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1941" x="2.4425785874" y="0.82722265625" z="-0.0723544530789">
+        <neutronic p="9.57834" r="4.72776" t="93.1107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1942" x="2.4425785874" y="0.8654046875" z="-0.0723544530789">
+        <neutronic p="10.1554" r="4.72748" t="93.1052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1943" x="2.4425785874" y="0.90358671875" z="-0.0723544530789">
+        <neutronic p="10.7308" r="4.72717" t="93.0995"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1944" x="2.4425785874" y="0.94176875" z="-0.0723544530789">
+        <neutronic p="11.3044" r="4.72684" t="93.0935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1945" x="2.4425785874" y="0.97995078125" z="-0.0723544530789">
+        <neutronic p="11.8759" r="4.72647" t="93.0872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1946" x="2.4425785874" y="1.0181328125" z="-0.0723544530789">
+        <neutronic p="12.4455" r="4.72608" t="93.0806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1947" x="2.4425785874" y="1.05631484375" z="-0.0723544530789">
+        <neutronic p="13.0128" r="4.72566" t="93.0737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1948" x="2.4425785874" y="1.094496875" z="-0.0723544530789">
+        <neutronic p="13.5779" r="4.72521" t="93.0666"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1949" x="2.4425785874" y="1.13267890625" z="-0.0723544530789">
+        <neutronic p="14.1406" r="4.72474" t="93.0591"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1950" x="2.4425785874" y="1.1708609375" z="-0.0723544530789">
+        <neutronic p="14.7008" r="4.72424" t="93.0515"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1951" x="2.4425785874" y="1.20904296875" z="-0.0723544530789">
+        <neutronic p="15.2585" r="4.72371" t="93.0436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1952" x="2.4425785874" y="1.247225" z="-0.0723544530789">
+        <neutronic p="15.8135" r="4.72315" t="93.0354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1953" x="2.4425785874" y="1.28540703125" z="-0.0723544530789">
+        <neutronic p="16.3658" r="4.72257" t="93.027"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1954" x="2.4425785874" y="1.3235890625" z="-0.0723544530789">
+        <neutronic p="16.9152" r="4.72196" t="93.0183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1955" x="2.4425785874" y="1.36177109375" z="-0.0723544530789">
+        <neutronic p="17.4617" r="4.72133" t="93.0095"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1956" x="2.4425785874" y="1.399953125" z="-0.0723544530789">
+        <neutronic p="18.0052" r="4.72066" t="93.0004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1957" x="2.4425785874" y="1.43813515625" z="-0.0723544530789">
+        <neutronic p="18.5456" r="4.71998" t="92.991"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1958" x="2.4425785874" y="1.4763171875" z="-0.0723544530789">
+        <neutronic p="19.0829" r="4.71926" t="92.9815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1959" x="2.4425785874" y="1.51449921875" z="-0.0723544530789">
+        <neutronic p="19.617" r="4.71852" t="92.9718"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1960" x="2.4425785874" y="1.55268125" z="-0.0723544530789">
+        <neutronic p="20.1477" r="4.71776" t="92.9619"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1961" x="2.4425785874" y="1.59086328125" z="-0.0723544530789">
+        <neutronic p="20.6752" r="4.71697" t="92.9518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1962" x="2.4425785874" y="1.6290453125" z="-0.0723544530789">
+        <neutronic p="21.1992" r="4.71616" t="92.9415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1963" x="2.4425785874" y="1.66722734375" z="-0.0723544530789">
+        <neutronic p="21.7197" r="4.71532" t="92.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1964" x="2.4425785874" y="1.705409375" z="-0.0723544530789">
+        <neutronic p="22.2367" r="4.71445" t="92.9204"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1965" x="2.4425785874" y="1.74359140625" z="-0.0723544530789">
+        <neutronic p="22.7502" r="4.71356" t="92.9096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1966" x="2.4425785874" y="1.7817734375" z="-0.0723544530789">
+        <neutronic p="23.26" r="4.71265" t="92.8986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1967" x="2.4425785874" y="1.81995546875" z="-0.0723544530789">
+        <neutronic p="23.7661" r="4.71172" t="92.8875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1968" x="2.4425785874" y="1.8581375" z="-0.0723544530789">
+        <neutronic p="24.2685" r="4.71076" t="92.8763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1969" x="2.4425785874" y="1.89631953125" z="-0.0723544530789">
+        <neutronic p="24.7672" r="4.70977" t="92.8649"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1989" x="2.43654613357" y="0.21631015625" z="-0.186194149944">
+        <neutronic p="0.208678" r="4.72838" t="95.8763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1990" x="2.43654613357" y="0.2544921875" z="-0.186194149944">
+        <neutronic p="0.799052" r="4.72855" t="95.8758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1991" x="2.43654613357" y="0.29267421875" z="-0.186194149944">
+        <neutronic p="1.38969" r="4.7287" t="95.8746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1992" x="2.43654613357" y="0.33085625" z="-0.186194149944">
+        <neutronic p="1.98045" r="4.72882" t="95.8729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1993" x="2.43654613357" y="0.36903828125" z="-0.186194149944">
+        <neutronic p="2.57122" r="4.72891" t="95.8705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1994" x="2.43654613357" y="0.4072203125" z="-0.186194149944">
+        <neutronic p="3.16187" r="4.72897" t="95.8675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1995" x="2.43654613357" y="0.44540234375" z="-0.186194149944">
+        <neutronic p="3.75225" r="4.729" t="95.8639"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1996" x="2.43654613357" y="0.483584375" z="-0.186194149944">
+        <neutronic p="4.34225" r="4.72901" t="95.8596"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1997" x="2.43654613357" y="0.52176640625" z="-0.186194149944">
+        <neutronic p="4.93172" r="4.72898" t="95.8548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1998" x="2.43654613357" y="0.5599484375" z="-0.186194149944">
+        <neutronic p="5.52056" r="4.72893" t="95.8493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="1999" x="2.43654613357" y="0.59813046875" z="-0.186194149944">
+        <neutronic p="6.10862" r="4.72885" t="95.8432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2000" x="2.43654613357" y="0.6363125" z="-0.186194149944">
+        <neutronic p="6.69577" r="4.72874" t="95.8366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2001" x="2.43654613357" y="0.67449453125" z="-0.186194149944">
+        <neutronic p="7.2819" r="4.7286" t="95.8293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2002" x="2.43654613357" y="0.7126765625" z="-0.186194149944">
+        <neutronic p="7.86688" r="4.72843" t="95.8214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2003" x="2.43654613357" y="0.75085859375" z="-0.186194149944">
+        <neutronic p="8.45058" r="4.72824" t="95.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2004" x="2.43654613357" y="0.789040625" z="-0.186194149944">
+        <neutronic p="9.03289" r="4.72801" t="95.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2005" x="2.43654613357" y="0.82722265625" z="-0.186194149944">
+        <neutronic p="9.61368" r="4.72776" t="95.7944"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2006" x="2.43654613357" y="0.8654046875" z="-0.186194149944">
+        <neutronic p="10.1928" r="4.72748" t="95.7843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2007" x="2.43654613357" y="0.90358671875" z="-0.186194149944">
+        <neutronic p="10.7702" r="4.72717" t="95.7736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2008" x="2.43654613357" y="0.94176875" z="-0.186194149944">
+        <neutronic p="11.3458" r="4.72684" t="95.7623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2009" x="2.43654613357" y="0.97995078125" z="-0.186194149944">
+        <neutronic p="11.9193" r="4.72647" t="95.7505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2010" x="2.43654613357" y="1.0181328125" z="-0.186194149944">
+        <neutronic p="12.4908" r="4.72608" t="95.7382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2011" x="2.43654613357" y="1.05631484375" z="-0.186194149944">
+        <neutronic p="13.0601" r="4.72566" t="95.7254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2012" x="2.43654613357" y="1.094496875" z="-0.186194149944">
+        <neutronic p="13.627" r="4.72521" t="95.7121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2013" x="2.43654613357" y="1.13267890625" z="-0.186194149944">
+        <neutronic p="14.1916" r="4.72474" t="95.6982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2014" x="2.43654613357" y="1.1708609375" z="-0.186194149944">
+        <neutronic p="14.7537" r="4.72424" t="95.6839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2015" x="2.43654613357" y="1.20904296875" z="-0.186194149944">
+        <neutronic p="15.3132" r="4.72371" t="95.6691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2016" x="2.43654613357" y="1.247225" z="-0.186194149944">
+        <neutronic p="15.87" r="4.72315" t="95.6539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2017" x="2.43654613357" y="1.28540703125" z="-0.186194149944">
+        <neutronic p="16.424" r="4.72257" t="95.6382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2018" x="2.43654613357" y="1.3235890625" z="-0.186194149944">
+        <neutronic p="16.9751" r="4.72196" t="95.622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2019" x="2.43654613357" y="1.36177109375" z="-0.186194149944">
+        <neutronic p="17.5233" r="4.72133" t="95.6054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2020" x="2.43654613357" y="1.399953125" z="-0.186194149944">
+        <neutronic p="18.0685" r="4.72066" t="95.5885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2021" x="2.43654613357" y="1.43813515625" z="-0.186194149944">
+        <neutronic p="18.6106" r="4.71998" t="95.5711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2022" x="2.43654613357" y="1.4763171875" z="-0.186194149944">
+        <neutronic p="19.1494" r="4.71926" t="95.5533"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2023" x="2.43654613357" y="1.51449921875" z="-0.186194149944">
+        <neutronic p="19.6851" r="4.71852" t="95.5351"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2024" x="2.43654613357" y="1.55268125" z="-0.186194149944">
+        <neutronic p="20.2174" r="4.71776" t="95.5166"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2025" x="2.43654613357" y="1.59086328125" z="-0.186194149944">
+        <neutronic p="20.7463" r="4.71697" t="95.4977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2026" x="2.43654613357" y="1.6290453125" z="-0.186194149944">
+        <neutronic p="21.2718" r="4.71616" t="95.4785"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2027" x="2.43654613357" y="1.66722734375" z="-0.186194149944">
+        <neutronic p="21.7937" r="4.71532" t="95.459"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2028" x="2.43654613357" y="1.705409375" z="-0.186194149944">
+        <neutronic p="22.3121" r="4.71445" t="95.4391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2029" x="2.43654613357" y="1.74359140625" z="-0.186194149944">
+        <neutronic p="22.8269" r="4.71356" t="95.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2030" x="2.43654613357" y="1.7817734375" z="-0.186194149944">
+        <neutronic p="23.3381" r="4.71265" t="95.3985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2031" x="2.43654613357" y="1.81995546875" z="-0.186194149944">
+        <neutronic p="23.8455" r="4.71172" t="95.3778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2032" x="2.43654613357" y="1.8581375" z="-0.186194149944">
+        <neutronic p="24.3492" r="4.71076" t="95.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2033" x="2.43654613357" y="1.89631953125" z="-0.186194149944">
+        <neutronic p="24.8491" r="4.70977" t="95.3356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2053" x="2.42521092069" y="0.21631015625" z="-0.299628624556">
+        <neutronic p="0.209941" r="4.72838" t="98.5981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2054" x="2.42521092069" y="0.2544921875" z="-0.299628624556">
+        <neutronic p="0.803887" r="4.72855" t="98.5973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2055" x="2.42521092069" y="0.29267421875" z="-0.299628624556">
+        <neutronic p="1.39809" r="4.7287" t="98.5957"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2056" x="2.42521092069" y="0.33085625" z="-0.299628624556">
+        <neutronic p="1.99243" r="4.72882" t="98.5931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2057" x="2.42521092069" y="0.36903828125" z="-0.299628624556">
+        <neutronic p="2.58676" r="4.72891" t="98.5896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2058" x="2.42521092069" y="0.4072203125" z="-0.299628624556">
+        <neutronic p="3.18096" r="4.72897" t="98.5851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2059" x="2.42521092069" y="0.44540234375" z="-0.299628624556">
+        <neutronic p="3.77489" r="4.729" t="98.5798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2060" x="2.42521092069" y="0.483584375" z="-0.299628624556">
+        <neutronic p="4.36842" r="4.72901" t="98.5736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2061" x="2.42521092069" y="0.52176640625" z="-0.299628624556">
+        <neutronic p="4.96142" r="4.72898" t="98.5664"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2062" x="2.42521092069" y="0.5599484375" z="-0.299628624556">
+        <neutronic p="5.55376" r="4.72893" t="98.5584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2063" x="2.42521092069" y="0.59813046875" z="-0.299628624556">
+        <neutronic p="6.1453" r="4.72885" t="98.5495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2064" x="2.42521092069" y="0.6363125" z="-0.299628624556">
+        <neutronic p="6.73592" r="4.72874" t="98.5397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2065" x="2.42521092069" y="0.67449453125" z="-0.299628624556">
+        <neutronic p="7.3255" r="4.7286" t="98.529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2066" x="2.42521092069" y="0.7126765625" z="-0.299628624556">
+        <neutronic p="7.91389" r="4.72843" t="98.5175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2067" x="2.42521092069" y="0.75085859375" z="-0.299628624556">
+        <neutronic p="8.50098" r="4.72824" t="98.5051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2068" x="2.42521092069" y="0.789040625" z="-0.299628624556">
+        <neutronic p="9.08665" r="4.72801" t="98.4919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2069" x="2.42521092069" y="0.82722265625" z="-0.299628624556">
+        <neutronic p="9.67076" r="4.72776" t="98.4778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2070" x="2.42521092069" y="0.8654046875" z="-0.299628624556">
+        <neutronic p="10.2532" r="4.72748" t="98.4629"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2071" x="2.42521092069" y="0.90358671875" z="-0.299628624556">
+        <neutronic p="10.8339" r="4.72717" t="98.4472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2072" x="2.42521092069" y="0.94176875" z="-0.299628624556">
+        <neutronic p="11.4126" r="4.72684" t="98.4306"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2073" x="2.42521092069" y="0.97995078125" z="-0.299628624556">
+        <neutronic p="11.9894" r="4.72647" t="98.4133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2074" x="2.42521092069" y="1.0181328125" z="-0.299628624556">
+        <neutronic p="12.564" r="4.72608" t="98.3953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2075" x="2.42521092069" y="1.05631484375" z="-0.299628624556">
+        <neutronic p="13.1364" r="4.72566" t="98.3764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2076" x="2.42521092069" y="1.094496875" z="-0.299628624556">
+        <neutronic p="13.7064" r="4.72521" t="98.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2077" x="2.42521092069" y="1.13267890625" z="-0.299628624556">
+        <neutronic p="14.274" r="4.72474" t="98.3365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2078" x="2.42521092069" y="1.1708609375" z="-0.299628624556">
+        <neutronic p="14.839" r="4.72424" t="98.3155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2079" x="2.42521092069" y="1.20904296875" z="-0.299628624556">
+        <neutronic p="15.4015" r="4.72371" t="98.2938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2080" x="2.42521092069" y="1.247225" z="-0.299628624556">
+        <neutronic p="15.9611" r="4.72315" t="98.2714"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2081" x="2.42521092069" y="1.28540703125" z="-0.299628624556">
+        <neutronic p="16.518" r="4.72257" t="98.2483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2082" x="2.42521092069" y="1.3235890625" z="-0.299628624556">
+        <neutronic p="17.0719" r="4.72196" t="98.2246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2083" x="2.42521092069" y="1.36177109375" z="-0.299628624556">
+        <neutronic p="17.6228" r="4.72133" t="98.2003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2084" x="2.42521092069" y="1.399953125" z="-0.299628624556">
+        <neutronic p="18.1707" r="4.72066" t="98.1754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2085" x="2.42521092069" y="1.43813515625" z="-0.299628624556">
+        <neutronic p="18.7154" r="4.71998" t="98.1498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2086" x="2.42521092069" y="1.4763171875" z="-0.299628624556">
+        <neutronic p="19.2568" r="4.71926" t="98.1237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2087" x="2.42521092069" y="1.51449921875" z="-0.299628624556">
+        <neutronic p="19.795" r="4.71852" t="98.0971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2088" x="2.42521092069" y="1.55268125" z="-0.299628624556">
+        <neutronic p="20.3297" r="4.71776" t="98.0699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2089" x="2.42521092069" y="1.59086328125" z="-0.299628624556">
+        <neutronic p="20.8611" r="4.71697" t="98.0422"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2090" x="2.42521092069" y="1.6290453125" z="-0.299628624556">
+        <neutronic p="21.3889" r="4.71616" t="98.014"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2091" x="2.42521092069" y="1.66722734375" z="-0.299628624556">
+        <neutronic p="21.9132" r="4.71532" t="97.9853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2092" x="2.42521092069" y="1.705409375" z="-0.299628624556">
+        <neutronic p="22.4338" r="4.71445" t="97.9561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2093" x="2.42521092069" y="1.74359140625" z="-0.299628624556">
+        <neutronic p="22.9508" r="4.71356" t="97.9266"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2094" x="2.42521092069" y="1.7817734375" z="-0.299628624556">
+        <neutronic p="23.4641" r="4.71265" t="97.8966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2095" x="2.42521092069" y="1.81995546875" z="-0.299628624556">
+        <neutronic p="23.9736" r="4.71172" t="97.8662"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2096" x="2.42521092069" y="1.8581375" z="-0.299628624556">
+        <neutronic p="24.4793" r="4.71076" t="97.8354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2097" x="2.42521092069" y="1.89631953125" z="-0.299628624556">
+        <neutronic p="24.9811" r="4.70977" t="97.8042"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2117" x="2.40859761807" y="0.21631015625" z="-0.412411004639">
+        <neutronic p="0.211699" r="4.72838" t="101.32"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2118" x="2.40859761807" y="0.2544921875" z="-0.412411004639">
+        <neutronic p="0.810621" r="4.72855" t="101.319"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2119" x="2.40859761807" y="0.29267421875" z="-0.412411004639">
+        <neutronic p="1.4098" r="4.7287" t="101.317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2120" x="2.40859761807" y="0.33085625" z="-0.412411004639">
+        <neutronic p="2.00911" r="4.72882" t="101.313"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2121" x="2.40859761807" y="0.36903828125" z="-0.412411004639">
+        <neutronic p="2.60841" r="4.72891" t="101.309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2122" x="2.40859761807" y="0.4072203125" z="-0.412411004639">
+        <neutronic p="3.20756" r="4.72897" t="101.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2123" x="2.40859761807" y="0.44540234375" z="-0.412411004639">
+        <neutronic p="3.80643" r="4.729" t="101.296"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2124" x="2.40859761807" y="0.483584375" z="-0.412411004639">
+        <neutronic p="4.40488" r="4.72901" t="101.287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2125" x="2.40859761807" y="0.52176640625" z="-0.412411004639">
+        <neutronic p="5.00278" r="4.72898" t="101.278"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2126" x="2.40859761807" y="0.5599484375" z="-0.412411004639">
+        <neutronic p="5.59999" r="4.72893" t="101.267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2127" x="2.40859761807" y="0.59813046875" z="-0.412411004639">
+        <neutronic p="6.19639" r="4.72885" t="101.256"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2128" x="2.40859761807" y="0.6363125" z="-0.412411004639">
+        <neutronic p="6.79183" r="4.72874" t="101.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2129" x="2.40859761807" y="0.67449453125" z="-0.412411004639">
+        <neutronic p="7.38619" r="4.7286" t="101.228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2130" x="2.40859761807" y="0.7126765625" z="-0.412411004639">
+        <neutronic p="7.97934" r="4.72843" t="101.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2131" x="2.40859761807" y="0.75085859375" z="-0.412411004639">
+        <neutronic p="8.57115" r="4.72824" t="101.197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2132" x="2.40859761807" y="0.789040625" z="-0.412411004639">
+        <neutronic p="9.16149" r="4.72801" t="101.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2133" x="2.40859761807" y="0.82722265625" z="-0.412411004639">
+        <neutronic p="9.75023" r="4.72776" t="101.161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2134" x="2.40859761807" y="0.8654046875" z="-0.412411004639">
+        <neutronic p="10.3373" r="4.72748" t="101.141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2135" x="2.40859761807" y="0.90358671875" z="-0.412411004639">
+        <neutronic p="10.9225" r="4.72717" t="101.12"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2136" x="2.40859761807" y="0.94176875" z="-0.412411004639">
+        <neutronic p="11.5057" r="4.72684" t="101.098"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2137" x="2.40859761807" y="0.97995078125" z="-0.412411004639">
+        <neutronic p="12.0869" r="4.72647" t="101.075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2138" x="2.40859761807" y="1.0181328125" z="-0.412411004639">
+        <neutronic p="12.6659" r="4.72608" t="101.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2139" x="2.40859761807" y="1.05631484375" z="-0.412411004639">
+        <neutronic p="13.2426" r="4.72566" t="101.026"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2140" x="2.40859761807" y="1.094496875" z="-0.412411004639">
+        <neutronic p="13.8169" r="4.72521" t="101.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2141" x="2.40859761807" y="1.13267890625" z="-0.412411004639">
+        <neutronic p="14.3886" r="4.72474" t="100.974"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2142" x="2.40859761807" y="1.1708609375" z="-0.412411004639">
+        <neutronic p="14.9578" r="4.72424" t="100.946"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2143" x="2.40859761807" y="1.20904296875" z="-0.412411004639">
+        <neutronic p="15.5243" r="4.72371" t="100.917"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2144" x="2.40859761807" y="1.247225" z="-0.412411004639">
+        <neutronic p="16.088" r="4.72315" t="100.887"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2145" x="2.40859761807" y="1.28540703125" z="-0.412411004639">
+        <neutronic p="16.6487" r="4.72257" t="100.857"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2146" x="2.40859761807" y="1.3235890625" z="-0.412411004639">
+        <neutronic p="17.2065" r="4.72196" t="100.826"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2147" x="2.40859761807" y="1.36177109375" z="-0.412411004639">
+        <neutronic p="17.7612" r="4.72133" t="100.793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2148" x="2.40859761807" y="1.399953125" z="-0.412411004639">
+        <neutronic p="18.3128" r="4.72066" t="100.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2149" x="2.40859761807" y="1.43813515625" z="-0.412411004639">
+        <neutronic p="18.8611" r="4.71998" t="100.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2150" x="2.40859761807" y="1.4763171875" z="-0.412411004639">
+        <neutronic p="19.4061" r="4.71926" t="100.692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2151" x="2.40859761807" y="1.51449921875" z="-0.412411004639">
+        <neutronic p="19.9478" r="4.71852" t="100.657"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2152" x="2.40859761807" y="1.55268125" z="-0.412411004639">
+        <neutronic p="20.486" r="4.71776" t="100.621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2153" x="2.40859761807" y="1.59086328125" z="-0.412411004639">
+        <neutronic p="21.0206" r="4.71697" t="100.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2154" x="2.40859761807" y="1.6290453125" z="-0.412411004639">
+        <neutronic p="21.5517" r="4.71616" t="100.547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2155" x="2.40859761807" y="1.66722734375" z="-0.412411004639">
+        <neutronic p="22.0792" r="4.71532" t="100.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2156" x="2.40859761807" y="1.705409375" z="-0.412411004639">
+        <neutronic p="22.6029" r="4.71445" t="100.471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2157" x="2.40859761807" y="1.74359140625" z="-0.412411004639">
+        <neutronic p="23.1229" r="4.71356" t="100.431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2158" x="2.40859761807" y="1.7817734375" z="-0.412411004639">
+        <neutronic p="23.6392" r="4.71265" t="100.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2159" x="2.40859761807" y="1.81995546875" z="-0.412411004639">
+        <neutronic p="24.1515" r="4.71172" t="100.352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2160" x="2.40859761807" y="1.8581375" z="-0.412411004639">
+        <neutronic p="24.66" r="4.71076" t="100.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2161" x="2.40859761807" y="1.89631953125" z="-0.412411004639">
+        <neutronic p="25.1646" r="4.70977" t="100.27"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2181" x="2.38674238193" y="0.21631015625" z="-0.524295837101">
+        <neutronic p="0.213975" r="4.72838" t="104.042"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2182" x="2.38674238193" y="0.2544921875" z="-0.524295837101">
+        <neutronic p="0.819333" r="4.72855" t="104.04"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2183" x="2.38674238193" y="0.29267421875" z="-0.524295837101">
+        <neutronic p="1.42495" r="4.7287" t="104.038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2184" x="2.38674238193" y="0.33085625" z="-0.524295837101">
+        <neutronic p="2.03069" r="4.72882" t="104.033"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2185" x="2.38674238193" y="0.36903828125" z="-0.524295837101">
+        <neutronic p="2.6364" r="4.72891" t="104.028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2186" x="2.38674238193" y="0.4072203125" z="-0.524295837101">
+        <neutronic p="3.24196" r="4.72897" t="104.02"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2187" x="2.38674238193" y="0.44540234375" z="-0.524295837101">
+        <neutronic p="3.84722" r="4.729" t="104.011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2188" x="2.38674238193" y="0.483584375" z="-0.524295837101">
+        <neutronic p="4.45203" r="4.72901" t="104.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2189" x="2.38674238193" y="0.52176640625" z="-0.524295837101">
+        <neutronic p="5.05627" r="4.72898" t="103.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2190" x="2.38674238193" y="0.5599484375" z="-0.524295837101">
+        <neutronic p="5.6598" r="4.72893" t="103.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2191" x="2.38674238193" y="0.59813046875" z="-0.524295837101">
+        <neutronic p="6.26246" r="4.72885" t="103.961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2192" x="2.38674238193" y="0.6363125" z="-0.524295837101">
+        <neutronic p="6.86414" r="4.72874" t="103.945"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2193" x="2.38674238193" y="0.67449453125" z="-0.524295837101">
+        <neutronic p="7.46469" r="4.7286" t="103.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2194" x="2.38674238193" y="0.7126765625" z="-0.524295837101">
+        <neutronic p="8.06398" r="4.72843" t="103.908"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2195" x="2.38674238193" y="0.75085859375" z="-0.524295837101">
+        <neutronic p="8.66188" r="4.72824" t="103.888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2196" x="2.38674238193" y="0.789040625" z="-0.524295837101">
+        <neutronic p="9.25826" r="4.72801" t="103.866"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2197" x="2.38674238193" y="0.82722265625" z="-0.524295837101">
+        <neutronic p="9.85299" r="4.72776" t="103.843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2198" x="2.38674238193" y="0.8654046875" z="-0.524295837101">
+        <neutronic p="10.4459" r="4.72748" t="103.818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2199" x="2.38674238193" y="0.90358671875" z="-0.524295837101">
+        <neutronic p="11.037" r="4.72717" t="103.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2200" x="2.38674238193" y="0.94176875" z="-0.524295837101">
+        <neutronic p="11.626" r="4.72684" t="103.765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2201" x="2.38674238193" y="0.97995078125" z="-0.524295837101">
+        <neutronic p="12.2129" r="4.72647" t="103.736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2202" x="2.38674238193" y="1.0181328125" z="-0.524295837101">
+        <neutronic p="12.7975" r="4.72608" t="103.706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2203" x="2.38674238193" y="1.05631484375" z="-0.524295837101">
+        <neutronic p="13.3798" r="4.72566" t="103.675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2204" x="2.38674238193" y="1.094496875" z="-0.524295837101">
+        <neutronic p="13.9596" r="4.72521" t="103.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2205" x="2.38674238193" y="1.13267890625" z="-0.524295837101">
+        <neutronic p="14.5368" r="4.72474" t="103.609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2206" x="2.38674238193" y="1.1708609375" z="-0.524295837101">
+        <neutronic p="15.1113" r="4.72424" t="103.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2207" x="2.38674238193" y="1.20904296875" z="-0.524295837101">
+        <neutronic p="15.683" r="4.72371" t="103.539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2208" x="2.38674238193" y="1.247225" z="-0.524295837101">
+        <neutronic p="16.2518" r="4.72315" t="103.502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2209" x="2.38674238193" y="1.28540703125" z="-0.524295837101">
+        <neutronic p="16.8176" r="4.72257" t="103.464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2210" x="2.38674238193" y="1.3235890625" z="-0.524295837101">
+        <neutronic p="17.3804" r="4.72196" t="103.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2211" x="2.38674238193" y="1.36177109375" z="-0.524295837101">
+        <neutronic p="17.94" r="4.72133" t="103.384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2212" x="2.38674238193" y="1.399953125" z="-0.524295837101">
+        <neutronic p="18.4963" r="4.72066" t="103.343"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2213" x="2.38674238193" y="1.43813515625" z="-0.524295837101">
+        <neutronic p="19.0493" r="4.71998" t="103.301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2214" x="2.38674238193" y="1.4763171875" z="-0.524295837101">
+        <neutronic p="19.5989" r="4.71926" t="103.258"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2215" x="2.38674238193" y="1.51449921875" z="-0.524295837101">
+        <neutronic p="20.145" r="4.71852" t="103.214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2216" x="2.38674238193" y="1.55268125" z="-0.524295837101">
+        <neutronic p="20.6876" r="4.71776" t="103.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2217" x="2.38674238193" y="1.59086328125" z="-0.524295837101">
+        <neutronic p="21.2265" r="4.71697" t="103.123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2218" x="2.38674238193" y="1.6290453125" z="-0.524295837101">
+        <neutronic p="21.7618" r="4.71616" t="103.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2219" x="2.38674238193" y="1.66722734375" z="-0.524295837101">
+        <neutronic p="22.2934" r="4.71532" t="103.029"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2220" x="2.38674238193" y="1.705409375" z="-0.524295837101">
+        <neutronic p="22.8211" r="4.71445" t="102.981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2221" x="2.38674238193" y="1.74359140625" z="-0.524295837101">
+        <neutronic p="23.345" r="4.71356" t="102.933"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2222" x="2.38674238193" y="1.7817734375" z="-0.524295837101">
+        <neutronic p="23.865" r="4.71265" t="102.883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2223" x="2.38674238193" y="1.81995546875" z="-0.524295837101">
+        <neutronic p="24.3811" r="4.71172" t="102.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2224" x="2.38674238193" y="1.8581375" z="-0.524295837101">
+        <neutronic p="24.8931" r="4.71076" t="102.782"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2225" x="2.38674238193" y="1.89631953125" z="-0.524295837101">
+        <neutronic p="25.4012" r="4.70977" t="102.731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2245" x="2.35969277676" y="0.21631015625" z="-0.635039622217">
+        <neutronic p="0.216794" r="4.72838" t="106.764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2246" x="2.35969277676" y="0.2544921875" z="-0.635039622217">
+        <neutronic p="0.830127" r="4.72855" t="106.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2247" x="2.35969277676" y="0.29267421875" z="-0.635039622217">
+        <neutronic p="1.44372" r="4.7287" t="106.759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2248" x="2.35969277676" y="0.33085625" z="-0.635039622217">
+        <neutronic p="2.05742" r="4.72882" t="106.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2249" x="2.35969277676" y="0.36903828125" z="-0.635039622217">
+        <neutronic p="2.67109" r="4.72891" t="106.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2250" x="2.35969277676" y="0.4072203125" z="-0.635039622217">
+        <neutronic p="3.28458" r="4.72897" t="106.738"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2251" x="2.35969277676" y="0.44540234375" z="-0.635039622217">
+        <neutronic p="3.89775" r="4.729" t="106.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2252" x="2.35969277676" y="0.483584375" z="-0.635039622217">
+        <neutronic p="4.51046" r="4.72901" t="106.715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2253" x="2.35969277676" y="0.52176640625" z="-0.635039622217">
+        <neutronic p="5.12254" r="4.72898" t="106.7"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2254" x="2.35969277676" y="0.5599484375" z="-0.635039622217">
+        <neutronic p="5.73388" r="4.72893" t="106.684"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2255" x="2.35969277676" y="0.59813046875" z="-0.635039622217">
+        <neutronic p="6.34431" r="4.72885" t="106.667"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2256" x="2.35969277676" y="0.6363125" z="-0.635039622217">
+        <neutronic p="6.9537" r="4.72874" t="106.647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2257" x="2.35969277676" y="0.67449453125" z="-0.635039622217">
+        <neutronic p="7.56192" r="4.7286" t="106.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2258" x="2.35969277676" y="0.7126765625" z="-0.635039622217">
+        <neutronic p="8.16881" r="4.72843" t="106.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2259" x="2.35969277676" y="0.75085859375" z="-0.635039622217">
+        <neutronic p="8.77425" r="4.72824" t="106.578"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2260" x="2.35969277676" y="0.789040625" z="-0.635039622217">
+        <neutronic p="9.3781" r="4.72801" t="106.552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2261" x="2.35969277676" y="0.82722265625" z="-0.635039622217">
+        <neutronic p="9.98022" r="4.72776" t="106.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2262" x="2.35969277676" y="0.8654046875" z="-0.635039622217">
+        <neutronic p="10.5805" r="4.72748" t="106.494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2263" x="2.35969277676" y="0.90358671875" z="-0.635039622217">
+        <neutronic p="11.1788" r="4.72717" t="106.463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2264" x="2.35969277676" y="0.94176875" z="-0.635039622217">
+        <neutronic p="11.775" r="4.72684" t="106.43"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2265" x="2.35969277676" y="0.97995078125" z="-0.635039622217">
+        <neutronic p="12.3689" r="4.72647" t="106.396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2266" x="2.35969277676" y="1.0181328125" z="-0.635039622217">
+        <neutronic p="12.9605" r="4.72608" t="106.36"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2267" x="2.35969277676" y="1.05631484375" z="-0.635039622217">
+        <neutronic p="13.5496" r="4.72566" t="106.322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2268" x="2.35969277676" y="1.094496875" z="-0.635039622217">
+        <neutronic p="14.1362" r="4.72521" t="106.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2269" x="2.35969277676" y="1.13267890625" z="-0.635039622217">
+        <neutronic p="14.72" r="4.72474" t="106.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2270" x="2.35969277676" y="1.1708609375" z="-0.635039622217">
+        <neutronic p="15.3011" r="4.72424" t="106.201"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2271" x="2.35969277676" y="1.20904296875" z="-0.635039622217">
+        <neutronic p="15.8793" r="4.72371" t="106.158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2272" x="2.35969277676" y="1.247225" z="-0.635039622217">
+        <neutronic p="16.4544" r="4.72315" t="106.113"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2273" x="2.35969277676" y="1.28540703125" z="-0.635039622217">
+        <neutronic p="17.0265" r="4.72257" t="106.068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2274" x="2.35969277676" y="1.3235890625" z="-0.635039622217">
+        <neutronic p="17.5953" r="4.72196" t="106.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2275" x="2.35969277676" y="1.36177109375" z="-0.635039622217">
+        <neutronic p="18.1609" r="4.72133" t="105.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2276" x="2.35969277676" y="1.399953125" z="-0.635039622217">
+        <neutronic p="18.7231" r="4.72066" t="105.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2277" x="2.35969277676" y="1.43813515625" z="-0.635039622217">
+        <neutronic p="19.2819" r="4.71998" t="105.872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2278" x="2.35969277676" y="1.4763171875" z="-0.635039622217">
+        <neutronic p="19.8371" r="4.71926" t="105.82"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2279" x="2.35969277676" y="1.51449921875" z="-0.635039622217">
+        <neutronic p="20.3887" r="4.71852" t="105.767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2280" x="2.35969277676" y="1.55268125" z="-0.635039622217">
+        <neutronic p="20.9367" r="4.71776" t="105.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2281" x="2.35969277676" y="1.59086328125" z="-0.635039622217">
+        <neutronic p="21.4809" r="4.71697" t="105.658"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2282" x="2.35969277676" y="1.6290453125" z="-0.635039622217">
+        <neutronic p="22.0213" r="4.71616" t="105.602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2283" x="2.35969277676" y="1.66722734375" z="-0.635039622217">
+        <neutronic p="22.5578" r="4.71532" t="105.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2284" x="2.35969277676" y="1.705409375" z="-0.635039622217">
+        <neutronic p="23.0904" r="4.71445" t="105.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2285" x="2.35969277676" y="1.74359140625" z="-0.635039622217">
+        <neutronic p="23.6191" r="4.71356" t="105.429"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2286" x="2.35969277676" y="1.7817734375" z="-0.635039622217">
+        <neutronic p="24.1437" r="4.71265" t="105.37"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2287" x="2.35969277676" y="1.81995546875" z="-0.635039622217">
+        <neutronic p="24.6643" r="4.71172" t="105.309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2288" x="2.35969277676" y="1.8581375" z="-0.635039622217">
+        <neutronic p="25.1807" r="4.71076" t="105.248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2289" x="2.35969277676" y="1.89631953125" z="-0.635039622217">
+        <neutronic p="25.693" r="4.70977" t="105.187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2309" x="2.32750767178" y="0.21631015625" z="-0.744401343575">
+        <neutronic p="0.220192" r="4.72838" t="109.485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2310" x="2.32750767178" y="0.2544921875" z="-0.744401343575">
+        <neutronic p="0.843136" r="4.72855" t="109.484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2311" x="2.32750767178" y="0.29267421875" z="-0.744401343575">
+        <neutronic p="1.46634" r="4.7287" t="109.48"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2312" x="2.32750767178" y="0.33085625" z="-0.744401343575">
+        <neutronic p="2.08964" r="4.72882" t="109.473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2313" x="2.32750767178" y="0.36903828125" z="-0.744401343575">
+        <neutronic p="2.7129" r="4.72891" t="109.465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2314" x="2.32750767178" y="0.4072203125" z="-0.744401343575">
+        <neutronic p="3.33595" r="4.72897" t="109.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2315" x="2.32750767178" y="0.44540234375" z="-0.744401343575">
+        <neutronic p="3.95866" r="4.729" t="109.442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2316" x="2.32750767178" y="0.483584375" z="-0.744401343575">
+        <neutronic p="4.58085" r="4.72901" t="109.428"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2317" x="2.32750767178" y="0.52176640625" z="-0.744401343575">
+        <neutronic p="5.2024" r="4.72898" t="109.411"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2318" x="2.32750767178" y="0.5599484375" z="-0.744401343575">
+        <neutronic p="5.82314" r="4.72893" t="109.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2319" x="2.32750767178" y="0.59813046875" z="-0.744401343575">
+        <neutronic p="6.44292" r="4.72885" t="109.372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2320" x="2.32750767178" y="0.6363125" z="-0.744401343575">
+        <neutronic p="7.06161" r="4.72874" t="109.349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2321" x="2.32750767178" y="0.67449453125" z="-0.744401343575">
+        <neutronic p="7.67904" r="4.7286" t="109.324"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2322" x="2.32750767178" y="0.7126765625" z="-0.744401343575">
+        <neutronic p="8.29508" r="4.72843" t="109.297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2323" x="2.32750767178" y="0.75085859375" z="-0.744401343575">
+        <neutronic p="8.90959" r="4.72824" t="109.268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2324" x="2.32750767178" y="0.789040625" z="-0.744401343575">
+        <neutronic p="9.52242" r="4.72801" t="109.237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2325" x="2.32750767178" y="0.82722265625" z="-0.744401343575">
+        <neutronic p="10.1334" r="4.72776" t="109.204"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2326" x="2.32750767178" y="0.8654046875" z="-0.744401343575">
+        <neutronic p="10.7425" r="4.72748" t="109.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2327" x="2.32750767178" y="0.90358671875" z="-0.744401343575">
+        <neutronic p="11.3495" r="4.72717" t="109.132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2328" x="2.32750767178" y="0.94176875" z="-0.744401343575">
+        <neutronic p="11.9543" r="4.72684" t="109.094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2329" x="2.32750767178" y="0.97995078125" z="-0.744401343575">
+        <neutronic p="12.5567" r="4.72647" t="109.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2330" x="2.32750767178" y="1.0181328125" z="-0.744401343575">
+        <neutronic p="13.1566" r="4.72608" t="109.011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2331" x="2.32750767178" y="1.05631484375" z="-0.744401343575">
+        <neutronic p="13.754" r="4.72566" t="108.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2332" x="2.32750767178" y="1.094496875" z="-0.744401343575">
+        <neutronic p="14.3487" r="4.72521" t="108.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2333" x="2.32750767178" y="1.13267890625" z="-0.744401343575">
+        <neutronic p="14.9405" r="4.72474" t="108.874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2334" x="2.32750767178" y="1.1708609375" z="-0.744401343575">
+        <neutronic p="15.5294" r="4.72424" t="108.825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2335" x="2.32750767178" y="1.20904296875" z="-0.744401343575">
+        <neutronic p="16.1153" r="4.72371" t="108.774"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2336" x="2.32750767178" y="1.247225" z="-0.744401343575">
+        <neutronic p="16.6981" r="4.72315" t="108.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2337" x="2.32750767178" y="1.28540703125" z="-0.744401343575">
+        <neutronic p="17.2776" r="4.72257" t="108.668"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2338" x="2.32750767178" y="1.3235890625" z="-0.744401343575">
+        <neutronic p="17.8537" r="4.72196" t="108.613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2339" x="2.32750767178" y="1.36177109375" z="-0.744401343575">
+        <neutronic p="18.4265" r="4.72133" t="108.556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2340" x="2.32750767178" y="1.399953125" z="-0.744401343575">
+        <neutronic p="18.9957" r="4.72066" t="108.498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2341" x="2.32750767178" y="1.43813515625" z="-0.744401343575">
+        <neutronic p="19.5613" r="4.71998" t="108.439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2342" x="2.32750767178" y="1.4763171875" z="-0.744401343575">
+        <neutronic p="20.1233" r="4.71926" t="108.378"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2343" x="2.32750767178" y="1.51449921875" z="-0.744401343575">
+        <neutronic p="20.6814" r="4.71852" t="108.316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2344" x="2.32750767178" y="1.55268125" z="-0.744401343575">
+        <neutronic p="21.2358" r="4.71776" t="108.253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2345" x="2.32750767178" y="1.59086328125" z="-0.744401343575">
+        <neutronic p="21.7863" r="4.71697" t="108.188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2346" x="2.32750767178" y="1.6290453125" z="-0.744401343575">
+        <neutronic p="22.3328" r="4.71616" t="108.123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2347" x="2.32750767178" y="1.66722734375" z="-0.744401343575">
+        <neutronic p="22.8752" r="4.71532" t="108.056"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2348" x="2.32750767178" y="1.705409375" z="-0.744401343575">
+        <neutronic p="23.4137" r="4.71445" t="107.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2349" x="2.32750767178" y="1.74359140625" z="-0.744401343575">
+        <neutronic p="23.9479" r="4.71356" t="107.92"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2350" x="2.32750767178" y="1.7817734375" z="-0.744401343575">
+        <neutronic p="24.478" r="4.71265" t="107.85"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2351" x="2.32750767178" y="1.81995546875" z="-0.744401343575">
+        <neutronic p="25.0039" r="4.71172" t="107.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2352" x="2.32750767178" y="1.8581375" z="-0.744401343575">
+        <neutronic p="25.5255" r="4.71076" t="107.708"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2353" x="2.32750767178" y="1.89631953125" z="-0.744401343575">
+        <neutronic p="26.0428" r="4.70977" t="107.636"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2373" x="2.29025711278" y="0.21631015625" z="-0.852142992607">
+        <neutronic p="0.224212" r="4.72838" t="112.207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2374" x="2.29025711278" y="0.2544921875" z="-0.852142992607">
+        <neutronic p="0.858528" r="4.72855" t="112.205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2375" x="2.29025711278" y="0.29267421875" z="-0.852142992607">
+        <neutronic p="1.4931" r="4.7287" t="112.2"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2376" x="2.29025711278" y="0.33085625" z="-0.852142992607">
+        <neutronic p="2.12776" r="4.72882" t="112.193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2377" x="2.29025711278" y="0.36903828125" z="-0.852142992607">
+        <neutronic p="2.76235" r="4.72891" t="112.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2378" x="2.29025711278" y="0.4072203125" z="-0.852142992607">
+        <neutronic p="3.39672" r="4.72897" t="112.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2379" x="2.29025711278" y="0.44540234375" z="-0.852142992607">
+        <neutronic p="4.0307" r="4.729" t="112.158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2380" x="2.29025711278" y="0.483584375" z="-0.852142992607">
+        <neutronic p="4.66413" r="4.72901" t="112.141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2381" x="2.29025711278" y="0.52176640625" z="-0.852142992607">
+        <neutronic p="5.29685" r="4.72898" t="112.122"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2382" x="2.29025711278" y="0.5599484375" z="-0.852142992607">
+        <neutronic p="5.92871" r="4.72893" t="112.1"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2383" x="2.29025711278" y="0.59813046875" z="-0.852142992607">
+        <neutronic p="6.55954" r="4.72885" t="112.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2384" x="2.29025711278" y="0.6363125" z="-0.852142992607">
+        <neutronic p="7.1892" r="4.72874" t="112.049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2385" x="2.29025711278" y="0.67449453125" z="-0.852142992607">
+        <neutronic p="7.81753" r="4.7286" t="112.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2386" x="2.29025711278" y="0.7126765625" z="-0.852142992607">
+        <neutronic p="8.44437" r="4.72843" t="111.99"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2387" x="2.29025711278" y="0.75085859375" z="-0.852142992607">
+        <neutronic p="9.06958" r="4.72824" t="111.956"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2388" x="2.29025711278" y="0.789040625" z="-0.852142992607">
+        <neutronic p="9.69301" r="4.72801" t="111.92"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2389" x="2.29025711278" y="0.82722265625" z="-0.852142992607">
+        <neutronic p="10.3145" r="4.72776" t="111.883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2390" x="2.29025711278" y="0.8654046875" z="-0.852142992607">
+        <neutronic p="10.934" r="4.72748" t="111.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2391" x="2.29025711278" y="0.90358671875" z="-0.852142992607">
+        <neutronic p="11.5512" r="4.72717" t="111.8"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2392" x="2.29025711278" y="0.94176875" z="-0.852142992607">
+        <neutronic p="12.1661" r="4.72684" t="111.756"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2393" x="2.29025711278" y="0.97995078125" z="-0.852142992607">
+        <neutronic p="12.7785" r="4.72647" t="111.709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2394" x="2.29025711278" y="1.0181328125" z="-0.852142992607">
+        <neutronic p="13.3883" r="4.72608" t="111.66"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2395" x="2.29025711278" y="1.05631484375" z="-0.852142992607">
+        <neutronic p="13.9953" r="4.72566" t="111.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2396" x="2.29025711278" y="1.094496875" z="-0.852142992607">
+        <neutronic p="14.5996" r="4.72521" t="111.557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2397" x="2.29025711278" y="1.13267890625" z="-0.852142992607">
+        <neutronic p="15.2008" r="4.72474" t="111.502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2398" x="2.29025711278" y="1.1708609375" z="-0.852142992607">
+        <neutronic p="15.7989" r="4.72424" t="111.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2399" x="2.29025711278" y="1.20904296875" z="-0.852142992607">
+        <neutronic p="16.3939" r="4.72371" t="111.387"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2400" x="2.29025711278" y="1.247225" z="-0.852142992607">
+        <neutronic p="16.9855" r="4.72315" t="111.327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2401" x="2.29025711278" y="1.28540703125" z="-0.852142992607">
+        <neutronic p="17.5738" r="4.72257" t="111.265"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2402" x="2.29025711278" y="1.3235890625" z="-0.852142992607">
+        <neutronic p="18.1585" r="4.72196" t="111.202"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2403" x="2.29025711278" y="1.36177109375" z="-0.852142992607">
+        <neutronic p="18.7396" r="4.72133" t="111.136"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2404" x="2.29025711278" y="1.399953125" z="-0.852142992607">
+        <neutronic p="19.317" r="4.72066" t="111.07"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2405" x="2.29025711278" y="1.43813515625" z="-0.852142992607">
+        <neutronic p="19.8907" r="4.71998" t="111.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2406" x="2.29025711278" y="1.4763171875" z="-0.852142992607">
+        <neutronic p="20.4605" r="4.71926" t="110.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2407" x="2.29025711278" y="1.51449921875" z="-0.852142992607">
+        <neutronic p="21.0263" r="4.71852" t="110.86"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2408" x="2.29025711278" y="1.55268125" z="-0.852142992607">
+        <neutronic p="21.5881" r="4.71776" t="110.787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2409" x="2.29025711278" y="1.59086328125" z="-0.852142992607">
+        <neutronic p="22.1459" r="4.71697" t="110.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2410" x="2.29025711278" y="1.6290453125" z="-0.852142992607">
+        <neutronic p="22.6995" r="4.71616" t="110.637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2411" x="2.29025711278" y="1.66722734375" z="-0.852142992607">
+        <neutronic p="23.2489" r="4.71532" t="110.561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2412" x="2.29025711278" y="1.705409375" z="-0.852142992607">
+        <neutronic p="23.794" r="4.71445" t="110.483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2413" x="2.29025711278" y="1.74359140625" z="-0.852142992607">
+        <neutronic p="24.3348" r="4.71356" t="110.404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2414" x="2.29025711278" y="1.7817734375" z="-0.852142992607">
+        <neutronic p="24.8713" r="4.71265" t="110.324"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2415" x="2.29025711278" y="1.81995546875" z="-0.852142992607">
+        <neutronic p="25.4033" r="4.71172" t="110.242"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2416" x="2.29025711278" y="1.8581375" z="-0.852142992607">
+        <neutronic p="25.9309" r="4.71076" t="110.16"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2417" x="2.29025711278" y="1.89631953125" z="-0.852142992607">
+        <neutronic p="26.454" r="4.70977" t="110.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2437" x="2.24802216976" y="0.21631015625" z="-0.958030086575">
+        <neutronic p="0.228908" r="4.72838" t="114.929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2438" x="2.24802216976" y="0.2544921875" z="-0.958030086575">
+        <neutronic p="0.876506" r="4.72855" t="114.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2439" x="2.24802216976" y="0.29267421875" z="-0.958030086575">
+        <neutronic p="1.52435" r="4.7287" t="114.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2440" x="2.24802216976" y="0.33085625" z="-0.958030086575">
+        <neutronic p="2.17228" r="4.72882" t="114.913"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2441" x="2.24802216976" y="0.36903828125" z="-0.958030086575">
+        <neutronic p="2.82011" r="4.72891" t="114.903"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2442" x="2.24802216976" y="0.4072203125" z="-0.958030086575">
+        <neutronic p="3.46769" r="4.72897" t="114.889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2443" x="2.24802216976" y="0.44540234375" z="-0.958030086575">
+        <neutronic p="4.11483" r="4.729" t="114.873"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2444" x="2.24802216976" y="0.483584375" z="-0.958030086575">
+        <neutronic p="4.76137" r="4.72901" t="114.853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2445" x="2.24802216976" y="0.52176640625" z="-0.958030086575">
+        <neutronic p="5.40713" r="4.72898" t="114.832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2446" x="2.24802216976" y="0.5599484375" z="-0.958030086575">
+        <neutronic p="6.05196" r="4.72893" t="114.807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2447" x="2.24802216976" y="0.59813046875" z="-0.958030086575">
+        <neutronic p="6.69569" r="4.72885" t="114.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2448" x="2.24802216976" y="0.6363125" z="-0.958030086575">
+        <neutronic p="7.33814" r="4.72874" t="114.749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2449" x="2.24802216976" y="0.67449453125" z="-0.958030086575">
+        <neutronic p="7.97917" r="4.7286" t="114.717"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2450" x="2.24802216976" y="0.7126765625" z="-0.958030086575">
+        <neutronic p="8.6186" r="4.72843" t="114.681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2451" x="2.24802216976" y="0.75085859375" z="-0.958030086575">
+        <neutronic p="9.25628" r="4.72824" t="114.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2452" x="2.24802216976" y="0.789040625" z="-0.958030086575">
+        <neutronic p="9.89205" r="4.72801" t="114.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2453" x="2.24802216976" y="0.82722265625" z="-0.958030086575">
+        <neutronic p="10.5258" r="4.72776" t="114.559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2454" x="2.24802216976" y="0.8654046875" z="-0.958030086575">
+        <neutronic p="11.1573" r="4.72748" t="114.514"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2455" x="2.24802216976" y="0.90358671875" z="-0.958030086575">
+        <neutronic p="11.7864" r="4.72717" t="114.466"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2456" x="2.24802216976" y="0.94176875" z="-0.958030086575">
+        <neutronic p="12.413" r="4.72684" t="114.415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2457" x="2.24802216976" y="0.97995078125" z="-0.958030086575">
+        <neutronic p="13.037" r="4.72647" t="114.362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2458" x="2.24802216976" y="1.0181328125" z="-0.958030086575">
+        <neutronic p="13.6583" r="4.72608" t="114.307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2459" x="2.24802216976" y="1.05631484375" z="-0.958030086575">
+        <neutronic p="14.2766" r="4.72566" t="114.249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2460" x="2.24802216976" y="1.094496875" z="-0.958030086575">
+        <neutronic p="14.8919" r="4.72521" t="114.189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2461" x="2.24802216976" y="1.13267890625" z="-0.958030086575">
+        <neutronic p="15.504" r="4.72474" t="114.127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2462" x="2.24802216976" y="1.1708609375" z="-0.958030086575">
+        <neutronic p="16.1128" r="4.72424" t="114.063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2463" x="2.24802216976" y="1.20904296875" z="-0.958030086575">
+        <neutronic p="16.7183" r="4.72371" t="113.996"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2464" x="2.24802216976" y="1.247225" z="-0.958030086575">
+        <neutronic p="17.3202" r="4.72315" t="113.928"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2465" x="2.24802216976" y="1.28540703125" z="-0.958030086575">
+        <neutronic p="17.9185" r="4.72257" t="113.858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2466" x="2.24802216976" y="1.3235890625" z="-0.958030086575">
+        <neutronic p="18.5131" r="4.72196" t="113.785"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2467" x="2.24802216976" y="1.36177109375" z="-0.958030086575">
+        <neutronic p="19.1039" r="4.72133" t="113.711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2468" x="2.24802216976" y="1.399953125" z="-0.958030086575">
+        <neutronic p="19.6908" r="4.72066" t="113.635"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2469" x="2.24802216976" y="1.43813515625" z="-0.958030086575">
+        <neutronic p="20.2737" r="4.71998" t="113.558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2470" x="2.24802216976" y="1.4763171875" z="-0.958030086575">
+        <neutronic p="20.8525" r="4.71926" t="113.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2471" x="2.24802216976" y="1.51449921875" z="-0.958030086575">
+        <neutronic p="21.4271" r="4.71852" t="113.397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2472" x="2.24802216976" y="1.55268125" z="-0.958030086575">
+        <neutronic p="21.9975" r="4.71776" t="113.314"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2473" x="2.24802216976" y="1.59086328125" z="-0.958030086575">
+        <neutronic p="22.5636" r="4.71697" t="113.23"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2474" x="2.24802216976" y="1.6290453125" z="-0.958030086575">
+        <neutronic p="23.1254" r="4.71616" t="113.144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2475" x="2.24802216976" y="1.66722734375" z="-0.958030086575">
+        <neutronic p="23.6827" r="4.71532" t="113.057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2476" x="2.24802216976" y="1.705409375" z="-0.958030086575">
+        <neutronic p="24.2355" r="4.71445" t="112.969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2477" x="2.24802216976" y="1.74359140625" z="-0.958030086575">
+        <neutronic p="24.7838" r="4.71356" t="112.879"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2478" x="2.24802216976" y="1.7817734375" z="-0.958030086575">
+        <neutronic p="25.3275" r="4.71265" t="112.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2479" x="2.24802216976" y="1.81995546875" z="-0.958030086575">
+        <neutronic p="25.8665" r="4.71172" t="112.696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2480" x="2.24802216976" y="1.8581375" z="-0.958030086575">
+        <neutronic p="26.4009" r="4.71076" t="112.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2481" x="2.24802216976" y="1.89631953125" z="-0.958030086575">
+        <neutronic p="26.9306" r="4.70977" t="112.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2501" x="2.2008947604" y="0.21631015625" z="-1.06183217889">
+        <neutronic p="0.234345" r="4.72838" t="117.651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2502" x="2.2008947604" y="0.2544921875" z="-1.06183217889">
+        <neutronic p="0.897321" r="4.72855" t="117.648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2503" x="2.2008947604" y="0.29267421875" z="-1.06183217889">
+        <neutronic p="1.56054" r="4.7287" t="117.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2504" x="2.2008947604" y="0.33085625" z="-1.06183217889">
+        <neutronic p="2.22382" r="4.72882" t="117.633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2505" x="2.2008947604" y="0.36903828125" z="-1.06183217889">
+        <neutronic p="2.88698" r="4.72891" t="117.621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2506" x="2.2008947604" y="0.4072203125" z="-1.06183217889">
+        <neutronic p="3.54984" r="4.72897" t="117.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2507" x="2.2008947604" y="0.44540234375" z="-1.06183217889">
+        <neutronic p="4.21221" r="4.729" t="117.587"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2508" x="2.2008947604" y="0.483584375" z="-1.06183217889">
+        <neutronic p="4.87392" r="4.72901" t="117.566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2509" x="2.2008947604" y="0.52176640625" z="-1.06183217889">
+        <neutronic p="5.53477" r="4.72898" t="117.541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2510" x="2.2008947604" y="0.5599484375" z="-1.06183217889">
+        <neutronic p="6.1946" r="4.72893" t="117.513"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2511" x="2.2008947604" y="0.59813046875" z="-1.06183217889">
+        <neutronic p="6.85322" r="4.72885" t="117.482"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2512" x="2.2008947604" y="0.6363125" z="-1.06183217889">
+        <neutronic p="7.51047" r="4.72874" t="117.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2513" x="2.2008947604" y="0.67449453125" z="-1.06183217889">
+        <neutronic p="8.16615" r="4.7286" t="117.412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2514" x="2.2008947604" y="0.7126765625" z="-1.06183217889">
+        <neutronic p="8.82012" r="4.72843" t="117.372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2515" x="2.2008947604" y="0.75085859375" z="-1.06183217889">
+        <neutronic p="9.47219" r="4.72824" t="117.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2516" x="2.2008947604" y="0.789040625" z="-1.06183217889">
+        <neutronic p="10.1222" r="4.72801" t="117.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2517" x="2.2008947604" y="0.82722265625" z="-1.06183217889">
+        <neutronic p="10.77" r="4.72776" t="117.234"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2518" x="2.2008947604" y="0.8654046875" z="-1.06183217889">
+        <neutronic p="11.4154" r="4.72748" t="117.183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2519" x="2.2008947604" y="0.90358671875" z="-1.06183217889">
+        <neutronic p="12.0582" r="4.72717" t="117.129"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2520" x="2.2008947604" y="0.94176875" z="-1.06183217889">
+        <neutronic p="12.6984" r="4.72684" t="117.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2521" x="2.2008947604" y="0.97995078125" z="-1.06183217889">
+        <neutronic p="13.3358" r="4.72647" t="117.012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2522" x="2.2008947604" y="1.0181328125" z="-1.06183217889">
+        <neutronic p="13.9701" r="4.72608" t="116.95"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2523" x="2.2008947604" y="1.05631484375" z="-1.06183217889">
+        <neutronic p="14.6013" r="4.72566" t="116.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2524" x="2.2008947604" y="1.094496875" z="-1.06183217889">
+        <neutronic p="15.2293" r="4.72521" t="116.818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2525" x="2.2008947604" y="1.13267890625" z="-1.06183217889">
+        <neutronic p="15.8539" r="4.72474" t="116.748"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2526" x="2.2008947604" y="1.1708609375" z="-1.06183217889">
+        <neutronic p="16.475" r="4.72424" t="116.675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2527" x="2.2008947604" y="1.20904296875" z="-1.06183217889">
+        <neutronic p="17.0924" r="4.72371" t="116.601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2528" x="2.2008947604" y="1.247225" z="-1.06183217889">
+        <neutronic p="17.7061" r="4.72315" t="116.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2529" x="2.2008947604" y="1.28540703125" z="-1.06183217889">
+        <neutronic p="18.316" r="4.72257" t="116.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2530" x="2.2008947604" y="1.3235890625" z="-1.06183217889">
+        <neutronic p="18.9219" r="4.72196" t="116.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2531" x="2.2008947604" y="1.36177109375" z="-1.06183217889">
+        <neutronic p="19.5237" r="4.72133" t="116.28"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2532" x="2.2008947604" y="1.399953125" z="-1.06183217889">
+        <neutronic p="20.1213" r="4.72066" t="116.195"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2533" x="2.2008947604" y="1.43813515625" z="-1.06183217889">
+        <neutronic p="20.7147" r="4.71998" t="116.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2534" x="2.2008947604" y="1.4763171875" z="-1.06183217889">
+        <neutronic p="21.3038" r="4.71926" t="116.018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2535" x="2.2008947604" y="1.51449921875" z="-1.06183217889">
+        <neutronic p="21.8884" r="4.71852" t="115.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2536" x="2.2008947604" y="1.55268125" z="-1.06183217889">
+        <neutronic p="22.4685" r="4.71776" t="115.834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2537" x="2.2008947604" y="1.59086328125" z="-1.06183217889">
+        <neutronic p="23.0441" r="4.71697" t="115.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2538" x="2.2008947604" y="1.6290453125" z="-1.06183217889">
+        <neutronic p="23.6151" r="4.71616" t="115.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2539" x="2.2008947604" y="1.66722734375" z="-1.06183217889">
+        <neutronic p="24.1813" r="4.71532" t="115.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2540" x="2.2008947604" y="1.705409375" z="-1.06183217889">
+        <neutronic p="24.7428" r="4.71445" t="115.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2541" x="2.2008947604" y="1.74359140625" z="-1.06183217889">
+        <neutronic p="25.2995" r="4.71356" t="115.345"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2542" x="2.2008947604" y="1.7817734375" z="-1.06183217889">
+        <neutronic p="25.8514" r="4.71265" t="115.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2543" x="2.2008947604" y="1.81995546875" z="-1.06183217889">
+        <neutronic p="26.3983" r="4.71172" t="115.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2544" x="2.2008947604" y="1.8581375" z="-1.06183217889">
+        <neutronic p="26.9404" r="4.71076" t="115.036"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2545" x="2.2008947604" y="1.89631953125" z="-1.06183217889">
+        <neutronic p="27.4774" r="4.70977" t="114.93"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2565" x="2.14897745011" y="0.21631015625" z="-1.16332336064">
+        <neutronic p="0.240602" r="4.72838" t="120.373"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2566" x="2.14897745011" y="0.2544921875" z="-1.16332336064">
+        <neutronic p="0.921277" r="4.72855" t="120.37"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2567" x="2.14897745011" y="0.29267421875" z="-1.16332336064">
+        <neutronic p="1.60219" r="4.7287" t="120.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2568" x="2.14897745011" y="0.33085625" z="-1.16332336064">
+        <neutronic p="2.28314" r="4.72882" t="120.353"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2569" x="2.14897745011" y="0.36903828125" z="-1.16332336064">
+        <neutronic p="2.96393" r="4.72891" t="120.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2570" x="2.14897745011" y="0.4072203125" z="-1.16332336064">
+        <neutronic p="3.64437" r="4.72897" t="120.322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2571" x="2.14897745011" y="0.44540234375" z="-1.16332336064">
+        <neutronic p="4.32426" r="4.729" t="120.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2572" x="2.14897745011" y="0.483584375" z="-1.16332336064">
+        <neutronic p="5.00341" r="4.72901" t="120.277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2573" x="2.14897745011" y="0.52176640625" z="-1.16332336064">
+        <neutronic p="5.6816" r="4.72898" t="120.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2574" x="2.14897745011" y="0.5599484375" z="-1.16332336064">
+        <neutronic p="6.35867" r="4.72893" t="120.219"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2575" x="2.14897745011" y="0.59813046875" z="-1.16332336064">
+        <neutronic p="7.03441" r="4.72885" t="120.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2576" x="2.14897745011" y="0.6363125" z="-1.16332336064">
+        <neutronic p="7.70863" r="4.72874" t="120.146"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2577" x="2.14897745011" y="0.67449453125" z="-1.16332336064">
+        <neutronic p="8.38115" r="4.7286" t="120.105"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2578" x="2.14897745011" y="0.7126765625" z="-1.16332336064">
+        <neutronic p="9.05178" r="4.72843" t="120.06"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2579" x="2.14897745011" y="0.75085859375" z="-1.16332336064">
+        <neutronic p="9.72035" r="4.72824" t="120.013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2580" x="2.14897745011" y="0.789040625" z="-1.16332336064">
+        <neutronic p="10.3867" r="4.72801" t="119.961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2581" x="2.14897745011" y="0.82722265625" z="-1.16332336064">
+        <neutronic p="11.0506" r="4.72776" t="119.907"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2582" x="2.14897745011" y="0.8654046875" z="-1.16332336064">
+        <neutronic p="11.7119" r="4.72748" t="119.85"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2583" x="2.14897745011" y="0.90358671875" z="-1.16332336064">
+        <neutronic p="12.3704" r="4.72717" t="119.789"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2584" x="2.14897745011" y="0.94176875" z="-1.16332336064">
+        <neutronic p="13.0261" r="4.72684" t="119.725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2585" x="2.14897745011" y="0.97995078125" z="-1.16332336064">
+        <neutronic p="13.6786" r="4.72647" t="119.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2586" x="2.14897745011" y="1.0181328125" z="-1.16332336064">
+        <neutronic p="14.328" r="4.72608" t="119.589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2587" x="2.14897745011" y="1.05631484375" z="-1.16332336064">
+        <neutronic p="14.9739" r="4.72566" t="119.517"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2588" x="2.14897745011" y="1.094496875" z="-1.16332336064">
+        <neutronic p="15.6164" r="4.72521" t="119.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2589" x="2.14897745011" y="1.13267890625" z="-1.16332336064">
+        <neutronic p="16.2552" r="4.72474" t="119.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2590" x="2.14897745011" y="1.1708609375" z="-1.16332336064">
+        <neutronic p="16.8902" r="4.72424" t="119.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2591" x="2.14897745011" y="1.20904296875" z="-1.16332336064">
+        <neutronic p="17.5212" r="4.72371" t="119.199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2592" x="2.14897745011" y="1.247225" z="-1.16332336064">
+        <neutronic p="18.1483" r="4.72315" t="119.114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2593" x="2.14897745011" y="1.28540703125" z="-1.16332336064">
+        <neutronic p="18.7712" r="4.72257" t="119.025"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2594" x="2.14897745011" y="1.3235890625" z="-1.16332336064">
+        <neutronic p="19.3898" r="4.72196" t="118.935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2595" x="2.14897745011" y="1.36177109375" z="-1.16332336064">
+        <neutronic p="20.0041" r="4.72133" t="118.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2596" x="2.14897745011" y="1.399953125" z="-1.16332336064">
+        <neutronic p="20.6139" r="4.72066" t="118.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2597" x="2.14897745011" y="1.43813515625" z="-1.16332336064">
+        <neutronic p="21.2192" r="4.71998" t="118.649"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2598" x="2.14897745011" y="1.4763171875" z="-1.16332336064">
+        <neutronic p="21.8198" r="4.71926" t="118.549"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2599" x="2.14897745011" y="1.51449921875" z="-1.16332336064">
+        <neutronic p="22.4157" r="4.71852" t="118.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2600" x="2.14897745011" y="1.55268125" z="-1.16332336064">
+        <neutronic p="23.0067" r="4.71776" t="118.344"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2601" x="2.14897745011" y="1.59086328125" z="-1.16332336064">
+        <neutronic p="23.5929" r="4.71697" t="118.239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2602" x="2.14897745011" y="1.6290453125" z="-1.16332336064">
+        <neutronic p="24.1742" r="4.71616" t="118.132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2603" x="2.14897745011" y="1.66722734375" z="-1.16332336064">
+        <neutronic p="24.7504" r="4.71532" t="118.023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2604" x="2.14897745011" y="1.705409375" z="-1.16332336064">
+        <neutronic p="25.3216" r="4.71445" t="117.912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2605" x="2.14897745011" y="1.74359140625" z="-1.16332336064">
+        <neutronic p="25.8877" r="4.71356" t="117.8"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2606" x="2.14897745011" y="1.7817734375" z="-1.16332336064">
+        <neutronic p="26.4487" r="4.71265" t="117.687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2607" x="2.14897745011" y="1.81995546875" z="-1.16332336064">
+        <neutronic p="27.0044" r="4.71172" t="117.572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2608" x="2.14897745011" y="1.8581375" z="-1.16332336064">
+        <neutronic p="27.5549" r="4.71076" t="117.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2609" x="2.14897745011" y="1.89631953125" z="-1.16332336064">
+        <neutronic p="28.1001" r="4.70977" t="117.338"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2629" x="2.09238322873" y="0.21631015625" z="-1.26228275225">
+        <neutronic p="0.247778" r="4.72838" t="123.094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2630" x="2.09238322873" y="0.2544921875" z="-1.26228275225">
+        <neutronic p="0.948746" r="4.72855" t="123.091"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2631" x="2.09238322873" y="0.29267421875" z="-1.26228275225">
+        <neutronic p="1.64994" r="4.7287" t="123.084"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2632" x="2.09238322873" y="0.33085625" z="-1.26228275225">
+        <neutronic p="2.35115" r="4.72882" t="123.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2633" x="2.09238322873" y="0.36903828125" z="-1.26228275225">
+        <neutronic p="3.05216" r="4.72891" t="123.057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2634" x="2.09238322873" y="0.4072203125" z="-1.26228275225">
+        <neutronic p="3.75275" r="4.72897" t="123.038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2635" x="2.09238322873" y="0.44540234375" z="-1.26228275225">
+        <neutronic p="4.45271" r="4.729" t="123.015"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2636" x="2.09238322873" y="0.483584375" z="-1.26228275225">
+        <neutronic p="5.15182" r="4.72901" t="122.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2637" x="2.09238322873" y="0.52176640625" z="-1.26228275225">
+        <neutronic p="5.84988" r="4.72898" t="122.958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2638" x="2.09238322873" y="0.5599484375" z="-1.26228275225">
+        <neutronic p="6.54667" r="4.72893" t="122.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2639" x="2.09238322873" y="0.59813046875" z="-1.26228275225">
+        <neutronic p="7.24199" r="4.72885" t="122.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2640" x="2.09238322873" y="0.6363125" z="-1.26228275225">
+        <neutronic p="7.93563" r="4.72874" t="122.843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2641" x="2.09238322873" y="0.67449453125" z="-1.26228275225">
+        <neutronic p="8.62738" r="4.7286" t="122.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2642" x="2.09238322873" y="0.7126765625" z="-1.26228275225">
+        <neutronic p="9.31705" r="4.72843" t="122.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2643" x="2.09238322873" y="0.75085859375" z="-1.26228275225">
+        <neutronic p="10.0044" r="4.72824" t="122.694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2644" x="2.09238322873" y="0.789040625" z="-1.26228275225">
+        <neutronic p="10.6894" r="4.72801" t="122.637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2645" x="2.09238322873" y="0.82722265625" z="-1.26228275225">
+        <neutronic p="11.3716" r="4.72776" t="122.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2646" x="2.09238322873" y="0.8654046875" z="-1.26228275225">
+        <neutronic p="12.0511" r="4.72748" t="122.513"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2647" x="2.09238322873" y="0.90358671875" z="-1.26228275225">
+        <neutronic p="12.7275" r="4.72717" t="122.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2648" x="2.09238322873" y="0.94176875" z="-1.26228275225">
+        <neutronic p="13.4007" r="4.72684" t="122.375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2649" x="2.09238322873" y="0.97995078125" z="-1.26228275225">
+        <neutronic p="14.0706" r="4.72647" t="122.301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2650" x="2.09238322873" y="1.0181328125" z="-1.26228275225">
+        <neutronic p="14.7369" r="4.72608" t="122.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2651" x="2.09238322873" y="1.05631484375" z="-1.26228275225">
+        <neutronic p="15.3996" r="4.72566" t="122.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2652" x="2.09238322873" y="1.094496875" z="-1.26228275225">
+        <neutronic p="16.0584" r="4.72521" t="122.06"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2653" x="2.09238322873" y="1.13267890625" z="-1.26228275225">
+        <neutronic p="16.7132" r="4.72474" t="121.973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2654" x="2.09238322873" y="1.1708609375" z="-1.26228275225">
+        <neutronic p="17.364" r="4.72424" t="121.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2655" x="2.09238322873" y="1.20904296875" z="-1.26228275225">
+        <neutronic p="18.0105" r="4.72371" t="121.791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2656" x="2.09238322873" y="1.247225" z="-1.26228275225">
+        <neutronic p="18.6526" r="4.72315" t="121.696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2657" x="2.09238322873" y="1.28540703125" z="-1.26228275225">
+        <neutronic p="19.2902" r="4.72257" t="121.598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2658" x="2.09238322873" y="1.3235890625" z="-1.26228275225">
+        <neutronic p="19.9232" r="4.72196" t="121.498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2659" x="2.09238322873" y="1.36177109375" z="-1.26228275225">
+        <neutronic p="20.5514" r="4.72133" t="121.395"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2660" x="2.09238322873" y="1.399953125" z="-1.26228275225">
+        <neutronic p="21.1749" r="4.72066" t="121.289"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2661" x="2.09238322873" y="1.43813515625" z="-1.26228275225">
+        <neutronic p="21.7934" r="4.71998" t="121.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2662" x="2.09238322873" y="1.4763171875" z="-1.26228275225">
+        <neutronic p="22.4069" r="4.71926" t="121.071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2663" x="2.09238322873" y="1.51449921875" z="-1.26228275225">
+        <neutronic p="23.0154" r="4.71852" t="120.959"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2664" x="2.09238322873" y="1.55268125" z="-1.26228275225">
+        <neutronic p="23.6186" r="4.71776" t="120.844"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2665" x="2.09238322873" y="1.59086328125" z="-1.26228275225">
+        <neutronic p="24.2166" r="4.71697" t="120.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2666" x="2.09238322873" y="1.6290453125" z="-1.26228275225">
+        <neutronic p="24.8093" r="4.71616" t="120.609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2667" x="2.09238322873" y="1.66722734375" z="-1.26228275225">
+        <neutronic p="25.3967" r="4.71532" t="120.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2668" x="2.09238322873" y="1.705409375" z="-1.26228275225">
+        <neutronic p="25.9786" r="4.71445" t="120.366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2669" x="2.09238322873" y="1.74359140625" z="-1.26228275225">
+        <neutronic p="26.555" r="4.71356" t="120.242"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2670" x="2.09238322873" y="1.7817734375" z="-1.26228275225">
+        <neutronic p="27.126" r="4.71265" t="120.117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2671" x="2.09238322873" y="1.81995546875" z="-1.26228275225">
+        <neutronic p="27.6914" r="4.71172" t="119.99"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2672" x="2.09238322873" y="1.8581375" z="-1.26228275225">
+        <neutronic p="28.2512" r="4.71076" t="119.861"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2673" x="2.09238322873" y="1.89631953125" z="-1.26228275225">
+        <neutronic p="28.8054" r="4.70977" t="119.731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2693" x="2.03123526467" y="0.21631015625" z="-1.35849498418">
+        <neutronic p="0.255989" r="4.72838" t="125.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2694" x="2.03123526467" y="0.2544921875" z="-1.35849498418">
+        <neutronic p="0.980182" r="4.72855" t="125.812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2695" x="2.03123526467" y="0.29267421875" z="-1.35849498418">
+        <neutronic p="1.70459" r="4.7287" t="125.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2696" x="2.03123526467" y="0.33085625" z="-1.35849498418">
+        <neutronic p="2.42898" r="4.72882" t="125.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2697" x="2.03123526467" y="0.36903828125" z="-1.35849498418">
+        <neutronic p="3.15311" r="4.72891" t="125.775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2698" x="2.03123526467" y="0.4072203125" z="-1.35849498418">
+        <neutronic p="3.87675" r="4.72897" t="125.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2699" x="2.03123526467" y="0.44540234375" z="-1.35849498418">
+        <neutronic p="4.59965" r="4.729" t="125.729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2700" x="2.03123526467" y="0.483584375" z="-1.35849498418">
+        <neutronic p="5.3216" r="4.72901" t="125.699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2701" x="2.03123526467" y="0.52176640625" z="-1.35849498418">
+        <neutronic p="6.04234" r="4.72898" t="125.665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2702" x="2.03123526467" y="0.5599484375" z="-1.35849498418">
+        <neutronic p="6.76166" r="4.72893" t="125.627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2703" x="2.03123526467" y="0.59813046875" z="-1.35849498418">
+        <neutronic p="7.47932" r="4.72885" t="125.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2704" x="2.03123526467" y="0.6363125" z="-1.35849498418">
+        <neutronic p="8.19511" r="4.72874" t="125.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2705" x="2.03123526467" y="0.67449453125" z="-1.35849498418">
+        <neutronic p="8.90879" r="4.7286" t="125.487"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2706" x="2.03123526467" y="0.7126765625" z="-1.35849498418">
+        <neutronic p="9.62015" r="4.72843" t="125.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2707" x="2.03123526467" y="0.75085859375" z="-1.35849498418">
+        <neutronic p="10.329" r="4.72824" t="125.373"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2708" x="2.03123526467" y="0.789040625" z="-1.35849498418">
+        <neutronic p="11.0351" r="4.72801" t="125.31"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2709" x="2.03123526467" y="0.82722265625" z="-1.35849498418">
+        <neutronic p="11.7382" r="4.72776" t="125.244"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2710" x="2.03123526467" y="0.8654046875" z="-1.35849498418">
+        <neutronic p="12.4382" r="4.72748" t="125.173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2711" x="2.03123526467" y="0.90358671875" z="-1.35849498418">
+        <neutronic p="13.1349" r="4.72717" t="125.099"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2712" x="2.03123526467" y="0.94176875" z="-1.35849498418">
+        <neutronic p="13.828" r="4.72684" t="125.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2713" x="2.03123526467" y="0.97995078125" z="-1.35849498418">
+        <neutronic p="14.5175" r="4.72647" t="124.939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2714" x="2.03123526467" y="1.0181328125" z="-1.35849498418">
+        <neutronic p="15.203" r="4.72608" t="124.853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2715" x="2.03123526467" y="1.05631484375" z="-1.35849498418">
+        <neutronic p="15.8845" r="4.72566" t="124.765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2716" x="2.03123526467" y="1.094496875" z="-1.35849498418">
+        <neutronic p="16.5619" r="4.72521" t="124.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2717" x="2.03123526467" y="1.13267890625" z="-1.35849498418">
+        <neutronic p="17.2348" r="4.72474" t="124.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2718" x="2.03123526467" y="1.1708609375" z="-1.35849498418">
+        <neutronic p="17.9032" r="4.72424" t="124.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2719" x="2.03123526467" y="1.20904296875" z="-1.35849498418">
+        <neutronic p="18.567" r="4.72371" t="124.376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2720" x="2.03123526467" y="1.247225" z="-1.35849498418">
+        <neutronic p="19.226" r="4.72315" t="124.271"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2721" x="2.03123526467" y="1.28540703125" z="-1.35849498418">
+        <neutronic p="19.8801" r="4.72257" t="124.163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2722" x="2.03123526467" y="1.3235890625" z="-1.35849498418">
+        <neutronic p="20.5291" r="4.72196" t="124.052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2723" x="2.03123526467" y="1.36177109375" z="-1.35849498418">
+        <neutronic p="21.173" r="4.72133" t="123.938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2724" x="2.03123526467" y="1.399953125" z="-1.35849498418">
+        <neutronic p="21.8117" r="4.72066" t="123.822"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2725" x="2.03123526467" y="1.43813515625" z="-1.35849498418">
+        <neutronic p="22.445" r="4.71998" t="123.703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2726" x="2.03123526467" y="1.4763171875" z="-1.35849498418">
+        <neutronic p="23.0729" r="4.71926" t="123.581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2727" x="2.03123526467" y="1.51449921875" z="-1.35849498418">
+        <neutronic p="23.6952" r="4.71852" t="123.457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2728" x="2.03123526467" y="1.55268125" z="-1.35849498418">
+        <neutronic p="24.3119" r="4.71776" t="123.331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2729" x="2.03123526467" y="1.59086328125" z="-1.35849498418">
+        <neutronic p="24.923" r="4.71697" t="123.203"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2730" x="2.03123526467" y="1.6290453125" z="-1.35849498418">
+        <neutronic p="25.5283" r="4.71616" t="123.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2731" x="2.03123526467" y="1.66722734375" z="-1.35849498418">
+        <neutronic p="26.1279" r="4.71532" t="122.94"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2732" x="2.03123526467" y="1.705409375" z="-1.35849498418">
+        <neutronic p="26.7216" r="4.71445" t="122.805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2733" x="2.03123526467" y="1.74359140625" z="-1.35849498418">
+        <neutronic p="27.3093" r="4.71356" t="122.669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2734" x="2.03123526467" y="1.7817734375" z="-1.35849498418">
+        <neutronic p="27.8912" r="4.71265" t="122.531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2735" x="2.03123526467" y="1.81995546875" z="-1.35849498418">
+        <neutronic p="28.4671" r="4.71172" t="122.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2736" x="2.03123526467" y="1.8581375" z="-1.35849498418">
+        <neutronic p="29.037" r="4.71076" t="122.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2737" x="2.03123526467" y="1.89631953125" z="-1.35849498418">
+        <neutronic p="29.6009" r="4.70977" t="122.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2757" x="1.96566663686" y="0.21631015625" z="-1.45175066566">
+        <neutronic p="0.265383" r="4.72838" t="128.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2758" x="1.96566663686" y="0.2544921875" z="-1.45175066566">
+        <neutronic p="1.01614" r="4.72855" t="128.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2759" x="1.96566663686" y="0.29267421875" z="-1.45175066566">
+        <neutronic p="1.7671" r="4.7287" t="128.525"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2760" x="1.96566663686" y="0.33085625" z="-1.45175066566">
+        <neutronic p="2.518" r="4.72882" t="128.511"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2761" x="1.96566663686" y="0.36903828125" z="-1.45175066566">
+        <neutronic p="3.26857" r="4.72891" t="128.493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2762" x="1.96566663686" y="0.4072203125" z="-1.45175066566">
+        <neutronic p="4.01855" r="4.72897" t="128.469"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2763" x="1.96566663686" y="0.44540234375" z="-1.45175066566">
+        <neutronic p="4.76768" r="4.729" t="128.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2764" x="1.96566663686" y="0.483584375" z="-1.45175066566">
+        <neutronic p="5.5157" r="4.72901" t="128.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2765" x="1.96566663686" y="0.52176640625" z="-1.45175066566">
+        <neutronic p="6.26234" r="4.72898" t="128.371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2766" x="1.96566663686" y="0.5599484375" z="-1.45175066566">
+        <neutronic p="7.00736" r="4.72893" t="128.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2767" x="1.96566663686" y="0.59813046875" z="-1.45175066566">
+        <neutronic p="7.75051" r="4.72885" t="128.282"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2768" x="1.96566663686" y="0.6363125" z="-1.45175066566">
+        <neutronic p="8.49153" r="4.72874" t="128.231"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2769" x="1.96566663686" y="0.67449453125" z="-1.45175066566">
+        <neutronic p="9.23018" r="4.7286" t="128.175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2770" x="1.96566663686" y="0.7126765625" z="-1.45175066566">
+        <neutronic p="9.96622" r="4.72843" t="128.114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2771" x="1.96566663686" y="0.75085859375" z="-1.45175066566">
+        <neutronic p="10.6994" r="4.72824" t="128.049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2772" x="1.96566663686" y="0.789040625" z="-1.45175066566">
+        <neutronic p="11.4295" r="4.72801" t="127.98"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2773" x="1.96566663686" y="0.82722265625" z="-1.45175066566">
+        <neutronic p="12.1564" r="4.72776" t="127.907"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2774" x="1.96566663686" y="0.8654046875" z="-1.45175066566">
+        <neutronic p="12.8797" r="4.72748" t="127.829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2775" x="1.96566663686" y="0.90358671875" z="-1.45175066566">
+        <neutronic p="13.5993" r="4.72717" t="127.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2776" x="1.96566663686" y="0.94176875" z="-1.45175066566">
+        <neutronic p="14.315" r="4.72684" t="127.661"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2777" x="1.96566663686" y="0.97995078125" z="-1.45175066566">
+        <neutronic p="15.0265" r="4.72647" t="127.571"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2778" x="1.96566663686" y="1.0181328125" z="-1.45175066566">
+        <neutronic p="15.7338" r="4.72608" t="127.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2779" x="1.96566663686" y="1.05631484375" z="-1.45175066566">
+        <neutronic p="16.4365" r="4.72566" t="127.379"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2780" x="1.96566663686" y="1.094496875" z="-1.45175066566">
+        <neutronic p="17.1346" r="4.72521" t="127.277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2781" x="1.96566663686" y="1.13267890625" z="-1.45175066566">
+        <neutronic p="17.8279" r="4.72474" t="127.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2782" x="1.96566663686" y="1.1708609375" z="-1.45175066566">
+        <neutronic p="18.5161" r="4.72424" t="127.063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2783" x="1.96566663686" y="1.20904296875" z="-1.45175066566">
+        <neutronic p="19.1993" r="4.72371" t="126.951"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2784" x="1.96566663686" y="1.247225" z="-1.45175066566">
+        <neutronic p="19.8771" r="4.72315" t="126.836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2785" x="1.96566663686" y="1.28540703125" z="-1.45175066566">
+        <neutronic p="20.5496" r="4.72257" t="126.717"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2786" x="1.96566663686" y="1.3235890625" z="-1.45175066566">
+        <neutronic p="21.2165" r="4.72196" t="126.595"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2787" x="1.96566663686" y="1.36177109375" z="-1.45175066566">
+        <neutronic p="21.8778" r="4.72133" t="126.47"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2788" x="1.96566663686" y="1.399953125" z="-1.45175066566">
+        <neutronic p="22.5333" r="4.72066" t="126.342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2789" x="1.96566663686" y="1.43813515625" z="-1.45175066566">
+        <neutronic p="23.1829" r="4.71998" t="126.212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2790" x="1.96566663686" y="1.4763171875" z="-1.45175066566">
+        <neutronic p="23.8266" r="4.71926" t="126.079"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2791" x="1.96566663686" y="1.51449921875" z="-1.45175066566">
+        <neutronic p="24.4643" r="4.71852" t="125.943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2792" x="1.96566663686" y="1.55268125" z="-1.45175066566">
+        <neutronic p="25.0959" r="4.71776" t="125.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2793" x="1.96566663686" y="1.59086328125" z="-1.45175066566">
+        <neutronic p="25.7212" r="4.71697" t="125.663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2794" x="1.96566663686" y="1.6290453125" z="-1.45175066566">
+        <neutronic p="26.3404" r="4.71616" t="125.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2795" x="1.96566663686" y="1.66722734375" z="-1.45175066566">
+        <neutronic p="26.9532" r="4.71532" t="125.375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2796" x="1.96566663686" y="1.705409375" z="-1.45175066566">
+        <neutronic p="27.5597" r="4.71445" t="125.228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2797" x="1.96566663686" y="1.74359140625" z="-1.45175066566">
+        <neutronic p="28.1598" r="4.71356" t="125.078"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2798" x="1.96566663686" y="1.7817734375" z="-1.45175066566">
+        <neutronic p="28.7535" r="4.71265" t="124.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2799" x="1.96566663686" y="1.81995546875" z="-1.45175066566">
+        <neutronic p="29.3408" r="4.71172" t="124.774"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2800" x="1.96566663686" y="1.8581375" z="-1.45175066566">
+        <neutronic p="29.9216" r="4.71076" t="124.619"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2801" x="1.96566663686" y="1.89631953125" z="-1.45175066566">
+        <neutronic p="30.4959" r="4.70977" t="124.463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2821" x="1.89582004508" y="0.21631015625" z="-1.54184684038">
+        <neutronic p="0.276139" r="4.72838" t="131.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2822" x="1.89582004508" y="0.2544921875" z="-1.54184684038">
+        <neutronic p="1.05732" r="4.72855" t="131.255"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2823" x="1.89582004508" y="0.29267421875" z="-1.54184684038">
+        <neutronic p="1.83868" r="4.7287" t="131.245"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2824" x="1.89582004508" y="0.33085625" z="-1.54184684038">
+        <neutronic p="2.61992" r="4.72882" t="131.23"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2825" x="1.89582004508" y="0.36903828125" z="-1.54184684038">
+        <neutronic p="3.40075" r="4.72891" t="131.21"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2826" x="1.89582004508" y="0.4072203125" z="-1.54184684038">
+        <neutronic p="4.18086" r="4.72897" t="131.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2827" x="1.89582004508" y="0.44540234375" z="-1.54184684038">
+        <neutronic p="4.95997" r="4.729" t="131.153"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2828" x="1.89582004508" y="0.483584375" z="-1.54184684038">
+        <neutronic p="5.73779" r="4.72901" t="131.117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2829" x="1.89582004508" y="0.52176640625" z="-1.54184684038">
+        <neutronic p="6.51402" r="4.72898" t="131.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2830" x="1.89582004508" y="0.5599484375" z="-1.54184684038">
+        <neutronic p="7.28839" r="4.72893" t="131.03"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2831" x="1.89582004508" y="0.59813046875" z="-1.54184684038">
+        <neutronic p="8.0606" r="4.72885" t="130.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2832" x="1.89582004508" y="0.6363125" z="-1.54184684038">
+        <neutronic p="8.83038" r="4.72874" t="130.922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2833" x="1.89582004508" y="0.67449453125" z="-1.54184684038">
+        <neutronic p="9.59746" r="4.7286" t="130.86"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2834" x="1.89582004508" y="0.7126765625" z="-1.54184684038">
+        <neutronic p="10.3616" r="4.72843" t="130.793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2835" x="1.89582004508" y="0.75085859375" z="-1.54184684038">
+        <neutronic p="11.1225" r="4.72824" t="130.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2836" x="1.89582004508" y="0.789040625" z="-1.54184684038">
+        <neutronic p="11.8799" r="4.72801" t="130.646"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2837" x="1.89582004508" y="0.82722265625" z="-1.54184684038">
+        <neutronic p="12.6336" r="4.72776" t="130.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2838" x="1.89582004508" y="0.8654046875" z="-1.54184684038">
+        <neutronic p="13.3833" r="4.72748" t="130.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2839" x="1.89582004508" y="0.90358671875" z="-1.54184684038">
+        <neutronic p="14.1288" r="4.72717" t="130.389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2840" x="1.89582004508" y="0.94176875" z="-1.54184684038">
+        <neutronic p="14.8699" r="4.72684" t="130.295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2841" x="1.89582004508" y="0.97995078125" z="-1.54184684038">
+        <neutronic p="15.6064" r="4.72647" t="130.196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2842" x="1.89582004508" y="1.0181328125" z="-1.54184684038">
+        <neutronic p="16.3381" r="4.72608" t="130.093"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2843" x="1.89582004508" y="1.05631484375" z="-1.54184684038">
+        <neutronic p="17.0647" r="4.72566" t="129.985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2844" x="1.89582004508" y="1.094496875" z="-1.54184684038">
+        <neutronic p="17.7861" r="4.72521" t="129.874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2845" x="1.89582004508" y="1.13267890625" z="-1.54184684038">
+        <neutronic p="18.5021" r="4.72474" t="129.758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2846" x="1.89582004508" y="1.1708609375" z="-1.54184684038">
+        <neutronic p="19.2126" r="4.72424" t="129.639"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2847" x="1.89582004508" y="1.20904296875" z="-1.54184684038">
+        <neutronic p="19.9173" r="4.72371" t="129.516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2848" x="1.89582004508" y="1.247225" z="-1.54184684038">
+        <neutronic p="20.6162" r="4.72315" t="129.39"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2849" x="1.89582004508" y="1.28540703125" z="-1.54184684038">
+        <neutronic p="21.309" r="4.72257" t="129.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2850" x="1.89582004508" y="1.3235890625" z="-1.54184684038">
+        <neutronic p="21.9958" r="4.72196" t="129.126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2851" x="1.89582004508" y="1.36177109375" z="-1.54184684038">
+        <neutronic p="22.6762" r="4.72133" t="128.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2852" x="1.89582004508" y="1.399953125" z="-1.54184684038">
+        <neutronic p="23.3504" r="4.72066" t="128.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2853" x="1.89582004508" y="1.43813515625" z="-1.54184684038">
+        <neutronic p="24.018" r="4.71998" t="128.706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2854" x="1.89582004508" y="1.4763171875" z="-1.54184684038">
+        <neutronic p="24.6791" r="4.71926" t="128.56"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2855" x="1.89582004508" y="1.51449921875" z="-1.54184684038">
+        <neutronic p="25.3336" r="4.71852" t="128.412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2856" x="1.89582004508" y="1.55268125" z="-1.54184684038">
+        <neutronic p="25.9813" r="4.71776" t="128.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2857" x="1.89582004508" y="1.59086328125" z="-1.54184684038">
+        <neutronic p="26.6223" r="4.71697" t="128.106"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2858" x="1.89582004508" y="1.6290453125" z="-1.54184684038">
+        <neutronic p="27.2564" r="4.71616" t="127.95"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2859" x="1.89582004508" y="1.66722734375" z="-1.54184684038">
+        <neutronic p="27.8837" r="4.71532" t="127.791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2860" x="1.89582004508" y="1.705409375" z="-1.54184684038">
+        <neutronic p="28.504" r="4.71445" t="127.63"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2861" x="1.89582004508" y="1.74359140625" z="-1.54184684038">
+        <neutronic p="29.1173" r="4.71356" t="127.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2862" x="1.89582004508" y="1.7817734375" z="-1.54184684038">
+        <neutronic p="29.7237" r="4.71265" t="127.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2863" x="1.89582004508" y="1.81995546875" z="-1.54184684038">
+        <neutronic p="30.3231" r="4.71172" t="127.135"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2864" x="1.89582004508" y="1.8581375" z="-1.54184684038">
+        <neutronic p="30.9154" r="4.71076" t="126.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2865" x="1.89582004508" y="1.89631953125" z="-1.54184684038">
+        <neutronic p="31.5007" r="4.70977" t="126.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2885" x="1.82184749945" y="0.21631015625" z="-1.62858742819">
+        <neutronic p="0.288482" r="4.72838" t="133.981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2886" x="1.82184749945" y="0.2544921875" z="-1.62858742819">
+        <neutronic p="1.10457" r="4.72855" t="133.977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2887" x="1.82184749945" y="0.29267421875" z="-1.62858742819">
+        <neutronic p="1.92081" r="4.7287" t="133.966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2888" x="1.82184749945" y="0.33085625" z="-1.62858742819">
+        <neutronic p="2.73686" r="4.72882" t="133.949"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2889" x="1.82184749945" y="0.36903828125" z="-1.62858742819">
+        <neutronic p="3.55238" r="4.72891" t="133.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2890" x="1.82184749945" y="0.4072203125" z="-1.62858742819">
+        <neutronic p="4.36704" r="4.72897" t="133.899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2891" x="1.82184749945" y="0.44540234375" z="-1.62858742819">
+        <neutronic p="5.18051" r="4.729" t="133.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2892" x="1.82184749945" y="0.483584375" z="-1.62858742819">
+        <neutronic p="5.99245" r="4.72901" t="133.825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2893" x="1.82184749945" y="0.52176640625" z="-1.62858742819">
+        <neutronic p="6.80253" r="4.72898" t="133.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2894" x="1.82184749945" y="0.5599484375" z="-1.62858742819">
+        <neutronic p="7.61044" r="4.72893" t="133.729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2895" x="1.82184749945" y="0.59813046875" z="-1.62858742819">
+        <neutronic p="8.41586" r="4.72885" t="133.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2896" x="1.82184749945" y="0.6363125" z="-1.62858742819">
+        <neutronic p="9.21846" r="4.72874" t="133.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2897" x="1.82184749945" y="0.67449453125" z="-1.62858742819">
+        <neutronic p="10.018" r="4.7286" t="133.542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2898" x="1.82184749945" y="0.7126765625" z="-1.62858742819">
+        <neutronic p="10.814" r="4.72843" t="133.469"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2899" x="1.82184749945" y="0.75085859375" z="-1.62858742819">
+        <neutronic p="11.6064" r="4.72824" t="133.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2900" x="1.82184749945" y="0.789040625" z="-1.62858742819">
+        <neutronic p="12.3948" r="4.72801" t="133.307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2901" x="1.82184749945" y="0.82722265625" z="-1.62858742819">
+        <neutronic p="13.179" r="4.72776" t="133.218"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2902" x="1.82184749945" y="0.8654046875" z="-1.62858742819">
+        <neutronic p="13.9586" r="4.72748" t="133.124"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2903" x="1.82184749945" y="0.90358671875" z="-1.62858742819">
+        <neutronic p="14.7334" r="4.72717" t="133.025"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2904" x="1.82184749945" y="0.94176875" z="-1.62858742819">
+        <neutronic p="15.5033" r="4.72684" t="132.922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2905" x="1.82184749945" y="0.97995078125" z="-1.62858742819">
+        <neutronic p="16.2679" r="4.72647" t="132.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2906" x="1.82184749945" y="1.0181328125" z="-1.62858742819">
+        <neutronic p="17.027" r="4.72608" t="132.7"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2907" x="1.82184749945" y="1.05631484375" z="-1.62858742819">
+        <neutronic p="17.7804" r="4.72566" t="132.582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2908" x="1.82184749945" y="1.094496875" z="-1.62858742819">
+        <neutronic p="18.5279" r="4.72521" t="132.46"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2909" x="1.82184749945" y="1.13267890625" z="-1.62858742819">
+        <neutronic p="19.2693" r="4.72474" t="132.334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2910" x="1.82184749945" y="1.1708609375" z="-1.62858742819">
+        <neutronic p="20.0045" r="4.72424" t="132.203"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2911" x="1.82184749945" y="1.20904296875" z="-1.62858742819">
+        <neutronic p="20.7333" r="4.72371" t="132.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2912" x="1.82184749945" y="1.247225" z="-1.62858742819">
+        <neutronic p="21.4555" r="4.72315" t="131.93"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2913" x="1.82184749945" y="1.28540703125" z="-1.62858742819">
+        <neutronic p="22.171" r="4.72257" t="131.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2914" x="1.82184749945" y="1.3235890625" z="-1.62858742819">
+        <neutronic p="22.8796" r="4.72196" t="131.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2915" x="1.82184749945" y="1.36177109375" z="-1.62858742819">
+        <neutronic p="23.5812" r="4.72133" t="131.492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2916" x="1.82184749945" y="1.399953125" z="-1.62858742819">
+        <neutronic p="24.2758" r="4.72066" t="131.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2917" x="1.82184749945" y="1.43813515625" z="-1.62858742819">
+        <neutronic p="24.9631" r="4.71998" t="131.183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2918" x="1.82184749945" y="1.4763171875" z="-1.62858742819">
+        <neutronic p="25.6432" r="4.71926" t="131.024"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2919" x="1.82184749945" y="1.51449921875" z="-1.62858742819">
+        <neutronic p="26.3159" r="4.71852" t="130.862"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2920" x="1.82184749945" y="1.55268125" z="-1.62858742819">
+        <neutronic p="26.9812" r="4.71776" t="130.697"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2921" x="1.82184749945" y="1.59086328125" z="-1.62858742819">
+        <neutronic p="27.639" r="4.71697" t="130.529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2922" x="1.82184749945" y="1.6290453125" z="-1.62858742819">
+        <neutronic p="28.2893" r="4.71616" t="130.358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2923" x="1.82184749945" y="1.66722734375" z="-1.62858742819">
+        <neutronic p="28.932" r="4.71532" t="130.185"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2924" x="1.82184749945" y="1.705409375" z="-1.62858742819">
+        <neutronic p="29.5671" r="4.71445" t="130.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2925" x="1.82184749945" y="1.74359140625" z="-1.62858742819">
+        <neutronic p="30.1946" r="4.71356" t="129.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2926" x="1.82184749945" y="1.7817734375" z="-1.62858742819">
+        <neutronic p="30.8144" r="4.71265" t="129.653"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2927" x="1.82184749945" y="1.81995546875" z="-1.62858742819">
+        <neutronic p="31.4265" r="4.71172" t="129.472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2928" x="1.82184749945" y="1.8581375" z="-1.62858742819">
+        <neutronic p="32.031" r="4.71076" t="129.288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2929" x="1.82184749945" y="1.89631953125" z="-1.62858742819">
+        <neutronic p="32.6278" r="4.70977" t="129.103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2949" x="1.74390998956" y="0.21631015625" z="-1.71178365187">
+        <neutronic p="0.302695" r="4.72838" t="136.703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2950" x="1.74390998956" y="0.2544921875" z="-1.71178365187">
+        <neutronic p="1.15898" r="4.72855" t="136.698"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2951" x="1.74390998956" y="0.29267421875" z="-1.71178365187">
+        <neutronic p="2.01537" r="4.7287" t="136.686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2952" x="1.74390998956" y="0.33085625" z="-1.71178365187">
+        <neutronic p="2.87148" r="4.72882" t="136.668"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2953" x="1.74390998956" y="0.36903828125" z="-1.71178365187">
+        <neutronic p="3.72692" r="4.72891" t="136.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2954" x="1.74390998956" y="0.4072203125" z="-1.71178365187">
+        <neutronic p="4.58131" r="4.72897" t="136.612"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2955" x="1.74390998956" y="0.44540234375" z="-1.71178365187">
+        <neutronic p="5.43426" r="4.729" t="136.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2956" x="1.74390998956" y="0.483584375" z="-1.71178365187">
+        <neutronic p="6.28539" r="4.72901" t="136.531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2957" x="1.74390998956" y="0.52176640625" z="-1.71178365187">
+        <neutronic p="7.13432" r="4.72898" t="136.481"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2958" x="1.74390998956" y="0.5599484375" z="-1.71178365187">
+        <neutronic p="7.98069" r="4.72893" t="136.425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2959" x="1.74390998956" y="0.59813046875" z="-1.71178365187">
+        <neutronic p="8.82413" r="4.72885" t="136.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2960" x="1.74390998956" y="0.6363125" z="-1.71178365187">
+        <neutronic p="9.66429" r="4.72874" t="136.295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2961" x="1.74390998956" y="0.67449453125" z="-1.71178365187">
+        <neutronic p="10.5008" r="4.7286" t="136.22"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2962" x="1.74390998956" y="0.7126765625" z="-1.71178365187">
+        <neutronic p="11.3334" r="4.72843" t="136.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2963" x="1.74390998956" y="0.75085859375" z="-1.71178365187">
+        <neutronic p="12.1616" r="4.72824" t="136.054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2964" x="1.74390998956" y="0.789040625" z="-1.71178365187">
+        <neutronic p="12.9853" r="4.72801" t="135.962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2965" x="1.74390998956" y="0.82722265625" z="-1.71178365187">
+        <neutronic p="13.804" r="4.72776" t="135.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2966" x="1.74390998956" y="0.8654046875" z="-1.71178365187">
+        <neutronic p="14.6175" r="4.72748" t="135.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2967" x="1.74390998956" y="0.90358671875" z="-1.71178365187">
+        <neutronic p="15.4255" r="4.72717" t="135.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2968" x="1.74390998956" y="0.94176875" z="-1.71178365187">
+        <neutronic p="16.2278" r="4.72684" t="135.54"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2969" x="1.74390998956" y="0.97995078125" z="-1.71178365187">
+        <neutronic p="17.024" r="4.72647" t="135.421"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2970" x="1.74390998956" y="1.0181328125" z="-1.71178365187">
+        <neutronic p="17.814" r="4.72608" t="135.297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2971" x="1.74390998956" y="1.05631484375" z="-1.71178365187">
+        <neutronic p="18.5974" r="4.72566" t="135.168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2972" x="1.74390998956" y="1.094496875" z="-1.71178365187">
+        <neutronic p="19.3742" r="4.72521" t="135.035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2973" x="1.74390998956" y="1.13267890625" z="-1.71178365187">
+        <neutronic p="20.144" r="4.72474" t="134.896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2974" x="1.74390998956" y="1.1708609375" z="-1.71178365187">
+        <neutronic p="20.9067" r="4.72424" t="134.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2975" x="1.74390998956" y="1.20904296875" z="-1.71178365187">
+        <neutronic p="21.6621" r="4.72371" t="134.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2976" x="1.74390998956" y="1.247225" z="-1.71178365187">
+        <neutronic p="22.4101" r="4.72315" t="134.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2977" x="1.74390998956" y="1.28540703125" z="-1.71178365187">
+        <neutronic p="23.1505" r="4.72257" t="134.3"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2978" x="1.74390998956" y="1.3235890625" z="-1.71178365187">
+        <neutronic p="23.8832" r="4.72196" t="134.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2979" x="1.74390998956" y="1.36177109375" z="-1.71178365187">
+        <neutronic p="24.608" r="4.72133" t="133.977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2980" x="1.74390998956" y="1.399953125" z="-1.71178365187">
+        <neutronic p="25.3249" r="4.72066" t="133.81"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2981" x="1.74390998956" y="1.43813515625" z="-1.71178365187">
+        <neutronic p="26.0337" r="4.71998" t="133.64"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2982" x="1.74390998956" y="1.4763171875" z="-1.71178365187">
+        <neutronic p="26.7344" r="4.71926" t="133.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2983" x="1.74390998956" y="1.51449921875" z="-1.71178365187">
+        <neutronic p="27.4268" r="4.71852" t="133.29"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2984" x="1.74390998956" y="1.55268125" z="-1.71178365187">
+        <neutronic p="28.111" r="4.71776" t="133.11"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2985" x="1.74390998956" y="1.59086328125" z="-1.71178365187">
+        <neutronic p="28.7868" r="4.71697" t="132.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2986" x="1.74390998956" y="1.6290453125" z="-1.71178365187">
+        <neutronic p="29.4543" r="4.71616" t="132.742"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2987" x="1.74390998956" y="1.66722734375" z="-1.71178365187">
+        <neutronic p="30.1134" r="4.71532" t="132.554"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2988" x="1.74390998956" y="1.705409375" z="-1.71178365187">
+        <neutronic p="30.7641" r="4.71445" t="132.364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2989" x="1.74390998956" y="1.74359140625" z="-1.71178365187">
+        <neutronic p="31.4064" r="4.71356" t="132.171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2990" x="1.74390998956" y="1.7817734375" z="-1.71178365187">
+        <neutronic p="32.0403" r="4.71265" t="131.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2991" x="1.74390998956" y="1.81995546875" z="-1.71178365187">
+        <neutronic p="32.6657" r="4.71172" t="131.779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2992" x="1.74390998956" y="1.8581375" z="-1.71178365187">
+        <neutronic p="33.2828" r="4.71076" t="131.58"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="2993" x="1.74390998956" y="1.89631953125" z="-1.71178365187">
+        <neutronic p="33.8914" r="4.70977" t="131.38"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3013" x="1.66217713414" y="0.21631015625" z="-1.79125444793">
+        <neutronic p="0.319139" r="4.72838" t="139.425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3014" x="1.66217713414" y="0.2544921875" z="-1.79125444793">
+        <neutronic p="1.22192" r="4.72855" t="139.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3015" x="1.66217713414" y="0.29267421875" z="-1.79125444793">
+        <neutronic p="2.12476" r="4.7287" t="139.406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3016" x="1.66217713414" y="0.33085625" z="-1.79125444793">
+        <neutronic p="3.02719" r="4.72882" t="139.386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3017" x="1.66217713414" y="0.36903828125" z="-1.79125444793">
+        <neutronic p="3.92877" r="4.72891" t="139.359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3018" x="1.66217713414" y="0.4072203125" z="-1.79125444793">
+        <neutronic p="4.82905" r="4.72897" t="139.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3019" x="1.66217713414" y="0.44540234375" z="-1.79125444793">
+        <neutronic p="5.72756" r="4.729" t="139.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3020" x="1.66217713414" y="0.483584375" z="-1.79125444793">
+        <neutronic p="6.62389" r="4.72901" t="139.236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3021" x="1.66217713414" y="0.52176640625" z="-1.79125444793">
+        <neutronic p="7.51757" r="4.72898" t="139.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3022" x="1.66217713414" y="0.5599484375" z="-1.79125444793">
+        <neutronic p="8.4082" r="4.72893" t="139.119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3023" x="1.66217713414" y="0.59813046875" z="-1.79125444793">
+        <neutronic p="9.29535" r="4.72885" t="139.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3024" x="1.66217713414" y="0.6363125" z="-1.79125444793">
+        <neutronic p="10.1786" r="4.72874" t="138.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3025" x="1.66217713414" y="0.67449453125" z="-1.79125444793">
+        <neutronic p="11.0576" r="4.7286" t="138.894"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3026" x="1.66217713414" y="0.7126765625" z="-1.79125444793">
+        <neutronic p="11.9319" r="4.72843" t="138.806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3027" x="1.66217713414" y="0.75085859375" z="-1.79125444793">
+        <neutronic p="12.8011" r="4.72824" t="138.712"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3028" x="1.66217713414" y="0.789040625" z="-1.79125444793">
+        <neutronic p="13.6649" r="4.72801" t="138.611"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3029" x="1.66217713414" y="0.82722265625" z="-1.79125444793">
+        <neutronic p="14.523" r="4.72776" t="138.504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3030" x="1.66217713414" y="0.8654046875" z="-1.79125444793">
+        <neutronic p="15.375" r="4.72748" t="138.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3031" x="1.66217713414" y="0.90358671875" z="-1.79125444793">
+        <neutronic p="16.2205" r="4.72717" t="138.272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3032" x="1.66217713414" y="0.94176875" z="-1.79125444793">
+        <neutronic p="17.0594" r="4.72684" t="138.148"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3033" x="1.66217713414" y="0.97995078125" z="-1.79125444793">
+        <neutronic p="17.8913" r="4.72647" t="138.018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3034" x="1.66217713414" y="1.0181328125" z="-1.79125444793">
+        <neutronic p="18.7159" r="4.72608" t="137.882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3035" x="1.66217713414" y="1.05631484375" z="-1.79125444793">
+        <neutronic p="19.533" r="4.72566" t="137.741"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3036" x="1.66217713414" y="1.094496875" z="-1.79125444793">
+        <neutronic p="20.3424" r="4.72521" t="137.595"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3037" x="1.66217713414" y="1.13267890625" z="-1.79125444793">
+        <neutronic p="21.1438" r="4.72474" t="137.444"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3038" x="1.66217713414" y="1.1708609375" z="-1.79125444793">
+        <neutronic p="21.9371" r="4.72424" t="137.288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3039" x="1.66217713414" y="1.20904296875" z="-1.79125444793">
+        <neutronic p="22.722" r="4.72371" t="137.127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3040" x="1.66217713414" y="1.247225" z="-1.79125444793">
+        <neutronic p="23.4984" r="4.72315" t="136.962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3041" x="1.66217713414" y="1.28540703125" z="-1.79125444793">
+        <neutronic p="24.2662" r="4.72257" t="136.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3042" x="1.66217713414" y="1.3235890625" z="-1.79125444793">
+        <neutronic p="25.0252" r="4.72196" t="136.618"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3043" x="1.66217713414" y="1.36177109375" z="-1.79125444793">
+        <neutronic p="25.7753" r="4.72133" t="136.44"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3044" x="1.66217713414" y="1.399953125" z="-1.79125444793">
+        <neutronic p="26.5163" r="4.72066" t="136.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3045" x="1.66217713414" y="1.43813515625" z="-1.79125444793">
+        <neutronic p="27.2483" r="4.71998" t="136.073"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3046" x="1.66217713414" y="1.4763171875" z="-1.79125444793">
+        <neutronic p="27.9711" r="4.71926" t="135.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3047" x="1.66217713414" y="1.51449921875" z="-1.79125444793">
+        <neutronic p="28.6847" r="4.71852" t="135.692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3048" x="1.66217713414" y="1.55268125" z="-1.79125444793">
+        <neutronic p="29.389" r="4.71776" t="135.497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3049" x="1.66217713414" y="1.59086328125" z="-1.79125444793">
+        <neutronic p="30.0839" r="4.71697" t="135.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3050" x="1.66217713414" y="1.6290453125" z="-1.79125444793">
+        <neutronic p="30.7696" r="4.71616" t="135.097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3051" x="1.66217713414" y="1.66722734375" z="-1.79125444793">
+        <neutronic p="31.4459" r="4.71532" t="134.893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3052" x="1.66217713414" y="1.705409375" z="-1.79125444793">
+        <neutronic p="32.1128" r="4.71445" t="134.686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3053" x="1.66217713414" y="1.74359140625" z="-1.79125444793">
+        <neutronic p="32.7704" r="4.71356" t="134.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3054" x="1.66217713414" y="1.7817734375" z="-1.79125444793">
+        <neutronic p="33.4187" r="4.71265" t="134.266"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3055" x="1.66217713414" y="1.81995546875" z="-1.79125444793">
+        <neutronic p="34.0577" r="4.71172" t="134.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3056" x="1.66217713414" y="1.8581375" z="-1.79125444793">
+        <neutronic p="34.6874" r="4.71076" t="133.837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3057" x="1.66217713414" y="1.89631953125" z="-1.79125444793">
+        <neutronic p="35.308" r="4.70977" t="133.62"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3077" x="1.57682681188" y="0.21631015625" z="-1.8668268607">
+        <neutronic p="0.338279" r="4.72838" t="142.147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3078" x="1.57682681188" y="0.2544921875" z="-1.8668268607">
+        <neutronic p="1.29518" r="4.72855" t="142.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3079" x="1.57682681188" y="0.29267421875" z="-1.8668268607">
+        <neutronic p="2.25206" r="4.7287" t="142.126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3080" x="1.57682681188" y="0.33085625" z="-1.8668268607">
+        <neutronic p="3.20838" r="4.72882" t="142.104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3081" x="1.57682681188" y="0.36903828125" z="-1.8668268607">
+        <neutronic p="4.1636" r="4.72891" t="142.074"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3082" x="1.57682681188" y="0.4072203125" z="-1.8668268607">
+        <neutronic p="5.11717" r="4.72897" t="142.036"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3083" x="1.57682681188" y="0.44540234375" z="-1.8668268607">
+        <neutronic p="6.06858" r="4.729" t="141.991"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3084" x="1.57682681188" y="0.483584375" z="-1.8668268607">
+        <neutronic p="7.0173" r="4.72901" t="141.938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3085" x="1.57682681188" y="0.52176640625" z="-1.8668268607">
+        <neutronic p="7.96282" r="4.72898" t="141.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3086" x="1.57682681188" y="0.5599484375" z="-1.8668268607">
+        <neutronic p="8.90463" r="4.72893" t="141.81"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3087" x="1.57682681188" y="0.59813046875" z="-1.8668268607">
+        <neutronic p="9.84224" r="4.72885" t="141.735"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3088" x="1.57682681188" y="0.6363125" z="-1.8668268607">
+        <neutronic p="10.7752" r="4.72874" t="141.652"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3089" x="1.57682681188" y="0.67449453125" z="-1.8668268607">
+        <neutronic p="11.703" r="4.7286" t="141.563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3090" x="1.57682681188" y="0.7126765625" z="-1.8668268607">
+        <neutronic p="12.6251" r="4.72843" t="141.466"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3091" x="1.57682681188" y="0.75085859375" z="-1.8668268607">
+        <neutronic p="13.5413" r="4.72824" t="141.362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3092" x="1.57682681188" y="0.789040625" z="-1.8668268607">
+        <neutronic p="14.4511" r="4.72801" t="141.251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3093" x="1.57682681188" y="0.82722265625" z="-1.8668268607">
+        <neutronic p="15.354" r="4.72776" t="141.134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3094" x="1.57682681188" y="0.8654046875" z="-1.8668268607">
+        <neutronic p="16.2497" r="4.72748" t="141.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3095" x="1.57682681188" y="0.90358671875" z="-1.8668268607">
+        <neutronic p="17.1378" r="4.72717" t="140.88"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3096" x="1.57682681188" y="0.94176875" z="-1.8668268607">
+        <neutronic p="18.0181" r="4.72684" t="140.743"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3097" x="1.57682681188" y="0.97995078125" z="-1.8668268607">
+        <neutronic p="18.8901" r="4.72647" t="140.601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3098" x="1.57682681188" y="1.0181328125" z="-1.8668268607">
+        <neutronic p="19.7537" r="4.72608" t="140.452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3099" x="1.57682681188" y="1.05631484375" z="-1.8668268607">
+        <neutronic p="20.6085" r="4.72566" t="140.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3100" x="1.57682681188" y="1.094496875" z="-1.8668268607">
+        <neutronic p="21.4543" r="4.72521" t="140.138"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3101" x="1.57682681188" y="1.13267890625" z="-1.8668268607">
+        <neutronic p="22.2908" r="4.72474" t="139.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3102" x="1.57682681188" y="1.1708609375" z="-1.8668268607">
+        <neutronic p="23.1178" r="4.72424" t="139.802"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3103" x="1.57682681188" y="1.20904296875" z="-1.8668268607">
+        <neutronic p="23.9353" r="4.72371" t="139.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3104" x="1.57682681188" y="1.247225" z="-1.8668268607">
+        <neutronic p="24.7429" r="4.72315" t="139.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3105" x="1.57682681188" y="1.28540703125" z="-1.8668268607">
+        <neutronic p="25.5406" r="4.72257" t="139.261"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3106" x="1.57682681188" y="1.3235890625" z="-1.8668268607">
+        <neutronic p="26.3281" r="4.72196" t="139.071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3107" x="1.57682681188" y="1.36177109375" z="-1.8668268607">
+        <neutronic p="27.1055" r="4.72133" t="138.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3108" x="1.57682681188" y="1.399953125" z="-1.8668268607">
+        <neutronic p="27.8726" r="4.72066" t="138.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3109" x="1.57682681188" y="1.43813515625" z="-1.8668268607">
+        <neutronic p="28.6294" r="4.71998" t="138.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3110" x="1.57682681188" y="1.4763171875" z="-1.8668268607">
+        <neutronic p="29.3757" r="4.71926" t="138.273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3111" x="1.57682681188" y="1.51449921875" z="-1.8668268607">
+        <neutronic p="30.1116" r="4.71852" t="138.064"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3112" x="1.57682681188" y="1.55268125" z="-1.8668268607">
+        <neutronic p="30.8371" r="4.71776" t="137.851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3113" x="1.57682681188" y="1.59086328125" z="-1.8668268607">
+        <neutronic p="31.552" r="4.71697" t="137.636"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3114" x="1.57682681188" y="1.6290453125" z="-1.8668268607">
+        <neutronic p="32.2564" r="4.71616" t="137.418"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3115" x="1.57682681188" y="1.66722734375" z="-1.8668268607">
+        <neutronic p="32.9504" r="4.71532" t="137.196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3116" x="1.57682681188" y="1.705409375" z="-1.8668268607">
+        <neutronic p="33.6339" r="4.71445" t="136.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3117" x="1.57682681188" y="1.74359140625" z="-1.8668268607">
+        <neutronic p="34.307" r="4.71356" t="136.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3118" x="1.57682681188" y="1.7817734375" z="-1.8668268607">
+        <neutronic p="34.9698" r="4.71265" t="136.518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3119" x="1.57682681188" y="1.81995546875" z="-1.8668268607">
+        <neutronic p="35.6222" r="4.71172" t="136.287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3120" x="1.57682681188" y="1.8581375" z="-1.8668268607">
+        <neutronic p="36.2644" r="4.71076" t="136.054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3121" x="1.57682681188" y="1.89631953125" z="-1.8668268607">
+        <neutronic p="36.8965" r="4.70977" t="135.82"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3141" x="1.48804477432" y="0.21631015625" z="-1.93833641872">
+        <neutronic p="0.360727" r="4.72838" t="144.869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3142" x="1.48804477432" y="0.2544921875" z="-1.93833641872">
+        <neutronic p="1.3811" r="4.72855" t="144.861"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3143" x="1.48804477432" y="0.29267421875" z="-1.93833641872">
+        <neutronic p="2.40135" r="4.7287" t="144.845"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3144" x="1.48804477432" y="0.33085625" z="-1.93833641872">
+        <neutronic p="3.4208" r="4.72882" t="144.821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3145" x="1.48804477432" y="0.36903828125" z="-1.93833641872">
+        <neutronic p="4.43883" r="4.72891" t="144.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3146" x="1.48804477432" y="0.4072203125" z="-1.93833641872">
+        <neutronic p="5.45477" r="4.72897" t="144.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3147" x="1.48804477432" y="0.44540234375" z="-1.93833641872">
+        <neutronic p="6.468" r="4.729" t="144.697"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3148" x="1.48804477432" y="0.483584375" z="-1.93833641872">
+        <neutronic p="7.47787" r="4.72901" t="144.638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3149" x="1.48804477432" y="0.52176640625" z="-1.93833641872">
+        <neutronic p="8.48379" r="4.72898" t="144.572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3150" x="1.48804477432" y="0.5599484375" z="-1.93833641872">
+        <neutronic p="9.48514" r="4.72893" t="144.497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3151" x="1.48804477432" y="0.59813046875" z="-1.93833641872">
+        <neutronic p="10.4813" r="4.72885" t="144.414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3152" x="1.48804477432" y="0.6363125" z="-1.93833641872">
+        <neutronic p="11.4718" r="4.72874" t="144.323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3153" x="1.48804477432" y="0.67449453125" z="-1.93833641872">
+        <neutronic p="12.4561" r="4.7286" t="144.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3154" x="1.48804477432" y="0.7126765625" z="-1.93833641872">
+        <neutronic p="13.4335" r="4.72843" t="144.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3155" x="1.48804477432" y="0.75085859375" z="-1.93833641872">
+        <neutronic p="14.4037" r="4.72824" t="144.003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3156" x="1.48804477432" y="0.789040625" z="-1.93833641872">
+        <neutronic p="15.366" r="4.72801" t="143.882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3157" x="1.48804477432" y="0.82722265625" z="-1.93833641872">
+        <neutronic p="16.3202" r="4.72776" t="143.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3158" x="1.48804477432" y="0.8654046875" z="-1.93833641872">
+        <neutronic p="17.2658" r="4.72748" t="143.616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3159" x="1.48804477432" y="0.90358671875" z="-1.93833641872">
+        <neutronic p="18.2022" r="4.72717" t="143.473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3160" x="1.48804477432" y="0.94176875" z="-1.93833641872">
+        <neutronic p="19.1293" r="4.72684" t="143.323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3161" x="1.48804477432" y="0.97995078125" z="-1.93833641872">
+        <neutronic p="20.0466" r="4.72647" t="143.167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3162" x="1.48804477432" y="1.0181328125" z="-1.93833641872">
+        <neutronic p="20.9539" r="4.72608" t="143.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3163" x="1.48804477432" y="1.05631484375" z="-1.93833641872">
+        <neutronic p="21.8507" r="4.72566" t="142.835"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3164" x="1.48804477432" y="1.094496875" z="-1.93833641872">
+        <neutronic p="22.737" r="4.72521" t="142.66"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3165" x="1.48804477432" y="1.13267890625" z="-1.93833641872">
+        <neutronic p="23.6124" r="4.72474" t="142.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3166" x="1.48804477432" y="1.1708609375" z="-1.93833641872">
+        <neutronic p="24.4767" r="4.72424" t="142.293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3167" x="1.48804477432" y="1.20904296875" z="-1.93833641872">
+        <neutronic p="25.3297" r="4.72371" t="142.101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3168" x="1.48804477432" y="1.247225" z="-1.93833641872">
+        <neutronic p="26.1713" r="4.72315" t="141.904"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3169" x="1.48804477432" y="1.28540703125" z="-1.93833641872">
+        <neutronic p="27.0014" r="4.72257" t="141.702"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3170" x="1.48804477432" y="1.3235890625" z="-1.93833641872">
+        <neutronic p="27.8197" r="4.72196" t="141.495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3171" x="1.48804477432" y="1.36177109375" z="-1.93833641872">
+        <neutronic p="28.6264" r="4.72133" t="141.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3172" x="1.48804477432" y="1.399953125" z="-1.93833641872">
+        <neutronic p="29.4212" r="4.72066" t="141.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3173" x="1.48804477432" y="1.43813515625" z="-1.93833641872">
+        <neutronic p="30.2041" r="4.71998" t="140.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3174" x="1.48804477432" y="1.4763171875" z="-1.93833641872">
+        <neutronic p="30.9751" r="4.71926" t="140.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3175" x="1.48804477432" y="1.51449921875" z="-1.93833641872">
+        <neutronic p="31.7342" r="4.71852" t="140.399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3176" x="1.48804477432" y="1.55268125" z="-1.93833641872">
+        <neutronic p="32.4814" r="4.71776" t="140.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3177" x="1.48804477432" y="1.59086328125" z="-1.93833641872">
+        <neutronic p="33.2167" r="4.71697" t="139.935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3178" x="1.48804477432" y="1.6290453125" z="-1.93833641872">
+        <neutronic p="33.9402" r="4.71616" t="139.698"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3179" x="1.48804477432" y="1.66722734375" z="-1.93833641872">
+        <neutronic p="34.6519" r="4.71532" t="139.458"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3180" x="1.48804477432" y="1.705409375" z="-1.93833641872">
+        <neutronic p="35.3518" r="4.71445" t="139.216"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3181" x="1.48804477432" y="1.74359140625" z="-1.93833641872">
+        <neutronic p="36.0401" r="4.71356" t="138.971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3182" x="1.48804477432" y="1.7817734375" z="-1.93833641872">
+        <neutronic p="36.7169" r="4.71265" t="138.724"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3183" x="1.48804477432" y="1.81995546875" z="-1.93833641872">
+        <neutronic p="37.3822" r="4.71172" t="138.475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3184" x="1.48804477432" y="1.8581375" z="-1.93833641872">
+        <neutronic p="38.0361" r="4.71076" t="138.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3185" x="1.48804477432" y="1.89631953125" z="-1.93833641872">
+        <neutronic p="38.6788" r="4.70977" t="137.971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3205" x="1.39602424158" y="0.21631015625" z="-2.00562749269">
+        <neutronic p="0.387302" r="4.72838" t="147.59"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3206" x="1.39602424158" y="0.2544921875" z="-2.00562749269">
+        <neutronic p="1.48281" r="4.72855" t="147.582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3207" x="1.39602424158" y="0.29267421875" z="-2.00562749269">
+        <neutronic p="2.57803" r="4.7287" t="147.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3208" x="1.39602424158" y="0.33085625" z="-2.00562749269">
+        <neutronic p="3.67216" r="4.72882" t="147.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3209" x="1.39602424158" y="0.36903828125" z="-2.00562749269">
+        <neutronic p="4.7644" r="4.72891" t="147.501"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3210" x="1.39602424158" y="0.4072203125" z="-2.00562749269">
+        <neutronic p="5.85394" r="4.72897" t="147.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3211" x="1.39602424158" y="0.44540234375" z="-2.00562749269">
+        <neutronic p="6.94002" r="4.729" t="147.4"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3212" x="1.39602424158" y="0.483584375" z="-2.00562749269">
+        <neutronic p="8.02186" r="4.72901" t="147.335"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3213" x="1.39602424158" y="0.52176640625" z="-2.00562749269">
+        <neutronic p="9.09871" r="4.72898" t="147.262"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3214" x="1.39602424158" y="0.5599484375" z="-2.00562749269">
+        <neutronic p="10.1698" r="4.72893" t="147.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3215" x="1.39602424158" y="0.59813046875" z="-2.00562749269">
+        <neutronic p="11.2345" r="4.72885" t="147.087"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3216" x="1.39602424158" y="0.6363125" z="-2.00562749269">
+        <neutronic p="12.2921" r="4.72874" t="146.987"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3217" x="1.39602424158" y="0.67449453125" z="-2.00562749269">
+        <neutronic p="13.342" r="4.7286" t="146.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3218" x="1.39602424158" y="0.7126765625" z="-2.00562749269">
+        <neutronic p="14.3834" r="4.72843" t="146.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3219" x="1.39602424158" y="0.75085859375" z="-2.00562749269">
+        <neutronic p="15.4159" r="4.72824" t="146.634"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3220" x="1.39602424158" y="0.789040625" z="-2.00562749269">
+        <neutronic p="16.4389" r="4.72801" t="146.499"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3221" x="1.39602424158" y="0.82722265625" z="-2.00562749269">
+        <neutronic p="17.4519" r="4.72776" t="146.357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3222" x="1.39602424158" y="0.8654046875" z="-2.00562749269">
+        <neutronic p="18.4543" r="4.72748" t="146.207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3223" x="1.39602424158" y="0.90358671875" z="-2.00562749269">
+        <neutronic p="19.4457" r="4.72717" t="146.05"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3224" x="1.39602424158" y="0.94176875" z="-2.00562749269">
+        <neutronic p="20.4257" r="4.72684" t="145.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3225" x="1.39602424158" y="0.97995078125" z="-2.00562749269">
+        <neutronic p="21.394" r="4.72647" t="145.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3226" x="1.39602424158" y="1.0181328125" z="-2.00562749269">
+        <neutronic p="22.3502" r="4.72608" t="145.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3227" x="1.39602424158" y="1.05631484375" z="-2.00562749269">
+        <neutronic p="23.2939" r="4.72566" t="145.349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3228" x="1.39602424158" y="1.094496875" z="-2.00562749269">
+        <neutronic p="24.225" r="4.72521" t="145.157"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3229" x="1.39602424158" y="1.13267890625" z="-2.00562749269">
+        <neutronic p="25.1431" r="4.72474" t="144.958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3230" x="1.39602424158" y="1.1708609375" z="-2.00562749269">
+        <neutronic p="26.0481" r="4.72424" t="144.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3231" x="1.39602424158" y="1.20904296875" z="-2.00562749269">
+        <neutronic p="26.9398" r="4.72371" t="144.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3232" x="1.39602424158" y="1.247225" z="-2.00562749269">
+        <neutronic p="27.8181" r="4.72315" t="144.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3233" x="1.39602424158" y="1.28540703125" z="-2.00562749269">
+        <neutronic p="28.6829" r="4.72257" t="144.109"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3234" x="1.39602424158" y="1.3235890625" z="-2.00562749269">
+        <neutronic p="29.534" r="4.72196" t="143.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3235" x="1.39602424158" y="1.36177109375" z="-2.00562749269">
+        <neutronic p="30.3714" r="4.72133" t="143.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3236" x="1.39602424158" y="1.399953125" z="-2.00562749269">
+        <neutronic p="31.1952" r="4.72066" t="143.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3237" x="1.39602424158" y="1.43813515625" z="-2.00562749269">
+        <neutronic p="32.0052" r="4.71998" t="143.18"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3238" x="1.39602424158" y="1.4763171875" z="-2.00562749269">
+        <neutronic p="32.8015" r="4.71926" t="142.937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3239" x="1.39602424158" y="1.51449921875" z="-2.00562749269">
+        <neutronic p="33.5841" r="4.71852" t="142.691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3240" x="1.39602424158" y="1.55268125" z="-2.00562749269">
+        <neutronic p="34.3532" r="4.71776" t="142.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3241" x="1.39602424158" y="1.59086328125" z="-2.00562749269">
+        <neutronic p="35.1087" r="4.71697" t="142.187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3242" x="1.39602424158" y="1.6290453125" z="-2.00562749269">
+        <neutronic p="35.8508" r="4.71616" t="141.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3243" x="1.39602424158" y="1.66722734375" z="-2.00562749269">
+        <neutronic p="36.5796" r="4.71532" t="141.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3244" x="1.39602424158" y="1.705409375" z="-2.00562749269">
+        <neutronic p="37.2951" r="4.71445" t="141.41"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3245" x="1.39602424158" y="1.74359140625" z="-2.00562749269">
+        <neutronic p="37.9976" r="4.71356" t="141.145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3246" x="1.39602424158" y="1.7817734375" z="-2.00562749269">
+        <neutronic p="38.6872" r="4.71265" t="140.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3247" x="1.39602424158" y="1.81995546875" z="-2.00562749269">
+        <neutronic p="39.3639" r="4.71172" t="140.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3248" x="1.39602424158" y="1.8581375" z="-2.00562749269">
+        <neutronic p="40.0281" r="4.71076" t="140.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3249" x="1.39602424158" y="1.89631953125" z="-2.00562749269">
+        <neutronic p="40.6798" r="4.70977" t="140.067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3269" x="1.30096548187" y="0.21631015625" z="-2.06855363418">
+        <neutronic p="0.419125" r="4.72838" t="150.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3270" x="1.30096548187" y="0.2544921875" z="-2.06855363418">
+        <neutronic p="1.60459" r="4.72855" t="150.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3271" x="1.30096548187" y="0.29267421875" z="-2.06855363418">
+        <neutronic p="2.78954" r="4.7287" t="150.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3272" x="1.30096548187" y="0.33085625" z="-2.06855363418">
+        <neutronic p="3.97296" r="4.72882" t="150.253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3273" x="1.30096548187" y="0.36903828125" z="-2.06855363418">
+        <neutronic p="5.15385" r="4.72891" t="150.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3274" x="1.30096548187" y="0.4072203125" z="-2.06855363418">
+        <neutronic p="6.33119" r="4.72897" t="150.162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3275" x="1.30096548187" y="0.44540234375" z="-2.06855363418">
+        <neutronic p="7.50401" r="4.729" t="150.1"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3276" x="1.30096548187" y="0.483584375" z="-2.06855363418">
+        <neutronic p="8.67135" r="4.72901" t="150.028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3277" x="1.30096548187" y="0.52176640625" z="-2.06855363418">
+        <neutronic p="9.83228" r="4.72898" t="149.947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3278" x="1.30096548187" y="0.5599484375" z="-2.06855363418">
+        <neutronic p="10.9859" r="4.72893" t="149.855"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3279" x="1.30096548187" y="0.59813046875" z="-2.06855363418">
+        <neutronic p="12.1313" r="4.72885" t="149.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3280" x="1.30096548187" y="0.6363125" z="-2.06855363418">
+        <neutronic p="13.2677" r="4.72874" t="149.641"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3281" x="1.30096548187" y="0.67449453125" z="-2.06855363418">
+        <neutronic p="14.3943" r="4.7286" t="149.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3282" x="1.30096548187" y="0.7126765625" z="-2.06855363418">
+        <neutronic p="15.5104" r="4.72843" t="149.39"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3283" x="1.30096548187" y="0.75085859375" z="-2.06855363418">
+        <neutronic p="16.6152" r="4.72824" t="149.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3284" x="1.30096548187" y="0.789040625" z="-2.06855363418">
+        <neutronic p="17.7082" r="4.72801" t="149.102"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3285" x="1.30096548187" y="0.82722265625" z="-2.06855363418">
+        <neutronic p="18.7887" r="4.72776" t="148.944"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3286" x="1.30096548187" y="0.8654046875" z="-2.06855363418">
+        <neutronic p="19.8561" r="4.72748" t="148.779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3287" x="1.30096548187" y="0.90358671875" z="-2.06855363418">
+        <neutronic p="20.9099" r="4.72717" t="148.605"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3288" x="1.30096548187" y="0.94176875" z="-2.06855363418">
+        <neutronic p="21.9498" r="4.72684" t="148.423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3289" x="1.30096548187" y="0.97995078125" z="-2.06855363418">
+        <neutronic p="22.9753" r="4.72647" t="148.234"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3290" x="1.30096548187" y="1.0181328125" z="-2.06855363418">
+        <neutronic p="23.986" r="4.72608" t="148.037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3291" x="1.30096548187" y="1.05631484375" z="-2.06855363418">
+        <neutronic p="24.9817" r="4.72566" t="147.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3292" x="1.30096548187" y="1.094496875" z="-2.06855363418">
+        <neutronic p="25.962" r="4.72521" t="147.622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3293" x="1.30096548187" y="1.13267890625" z="-2.06855363418">
+        <neutronic p="26.9268" r="4.72474" t="147.404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3294" x="1.30096548187" y="1.1708609375" z="-2.06855363418">
+        <neutronic p="27.8759" r="4.72424" t="147.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3295" x="1.30096548187" y="1.20904296875" z="-2.06855363418">
+        <neutronic p="28.8091" r="4.72371" t="146.951"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3296" x="1.30096548187" y="1.247225" z="-2.06855363418">
+        <neutronic p="29.7264" r="4.72315" t="146.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3297" x="1.30096548187" y="1.28540703125" z="-2.06855363418">
+        <neutronic p="30.6276" r="4.72257" t="146.475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3298" x="1.30096548187" y="1.3235890625" z="-2.06855363418">
+        <neutronic p="31.5128" r="4.72196" t="146.229"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3299" x="1.30096548187" y="1.36177109375" z="-2.06855363418">
+        <neutronic p="32.382" r="4.72133" t="145.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3300" x="1.30096548187" y="1.399953125" z="-2.06855363418">
+        <neutronic p="33.2352" r="4.72066" t="145.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3301" x="1.30096548187" y="1.43813515625" z="-2.06855363418">
+        <neutronic p="34.0724" r="4.71998" t="145.462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3302" x="1.30096548187" y="1.4763171875" z="-2.06855363418">
+        <neutronic p="34.8938" r="4.71926" t="145.198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3303" x="1.30096548187" y="1.51449921875" z="-2.06855363418">
+        <neutronic p="35.6995" r="4.71852" t="144.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3304" x="1.30096548187" y="1.55268125" z="-2.06855363418">
+        <neutronic p="36.4895" r="4.71776" t="144.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3305" x="1.30096548187" y="1.59086328125" z="-2.06855363418">
+        <neutronic p="37.2641" r="4.71697" t="144.385"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3306" x="1.30096548187" y="1.6290453125" z="-2.06855363418">
+        <neutronic p="38.0234" r="4.71616" t="144.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3307" x="1.30096548187" y="1.66722734375" z="-2.06855363418">
+        <neutronic p="38.7676" r="4.71532" t="143.826"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3308" x="1.30096548187" y="1.705409375" z="-2.06855363418">
+        <neutronic p="39.4969" r="4.71445" t="143.543"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3309" x="1.30096548187" y="1.74359140625" z="-2.06855363418">
+        <neutronic p="40.2115" r="4.71356" t="143.258"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3310" x="1.30096548187" y="1.7817734375" z="-2.06855363418">
+        <neutronic p="40.9116" r="4.71265" t="142.97"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3311" x="1.30096548187" y="1.81995546875" z="-2.06855363418">
+        <neutronic p="41.5975" r="4.71172" t="142.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3312" x="1.30096548187" y="1.8581375" z="-2.06855363418">
+        <neutronic p="42.2693" r="4.71076" t="142.389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3313" x="1.30096548187" y="1.89631953125" z="-2.06855363418">
+        <neutronic p="42.9274" r="4.70977" t="142.096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3333" x="1.20307537561" y="0.21631015625" z="-2.12697789436">
+        <neutronic p="0.457771" r="4.72838" t="153.034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3334" x="1.20307537561" y="0.2544921875" z="-2.12697789436">
+        <neutronic p="1.75245" r="4.72855" t="153.024"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3335" x="1.20307537561" y="0.29267421875" z="-2.12697789436">
+        <neutronic p="3.0463" r="4.7287" t="153.002"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3336" x="1.20307537561" y="0.33085625" z="-2.12697789436">
+        <neutronic p="4.33797" r="4.72882" t="152.968"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3337" x="1.20307537561" y="0.36903828125" z="-2.12697789436">
+        <neutronic p="5.62616" r="4.72891" t="152.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3338" x="1.20307537561" y="0.4072203125" z="-2.12697789436">
+        <neutronic p="6.90958" r="4.72897" t="152.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3339" x="1.20307537561" y="0.44540234375" z="-2.12697789436">
+        <neutronic p="8.18696" r="4.729" t="152.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3340" x="1.20307537561" y="0.483584375" z="-2.12697789436">
+        <neutronic p="9.45708" r="4.72901" t="152.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3341" x="1.20307537561" y="0.52176640625" z="-2.12697789436">
+        <neutronic p="10.7188" r="4.72898" t="152.625"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3342" x="1.20307537561" y="0.5599484375" z="-2.12697789436">
+        <neutronic p="11.9708" r="4.72893" t="152.522"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3343" x="1.20307537561" y="0.59813046875" z="-2.12697789436">
+        <neutronic p="13.2123" r="4.72885" t="152.408"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3344" x="1.20307537561" y="0.6363125" z="-2.12697789436">
+        <neutronic p="14.442" r="4.72874" t="152.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3345" x="1.20307537561" y="0.67449453125" z="-2.12697789436">
+        <neutronic p="15.6591" r="4.7286" t="152.149"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3346" x="1.20307537561" y="0.7126765625" z="-2.12697789436">
+        <neutronic p="16.8626" r="4.72843" t="152.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3347" x="1.20307537561" y="0.75085859375" z="-2.12697789436">
+        <neutronic p="18.0517" r="4.72824" t="151.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3348" x="1.20307537561" y="0.789040625" z="-2.12697789436">
+        <neutronic p="19.2257" r="4.72801" t="151.683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3349" x="1.20307537561" y="0.82722265625" z="-2.12697789436">
+        <neutronic p="20.3839" r="4.72776" t="151.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3350" x="1.20307537561" y="0.8654046875" z="-2.12697789436">
+        <neutronic p="21.5256" r="4.72748" t="151.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3351" x="1.20307537561" y="0.90358671875" z="-2.12697789436">
+        <neutronic p="22.6504" r="4.72717" t="151.133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3352" x="1.20307537561" y="0.94176875" z="-2.12697789436">
+        <neutronic p="23.7576" r="4.72684" t="150.932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3353" x="1.20307537561" y="0.97995078125" z="-2.12697789436">
+        <neutronic p="24.847" r="4.72647" t="150.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3354" x="1.20307537561" y="1.0181328125" z="-2.12697789436">
+        <neutronic p="25.9181" r="4.72608" t="150.505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3355" x="1.20307537561" y="1.05631484375" z="-2.12697789436">
+        <neutronic p="26.9707" r="4.72566" t="150.28"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3356" x="1.20307537561" y="1.094496875" z="-2.12697789436">
+        <neutronic p="28.0045" r="4.72521" t="150.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3357" x="1.20307537561" y="1.13267890625" z="-2.12697789436">
+        <neutronic p="29.0194" r="4.72474" t="149.809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3358" x="1.20307537561" y="1.1708609375" z="-2.12697789436">
+        <neutronic p="30.0153" r="4.72424" t="149.563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3359" x="1.20307537561" y="1.20904296875" z="-2.12697789436">
+        <neutronic p="30.9921" r="4.72371" t="149.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3360" x="1.20307537561" y="1.247225" z="-2.12697789436">
+        <neutronic p="31.9498" r="4.72315" t="149.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3361" x="1.20307537561" y="1.28540703125" z="-2.12697789436">
+        <neutronic p="32.8884" r="4.72257" t="148.79"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3362" x="1.20307537561" y="1.3235890625" z="-2.12697789436">
+        <neutronic p="33.808" r="4.72196" t="148.521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3363" x="1.20307537561" y="1.36177109375" z="-2.12697789436">
+        <neutronic p="34.7086" r="4.72133" t="148.247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3364" x="1.20307537561" y="1.399953125" z="-2.12697789436">
+        <neutronic p="35.5905" r="4.72066" t="147.968"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3365" x="1.20307537561" y="1.43813515625" z="-2.12697789436">
+        <neutronic p="36.4538" r="4.71998" t="147.685"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3366" x="1.20307537561" y="1.4763171875" z="-2.12697789436">
+        <neutronic p="37.2987" r="4.71926" t="147.398"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3367" x="1.20307537561" y="1.51449921875" z="-2.12697789436">
+        <neutronic p="38.1254" r="4.71852" t="147.108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3368" x="1.20307537561" y="1.55268125" z="-2.12697789436">
+        <neutronic p="38.9342" r="4.71776" t="146.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3369" x="1.20307537561" y="1.59086328125" z="-2.12697789436">
+        <neutronic p="39.7252" r="4.71697" t="146.516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3370" x="1.20307537561" y="1.6290453125" z="-2.12697789436">
+        <neutronic p="40.4989" r="4.71616" t="146.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3371" x="1.20307537561" y="1.66722734375" z="-2.12697789436">
+        <neutronic p="41.2554" r="4.71532" t="145.912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3372" x="1.20307537561" y="1.705409375" z="-2.12697789436">
+        <neutronic p="41.9951" r="4.71445" t="145.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3373" x="1.20307537561" y="1.74359140625" z="-2.12697789436">
+        <neutronic p="42.7183" r="4.71356" t="145.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3374" x="1.20307537561" y="1.7817734375" z="-2.12697789436">
+        <neutronic p="43.4253" r="4.71265" t="144.988"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3375" x="1.20307537561" y="1.81995546875" z="-2.12697789436">
+        <neutronic p="44.1164" r="4.71172" t="144.676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3376" x="1.20307537561" y="1.8581375" z="-2.12697789436">
+        <neutronic p="44.792" r="4.71076" t="144.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3377" x="1.20307537561" y="1.89631953125" z="-2.12697789436">
+        <neutronic p="45.4524" r="4.70977" t="144.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3397" x="1.1025669652" y="0.21631015625" z="-2.18077312202">
+        <neutronic p="0.505523" r="4.72838" t="155.756"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3398" x="1.1025669652" y="0.2544921875" z="-2.18077312202">
+        <neutronic p="1.93514" r="4.72855" t="155.744"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3399" x="1.1025669652" y="0.29267421875" z="-2.18077312202">
+        <neutronic p="3.36339" r="4.7287" t="155.719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3400" x="1.1025669652" y="0.33085625" z="-2.18077312202">
+        <neutronic p="4.7885" r="4.72882" t="155.681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3401" x="1.1025669652" y="0.36903828125" z="-2.18077312202">
+        <neutronic p="6.20871" r="4.72891" t="155.63"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3402" x="1.1025669652" y="0.4072203125" z="-2.18077312202">
+        <neutronic p="7.6223" r="4.72897" t="155.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3403" x="1.1025669652" y="0.44540234375" z="-2.18077312202">
+        <neutronic p="9.02761" r="4.729" t="155.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3404" x="1.1025669652" y="0.483584375" z="-2.18077312202">
+        <neutronic p="10.423" r="4.72901" t="155.397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3405" x="1.1025669652" y="0.52176640625" z="-2.18077312202">
+        <neutronic p="11.807" r="4.72898" t="155.294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3406" x="1.1025669652" y="0.5599484375" z="-2.18077312202">
+        <neutronic p="13.178" r="4.72893" t="155.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3407" x="1.1025669652" y="0.59813046875" z="-2.18077312202">
+        <neutronic p="14.5348" r="4.72885" t="155.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3408" x="1.1025669652" y="0.6363125" z="-2.18077312202">
+        <neutronic p="15.876" r="4.72874" t="154.911"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3409" x="1.1025669652" y="0.67449453125" z="-2.18077312202">
+        <neutronic p="17.2004" r="4.7286" t="154.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3410" x="1.1025669652" y="0.7126765625" z="-2.18077312202">
+        <neutronic p="18.507" r="4.72843" t="154.597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3411" x="1.1025669652" y="0.75085859375" z="-2.18077312202">
+        <neutronic p="19.7947" r="4.72824" t="154.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3412" x="1.1025669652" y="0.789040625" z="-2.18077312202">
+        <neutronic p="21.0628" r="4.72801" t="154.239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3413" x="1.1025669652" y="0.82722265625" z="-2.18077312202">
+        <neutronic p="22.3103" r="4.72776" t="154.044"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3414" x="1.1025669652" y="0.8654046875" z="-2.18077312202">
+        <neutronic p="23.5367" r="4.72748" t="153.84"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3415" x="1.1025669652" y="0.90358671875" z="-2.18077312202">
+        <neutronic p="24.7413" r="4.72717" t="153.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3416" x="1.1025669652" y="0.94176875" z="-2.18077312202">
+        <neutronic p="25.9238" r="4.72684" t="153.402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3417" x="1.1025669652" y="0.97995078125" z="-2.18077312202">
+        <neutronic p="27.0837" r="4.72647" t="153.17"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3418" x="1.1025669652" y="1.0181328125" z="-2.18077312202">
+        <neutronic p="28.2207" r="4.72608" t="152.929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3419" x="1.1025669652" y="1.05631484375" z="-2.18077312202">
+        <neutronic p="29.3346" r="4.72566" t="152.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3420" x="1.1025669652" y="1.094496875" z="-2.18077312202">
+        <neutronic p="30.4252" r="4.72521" t="152.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3421" x="1.1025669652" y="1.13267890625" z="-2.18077312202">
+        <neutronic p="31.4926" r="4.72474" t="152.16"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3422" x="1.1025669652" y="1.1708609375" z="-2.18077312202">
+        <neutronic p="32.5368" r="4.72424" t="151.89"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3423" x="1.1025669652" y="1.20904296875" z="-2.18077312202">
+        <neutronic p="33.5577" r="4.72371" t="151.613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3424" x="1.1025669652" y="1.247225" z="-2.18077312202">
+        <neutronic p="34.5556" r="4.72315" t="151.33"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3425" x="1.1025669652" y="1.28540703125" z="-2.18077312202">
+        <neutronic p="35.5306" r="4.72257" t="151.041"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3426" x="1.1025669652" y="1.3235890625" z="-2.18077312202">
+        <neutronic p="36.4829" r="4.72196" t="150.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3427" x="1.1025669652" y="1.36177109375" z="-2.18077312202">
+        <neutronic p="37.4129" r="4.72133" t="150.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3428" x="1.1025669652" y="1.399953125" z="-2.18077312202">
+        <neutronic p="38.3207" r="4.72066" t="150.144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3429" x="1.1025669652" y="1.43813515625" z="-2.18077312202">
+        <neutronic p="39.2068" r="4.71998" t="149.836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3430" x="1.1025669652" y="1.4763171875" z="-2.18077312202">
+        <neutronic p="40.0715" r="4.71926" t="149.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3431" x="1.1025669652" y="1.51449921875" z="-2.18077312202">
+        <neutronic p="40.9151" r="4.71852" t="149.208"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3432" x="1.1025669652" y="1.55268125" z="-2.18077312202">
+        <neutronic p="41.7381" r="4.71776" t="148.889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3433" x="1.1025669652" y="1.59086328125" z="-2.18077312202">
+        <neutronic p="42.5409" r="4.71697" t="148.566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3434" x="1.1025669652" y="1.6290453125" z="-2.18077312202">
+        <neutronic p="43.3239" r="4.71616" t="148.241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3435" x="1.1025669652" y="1.66722734375" z="-2.18077312202">
+        <neutronic p="44.0876" r="4.71532" t="147.914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3436" x="1.1025669652" y="1.705409375" z="-2.18077312202">
+        <neutronic p="44.8323" r="4.71445" t="147.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3437" x="1.1025669652" y="1.74359140625" z="-2.18077312202">
+        <neutronic p="45.5586" r="4.71356" t="147.252"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3438" x="1.1025669652" y="1.7817734375" z="-2.18077312202">
+        <neutronic p="46.2668" r="4.71265" t="146.919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3439" x="1.1025669652" y="1.81995546875" z="-2.18077312202">
+        <neutronic p="46.9575" r="4.71172" t="146.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3440" x="1.1025669652" y="1.8581375" z="-2.18077312202">
+        <neutronic p="47.631" r="4.71076" t="146.247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3441" x="1.1025669652" y="1.89631953125" z="-2.18077312202">
+        <neutronic p="48.2879" r="4.70977" t="145.91"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3461" x="0.999658991385" y="0.21631015625" z="-2.22982224032">
+        <neutronic p="0.565823" r="4.72838" t="158.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3462" x="0.999658991385" y="0.2544921875" z="-2.22982224032">
+        <neutronic p="2.16577" r="4.72855" t="158.464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3463" x="0.999658991385" y="0.29267421875" z="-2.22982224032">
+        <neutronic p="3.76352" r="4.7287" t="158.436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3464" x="0.999658991385" y="0.33085625" z="-2.22982224032">
+        <neutronic p="5.35657" r="4.72882" t="158.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3465" x="0.999658991385" y="0.36903828125" z="-2.22982224032">
+        <neutronic p="6.9425" r="4.72891" t="158.334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3466" x="0.999658991385" y="0.4072203125" z="-2.22982224032">
+        <neutronic p="8.51892" r="4.72897" t="158.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3467" x="0.999658991385" y="0.44540234375" z="-2.22982224032">
+        <neutronic p="10.0836" r="4.729" t="158.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3468" x="0.999658991385" y="0.483584375" z="-2.22982224032">
+        <neutronic p="11.6342" r="4.72901" t="158.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3469" x="0.999658991385" y="0.52176640625" z="-2.22982224032">
+        <neutronic p="13.1688" r="4.72898" t="157.952"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3470" x="0.999658991385" y="0.5599484375" z="-2.22982224032">
+        <neutronic p="14.6855" r="4.72893" t="157.821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3471" x="0.999658991385" y="0.59813046875" z="-2.22982224032">
+        <neutronic p="16.1824" r="4.72885" t="157.676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3472" x="0.999658991385" y="0.6363125" z="-2.22982224032">
+        <neutronic p="17.6579" r="4.72874" t="157.518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3473" x="0.999658991385" y="0.67449453125" z="-2.22982224032">
+        <neutronic p="19.1105" r="4.7286" t="157.347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3474" x="0.999658991385" y="0.7126765625" z="-2.22982224032">
+        <neutronic p="20.539" r="4.72843" t="157.163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3475" x="0.999658991385" y="0.75085859375" z="-2.22982224032">
+        <neutronic p="21.9422" r="4.72824" t="156.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3476" x="0.999658991385" y="0.789040625" z="-2.22982224032">
+        <neutronic p="23.319" r="4.72801" t="156.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3477" x="0.999658991385" y="0.82722265625" z="-2.22982224032">
+        <neutronic p="24.6688" r="4.72776" t="156.541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3478" x="0.999658991385" y="0.8654046875" z="-2.22982224032">
+        <neutronic p="25.9908" r="4.72748" t="156.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3479" x="0.999658991385" y="0.90358671875" z="-2.22982224032">
+        <neutronic p="27.2844" r="4.72717" t="156.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3480" x="0.999658991385" y="0.94176875" z="-2.22982224032">
+        <neutronic p="28.5494" r="4.72684" t="155.823"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3481" x="0.999658991385" y="0.97995078125" z="-2.22982224032">
+        <neutronic p="29.7854" r="4.72647" t="155.564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3482" x="0.999658991385" y="1.0181328125" z="-2.22982224032">
+        <neutronic p="30.9923" r="4.72608" t="155.296"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3483" x="0.999658991385" y="1.05631484375" z="-2.22982224032">
+        <neutronic p="32.1701" r="4.72566" t="155.02"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3484" x="0.999658991385" y="1.094496875" z="-2.22982224032">
+        <neutronic p="33.3188" r="4.72521" t="154.736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3485" x="0.999658991385" y="1.13267890625" z="-2.22982224032">
+        <neutronic p="34.4386" r="4.72474" t="154.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3486" x="0.999658991385" y="1.1708609375" z="-2.22982224032">
+        <neutronic p="35.5298" r="4.72424" t="154.147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3487" x="0.999658991385" y="1.20904296875" z="-2.22982224032">
+        <neutronic p="36.5926" r="4.72371" t="153.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3488" x="0.999658991385" y="1.247225" z="-2.22982224032">
+        <neutronic p="37.6274" r="4.72315" t="153.53"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3489" x="0.999658991385" y="1.28540703125" z="-2.22982224032">
+        <neutronic p="38.6348" r="4.72257" t="153.214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3490" x="0.999658991385" y="1.3235890625" z="-2.22982224032">
+        <neutronic p="39.6151" r="4.72196" t="152.891"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3491" x="0.999658991385" y="1.36177109375" z="-2.22982224032">
+        <neutronic p="40.5688" r="4.72133" t="152.564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3492" x="0.999658991385" y="1.399953125" z="-2.22982224032">
+        <neutronic p="41.4966" r="4.72066" t="152.233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3493" x="0.999658991385" y="1.43813515625" z="-2.22982224032">
+        <neutronic p="42.3989" r="4.71998" t="151.897"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3494" x="0.999658991385" y="1.4763171875" z="-2.22982224032">
+        <neutronic p="43.2765" r="4.71926" t="151.558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3495" x="0.999658991385" y="1.51449921875" z="-2.22982224032">
+        <neutronic p="44.1298" r="4.71852" t="151.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3496" x="0.999658991385" y="1.55268125" z="-2.22982224032">
+        <neutronic p="44.9595" r="4.71776" t="150.869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3497" x="0.999658991385" y="1.59086328125" z="-2.22982224032">
+        <neutronic p="45.7663" r="4.71697" t="150.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3498" x="0.999658991385" y="1.6290453125" z="-2.22982224032">
+        <neutronic p="46.5507" r="4.71616" t="150.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3499" x="0.999658991385" y="1.66722734375" z="-2.22982224032">
+        <neutronic p="47.3133" r="4.71532" t="149.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3500" x="0.999658991385" y="1.705409375" z="-2.22982224032">
+        <neutronic p="48.0549" r="4.71445" t="149.46"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3501" x="0.999658991385" y="1.74359140625" z="-2.22982224032">
+        <neutronic p="48.7761" r="4.71356" t="149.104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3502" x="0.999658991385" y="1.7817734375" z="-2.22982224032">
+        <neutronic p="49.4773" r="4.71265" t="148.745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3503" x="0.999658991385" y="1.81995546875" z="-2.22982224032">
+        <neutronic p="50.1593" r="4.71172" t="148.386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3504" x="0.999658991385" y="1.8581375" z="-2.22982224032">
+        <neutronic p="50.8227" r="4.71076" t="148.026"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3505" x="0.999658991385" y="1.89631953125" z="-2.22982224032">
+        <neutronic p="51.4679" r="4.70977" t="147.665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3525" x="0.894575417156" y="0.21631015625" z="-2.27401850158">
+        <neutronic p="0.644106" r="4.72838" t="161.199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3526" x="0.894575417156" y="0.2544921875" z="-2.27401850158">
+        <neutronic p="2.46509" r="4.72855" t="161.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3527" x="0.894575417156" y="0.29267421875" z="-2.27401850158">
+        <neutronic p="4.28243" r="4.7287" t="161.151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3528" x="0.894575417156" y="0.33085625" z="-2.27401850158">
+        <neutronic p="6.09249" r="4.72882" t="161.101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3529" x="0.894575417156" y="0.36903828125" z="-2.27401850158">
+        <neutronic p="7.89171" r="4.72891" t="161.033"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3530" x="0.894575417156" y="0.4072203125" z="-2.27401850158">
+        <neutronic p="9.67666" r="4.72897" t="160.948"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3531" x="0.894575417156" y="0.44540234375" z="-2.27401850158">
+        <neutronic p="11.4441" r="4.729" t="160.846"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3532" x="0.894575417156" y="0.483584375" z="-2.27401850158">
+        <neutronic p="13.1909" r="4.72901" t="160.728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3533" x="0.894575417156" y="0.52176640625" z="-2.27401850158">
+        <neutronic p="14.9143" r="4.72898" t="160.593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3534" x="0.894575417156" y="0.5599484375" z="-2.27401850158">
+        <neutronic p="16.6117" r="4.72893" t="160.442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3535" x="0.894575417156" y="0.59813046875" z="-2.27401850158">
+        <neutronic p="18.2807" r="4.72885" t="160.276"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3536" x="0.894575417156" y="0.6363125" z="-2.27401850158">
+        <neutronic p="19.9193" r="4.72874" t="160.095"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3537" x="0.894575417156" y="0.67449453125" z="-2.27401850158">
+        <neutronic p="21.5256" r="4.7286" t="159.9"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3538" x="0.894575417156" y="0.7126765625" z="-2.27401850158">
+        <neutronic p="23.0982" r="4.72843" t="159.691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3539" x="0.894575417156" y="0.75085859375" z="-2.27401850158">
+        <neutronic p="24.6358" r="4.72824" t="159.468"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3540" x="0.894575417156" y="0.789040625" z="-2.27401850158">
+        <neutronic p="26.1374" r="4.72801" t="159.233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3541" x="0.894575417156" y="0.82722265625" z="-2.27401850158">
+        <neutronic p="27.6023" r="4.72776" t="158.986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3542" x="0.894575417156" y="0.8654046875" z="-2.27401850158">
+        <neutronic p="29.0299" r="4.72748" t="158.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3543" x="0.894575417156" y="0.90358671875" z="-2.27401850158">
+        <neutronic p="30.4198" r="4.72717" t="158.457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3544" x="0.894575417156" y="0.94176875" z="-2.27401850158">
+        <neutronic p="31.7721" r="4.72684" t="158.177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3545" x="0.894575417156" y="0.97995078125" z="-2.27401850158">
+        <neutronic p="33.0867" r="4.72647" t="157.887"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3546" x="0.894575417156" y="1.0181328125" z="-2.27401850158">
+        <neutronic p="34.3639" r="4.72608" t="157.589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3547" x="0.894575417156" y="1.05631484375" z="-2.27401850158">
+        <neutronic p="35.604" r="4.72566" t="157.281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3548" x="0.894575417156" y="1.094496875" z="-2.27401850158">
+        <neutronic p="36.8075" r="4.72521" t="156.965"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3549" x="0.894575417156" y="1.13267890625" z="-2.27401850158">
+        <neutronic p="37.9749" r="4.72474" t="156.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3550" x="0.894575417156" y="1.1708609375" z="-2.27401850158">
+        <neutronic p="39.1069" r="4.72424" t="156.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3551" x="0.894575417156" y="1.20904296875" z="-2.27401850158">
+        <neutronic p="40.2043" r="4.72371" t="155.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3552" x="0.894575417156" y="1.247225" z="-2.27401850158">
+        <neutronic p="41.2678" r="4.72315" t="155.633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3553" x="0.894575417156" y="1.28540703125" z="-2.27401850158">
+        <neutronic p="42.2983" r="4.72257" t="155.286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3554" x="0.894575417156" y="1.3235890625" z="-2.27401850158">
+        <neutronic p="43.2966" r="4.72196" t="154.933"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3555" x="0.894575417156" y="1.36177109375" z="-2.27401850158">
+        <neutronic p="44.2637" r="4.72133" t="154.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3556" x="0.894575417156" y="1.399953125" z="-2.27401850158">
+        <neutronic p="45.2004" r="4.72066" t="154.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3557" x="0.894575417156" y="1.43813515625" z="-2.27401850158">
+        <neutronic p="46.1076" r="4.71998" t="153.848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3558" x="0.894575417156" y="1.4763171875" z="-2.27401850158">
+        <neutronic p="46.9864" r="4.71926" t="153.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3559" x="0.894575417156" y="1.51449921875" z="-2.27401850158">
+        <neutronic p="47.8375" r="4.71852" t="153.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3560" x="0.894575417156" y="1.55268125" z="-2.27401850158">
+        <neutronic p="48.662" r="4.71776" t="152.733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3561" x="0.894575417156" y="1.59086328125" z="-2.27401850158">
+        <neutronic p="49.4607" r="4.71697" t="152.356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3562" x="0.894575417156" y="1.6290453125" z="-2.27401850158">
+        <neutronic p="50.2346" r="4.71616" t="151.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3563" x="0.894575417156" y="1.66722734375" z="-2.27401850158">
+        <neutronic p="50.9844" r="4.71532" t="151.597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3564" x="0.894575417156" y="1.705409375" z="-2.27401850158">
+        <neutronic p="51.711" r="4.71445" t="151.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3565" x="0.894575417156" y="1.74359140625" z="-2.27401850158">
+        <neutronic p="52.4154" r="4.71356" t="150.832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3566" x="0.894575417156" y="1.7817734375" z="-2.27401850158">
+        <neutronic p="53.0981" r="4.71265" t="150.449"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3567" x="0.894575417156" y="1.81995546875" z="-2.27401850158">
+        <neutronic p="53.7602" r="4.71172" t="150.064"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3568" x="0.894575417156" y="1.8581375" z="-2.27401850158">
+        <neutronic p="54.4022" r="4.71076" t="149.679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="3569" x="0.894575417156" y="1.89631953125" z="-2.27401850158">
+        <neutronic p="55.025" r="4.70977" t="149.294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+  </type>
+  <idlist idname="bank1">
+    <id val="5"/>
+    <id val="6"/>
+    <id val="7"/>
+    <id val="8"/>
+    <id val="9"/>
+    <id val="10"/>
+    <id val="11"/>
+    <id val="12"/>
+    <id val="13"/>
+    <id val="14"/>
+    <id val="15"/>
+    <id val="16"/>
+    <id val="17"/>
+    <id val="18"/>
+    <id val="19"/>
+    <id val="20"/>
+    <id val="21"/>
+    <id val="22"/>
+    <id val="23"/>
+    <id val="24"/>
+    <id val="25"/>
+    <id val="26"/>
+    <id val="27"/>
+    <id val="28"/>
+    <id val="29"/>
+    <id val="30"/>
+    <id val="31"/>
+    <id val="32"/>
+    <id val="33"/>
+    <id val="34"/>
+    <id val="35"/>
+    <id val="36"/>
+    <id val="37"/>
+    <id val="38"/>
+    <id val="39"/>
+    <id val="40"/>
+    <id val="41"/>
+    <id val="42"/>
+    <id val="43"/>
+    <id val="44"/>
+    <id val="45"/>
+    <id val="46"/>
+    <id val="47"/>
+    <id val="48"/>
+    <id val="49"/>
+    <id val="69"/>
+    <id val="70"/>
+    <id val="71"/>
+    <id val="72"/>
+    <id val="73"/>
+    <id val="74"/>
+    <id val="75"/>
+    <id val="76"/>
+    <id val="77"/>
+    <id val="78"/>
+    <id val="79"/>
+    <id val="80"/>
+    <id val="81"/>
+    <id val="82"/>
+    <id val="83"/>
+    <id val="84"/>
+    <id val="85"/>
+    <id val="86"/>
+    <id val="87"/>
+    <id val="88"/>
+    <id val="89"/>
+    <id val="90"/>
+    <id val="91"/>
+    <id val="92"/>
+    <id val="93"/>
+    <id val="94"/>
+    <id val="95"/>
+    <id val="96"/>
+    <id val="97"/>
+    <id val="98"/>
+    <id val="99"/>
+    <id val="100"/>
+    <id val="101"/>
+    <id val="102"/>
+    <id val="103"/>
+    <id val="104"/>
+    <id val="105"/>
+    <id val="106"/>
+    <id val="107"/>
+    <id val="108"/>
+    <id val="109"/>
+    <id val="110"/>
+    <id val="111"/>
+    <id val="112"/>
+    <id val="113"/>
+    <id val="133"/>
+    <id val="134"/>
+    <id val="135"/>
+    <id val="136"/>
+    <id val="137"/>
+    <id val="138"/>
+    <id val="139"/>
+    <id val="140"/>
+    <id val="141"/>
+    <id val="142"/>
+    <id val="143"/>
+    <id val="144"/>
+    <id val="145"/>
+    <id val="146"/>
+    <id val="147"/>
+    <id val="148"/>
+    <id val="149"/>
+    <id val="150"/>
+    <id val="151"/>
+    <id val="152"/>
+    <id val="153"/>
+    <id val="154"/>
+    <id val="155"/>
+    <id val="156"/>
+    <id val="157"/>
+    <id val="158"/>
+    <id val="159"/>
+    <id val="160"/>
+    <id val="161"/>
+    <id val="162"/>
+    <id val="163"/>
+    <id val="164"/>
+    <id val="165"/>
+    <id val="166"/>
+    <id val="167"/>
+    <id val="168"/>
+    <id val="169"/>
+    <id val="170"/>
+    <id val="171"/>
+    <id val="172"/>
+    <id val="173"/>
+    <id val="174"/>
+    <id val="175"/>
+    <id val="176"/>
+    <id val="177"/>
+    <id val="197"/>
+    <id val="198"/>
+    <id val="199"/>
+    <id val="200"/>
+    <id val="201"/>
+    <id val="202"/>
+    <id val="203"/>
+    <id val="204"/>
+    <id val="205"/>
+    <id val="206"/>
+    <id val="207"/>
+    <id val="208"/>
+    <id val="209"/>
+    <id val="210"/>
+    <id val="211"/>
+    <id val="212"/>
+    <id val="213"/>
+    <id val="214"/>
+    <id val="215"/>
+    <id val="216"/>
+    <id val="217"/>
+    <id val="218"/>
+    <id val="219"/>
+    <id val="220"/>
+    <id val="221"/>
+    <id val="222"/>
+    <id val="223"/>
+    <id val="224"/>
+    <id val="225"/>
+    <id val="226"/>
+    <id val="227"/>
+    <id val="228"/>
+    <id val="229"/>
+    <id val="230"/>
+    <id val="231"/>
+    <id val="232"/>
+    <id val="233"/>
+    <id val="234"/>
+    <id val="235"/>
+    <id val="236"/>
+    <id val="237"/>
+    <id val="238"/>
+    <id val="239"/>
+    <id val="240"/>
+    <id val="241"/>
+    <id val="261"/>
+    <id val="262"/>
+    <id val="263"/>
+    <id val="264"/>
+    <id val="265"/>
+    <id val="266"/>
+    <id val="267"/>
+    <id val="268"/>
+    <id val="269"/>
+    <id val="270"/>
+    <id val="271"/>
+    <id val="272"/>
+    <id val="273"/>
+    <id val="274"/>
+    <id val="275"/>
+    <id val="276"/>
+    <id val="277"/>
+    <id val="278"/>
+    <id val="279"/>
+    <id val="280"/>
+    <id val="281"/>
+    <id val="282"/>
+    <id val="283"/>
+    <id val="284"/>
+    <id val="285"/>
+    <id val="286"/>
+    <id val="287"/>
+    <id val="288"/>
+    <id val="289"/>
+    <id val="290"/>
+    <id val="291"/>
+    <id val="292"/>
+    <id val="293"/>
+    <id val="294"/>
+    <id val="295"/>
+    <id val="296"/>
+    <id val="297"/>
+    <id val="298"/>
+    <id val="299"/>
+    <id val="300"/>
+    <id val="301"/>
+    <id val="302"/>
+    <id val="303"/>
+    <id val="304"/>
+    <id val="305"/>
+    <id val="325"/>
+    <id val="326"/>
+    <id val="327"/>
+    <id val="328"/>
+    <id val="329"/>
+    <id val="330"/>
+    <id val="331"/>
+    <id val="332"/>
+    <id val="333"/>
+    <id val="334"/>
+    <id val="335"/>
+    <id val="336"/>
+    <id val="337"/>
+    <id val="338"/>
+    <id val="339"/>
+    <id val="340"/>
+    <id val="341"/>
+    <id val="342"/>
+    <id val="343"/>
+    <id val="344"/>
+    <id val="345"/>
+    <id val="346"/>
+    <id val="347"/>
+    <id val="348"/>
+    <id val="349"/>
+    <id val="350"/>
+    <id val="351"/>
+    <id val="352"/>
+    <id val="353"/>
+    <id val="354"/>
+    <id val="355"/>
+    <id val="356"/>
+    <id val="357"/>
+    <id val="358"/>
+    <id val="359"/>
+    <id val="360"/>
+    <id val="361"/>
+    <id val="362"/>
+    <id val="363"/>
+    <id val="364"/>
+    <id val="365"/>
+    <id val="366"/>
+    <id val="367"/>
+    <id val="368"/>
+    <id val="369"/>
+    <id val="389"/>
+    <id val="390"/>
+    <id val="391"/>
+    <id val="392"/>
+    <id val="393"/>
+    <id val="394"/>
+    <id val="395"/>
+    <id val="396"/>
+    <id val="397"/>
+    <id val="398"/>
+    <id val="399"/>
+    <id val="400"/>
+    <id val="401"/>
+    <id val="402"/>
+    <id val="403"/>
+    <id val="404"/>
+    <id val="405"/>
+    <id val="406"/>
+    <id val="407"/>
+    <id val="408"/>
+    <id val="409"/>
+    <id val="410"/>
+    <id val="411"/>
+    <id val="412"/>
+    <id val="413"/>
+    <id val="414"/>
+    <id val="415"/>
+    <id val="416"/>
+    <id val="417"/>
+    <id val="418"/>
+    <id val="419"/>
+    <id val="420"/>
+    <id val="421"/>
+    <id val="422"/>
+    <id val="423"/>
+    <id val="424"/>
+    <id val="425"/>
+    <id val="426"/>
+    <id val="427"/>
+    <id val="428"/>
+    <id val="429"/>
+    <id val="430"/>
+    <id val="431"/>
+    <id val="432"/>
+    <id val="433"/>
+    <id val="453"/>
+    <id val="454"/>
+    <id val="455"/>
+    <id val="456"/>
+    <id val="457"/>
+    <id val="458"/>
+    <id val="459"/>
+    <id val="460"/>
+    <id val="461"/>
+    <id val="462"/>
+    <id val="463"/>
+    <id val="464"/>
+    <id val="465"/>
+    <id val="466"/>
+    <id val="467"/>
+    <id val="468"/>
+    <id val="469"/>
+    <id val="470"/>
+    <id val="471"/>
+    <id val="472"/>
+    <id val="473"/>
+    <id val="474"/>
+    <id val="475"/>
+    <id val="476"/>
+    <id val="477"/>
+    <id val="478"/>
+    <id val="479"/>
+    <id val="480"/>
+    <id val="481"/>
+    <id val="482"/>
+    <id val="483"/>
+    <id val="484"/>
+    <id val="485"/>
+    <id val="486"/>
+    <id val="487"/>
+    <id val="488"/>
+    <id val="489"/>
+    <id val="490"/>
+    <id val="491"/>
+    <id val="492"/>
+    <id val="493"/>
+    <id val="494"/>
+    <id val="495"/>
+    <id val="496"/>
+    <id val="497"/>
+    <id val="517"/>
+    <id val="518"/>
+    <id val="519"/>
+    <id val="520"/>
+    <id val="521"/>
+    <id val="522"/>
+    <id val="523"/>
+    <id val="524"/>
+    <id val="525"/>
+    <id val="526"/>
+    <id val="527"/>
+    <id val="528"/>
+    <id val="529"/>
+    <id val="530"/>
+    <id val="531"/>
+    <id val="532"/>
+    <id val="533"/>
+    <id val="534"/>
+    <id val="535"/>
+    <id val="536"/>
+    <id val="537"/>
+    <id val="538"/>
+    <id val="539"/>
+    <id val="540"/>
+    <id val="541"/>
+    <id val="542"/>
+    <id val="543"/>
+    <id val="544"/>
+    <id val="545"/>
+    <id val="546"/>
+    <id val="547"/>
+    <id val="548"/>
+    <id val="549"/>
+    <id val="550"/>
+    <id val="551"/>
+    <id val="552"/>
+    <id val="553"/>
+    <id val="554"/>
+    <id val="555"/>
+    <id val="556"/>
+    <id val="557"/>
+    <id val="558"/>
+    <id val="559"/>
+    <id val="560"/>
+    <id val="561"/>
+    <id val="581"/>
+    <id val="582"/>
+    <id val="583"/>
+    <id val="584"/>
+    <id val="585"/>
+    <id val="586"/>
+    <id val="587"/>
+    <id val="588"/>
+    <id val="589"/>
+    <id val="590"/>
+    <id val="591"/>
+    <id val="592"/>
+    <id val="593"/>
+    <id val="594"/>
+    <id val="595"/>
+    <id val="596"/>
+    <id val="597"/>
+    <id val="598"/>
+    <id val="599"/>
+    <id val="600"/>
+    <id val="601"/>
+    <id val="602"/>
+    <id val="603"/>
+    <id val="604"/>
+    <id val="605"/>
+    <id val="606"/>
+    <id val="607"/>
+    <id val="608"/>
+    <id val="609"/>
+    <id val="610"/>
+    <id val="611"/>
+    <id val="612"/>
+    <id val="613"/>
+    <id val="614"/>
+    <id val="615"/>
+    <id val="616"/>
+    <id val="617"/>
+    <id val="618"/>
+    <id val="619"/>
+    <id val="620"/>
+    <id val="621"/>
+    <id val="622"/>
+    <id val="623"/>
+    <id val="624"/>
+    <id val="625"/>
+    <id val="645"/>
+    <id val="646"/>
+    <id val="647"/>
+    <id val="648"/>
+    <id val="649"/>
+    <id val="650"/>
+    <id val="651"/>
+    <id val="652"/>
+    <id val="653"/>
+    <id val="654"/>
+    <id val="655"/>
+    <id val="656"/>
+    <id val="657"/>
+    <id val="658"/>
+    <id val="659"/>
+    <id val="660"/>
+    <id val="661"/>
+    <id val="662"/>
+    <id val="663"/>
+    <id val="664"/>
+    <id val="665"/>
+    <id val="666"/>
+    <id val="667"/>
+    <id val="668"/>
+    <id val="669"/>
+    <id val="670"/>
+    <id val="671"/>
+    <id val="672"/>
+    <id val="673"/>
+    <id val="674"/>
+    <id val="675"/>
+    <id val="676"/>
+    <id val="677"/>
+    <id val="678"/>
+    <id val="679"/>
+    <id val="680"/>
+    <id val="681"/>
+    <id val="682"/>
+    <id val="683"/>
+    <id val="684"/>
+    <id val="685"/>
+    <id val="686"/>
+    <id val="687"/>
+    <id val="688"/>
+    <id val="689"/>
+    <id val="709"/>
+    <id val="710"/>
+    <id val="711"/>
+    <id val="712"/>
+    <id val="713"/>
+    <id val="714"/>
+    <id val="715"/>
+    <id val="716"/>
+    <id val="717"/>
+    <id val="718"/>
+    <id val="719"/>
+    <id val="720"/>
+    <id val="721"/>
+    <id val="722"/>
+    <id val="723"/>
+    <id val="724"/>
+    <id val="725"/>
+    <id val="726"/>
+    <id val="727"/>
+    <id val="728"/>
+    <id val="729"/>
+    <id val="730"/>
+    <id val="731"/>
+    <id val="732"/>
+    <id val="733"/>
+    <id val="734"/>
+    <id val="735"/>
+    <id val="736"/>
+    <id val="737"/>
+    <id val="738"/>
+    <id val="739"/>
+    <id val="740"/>
+    <id val="741"/>
+    <id val="742"/>
+    <id val="743"/>
+    <id val="744"/>
+    <id val="745"/>
+    <id val="746"/>
+    <id val="747"/>
+    <id val="748"/>
+    <id val="749"/>
+    <id val="750"/>
+    <id val="751"/>
+    <id val="752"/>
+    <id val="753"/>
+    <id val="773"/>
+    <id val="774"/>
+    <id val="775"/>
+    <id val="776"/>
+    <id val="777"/>
+    <id val="778"/>
+    <id val="779"/>
+    <id val="780"/>
+    <id val="781"/>
+    <id val="782"/>
+    <id val="783"/>
+    <id val="784"/>
+    <id val="785"/>
+    <id val="786"/>
+    <id val="787"/>
+    <id val="788"/>
+    <id val="789"/>
+    <id val="790"/>
+    <id val="791"/>
+    <id val="792"/>
+    <id val="793"/>
+    <id val="794"/>
+    <id val="795"/>
+    <id val="796"/>
+    <id val="797"/>
+    <id val="798"/>
+    <id val="799"/>
+    <id val="800"/>
+    <id val="801"/>
+    <id val="802"/>
+    <id val="803"/>
+    <id val="804"/>
+    <id val="805"/>
+    <id val="806"/>
+    <id val="807"/>
+    <id val="808"/>
+    <id val="809"/>
+    <id val="810"/>
+    <id val="811"/>
+    <id val="812"/>
+    <id val="813"/>
+    <id val="814"/>
+    <id val="815"/>
+    <id val="816"/>
+    <id val="817"/>
+    <id val="837"/>
+    <id val="838"/>
+    <id val="839"/>
+    <id val="840"/>
+    <id val="841"/>
+    <id val="842"/>
+    <id val="843"/>
+    <id val="844"/>
+    <id val="845"/>
+    <id val="846"/>
+    <id val="847"/>
+    <id val="848"/>
+    <id val="849"/>
+    <id val="850"/>
+    <id val="851"/>
+    <id val="852"/>
+    <id val="853"/>
+    <id val="854"/>
+    <id val="855"/>
+    <id val="856"/>
+    <id val="857"/>
+    <id val="858"/>
+    <id val="859"/>
+    <id val="860"/>
+    <id val="861"/>
+    <id val="862"/>
+    <id val="863"/>
+    <id val="864"/>
+    <id val="865"/>
+    <id val="866"/>
+    <id val="867"/>
+    <id val="868"/>
+    <id val="869"/>
+    <id val="870"/>
+    <id val="871"/>
+    <id val="872"/>
+    <id val="873"/>
+    <id val="874"/>
+    <id val="875"/>
+    <id val="876"/>
+    <id val="877"/>
+    <id val="878"/>
+    <id val="879"/>
+    <id val="880"/>
+    <id val="881"/>
+    <id val="901"/>
+    <id val="902"/>
+    <id val="903"/>
+    <id val="904"/>
+    <id val="905"/>
+    <id val="906"/>
+    <id val="907"/>
+    <id val="908"/>
+    <id val="909"/>
+    <id val="910"/>
+    <id val="911"/>
+    <id val="912"/>
+    <id val="913"/>
+    <id val="914"/>
+    <id val="915"/>
+    <id val="916"/>
+    <id val="917"/>
+    <id val="918"/>
+    <id val="919"/>
+    <id val="920"/>
+    <id val="921"/>
+    <id val="922"/>
+    <id val="923"/>
+    <id val="924"/>
+    <id val="925"/>
+    <id val="926"/>
+    <id val="927"/>
+    <id val="928"/>
+    <id val="929"/>
+    <id val="930"/>
+    <id val="931"/>
+    <id val="932"/>
+    <id val="933"/>
+    <id val="934"/>
+    <id val="935"/>
+    <id val="936"/>
+    <id val="937"/>
+    <id val="938"/>
+    <id val="939"/>
+    <id val="940"/>
+    <id val="941"/>
+    <id val="942"/>
+    <id val="943"/>
+    <id val="944"/>
+    <id val="945"/>
+    <id val="965"/>
+    <id val="966"/>
+    <id val="967"/>
+    <id val="968"/>
+    <id val="969"/>
+    <id val="970"/>
+    <id val="971"/>
+    <id val="972"/>
+    <id val="973"/>
+    <id val="974"/>
+    <id val="975"/>
+    <id val="976"/>
+    <id val="977"/>
+    <id val="978"/>
+    <id val="979"/>
+    <id val="980"/>
+    <id val="981"/>
+    <id val="982"/>
+    <id val="983"/>
+    <id val="984"/>
+    <id val="985"/>
+    <id val="986"/>
+    <id val="987"/>
+    <id val="988"/>
+    <id val="989"/>
+    <id val="990"/>
+    <id val="991"/>
+    <id val="992"/>
+    <id val="993"/>
+    <id val="994"/>
+    <id val="995"/>
+    <id val="996"/>
+    <id val="997"/>
+    <id val="998"/>
+    <id val="999"/>
+    <id val="1000"/>
+    <id val="1001"/>
+    <id val="1002"/>
+    <id val="1003"/>
+    <id val="1004"/>
+    <id val="1005"/>
+    <id val="1006"/>
+    <id val="1007"/>
+    <id val="1008"/>
+    <id val="1009"/>
+    <id val="1029"/>
+    <id val="1030"/>
+    <id val="1031"/>
+    <id val="1032"/>
+    <id val="1033"/>
+    <id val="1034"/>
+    <id val="1035"/>
+    <id val="1036"/>
+    <id val="1037"/>
+    <id val="1038"/>
+    <id val="1039"/>
+    <id val="1040"/>
+    <id val="1041"/>
+    <id val="1042"/>
+    <id val="1043"/>
+    <id val="1044"/>
+    <id val="1045"/>
+    <id val="1046"/>
+    <id val="1047"/>
+    <id val="1048"/>
+    <id val="1049"/>
+    <id val="1050"/>
+    <id val="1051"/>
+    <id val="1052"/>
+    <id val="1053"/>
+    <id val="1054"/>
+    <id val="1055"/>
+    <id val="1056"/>
+    <id val="1057"/>
+    <id val="1058"/>
+    <id val="1059"/>
+    <id val="1060"/>
+    <id val="1061"/>
+    <id val="1062"/>
+    <id val="1063"/>
+    <id val="1064"/>
+    <id val="1065"/>
+    <id val="1066"/>
+    <id val="1067"/>
+    <id val="1068"/>
+    <id val="1069"/>
+    <id val="1070"/>
+    <id val="1071"/>
+    <id val="1072"/>
+    <id val="1073"/>
+    <id val="1093"/>
+    <id val="1094"/>
+    <id val="1095"/>
+    <id val="1096"/>
+    <id val="1097"/>
+    <id val="1098"/>
+    <id val="1099"/>
+    <id val="1100"/>
+    <id val="1101"/>
+    <id val="1102"/>
+    <id val="1103"/>
+    <id val="1104"/>
+    <id val="1105"/>
+    <id val="1106"/>
+    <id val="1107"/>
+    <id val="1108"/>
+    <id val="1109"/>
+    <id val="1110"/>
+    <id val="1111"/>
+    <id val="1112"/>
+    <id val="1113"/>
+    <id val="1114"/>
+    <id val="1115"/>
+    <id val="1116"/>
+    <id val="1117"/>
+    <id val="1118"/>
+    <id val="1119"/>
+    <id val="1120"/>
+    <id val="1121"/>
+    <id val="1122"/>
+    <id val="1123"/>
+    <id val="1124"/>
+    <id val="1125"/>
+    <id val="1126"/>
+    <id val="1127"/>
+    <id val="1128"/>
+    <id val="1129"/>
+    <id val="1130"/>
+    <id val="1131"/>
+    <id val="1132"/>
+    <id val="1133"/>
+    <id val="1134"/>
+    <id val="1135"/>
+    <id val="1136"/>
+    <id val="1137"/>
+    <id val="1157"/>
+    <id val="1158"/>
+    <id val="1159"/>
+    <id val="1160"/>
+    <id val="1161"/>
+    <id val="1162"/>
+    <id val="1163"/>
+    <id val="1164"/>
+    <id val="1165"/>
+    <id val="1166"/>
+    <id val="1167"/>
+    <id val="1168"/>
+    <id val="1169"/>
+    <id val="1170"/>
+    <id val="1171"/>
+    <id val="1172"/>
+    <id val="1173"/>
+    <id val="1174"/>
+    <id val="1175"/>
+    <id val="1176"/>
+    <id val="1177"/>
+    <id val="1178"/>
+    <id val="1179"/>
+    <id val="1180"/>
+    <id val="1181"/>
+    <id val="1182"/>
+    <id val="1183"/>
+    <id val="1184"/>
+    <id val="1185"/>
+    <id val="1186"/>
+    <id val="1187"/>
+    <id val="1188"/>
+    <id val="1189"/>
+    <id val="1190"/>
+    <id val="1191"/>
+    <id val="1192"/>
+    <id val="1193"/>
+    <id val="1194"/>
+    <id val="1195"/>
+    <id val="1196"/>
+    <id val="1197"/>
+    <id val="1198"/>
+    <id val="1199"/>
+    <id val="1200"/>
+    <id val="1201"/>
+    <id val="1221"/>
+    <id val="1222"/>
+    <id val="1223"/>
+    <id val="1224"/>
+    <id val="1225"/>
+    <id val="1226"/>
+    <id val="1227"/>
+    <id val="1228"/>
+    <id val="1229"/>
+    <id val="1230"/>
+    <id val="1231"/>
+    <id val="1232"/>
+    <id val="1233"/>
+    <id val="1234"/>
+    <id val="1235"/>
+    <id val="1236"/>
+    <id val="1237"/>
+    <id val="1238"/>
+    <id val="1239"/>
+    <id val="1240"/>
+    <id val="1241"/>
+    <id val="1242"/>
+    <id val="1243"/>
+    <id val="1244"/>
+    <id val="1245"/>
+    <id val="1246"/>
+    <id val="1247"/>
+    <id val="1248"/>
+    <id val="1249"/>
+    <id val="1250"/>
+    <id val="1251"/>
+    <id val="1252"/>
+    <id val="1253"/>
+    <id val="1254"/>
+    <id val="1255"/>
+    <id val="1256"/>
+    <id val="1257"/>
+    <id val="1258"/>
+    <id val="1259"/>
+    <id val="1260"/>
+    <id val="1261"/>
+    <id val="1262"/>
+    <id val="1263"/>
+    <id val="1264"/>
+    <id val="1265"/>
+    <id val="1285"/>
+    <id val="1286"/>
+    <id val="1287"/>
+    <id val="1288"/>
+    <id val="1289"/>
+    <id val="1290"/>
+    <id val="1291"/>
+    <id val="1292"/>
+    <id val="1293"/>
+    <id val="1294"/>
+    <id val="1295"/>
+    <id val="1296"/>
+    <id val="1297"/>
+    <id val="1298"/>
+    <id val="1299"/>
+    <id val="1300"/>
+    <id val="1301"/>
+    <id val="1302"/>
+    <id val="1303"/>
+    <id val="1304"/>
+    <id val="1305"/>
+    <id val="1306"/>
+    <id val="1307"/>
+    <id val="1308"/>
+    <id val="1309"/>
+    <id val="1310"/>
+    <id val="1311"/>
+    <id val="1312"/>
+    <id val="1313"/>
+    <id val="1314"/>
+    <id val="1315"/>
+    <id val="1316"/>
+    <id val="1317"/>
+    <id val="1318"/>
+    <id val="1319"/>
+    <id val="1320"/>
+    <id val="1321"/>
+    <id val="1322"/>
+    <id val="1323"/>
+    <id val="1324"/>
+    <id val="1325"/>
+    <id val="1326"/>
+    <id val="1327"/>
+    <id val="1328"/>
+    <id val="1329"/>
+    <id val="1349"/>
+    <id val="1350"/>
+    <id val="1351"/>
+    <id val="1352"/>
+    <id val="1353"/>
+    <id val="1354"/>
+    <id val="1355"/>
+    <id val="1356"/>
+    <id val="1357"/>
+    <id val="1358"/>
+    <id val="1359"/>
+    <id val="1360"/>
+    <id val="1361"/>
+    <id val="1362"/>
+    <id val="1363"/>
+    <id val="1364"/>
+    <id val="1365"/>
+    <id val="1366"/>
+    <id val="1367"/>
+    <id val="1368"/>
+    <id val="1369"/>
+    <id val="1370"/>
+    <id val="1371"/>
+    <id val="1372"/>
+    <id val="1373"/>
+    <id val="1374"/>
+    <id val="1375"/>
+    <id val="1376"/>
+    <id val="1377"/>
+    <id val="1378"/>
+    <id val="1379"/>
+    <id val="1380"/>
+    <id val="1381"/>
+    <id val="1382"/>
+    <id val="1383"/>
+    <id val="1384"/>
+    <id val="1385"/>
+    <id val="1386"/>
+    <id val="1387"/>
+    <id val="1388"/>
+    <id val="1389"/>
+    <id val="1390"/>
+    <id val="1391"/>
+    <id val="1392"/>
+    <id val="1393"/>
+    <id val="1413"/>
+    <id val="1414"/>
+    <id val="1415"/>
+    <id val="1416"/>
+    <id val="1417"/>
+    <id val="1418"/>
+    <id val="1419"/>
+    <id val="1420"/>
+    <id val="1421"/>
+    <id val="1422"/>
+    <id val="1423"/>
+    <id val="1424"/>
+    <id val="1425"/>
+    <id val="1426"/>
+    <id val="1427"/>
+    <id val="1428"/>
+    <id val="1429"/>
+    <id val="1430"/>
+    <id val="1431"/>
+    <id val="1432"/>
+    <id val="1433"/>
+    <id val="1434"/>
+    <id val="1435"/>
+    <id val="1436"/>
+    <id val="1437"/>
+    <id val="1438"/>
+    <id val="1439"/>
+    <id val="1440"/>
+    <id val="1441"/>
+    <id val="1442"/>
+    <id val="1443"/>
+    <id val="1444"/>
+    <id val="1445"/>
+    <id val="1446"/>
+    <id val="1447"/>
+    <id val="1448"/>
+    <id val="1449"/>
+    <id val="1450"/>
+    <id val="1451"/>
+    <id val="1452"/>
+    <id val="1453"/>
+    <id val="1454"/>
+    <id val="1455"/>
+    <id val="1456"/>
+    <id val="1457"/>
+    <id val="1477"/>
+    <id val="1478"/>
+    <id val="1479"/>
+    <id val="1480"/>
+    <id val="1481"/>
+    <id val="1482"/>
+    <id val="1483"/>
+    <id val="1484"/>
+    <id val="1485"/>
+    <id val="1486"/>
+    <id val="1487"/>
+    <id val="1488"/>
+    <id val="1489"/>
+    <id val="1490"/>
+    <id val="1491"/>
+    <id val="1492"/>
+    <id val="1493"/>
+    <id val="1494"/>
+    <id val="1495"/>
+    <id val="1496"/>
+    <id val="1497"/>
+    <id val="1498"/>
+    <id val="1499"/>
+    <id val="1500"/>
+    <id val="1501"/>
+    <id val="1502"/>
+    <id val="1503"/>
+    <id val="1504"/>
+    <id val="1505"/>
+    <id val="1506"/>
+    <id val="1507"/>
+    <id val="1508"/>
+    <id val="1509"/>
+    <id val="1510"/>
+    <id val="1511"/>
+    <id val="1512"/>
+    <id val="1513"/>
+    <id val="1514"/>
+    <id val="1515"/>
+    <id val="1516"/>
+    <id val="1517"/>
+    <id val="1518"/>
+    <id val="1519"/>
+    <id val="1520"/>
+    <id val="1521"/>
+    <id val="1541"/>
+    <id val="1542"/>
+    <id val="1543"/>
+    <id val="1544"/>
+    <id val="1545"/>
+    <id val="1546"/>
+    <id val="1547"/>
+    <id val="1548"/>
+    <id val="1549"/>
+    <id val="1550"/>
+    <id val="1551"/>
+    <id val="1552"/>
+    <id val="1553"/>
+    <id val="1554"/>
+    <id val="1555"/>
+    <id val="1556"/>
+    <id val="1557"/>
+    <id val="1558"/>
+    <id val="1559"/>
+    <id val="1560"/>
+    <id val="1561"/>
+    <id val="1562"/>
+    <id val="1563"/>
+    <id val="1564"/>
+    <id val="1565"/>
+    <id val="1566"/>
+    <id val="1567"/>
+    <id val="1568"/>
+    <id val="1569"/>
+    <id val="1570"/>
+    <id val="1571"/>
+    <id val="1572"/>
+    <id val="1573"/>
+    <id val="1574"/>
+    <id val="1575"/>
+    <id val="1576"/>
+    <id val="1577"/>
+    <id val="1578"/>
+    <id val="1579"/>
+    <id val="1580"/>
+    <id val="1581"/>
+    <id val="1582"/>
+    <id val="1583"/>
+    <id val="1584"/>
+    <id val="1585"/>
+    <id val="1605"/>
+    <id val="1606"/>
+    <id val="1607"/>
+    <id val="1608"/>
+    <id val="1609"/>
+    <id val="1610"/>
+    <id val="1611"/>
+    <id val="1612"/>
+    <id val="1613"/>
+    <id val="1614"/>
+    <id val="1615"/>
+    <id val="1616"/>
+    <id val="1617"/>
+    <id val="1618"/>
+    <id val="1619"/>
+    <id val="1620"/>
+    <id val="1621"/>
+    <id val="1622"/>
+    <id val="1623"/>
+    <id val="1624"/>
+    <id val="1625"/>
+    <id val="1626"/>
+    <id val="1627"/>
+    <id val="1628"/>
+    <id val="1629"/>
+    <id val="1630"/>
+    <id val="1631"/>
+    <id val="1632"/>
+    <id val="1633"/>
+    <id val="1634"/>
+    <id val="1635"/>
+    <id val="1636"/>
+    <id val="1637"/>
+    <id val="1638"/>
+    <id val="1639"/>
+    <id val="1640"/>
+    <id val="1641"/>
+    <id val="1642"/>
+    <id val="1643"/>
+    <id val="1644"/>
+    <id val="1645"/>
+    <id val="1646"/>
+    <id val="1647"/>
+    <id val="1648"/>
+    <id val="1649"/>
+    <id val="1669"/>
+    <id val="1670"/>
+    <id val="1671"/>
+    <id val="1672"/>
+    <id val="1673"/>
+    <id val="1674"/>
+    <id val="1675"/>
+    <id val="1676"/>
+    <id val="1677"/>
+    <id val="1678"/>
+    <id val="1679"/>
+    <id val="1680"/>
+    <id val="1681"/>
+    <id val="1682"/>
+    <id val="1683"/>
+    <id val="1684"/>
+    <id val="1685"/>
+    <id val="1686"/>
+    <id val="1687"/>
+    <id val="1688"/>
+    <id val="1689"/>
+    <id val="1690"/>
+    <id val="1691"/>
+    <id val="1692"/>
+    <id val="1693"/>
+    <id val="1694"/>
+    <id val="1695"/>
+    <id val="1696"/>
+    <id val="1697"/>
+    <id val="1698"/>
+    <id val="1699"/>
+    <id val="1700"/>
+    <id val="1701"/>
+    <id val="1702"/>
+    <id val="1703"/>
+    <id val="1704"/>
+    <id val="1705"/>
+    <id val="1706"/>
+    <id val="1707"/>
+    <id val="1708"/>
+    <id val="1709"/>
+    <id val="1710"/>
+    <id val="1711"/>
+    <id val="1712"/>
+    <id val="1713"/>
+    <id val="1733"/>
+    <id val="1734"/>
+    <id val="1735"/>
+    <id val="1736"/>
+    <id val="1737"/>
+    <id val="1738"/>
+    <id val="1739"/>
+    <id val="1740"/>
+    <id val="1741"/>
+    <id val="1742"/>
+    <id val="1743"/>
+    <id val="1744"/>
+    <id val="1745"/>
+    <id val="1746"/>
+    <id val="1747"/>
+    <id val="1748"/>
+    <id val="1749"/>
+    <id val="1750"/>
+    <id val="1751"/>
+    <id val="1752"/>
+    <id val="1753"/>
+    <id val="1754"/>
+    <id val="1755"/>
+    <id val="1756"/>
+    <id val="1757"/>
+    <id val="1758"/>
+    <id val="1759"/>
+    <id val="1760"/>
+    <id val="1761"/>
+    <id val="1762"/>
+    <id val="1763"/>
+    <id val="1764"/>
+    <id val="1765"/>
+    <id val="1766"/>
+    <id val="1767"/>
+    <id val="1768"/>
+    <id val="1769"/>
+    <id val="1770"/>
+    <id val="1771"/>
+    <id val="1772"/>
+    <id val="1773"/>
+    <id val="1774"/>
+    <id val="1775"/>
+    <id val="1776"/>
+    <id val="1777"/>
+    <id val="1797"/>
+    <id val="1798"/>
+    <id val="1799"/>
+    <id val="1800"/>
+    <id val="1801"/>
+    <id val="1802"/>
+    <id val="1803"/>
+    <id val="1804"/>
+    <id val="1805"/>
+    <id val="1806"/>
+    <id val="1807"/>
+    <id val="1808"/>
+    <id val="1809"/>
+    <id val="1810"/>
+    <id val="1811"/>
+    <id val="1812"/>
+    <id val="1813"/>
+    <id val="1814"/>
+    <id val="1815"/>
+    <id val="1816"/>
+    <id val="1817"/>
+    <id val="1818"/>
+    <id val="1819"/>
+    <id val="1820"/>
+    <id val="1821"/>
+    <id val="1822"/>
+    <id val="1823"/>
+    <id val="1824"/>
+    <id val="1825"/>
+    <id val="1826"/>
+    <id val="1827"/>
+    <id val="1828"/>
+    <id val="1829"/>
+    <id val="1830"/>
+    <id val="1831"/>
+    <id val="1832"/>
+    <id val="1833"/>
+    <id val="1834"/>
+    <id val="1835"/>
+    <id val="1836"/>
+    <id val="1837"/>
+    <id val="1838"/>
+    <id val="1839"/>
+    <id val="1840"/>
+    <id val="1841"/>
+    <id val="1861"/>
+    <id val="1862"/>
+    <id val="1863"/>
+    <id val="1864"/>
+    <id val="1865"/>
+    <id val="1866"/>
+    <id val="1867"/>
+    <id val="1868"/>
+    <id val="1869"/>
+    <id val="1870"/>
+    <id val="1871"/>
+    <id val="1872"/>
+    <id val="1873"/>
+    <id val="1874"/>
+    <id val="1875"/>
+    <id val="1876"/>
+    <id val="1877"/>
+    <id val="1878"/>
+    <id val="1879"/>
+    <id val="1880"/>
+    <id val="1881"/>
+    <id val="1882"/>
+    <id val="1883"/>
+    <id val="1884"/>
+    <id val="1885"/>
+    <id val="1886"/>
+    <id val="1887"/>
+    <id val="1888"/>
+    <id val="1889"/>
+    <id val="1890"/>
+    <id val="1891"/>
+    <id val="1892"/>
+    <id val="1893"/>
+    <id val="1894"/>
+    <id val="1895"/>
+    <id val="1896"/>
+    <id val="1897"/>
+    <id val="1898"/>
+    <id val="1899"/>
+    <id val="1900"/>
+    <id val="1901"/>
+    <id val="1902"/>
+    <id val="1903"/>
+    <id val="1904"/>
+    <id val="1905"/>
+    <id val="1925"/>
+    <id val="1926"/>
+    <id val="1927"/>
+    <id val="1928"/>
+    <id val="1929"/>
+    <id val="1930"/>
+    <id val="1931"/>
+    <id val="1932"/>
+    <id val="1933"/>
+    <id val="1934"/>
+    <id val="1935"/>
+    <id val="1936"/>
+    <id val="1937"/>
+    <id val="1938"/>
+    <id val="1939"/>
+    <id val="1940"/>
+    <id val="1941"/>
+    <id val="1942"/>
+    <id val="1943"/>
+    <id val="1944"/>
+    <id val="1945"/>
+    <id val="1946"/>
+    <id val="1947"/>
+    <id val="1948"/>
+    <id val="1949"/>
+    <id val="1950"/>
+    <id val="1951"/>
+    <id val="1952"/>
+    <id val="1953"/>
+    <id val="1954"/>
+    <id val="1955"/>
+    <id val="1956"/>
+    <id val="1957"/>
+    <id val="1958"/>
+    <id val="1959"/>
+    <id val="1960"/>
+    <id val="1961"/>
+    <id val="1962"/>
+    <id val="1963"/>
+    <id val="1964"/>
+    <id val="1965"/>
+    <id val="1966"/>
+    <id val="1967"/>
+    <id val="1968"/>
+    <id val="1969"/>
+    <id val="1989"/>
+    <id val="1990"/>
+    <id val="1991"/>
+    <id val="1992"/>
+    <id val="1993"/>
+    <id val="1994"/>
+    <id val="1995"/>
+    <id val="1996"/>
+    <id val="1997"/>
+    <id val="1998"/>
+    <id val="1999"/>
+    <id val="2000"/>
+    <id val="2001"/>
+    <id val="2002"/>
+    <id val="2003"/>
+    <id val="2004"/>
+    <id val="2005"/>
+    <id val="2006"/>
+    <id val="2007"/>
+    <id val="2008"/>
+    <id val="2009"/>
+    <id val="2010"/>
+    <id val="2011"/>
+    <id val="2012"/>
+    <id val="2013"/>
+    <id val="2014"/>
+    <id val="2015"/>
+    <id val="2016"/>
+    <id val="2017"/>
+    <id val="2018"/>
+    <id val="2019"/>
+    <id val="2020"/>
+    <id val="2021"/>
+    <id val="2022"/>
+    <id val="2023"/>
+    <id val="2024"/>
+    <id val="2025"/>
+    <id val="2026"/>
+    <id val="2027"/>
+    <id val="2028"/>
+    <id val="2029"/>
+    <id val="2030"/>
+    <id val="2031"/>
+    <id val="2032"/>
+    <id val="2033"/>
+    <id val="2053"/>
+    <id val="2054"/>
+    <id val="2055"/>
+    <id val="2056"/>
+    <id val="2057"/>
+    <id val="2058"/>
+    <id val="2059"/>
+    <id val="2060"/>
+    <id val="2061"/>
+    <id val="2062"/>
+    <id val="2063"/>
+    <id val="2064"/>
+    <id val="2065"/>
+    <id val="2066"/>
+    <id val="2067"/>
+    <id val="2068"/>
+    <id val="2069"/>
+    <id val="2070"/>
+    <id val="2071"/>
+    <id val="2072"/>
+    <id val="2073"/>
+    <id val="2074"/>
+    <id val="2075"/>
+    <id val="2076"/>
+    <id val="2077"/>
+    <id val="2078"/>
+    <id val="2079"/>
+    <id val="2080"/>
+    <id val="2081"/>
+    <id val="2082"/>
+    <id val="2083"/>
+    <id val="2084"/>
+    <id val="2085"/>
+    <id val="2086"/>
+    <id val="2087"/>
+    <id val="2088"/>
+    <id val="2089"/>
+    <id val="2090"/>
+    <id val="2091"/>
+    <id val="2092"/>
+    <id val="2093"/>
+    <id val="2094"/>
+    <id val="2095"/>
+    <id val="2096"/>
+    <id val="2097"/>
+    <id val="2117"/>
+    <id val="2118"/>
+    <id val="2119"/>
+    <id val="2120"/>
+    <id val="2121"/>
+    <id val="2122"/>
+    <id val="2123"/>
+    <id val="2124"/>
+    <id val="2125"/>
+    <id val="2126"/>
+    <id val="2127"/>
+    <id val="2128"/>
+    <id val="2129"/>
+    <id val="2130"/>
+    <id val="2131"/>
+    <id val="2132"/>
+    <id val="2133"/>
+    <id val="2134"/>
+    <id val="2135"/>
+    <id val="2136"/>
+    <id val="2137"/>
+    <id val="2138"/>
+    <id val="2139"/>
+    <id val="2140"/>
+    <id val="2141"/>
+    <id val="2142"/>
+    <id val="2143"/>
+    <id val="2144"/>
+    <id val="2145"/>
+    <id val="2146"/>
+    <id val="2147"/>
+    <id val="2148"/>
+    <id val="2149"/>
+    <id val="2150"/>
+    <id val="2151"/>
+    <id val="2152"/>
+    <id val="2153"/>
+    <id val="2154"/>
+    <id val="2155"/>
+    <id val="2156"/>
+    <id val="2157"/>
+    <id val="2158"/>
+    <id val="2159"/>
+    <id val="2160"/>
+    <id val="2161"/>
+    <id val="2181"/>
+    <id val="2182"/>
+    <id val="2183"/>
+    <id val="2184"/>
+    <id val="2185"/>
+    <id val="2186"/>
+    <id val="2187"/>
+    <id val="2188"/>
+    <id val="2189"/>
+    <id val="2190"/>
+    <id val="2191"/>
+    <id val="2192"/>
+    <id val="2193"/>
+    <id val="2194"/>
+    <id val="2195"/>
+    <id val="2196"/>
+    <id val="2197"/>
+    <id val="2198"/>
+    <id val="2199"/>
+    <id val="2200"/>
+    <id val="2201"/>
+    <id val="2202"/>
+    <id val="2203"/>
+    <id val="2204"/>
+    <id val="2205"/>
+    <id val="2206"/>
+    <id val="2207"/>
+    <id val="2208"/>
+    <id val="2209"/>
+    <id val="2210"/>
+    <id val="2211"/>
+    <id val="2212"/>
+    <id val="2213"/>
+    <id val="2214"/>
+    <id val="2215"/>
+    <id val="2216"/>
+    <id val="2217"/>
+    <id val="2218"/>
+    <id val="2219"/>
+    <id val="2220"/>
+    <id val="2221"/>
+    <id val="2222"/>
+    <id val="2223"/>
+    <id val="2224"/>
+    <id val="2225"/>
+    <id val="2245"/>
+    <id val="2246"/>
+    <id val="2247"/>
+    <id val="2248"/>
+    <id val="2249"/>
+    <id val="2250"/>
+    <id val="2251"/>
+    <id val="2252"/>
+    <id val="2253"/>
+    <id val="2254"/>
+    <id val="2255"/>
+    <id val="2256"/>
+    <id val="2257"/>
+    <id val="2258"/>
+    <id val="2259"/>
+    <id val="2260"/>
+    <id val="2261"/>
+    <id val="2262"/>
+    <id val="2263"/>
+    <id val="2264"/>
+    <id val="2265"/>
+    <id val="2266"/>
+    <id val="2267"/>
+    <id val="2268"/>
+    <id val="2269"/>
+    <id val="2270"/>
+    <id val="2271"/>
+    <id val="2272"/>
+    <id val="2273"/>
+    <id val="2274"/>
+    <id val="2275"/>
+    <id val="2276"/>
+    <id val="2277"/>
+    <id val="2278"/>
+    <id val="2279"/>
+    <id val="2280"/>
+    <id val="2281"/>
+    <id val="2282"/>
+    <id val="2283"/>
+    <id val="2284"/>
+    <id val="2285"/>
+    <id val="2286"/>
+    <id val="2287"/>
+    <id val="2288"/>
+    <id val="2289"/>
+    <id val="2309"/>
+    <id val="2310"/>
+    <id val="2311"/>
+    <id val="2312"/>
+    <id val="2313"/>
+    <id val="2314"/>
+    <id val="2315"/>
+    <id val="2316"/>
+    <id val="2317"/>
+    <id val="2318"/>
+    <id val="2319"/>
+    <id val="2320"/>
+    <id val="2321"/>
+    <id val="2322"/>
+    <id val="2323"/>
+    <id val="2324"/>
+    <id val="2325"/>
+    <id val="2326"/>
+    <id val="2327"/>
+    <id val="2328"/>
+    <id val="2329"/>
+    <id val="2330"/>
+    <id val="2331"/>
+    <id val="2332"/>
+    <id val="2333"/>
+    <id val="2334"/>
+    <id val="2335"/>
+    <id val="2336"/>
+    <id val="2337"/>
+    <id val="2338"/>
+    <id val="2339"/>
+    <id val="2340"/>
+    <id val="2341"/>
+    <id val="2342"/>
+    <id val="2343"/>
+    <id val="2344"/>
+    <id val="2345"/>
+    <id val="2346"/>
+    <id val="2347"/>
+    <id val="2348"/>
+    <id val="2349"/>
+    <id val="2350"/>
+    <id val="2351"/>
+    <id val="2352"/>
+    <id val="2353"/>
+    <id val="2373"/>
+    <id val="2374"/>
+    <id val="2375"/>
+    <id val="2376"/>
+    <id val="2377"/>
+    <id val="2378"/>
+    <id val="2379"/>
+    <id val="2380"/>
+    <id val="2381"/>
+    <id val="2382"/>
+    <id val="2383"/>
+    <id val="2384"/>
+    <id val="2385"/>
+    <id val="2386"/>
+    <id val="2387"/>
+    <id val="2388"/>
+    <id val="2389"/>
+    <id val="2390"/>
+    <id val="2391"/>
+    <id val="2392"/>
+    <id val="2393"/>
+    <id val="2394"/>
+    <id val="2395"/>
+    <id val="2396"/>
+    <id val="2397"/>
+    <id val="2398"/>
+    <id val="2399"/>
+    <id val="2400"/>
+    <id val="2401"/>
+    <id val="2402"/>
+    <id val="2403"/>
+    <id val="2404"/>
+    <id val="2405"/>
+    <id val="2406"/>
+    <id val="2407"/>
+    <id val="2408"/>
+    <id val="2409"/>
+    <id val="2410"/>
+    <id val="2411"/>
+    <id val="2412"/>
+    <id val="2413"/>
+    <id val="2414"/>
+    <id val="2415"/>
+    <id val="2416"/>
+    <id val="2417"/>
+    <id val="2437"/>
+    <id val="2438"/>
+    <id val="2439"/>
+    <id val="2440"/>
+    <id val="2441"/>
+    <id val="2442"/>
+    <id val="2443"/>
+    <id val="2444"/>
+    <id val="2445"/>
+    <id val="2446"/>
+    <id val="2447"/>
+    <id val="2448"/>
+    <id val="2449"/>
+    <id val="2450"/>
+    <id val="2451"/>
+    <id val="2452"/>
+    <id val="2453"/>
+    <id val="2454"/>
+    <id val="2455"/>
+    <id val="2456"/>
+    <id val="2457"/>
+    <id val="2458"/>
+    <id val="2459"/>
+    <id val="2460"/>
+    <id val="2461"/>
+    <id val="2462"/>
+    <id val="2463"/>
+    <id val="2464"/>
+    <id val="2465"/>
+    <id val="2466"/>
+    <id val="2467"/>
+    <id val="2468"/>
+    <id val="2469"/>
+    <id val="2470"/>
+    <id val="2471"/>
+    <id val="2472"/>
+    <id val="2473"/>
+    <id val="2474"/>
+    <id val="2475"/>
+    <id val="2476"/>
+    <id val="2477"/>
+    <id val="2478"/>
+    <id val="2479"/>
+    <id val="2480"/>
+    <id val="2481"/>
+    <id val="2501"/>
+    <id val="2502"/>
+    <id val="2503"/>
+    <id val="2504"/>
+    <id val="2505"/>
+    <id val="2506"/>
+    <id val="2507"/>
+    <id val="2508"/>
+    <id val="2509"/>
+    <id val="2510"/>
+    <id val="2511"/>
+    <id val="2512"/>
+    <id val="2513"/>
+    <id val="2514"/>
+    <id val="2515"/>
+    <id val="2516"/>
+    <id val="2517"/>
+    <id val="2518"/>
+    <id val="2519"/>
+    <id val="2520"/>
+    <id val="2521"/>
+    <id val="2522"/>
+    <id val="2523"/>
+    <id val="2524"/>
+    <id val="2525"/>
+    <id val="2526"/>
+    <id val="2527"/>
+    <id val="2528"/>
+    <id val="2529"/>
+    <id val="2530"/>
+    <id val="2531"/>
+    <id val="2532"/>
+    <id val="2533"/>
+    <id val="2534"/>
+    <id val="2535"/>
+    <id val="2536"/>
+    <id val="2537"/>
+    <id val="2538"/>
+    <id val="2539"/>
+    <id val="2540"/>
+    <id val="2541"/>
+    <id val="2542"/>
+    <id val="2543"/>
+    <id val="2544"/>
+    <id val="2545"/>
+    <id val="2565"/>
+    <id val="2566"/>
+    <id val="2567"/>
+    <id val="2568"/>
+    <id val="2569"/>
+    <id val="2570"/>
+    <id val="2571"/>
+    <id val="2572"/>
+    <id val="2573"/>
+    <id val="2574"/>
+    <id val="2575"/>
+    <id val="2576"/>
+    <id val="2577"/>
+    <id val="2578"/>
+    <id val="2579"/>
+    <id val="2580"/>
+    <id val="2581"/>
+    <id val="2582"/>
+    <id val="2583"/>
+    <id val="2584"/>
+    <id val="2585"/>
+    <id val="2586"/>
+    <id val="2587"/>
+    <id val="2588"/>
+    <id val="2589"/>
+    <id val="2590"/>
+    <id val="2591"/>
+    <id val="2592"/>
+    <id val="2593"/>
+    <id val="2594"/>
+    <id val="2595"/>
+    <id val="2596"/>
+    <id val="2597"/>
+    <id val="2598"/>
+    <id val="2599"/>
+    <id val="2600"/>
+    <id val="2601"/>
+    <id val="2602"/>
+    <id val="2603"/>
+    <id val="2604"/>
+    <id val="2605"/>
+    <id val="2606"/>
+    <id val="2607"/>
+    <id val="2608"/>
+    <id val="2609"/>
+    <id val="2629"/>
+    <id val="2630"/>
+    <id val="2631"/>
+    <id val="2632"/>
+    <id val="2633"/>
+    <id val="2634"/>
+    <id val="2635"/>
+    <id val="2636"/>
+    <id val="2637"/>
+    <id val="2638"/>
+    <id val="2639"/>
+    <id val="2640"/>
+    <id val="2641"/>
+    <id val="2642"/>
+    <id val="2643"/>
+    <id val="2644"/>
+    <id val="2645"/>
+    <id val="2646"/>
+    <id val="2647"/>
+    <id val="2648"/>
+    <id val="2649"/>
+    <id val="2650"/>
+    <id val="2651"/>
+    <id val="2652"/>
+    <id val="2653"/>
+    <id val="2654"/>
+    <id val="2655"/>
+    <id val="2656"/>
+    <id val="2657"/>
+    <id val="2658"/>
+    <id val="2659"/>
+    <id val="2660"/>
+    <id val="2661"/>
+    <id val="2662"/>
+    <id val="2663"/>
+    <id val="2664"/>
+    <id val="2665"/>
+    <id val="2666"/>
+    <id val="2667"/>
+    <id val="2668"/>
+    <id val="2669"/>
+    <id val="2670"/>
+    <id val="2671"/>
+    <id val="2672"/>
+    <id val="2673"/>
+    <id val="2693"/>
+    <id val="2694"/>
+    <id val="2695"/>
+    <id val="2696"/>
+    <id val="2697"/>
+    <id val="2698"/>
+    <id val="2699"/>
+    <id val="2700"/>
+    <id val="2701"/>
+    <id val="2702"/>
+    <id val="2703"/>
+    <id val="2704"/>
+    <id val="2705"/>
+    <id val="2706"/>
+    <id val="2707"/>
+    <id val="2708"/>
+    <id val="2709"/>
+    <id val="2710"/>
+    <id val="2711"/>
+    <id val="2712"/>
+    <id val="2713"/>
+    <id val="2714"/>
+    <id val="2715"/>
+    <id val="2716"/>
+    <id val="2717"/>
+    <id val="2718"/>
+    <id val="2719"/>
+    <id val="2720"/>
+    <id val="2721"/>
+    <id val="2722"/>
+    <id val="2723"/>
+    <id val="2724"/>
+    <id val="2725"/>
+    <id val="2726"/>
+    <id val="2727"/>
+    <id val="2728"/>
+    <id val="2729"/>
+    <id val="2730"/>
+    <id val="2731"/>
+    <id val="2732"/>
+    <id val="2733"/>
+    <id val="2734"/>
+    <id val="2735"/>
+    <id val="2736"/>
+    <id val="2737"/>
+    <id val="2757"/>
+    <id val="2758"/>
+    <id val="2759"/>
+    <id val="2760"/>
+    <id val="2761"/>
+    <id val="2762"/>
+    <id val="2763"/>
+    <id val="2764"/>
+    <id val="2765"/>
+    <id val="2766"/>
+    <id val="2767"/>
+    <id val="2768"/>
+    <id val="2769"/>
+    <id val="2770"/>
+    <id val="2771"/>
+    <id val="2772"/>
+    <id val="2773"/>
+    <id val="2774"/>
+    <id val="2775"/>
+    <id val="2776"/>
+    <id val="2777"/>
+    <id val="2778"/>
+    <id val="2779"/>
+    <id val="2780"/>
+    <id val="2781"/>
+    <id val="2782"/>
+    <id val="2783"/>
+    <id val="2784"/>
+    <id val="2785"/>
+    <id val="2786"/>
+    <id val="2787"/>
+    <id val="2788"/>
+    <id val="2789"/>
+    <id val="2790"/>
+    <id val="2791"/>
+    <id val="2792"/>
+    <id val="2793"/>
+    <id val="2794"/>
+    <id val="2795"/>
+    <id val="2796"/>
+    <id val="2797"/>
+    <id val="2798"/>
+    <id val="2799"/>
+    <id val="2800"/>
+    <id val="2801"/>
+    <id val="2821"/>
+    <id val="2822"/>
+    <id val="2823"/>
+    <id val="2824"/>
+    <id val="2825"/>
+    <id val="2826"/>
+    <id val="2827"/>
+    <id val="2828"/>
+    <id val="2829"/>
+    <id val="2830"/>
+    <id val="2831"/>
+    <id val="2832"/>
+    <id val="2833"/>
+    <id val="2834"/>
+    <id val="2835"/>
+    <id val="2836"/>
+    <id val="2837"/>
+    <id val="2838"/>
+    <id val="2839"/>
+    <id val="2840"/>
+    <id val="2841"/>
+    <id val="2842"/>
+    <id val="2843"/>
+    <id val="2844"/>
+    <id val="2845"/>
+    <id val="2846"/>
+    <id val="2847"/>
+    <id val="2848"/>
+    <id val="2849"/>
+    <id val="2850"/>
+    <id val="2851"/>
+    <id val="2852"/>
+    <id val="2853"/>
+    <id val="2854"/>
+    <id val="2855"/>
+    <id val="2856"/>
+    <id val="2857"/>
+    <id val="2858"/>
+    <id val="2859"/>
+    <id val="2860"/>
+    <id val="2861"/>
+    <id val="2862"/>
+    <id val="2863"/>
+    <id val="2864"/>
+    <id val="2865"/>
+    <id val="2885"/>
+    <id val="2886"/>
+    <id val="2887"/>
+    <id val="2888"/>
+    <id val="2889"/>
+    <id val="2890"/>
+    <id val="2891"/>
+    <id val="2892"/>
+    <id val="2893"/>
+    <id val="2894"/>
+    <id val="2895"/>
+    <id val="2896"/>
+    <id val="2897"/>
+    <id val="2898"/>
+    <id val="2899"/>
+    <id val="2900"/>
+    <id val="2901"/>
+    <id val="2902"/>
+    <id val="2903"/>
+    <id val="2904"/>
+    <id val="2905"/>
+    <id val="2906"/>
+    <id val="2907"/>
+    <id val="2908"/>
+    <id val="2909"/>
+    <id val="2910"/>
+    <id val="2911"/>
+    <id val="2912"/>
+    <id val="2913"/>
+    <id val="2914"/>
+    <id val="2915"/>
+    <id val="2916"/>
+    <id val="2917"/>
+    <id val="2918"/>
+    <id val="2919"/>
+    <id val="2920"/>
+    <id val="2921"/>
+    <id val="2922"/>
+    <id val="2923"/>
+    <id val="2924"/>
+    <id val="2925"/>
+    <id val="2926"/>
+    <id val="2927"/>
+    <id val="2928"/>
+    <id val="2929"/>
+    <id val="2949"/>
+    <id val="2950"/>
+    <id val="2951"/>
+    <id val="2952"/>
+    <id val="2953"/>
+    <id val="2954"/>
+    <id val="2955"/>
+    <id val="2956"/>
+    <id val="2957"/>
+    <id val="2958"/>
+    <id val="2959"/>
+    <id val="2960"/>
+    <id val="2961"/>
+    <id val="2962"/>
+    <id val="2963"/>
+    <id val="2964"/>
+    <id val="2965"/>
+    <id val="2966"/>
+    <id val="2967"/>
+    <id val="2968"/>
+    <id val="2969"/>
+    <id val="2970"/>
+    <id val="2971"/>
+    <id val="2972"/>
+    <id val="2973"/>
+    <id val="2974"/>
+    <id val="2975"/>
+    <id val="2976"/>
+    <id val="2977"/>
+    <id val="2978"/>
+    <id val="2979"/>
+    <id val="2980"/>
+    <id val="2981"/>
+    <id val="2982"/>
+    <id val="2983"/>
+    <id val="2984"/>
+    <id val="2985"/>
+    <id val="2986"/>
+    <id val="2987"/>
+    <id val="2988"/>
+    <id val="2989"/>
+    <id val="2990"/>
+    <id val="2991"/>
+    <id val="2992"/>
+    <id val="2993"/>
+    <id val="3013"/>
+    <id val="3014"/>
+    <id val="3015"/>
+    <id val="3016"/>
+    <id val="3017"/>
+    <id val="3018"/>
+    <id val="3019"/>
+    <id val="3020"/>
+    <id val="3021"/>
+    <id val="3022"/>
+    <id val="3023"/>
+    <id val="3024"/>
+    <id val="3025"/>
+    <id val="3026"/>
+    <id val="3027"/>
+    <id val="3028"/>
+    <id val="3029"/>
+    <id val="3030"/>
+    <id val="3031"/>
+    <id val="3032"/>
+    <id val="3033"/>
+    <id val="3034"/>
+    <id val="3035"/>
+    <id val="3036"/>
+    <id val="3037"/>
+    <id val="3038"/>
+    <id val="3039"/>
+    <id val="3040"/>
+    <id val="3041"/>
+    <id val="3042"/>
+    <id val="3043"/>
+    <id val="3044"/>
+    <id val="3045"/>
+    <id val="3046"/>
+    <id val="3047"/>
+    <id val="3048"/>
+    <id val="3049"/>
+    <id val="3050"/>
+    <id val="3051"/>
+    <id val="3052"/>
+    <id val="3053"/>
+    <id val="3054"/>
+    <id val="3055"/>
+    <id val="3056"/>
+    <id val="3057"/>
+    <id val="3077"/>
+    <id val="3078"/>
+    <id val="3079"/>
+    <id val="3080"/>
+    <id val="3081"/>
+    <id val="3082"/>
+    <id val="3083"/>
+    <id val="3084"/>
+    <id val="3085"/>
+    <id val="3086"/>
+    <id val="3087"/>
+    <id val="3088"/>
+    <id val="3089"/>
+    <id val="3090"/>
+    <id val="3091"/>
+    <id val="3092"/>
+    <id val="3093"/>
+    <id val="3094"/>
+    <id val="3095"/>
+    <id val="3096"/>
+    <id val="3097"/>
+    <id val="3098"/>
+    <id val="3099"/>
+    <id val="3100"/>
+    <id val="3101"/>
+    <id val="3102"/>
+    <id val="3103"/>
+    <id val="3104"/>
+    <id val="3105"/>
+    <id val="3106"/>
+    <id val="3107"/>
+    <id val="3108"/>
+    <id val="3109"/>
+    <id val="3110"/>
+    <id val="3111"/>
+    <id val="3112"/>
+    <id val="3113"/>
+    <id val="3114"/>
+    <id val="3115"/>
+    <id val="3116"/>
+    <id val="3117"/>
+    <id val="3118"/>
+    <id val="3119"/>
+    <id val="3120"/>
+    <id val="3121"/>
+    <id val="3141"/>
+    <id val="3142"/>
+    <id val="3143"/>
+    <id val="3144"/>
+    <id val="3145"/>
+    <id val="3146"/>
+    <id val="3147"/>
+    <id val="3148"/>
+    <id val="3149"/>
+    <id val="3150"/>
+    <id val="3151"/>
+    <id val="3152"/>
+    <id val="3153"/>
+    <id val="3154"/>
+    <id val="3155"/>
+    <id val="3156"/>
+    <id val="3157"/>
+    <id val="3158"/>
+    <id val="3159"/>
+    <id val="3160"/>
+    <id val="3161"/>
+    <id val="3162"/>
+    <id val="3163"/>
+    <id val="3164"/>
+    <id val="3165"/>
+    <id val="3166"/>
+    <id val="3167"/>
+    <id val="3168"/>
+    <id val="3169"/>
+    <id val="3170"/>
+    <id val="3171"/>
+    <id val="3172"/>
+    <id val="3173"/>
+    <id val="3174"/>
+    <id val="3175"/>
+    <id val="3176"/>
+    <id val="3177"/>
+    <id val="3178"/>
+    <id val="3179"/>
+    <id val="3180"/>
+    <id val="3181"/>
+    <id val="3182"/>
+    <id val="3183"/>
+    <id val="3184"/>
+    <id val="3185"/>
+    <id val="3205"/>
+    <id val="3206"/>
+    <id val="3207"/>
+    <id val="3208"/>
+    <id val="3209"/>
+    <id val="3210"/>
+    <id val="3211"/>
+    <id val="3212"/>
+    <id val="3213"/>
+    <id val="3214"/>
+    <id val="3215"/>
+    <id val="3216"/>
+    <id val="3217"/>
+    <id val="3218"/>
+    <id val="3219"/>
+    <id val="3220"/>
+    <id val="3221"/>
+    <id val="3222"/>
+    <id val="3223"/>
+    <id val="3224"/>
+    <id val="3225"/>
+    <id val="3226"/>
+    <id val="3227"/>
+    <id val="3228"/>
+    <id val="3229"/>
+    <id val="3230"/>
+    <id val="3231"/>
+    <id val="3232"/>
+    <id val="3233"/>
+    <id val="3234"/>
+    <id val="3235"/>
+    <id val="3236"/>
+    <id val="3237"/>
+    <id val="3238"/>
+    <id val="3239"/>
+    <id val="3240"/>
+    <id val="3241"/>
+    <id val="3242"/>
+    <id val="3243"/>
+    <id val="3244"/>
+    <id val="3245"/>
+    <id val="3246"/>
+    <id val="3247"/>
+    <id val="3248"/>
+    <id val="3249"/>
+    <id val="3269"/>
+    <id val="3270"/>
+    <id val="3271"/>
+    <id val="3272"/>
+    <id val="3273"/>
+    <id val="3274"/>
+    <id val="3275"/>
+    <id val="3276"/>
+    <id val="3277"/>
+    <id val="3278"/>
+    <id val="3279"/>
+    <id val="3280"/>
+    <id val="3281"/>
+    <id val="3282"/>
+    <id val="3283"/>
+    <id val="3284"/>
+    <id val="3285"/>
+    <id val="3286"/>
+    <id val="3287"/>
+    <id val="3288"/>
+    <id val="3289"/>
+    <id val="3290"/>
+    <id val="3291"/>
+    <id val="3292"/>
+    <id val="3293"/>
+    <id val="3294"/>
+    <id val="3295"/>
+    <id val="3296"/>
+    <id val="3297"/>
+    <id val="3298"/>
+    <id val="3299"/>
+    <id val="3300"/>
+    <id val="3301"/>
+    <id val="3302"/>
+    <id val="3303"/>
+    <id val="3304"/>
+    <id val="3305"/>
+    <id val="3306"/>
+    <id val="3307"/>
+    <id val="3308"/>
+    <id val="3309"/>
+    <id val="3310"/>
+    <id val="3311"/>
+    <id val="3312"/>
+    <id val="3313"/>
+    <id val="3333"/>
+    <id val="3334"/>
+    <id val="3335"/>
+    <id val="3336"/>
+    <id val="3337"/>
+    <id val="3338"/>
+    <id val="3339"/>
+    <id val="3340"/>
+    <id val="3341"/>
+    <id val="3342"/>
+    <id val="3343"/>
+    <id val="3344"/>
+    <id val="3345"/>
+    <id val="3346"/>
+    <id val="3347"/>
+    <id val="3348"/>
+    <id val="3349"/>
+    <id val="3350"/>
+    <id val="3351"/>
+    <id val="3352"/>
+    <id val="3353"/>
+    <id val="3354"/>
+    <id val="3355"/>
+    <id val="3356"/>
+    <id val="3357"/>
+    <id val="3358"/>
+    <id val="3359"/>
+    <id val="3360"/>
+    <id val="3361"/>
+    <id val="3362"/>
+    <id val="3363"/>
+    <id val="3364"/>
+    <id val="3365"/>
+    <id val="3366"/>
+    <id val="3367"/>
+    <id val="3368"/>
+    <id val="3369"/>
+    <id val="3370"/>
+    <id val="3371"/>
+    <id val="3372"/>
+    <id val="3373"/>
+    <id val="3374"/>
+    <id val="3375"/>
+    <id val="3376"/>
+    <id val="3377"/>
+    <id val="3397"/>
+    <id val="3398"/>
+    <id val="3399"/>
+    <id val="3400"/>
+    <id val="3401"/>
+    <id val="3402"/>
+    <id val="3403"/>
+    <id val="3404"/>
+    <id val="3405"/>
+    <id val="3406"/>
+    <id val="3407"/>
+    <id val="3408"/>
+    <id val="3409"/>
+    <id val="3410"/>
+    <id val="3411"/>
+    <id val="3412"/>
+    <id val="3413"/>
+    <id val="3414"/>
+    <id val="3415"/>
+    <id val="3416"/>
+    <id val="3417"/>
+    <id val="3418"/>
+    <id val="3419"/>
+    <id val="3420"/>
+    <id val="3421"/>
+    <id val="3422"/>
+    <id val="3423"/>
+    <id val="3424"/>
+    <id val="3425"/>
+    <id val="3426"/>
+    <id val="3427"/>
+    <id val="3428"/>
+    <id val="3429"/>
+    <id val="3430"/>
+    <id val="3431"/>
+    <id val="3432"/>
+    <id val="3433"/>
+    <id val="3434"/>
+    <id val="3435"/>
+    <id val="3436"/>
+    <id val="3437"/>
+    <id val="3438"/>
+    <id val="3439"/>
+    <id val="3440"/>
+    <id val="3441"/>
+    <id val="3461"/>
+    <id val="3462"/>
+    <id val="3463"/>
+    <id val="3464"/>
+    <id val="3465"/>
+    <id val="3466"/>
+    <id val="3467"/>
+    <id val="3468"/>
+    <id val="3469"/>
+    <id val="3470"/>
+    <id val="3471"/>
+    <id val="3472"/>
+    <id val="3473"/>
+    <id val="3474"/>
+    <id val="3475"/>
+    <id val="3476"/>
+    <id val="3477"/>
+    <id val="3478"/>
+    <id val="3479"/>
+    <id val="3480"/>
+    <id val="3481"/>
+    <id val="3482"/>
+    <id val="3483"/>
+    <id val="3484"/>
+    <id val="3485"/>
+    <id val="3486"/>
+    <id val="3487"/>
+    <id val="3488"/>
+    <id val="3489"/>
+    <id val="3490"/>
+    <id val="3491"/>
+    <id val="3492"/>
+    <id val="3493"/>
+    <id val="3494"/>
+    <id val="3495"/>
+    <id val="3496"/>
+    <id val="3497"/>
+    <id val="3498"/>
+    <id val="3499"/>
+    <id val="3500"/>
+    <id val="3501"/>
+    <id val="3502"/>
+    <id val="3503"/>
+    <id val="3504"/>
+    <id val="3505"/>
+    <id val="3525"/>
+    <id val="3526"/>
+    <id val="3527"/>
+    <id val="3528"/>
+    <id val="3529"/>
+    <id val="3530"/>
+    <id val="3531"/>
+    <id val="3532"/>
+    <id val="3533"/>
+    <id val="3534"/>
+    <id val="3535"/>
+    <id val="3536"/>
+    <id val="3537"/>
+    <id val="3538"/>
+    <id val="3539"/>
+    <id val="3540"/>
+    <id val="3541"/>
+    <id val="3542"/>
+    <id val="3543"/>
+    <id val="3544"/>
+    <id val="3545"/>
+    <id val="3546"/>
+    <id val="3547"/>
+    <id val="3548"/>
+    <id val="3549"/>
+    <id val="3550"/>
+    <id val="3551"/>
+    <id val="3552"/>
+    <id val="3553"/>
+    <id val="3554"/>
+    <id val="3555"/>
+    <id val="3556"/>
+    <id val="3557"/>
+    <id val="3558"/>
+    <id val="3559"/>
+    <id val="3560"/>
+    <id val="3561"/>
+    <id val="3562"/>
+    <id val="3563"/>
+    <id val="3564"/>
+    <id val="3565"/>
+    <id val="3566"/>
+    <id val="3567"/>
+    <id val="3568"/>
+    <id val="3569"/>
+  </idlist>
+  <component idlist="bank2" type="bank2">
+    <location/>
+  </component>
+  <type name="bank2">
+    <component type="pixel">
+      <location name="4110" x="0.487260681056" y="-1.9345015625" z="2.39457769788">
+        <neutronic p="-66.5981" r="4.70977" t="27.1236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4111" x="0.487260681056" y="-1.89631953125" z="2.39457769788">
+        <neutronic p="-66.1129" r="4.71076" t="26.6764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4112" x="0.487260681056" y="-1.8581375" z="2.39457769788">
+        <neutronic p="-65.6086" r="4.71172" t="26.2275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4113" x="0.487260681056" y="-1.81995546875" z="2.39457769788">
+        <neutronic p="-65.084" r="4.71265" t="25.7772"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4114" x="0.487260681056" y="-1.7817734375" z="2.39457769788">
+        <neutronic p="-64.5382" r="4.71356" t="25.3256"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4115" x="0.487260681056" y="-1.74359140625" z="2.39457769788">
+        <neutronic p="-63.9699" r="4.71445" t="24.8729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4116" x="0.487260681056" y="-1.705409375" z="2.39457769788">
+        <neutronic p="-63.3778" r="4.71532" t="24.4194"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4117" x="0.487260681056" y="-1.66722734375" z="2.39457769788">
+        <neutronic p="-62.7604" r="4.71616" t="23.9651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4118" x="0.487260681056" y="-1.6290453125" z="2.39457769788">
+        <neutronic p="-62.1164" r="4.71697" t="23.5104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4119" x="0.487260681056" y="-1.59086328125" z="2.39457769788">
+        <neutronic p="-61.4441" r="4.71776" t="23.0555"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4120" x="0.487260681056" y="-1.55268125" z="2.39457769788">
+        <neutronic p="-60.7418" r="4.71852" t="22.6007"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4121" x="0.487260681056" y="-1.51449921875" z="2.39457769788">
+        <neutronic p="-60.0077" r="4.71926" t="22.1463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4122" x="0.487260681056" y="-1.4763171875" z="2.39457769788">
+        <neutronic p="-59.2399" r="4.71998" t="21.6926"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4123" x="0.487260681056" y="-1.43813515625" z="2.39457769788">
+        <neutronic p="-58.4362" r="4.72066" t="21.24"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4124" x="0.487260681056" y="-1.399953125" z="2.39457769788">
+        <neutronic p="-57.5945" r="4.72133" t="20.7888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4125" x="0.487260681056" y="-1.36177109375" z="2.39457769788">
+        <neutronic p="-56.7124" r="4.72196" t="20.3394"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4126" x="0.487260681056" y="-1.3235890625" z="2.39457769788">
+        <neutronic p="-55.7874" r="4.72257" t="19.8923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4127" x="0.487260681056" y="-1.28540703125" z="2.39457769788">
+        <neutronic p="-54.8167" r="4.72315" t="19.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4128" x="0.487260681056" y="-1.247225" z="2.39457769788">
+        <neutronic p="-53.7975" r="4.72371" t="19.0068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4129" x="0.487260681056" y="-1.20904296875" z="2.39457769788">
+        <neutronic p="-52.7269" r="4.72424" t="18.5694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4130" x="0.487260681056" y="-1.1708609375" z="2.39457769788">
+        <neutronic p="-51.6016" r="4.72474" t="18.1364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4131" x="0.487260681056" y="-1.13267890625" z="2.39457769788">
+        <neutronic p="-50.4183" r="4.72521" t="17.7084"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4132" x="0.487260681056" y="-1.094496875" z="2.39457769788">
+        <neutronic p="-49.1734" r="4.72566" t="17.286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4133" x="0.487260681056" y="-1.05631484375" z="2.39457769788">
+        <neutronic p="-47.8634" r="4.72608" t="16.8701"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4134" x="0.487260681056" y="-1.0181328125" z="2.39457769788">
+        <neutronic p="-46.4845" r="4.72647" t="16.4613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4135" x="0.487260681056" y="-0.97995078125" z="2.39457769788">
+        <neutronic p="-45.0328" r="4.72684" t="16.0606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4136" x="0.487260681056" y="-0.94176875" z="2.39457769788">
+        <neutronic p="-43.5044" r="4.72717" t="15.6688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4137" x="0.487260681056" y="-0.90358671875" z="2.39457769788">
+        <neutronic p="-41.8955" r="4.72748" t="15.2869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4138" x="0.487260681056" y="-0.8654046875" z="2.39457769788">
+        <neutronic p="-40.2023" r="4.72776" t="14.916"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4139" x="0.487260681056" y="-0.82722265625" z="2.39457769788">
+        <neutronic p="-38.4213" r="4.72801" t="14.5572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4140" x="0.487260681056" y="-0.789040625" z="2.39457769788">
+        <neutronic p="-36.549" r="4.72824" t="14.2117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4141" x="0.487260681056" y="-0.75085859375" z="2.39457769788">
+        <neutronic p="-34.5828" r="4.72843" t="13.8806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4142" x="0.487260681056" y="-0.7126765625" z="2.39457769788">
+        <neutronic p="-32.5202" r="4.7286" t="13.5654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4143" x="0.487260681056" y="-0.67449453125" z="2.39457769788">
+        <neutronic p="-30.36" r="4.72874" t="13.2672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4144" x="0.487260681056" y="-0.6363125" z="2.39457769788">
+        <neutronic p="-28.1014" r="4.72885" t="12.9877"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4145" x="0.487260681056" y="-0.59813046875" z="2.39457769788">
+        <neutronic p="-25.7452" r="4.72893" t="12.728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4146" x="0.487260681056" y="-0.5599484375" z="2.39457769788">
+        <neutronic p="-23.2935" r="4.72898" t="12.4898"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4147" x="0.487260681056" y="-0.52176640625" z="2.39457769788">
+        <neutronic p="-20.7498" r="4.72901" t="12.2742"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4148" x="0.487260681056" y="-0.483584375" z="2.39457769788">
+        <neutronic p="-18.1194" r="4.729" t="12.0828"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4149" x="0.487260681056" y="-0.44540234375" z="2.39457769788">
+        <neutronic p="-15.4095" r="4.72897" t="11.9168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4150" x="0.487260681056" y="-0.4072203125" z="2.39457769788">
+        <neutronic p="-12.6291" r="4.72891" t="11.7773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4151" x="0.487260681056" y="-0.36903828125" z="2.39457769788">
+        <neutronic p="-9.78903" r="4.72882" t="11.6653"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4152" x="0.487260681056" y="-0.33085625" z="2.39457769788">
+        <neutronic p="-6.90162" r="4.7287" t="11.5817"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4153" x="0.487260681056" y="-0.29267421875" z="2.39457769788">
+        <neutronic p="-3.9807" r="4.72855" t="11.5271"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4154" x="0.487260681056" y="-0.2544921875" z="2.39457769788">
+        <neutronic p="-1.04109" r="4.72838" t="11.5018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4174" x="0.598410194885" y="-1.9345015625" z="2.36924683416">
+        <neutronic p="-61.9289" r="4.70977" t="28.3066"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4175" x="0.598410194885" y="-1.89631953125" z="2.36924683416">
+        <neutronic p="-61.377" r="4.71076" t="27.8816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4176" x="0.598410194885" y="-1.8581375" z="2.36924683416">
+        <neutronic p="-60.8051" r="4.71172" t="27.4557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4177" x="0.598410194885" y="-1.81995546875" z="2.36924683416">
+        <neutronic p="-60.2123" r="4.71265" t="27.0291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4178" x="0.598410194885" y="-1.7817734375" z="2.36924683416">
+        <neutronic p="-59.5974" r="4.71356" t="26.602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4179" x="0.598410194885" y="-1.74359140625" z="2.36924683416">
+        <neutronic p="-58.9595" r="4.71445" t="26.1746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4180" x="0.598410194885" y="-1.705409375" z="2.36924683416">
+        <neutronic p="-58.2974" r="4.71532" t="25.7472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4181" x="0.598410194885" y="-1.66722734375" z="2.36924683416">
+        <neutronic p="-57.6098" r="4.71616" t="25.3199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4182" x="0.598410194885" y="-1.6290453125" z="2.36924683416">
+        <neutronic p="-56.8954" r="4.71697" t="24.8932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4183" x="0.598410194885" y="-1.59086328125" z="2.36924683416">
+        <neutronic p="-56.153" r="4.71776" t="24.4672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4184" x="0.598410194885" y="-1.55268125" z="2.36924683416">
+        <neutronic p="-55.3811" r="4.71852" t="24.0423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4185" x="0.598410194885" y="-1.51449921875" z="2.36924683416">
+        <neutronic p="-54.5783" r="4.71926" t="23.6189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4186" x="0.598410194885" y="-1.4763171875" z="2.36924683416">
+        <neutronic p="-53.7428" r="4.71998" t="23.1972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4187" x="0.598410194885" y="-1.43813515625" z="2.36924683416">
+        <neutronic p="-52.8732" r="4.72066" t="22.7776"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4188" x="0.598410194885" y="-1.399953125" z="2.36924683416">
+        <neutronic p="-51.9678" r="4.72133" t="22.3606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4189" x="0.598410194885" y="-1.36177109375" z="2.36924683416">
+        <neutronic p="-51.0246" r="4.72196" t="21.9465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4190" x="0.598410194885" y="-1.3235890625" z="2.36924683416">
+        <neutronic p="-50.042" r="4.72257" t="21.5359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4191" x="0.598410194885" y="-1.28540703125" z="2.36924683416">
+        <neutronic p="-49.0179" r="4.72315" t="21.1291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4192" x="0.598410194885" y="-1.247225" z="2.36924683416">
+        <neutronic p="-47.9504" r="4.72371" t="20.7268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4193" x="0.598410194885" y="-1.20904296875" z="2.36924683416">
+        <neutronic p="-46.8376" r="4.72424" t="20.3294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4194" x="0.598410194885" y="-1.1708609375" z="2.36924683416">
+        <neutronic p="-45.6773" r="4.72474" t="19.9376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4195" x="0.598410194885" y="-1.13267890625" z="2.36924683416">
+        <neutronic p="-44.4674" r="4.72521" t="19.5519"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4196" x="0.598410194885" y="-1.094496875" z="2.36924683416">
+        <neutronic p="-43.2059" r="4.72566" t="19.173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4197" x="0.598410194885" y="-1.05631484375" z="2.36924683416">
+        <neutronic p="-41.8908" r="4.72608" t="18.8016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4198" x="0.598410194885" y="-1.0181328125" z="2.36924683416">
+        <neutronic p="-40.52" r="4.72647" t="18.4384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4199" x="0.598410194885" y="-0.97995078125" z="2.36924683416">
+        <neutronic p="-39.0916" r="4.72684" t="18.0842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4200" x="0.598410194885" y="-0.94176875" z="2.36924683416">
+        <neutronic p="-37.6038" r="4.72717" t="17.7397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4201" x="0.598410194885" y="-0.90358671875" z="2.36924683416">
+        <neutronic p="-36.0549" r="4.72748" t="17.4058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4202" x="0.598410194885" y="-0.8654046875" z="2.36924683416">
+        <neutronic p="-34.4436" r="4.72776" t="17.0834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4203" x="0.598410194885" y="-0.82722265625" z="2.36924683416">
+        <neutronic p="-32.7686" r="4.72801" t="16.7733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4204" x="0.598410194885" y="-0.789040625" z="2.36924683416">
+        <neutronic p="-31.0293" r="4.72824" t="16.4765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4205" x="0.598410194885" y="-0.75085859375" z="2.36924683416">
+        <neutronic p="-29.2253" r="4.72843" t="16.1939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4206" x="0.598410194885" y="-0.7126765625" z="2.36924683416">
+        <neutronic p="-27.3566" r="4.7286" t="15.9265"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4207" x="0.598410194885" y="-0.67449453125" z="2.36924683416">
+        <neutronic p="-25.4239" r="4.72874" t="15.6752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4208" x="0.598410194885" y="-0.6363125" z="2.36924683416">
+        <neutronic p="-23.4285" r="4.72885" t="15.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4209" x="0.598410194885" y="-0.59813046875" z="2.36924683416">
+        <neutronic p="-21.3724" r="4.72893" t="15.2249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4210" x="0.598410194885" y="-0.5599484375" z="2.36924683416">
+        <neutronic p="-19.2584" r="4.72898" t="15.0277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4211" x="0.598410194885" y="-0.52176640625" z="2.36924683416">
+        <neutronic p="-17.09" r="4.72901" t="14.8504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4212" x="0.598410194885" y="-0.483584375" z="2.36924683416">
+        <neutronic p="-14.8714" r="4.729" t="14.6937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4213" x="0.598410194885" y="-0.44540234375" z="2.36924683416">
+        <neutronic p="-12.6079" r="4.72897" t="14.5585"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4214" x="0.598410194885" y="-0.4072203125" z="2.36924683416">
+        <neutronic p="-10.3053" r="4.72891" t="14.4453"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4215" x="0.598410194885" y="-0.36903828125" z="2.36924683416">
+        <neutronic p="-7.97025" r="4.72882" t="14.3548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4216" x="0.598410194885" y="-0.33085625" z="2.36924683416">
+        <neutronic p="-5.60996" r="4.7287" t="14.2875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4217" x="0.598410194885" y="-0.29267421875" z="2.36924683416">
+        <neutronic p="-3.23214" r="4.72855" t="14.2436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4218" x="0.598410194885" y="-0.2544921875" z="2.36924683416">
+        <neutronic p="-0.844879" r="4.72838" t="14.2233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4238" x="0.708257363137" y="-1.9345015625" z="2.33875967771">
+        <neutronic p="-57.6816" r="4.70977" t="29.6767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4239" x="0.708257363137" y="-1.89631953125" z="2.33875967771">
+        <neutronic p="-57.082" r="4.71076" t="29.2753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4240" x="0.708257363137" y="-1.8581375" z="2.33875967771">
+        <neutronic p="-56.4625" r="4.71172" t="28.8737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4241" x="0.708257363137" y="-1.81995546875" z="2.33875967771">
+        <neutronic p="-55.8224" r="4.71265" t="28.472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4242" x="0.708257363137" y="-1.7817734375" z="2.33875967771">
+        <neutronic p="-55.1608" r="4.71356" t="28.0706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4243" x="0.708257363137" y="-1.74359140625" z="2.33875967771">
+        <neutronic p="-54.4768" r="4.71445" t="27.6695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4244" x="0.708257363137" y="-1.705409375" z="2.33875967771">
+        <neutronic p="-53.7694" r="4.71532" t="27.2692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4245" x="0.708257363137" y="-1.66722734375" z="2.33875967771">
+        <neutronic p="-53.0376" r="4.71616" t="26.8699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4246" x="0.708257363137" y="-1.6290453125" z="2.33875967771">
+        <neutronic p="-52.2804" r="4.71697" t="26.4718"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4247" x="0.708257363137" y="-1.59086328125" z="2.33875967771">
+        <neutronic p="-51.4968" r="4.71776" t="26.0753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4248" x="0.708257363137" y="-1.55268125" z="2.33875967771">
+        <neutronic p="-50.6857" r="4.71852" t="25.6807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4249" x="0.708257363137" y="-1.51449921875" z="2.33875967771">
+        <neutronic p="-49.8459" r="4.71926" t="25.2883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4250" x="0.708257363137" y="-1.4763171875" z="2.33875967771">
+        <neutronic p="-48.9763" r="4.71998" t="24.8984"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4251" x="0.708257363137" y="-1.43813515625" z="2.33875967771">
+        <neutronic p="-48.0757" r="4.72066" t="24.5115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4252" x="0.708257363137" y="-1.399953125" z="2.33875967771">
+        <neutronic p="-47.1428" r="4.72133" t="24.128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4253" x="0.708257363137" y="-1.36177109375" z="2.33875967771">
+        <neutronic p="-46.1765" r="4.72196" t="23.7483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4254" x="0.708257363137" y="-1.3235890625" z="2.33875967771">
+        <neutronic p="-45.1755" r="4.72257" t="23.3727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4255" x="0.708257363137" y="-1.28540703125" z="2.33875967771">
+        <neutronic p="-44.1386" r="4.72315" t="23.0019"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4256" x="0.708257363137" y="-1.247225" z="2.33875967771">
+        <neutronic p="-43.0645" r="4.72371" t="22.6362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4257" x="0.708257363137" y="-1.20904296875" z="2.33875967771">
+        <neutronic p="-41.9519" r="4.72424" t="22.2762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4258" x="0.708257363137" y="-1.1708609375" z="2.33875967771">
+        <neutronic p="-40.7998" r="4.72474" t="21.9224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4259" x="0.708257363137" y="-1.13267890625" z="2.33875967771">
+        <neutronic p="-39.6068" r="4.72521" t="21.5754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4260" x="0.708257363137" y="-1.094496875" z="2.33875967771">
+        <neutronic p="-38.372" r="4.72566" t="21.2358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4261" x="0.708257363137" y="-1.05631484375" z="2.33875967771">
+        <neutronic p="-37.0943" r="4.72608" t="20.9041"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4262" x="0.708257363137" y="-1.0181328125" z="2.33875967771">
+        <neutronic p="-35.7728" r="4.72647" t="20.5809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4263" x="0.708257363137" y="-0.97995078125" z="2.33875967771">
+        <neutronic p="-34.4066" r="4.72684" t="20.267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4264" x="0.708257363137" y="-0.94176875" z="2.33875967771">
+        <neutronic p="-32.9951" r="4.72717" t="19.963"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4265" x="0.708257363137" y="-0.90358671875" z="2.33875967771">
+        <neutronic p="-31.5379" r="4.72748" t="19.6696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4266" x="0.708257363137" y="-0.8654046875" z="2.33875967771">
+        <neutronic p="-30.0347" r="4.72776" t="19.3874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4267" x="0.708257363137" y="-0.82722265625" z="2.33875967771">
+        <neutronic p="-28.4853" r="4.72801" t="19.1172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4268" x="0.708257363137" y="-0.789040625" z="2.33875967771">
+        <neutronic p="-26.8902" r="4.72824" t="18.8596"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4269" x="0.708257363137" y="-0.75085859375" z="2.33875967771">
+        <neutronic p="-25.2498" r="4.72843" t="18.6155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4270" x="0.708257363137" y="-0.7126765625" z="2.33875967771">
+        <neutronic p="-23.5649" r="4.7286" t="18.3854"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4271" x="0.708257363137" y="-0.67449453125" z="2.33875967771">
+        <neutronic p="-21.8368" r="4.72874" t="18.1701"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4272" x="0.708257363137" y="-0.6363125" z="2.33875967771">
+        <neutronic p="-20.0671" r="4.72885" t="17.9703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4273" x="0.708257363137" y="-0.59813046875" z="2.33875967771">
+        <neutronic p="-18.2578" r="4.72893" t="17.7865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4274" x="0.708257363137" y="-0.5599484375" z="2.33875967771">
+        <neutronic p="-16.4112" r="4.72898" t="17.6196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4275" x="0.708257363137" y="-0.52176640625" z="2.33875967771">
+        <neutronic p="-14.5302" r="4.72901" t="17.4699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4276" x="0.708257363137" y="-0.483584375" z="2.33875967771">
+        <neutronic p="-12.6179" r="4.729" t="17.3381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4277" x="0.708257363137" y="-0.44540234375" z="2.33875967771">
+        <neutronic p="-10.678" r="4.72897" t="17.2247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4278" x="0.708257363137" y="-0.4072203125" z="2.33875967771">
+        <neutronic p="-8.71447" r="4.72891" t="17.13"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4279" x="0.708257363137" y="-0.36903828125" z="2.33875967771">
+        <neutronic p="-6.73147" r="4.72882" t="17.0544"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4280" x="0.708257363137" y="-0.33085625" z="2.33875967771">
+        <neutronic p="-4.73357" r="4.7287" t="16.9983"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4281" x="0.708257363137" y="-0.29267421875" z="2.33875967771">
+        <neutronic p="-2.72553" r="4.72855" t="16.9617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4282" x="0.708257363137" y="-0.2544921875" z="2.33875967771">
+        <neutronic p="-0.712249" r="4.72838" t="16.9449"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4302" x="0.816563120746" y="-1.9345015625" z="2.30318257903">
+        <neutronic p="-53.8513" r="4.70977" t="31.2089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4303" x="0.816563120746" y="-1.89631953125" z="2.30318257903">
+        <neutronic p="-53.22" r="4.71076" t="30.8317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4304" x="0.816563120746" y="-1.8581375" z="2.30318257903">
+        <neutronic p="-52.5698" r="4.71172" t="30.4547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4305" x="0.816563120746" y="-1.81995546875" z="2.30318257903">
+        <neutronic p="-51.8999" r="4.71265" t="30.0783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4306" x="0.816563120746" y="-1.7817734375" z="2.30318257903">
+        <neutronic p="-51.2098" r="4.71356" t="29.7027"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4307" x="0.816563120746" y="-1.74359140625" z="2.30318257903">
+        <neutronic p="-50.4986" r="4.71445" t="29.3281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4308" x="0.816563120746" y="-1.705409375" z="2.30318257903">
+        <neutronic p="-49.7657" r="4.71532" t="28.9549"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4309" x="0.816563120746" y="-1.66722734375" z="2.30318257903">
+        <neutronic p="-49.0102" r="4.71616" t="28.5832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4310" x="0.816563120746" y="-1.6290453125" z="2.30318257903">
+        <neutronic p="-48.2314" r="4.71697" t="28.2133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4311" x="0.816563120746" y="-1.59086328125" z="2.30318257903">
+        <neutronic p="-47.4286" r="4.71776" t="27.8456"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4312" x="0.816563120746" y="-1.55268125" z="2.30318257903">
+        <neutronic p="-46.6008" r="4.71852" t="27.4804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4313" x="0.816563120746" y="-1.51449921875" z="2.30318257903">
+        <neutronic p="-45.7473" r="4.71926" t="27.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4314" x="0.816563120746" y="-1.4763171875" z="2.30318257903">
+        <neutronic p="-44.8673" r="4.71998" t="26.7588"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4315" x="0.816563120746" y="-1.43813515625" z="2.30318257903">
+        <neutronic p="-43.96" r="4.72066" t="26.4031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4316" x="0.816563120746" y="-1.399953125" z="2.30318257903">
+        <neutronic p="-43.0246" r="4.72133" t="26.0512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4317" x="0.816563120746" y="-1.36177109375" z="2.30318257903">
+        <neutronic p="-42.0602" r="4.72196" t="25.7037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4318" x="0.816563120746" y="-1.3235890625" z="2.30318257903">
+        <neutronic p="-41.0662" r="4.72257" t="25.3609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4319" x="0.816563120746" y="-1.28540703125" z="2.30318257903">
+        <neutronic p="-40.0416" r="4.72315" t="25.0232"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4320" x="0.816563120746" y="-1.247225" z="2.30318257903">
+        <neutronic p="-38.9859" r="4.72371" t="24.6911"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4321" x="0.816563120746" y="-1.20904296875" z="2.30318257903">
+        <neutronic p="-37.8982" r="4.72424" t="24.365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4322" x="0.816563120746" y="-1.1708609375" z="2.30318257903">
+        <neutronic p="-36.7781" r="4.72474" t="24.0454"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4323" x="0.816563120746" y="-1.13267890625" z="2.30318257903">
+        <neutronic p="-35.6249" r="4.72521" t="23.7329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4324" x="0.816563120746" y="-1.094496875" z="2.30318257903">
+        <neutronic p="-34.438" r="4.72566" t="23.4278"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4325" x="0.816563120746" y="-1.05631484375" z="2.30318257903">
+        <neutronic p="-33.2172" r="4.72608" t="23.1308"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4326" x="0.816563120746" y="-1.0181328125" z="2.30318257903">
+        <neutronic p="-31.9621" r="4.72647" t="22.8423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4327" x="0.816563120746" y="-0.97995078125" z="2.30318257903">
+        <neutronic p="-30.6724" r="4.72684" t="22.5629"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4328" x="0.816563120746" y="-0.94176875" z="2.30318257903">
+        <neutronic p="-29.3481" r="4.72717" t="22.2932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4329" x="0.816563120746" y="-0.90358671875" z="2.30318257903">
+        <neutronic p="-27.9893" r="4.72748" t="22.0336"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4330" x="0.816563120746" y="-0.8654046875" z="2.30318257903">
+        <neutronic p="-26.5962" r="4.72776" t="21.7847"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4331" x="0.816563120746" y="-0.82722265625" z="2.30318257903">
+        <neutronic p="-25.1693" r="4.72801" t="21.5472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4332" x="0.816563120746" y="-0.789040625" z="2.30318257903">
+        <neutronic p="-23.709" r="4.72824" t="21.3214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4333" x="0.816563120746" y="-0.75085859375" z="2.30318257903">
+        <neutronic p="-22.2163" r="4.72843" t="21.1081"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4334" x="0.816563120746" y="-0.7126765625" z="2.30318257903">
+        <neutronic p="-20.6921" r="4.7286" t="20.9076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4335" x="0.816563120746" y="-0.67449453125" z="2.30318257903">
+        <neutronic p="-19.1377" r="4.72874" t="20.7205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4336" x="0.816563120746" y="-0.6363125" z="2.30318257903">
+        <neutronic p="-17.5545" r="4.72885" t="20.5474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4337" x="0.816563120746" y="-0.59813046875" z="2.30318257903">
+        <neutronic p="-15.9442" r="4.72893" t="20.3886"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4338" x="0.816563120746" y="-0.5599484375" z="2.30318257903">
+        <neutronic p="-14.3088" r="4.72898" t="20.2446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4339" x="0.816563120746" y="-0.52176640625" z="2.30318257903">
+        <neutronic p="-12.6503" r="4.72901" t="20.1159"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4340" x="0.816563120746" y="-0.483584375" z="2.30318257903">
+        <neutronic p="-10.9711" r="4.729" t="20.0028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4341" x="0.816563120746" y="-0.44540234375" z="2.30318257903">
+        <neutronic p="-9.27385" r="4.72897" t="19.9056"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4342" x="0.816563120746" y="-0.4072203125" z="2.30318257903">
+        <neutronic p="-7.56121" r="4.72891" t="19.8246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4343" x="0.816563120746" y="-0.36903828125" z="2.30318257903">
+        <neutronic p="-5.83611" r="4.72882" t="19.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4344" x="0.816563120746" y="-0.33085625" z="2.30318257903">
+        <neutronic p="-4.10157" r="4.7287" t="19.7121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4345" x="0.816563120746" y="-0.29267421875" z="2.30318257903">
+        <neutronic p="-2.36074" r="4.72855" t="19.6809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4346" x="0.816563120746" y="-0.2544921875" z="2.30318257903">
+        <neutronic p="-0.616811" r="4.72838" t="19.6665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4366" x="0.92309175728" y="-1.9345015625" z="2.26259296608">
+        <neutronic p="-50.4174" r="4.70977" t="32.8806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4367" x="0.92309175728" y="-1.89631953125" z="2.26259296608">
+        <neutronic p="-49.7674" r="4.71076" t="32.5272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4368" x="0.92309175728" y="-1.8581375" z="2.26259296608">
+        <neutronic p="-49.0997" r="4.71172" t="32.1747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4369" x="0.92309175728" y="-1.81995546875" z="2.26259296608">
+        <neutronic p="-48.4139" r="4.71265" t="31.8231"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4370" x="0.92309175728" y="-1.7817734375" z="2.26259296608">
+        <neutronic p="-47.7094" r="4.71356" t="31.4729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4371" x="0.92309175728" y="-1.74359140625" z="2.26259296608">
+        <neutronic p="-46.9855" r="4.71445" t="31.1241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4372" x="0.92309175728" y="-1.705409375" z="2.26259296608">
+        <neutronic p="-46.2418" r="4.71532" t="30.777"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4373" x="0.92309175728" y="-1.66722734375" z="2.26259296608">
+        <neutronic p="-45.4778" r="4.71616" t="30.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4374" x="0.92309175728" y="-1.6290453125" z="2.26259296608">
+        <neutronic p="-44.6927" r="4.71697" t="30.0893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4375" x="0.92309175728" y="-1.59086328125" z="2.26259296608">
+        <neutronic p="-43.8862" r="4.71776" t="29.7491"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4376" x="0.92309175728" y="-1.55268125" z="2.26259296608">
+        <neutronic p="-43.0575" r="4.71852" t="29.4119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4377" x="0.92309175728" y="-1.51449921875" z="2.26259296608">
+        <neutronic p="-42.2062" r="4.71926" t="29.0778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4378" x="0.92309175728" y="-1.4763171875" z="2.26259296608">
+        <neutronic p="-41.3318" r="4.71998" t="28.7473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4379" x="0.92309175728" y="-1.43813515625" z="2.26259296608">
+        <neutronic p="-40.4337" r="4.72066" t="28.4206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4380" x="0.92309175728" y="-1.399953125" z="2.26259296608">
+        <neutronic p="-39.5113" r="4.72133" t="28.0982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4381" x="0.92309175728" y="-1.36177109375" z="2.26259296608">
+        <neutronic p="-38.5643" r="4.72196" t="27.7803"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4382" x="0.92309175728" y="-1.3235890625" z="2.26259296608">
+        <neutronic p="-37.5921" r="4.72257" t="27.4674"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4383" x="0.92309175728" y="-1.28540703125" z="2.26259296608">
+        <neutronic p="-36.5943" r="4.72315" t="27.1598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4384" x="0.92309175728" y="-1.247225" z="2.26259296608">
+        <neutronic p="-35.5706" r="4.72371" t="26.8579"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4385" x="0.92309175728" y="-1.20904296875" z="2.26259296608">
+        <neutronic p="-34.5206" r="4.72424" t="26.5622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4386" x="0.92309175728" y="-1.1708609375" z="2.26259296608">
+        <neutronic p="-33.444" r="4.72474" t="26.2731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4387" x="0.92309175728" y="-1.13267890625" z="2.26259296608">
+        <neutronic p="-32.3406" r="4.72521" t="25.9909"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4388" x="0.92309175728" y="-1.094496875" z="2.26259296608">
+        <neutronic p="-31.2103" r="4.72566" t="25.7161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4389" x="0.92309175728" y="-1.05631484375" z="2.26259296608">
+        <neutronic p="-30.0529" r="4.72608" t="25.4492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4390" x="0.92309175728" y="-1.0181328125" z="2.26259296608">
+        <neutronic p="-28.8685" r="4.72647" t="25.1905"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4391" x="0.92309175728" y="-0.97995078125" z="2.26259296608">
+        <neutronic p="-27.6572" r="4.72684" t="24.9406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4392" x="0.92309175728" y="-0.94176875" z="2.26259296608">
+        <neutronic p="-26.4192" r="4.72717" t="24.6999"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4393" x="0.92309175728" y="-0.90358671875" z="2.26259296608">
+        <neutronic p="-25.1548" r="4.72748" t="24.4688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4394" x="0.92309175728" y="-0.8654046875" z="2.26259296608">
+        <neutronic p="-23.8644" r="4.72776" t="24.2477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4395" x="0.92309175728" y="-0.82722265625" z="2.26259296608">
+        <neutronic p="-22.5485" r="4.72801" t="24.0371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4396" x="0.92309175728" y="-0.789040625" z="2.26259296608">
+        <neutronic p="-21.208" r="4.72824" t="23.8375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4397" x="0.92309175728" y="-0.75085859375" z="2.26259296608">
+        <neutronic p="-19.8435" r="4.72843" t="23.6492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4398" x="0.92309175728" y="-0.7126765625" z="2.26259296608">
+        <neutronic p="-18.456" r="4.7286" t="23.4727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4399" x="0.92309175728" y="-0.67449453125" z="2.26259296608">
+        <neutronic p="-17.0467" r="4.72874" t="23.3082"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4400" x="0.92309175728" y="-0.6363125" z="2.26259296608">
+        <neutronic p="-15.6167" r="4.72885" t="23.1564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4401" x="0.92309175728" y="-0.59813046875" z="2.26259296608">
+        <neutronic p="-14.1674" r="4.72893" t="23.0173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4402" x="0.92309175728" y="-0.5599484375" z="2.26259296608">
+        <neutronic p="-12.7004" r="4.72898" t="22.8915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4403" x="0.92309175728" y="-0.52176640625" z="2.26259296608">
+        <neutronic p="-11.2173" r="4.72901" t="22.7791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4404" x="0.92309175728" y="-0.483584375" z="2.26259296608">
+        <neutronic p="-9.71985" r="4.729" t="22.6805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4405" x="0.92309175728" y="-0.44540234375" z="2.26259296608">
+        <neutronic p="-8.20992" r="4.72897" t="22.5959"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4406" x="0.92309175728" y="-0.4072203125" z="2.26259296608">
+        <neutronic p="-6.68949" r="4.72891" t="22.5254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4407" x="0.92309175728" y="-0.36903828125" z="2.26259296608">
+        <neutronic p="-5.16062" r="4.72882" t="22.4693"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4408" x="0.92309175728" y="-0.33085625" z="2.26259296608">
+        <neutronic p="-3.62546" r="4.7287" t="22.4277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4409" x="0.92309175728" y="-0.29267421875" z="2.26259296608">
+        <neutronic p="-2.08618" r="4.72855" t="22.4007"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4410" x="0.92309175728" y="-0.2544921875" z="2.26259296608">
+        <neutronic p="-0.545011" r="4.72838" t="22.3882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4430" x="1.02761142994" y="-1.9345015625" z="2.21707917575">
+        <neutronic p="-47.3505" r="4.70977" t="34.6712"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4431" x="1.02761142994" y="-1.89631953125" z="2.21707917575">
+        <neutronic p="-46.6918" r="4.71076" t="34.3412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4432" x="1.02761142994" y="-1.8581375" z="2.21707917575">
+        <neutronic p="-46.0168" r="4.71172" t="34.0123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4433" x="1.02761142994" y="-1.81995546875" z="2.21707917575">
+        <neutronic p="-45.3253" r="4.71265" t="33.6848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4434" x="1.02761142994" y="-1.7817734375" z="2.21707917575">
+        <neutronic p="-44.6167" r="4.71356" t="33.3589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4435" x="1.02761142994" y="-1.74359140625" z="2.21707917575">
+        <neutronic p="-43.8906" r="4.71445" t="33.0348"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4436" x="1.02761142994" y="-1.705409375" z="2.21707917575">
+        <neutronic p="-43.1468" r="4.71532" t="32.7128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4437" x="1.02761142994" y="-1.66722734375" z="2.21707917575">
+        <neutronic p="-42.3847" r="4.71616" t="32.3931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4438" x="1.02761142994" y="-1.6290453125" z="2.21707917575">
+        <neutronic p="-41.6039" r="4.71697" t="32.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4439" x="1.02761142994" y="-1.59086328125" z="2.21707917575">
+        <neutronic p="-40.8042" r="4.71776" t="31.7617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4440" x="1.02761142994" y="-1.55268125" z="2.21707917575">
+        <neutronic p="-39.9851" r="4.71852" t="31.4506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4441" x="1.02761142994" y="-1.51449921875" z="2.21707917575">
+        <neutronic p="-39.1462" r="4.71926" t="31.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4442" x="1.02761142994" y="-1.4763171875" z="2.21707917575">
+        <neutronic p="-38.2873" r="4.71998" t="30.839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4443" x="1.02761142994" y="-1.43813515625" z="2.21707917575">
+        <neutronic p="-37.4079" r="4.72066" t="30.5391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4444" x="1.02761142994" y="-1.399953125" z="2.21707917575">
+        <neutronic p="-36.5078" r="4.72133" t="30.2436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4445" x="1.02761142994" y="-1.36177109375" z="2.21707917575">
+        <neutronic p="-35.5868" r="4.72196" t="29.9528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4446" x="1.02761142994" y="-1.3235890625" z="2.21707917575">
+        <neutronic p="-34.6445" r="4.72257" t="29.6669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4447" x="1.02761142994" y="-1.28540703125" z="2.21707917575">
+        <neutronic p="-33.6809" r="4.72315" t="29.3865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4448" x="1.02761142994" y="-1.247225" z="2.21707917575">
+        <neutronic p="-32.6956" r="4.72371" t="29.1117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4449" x="1.02761142994" y="-1.20904296875" z="2.21707917575">
+        <neutronic p="-31.6886" r="4.72424" t="28.8431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4450" x="1.02761142994" y="-1.1708609375" z="2.21707917575">
+        <neutronic p="-30.6598" r="4.72474" t="28.5808"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4451" x="1.02761142994" y="-1.13267890625" z="2.21707917575">
+        <neutronic p="-29.6093" r="4.72521" t="28.3253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4452" x="1.02761142994" y="-1.094496875" z="2.21707917575">
+        <neutronic p="-28.5369" r="4.72566" t="28.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4453" x="1.02761142994" y="-1.05631484375" z="2.21707917575">
+        <neutronic p="-27.4429" r="4.72608" t="27.8362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4454" x="1.02761142994" y="-1.0181328125" z="2.21707917575">
+        <neutronic p="-26.3274" r="4.72647" t="27.6034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4455" x="1.02761142994" y="-0.97995078125" z="2.21707917575">
+        <neutronic p="-25.1906" r="4.72684" t="27.3787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4456" x="1.02761142994" y="-0.94176875" z="2.21707917575">
+        <neutronic p="-24.0329" r="4.72717" t="27.1627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4457" x="1.02761142994" y="-0.90358671875" z="2.21707917575">
+        <neutronic p="-22.8547" r="4.72748" t="26.9557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4458" x="1.02761142994" y="-0.8654046875" z="2.21707917575">
+        <neutronic p="-21.6564" r="4.72776" t="26.7581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4459" x="1.02761142994" y="-0.82722265625" z="2.21707917575">
+        <neutronic p="-20.4386" r="4.72801" t="26.5702"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4460" x="1.02761142994" y="-0.789040625" z="2.21707917575">
+        <neutronic p="-19.202" r="4.72824" t="26.3923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4461" x="1.02761142994" y="-0.75085859375" z="2.21707917575">
+        <neutronic p="-17.9473" r="4.72843" t="26.2247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4462" x="1.02761142994" y="-0.7126765625" z="2.21707917575">
+        <neutronic p="-16.6754" r="4.7286" t="26.0679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4463" x="1.02761142994" y="-0.67449453125" z="2.21707917575">
+        <neutronic p="-15.3872" r="4.72874" t="25.9221"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4464" x="1.02761142994" y="-0.6363125" z="2.21707917575">
+        <neutronic p="-14.0836" r="4.72885" t="25.7875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4465" x="1.02761142994" y="-0.59813046875" z="2.21707917575">
+        <neutronic p="-12.766" r="4.72893" t="25.6645"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4466" x="1.02761142994" y="-0.5599484375" z="2.21707917575">
+        <neutronic p="-11.4353" r="4.72898" t="25.5533"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4467" x="1.02761142994" y="-0.52176640625" z="2.21707917575">
+        <neutronic p="-10.0929" r="4.72901" t="25.4542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4468" x="1.02761142994" y="-0.483584375" z="2.21707917575">
+        <neutronic p="-8.74019" r="4.729" t="25.3672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4469" x="1.02761142994" y="-0.44540234375" z="2.21707917575">
+        <neutronic p="-7.37852" r="4.72897" t="25.2926"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4470" x="1.02761142994" y="-0.4072203125" z="2.21707917575">
+        <neutronic p="-6.00938" r="4.72891" t="25.2306"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4471" x="1.02761142994" y="-0.36903828125" z="2.21707917575">
+        <neutronic p="-4.6343" r="4.72882" t="25.1813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4472" x="1.02761142994" y="-0.33085625" z="2.21707917575">
+        <neutronic p="-3.25484" r="4.7287" t="25.1447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4473" x="1.02761142994" y="-0.29267421875" z="2.21707917575">
+        <neutronic p="-1.87259" r="4.72855" t="25.1209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4474" x="1.02761142994" y="-0.2544921875" z="2.21707917575">
+        <neutronic p="-0.489173" r="4.72838" t="25.1099"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4494" x="1.1298946681" y="-1.9345015625" z="2.16674026166">
+        <neutronic p="-44.6175" r="4.70977" t="36.5632"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4495" x="1.1298946681" y="-1.89631953125" z="2.16674026166">
+        <neutronic p="-43.9573" r="4.71076" t="36.2556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4496" x="1.1298946681" y="-1.8581375" z="2.16674026166">
+        <neutronic p="-43.2823" r="4.71172" t="35.9494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4497" x="1.1298946681" y="-1.81995546875" z="2.16674026166">
+        <neutronic p="-42.5924" r="4.71265" t="35.6448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4498" x="1.1298946681" y="-1.7817734375" z="2.16674026166">
+        <neutronic p="-41.8871" r="4.71356" t="35.3421"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4499" x="1.1298946681" y="-1.74359140625" z="2.16674026166">
+        <neutronic p="-41.1661" r="4.71445" t="35.0414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4500" x="1.1298946681" y="-1.705409375" z="2.16674026166">
+        <neutronic p="-40.4292" r="4.71532" t="34.743"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4501" x="1.1298946681" y="-1.66722734375" z="2.16674026166">
+        <neutronic p="-39.6762" r="4.71616" t="34.4471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4502" x="1.1298946681" y="-1.6290453125" z="2.16674026166">
+        <neutronic p="-38.9067" r="4.71697" t="34.1539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4503" x="1.1298946681" y="-1.59086328125" z="2.16674026166">
+        <neutronic p="-38.1205" r="4.71776" t="33.8638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4504" x="1.1298946681" y="-1.55268125" z="2.16674026166">
+        <neutronic p="-37.3173" r="4.71852" t="33.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4505" x="1.1298946681" y="-1.51449921875" z="2.16674026166">
+        <neutronic p="-36.497" r="4.71926" t="33.2937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4506" x="1.1298946681" y="-1.4763171875" z="2.16674026166">
+        <neutronic p="-35.6593" r="4.71998" t="33.0143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4507" x="1.1298946681" y="-1.43813515625" z="2.16674026166">
+        <neutronic p="-34.804" r="4.72066" t="32.7389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4508" x="1.1298946681" y="-1.399953125" z="2.16674026166">
+        <neutronic p="-33.9311" r="4.72133" t="32.4679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4509" x="1.1298946681" y="-1.36177109375" z="2.16674026166">
+        <neutronic p="-33.0403" r="4.72196" t="32.2016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4510" x="1.1298946681" y="-1.3235890625" z="2.16674026166">
+        <neutronic p="-32.1316" r="4.72257" t="31.9402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4511" x="1.1298946681" y="-1.28540703125" z="2.16674026166">
+        <neutronic p="-31.2049" r="4.72315" t="31.6842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4512" x="1.1298946681" y="-1.247225" z="2.16674026166">
+        <neutronic p="-30.2601" r="4.72371" t="31.4337"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4513" x="1.1298946681" y="-1.20904296875" z="2.16674026166">
+        <neutronic p="-29.2973" r="4.72424" t="31.189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4514" x="1.1298946681" y="-1.1708609375" z="2.16674026166">
+        <neutronic p="-28.3166" r="4.72474" t="30.9506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4515" x="1.1298946681" y="-1.13267890625" z="2.16674026166">
+        <neutronic p="-27.3179" r="4.72521" t="30.7187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4516" x="1.1298946681" y="-1.094496875" z="2.16674026166">
+        <neutronic p="-26.3015" r="4.72566" t="30.4936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4517" x="1.1298946681" y="-1.05631484375" z="2.16674026166">
+        <neutronic p="-25.2675" r="4.72608" t="30.2757"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4518" x="1.1298946681" y="-1.0181328125" z="2.16674026166">
+        <neutronic p="-24.2162" r="4.72647" t="30.0652"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4519" x="1.1298946681" y="-0.97995078125" z="2.16674026166">
+        <neutronic p="-23.1479" r="4.72684" t="29.8624"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4520" x="1.1298946681" y="-0.94176875" z="2.16674026166">
+        <neutronic p="-22.0629" r="4.72717" t="29.6677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4521" x="1.1298946681" y="-0.90358671875" z="2.16674026166">
+        <neutronic p="-20.9617" r="4.72748" t="29.4814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4522" x="1.1298946681" y="-0.8654046875" z="2.16674026166">
+        <neutronic p="-19.8447" r="4.72776" t="29.3037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4523" x="1.1298946681" y="-0.82722265625" z="2.16674026166">
+        <neutronic p="-18.7124" r="4.72801" t="29.135"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4524" x="1.1298946681" y="-0.789040625" z="2.16674026166">
+        <neutronic p="-17.5655" r="4.72824" t="28.9755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4525" x="1.1298946681" y="-0.75085859375" z="2.16674026166">
+        <neutronic p="-16.4046" r="4.72843" t="28.8254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4526" x="1.1298946681" y="-0.7126765625" z="2.16674026166">
+        <neutronic p="-15.2304" r="4.7286" t="28.6852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4527" x="1.1298946681" y="-0.67449453125" z="2.16674026166">
+        <neutronic p="-14.0438" r="4.72874" t="28.5548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4528" x="1.1298946681" y="-0.6363125" z="2.16674026166">
+        <neutronic p="-12.8455" r="4.72885" t="28.4347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4529" x="1.1298946681" y="-0.59813046875" z="2.16674026166">
+        <neutronic p="-11.6365" r="4.72893" t="28.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4530" x="1.1298946681" y="-0.5599484375" z="2.16674026166">
+        <neutronic p="-10.4177" r="4.72898" t="28.2259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4531" x="1.1298946681" y="-0.52176640625" z="2.16674026166">
+        <neutronic p="-9.19013" r="4.72901" t="28.1376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4532" x="1.1298946681" y="-0.483584375" z="2.16674026166">
+        <neutronic p="-7.95485" r="4.729" t="28.0603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4533" x="1.1298946681" y="-0.44540234375" z="2.16674026166">
+        <neutronic p="-6.71294" r="4.72897" t="27.994"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4534" x="1.1298946681" y="-0.4072203125" z="2.16674026166">
+        <neutronic p="-5.46554" r="4.72891" t="27.9388"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4535" x="1.1298946681" y="-0.36903828125" z="2.16674026166">
+        <neutronic p="-4.21382" r="4.72882" t="27.895"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4536" x="1.1298946681" y="-0.33085625" z="2.16674026166">
+        <neutronic p="-2.95895" r="4.7287" t="27.8625"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4537" x="1.1298946681" y="-0.29267421875" z="2.16674026166">
+        <neutronic p="-1.70215" r="4.72855" t="27.8414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4538" x="1.1298946681" y="-0.2544921875" z="2.16674026166">
+        <neutronic p="-0.444622" r="4.72838" t="27.8316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4558" x="1.22971886841" y="-1.9345015625" z="2.11168577852">
+        <neutronic p="-42.1842" r="4.70977" t="38.5414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4559" x="1.22971886841" y="-1.89631953125" z="2.11168577852">
+        <neutronic p="-41.5278" r="4.71076" t="38.2552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4560" x="1.22971886841" y="-1.8581375" z="2.11168577852">
+        <neutronic p="-40.858" r="4.71172" t="37.9705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4561" x="1.22971886841" y="-1.81995546875" z="2.11168577852">
+        <neutronic p="-40.1747" r="4.71265" t="37.6876"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4562" x="1.22971886841" y="-1.7817734375" z="2.11168577852">
+        <neutronic p="-39.4776" r="4.71356" t="37.4067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4563" x="1.22971886841" y="-1.74359140625" z="2.11168577852">
+        <neutronic p="-38.7666" r="4.71445" t="37.1281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4564" x="1.22971886841" y="-1.705409375" z="2.11168577852">
+        <neutronic p="-38.0414" r="4.71532" t="36.8518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4565" x="1.22971886841" y="-1.66722734375" z="2.11168577852">
+        <neutronic p="-37.3018" r="4.71616" t="36.5781"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4566" x="1.22971886841" y="-1.6290453125" z="2.11168577852">
+        <neutronic p="-36.5478" r="4.71697" t="36.3073"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4567" x="1.22971886841" y="-1.59086328125" z="2.11168577852">
+        <neutronic p="-35.779" r="4.71776" t="36.0396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4568" x="1.22971886841" y="-1.55268125" z="2.11168577852">
+        <neutronic p="-34.9955" r="4.71852" t="35.7752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4569" x="1.22971886841" y="-1.51449921875" z="2.11168577852">
+        <neutronic p="-34.197" r="4.71926" t="35.5144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4570" x="1.22971886841" y="-1.4763171875" z="2.11168577852">
+        <neutronic p="-33.3835" r="4.71998" t="35.2574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4571" x="1.22971886841" y="-1.43813515625" z="2.11168577852">
+        <neutronic p="-32.5549" r="4.72066" t="35.0044"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4572" x="1.22971886841" y="-1.399953125" z="2.11168577852">
+        <neutronic p="-31.7111" r="4.72133" t="34.7558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4573" x="1.22971886841" y="-1.36177109375" z="2.11168577852">
+        <neutronic p="-30.852" r="4.72196" t="34.5117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4574" x="1.22971886841" y="-1.3235890625" z="2.11168577852">
+        <neutronic p="-29.9777" r="4.72257" t="34.2725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4575" x="1.22971886841" y="-1.28540703125" z="2.11168577852">
+        <neutronic p="-29.0882" r="4.72315" t="34.0383"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4576" x="1.22971886841" y="-1.247225" z="2.11168577852">
+        <neutronic p="-28.1836" r="4.72371" t="33.8096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4577" x="1.22971886841" y="-1.20904296875" z="2.11168577852">
+        <neutronic p="-27.2638" r="4.72424" t="33.5865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4578" x="1.22971886841" y="-1.1708609375" z="2.11168577852">
+        <neutronic p="-26.3291" r="4.72474" t="33.3692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4579" x="1.22971886841" y="-1.13267890625" z="2.11168577852">
+        <neutronic p="-25.3796" r="4.72521" t="33.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4580" x="1.22971886841" y="-1.094496875" z="2.11168577852">
+        <neutronic p="-24.4154" r="4.72566" t="32.9536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4581" x="1.22971886841" y="-1.05631484375" z="2.11168577852">
+        <neutronic p="-23.4368" r="4.72608" t="32.7557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4582" x="1.22971886841" y="-1.0181328125" z="2.11168577852">
+        <neutronic p="-22.444" r="4.72647" t="32.5648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4583" x="1.22971886841" y="-0.97995078125" z="2.11168577852">
+        <neutronic p="-21.4374" r="4.72684" t="32.3812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4584" x="1.22971886841" y="-0.94176875" z="2.11168577852">
+        <neutronic p="-20.4174" r="4.72717" t="32.205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4585" x="1.22971886841" y="-0.90358671875" z="2.11168577852">
+        <neutronic p="-19.3842" r="4.72748" t="32.0366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4586" x="1.22971886841" y="-0.8654046875" z="2.11168577852">
+        <neutronic p="-18.3384" r="4.72776" t="31.8761"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4587" x="1.22971886841" y="-0.82722265625" z="2.11168577852">
+        <neutronic p="-17.2805" r="4.72801" t="31.7239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4588" x="1.22971886841" y="-0.789040625" z="2.11168577852">
+        <neutronic p="-16.2109" r="4.72824" t="31.5801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4589" x="1.22971886841" y="-0.75085859375" z="2.11168577852">
+        <neutronic p="-15.1303" r="4.72843" t="31.4451"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4590" x="1.22971886841" y="-0.7126765625" z="2.11168577852">
+        <neutronic p="-14.0392" r="4.7286" t="31.3188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4591" x="1.22971886841" y="-0.67449453125" z="2.11168577852">
+        <neutronic p="-12.9383" r="4.72874" t="31.2017"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4592" x="1.22971886841" y="-0.6363125" z="2.11168577852">
+        <neutronic p="-11.8284" r="4.72885" t="31.0938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4593" x="1.22971886841" y="-0.59813046875" z="2.11168577852">
+        <neutronic p="-10.7101" r="4.72893" t="30.9954"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4594" x="1.22971886841" y="-0.5599484375" z="2.11168577852">
+        <neutronic p="-9.58431" r="4.72898" t="30.9065"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4595" x="1.22971886841" y="-0.52176640625" z="2.11168577852">
+        <neutronic p="-8.45174" r="4.72901" t="30.8273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4596" x="1.22971886841" y="-0.483584375" z="2.11168577852">
+        <neutronic p="-7.31326" r="4.729" t="30.758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4597" x="1.22971886841" y="-0.44540234375" z="2.11168577852">
+        <neutronic p="-6.16974" r="4.72897" t="30.6986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4598" x="1.22971886841" y="-0.4072203125" z="2.11168577852">
+        <neutronic p="-5.02207" r="4.72891" t="30.6493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4599" x="1.22971886841" y="-0.36903828125" z="2.11168577852">
+        <neutronic p="-3.87116" r="4.72882" t="30.6101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4600" x="1.22971886841" y="-0.33085625" z="2.11168577852">
+        <neutronic p="-2.71795" r="4.7287" t="30.581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4601" x="1.22971886841" y="-0.29267421875" z="2.11168577852">
+        <neutronic p="-1.56336" r="4.72855" t="30.5621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4602" x="1.22971886841" y="-0.2544921875" z="2.11168577852">
+        <neutronic p="-0.408353" r="4.72838" t="30.5534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4622" x="1.3268667792" y="-1.9345015625" z="2.05203554373">
+        <neutronic p="-40.0182" r="4.70977" t="40.593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4623" x="1.3268667792" y="-1.89631953125" z="2.05203554373">
+        <neutronic p="-39.3691" r="4.71076" t="40.327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4624" x="1.3268667792" y="-1.8581375" z="2.05203554373">
+        <neutronic p="-38.708" r="4.71172" t="40.0627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4625" x="1.3268667792" y="-1.81995546875" z="2.05203554373">
+        <neutronic p="-38.0347" r="4.71265" t="39.8003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4626" x="1.3268667792" y="-1.7817734375" z="2.05203554373">
+        <neutronic p="-37.349" r="4.71356" t="39.5399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4627" x="1.3268667792" y="-1.74359140625" z="2.05203554373">
+        <neutronic p="-36.6509" r="4.71445" t="39.2819"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4628" x="1.3268667792" y="-1.705409375" z="2.05203554373">
+        <neutronic p="-35.9401" r="4.71532" t="39.0263"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4629" x="1.3268667792" y="-1.66722734375" z="2.05203554373">
+        <neutronic p="-35.2167" r="4.71616" t="38.7734"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4630" x="1.3268667792" y="-1.6290453125" z="2.05203554373">
+        <neutronic p="-34.4804" r="4.71697" t="38.5233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4631" x="1.3268667792" y="-1.59086328125" z="2.05203554373">
+        <neutronic p="-33.7312" r="4.71776" t="38.2763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4632" x="1.3268667792" y="-1.55268125" z="2.05203554373">
+        <neutronic p="-32.9691" r="4.71852" t="38.0327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4633" x="1.3268667792" y="-1.51449921875" z="2.05203554373">
+        <neutronic p="-32.1939" r="4.71926" t="37.7925"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4634" x="1.3268667792" y="-1.4763171875" z="2.05203554373">
+        <neutronic p="-31.4057" r="4.71998" t="37.5561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4635" x="1.3268667792" y="-1.43813515625" z="2.05203554373">
+        <neutronic p="-30.6043" r="4.72066" t="37.3236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4636" x="1.3268667792" y="-1.399953125" z="2.05203554373">
+        <neutronic p="-29.7899" r="4.72133" t="37.0954"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4637" x="1.3268667792" y="-1.36177109375" z="2.05203554373">
+        <neutronic p="-28.9624" r="4.72196" t="36.8715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4638" x="1.3268667792" y="-1.3235890625" z="2.05203554373">
+        <neutronic p="-28.1219" r="4.72257" t="36.6523"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4639" x="1.3268667792" y="-1.28540703125" z="2.05203554373">
+        <neutronic p="-27.2684" r="4.72315" t="36.438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4640" x="1.3268667792" y="-1.247225" z="2.05203554373">
+        <neutronic p="-26.402" r="4.72371" t="36.2288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4641" x="1.3268667792" y="-1.20904296875" z="2.05203554373">
+        <neutronic p="-25.5229" r="4.72424" t="36.0249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4642" x="1.3268667792" y="-1.1708609375" z="2.05203554373">
+        <neutronic p="-24.6312" r="4.72474" t="35.8267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4643" x="1.3268667792" y="-1.13267890625" z="2.05203554373">
+        <neutronic p="-23.7271" r="4.72521" t="35.6342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4644" x="1.3268667792" y="-1.094496875" z="2.05203554373">
+        <neutronic p="-22.8108" r="4.72566" t="35.4479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4645" x="1.3268667792" y="-1.05631484375" z="2.05203554373">
+        <neutronic p="-21.8825" r="4.72608" t="35.2677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4646" x="1.3268667792" y="-1.0181328125" z="2.05203554373">
+        <neutronic p="-20.9425" r="4.72647" t="35.0942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4647" x="1.3268667792" y="-0.97995078125" z="2.05203554373">
+        <neutronic p="-19.9911" r="4.72684" t="34.9273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4648" x="1.3268667792" y="-0.94176875" z="2.05203554373">
+        <neutronic p="-19.0286" r="4.72717" t="34.7674"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4649" x="1.3268667792" y="-0.90358671875" z="2.05203554373">
+        <neutronic p="-18.0554" r="4.72748" t="34.6146"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4650" x="1.3268667792" y="-0.8654046875" z="2.05203554373">
+        <neutronic p="-17.0719" r="4.72776" t="34.4692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4651" x="1.3268667792" y="-0.82722265625" z="2.05203554373">
+        <neutronic p="-16.0785" r="4.72801" t="34.3314"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4652" x="1.3268667792" y="-0.789040625" z="2.05203554373">
+        <neutronic p="-15.0758" r="4.72824" t="34.2013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4653" x="1.3268667792" y="-0.75085859375" z="2.05203554373">
+        <neutronic p="-14.0641" r="4.72843" t="34.0792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4654" x="1.3268667792" y="-0.7126765625" z="2.05203554373">
+        <neutronic p="-13.044" r="4.7286" t="33.9651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4655" x="1.3268667792" y="-0.67449453125" z="2.05203554373">
+        <neutronic p="-12.0162" r="4.72874" t="33.8593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4656" x="1.3268667792" y="-0.6363125" z="2.05203554373">
+        <neutronic p="-10.9811" r="4.72885" t="33.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4657" x="1.3268667792" y="-0.59813046875" z="2.05203554373">
+        <neutronic p="-9.93935" r="4.72893" t="33.6732"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4658" x="1.3268667792" y="-0.5599484375" z="2.05203554373">
+        <neutronic p="-8.89165" r="4.72898" t="33.5931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4659" x="1.3268667792" y="-0.52176640625" z="2.05203554373">
+        <neutronic p="-7.83864" r="4.72901" t="33.5217"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4660" x="1.3268667792" y="-0.483584375" z="2.05203554373">
+        <neutronic p="-6.78101" r="4.729" t="33.4593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4661" x="1.3268667792" y="-0.44540234375" z="2.05203554373">
+        <neutronic p="-5.71945" r="4.72897" t="33.4058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4662" x="1.3268667792" y="-0.4072203125" z="2.05203554373">
+        <neutronic p="-4.65468" r="4.72891" t="33.3614"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4663" x="1.3268667792" y="-0.36903828125" z="2.05203554373">
+        <neutronic p="-3.58744" r="4.72882" t="33.3261"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4664" x="1.3268667792" y="-0.33085625" z="2.05203554373">
+        <neutronic p="-2.51848" r="4.7287" t="33.2999"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4665" x="1.3268667792" y="-0.29267421875" z="2.05203554373">
+        <neutronic p="-1.44852" r="4.72855" t="33.2829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4666" x="1.3268667792" y="-0.2544921875" z="2.05203554373">
+        <neutronic p="-0.378344" r="4.72838" t="33.2751"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4686" x="1.42112697335" y="-1.9345015625" z="1.98791937666">
+        <neutronic p="-38.0896" r="4.70977" t="42.7071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4687" x="1.42112697335" y="-1.89631953125" z="1.98791937666">
+        <neutronic p="-37.4502" r="4.71076" t="42.4602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4688" x="1.42112697335" y="-1.8581375" z="1.98791937666">
+        <neutronic p="-36.7998" r="4.71172" t="42.2151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4689" x="1.42112697335" y="-1.81995546875" z="1.98791937666">
+        <neutronic p="-36.1385" r="4.71265" t="41.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4690" x="1.42112697335" y="-1.7817734375" z="1.98791937666">
+        <neutronic p="-35.4661" r="4.71356" t="41.7309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4691" x="1.42112697335" y="-1.74359140625" z="1.98791937666">
+        <neutronic p="-34.7826" r="4.71445" t="41.4922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4692" x="1.42112697335" y="-1.705409375" z="1.98791937666">
+        <neutronic p="-34.0878" r="4.71532" t="41.2559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4693" x="1.42112697335" y="-1.66722734375" z="1.98791937666">
+        <neutronic p="-33.3817" r="4.71616" t="41.0223"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4694" x="1.42112697335" y="-1.6290453125" z="1.98791937666">
+        <neutronic p="-32.6643" r="4.71697" t="40.7915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4695" x="1.42112697335" y="-1.59086328125" z="1.98791937666">
+        <neutronic p="-31.9355" r="4.71776" t="40.5638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4696" x="1.42112697335" y="-1.55268125" z="1.98791937666">
+        <neutronic p="-31.1952" r="4.71852" t="40.3392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4697" x="1.42112697335" y="-1.51449921875" z="1.98791937666">
+        <neutronic p="-30.4436" r="4.71926" t="40.1181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4698" x="1.42112697335" y="-1.4763171875" z="1.98791937666">
+        <neutronic p="-29.6805" r="4.71998" t="39.9006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4699" x="1.42112697335" y="-1.43813515625" z="1.98791937666">
+        <neutronic p="-28.906" r="4.72066" t="39.687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4700" x="1.42112697335" y="-1.399953125" z="1.98791937666">
+        <neutronic p="-28.1202" r="4.72133" t="39.4773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4701" x="1.42112697335" y="-1.36177109375" z="1.98791937666">
+        <neutronic p="-27.3231" r="4.72196" t="39.2719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4702" x="1.42112697335" y="-1.3235890625" z="1.98791937666">
+        <neutronic p="-26.5147" r="4.72257" t="39.0709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4703" x="1.42112697335" y="-1.28540703125" z="1.98791937666">
+        <neutronic p="-25.6952" r="4.72315" t="38.8745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4704" x="1.42112697335" y="-1.247225" z="1.98791937666">
+        <neutronic p="-24.8647" r="4.72371" t="38.683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4705" x="1.42112697335" y="-1.20904296875" z="1.98791937666">
+        <neutronic p="-24.0233" r="4.72424" t="38.4966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4706" x="1.42112697335" y="-1.1708609375" z="1.98791937666">
+        <neutronic p="-23.1713" r="4.72474" t="38.3154"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4707" x="1.42112697335" y="-1.13267890625" z="1.98791937666">
+        <neutronic p="-22.3087" r="4.72521" t="38.1396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4708" x="1.42112697335" y="-1.094496875" z="1.98791937666">
+        <neutronic p="-21.4358" r="4.72566" t="37.9695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4709" x="1.42112697335" y="-1.05631484375" z="1.98791937666">
+        <neutronic p="-20.5528" r="4.72608" t="37.8053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4710" x="1.42112697335" y="-1.0181328125" z="1.98791937666">
+        <neutronic p="-19.66" r="4.72647" t="37.6471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4711" x="1.42112697335" y="-0.97995078125" z="1.98791937666">
+        <neutronic p="-18.7576" r="4.72684" t="37.4952"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4712" x="1.42112697335" y="-0.94176875" z="1.98791937666">
+        <neutronic p="-17.8461" r="4.72717" t="37.3497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4713" x="1.42112697335" y="-0.90358671875" z="1.98791937666">
+        <neutronic p="-16.9256" r="4.72748" t="37.2108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4714" x="1.42112697335" y="-0.8654046875" z="1.98791937666">
+        <neutronic p="-15.9966" r="4.72776" t="37.0786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4715" x="1.42112697335" y="-0.82722265625" z="1.98791937666">
+        <neutronic p="-15.0595" r="4.72801" t="36.9535"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4716" x="1.42112697335" y="-0.789040625" z="1.98791937666">
+        <neutronic p="-14.1147" r="4.72824" t="36.8354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4717" x="1.42112697335" y="-0.75085859375" z="1.98791937666">
+        <neutronic p="-13.1625" r="4.72843" t="36.7246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4718" x="1.42112697335" y="-0.7126765625" z="1.98791937666">
+        <neutronic p="-12.2035" r="4.7286" t="36.6212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4719" x="1.42112697335" y="-0.67449453125" z="1.98791937666">
+        <neutronic p="-11.2382" r="4.72874" t="36.5254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4720" x="1.42112697335" y="-0.6363125" z="1.98791937666">
+        <neutronic p="-10.2669" r="4.72885" t="36.4372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4721" x="1.42112697335" y="-0.59813046875" z="1.98791937666">
+        <neutronic p="-9.29033" r="4.72893" t="36.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4722" x="1.42112697335" y="-0.5599484375" z="1.98791937666">
+        <neutronic p="-8.30892" r="4.72898" t="36.2843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4723" x="1.42112697335" y="-0.52176640625" z="1.98791937666">
+        <neutronic p="-7.32325" r="4.72901" t="36.2198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4724" x="1.42112697335" y="-0.483584375" z="1.98791937666">
+        <neutronic p="-6.33388" r="4.729" t="36.1633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4725" x="1.42112697335" y="-0.44540234375" z="1.98791937666">
+        <neutronic p="-5.3414" r="4.72897" t="36.115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4726" x="1.42112697335" y="-0.4072203125" z="1.98791937666">
+        <neutronic p="-4.34639" r="4.72891" t="36.0749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4727" x="1.42112697335" y="-0.36903828125" z="1.98791937666">
+        <neutronic p="-3.34945" r="4.72882" t="36.043"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4728" x="1.42112697335" y="-0.33085625" z="1.98791937666">
+        <neutronic p="-2.3512" r="4.7287" t="36.0193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4729" x="1.42112697335" y="-0.29267421875" z="1.98791937666">
+        <neutronic p="-1.35224" r="4.72855" t="36.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4730" x="1.42112697335" y="-0.2544921875" z="1.98791937666">
+        <neutronic p="-0.353186" r="4.72838" t="35.9969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4750" x="1.51229430839" y="-1.9345015625" z="1.91947681604">
+        <neutronic p="-36.3715" r="4.70977" t="44.8746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4751" x="1.51229430839" y="-1.89631953125" z="1.91947681604">
+        <neutronic p="-35.743" r="4.71076" t="44.6458"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4752" x="1.51229430839" y="-1.8581375" z="1.91947681604">
+        <neutronic p="-35.1047" r="4.71172" t="44.4188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4753" x="1.51229430839" y="-1.81995546875" z="1.91947681604">
+        <neutronic p="-34.4565" r="4.71265" t="44.1938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4754" x="1.51229430839" y="-1.7817734375" z="1.91947681604">
+        <neutronic p="-33.7983" r="4.71356" t="43.9709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4755" x="1.51229430839" y="-1.74359140625" z="1.91947681604">
+        <neutronic p="-33.1301" r="4.71445" t="43.7502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4756" x="1.51229430839" y="-1.705409375" z="1.91947681604">
+        <neutronic p="-32.4519" r="4.71532" t="43.532"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4757" x="1.51229430839" y="-1.66722734375" z="1.91947681604">
+        <neutronic p="-31.7636" r="4.71616" t="43.3164"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4758" x="1.51229430839" y="-1.6290453125" z="1.91947681604">
+        <neutronic p="-31.0652" r="4.71697" t="43.1035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4759" x="1.51229430839" y="-1.59086328125" z="1.91947681604">
+        <neutronic p="-30.3567" r="4.71776" t="42.8936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4760" x="1.51229430839" y="-1.55268125" z="1.91947681604">
+        <neutronic p="-29.6381" r="4.71852" t="42.6868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4761" x="1.51229430839" y="-1.51449921875" z="1.91947681604">
+        <neutronic p="-28.9094" r="4.71926" t="42.4832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4762" x="1.51229430839" y="-1.4763171875" z="1.91947681604">
+        <neutronic p="-28.1707" r="4.71998" t="42.2832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4763" x="1.51229430839" y="-1.43813515625" z="1.91947681604">
+        <neutronic p="-27.422" r="4.72066" t="42.0868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4764" x="1.51229430839" y="-1.399953125" z="1.91947681604">
+        <neutronic p="-26.6633" r="4.72133" t="41.8942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4765" x="1.51229430839" y="-1.36177109375" z="1.91947681604">
+        <neutronic p="-25.8948" r="4.72196" t="41.7057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4766" x="1.51229430839" y="-1.3235890625" z="1.91947681604">
+        <neutronic p="-25.1166" r="4.72257" t="41.5213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4767" x="1.51229430839" y="-1.28540703125" z="1.91947681604">
+        <neutronic p="-24.3287" r="4.72315" t="41.3414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4768" x="1.51229430839" y="-1.247225" z="1.91947681604">
+        <neutronic p="-23.5313" r="4.72371" t="41.1659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4769" x="1.51229430839" y="-1.20904296875" z="1.91947681604">
+        <neutronic p="-22.7245" r="4.72424" t="40.9953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4770" x="1.51229430839" y="-1.1708609375" z="1.91947681604">
+        <neutronic p="-21.9086" r="4.72474" t="40.8295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4771" x="1.51229430839" y="-1.13267890625" z="1.91947681604">
+        <neutronic p="-21.0836" r="4.72521" t="40.6688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4772" x="1.51229430839" y="-1.094496875" z="1.91947681604">
+        <neutronic p="-20.2498" r="4.72566" t="40.5134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4773" x="1.51229430839" y="-1.05631484375" z="1.91947681604">
+        <neutronic p="-19.4075" r="4.72608" t="40.3635"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4774" x="1.51229430839" y="-1.0181328125" z="1.91947681604">
+        <neutronic p="-18.5568" r="4.72647" t="40.2191"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4775" x="1.51229430839" y="-0.97995078125" z="1.91947681604">
+        <neutronic p="-17.6981" r="4.72684" t="40.0806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4776" x="1.51229430839" y="-0.94176875" z="1.91947681604">
+        <neutronic p="-16.8315" r="4.72717" t="39.9479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4777" x="1.51229430839" y="-0.90358671875" z="1.91947681604">
+        <neutronic p="-15.9575" r="4.72748" t="39.8214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4778" x="1.51229430839" y="-0.8654046875" z="1.91947681604">
+        <neutronic p="-15.0763" r="4.72776" t="39.7011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4779" x="1.51229430839" y="-0.82722265625" z="1.91947681604">
+        <neutronic p="-14.1883" r="4.72801" t="39.5872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4780" x="1.51229430839" y="-0.789040625" z="1.91947681604">
+        <neutronic p="-13.2938" r="4.72824" t="39.4798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4781" x="1.51229430839" y="-0.75085859375" z="1.91947681604">
+        <neutronic p="-12.3933" r="4.72843" t="39.3791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4782" x="1.51229430839" y="-0.7126765625" z="1.91947681604">
+        <neutronic p="-11.4871" r="4.7286" t="39.2852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4783" x="1.51229430839" y="-0.67449453125" z="1.91947681604">
+        <neutronic p="-10.5756" r="4.72874" t="39.1981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4784" x="1.51229430839" y="-0.6363125" z="1.91947681604">
+        <neutronic p="-9.65922" r="4.72885" t="39.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4785" x="1.51229430839" y="-0.59813046875" z="1.91947681604">
+        <neutronic p="-8.73847" r="4.72893" t="39.0451"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4786" x="1.51229430839" y="-0.5599484375" z="1.91947681604">
+        <neutronic p="-7.81376" r="4.72898" t="38.9793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4787" x="1.51229430839" y="-0.52176640625" z="1.91947681604">
+        <neutronic p="-6.88558" r="4.72901" t="38.9207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4788" x="1.51229430839" y="-0.483584375" z="1.91947681604">
+        <neutronic p="-5.95439" r="4.729" t="38.8695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4789" x="1.51229430839" y="-0.44540234375" z="1.91947681604">
+        <neutronic p="-5.02068" r="4.72897" t="38.8257"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4790" x="1.51229430839" y="-0.4072203125" z="1.91947681604">
+        <neutronic p="-4.08494" r="4.72891" t="38.7893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4791" x="1.51229430839" y="-0.36903828125" z="1.91947681604">
+        <neutronic p="-3.14769" r="4.72882" t="38.7604"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4792" x="1.51229430839" y="-0.33085625" z="1.91947681604">
+        <neutronic p="-2.20942" r="4.7287" t="38.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4793" x="1.51229430839" y="-0.29267421875" z="1.91947681604">
+        <neutronic p="-1.27064" r="4.72855" t="38.7251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4794" x="1.51229430839" y="-0.2544921875" z="1.91947681604">
+        <neutronic p="-0.331867" r="4.72838" t="38.7187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4814" x="1.60017037295" y="-1.9345015625" z="1.84685681633">
+        <neutronic p="-34.8399" r="4.70977" t="47.0879"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4815" x="1.60017037295" y="-1.89631953125" z="1.84685681633">
+        <neutronic p="-34.2231" r="4.71076" t="46.8762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4816" x="1.60017037295" y="-1.8581375" z="1.84685681633">
+        <neutronic p="-33.5974" r="4.71172" t="46.6663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4817" x="1.60017037295" y="-1.81995546875" z="1.84685681633">
+        <neutronic p="-32.9627" r="4.71265" t="46.4583"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4818" x="1.60017037295" y="-1.7817734375" z="1.84685681633">
+        <neutronic p="-32.319" r="4.71356" t="46.2524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4819" x="1.60017037295" y="-1.74359140625" z="1.84685681633">
+        <neutronic p="-31.6663" r="4.71445" t="46.0487"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4820" x="1.60017037295" y="-1.705409375" z="1.84685681633">
+        <neutronic p="-31.0046" r="4.71532" t="45.8473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4821" x="1.60017037295" y="-1.66722734375" z="1.84685681633">
+        <neutronic p="-30.3339" r="4.71616" t="45.6485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4822" x="1.60017037295" y="-1.6290453125" z="1.84685681633">
+        <neutronic p="-29.6541" r="4.71697" t="45.4524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4823" x="1.60017037295" y="-1.59086328125" z="1.84685681633">
+        <neutronic p="-28.9653" r="4.71776" t="45.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4824" x="1.60017037295" y="-1.55268125" z="1.84685681633">
+        <neutronic p="-28.2675" r="4.71852" t="45.0687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4825" x="1.60017037295" y="-1.51449921875" z="1.84685681633">
+        <neutronic p="-27.5608" r="4.71926" t="44.8815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4826" x="1.60017037295" y="-1.4763171875" z="1.84685681633">
+        <neutronic p="-26.8452" r="4.71998" t="44.6976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4827" x="1.60017037295" y="-1.43813515625" z="1.84685681633">
+        <neutronic p="-26.1208" r="4.72066" t="44.5171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4828" x="1.60017037295" y="-1.399953125" z="1.84685681633">
+        <neutronic p="-25.3876" r="4.72133" t="44.3403"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4829" x="1.60017037295" y="-1.36177109375" z="1.84685681633">
+        <neutronic p="-24.6458" r="4.72196" t="44.1673"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4830" x="1.60017037295" y="-1.3235890625" z="1.84685681633">
+        <neutronic p="-23.8954" r="4.72257" t="43.9982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4831" x="1.60017037295" y="-1.28540703125" z="1.84685681633">
+        <neutronic p="-23.1366" r="4.72315" t="43.8332"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4832" x="1.60017037295" y="-1.247225" z="1.84685681633">
+        <neutronic p="-22.3695" r="4.72371" t="43.6725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4833" x="1.60017037295" y="-1.20904296875" z="1.84685681633">
+        <neutronic p="-21.5943" r="4.72424" t="43.5162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4834" x="1.60017037295" y="-1.1708609375" z="1.84685681633">
+        <neutronic p="-20.8111" r="4.72474" t="43.3645"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4835" x="1.60017037295" y="-1.13267890625" z="1.84685681633">
+        <neutronic p="-20.0201" r="4.72521" t="43.2176"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4836" x="1.60017037295" y="-1.094496875" z="1.84685681633">
+        <neutronic p="-19.2215" r="4.72566" t="43.0755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4837" x="1.60017037295" y="-1.05631484375" z="1.84685681633">
+        <neutronic p="-18.4155" r="4.72608" t="42.9385"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4838" x="1.60017037295" y="-1.0181328125" z="1.84685681633">
+        <neutronic p="-17.6023" r="4.72647" t="42.8067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4839" x="1.60017037295" y="-0.97995078125" z="1.84685681633">
+        <neutronic p="-16.7822" r="4.72684" t="42.6802"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4840" x="1.60017037295" y="-0.94176875" z="1.84685681633">
+        <neutronic p="-15.9555" r="4.72717" t="42.5592"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4841" x="1.60017037295" y="-0.90358671875" z="1.84685681633">
+        <neutronic p="-15.1224" r="4.72748" t="42.4438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4842" x="1.60017037295" y="-0.8654046875" z="1.84685681633">
+        <neutronic p="-14.2832" r="4.72776" t="42.3342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4843" x="1.60017037295" y="-0.82722265625" z="1.84685681633">
+        <neutronic p="-13.4382" r="4.72801" t="42.2304"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4844" x="1.60017037295" y="-0.789040625" z="1.84685681633">
+        <neutronic p="-12.5877" r="4.72824" t="42.1326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4845" x="1.60017037295" y="-0.75085859375" z="1.84685681633">
+        <neutronic p="-11.7321" r="4.72843" t="42.0409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4846" x="1.60017037295" y="-0.7126765625" z="1.84685681633">
+        <neutronic p="-10.8717" r="4.7286" t="41.9554"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4847" x="1.60017037295" y="-0.67449453125" z="1.84685681633">
+        <neutronic p="-10.0069" r="4.72874" t="41.8762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4848" x="1.60017037295" y="-0.6363125" z="1.84685681633">
+        <neutronic p="-9.13798" r="4.72885" t="41.8034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4849" x="1.60017037295" y="-0.59813046875" z="1.84685681633">
+        <neutronic p="-8.26541" r="4.72893" t="41.737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4850" x="1.60017037295" y="-0.5599484375" z="1.84685681633">
+        <neutronic p="-7.38954" r="4.72898" t="41.6772"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4851" x="1.60017037295" y="-0.52176640625" z="1.84685681633">
+        <neutronic p="-6.51079" r="4.72901" t="41.624"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4852" x="1.60017037295" y="-0.483584375" z="1.84685681633">
+        <neutronic p="-5.62956" r="4.729" t="41.5775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4853" x="1.60017037295" y="-0.44540234375" z="1.84685681633">
+        <neutronic p="-4.74626" r="4.72897" t="41.5377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4854" x="1.60017037295" y="-0.4072203125" z="1.84685681633">
+        <neutronic p="-3.86132" r="4.72891" t="41.5046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4855" x="1.60017037295" y="-0.36903828125" z="1.84685681633">
+        <neutronic p="-2.97515" r="4.72882" t="41.4783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4856" x="1.60017037295" y="-0.33085625" z="1.84685681633">
+        <neutronic p="-2.0882" r="4.7287" t="41.4589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4857" x="1.60017037295" y="-0.29267421875" z="1.84685681633">
+        <neutronic p="-1.20088" r="4.72855" t="41.4462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4858" x="1.60017037295" y="-0.2544921875" z="1.84685681633">
+        <neutronic p="-0.313643" r="4.72838" t="41.4404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4878" x="1.68456391863" y="-1.9345015625" z="1.77021742352">
+        <neutronic p="-33.4739" r="4.70977" t="49.3405"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4879" x="1.68456391863" y="-1.89631953125" z="1.77021742352">
+        <neutronic p="-32.869" r="4.71076" t="49.145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4880" x="1.68456391863" y="-1.8581375" z="1.77021742352">
+        <neutronic p="-32.256" r="4.71172" t="48.9512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4881" x="1.68456391863" y="-1.81995546875" z="1.77021742352">
+        <neutronic p="-31.6348" r="4.71265" t="48.7593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4882" x="1.68456391863" y="-1.7817734375" z="1.77021742352">
+        <neutronic p="-31.0055" r="4.71356" t="48.5694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4883" x="1.68456391863" y="-1.74359140625" z="1.77021742352">
+        <neutronic p="-30.368" r="4.71445" t="48.3816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4884" x="1.68456391863" y="-1.705409375" z="1.77021742352">
+        <neutronic p="-29.7223" r="4.71532" t="48.1961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4885" x="1.68456391863" y="-1.66722734375" z="1.77021742352">
+        <neutronic p="-29.0685" r="4.71616" t="48.013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4886" x="1.68456391863" y="-1.6290453125" z="1.77021742352">
+        <neutronic p="-28.4066" r="4.71697" t="47.8325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4887" x="1.68456391863" y="-1.59086328125" z="1.77021742352">
+        <neutronic p="-27.7366" r="4.71776" t="47.6546"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4888" x="1.68456391863" y="-1.55268125" z="1.77021742352">
+        <neutronic p="-27.0586" r="4.71852" t="47.4796"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4889" x="1.68456391863" y="-1.51449921875" z="1.77021742352">
+        <neutronic p="-26.3726" r="4.71926" t="47.3076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4890" x="1.68456391863" y="-1.4763171875" z="1.77021742352">
+        <neutronic p="-25.6786" r="4.71998" t="47.1387"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4891" x="1.68456391863" y="-1.43813515625" z="1.77021742352">
+        <neutronic p="-24.9768" r="4.72066" t="46.973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4892" x="1.68456391863" y="-1.399953125" z="1.77021742352">
+        <neutronic p="-24.2673" r="4.72133" t="46.8108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4893" x="1.68456391863" y="-1.36177109375" z="1.77021742352">
+        <neutronic p="-23.55" r="4.72196" t="46.6521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4894" x="1.68456391863" y="-1.3235890625" z="1.77021742352">
+        <neutronic p="-22.8253" r="4.72257" t="46.4971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4895" x="1.68456391863" y="-1.28540703125" z="1.77021742352">
+        <neutronic p="-22.093" r="4.72315" t="46.3459"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4896" x="1.68456391863" y="-1.247225" z="1.77021742352">
+        <neutronic p="-21.3535" r="4.72371" t="46.1987"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4897" x="1.68456391863" y="-1.20904296875" z="1.77021742352">
+        <neutronic p="-20.6069" r="4.72424" t="46.0557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4898" x="1.68456391863" y="-1.1708609375" z="1.77021742352">
+        <neutronic p="-19.8532" r="4.72474" t="45.9169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4899" x="1.68456391863" y="-1.13267890625" z="1.77021742352">
+        <neutronic p="-19.0928" r="4.72521" t="45.7825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4900" x="1.68456391863" y="-1.094496875" z="1.77021742352">
+        <neutronic p="-18.3257" r="4.72566" t="45.6527"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4901" x="1.68456391863" y="-1.05631484375" z="1.77021742352">
+        <neutronic p="-17.5521" r="4.72608" t="45.5275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4902" x="1.68456391863" y="-1.0181328125" z="1.77021742352">
+        <neutronic p="-16.7724" r="4.72647" t="45.4071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4903" x="1.68456391863" y="-0.97995078125" z="1.77021742352">
+        <neutronic p="-15.9866" r="4.72684" t="45.2916"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4904" x="1.68456391863" y="-0.94176875" z="1.77021742352">
+        <neutronic p="-15.1951" r="4.72717" t="45.1812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4905" x="1.68456391863" y="-0.90358671875" z="1.77021742352">
+        <neutronic p="-14.3981" r="4.72748" t="45.0759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4906" x="1.68456391863" y="-0.8654046875" z="1.77021742352">
+        <neutronic p="-13.5958" r="4.72776" t="44.9759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4907" x="1.68456391863" y="-0.82722265625" z="1.77021742352">
+        <neutronic p="-12.7886" r="4.72801" t="44.8813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4908" x="1.68456391863" y="-0.789040625" z="1.77021742352">
+        <neutronic p="-11.9766" r="4.72824" t="44.7922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4909" x="1.68456391863" y="-0.75085859375" z="1.77021742352">
+        <neutronic p="-11.1603" r="4.72843" t="44.7086"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4910" x="1.68456391863" y="-0.7126765625" z="1.77021742352">
+        <neutronic p="-10.3399" r="4.7286" t="44.6308"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4911" x="1.68456391863" y="-0.67449453125" z="1.77021742352">
+        <neutronic p="-9.51567" r="4.72874" t="44.5586"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4912" x="1.68456391863" y="-0.6363125" z="1.77021742352">
+        <neutronic p="-8.68801" r="4.72885" t="44.4923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4913" x="1.68456391863" y="-0.59813046875" z="1.77021742352">
+        <neutronic p="-7.85723" r="4.72893" t="44.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4914" x="1.68456391863" y="-0.5599484375" z="1.77021742352">
+        <neutronic p="-7.02367" r="4.72898" t="44.3775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4915" x="1.68456391863" y="-0.52176640625" z="1.77021742352">
+        <neutronic p="-6.18768" r="4.72901" t="44.3291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4916" x="1.68456391863" y="-0.483584375" z="1.77021742352">
+        <neutronic p="-5.34962" r="4.729" t="44.2868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4917" x="1.68456391863" y="-0.44540234375" z="1.77021742352">
+        <neutronic p="-4.50983" r="4.72897" t="44.2506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4918" x="1.68456391863" y="-0.4072203125" z="1.77021742352">
+        <neutronic p="-3.66869" r="4.72891" t="44.2206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4919" x="1.68456391863" y="-0.36903828125" z="1.77021742352">
+        <neutronic p="-2.82657" r="4.72882" t="44.1967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4920" x="1.68456391863" y="-0.33085625" z="1.77021742352">
+        <neutronic p="-1.98382" r="4.7287" t="44.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4921" x="1.68456391863" y="-0.29267421875" z="1.77021742352">
+        <neutronic p="-1.14083" r="4.72855" t="44.1675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4922" x="1.68456391863" y="-0.2544921875" z="1.77021742352">
+        <neutronic p="-0.297953" r="4.72838" t="44.1622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4942" x="1.76529127615" y="-1.9345015625" z="1.6897254312">
+        <neutronic p="-32.2554" r="4.70977" t="51.627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4943" x="1.76529127615" y="-1.89631953125" z="1.6897254312">
+        <neutronic p="-31.6623" r="4.71076" t="51.4467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4944" x="1.76529127615" y="-1.8581375" z="1.6897254312">
+        <neutronic p="-31.0617" r="4.71172" t="51.2682"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4945" x="1.76529127615" y="-1.81995546875" z="1.6897254312">
+        <neutronic p="-30.4537" r="4.71265" t="51.0915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4946" x="1.76529127615" y="-1.7817734375" z="1.6897254312">
+        <neutronic p="-29.8382" r="4.71356" t="50.9167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4947" x="1.76529127615" y="-1.74359140625" z="1.6897254312">
+        <neutronic p="-29.2153" r="4.71445" t="50.7439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4948" x="1.76529127615" y="-1.705409375" z="1.6897254312">
+        <neutronic p="-28.585" r="4.71532" t="50.5733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4949" x="1.76529127615" y="-1.66722734375" z="1.6897254312">
+        <neutronic p="-27.9473" r="4.71616" t="50.405"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4950" x="1.76529127615" y="-1.6290453125" z="1.6897254312">
+        <neutronic p="-27.3023" r="4.71697" t="50.2391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4951" x="1.76529127615" y="-1.59086328125" z="1.6897254312">
+        <neutronic p="-26.65" r="4.71776" t="50.0758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4952" x="1.76529127615" y="-1.55268125" z="1.6897254312">
+        <neutronic p="-25.9904" r="4.71852" t="49.9151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4953" x="1.76529127615" y="-1.51449921875" z="1.6897254312">
+        <neutronic p="-25.3237" r="4.71926" t="49.7573"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4954" x="1.76529127615" y="-1.4763171875" z="1.6897254312">
+        <neutronic p="-24.6498" r="4.71998" t="49.6023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4955" x="1.76529127615" y="-1.43813515625" z="1.6897254312">
+        <neutronic p="-23.9689" r="4.72066" t="49.4505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4956" x="1.76529127615" y="-1.399953125" z="1.6897254312">
+        <neutronic p="-23.281" r="4.72133" t="49.3018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4957" x="1.76529127615" y="-1.36177109375" z="1.6897254312">
+        <neutronic p="-22.5863" r="4.72196" t="49.1564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4958" x="1.76529127615" y="-1.3235890625" z="1.6897254312">
+        <neutronic p="-21.8849" r="4.72257" t="49.0145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4959" x="1.76529127615" y="-1.28540703125" z="1.6897254312">
+        <neutronic p="-21.1769" r="4.72315" t="48.8761"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4960" x="1.76529127615" y="-1.247225" z="1.6897254312">
+        <neutronic p="-20.4624" r="4.72371" t="48.7415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4961" x="1.76529127615" y="-1.20904296875" z="1.6897254312">
+        <neutronic p="-19.7415" r="4.72424" t="48.6107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4962" x="1.76529127615" y="-1.1708609375" z="1.6897254312">
+        <neutronic p="-19.0145" r="4.72474" t="48.4838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4963" x="1.76529127615" y="-1.13267890625" z="1.6897254312">
+        <neutronic p="-18.2814" r="4.72521" t="48.361"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4964" x="1.76529127615" y="-1.094496875" z="1.6897254312">
+        <neutronic p="-17.5425" r="4.72566" t="48.2423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4965" x="1.76529127615" y="-1.05631484375" z="1.6897254312">
+        <neutronic p="-16.798" r="4.72608" t="48.128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4966" x="1.76529127615" y="-1.0181328125" z="1.6897254312">
+        <neutronic p="-16.0479" r="4.72647" t="48.0181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4967" x="1.76529127615" y="-0.97995078125" z="1.6897254312">
+        <neutronic p="-15.2927" r="4.72684" t="47.9127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4968" x="1.76529127615" y="-0.94176875" z="1.6897254312">
+        <neutronic p="-14.5324" r="4.72717" t="47.812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4969" x="1.76529127615" y="-0.90358671875" z="1.6897254312">
+        <neutronic p="-13.7672" r="4.72748" t="47.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4970" x="1.76529127615" y="-0.8654046875" z="1.6897254312">
+        <neutronic p="-12.9975" r="4.72776" t="47.6248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4971" x="1.76529127615" y="-0.82722265625" z="1.6897254312">
+        <neutronic p="-12.2235" r="4.72801" t="47.5386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4972" x="1.76529127615" y="-0.789040625" z="1.6897254312">
+        <neutronic p="-11.4454" r="4.72824" t="47.4574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4973" x="1.76529127615" y="-0.75085859375" z="1.6897254312">
+        <neutronic p="-10.6634" r="4.72843" t="47.3813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4974" x="1.76529127615" y="-0.7126765625" z="1.6897254312">
+        <neutronic p="-9.87797" r="4.7286" t="47.3104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4975" x="1.76529127615" y="-0.67449453125" z="1.6897254312">
+        <neutronic p="-9.08925" r="4.72874" t="47.2447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4976" x="1.76529127615" y="-0.6363125" z="1.6897254312">
+        <neutronic p="-8.29756" r="4.72885" t="47.1843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4977" x="1.76529127615" y="-0.59813046875" z="1.6897254312">
+        <neutronic p="-7.50319" r="4.72893" t="47.1294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4978" x="1.76529127615" y="-0.5599484375" z="1.6897254312">
+        <neutronic p="-6.70644" r="4.72898" t="47.0799"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4979" x="1.76529127615" y="-0.52176640625" z="1.6897254312">
+        <neutronic p="-5.90762" r="4.72901" t="47.0358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4980" x="1.76529127615" y="-0.483584375" z="1.6897254312">
+        <neutronic p="-5.10704" r="4.729" t="46.9973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4981" x="1.76529127615" y="-0.44540234375" z="1.6897254312">
+        <neutronic p="-4.30502" r="4.72897" t="46.9644"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4982" x="1.76529127615" y="-0.4072203125" z="1.6897254312">
+        <neutronic p="-3.50186" r="4.72891" t="46.9371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4983" x="1.76529127615" y="-0.36903828125" z="1.6897254312">
+        <neutronic p="-2.6979" r="4.72882" t="46.9153"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4984" x="1.76529127615" y="-0.33085625" z="1.6897254312">
+        <neutronic p="-1.89344" r="4.7287" t="46.8993"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4985" x="1.76529127615" y="-0.29267421875" z="1.6897254312">
+        <neutronic p="-1.08883" r="4.72855" t="46.8888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="4986" x="1.76529127615" y="-0.2544921875" z="1.6897254312">
+        <neutronic p="-0.284369" r="4.72838" t="46.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5006" x="1.84217675514" y="-1.9345015625" z="1.6055560175">
+        <neutronic p="-31.1686" r="4.70977" t="53.9426"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5007" x="1.84217675514" y="-1.89631953125" z="1.6055560175">
+        <neutronic p="-30.5868" r="4.71076" t="53.777"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5008" x="1.84217675514" y="-1.8581375" z="1.6055560175">
+        <neutronic p="-29.9982" r="4.71172" t="53.6129"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5009" x="1.84217675514" y="-1.81995546875" z="1.6055560175">
+        <neutronic p="-29.4028" r="4.71265" t="53.4505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5010" x="1.84217675514" y="-1.7817734375" z="1.6055560175">
+        <neutronic p="-28.8005" r="4.71356" t="53.29"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5011" x="1.84217675514" y="-1.74359140625" z="1.6055560175">
+        <neutronic p="-28.1915" r="4.71445" t="53.1315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5012" x="1.84217675514" y="-1.705409375" z="1.6055560175">
+        <neutronic p="-27.5757" r="4.71532" t="52.9749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5013" x="1.84217675514" y="-1.66722734375" z="1.6055560175">
+        <neutronic p="-26.9531" r="4.71616" t="52.8206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5014" x="1.84217675514" y="-1.6290453125" z="1.6055560175">
+        <neutronic p="-26.3239" r="4.71697" t="52.6685"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5015" x="1.84217675514" y="-1.59086328125" z="1.6055560175">
+        <neutronic p="-25.688" r="4.71776" t="52.5188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5016" x="1.84217675514" y="-1.55268125" z="1.6055560175">
+        <neutronic p="-25.0456" r="4.71852" t="52.3716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5017" x="1.84217675514" y="-1.51449921875" z="1.6055560175">
+        <neutronic p="-24.3966" r="4.71926" t="52.227"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5018" x="1.84217675514" y="-1.4763171875" z="1.6055560175">
+        <neutronic p="-23.7412" r="4.71998" t="52.0852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5019" x="1.84217675514" y="-1.43813515625" z="1.6055560175">
+        <neutronic p="-23.0795" r="4.72066" t="51.9462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5020" x="1.84217675514" y="-1.399953125" z="1.6055560175">
+        <neutronic p="-22.4115" r="4.72133" t="51.8102"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5021" x="1.84217675514" y="-1.36177109375" z="1.6055560175">
+        <neutronic p="-21.7373" r="4.72196" t="51.6773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5022" x="1.84217675514" y="-1.3235890625" z="1.6055560175">
+        <neutronic p="-21.0571" r="4.72257" t="51.5476"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5023" x="1.84217675514" y="-1.28540703125" z="1.6055560175">
+        <neutronic p="-20.3709" r="4.72315" t="51.4211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5024" x="1.84217675514" y="-1.247225" z="1.6055560175">
+        <neutronic p="-19.679" r="4.72371" t="51.2981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5025" x="1.84217675514" y="-1.20904296875" z="1.6055560175">
+        <neutronic p="-18.9814" r="4.72424" t="51.1787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5026" x="1.84217675514" y="-1.1708609375" z="1.6055560175">
+        <neutronic p="-18.2782" r="4.72474" t="51.0628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5027" x="1.84217675514" y="-1.13267890625" z="1.6055560175">
+        <neutronic p="-17.5697" r="4.72521" t="50.9508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5028" x="1.84217675514" y="-1.094496875" z="1.6055560175">
+        <neutronic p="-16.856" r="4.72566" t="50.8425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5029" x="1.84217675514" y="-1.05631484375" z="1.6055560175">
+        <neutronic p="-16.1373" r="4.72608" t="50.7383"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5030" x="1.84217675514" y="-1.0181328125" z="1.6055560175">
+        <neutronic p="-15.4137" r="4.72647" t="50.6381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5031" x="1.84217675514" y="-0.97995078125" z="1.6055560175">
+        <neutronic p="-14.6855" r="4.72684" t="50.542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5032" x="1.84217675514" y="-0.94176875" z="1.6055560175">
+        <neutronic p="-13.9528" r="4.72717" t="50.4502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5033" x="1.84217675514" y="-0.90358671875" z="1.6055560175">
+        <neutronic p="-13.2159" r="4.72748" t="50.3628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5034" x="1.84217675514" y="-0.8654046875" z="1.6055560175">
+        <neutronic p="-12.4749" r="4.72776" t="50.2797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5035" x="1.84217675514" y="-0.82722265625" z="1.6055560175">
+        <neutronic p="-11.7301" r="4.72801" t="50.2012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5036" x="1.84217675514" y="-0.789040625" z="1.6055560175">
+        <neutronic p="-10.9818" r="4.72824" t="50.1273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5037" x="1.84217675514" y="-0.75085859375" z="1.6055560175">
+        <neutronic p="-10.2301" r="4.72843" t="50.058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5038" x="1.84217675514" y="-0.7126765625" z="1.6055560175">
+        <neutronic p="-9.47529" r="4.7286" t="49.9935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5039" x="1.84217675514" y="-0.67449453125" z="1.6055560175">
+        <neutronic p="-8.71765" r="4.72874" t="49.9337"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5040" x="1.84217675514" y="-0.6363125" z="1.6055560175">
+        <neutronic p="-7.95743" r="4.72885" t="49.8788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5041" x="1.84217675514" y="-0.59813046875" z="1.6055560175">
+        <neutronic p="-7.19488" r="4.72893" t="49.8289"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5042" x="1.84217675514" y="-0.5599484375" z="1.6055560175">
+        <neutronic p="-6.43027" r="4.72898" t="49.7838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5043" x="1.84217675514" y="-0.52176640625" z="1.6055560175">
+        <neutronic p="-5.66388" r="4.72901" t="49.7438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5044" x="1.84217675514" y="-0.483584375" z="1.6055560175">
+        <neutronic p="-4.89598" r="4.729" t="49.7088"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5045" x="1.84217675514" y="-0.44540234375" z="1.6055560175">
+        <neutronic p="-4.12684" r="4.72897" t="49.6789"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5046" x="1.84217675514" y="-0.4072203125" z="1.6055560175">
+        <neutronic p="-3.35675" r="4.72891" t="49.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5047" x="1.84217675514" y="-0.36903828125" z="1.6055560175">
+        <neutronic p="-2.586" r="4.72882" t="49.6343"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5048" x="1.84217675514" y="-0.33085625" z="1.6055560175">
+        <neutronic p="-1.81485" r="4.7287" t="49.6196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5049" x="1.84217675514" y="-0.29267421875" z="1.6055560175">
+        <neutronic p="-1.04361" r="4.72855" t="49.6101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5050" x="1.84217675514" y="-0.2544921875" z="1.6055560175">
+        <neutronic p="-0.272558" r="4.72838" t="49.6058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5070" x="1.91505302645" y="-1.9345015625" z="1.5178923639">
+        <neutronic p="-30.1999" r="4.70977" t="56.2836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5071" x="1.91505302645" y="-1.89631953125" z="1.5178923639">
+        <neutronic p="-29.629" r="4.71076" t="56.1317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5072" x="1.91505302645" y="-1.8581375" z="1.5178923639">
+        <neutronic p="-29.0517" r="4.71172" t="55.9814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5073" x="1.91505302645" y="-1.81995546875" z="1.5178923639">
+        <neutronic p="-28.4682" r="4.71265" t="55.8328"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5074" x="1.91505302645" y="-1.7817734375" z="1.5178923639">
+        <neutronic p="-27.8784" r="4.71356" t="55.6858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5075" x="1.91505302645" y="-1.74359140625" z="1.5178923639">
+        <neutronic p="-27.2823" r="4.71445" t="55.5407"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5076" x="1.91505302645" y="-1.705409375" z="1.5178923639">
+        <neutronic p="-26.6799" r="4.71532" t="55.3975"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5077" x="1.91505302645" y="-1.66722734375" z="1.5178923639">
+        <neutronic p="-26.0715" r="4.71616" t="55.2563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5078" x="1.91505302645" y="-1.6290453125" z="1.5178923639">
+        <neutronic p="-25.4568" r="4.71697" t="55.1173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5079" x="1.91505302645" y="-1.59086328125" z="1.5178923639">
+        <neutronic p="-24.8362" r="4.71776" t="54.9805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5080" x="1.91505302645" y="-1.55268125" z="1.5178923639">
+        <neutronic p="-24.2095" r="4.71852" t="54.846"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5081" x="1.91505302645" y="-1.51449921875" z="1.5178923639">
+        <neutronic p="-23.5768" r="4.71926" t="54.7139"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5082" x="1.91505302645" y="-1.4763171875" z="1.5178923639">
+        <neutronic p="-22.9383" r="4.71998" t="54.5844"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5083" x="1.91505302645" y="-1.43813515625" z="1.5178923639">
+        <neutronic p="-22.294" r="4.72066" t="54.4576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5084" x="1.91505302645" y="-1.399953125" z="1.5178923639">
+        <neutronic p="-21.6441" r="4.72133" t="54.3335"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5085" x="1.91505302645" y="-1.36177109375" z="1.5178923639">
+        <neutronic p="-20.9885" r="4.72196" t="54.2122"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5086" x="1.91505302645" y="-1.3235890625" z="1.5178923639">
+        <neutronic p="-20.3275" r="4.72257" t="54.0939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5087" x="1.91505302645" y="-1.28540703125" z="1.5178923639">
+        <neutronic p="-19.6611" r="4.72315" t="53.9786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5088" x="1.91505302645" y="-1.247225" z="1.5178923639">
+        <neutronic p="-18.9894" r="4.72371" t="53.8665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5089" x="1.91505302645" y="-1.20904296875" z="1.5178923639">
+        <neutronic p="-18.3127" r="4.72424" t="53.7577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5090" x="1.91505302645" y="-1.1708609375" z="1.5178923639">
+        <neutronic p="-17.631" r="4.72474" t="53.6522"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5091" x="1.91505302645" y="-1.13267890625" z="1.5178923639">
+        <neutronic p="-16.9444" r="4.72521" t="53.5501"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5092" x="1.91505302645" y="-1.094496875" z="1.5178923639">
+        <neutronic p="-16.2532" r="4.72566" t="53.4516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5093" x="1.91505302645" y="-1.05631484375" z="1.5178923639">
+        <neutronic p="-15.5575" r="4.72608" t="53.3567"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5094" x="1.91505302645" y="-1.0181328125" z="1.5178923639">
+        <neutronic p="-14.8574" r="4.72647" t="53.2655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5095" x="1.91505302645" y="-0.97995078125" z="1.5178923639">
+        <neutronic p="-14.1532" r="4.72684" t="53.1782"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5096" x="1.91505302645" y="-0.94176875" z="1.5178923639">
+        <neutronic p="-13.445" r="4.72717" t="53.0947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5097" x="1.91505302645" y="-0.90358671875" z="1.5178923639">
+        <neutronic p="-12.733" r="4.72748" t="53.0152"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5098" x="1.91505302645" y="-0.8654046875" z="1.5178923639">
+        <neutronic p="-12.0174" r="4.72776" t="52.9397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5099" x="1.91505302645" y="-0.82722265625" z="1.5178923639">
+        <neutronic p="-11.2984" r="4.72801" t="52.8683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5100" x="1.91505302645" y="-0.789040625" z="1.5178923639">
+        <neutronic p="-10.5763" r="4.72824" t="52.8011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5101" x="1.91505302645" y="-0.75085859375" z="1.5178923639">
+        <neutronic p="-9.85116" r="4.72843" t="52.7382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5102" x="1.91505302645" y="-0.7126765625" z="1.5178923639">
+        <neutronic p="-9.12331" r="4.7286" t="52.6796"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5103" x="1.91505302645" y="-0.67449453125" z="1.5178923639">
+        <neutronic p="-8.39296" r="4.72874" t="52.6253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5104" x="1.91505302645" y="-0.6363125" z="1.5178923639">
+        <neutronic p="-7.66032" r="4.72885" t="52.5754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5105" x="1.91505302645" y="-0.59813046875" z="1.5178923639">
+        <neutronic p="-6.92565" r="4.72893" t="52.5301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5106" x="1.91505302645" y="-0.5599484375" z="1.5178923639">
+        <neutronic p="-6.18917" r="4.72898" t="52.4892"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5107" x="1.91505302645" y="-0.52176640625" z="1.5178923639">
+        <neutronic p="-5.45113" r="4.72901" t="52.4528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5108" x="1.91505302645" y="-0.483584375" z="1.5178923639">
+        <neutronic p="-4.71179" r="4.729" t="52.4211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5109" x="1.91505302645" y="-0.44540234375" z="1.5178923639">
+        <neutronic p="-3.97138" r="4.72897" t="52.3939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5110" x="1.91505302645" y="-0.4072203125" z="1.5178923639">
+        <neutronic p="-3.23016" r="4.72891" t="52.3713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5111" x="1.91505302645" y="-0.36903828125" z="1.5178923639">
+        <neutronic p="-2.48839" r="4.72882" t="52.3534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5112" x="1.91505302645" y="-0.33085625" z="1.5178923639">
+        <neutronic p="-1.74631" r="4.7287" t="52.3401"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5113" x="1.91505302645" y="-0.29267421875" z="1.5178923639">
+        <neutronic p="-1.00418" r="4.72855" t="52.3315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5114" x="1.91505302645" y="-0.2544921875" z="1.5178923639">
+        <neutronic p="-0.262257" r="4.72838" t="52.3276"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5134" x="1.98376148635" y="-1.9345015625" z="1.42692525655">
+        <neutronic p="-29.3377" r="4.70977" t="58.6464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5135" x="1.98376148635" y="-1.89631953125" z="1.42692525655">
+        <neutronic p="-28.7769" r="4.71076" t="58.5078"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5136" x="1.98376148635" y="-1.8581375" z="1.42692525655">
+        <neutronic p="-28.2103" r="4.71172" t="58.3706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5137" x="1.98376148635" y="-1.81995546875" z="1.42692525655">
+        <neutronic p="-27.6378" r="4.71265" t="58.235"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5138" x="1.98376148635" y="-1.7817734375" z="1.42692525655">
+        <neutronic p="-27.0595" r="4.71356" t="58.1009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5139" x="1.98376148635" y="-1.74359140625" z="1.42692525655">
+        <neutronic p="-26.4755" r="4.71445" t="57.9686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5140" x="1.98376148635" y="-1.705409375" z="1.42692525655">
+        <neutronic p="-25.8856" r="4.71532" t="57.8381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5141" x="1.98376148635" y="-1.66722734375" z="1.42692525655">
+        <neutronic p="-25.2901" r="4.71616" t="57.7094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5142" x="1.98376148635" y="-1.6290453125" z="1.42692525655">
+        <neutronic p="-24.6889" r="4.71697" t="57.5828"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5143" x="1.98376148635" y="-1.59086328125" z="1.42692525655">
+        <neutronic p="-24.0821" r="4.71776" t="57.4582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5144" x="1.98376148635" y="-1.55268125" z="1.42692525655">
+        <neutronic p="-23.4698" r="4.71852" t="57.3357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5145" x="1.98376148635" y="-1.51449921875" z="1.42692525655">
+        <neutronic p="-22.8521" r="4.71926" t="57.2155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5146" x="1.98376148635" y="-1.4763171875" z="1.42692525655">
+        <neutronic p="-22.2289" r="4.71998" t="57.0977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5147" x="1.98376148635" y="-1.43813515625" z="1.42692525655">
+        <neutronic p="-21.6005" r="4.72066" t="56.9823"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5148" x="1.98376148635" y="-1.399953125" z="1.42692525655">
+        <neutronic p="-20.9668" r="4.72133" t="56.8694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5149" x="1.98376148635" y="-1.36177109375" z="1.42692525655">
+        <neutronic p="-20.3281" r="4.72196" t="56.7591"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5150" x="1.98376148635" y="-1.3235890625" z="1.42692525655">
+        <neutronic p="-19.6843" r="4.72257" t="56.6516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5151" x="1.98376148635" y="-1.28540703125" z="1.42692525655">
+        <neutronic p="-19.0357" r="4.72315" t="56.5468"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5152" x="1.98376148635" y="-1.247225" z="1.42692525655">
+        <neutronic p="-18.3823" r="4.72371" t="56.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5153" x="1.98376148635" y="-1.20904296875" z="1.42692525655">
+        <neutronic p="-17.7242" r="4.72424" t="56.3461"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5154" x="1.98376148635" y="-1.1708609375" z="1.42692525655">
+        <neutronic p="-17.0616" r="4.72474" t="56.2503"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5155" x="1.98376148635" y="-1.13267890625" z="1.42692525655">
+        <neutronic p="-16.3947" r="4.72521" t="56.1576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5156" x="1.98376148635" y="-1.094496875" z="1.42692525655">
+        <neutronic p="-15.7235" r="4.72566" t="56.0682"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5157" x="1.98376148635" y="-1.05631484375" z="1.42692525655">
+        <neutronic p="-15.0482" r="4.72608" t="55.9821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5158" x="1.98376148635" y="-1.0181328125" z="1.42692525655">
+        <neutronic p="-14.369" r="4.72647" t="55.8994"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5159" x="1.98376148635" y="-0.97995078125" z="1.42692525655">
+        <neutronic p="-13.686" r="4.72684" t="55.8201"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5160" x="1.98376148635" y="-0.94176875" z="1.42692525655">
+        <neutronic p="-12.9995" r="4.72717" t="55.7444"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5161" x="1.98376148635" y="-0.90358671875" z="1.42692525655">
+        <neutronic p="-12.3096" r="4.72748" t="55.6723"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5162" x="1.98376148635" y="-0.8654046875" z="1.42692525655">
+        <neutronic p="-11.6164" r="4.72776" t="55.6038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5163" x="1.98376148635" y="-0.82722265625" z="1.42692525655">
+        <neutronic p="-10.9202" r="4.72801" t="55.5392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5164" x="1.98376148635" y="-0.789040625" z="1.42692525655">
+        <neutronic p="-10.2211" r="4.72824" t="55.4783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5165" x="1.98376148635" y="-0.75085859375" z="1.42692525655">
+        <neutronic p="-9.51938" r="4.72843" t="55.4212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5166" x="1.98376148635" y="-0.7126765625" z="1.42692525655">
+        <neutronic p="-8.81522" r="4.7286" t="55.3681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5167" x="1.98376148635" y="-0.67449453125" z="1.42692525655">
+        <neutronic p="-8.10882" r="4.72874" t="55.319"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5168" x="1.98376148635" y="-0.6363125" z="1.42692525655">
+        <neutronic p="-7.4004" r="4.72885" t="55.2738"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5169" x="1.98376148635" y="-0.59813046875" z="1.42692525655">
+        <neutronic p="-6.69016" r="4.72893" t="55.2327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5170" x="1.98376148635" y="-0.5599484375" z="1.42692525655">
+        <neutronic p="-5.97833" r="4.72898" t="55.1957"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5171" x="1.98376148635" y="-0.52176640625" z="1.42692525655">
+        <neutronic p="-5.26513" r="4.72901" t="55.1628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5172" x="1.98376148635" y="-0.483584375" z="1.42692525655">
+        <neutronic p="-4.55078" r="4.729" t="55.134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5173" x="1.98376148635" y="-0.44540234375" z="1.42692525655">
+        <neutronic p="-3.8355" r="4.72897" t="55.1094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5174" x="1.98376148635" y="-0.4072203125" z="1.42692525655">
+        <neutronic p="-3.11953" r="4.72891" t="55.089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5175" x="1.98376148635" y="-0.36903828125" z="1.42692525655">
+        <neutronic p="-2.40309" r="4.72882" t="55.0728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5176" x="1.98376148635" y="-0.33085625" z="1.42692525655">
+        <neutronic p="-1.68641" r="4.7287" t="55.0607"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5177" x="1.98376148635" y="-0.29267421875" z="1.42692525655">
+        <neutronic p="-0.969725" r="4.72855" t="55.0529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5178" x="1.98376148635" y="-0.2544921875" z="1.42692525655">
+        <neutronic p="-0.253257" r="4.72838" t="55.0494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5198" x="2.04815260169" y="-1.9345015625" z="1.33285267103">
+        <neutronic p="-28.5717" r="4.70977" t="61.0282"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5199" x="2.04815260169" y="-1.89631953125" z="1.33285267103">
+        <neutronic p="-28.0205" r="4.71076" t="60.9022"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5200" x="2.04815260169" y="-1.8581375" z="1.33285267103">
+        <neutronic p="-27.4637" r="4.71172" t="60.7776"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5201" x="2.04815260169" y="-1.81995546875" z="1.33285267103">
+        <neutronic p="-26.9015" r="4.71265" t="60.6544"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5202" x="2.04815260169" y="-1.7817734375" z="1.33285267103">
+        <neutronic p="-26.3338" r="4.71356" t="60.5327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5203" x="2.04815260169" y="-1.74359140625" z="1.33285267103">
+        <neutronic p="-25.7608" r="4.71445" t="60.4126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5204" x="2.04815260169" y="-1.705409375" z="1.33285267103">
+        <neutronic p="-25.1824" r="4.71532" t="60.2942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5205" x="2.04815260169" y="-1.66722734375" z="1.33285267103">
+        <neutronic p="-24.5987" r="4.71616" t="60.1775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5206" x="2.04815260169" y="-1.6290453125" z="1.33285267103">
+        <neutronic p="-24.0098" r="4.71697" t="60.0626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5207" x="2.04815260169" y="-1.59086328125" z="1.33285267103">
+        <neutronic p="-23.4156" r="4.71776" t="59.9496"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5208" x="2.04815260169" y="-1.55268125" z="1.33285267103">
+        <neutronic p="-22.8164" r="4.71852" t="59.8386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5209" x="2.04815260169" y="-1.51449921875" z="1.33285267103">
+        <neutronic p="-22.2121" r="4.71926" t="59.7297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5210" x="2.04815260169" y="-1.4763171875" z="1.33285267103">
+        <neutronic p="-21.6028" r="4.71998" t="59.6229"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5211" x="2.04815260169" y="-1.43813515625" z="1.33285267103">
+        <neutronic p="-20.9887" r="4.72066" t="59.5183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5212" x="2.04815260169" y="-1.399953125" z="1.33285267103">
+        <neutronic p="-20.3697" r="4.72133" t="59.4161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5213" x="2.04815260169" y="-1.36177109375" z="1.33285267103">
+        <neutronic p="-19.7461" r="4.72196" t="59.3163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5214" x="2.04815260169" y="-1.3235890625" z="1.33285267103">
+        <neutronic p="-19.1178" r="4.72257" t="59.2189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5215" x="2.04815260169" y="-1.28540703125" z="1.33285267103">
+        <neutronic p="-18.4851" r="4.72315" t="59.1241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5216" x="2.04815260169" y="-1.247225" z="1.33285267103">
+        <neutronic p="-17.848" r="4.72371" t="59.032"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5217" x="2.04815260169" y="-1.20904296875" z="1.33285267103">
+        <neutronic p="-17.2066" r="4.72424" t="58.9425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5218" x="2.04815260169" y="-1.1708609375" z="1.33285267103">
+        <neutronic p="-16.561" r="4.72474" t="58.8559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5219" x="2.04815260169" y="-1.13267890625" z="1.33285267103">
+        <neutronic p="-15.9115" r="4.72521" t="58.7721"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5220" x="2.04815260169" y="-1.094496875" z="1.33285267103">
+        <neutronic p="-15.2581" r="4.72566" t="58.6912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5221" x="2.04815260169" y="-1.05631484375" z="1.33285267103">
+        <neutronic p="-14.601" r="4.72608" t="58.6134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5222" x="2.04815260169" y="-1.0181328125" z="1.33285267103">
+        <neutronic p="-13.9403" r="4.72647" t="58.5386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5223" x="2.04815260169" y="-0.97995078125" z="1.33285267103">
+        <neutronic p="-13.2762" r="4.72684" t="58.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5224" x="2.04815260169" y="-0.94176875" z="1.33285267103">
+        <neutronic p="-12.6088" r="4.72717" t="58.3986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5225" x="2.04815260169" y="-0.90358671875" z="1.33285267103">
+        <neutronic p="-11.9383" r="4.72748" t="58.3334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5226" x="2.04815260169" y="-0.8654046875" z="1.33285267103">
+        <neutronic p="-11.2649" r="4.72776" t="58.2716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5227" x="2.04815260169" y="-0.82722265625" z="1.33285267103">
+        <neutronic p="-10.5887" r="4.72801" t="58.2132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5228" x="2.04815260169" y="-0.789040625" z="1.33285267103">
+        <neutronic p="-9.90996" r="4.72824" t="58.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5229" x="2.04815260169" y="-0.75085859375" z="1.33285267103">
+        <neutronic p="-9.22882" r="4.72843" t="58.1067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5230" x="2.04815260169" y="-0.7126765625" z="1.33285267103">
+        <neutronic p="-8.54548" r="4.7286" t="58.0588"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5231" x="2.04815260169" y="-0.67449453125" z="1.33285267103">
+        <neutronic p="-7.86012" r="4.72874" t="58.0144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5232" x="2.04815260169" y="-0.6363125" z="1.33285267103">
+        <neutronic p="-7.17293" r="4.72885" t="57.9737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5233" x="2.04815260169" y="-0.59813046875" z="1.33285267103">
+        <neutronic p="-6.48413" r="4.72893" t="57.9366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5234" x="2.04815260169" y="-0.5599484375" z="1.33285267103">
+        <neutronic p="-5.79389" r="4.72898" t="57.9031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5235" x="2.04815260169" y="-0.52176640625" z="1.33285267103">
+        <neutronic p="-5.10244" r="4.72901" t="57.8735"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5236" x="2.04815260169" y="-0.483584375" z="1.33285267103">
+        <neutronic p="-4.40997" r="4.729" t="57.8475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5237" x="2.04815260169" y="-0.44540234375" z="1.33285267103">
+        <neutronic p="-3.71669" r="4.72897" t="57.8253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5238" x="2.04815260169" y="-0.4072203125" z="1.33285267103">
+        <neutronic p="-3.0228" r="4.72891" t="57.8069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5239" x="2.04815260169" y="-0.36903828125" z="1.33285267103">
+        <neutronic p="-2.32852" r="4.72882" t="57.7923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5240" x="2.04815260169" y="-0.33085625" z="1.33285267103">
+        <neutronic p="-1.63405" r="4.7287" t="57.7814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5241" x="2.04815260169" y="-0.29267421875" z="1.33285267103">
+        <neutronic p="-0.939605" r="4.72855" t="57.7744"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5242" x="2.04815260169" y="-0.2544921875" z="1.33285267103">
+        <neutronic p="-0.24539" r="4.72838" t="57.7711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5262" x="2.10808623536" y="-1.9345015625" z="1.23587934152">
+        <neutronic p="-27.8935" r="4.70977" t="63.4263"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5263" x="2.10808623536" y="-1.89631953125" z="1.23587934152">
+        <neutronic p="-27.351" r="4.71076" t="63.3125"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5264" x="2.10808623536" y="-1.8581375" z="1.23587934152">
+        <neutronic p="-26.8032" r="4.71172" t="63.2"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5265" x="2.10808623536" y="-1.81995546875" z="1.23587934152">
+        <neutronic p="-26.2504" r="4.71265" t="63.0888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5266" x="2.10808623536" y="-1.7817734375" z="1.23587934152">
+        <neutronic p="-25.6924" r="4.71356" t="62.979"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5267" x="2.10808623536" y="-1.74359140625" z="1.23587934152">
+        <neutronic p="-25.1295" r="4.71445" t="62.8706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5268" x="2.10808623536" y="-1.705409375" z="1.23587934152">
+        <neutronic p="-24.5615" r="4.71532" t="62.7637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5269" x="2.10808623536" y="-1.66722734375" z="1.23587934152">
+        <neutronic p="-23.9885" r="4.71616" t="62.6584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5270" x="2.10808623536" y="-1.6290453125" z="1.23587934152">
+        <neutronic p="-23.4106" r="4.71697" t="62.5548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5271" x="2.10808623536" y="-1.59086328125" z="1.23587934152">
+        <neutronic p="-22.828" r="4.71776" t="62.4529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5272" x="2.10808623536" y="-1.55268125" z="1.23587934152">
+        <neutronic p="-22.2405" r="4.71852" t="62.3528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5273" x="2.10808623536" y="-1.51449921875" z="1.23587934152">
+        <neutronic p="-21.6483" r="4.71926" t="62.2546"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5274" x="2.10808623536" y="-1.4763171875" z="1.23587934152">
+        <neutronic p="-21.0515" r="4.71998" t="62.1584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5275" x="2.10808623536" y="-1.43813515625" z="1.23587934152">
+        <neutronic p="-20.4502" r="4.72066" t="62.0642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5276" x="2.10808623536" y="-1.399953125" z="1.23587934152">
+        <neutronic p="-19.8444" r="4.72133" t="61.9721"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5277" x="2.10808623536" y="-1.36177109375" z="1.23587934152">
+        <neutronic p="-19.2343" r="4.72196" t="61.8822"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5278" x="2.10808623536" y="-1.3235890625" z="1.23587934152">
+        <neutronic p="-18.6199" r="4.72257" t="61.7945"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5279" x="2.10808623536" y="-1.28540703125" z="1.23587934152">
+        <neutronic p="-18.0013" r="4.72315" t="61.7092"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5280" x="2.10808623536" y="-1.247225" z="1.23587934152">
+        <neutronic p="-17.3786" r="4.72371" t="61.6262"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5281" x="2.10808623536" y="-1.20904296875" z="1.23587934152">
+        <neutronic p="-16.7521" r="4.72424" t="61.5457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5282" x="2.10808623536" y="-1.1708609375" z="1.23587934152">
+        <neutronic p="-16.1217" r="4.72474" t="61.4678"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5283" x="2.10808623536" y="-1.13267890625" z="1.23587934152">
+        <neutronic p="-15.4876" r="4.72521" t="61.3924"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5284" x="2.10808623536" y="-1.094496875" z="1.23587934152">
+        <neutronic p="-14.85" r="4.72566" t="61.3197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5285" x="2.10808623536" y="-1.05631484375" z="1.23587934152">
+        <neutronic p="-14.2089" r="4.72608" t="61.2497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5286" x="2.10808623536" y="-1.0181328125" z="1.23587934152">
+        <neutronic p="-13.5645" r="4.72647" t="61.1824"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5287" x="2.10808623536" y="-0.97995078125" z="1.23587934152">
+        <neutronic p="-12.917" r="4.72684" t="61.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5288" x="2.10808623536" y="-0.94176875" z="1.23587934152">
+        <neutronic p="-12.2665" r="4.72717" t="61.0565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5289" x="2.10808623536" y="-0.90358671875" z="1.23587934152">
+        <neutronic p="-11.6132" r="4.72748" t="60.998"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5290" x="2.10808623536" y="-0.8654046875" z="1.23587934152">
+        <neutronic p="-10.9572" r="4.72776" t="60.9424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5291" x="2.10808623536" y="-0.82722265625" z="1.23587934152">
+        <neutronic p="-10.2986" r="4.72801" t="60.8899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5292" x="2.10808623536" y="-0.789040625" z="1.23587934152">
+        <neutronic p="-9.63773" r="4.72824" t="60.8406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5293" x="2.10808623536" y="-0.75085859375" z="1.23587934152">
+        <neutronic p="-8.97465" r="4.72843" t="60.7943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5294" x="2.10808623536" y="-0.7126765625" z="1.23587934152">
+        <neutronic p="-8.30957" r="4.7286" t="60.7512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5295" x="2.10808623536" y="-0.67449453125" z="1.23587934152">
+        <neutronic p="-7.64265" r="4.72874" t="60.7114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5296" x="2.10808623536" y="-0.6363125" z="1.23587934152">
+        <neutronic p="-6.97408" r="4.72885" t="60.6748"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5297" x="2.10808623536" y="-0.59813046875" z="1.23587934152">
+        <neutronic p="-6.30403" r="4.72893" t="60.6415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5298" x="2.10808623536" y="-0.5599484375" z="1.23587934152">
+        <neutronic p="-5.63271" r="4.72898" t="60.6115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5299" x="2.10808623536" y="-0.52176640625" z="1.23587934152">
+        <neutronic p="-4.96028" r="4.72901" t="60.5848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5300" x="2.10808623536" y="-0.483584375" z="1.23587934152">
+        <neutronic p="-4.28695" r="4.729" t="60.5615"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5301" x="2.10808623536" y="-0.44540234375" z="1.23587934152">
+        <neutronic p="-3.61289" r="4.72897" t="60.5416"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5302" x="2.10808623536" y="-0.4072203125" z="1.23587934152">
+        <neutronic p="-2.93831" r="4.72891" t="60.525"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5303" x="2.10808623536" y="-0.36903828125" z="1.23587934152">
+        <neutronic p="-2.26338" r="4.72882" t="60.5119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5304" x="2.10808623536" y="-0.33085625" z="1.23587934152">
+        <neutronic p="-1.58832" r="4.7287" t="60.5022"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5305" x="2.10808623536" y="-0.29267421875" z="1.23587934152">
+        <neutronic p="-0.913298" r="4.72855" t="60.4958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5306" x="2.10808623536" y="-0.2544921875" z="1.23587934152">
+        <neutronic p="-0.238518" r="4.72838" t="60.4929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5326" x="2.16343195123" y="-1.9345015625" z="1.13621631519">
+        <neutronic p="-27.2956" r="4.70977" t="65.8386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5327" x="2.16343195123" y="-1.89631953125" z="1.13621631519">
+        <neutronic p="-26.761" r="4.71076" t="65.7366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5328" x="2.16343195123" y="-1.8581375" z="1.13621631519">
+        <neutronic p="-26.2215" r="4.71172" t="65.6357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5329" x="2.16343195123" y="-1.81995546875" z="1.13621631519">
+        <neutronic p="-25.6771" r="4.71265" t="65.536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5330" x="2.16343195123" y="-1.7817734375" z="1.13621631519">
+        <neutronic p="-25.128" r="4.71356" t="65.4376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5331" x="2.16343195123" y="-1.74359140625" z="1.13621631519">
+        <neutronic p="-24.574" r="4.71445" t="65.3404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5332" x="2.16343195123" y="-1.705409375" z="1.13621631519">
+        <neutronic p="-24.0154" r="4.71532" t="65.2447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5333" x="2.16343195123" y="-1.66722734375" z="1.13621631519">
+        <neutronic p="-23.4521" r="4.71616" t="65.1504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5334" x="2.16343195123" y="-1.6290453125" z="1.13621631519">
+        <neutronic p="-22.8842" r="4.71697" t="65.0576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5335" x="2.16343195123" y="-1.59086328125" z="1.13621631519">
+        <neutronic p="-22.3118" r="4.71776" t="64.9663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5336" x="2.16343195123" y="-1.55268125" z="1.13621631519">
+        <neutronic p="-21.7348" r="4.71852" t="64.8768"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5337" x="2.16343195123" y="-1.51449921875" z="1.13621631519">
+        <neutronic p="-21.1535" r="4.71926" t="64.7889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5338" x="2.16343195123" y="-1.4763171875" z="1.13621631519">
+        <neutronic p="-20.5679" r="4.71998" t="64.7028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5339" x="2.16343195123" y="-1.43813515625" z="1.13621631519">
+        <neutronic p="-19.978" r="4.72066" t="64.6185"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5340" x="2.16343195123" y="-1.399953125" z="1.13621631519">
+        <neutronic p="-19.3839" r="4.72133" t="64.5361"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5341" x="2.16343195123" y="-1.36177109375" z="1.13621631519">
+        <neutronic p="-18.7857" r="4.72196" t="64.4557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5342" x="2.16343195123" y="-1.3235890625" z="1.13621631519">
+        <neutronic p="-18.1836" r="4.72257" t="64.3773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5343" x="2.16343195123" y="-1.28540703125" z="1.13621631519">
+        <neutronic p="-17.5776" r="4.72315" t="64.3009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5344" x="2.16343195123" y="-1.247225" z="1.13621631519">
+        <neutronic p="-16.9678" r="4.72371" t="64.2268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5345" x="2.16343195123" y="-1.20904296875" z="1.13621631519">
+        <neutronic p="-16.3543" r="4.72424" t="64.1548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5346" x="2.16343195123" y="-1.1708609375" z="1.13621631519">
+        <neutronic p="-15.7373" r="4.72474" t="64.0851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5347" x="2.16343195123" y="-1.13267890625" z="1.13621631519">
+        <neutronic p="-15.1169" r="4.72521" t="64.0178"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5348" x="2.16343195123" y="-1.094496875" z="1.13621631519">
+        <neutronic p="-14.4931" r="4.72566" t="63.9528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5349" x="2.16343195123" y="-1.05631484375" z="1.13621631519">
+        <neutronic p="-13.8662" r="4.72608" t="63.8902"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5350" x="2.16343195123" y="-1.0181328125" z="1.13621631519">
+        <neutronic p="-13.2362" r="4.72647" t="63.8302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5351" x="2.16343195123" y="-0.97995078125" z="1.13621631519">
+        <neutronic p="-12.6033" r="4.72684" t="63.7727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5352" x="2.16343195123" y="-0.94176875" z="1.13621631519">
+        <neutronic p="-11.9676" r="4.72717" t="63.7177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5353" x="2.16343195123" y="-0.90358671875" z="1.13621631519">
+        <neutronic p="-11.3293" r="4.72748" t="63.6655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5354" x="2.16343195123" y="-0.8654046875" z="1.13621631519">
+        <neutronic p="-10.6886" r="4.72776" t="63.6159"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5355" x="2.16343195123" y="-0.82722265625" z="1.13621631519">
+        <neutronic p="-10.0455" r="4.72801" t="63.569"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5356" x="2.16343195123" y="-0.789040625" z="1.13621631519">
+        <neutronic p="-9.40019" r="4.72824" t="63.5249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5357" x="2.16343195123" y="-0.75085859375" z="1.13621631519">
+        <neutronic p="-8.75292" r="4.72843" t="63.4836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5358" x="2.16343195123" y="-0.7126765625" z="1.13621631519">
+        <neutronic p="-8.1038" r="4.7286" t="63.4452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5359" x="2.16343195123" y="-0.67449453125" z="1.13621631519">
+        <neutronic p="-7.453" r="4.72874" t="63.4096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5360" x="2.16343195123" y="-0.6363125" z="1.13621631519">
+        <neutronic p="-6.80068" r="4.72885" t="63.377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5361" x="2.16343195123" y="-0.59813046875" z="1.13621631519">
+        <neutronic p="-6.14703" r="4.72893" t="63.3472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5362" x="2.16343195123" y="-0.5599484375" z="1.13621631519">
+        <neutronic p="-5.4922" r="4.72898" t="63.3205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5363" x="2.16343195123" y="-0.52176640625" z="1.13621631519">
+        <neutronic p="-4.83638" r="4.72901" t="63.2967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5364" x="2.16343195123" y="-0.483584375" z="1.13621631519">
+        <neutronic p="-4.17973" r="4.729" t="63.2759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5365" x="2.16343195123" y="-0.44540234375" z="1.13621631519">
+        <neutronic p="-3.52244" r="4.72897" t="63.2581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5366" x="2.16343195123" y="-0.4072203125" z="1.13621631519">
+        <neutronic p="-2.86468" r="4.72891" t="63.2434"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5367" x="2.16343195123" y="-0.36903828125" z="1.13621631519">
+        <neutronic p="-2.20663" r="4.72882" t="63.2316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5368" x="2.16343195123" y="-0.33085625" z="1.13621631519">
+        <neutronic p="-1.54847" r="4.7287" t="63.223"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5369" x="2.16343195123" y="-0.29267421875" z="1.13621631519">
+        <neutronic p="-0.890377" r="4.72855" t="63.2173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5370" x="2.16343195123" y="-0.2544921875" z="1.13621631519">
+        <neutronic p="-0.232531" r="4.72838" t="63.2147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5390" x="2.21406929806" y="-1.9345015625" z="1.03408049294">
+        <neutronic p="-26.7717" r="4.70977" t="68.2632"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5391" x="2.21406929806" y="-1.89631953125" z="1.03408049294">
+        <neutronic p="-26.2442" r="4.71076" t="68.1725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5392" x="2.21406929806" y="-1.8581375" z="1.03408049294">
+        <neutronic p="-25.7121" r="4.71172" t="68.0829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5393" x="2.21406929806" y="-1.81995546875" z="1.03408049294">
+        <neutronic p="-25.1753" r="4.71265" t="67.9943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5394" x="2.21406929806" y="-1.7817734375" z="1.03408049294">
+        <neutronic p="-24.634" r="4.71356" t="67.9069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5395" x="2.21406929806" y="-1.74359140625" z="1.03408049294">
+        <neutronic p="-24.0882" r="4.71445" t="67.8206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5396" x="2.21406929806" y="-1.705409375" z="1.03408049294">
+        <neutronic p="-23.5379" r="4.71532" t="67.7356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5397" x="2.21406929806" y="-1.66722734375" z="1.03408049294">
+        <neutronic p="-22.9833" r="4.71616" t="67.6519"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5398" x="2.21406929806" y="-1.6290453125" z="1.03408049294">
+        <neutronic p="-22.4242" r="4.71697" t="67.5695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5399" x="2.21406929806" y="-1.59086328125" z="1.03408049294">
+        <neutronic p="-21.8609" r="4.71776" t="67.4885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5400" x="2.21406929806" y="-1.55268125" z="1.03408049294">
+        <neutronic p="-21.2933" r="4.71852" t="67.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5401" x="2.21406929806" y="-1.51449921875" z="1.03408049294">
+        <neutronic p="-20.7216" r="4.71926" t="67.331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5402" x="2.21406929806" y="-1.4763171875" z="1.03408049294">
+        <neutronic p="-20.1458" r="4.71998" t="67.2547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5403" x="2.21406929806" y="-1.43813515625" z="1.03408049294">
+        <neutronic p="-19.566" r="4.72066" t="67.1799"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5404" x="2.21406929806" y="-1.399953125" z="1.03408049294">
+        <neutronic p="-18.9823" r="4.72133" t="67.1068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5405" x="2.21406929806" y="-1.36177109375" z="1.03408049294">
+        <neutronic p="-18.3947" r="4.72196" t="67.0355"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5406" x="2.21406929806" y="-1.3235890625" z="1.03408049294">
+        <neutronic p="-17.8034" r="4.72257" t="66.966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5407" x="2.21406929806" y="-1.28540703125" z="1.03408049294">
+        <neutronic p="-17.2084" r="4.72315" t="66.8984"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5408" x="2.21406929806" y="-1.247225" z="1.03408049294">
+        <neutronic p="-16.6099" r="4.72371" t="66.8326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5409" x="2.21406929806" y="-1.20904296875" z="1.03408049294">
+        <neutronic p="-16.008" r="4.72424" t="66.7689"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5410" x="2.21406929806" y="-1.1708609375" z="1.03408049294">
+        <neutronic p="-15.4027" r="4.72474" t="66.7071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5411" x="2.21406929806" y="-1.13267890625" z="1.03408049294">
+        <neutronic p="-14.7942" r="4.72521" t="66.6474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5412" x="2.21406929806" y="-1.094496875" z="1.03408049294">
+        <neutronic p="-14.1826" r="4.72566" t="66.5899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5413" x="2.21406929806" y="-1.05631484375" z="1.03408049294">
+        <neutronic p="-13.5681" r="4.72608" t="66.5345"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5414" x="2.21406929806" y="-1.0181328125" z="1.03408049294">
+        <neutronic p="-12.9507" r="4.72647" t="66.4813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5415" x="2.21406929806" y="-0.97995078125" z="1.03408049294">
+        <neutronic p="-12.3305" r="4.72684" t="66.4303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5416" x="2.21406929806" y="-0.94176875" z="1.03408049294">
+        <neutronic p="-11.7078" r="4.72717" t="66.3817"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5417" x="2.21406929806" y="-0.90358671875" z="1.03408049294">
+        <neutronic p="-11.0826" r="4.72748" t="66.3354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5418" x="2.21406929806" y="-0.8654046875" z="1.03408049294">
+        <neutronic p="-10.4552" r="4.72776" t="66.2915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5419" x="2.21406929806" y="-0.82722265625" z="1.03408049294">
+        <neutronic p="-9.82552" r="4.72801" t="66.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5420" x="2.21406929806" y="-0.789040625" z="1.03408049294">
+        <neutronic p="-9.19388" r="4.72824" t="66.211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5421" x="2.21406929806" y="-0.75085859375" z="1.03408049294">
+        <neutronic p="-8.56036" r="4.72843" t="66.1745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5422" x="2.21406929806" y="-0.7126765625" z="1.03408049294">
+        <neutronic p="-7.92514" r="4.7286" t="66.1404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5423" x="2.21406929806" y="-0.67449453125" z="1.03408049294">
+        <neutronic p="-7.28835" r="4.72874" t="66.1089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5424" x="2.21406929806" y="-0.6363125" z="1.03408049294">
+        <neutronic p="-6.65018" r="4.72885" t="66.0801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5425" x="2.21406929806" y="-0.59813046875" z="1.03408049294">
+        <neutronic p="-6.01076" r="4.72893" t="66.0537"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5426" x="2.21406929806" y="-0.5599484375" z="1.03408049294">
+        <neutronic p="-5.37026" r="4.72898" t="66.0301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5427" x="2.21406929806" y="-0.52176640625" z="1.03408049294">
+        <neutronic p="-4.72886" r="4.72901" t="66.009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5428" x="2.21406929806" y="-0.483584375" z="1.03408049294">
+        <neutronic p="-4.0867" r="4.729" t="65.9906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5429" x="2.21406929806" y="-0.44540234375" z="1.03408049294">
+        <neutronic p="-3.44396" r="4.72897" t="65.9749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5430" x="2.21406929806" y="-0.4072203125" z="1.03408049294">
+        <neutronic p="-2.8008" r="4.72891" t="65.9618"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5431" x="2.21406929806" y="-0.36903828125" z="1.03408049294">
+        <neutronic p="-2.15739" r="4.72882" t="65.9515"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5432" x="2.21406929806" y="-0.33085625" z="1.03408049294">
+        <neutronic p="-1.5139" r="4.7287" t="65.9438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5433" x="2.21406929806" y="-0.29267421875" z="1.03408049294">
+        <neutronic p="-0.870495" r="4.72855" t="65.9388"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5434" x="2.21406929806" y="-0.2544921875" z="1.03408049294">
+        <neutronic p="-0.227338" r="4.72838" t="65.9365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5454" x="2.25988807165" y="-1.9345015625" z="0.929694157301">
+        <neutronic p="-26.3164" r="4.70977" t="70.6982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5455" x="2.25988807165" y="-1.89631953125" z="0.929694157301">
+        <neutronic p="-25.7952" r="4.71076" t="70.6186"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5456" x="2.25988807165" y="-1.8581375" z="0.929694157301">
+        <neutronic p="-25.2696" r="4.71172" t="70.5398"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5457" x="2.25988807165" y="-1.81995546875" z="0.929694157301">
+        <neutronic p="-24.7396" r="4.71265" t="70.4621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5458" x="2.25988807165" y="-1.7817734375" z="0.929694157301">
+        <neutronic p="-24.2053" r="4.71356" t="70.3853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5459" x="2.25988807165" y="-1.74359140625" z="0.929694157301">
+        <neutronic p="-23.6666" r="4.71445" t="70.3096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5460" x="2.25988807165" y="-1.705409375" z="0.929694157301">
+        <neutronic p="-23.1238" r="4.71532" t="70.2349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5461" x="2.25988807165" y="-1.66722734375" z="0.929694157301">
+        <neutronic p="-22.5767" r="4.71616" t="70.1615"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5462" x="2.25988807165" y="-1.6290453125" z="0.929694157301">
+        <neutronic p="-22.0254" r="4.71697" t="70.0892"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5463" x="2.25988807165" y="-1.59086328125" z="0.929694157301">
+        <neutronic p="-21.4701" r="4.71776" t="70.0181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5464" x="2.25988807165" y="-1.55268125" z="0.929694157301">
+        <neutronic p="-20.9108" r="4.71852" t="69.9484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5465" x="2.25988807165" y="-1.51449921875" z="0.929694157301">
+        <neutronic p="-20.3475" r="4.71926" t="69.88"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5466" x="2.25988807165" y="-1.4763171875" z="0.929694157301">
+        <neutronic p="-19.7803" r="4.71998" t="69.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5467" x="2.25988807165" y="-1.43813515625" z="0.929694157301">
+        <neutronic p="-19.2094" r="4.72066" t="69.7474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5468" x="2.25988807165" y="-1.399953125" z="0.929694157301">
+        <neutronic p="-18.6347" r="4.72133" t="69.6834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5469" x="2.25988807165" y="-1.36177109375" z="0.929694157301">
+        <neutronic p="-18.0564" r="4.72196" t="69.6209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5470" x="2.25988807165" y="-1.3235890625" z="0.929694157301">
+        <neutronic p="-17.4745" r="4.72257" t="69.5599"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5471" x="2.25988807165" y="-1.28540703125" z="0.929694157301">
+        <neutronic p="-16.8892" r="4.72315" t="69.5006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5472" x="2.25988807165" y="-1.247225" z="0.929694157301">
+        <neutronic p="-16.3005" r="4.72371" t="69.443"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5473" x="2.25988807165" y="-1.20904296875" z="0.929694157301">
+        <neutronic p="-15.7086" r="4.72424" t="69.3871"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5474" x="2.25988807165" y="-1.1708609375" z="0.929694157301">
+        <neutronic p="-15.1135" r="4.72474" t="69.333"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5475" x="2.25988807165" y="-1.13267890625" z="0.929694157301">
+        <neutronic p="-14.5154" r="4.72521" t="69.2807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5476" x="2.25988807165" y="-1.094496875" z="0.929694157301">
+        <neutronic p="-13.9144" r="4.72566" t="69.2303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5477" x="2.25988807165" y="-1.05631484375" z="0.929694157301">
+        <neutronic p="-13.3106" r="4.72608" t="69.1818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5478" x="2.25988807165" y="-1.0181328125" z="0.929694157301">
+        <neutronic p="-12.7041" r="4.72647" t="69.1352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5479" x="2.25988807165" y="-0.97995078125" z="0.929694157301">
+        <neutronic p="-12.095" r="4.72684" t="69.0906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5480" x="2.25988807165" y="-0.94176875" z="0.929694157301">
+        <neutronic p="-11.4835" r="4.72717" t="69.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5481" x="2.25988807165" y="-0.90358671875" z="0.929694157301">
+        <neutronic p="-10.8697" r="4.72748" t="69.0075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5482" x="2.25988807165" y="-0.8654046875" z="0.929694157301">
+        <neutronic p="-10.2538" r="4.72776" t="68.969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5483" x="2.25988807165" y="-0.82722265625" z="0.929694157301">
+        <neutronic p="-9.6358" r="4.72801" t="68.9327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5484" x="2.25988807165" y="-0.789040625" z="0.929694157301">
+        <neutronic p="-9.01592" r="4.72824" t="68.8985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5485" x="2.25988807165" y="-0.75085859375" z="0.929694157301">
+        <neutronic p="-8.3943" r="4.72843" t="68.8665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5486" x="2.25988807165" y="-0.7126765625" z="0.929694157301">
+        <neutronic p="-7.77107" r="4.7286" t="68.8368"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5487" x="2.25988807165" y="-0.67449453125" z="0.929694157301">
+        <neutronic p="-7.1464" r="4.72874" t="68.8092"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5488" x="2.25988807165" y="-0.6363125" z="0.929694157301">
+        <neutronic p="-6.52042" r="4.72885" t="68.7839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5489" x="2.25988807165" y="-0.59813046875" z="0.929694157301">
+        <neutronic p="-5.89329" r="4.72893" t="68.7609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5490" x="2.25988807165" y="-0.5599484375" z="0.929694157301">
+        <neutronic p="-5.26516" r="4.72898" t="68.7402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5491" x="2.25988807165" y="-0.52176640625" z="0.929694157301">
+        <neutronic p="-4.63619" r="4.72901" t="68.7218"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5492" x="2.25988807165" y="-0.483584375" z="0.929694157301">
+        <neutronic p="-4.00653" r="4.729" t="68.7057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5493" x="2.25988807165" y="-0.44540234375" z="0.929694157301">
+        <neutronic p="-3.37633" r="4.72897" t="68.6919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5494" x="2.25988807165" y="-0.4072203125" z="0.929694157301">
+        <neutronic p="-2.74576" r="4.72891" t="68.6805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5495" x="2.25988807165" y="-0.36903828125" z="0.929694157301">
+        <neutronic p="-2.11497" r="4.72882" t="68.6714"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5496" x="2.25988807165" y="-0.33085625" z="0.929694157301">
+        <neutronic p="-1.48412" r="4.7287" t="68.6647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5497" x="2.25988807165" y="-0.29267421875" z="0.929694157301">
+        <neutronic p="-0.853364" r="4.72855" t="68.6603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5498" x="2.25988807165" y="-0.2544921875" z="0.929694157301">
+        <neutronic p="-0.222864" r="4.72838" t="68.6583"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5518" x="2.30078855464" y="-1.9345015625" z="0.823284488697">
+        <neutronic p="-25.9251" r="4.70977" t="73.1422"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5519" x="2.30078855464" y="-1.89631953125" z="0.823284488697">
+        <neutronic p="-25.4095" r="4.71076" t="73.0733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5520" x="2.30078855464" y="-1.8581375" z="0.823284488697">
+        <neutronic p="-24.8896" r="4.71172" t="73.0052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5521" x="2.30078855464" y="-1.81995546875" z="0.823284488697">
+        <neutronic p="-24.3655" r="4.71265" t="72.9379"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5522" x="2.30078855464" y="-1.7817734375" z="0.823284488697">
+        <neutronic p="-23.8372" r="4.71356" t="72.8715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5523" x="2.30078855464" y="-1.74359140625" z="0.823284488697">
+        <neutronic p="-23.3049" r="4.71445" t="72.806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5524" x="2.30078855464" y="-1.705409375" z="0.823284488697">
+        <neutronic p="-22.7684" r="4.71532" t="72.7415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5525" x="2.30078855464" y="-1.66722734375" z="0.823284488697">
+        <neutronic p="-22.2279" r="4.71616" t="72.6779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5526" x="2.30078855464" y="-1.6290453125" z="0.823284488697">
+        <neutronic p="-21.6835" r="4.71697" t="72.6155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5527" x="2.30078855464" y="-1.59086328125" z="0.823284488697">
+        <neutronic p="-21.1351" r="4.71776" t="72.5541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5528" x="2.30078855464" y="-1.55268125" z="0.823284488697">
+        <neutronic p="-20.5829" r="4.71852" t="72.4938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5529" x="2.30078855464" y="-1.51449921875" z="0.823284488697">
+        <neutronic p="-20.0269" r="4.71926" t="72.4347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5530" x="2.30078855464" y="-1.4763171875" z="0.823284488697">
+        <neutronic p="-19.4672" r="4.71998" t="72.3768"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5531" x="2.30078855464" y="-1.43813515625" z="0.823284488697">
+        <neutronic p="-18.9039" r="4.72066" t="72.3202"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5532" x="2.30078855464" y="-1.399953125" z="0.823284488697">
+        <neutronic p="-18.337" r="4.72133" t="72.2648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5533" x="2.30078855464" y="-1.36177109375" z="0.823284488697">
+        <neutronic p="-17.7667" r="4.72196" t="72.2108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5534" x="2.30078855464" y="-1.3235890625" z="0.823284488697">
+        <neutronic p="-17.193" r="4.72257" t="72.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5535" x="2.30078855464" y="-1.28540703125" z="0.823284488697">
+        <neutronic p="-16.616" r="4.72315" t="72.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5536" x="2.30078855464" y="-1.247225" z="0.823284488697">
+        <neutronic p="-16.0358" r="4.72371" t="72.0572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5537" x="2.30078855464" y="-1.20904296875" z="0.823284488697">
+        <neutronic p="-15.4525" r="4.72424" t="72.009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5538" x="2.30078855464" y="-1.1708609375" z="0.823284488697">
+        <neutronic p="-14.8662" r="4.72474" t="71.9623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5539" x="2.30078855464" y="-1.13267890625" z="0.823284488697">
+        <neutronic p="-14.2771" r="4.72521" t="71.9171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5540" x="2.30078855464" y="-1.094496875" z="0.823284488697">
+        <neutronic p="-13.6851" r="4.72566" t="71.8736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5541" x="2.30078855464" y="-1.05631484375" z="0.823284488697">
+        <neutronic p="-13.0905" r="4.72608" t="71.8317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5542" x="2.30078855464" y="-1.0181328125" z="0.823284488697">
+        <neutronic p="-12.4934" r="4.72647" t="71.7915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5543" x="2.30078855464" y="-0.97995078125" z="0.823284488697">
+        <neutronic p="-11.8938" r="4.72684" t="71.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5544" x="2.30078855464" y="-0.94176875" z="0.823284488697">
+        <neutronic p="-11.292" r="4.72717" t="71.7163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5545" x="2.30078855464" y="-0.90358671875" z="0.823284488697">
+        <neutronic p="-10.6879" r="4.72748" t="71.6813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5546" x="2.30078855464" y="-0.8654046875" z="0.823284488697">
+        <neutronic p="-10.0818" r="4.72776" t="71.6481"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5547" x="2.30078855464" y="-0.82722265625" z="0.823284488697">
+        <neutronic p="-9.47377" r="4.72801" t="71.6168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5548" x="2.30078855464" y="-0.789040625" z="0.823284488697">
+        <neutronic p="-8.86397" r="4.72824" t="71.5873"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5549" x="2.30078855464" y="-0.75085859375" z="0.823284488697">
+        <neutronic p="-8.25252" r="4.72843" t="71.5597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5550" x="2.30078855464" y="-0.7126765625" z="0.823284488697">
+        <neutronic p="-7.63956" r="4.7286" t="71.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5551" x="2.30078855464" y="-0.67449453125" z="0.823284488697">
+        <neutronic p="-7.02523" r="4.72874" t="71.5103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5552" x="2.30078855464" y="-0.6363125" z="0.823284488697">
+        <neutronic p="-6.40968" r="4.72885" t="71.4884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5553" x="2.30078855464" y="-0.59813046875" z="0.823284488697">
+        <neutronic p="-5.79305" r="4.72893" t="71.4686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5554" x="2.30078855464" y="-0.5599484375" z="0.823284488697">
+        <neutronic p="-5.17548" r="4.72898" t="71.4507"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5555" x="2.30078855464" y="-0.52176640625" z="0.823284488697">
+        <neutronic p="-4.55712" r="4.72901" t="71.4348"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5556" x="2.30078855464" y="-0.483584375" z="0.823284488697">
+        <neutronic p="-3.93812" r="4.729" t="71.4209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5557" x="2.30078855464" y="-0.44540234375" z="0.823284488697">
+        <neutronic p="-3.31863" r="4.72897" t="71.4091"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5558" x="2.30078855464" y="-0.4072203125" z="0.823284488697">
+        <neutronic p="-2.6988" r="4.72891" t="71.3992"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5559" x="2.30078855464" y="-0.36903828125" z="0.823284488697">
+        <neutronic p="-2.07878" r="4.72882" t="71.3914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5560" x="2.30078855464" y="-0.33085625" z="0.823284488697">
+        <neutronic p="-1.45871" r="4.7287" t="71.3856"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5561" x="2.30078855464" y="-0.29267421875" z="0.823284488697">
+        <neutronic p="-0.83875" r="4.72855" t="71.3819"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5562" x="2.30078855464" y="-0.2544921875" z="0.823284488697">
+        <neutronic p="-0.219047" r="4.72838" t="71.3801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5582" x="2.33668173358" y="-1.9345015625" z="0.71508307102">
+        <neutronic p="-25.5941" r="4.70977" t="75.5936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5583" x="2.33668173358" y="-1.89631953125" z="0.71508307102">
+        <neutronic p="-25.0832" r="4.71076" t="75.5352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5584" x="2.33668173358" y="-1.8581375" z="0.71508307102">
+        <neutronic p="-24.5682" r="4.71172" t="75.4775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5585" x="2.33668173358" y="-1.81995546875" z="0.71508307102">
+        <neutronic p="-24.0492" r="4.71265" t="75.4205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5586" x="2.33668173358" y="-1.7817734375" z="0.71508307102">
+        <neutronic p="-23.5261" r="4.71356" t="75.3642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5587" x="2.33668173358" y="-1.74359140625" z="0.71508307102">
+        <neutronic p="-22.9991" r="4.71445" t="75.3087"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5588" x="2.33668173358" y="-1.705409375" z="0.71508307102">
+        <neutronic p="-22.4681" r="4.71532" t="75.254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5589" x="2.33668173358" y="-1.66722734375" z="0.71508307102">
+        <neutronic p="-21.9333" r="4.71616" t="75.2002"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5590" x="2.33668173358" y="-1.6290453125" z="0.71508307102">
+        <neutronic p="-21.3946" r="4.71697" t="75.1473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5591" x="2.33668173358" y="-1.59086328125" z="0.71508307102">
+        <neutronic p="-20.8522" r="4.71776" t="75.0953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5592" x="2.33668173358" y="-1.55268125" z="0.71508307102">
+        <neutronic p="-20.3061" r="4.71852" t="75.0442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5593" x="2.33668173358" y="-1.51449921875" z="0.71508307102">
+        <neutronic p="-19.7563" r="4.71926" t="74.9942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5594" x="2.33668173358" y="-1.4763171875" z="0.71508307102">
+        <neutronic p="-19.203" r="4.71998" t="74.9452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5595" x="2.33668173358" y="-1.43813515625" z="0.71508307102">
+        <neutronic p="-18.6462" r="4.72066" t="74.8972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5596" x="2.33668173358" y="-1.399953125" z="0.71508307102">
+        <neutronic p="-18.0859" r="4.72133" t="74.8503"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5597" x="2.33668173358" y="-1.36177109375" z="0.71508307102">
+        <neutronic p="-17.5224" r="4.72196" t="74.8046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5598" x="2.33668173358" y="-1.3235890625" z="0.71508307102">
+        <neutronic p="-16.9556" r="4.72257" t="74.7601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5599" x="2.33668173358" y="-1.28540703125" z="0.71508307102">
+        <neutronic p="-16.3857" r="4.72315" t="74.7167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5600" x="2.33668173358" y="-1.247225" z="0.71508307102">
+        <neutronic p="-15.8127" r="4.72371" t="74.6746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5601" x="2.33668173358" y="-1.20904296875" z="0.71508307102">
+        <neutronic p="-15.2367" r="4.72424" t="74.6338"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5602" x="2.33668173358" y="-1.1708609375" z="0.71508307102">
+        <neutronic p="-14.6578" r="4.72474" t="74.5943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5603" x="2.33668173358" y="-1.13267890625" z="0.71508307102">
+        <neutronic p="-14.0762" r="4.72521" t="74.5561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5604" x="2.33668173358" y="-1.094496875" z="0.71508307102">
+        <neutronic p="-13.492" r="4.72566" t="74.5192"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5605" x="2.33668173358" y="-1.05631484375" z="0.71508307102">
+        <neutronic p="-12.9052" r="4.72608" t="74.4838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5606" x="2.33668173358" y="-1.0181328125" z="0.71508307102">
+        <neutronic p="-12.316" r="4.72647" t="74.4498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5607" x="2.33668173358" y="-0.97995078125" z="0.71508307102">
+        <neutronic p="-11.7244" r="4.72684" t="74.4172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5608" x="2.33668173358" y="-0.94176875" z="0.71508307102">
+        <neutronic p="-11.1306" r="4.72717" t="74.3862"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5609" x="2.33668173358" y="-0.90358671875" z="0.71508307102">
+        <neutronic p="-10.5348" r="4.72748" t="74.3566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5610" x="2.33668173358" y="-0.8654046875" z="0.71508307102">
+        <neutronic p="-9.93703" r="4.72776" t="74.3285"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5611" x="2.33668173358" y="-0.82722265625" z="0.71508307102">
+        <neutronic p="-9.33741" r="4.72801" t="74.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5612" x="2.33668173358" y="-0.789040625" z="0.71508307102">
+        <neutronic p="-8.7361" r="4.72824" t="74.2771"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5613" x="2.33668173358" y="-0.75085859375" z="0.71508307102">
+        <neutronic p="-8.13322" r="4.72843" t="74.2538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5614" x="2.33668173358" y="-0.7126765625" z="0.71508307102">
+        <neutronic p="-7.52891" r="4.7286" t="74.232"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5615" x="2.33668173358" y="-0.67449453125" z="0.71508307102">
+        <neutronic p="-6.92329" r="4.72874" t="74.2119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5616" x="2.33668173358" y="-0.6363125" z="0.71508307102">
+        <neutronic p="-6.31652" r="4.72885" t="74.1935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5617" x="2.33668173358" y="-0.59813046875" z="0.71508307102">
+        <neutronic p="-5.70872" r="4.72893" t="74.1767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5618" x="2.33668173358" y="-0.5599484375" z="0.71508307102">
+        <neutronic p="-5.10004" r="4.72898" t="74.1616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5619" x="2.33668173358" y="-0.52176640625" z="0.71508307102">
+        <neutronic p="-4.49062" r="4.72901" t="74.1482"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5620" x="2.33668173358" y="-0.483584375" z="0.71508307102">
+        <neutronic p="-3.88059" r="4.729" t="74.1364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5621" x="2.33668173358" y="-0.44540234375" z="0.71508307102">
+        <neutronic p="-3.27011" r="4.72897" t="74.1264"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5622" x="2.33668173358" y="-0.4072203125" z="0.71508307102">
+        <neutronic p="-2.65931" r="4.72891" t="74.1181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5623" x="2.33668173358" y="-0.36903828125" z="0.71508307102">
+        <neutronic p="-2.04834" r="4.72882" t="74.1115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5624" x="2.33668173358" y="-0.33085625" z="0.71508307102">
+        <neutronic p="-1.43734" r="4.7287" t="74.1066"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5625" x="2.33668173358" y="-0.29267421875" z="0.71508307102">
+        <neutronic p="-0.826461" r="4.72855" t="74.1034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5626" x="2.33668173358" y="-0.2544921875" z="0.71508307102">
+        <neutronic p="-0.215837" r="4.72838" t="74.1019"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5646" x="2.36748949261" y="-1.9345015625" z="0.605325387621">
+        <neutronic p="-25.3201" r="4.70977" t="78.0512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5647" x="2.36748949261" y="-1.89631953125" z="0.605325387621">
+        <neutronic p="-24.8132" r="4.71076" t="78.0031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5648" x="2.36748949261" y="-1.8581375" z="0.605325387621">
+        <neutronic p="-24.3024" r="4.71172" t="77.9556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5649" x="2.36748949261" y="-1.81995546875" z="0.605325387621">
+        <neutronic p="-23.7876" r="4.71265" t="77.9086"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5650" x="2.36748949261" y="-1.7817734375" z="0.605325387621">
+        <neutronic p="-23.2689" r="4.71356" t="77.8623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5651" x="2.36748949261" y="-1.74359140625" z="0.605325387621">
+        <neutronic p="-22.7463" r="4.71445" t="77.8166"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5652" x="2.36748949261" y="-1.705409375" z="0.605325387621">
+        <neutronic p="-22.2199" r="4.71532" t="77.7716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5653" x="2.36748949261" y="-1.66722734375" z="0.605325387621">
+        <neutronic p="-21.6898" r="4.71616" t="77.7272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5654" x="2.36748949261" y="-1.6290453125" z="0.605325387621">
+        <neutronic p="-21.1559" r="4.71697" t="77.6837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5655" x="2.36748949261" y="-1.59086328125" z="0.605325387621">
+        <neutronic p="-20.6184" r="4.71776" t="77.6409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5656" x="2.36748949261" y="-1.55268125" z="0.605325387621">
+        <neutronic p="-20.0774" r="4.71852" t="77.5988"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5657" x="2.36748949261" y="-1.51449921875" z="0.605325387621">
+        <neutronic p="-19.5328" r="4.71926" t="77.5576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5658" x="2.36748949261" y="-1.4763171875" z="0.605325387621">
+        <neutronic p="-18.9848" r="4.71998" t="77.5173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5659" x="2.36748949261" y="-1.43813515625" z="0.605325387621">
+        <neutronic p="-18.4333" r="4.72066" t="77.4778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5660" x="2.36748949261" y="-1.399953125" z="0.605325387621">
+        <neutronic p="-17.8786" r="4.72133" t="77.4393"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5661" x="2.36748949261" y="-1.36177109375" z="0.605325387621">
+        <neutronic p="-17.3207" r="4.72196" t="77.4016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5662" x="2.36748949261" y="-1.3235890625" z="0.605325387621">
+        <neutronic p="-16.7597" r="4.72257" t="77.365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5663" x="2.36748949261" y="-1.28540703125" z="0.605325387621">
+        <neutronic p="-16.1956" r="4.72315" t="77.3293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5664" x="2.36748949261" y="-1.247225" z="0.605325387621">
+        <neutronic p="-15.6285" r="4.72371" t="77.2947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5665" x="2.36748949261" y="-1.20904296875" z="0.605325387621">
+        <neutronic p="-15.0586" r="4.72424" t="77.2611"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5666" x="2.36748949261" y="-1.1708609375" z="0.605325387621">
+        <neutronic p="-14.486" r="4.72474" t="77.2286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5667" x="2.36748949261" y="-1.13267890625" z="0.605325387621">
+        <neutronic p="-13.9106" r="4.72521" t="77.1972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5668" x="2.36748949261" y="-1.094496875" z="0.605325387621">
+        <neutronic p="-13.3327" r="4.72566" t="77.1669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5669" x="2.36748949261" y="-1.05631484375" z="0.605325387621">
+        <neutronic p="-12.7524" r="4.72608" t="77.1377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5670" x="2.36748949261" y="-1.0181328125" z="0.605325387621">
+        <neutronic p="-12.1697" r="4.72647" t="77.1097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5671" x="2.36748949261" y="-0.97995078125" z="0.605325387621">
+        <neutronic p="-11.5847" r="4.72684" t="77.083"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5672" x="2.36748949261" y="-0.94176875" z="0.605325387621">
+        <neutronic p="-10.9977" r="4.72717" t="77.0574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5673" x="2.36748949261" y="-0.90358671875" z="0.605325387621">
+        <neutronic p="-10.4086" r="4.72748" t="77.0331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5674" x="2.36748949261" y="-0.8654046875" z="0.605325387621">
+        <neutronic p="-9.81773" r="4.72776" t="77.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5675" x="2.36748949261" y="-0.82722265625" z="0.605325387621">
+        <neutronic p="-9.22505" r="4.72801" t="76.9882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5676" x="2.36748949261" y="-0.789040625" z="0.605325387621">
+        <neutronic p="-8.63074" r="4.72824" t="76.9677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5677" x="2.36748949261" y="-0.75085859375" z="0.605325387621">
+        <neutronic p="-8.03493" r="4.72843" t="76.9485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5678" x="2.36748949261" y="-0.7126765625" z="0.605325387621">
+        <neutronic p="-7.43775" r="4.7286" t="76.9307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5679" x="2.36748949261" y="-0.67449453125" z="0.605325387621">
+        <neutronic p="-6.83932" r="4.72874" t="76.9142"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5680" x="2.36748949261" y="-0.6363125" z="0.605325387621">
+        <neutronic p="-6.23979" r="4.72885" t="76.899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5681" x="2.36748949261" y="-0.59813046875" z="0.605325387621">
+        <neutronic p="-5.63927" r="4.72893" t="76.8852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5682" x="2.36748949261" y="-0.5599484375" z="0.605325387621">
+        <neutronic p="-5.03791" r="4.72898" t="76.8728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5683" x="2.36748949261" y="-0.52176640625" z="0.605325387621">
+        <neutronic p="-4.43585" r="4.72901" t="76.8617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5684" x="2.36748949261" y="-0.483584375" z="0.605325387621">
+        <neutronic p="-3.83322" r="4.729" t="76.8521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5685" x="2.36748949261" y="-0.44540234375" z="0.605325387621">
+        <neutronic p="-3.23015" r="4.72897" t="76.8438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5686" x="2.36748949261" y="-0.4072203125" z="0.605325387621">
+        <neutronic p="-2.62679" r="4.72891" t="76.837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5687" x="2.36748949261" y="-0.36903828125" z="0.605325387621">
+        <neutronic p="-2.02328" r="4.72882" t="76.8316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5688" x="2.36748949261" y="-0.33085625" z="0.605325387621">
+        <neutronic p="-1.41975" r="4.7287" t="76.8275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5689" x="2.36748949261" y="-0.29267421875" z="0.605325387621">
+        <neutronic p="-0.816342" r="4.72855" t="76.8249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5690" x="2.36748949261" y="-0.2544921875" z="0.605325387621">
+        <neutronic p="-0.213194" r="4.72838" t="76.8237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5710" x="2.39314478349" y="-1.9345015625" z="0.494250308817">
+        <neutronic p="-25.1006" r="4.70977" t="80.5139"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5711" x="2.39314478349" y="-1.89631953125" z="0.494250308817">
+        <neutronic p="-24.597" r="4.71076" t="80.4759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5712" x="2.39314478349" y="-1.8581375" z="0.494250308817">
+        <neutronic p="-24.0895" r="4.71172" t="80.4384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5713" x="2.39314478349" y="-1.81995546875" z="0.494250308817">
+        <neutronic p="-23.5781" r="4.71265" t="80.4013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5714" x="2.39314478349" y="-1.7817734375" z="0.494250308817">
+        <neutronic p="-23.0629" r="4.71356" t="80.3647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5715" x="2.39314478349" y="-1.74359140625" z="0.494250308817">
+        <neutronic p="-22.5439" r="4.71445" t="80.3286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5716" x="2.39314478349" y="-1.705409375" z="0.494250308817">
+        <neutronic p="-22.0212" r="4.71532" t="80.2931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5717" x="2.39314478349" y="-1.66722734375" z="0.494250308817">
+        <neutronic p="-21.4949" r="4.71616" t="80.2581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5718" x="2.39314478349" y="-1.6290453125" z="0.494250308817">
+        <neutronic p="-20.9649" r="4.71697" t="80.2237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5719" x="2.39314478349" y="-1.59086328125" z="0.494250308817">
+        <neutronic p="-20.4314" r="4.71776" t="80.19"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5720" x="2.39314478349" y="-1.55268125" z="0.494250308817">
+        <neutronic p="-19.8944" r="4.71852" t="80.1568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5721" x="2.39314478349" y="-1.51449921875" z="0.494250308817">
+        <neutronic p="-19.354" r="4.71926" t="80.1243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5722" x="2.39314478349" y="-1.4763171875" z="0.494250308817">
+        <neutronic p="-18.8103" r="4.71998" t="80.0925"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5723" x="2.39314478349" y="-1.43813515625" z="0.494250308817">
+        <neutronic p="-18.2632" r="4.72066" t="80.0613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5724" x="2.39314478349" y="-1.399953125" z="0.494250308817">
+        <neutronic p="-17.7129" r="4.72133" t="80.0309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5725" x="2.39314478349" y="-1.36177109375" z="0.494250308817">
+        <neutronic p="-17.1595" r="4.72196" t="80.0012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5726" x="2.39314478349" y="-1.3235890625" z="0.494250308817">
+        <neutronic p="-16.6031" r="4.72257" t="79.9723"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5727" x="2.39314478349" y="-1.28540703125" z="0.494250308817">
+        <neutronic p="-16.0437" r="4.72315" t="79.9442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5728" x="2.39314478349" y="-1.247225" z="0.494250308817">
+        <neutronic p="-15.4814" r="4.72371" t="79.9169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5729" x="2.39314478349" y="-1.20904296875" z="0.494250308817">
+        <neutronic p="-14.9164" r="4.72424" t="79.8904"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5730" x="2.39314478349" y="-1.1708609375" z="0.494250308817">
+        <neutronic p="-14.3486" r="4.72474" t="79.8647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5731" x="2.39314478349" y="-1.13267890625" z="0.494250308817">
+        <neutronic p="-13.7783" r="4.72521" t="79.8399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5732" x="2.39314478349" y="-1.094496875" z="0.494250308817">
+        <neutronic p="-13.2055" r="4.72566" t="79.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5733" x="2.39314478349" y="-1.05631484375" z="0.494250308817">
+        <neutronic p="-12.6303" r="4.72608" t="79.7931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5734" x="2.39314478349" y="-1.0181328125" z="0.494250308817">
+        <neutronic p="-12.0528" r="4.72647" t="79.771"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5735" x="2.39314478349" y="-0.97995078125" z="0.494250308817">
+        <neutronic p="-11.4732" r="4.72684" t="79.7499"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5736" x="2.39314478349" y="-0.94176875" z="0.494250308817">
+        <neutronic p="-10.8915" r="4.72717" t="79.7297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5737" x="2.39314478349" y="-0.90358671875" z="0.494250308817">
+        <neutronic p="-10.3079" r="4.72748" t="79.7106"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5738" x="2.39314478349" y="-0.8654046875" z="0.494250308817">
+        <neutronic p="-9.72249" r="4.72776" t="79.6924"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5739" x="2.39314478349" y="-0.82722265625" z="0.494250308817">
+        <neutronic p="-9.13536" r="4.72801" t="79.6752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5740" x="2.39314478349" y="-0.789040625" z="0.494250308817">
+        <neutronic p="-8.54665" r="4.72824" t="79.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5741" x="2.39314478349" y="-0.75085859375" z="0.494250308817">
+        <neutronic p="-7.95649" r="4.72843" t="79.6439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5742" x="2.39314478349" y="-0.7126765625" z="0.494250308817">
+        <neutronic p="-7.365" r="4.7286" t="79.6298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5743" x="2.39314478349" y="-0.67449453125" z="0.494250308817">
+        <neutronic p="-6.77231" r="4.72874" t="79.6168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5744" x="2.39314478349" y="-0.6363125" z="0.494250308817">
+        <neutronic p="-6.17855" r="4.72885" t="79.6049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5745" x="2.39314478349" y="-0.59813046875" z="0.494250308817">
+        <neutronic p="-5.58385" r="4.72893" t="79.594"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5746" x="2.39314478349" y="-0.5599484375" z="0.494250308817">
+        <neutronic p="-4.98834" r="4.72898" t="79.5842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5747" x="2.39314478349" y="-0.52176640625" z="0.494250308817">
+        <neutronic p="-4.39215" r="4.72901" t="79.5755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5748" x="2.39314478349" y="-0.483584375" z="0.494250308817">
+        <neutronic p="-3.79542" r="4.729" t="79.5679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5749" x="2.39314478349" y="-0.44540234375" z="0.494250308817">
+        <neutronic p="-3.19827" r="4.72897" t="79.5614"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5750" x="2.39314478349" y="-0.4072203125" z="0.494250308817">
+        <neutronic p="-2.60085" r="4.72891" t="79.556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5751" x="2.39314478349" y="-0.36903828125" z="0.494250308817">
+        <neutronic p="-2.00329" r="4.72882" t="79.5517"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5752" x="2.39314478349" y="-0.33085625" z="0.494250308817">
+        <neutronic p="-1.40571" r="4.7287" t="79.5485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5753" x="2.39314478349" y="-0.29267421875" z="0.494250308817">
+        <neutronic p="-0.808269" r="4.72855" t="79.5465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5754" x="2.39314478349" y="-0.2544921875" z="0.494250308817">
+        <neutronic p="-0.211085" r="4.72838" t="79.5455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5774" x="2.41359177152" y="-1.9345015625" z="0.38209957203">
+        <neutronic p="-24.9336" r="4.70977" t="82.9804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5775" x="2.41359177152" y="-1.89631953125" z="0.38209957203">
+        <neutronic p="-24.4325" r="4.71076" t="82.9524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5776" x="2.41359177152" y="-1.8581375" z="0.38209957203">
+        <neutronic p="-23.9275" r="4.71172" t="82.9248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5777" x="2.41359177152" y="-1.81995546875" z="0.38209957203">
+        <neutronic p="-23.4187" r="4.71265" t="82.8975"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5778" x="2.41359177152" y="-1.7817734375" z="0.38209957203">
+        <neutronic p="-22.9062" r="4.71356" t="82.8705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5779" x="2.41359177152" y="-1.74359140625" z="0.38209957203">
+        <neutronic p="-22.39" r="4.71445" t="82.8439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5780" x="2.41359177152" y="-1.705409375" z="0.38209957203">
+        <neutronic p="-21.8702" r="4.71532" t="82.8178"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5781" x="2.41359177152" y="-1.66722734375" z="0.38209957203">
+        <neutronic p="-21.3468" r="4.71616" t="82.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5782" x="2.41359177152" y="-1.6290453125" z="0.38209957203">
+        <neutronic p="-20.8198" r="4.71697" t="82.7667"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5783" x="2.41359177152" y="-1.59086328125" z="0.38209957203">
+        <neutronic p="-20.2893" r="4.71776" t="82.7418"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5784" x="2.41359177152" y="-1.55268125" z="0.38209957203">
+        <neutronic p="-19.7554" r="4.71852" t="82.7174"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5785" x="2.41359177152" y="-1.51449921875" z="0.38209957203">
+        <neutronic p="-19.2182" r="4.71926" t="82.6934"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5786" x="2.41359177152" y="-1.4763171875" z="0.38209957203">
+        <neutronic p="-18.6777" r="4.71998" t="82.67"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5787" x="2.41359177152" y="-1.43813515625" z="0.38209957203">
+        <neutronic p="-18.1339" r="4.72066" t="82.647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5788" x="2.41359177152" y="-1.399953125" z="0.38209957203">
+        <neutronic p="-17.587" r="4.72133" t="82.6246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5789" x="2.41359177152" y="-1.36177109375" z="0.38209957203">
+        <neutronic p="-17.0371" r="4.72196" t="82.6028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5790" x="2.41359177152" y="-1.3235890625" z="0.38209957203">
+        <neutronic p="-16.4842" r="4.72257" t="82.5815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5791" x="2.41359177152" y="-1.28540703125" z="0.38209957203">
+        <neutronic p="-15.9283" r="4.72315" t="82.5608"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5792" x="2.41359177152" y="-1.247225" z="0.38209957203">
+        <neutronic p="-15.3697" r="4.72371" t="82.5407"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5793" x="2.41359177152" y="-1.20904296875" z="0.38209957203">
+        <neutronic p="-14.8083" r="4.72424" t="82.5211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5794" x="2.41359177152" y="-1.1708609375" z="0.38209957203">
+        <neutronic p="-14.2444" r="4.72474" t="82.5023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5795" x="2.41359177152" y="-1.13267890625" z="0.38209957203">
+        <neutronic p="-13.6778" r="4.72521" t="82.484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5796" x="2.41359177152" y="-1.094496875" z="0.38209957203">
+        <neutronic p="-13.1089" r="4.72566" t="82.4664"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5797" x="2.41359177152" y="-1.05631484375" z="0.38209957203">
+        <neutronic p="-12.5376" r="4.72608" t="82.4495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5798" x="2.41359177152" y="-1.0181328125" z="0.38209957203">
+        <neutronic p="-11.9642" r="4.72647" t="82.4333"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5799" x="2.41359177152" y="-0.97995078125" z="0.38209957203">
+        <neutronic p="-11.3886" r="4.72684" t="82.4177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5800" x="2.41359177152" y="-0.94176875" z="0.38209957203">
+        <neutronic p="-10.811" r="4.72717" t="82.4029"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5801" x="2.41359177152" y="-0.90358671875" z="0.38209957203">
+        <neutronic p="-10.2315" r="4.72748" t="82.3888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5802" x="2.41359177152" y="-0.8654046875" z="0.38209957203">
+        <neutronic p="-9.65022" r="4.72776" t="82.3754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5803" x="2.41359177152" y="-0.82722265625" z="0.38209957203">
+        <neutronic p="-9.0673" r="4.72801" t="82.3628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5804" x="2.41359177152" y="-0.789040625" z="0.38209957203">
+        <neutronic p="-8.48284" r="4.72824" t="82.3509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5805" x="2.41359177152" y="-0.75085859375" z="0.38209957203">
+        <neutronic p="-7.89697" r="4.72843" t="82.3397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5806" x="2.41359177152" y="-0.7126765625" z="0.38209957203">
+        <neutronic p="-7.30981" r="4.7286" t="82.3294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5807" x="2.41359177152" y="-0.67449453125" z="0.38209957203">
+        <neutronic p="-6.72147" r="4.72874" t="82.3198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5808" x="2.41359177152" y="-0.6363125" z="0.38209957203">
+        <neutronic p="-6.1321" r="4.72885" t="82.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5809" x="2.41359177152" y="-0.59813046875" z="0.38209957203">
+        <neutronic p="-5.54181" r="4.72893" t="82.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5810" x="2.41359177152" y="-0.5599484375" z="0.38209957203">
+        <neutronic p="-4.95073" r="4.72898" t="82.2958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5811" x="2.41359177152" y="-0.52176640625" z="0.38209957203">
+        <neutronic p="-4.359" r="4.72901" t="82.2894"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5812" x="2.41359177152" y="-0.483584375" z="0.38209957203">
+        <neutronic p="-3.76674" r="4.729" t="82.2838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5813" x="2.41359177152" y="-0.44540234375" z="0.38209957203">
+        <neutronic p="-3.17409" r="4.72897" t="82.279"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5814" x="2.41359177152" y="-0.4072203125" z="0.38209957203">
+        <neutronic p="-2.58117" r="4.72891" t="82.275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5815" x="2.41359177152" y="-0.36903828125" z="0.38209957203">
+        <neutronic p="-1.98812" r="4.72882" t="82.2719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5816" x="2.41359177152" y="-0.33085625" z="0.38209957203">
+        <neutronic p="-1.39507" r="4.7287" t="82.2695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5817" x="2.41359177152" y="-0.29267421875" z="0.38209957203">
+        <neutronic p="-0.802147" r="4.72855" t="82.268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5818" x="2.41359177152" y="-0.2544921875" z="0.38209957203">
+        <neutronic p="-0.209486" r="4.72838" t="82.2673"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5838" x="2.42878595706" y="-1.9345015625" z="0.269117255682">
+        <neutronic p="-24.8176" r="4.70977" t="85.4498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5839" x="2.42878595706" y="-1.89631953125" z="0.269117255682">
+        <neutronic p="-24.3182" r="4.71076" t="85.4317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5840" x="2.42878595706" y="-1.8581375" z="0.269117255682">
+        <neutronic p="-23.815" r="4.71172" t="85.4138"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5841" x="2.42878595706" y="-1.81995546875" z="0.269117255682">
+        <neutronic p="-23.3081" r="4.71265" t="85.3962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5842" x="2.42878595706" y="-1.7817734375" z="0.269117255682">
+        <neutronic p="-22.7975" r="4.71356" t="85.3788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5843" x="2.42878595706" y="-1.74359140625" z="0.269117255682">
+        <neutronic p="-22.2832" r="4.71445" t="85.3616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5844" x="2.42878595706" y="-1.705409375" z="0.269117255682">
+        <neutronic p="-21.7653" r="4.71532" t="85.3447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5845" x="2.42878595706" y="-1.66722734375" z="0.269117255682">
+        <neutronic p="-21.2439" r="4.71616" t="85.328"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5846" x="2.42878595706" y="-1.6290453125" z="0.269117255682">
+        <neutronic p="-20.719" r="4.71697" t="85.3117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5847" x="2.42878595706" y="-1.59086328125" z="0.269117255682">
+        <neutronic p="-20.1906" r="4.71776" t="85.2956"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5848" x="2.42878595706" y="-1.55268125" z="0.269117255682">
+        <neutronic p="-19.6589" r="4.71852" t="85.2798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5849" x="2.42878595706" y="-1.51449921875" z="0.269117255682">
+        <neutronic p="-19.1239" r="4.71926" t="85.2643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5850" x="2.42878595706" y="-1.4763171875" z="0.269117255682">
+        <neutronic p="-18.5856" r="4.71998" t="85.2492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5851" x="2.42878595706" y="-1.43813515625" z="0.269117255682">
+        <neutronic p="-18.0442" r="4.72066" t="85.2344"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5852" x="2.42878595706" y="-1.399953125" z="0.269117255682">
+        <neutronic p="-17.4997" r="4.72133" t="85.2199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5853" x="2.42878595706" y="-1.36177109375" z="0.269117255682">
+        <neutronic p="-16.9521" r="4.72196" t="85.2058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5854" x="2.42878595706" y="-1.3235890625" z="0.269117255682">
+        <neutronic p="-16.4016" r="4.72257" t="85.192"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5855" x="2.42878595706" y="-1.28540703125" z="0.269117255682">
+        <neutronic p="-15.8483" r="4.72315" t="85.1786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5856" x="2.42878595706" y="-1.247225" z="0.269117255682">
+        <neutronic p="-15.2922" r="4.72371" t="85.1657"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5857" x="2.42878595706" y="-1.20904296875" z="0.269117255682">
+        <neutronic p="-14.7334" r="4.72424" t="85.1531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5858" x="2.42878595706" y="-1.1708609375" z="0.269117255682">
+        <neutronic p="-14.172" r="4.72474" t="85.1409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5859" x="2.42878595706" y="-1.13267890625" z="0.269117255682">
+        <neutronic p="-13.6082" r="4.72521" t="85.1291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5860" x="2.42878595706" y="-1.094496875" z="0.269117255682">
+        <neutronic p="-13.0419" r="4.72566" t="85.1177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5861" x="2.42878595706" y="-1.05631484375" z="0.269117255682">
+        <neutronic p="-12.4734" r="4.72608" t="85.1068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5862" x="2.42878595706" y="-1.0181328125" z="0.269117255682">
+        <neutronic p="-11.9027" r="4.72647" t="85.0963"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5863" x="2.42878595706" y="-0.97995078125" z="0.269117255682">
+        <neutronic p="-11.3299" r="4.72684" t="85.0863"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5864" x="2.42878595706" y="-0.94176875" z="0.269117255682">
+        <neutronic p="-10.7551" r="4.72717" t="85.0767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5865" x="2.42878595706" y="-0.90358671875" z="0.269117255682">
+        <neutronic p="-10.1785" r="4.72748" t="85.0676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5866" x="2.42878595706" y="-0.8654046875" z="0.269117255682">
+        <neutronic p="-9.6001" r="4.72776" t="85.0589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5867" x="2.42878595706" y="-0.82722265625" z="0.269117255682">
+        <neutronic p="-9.02011" r="4.72801" t="85.0508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5868" x="2.42878595706" y="-0.789040625" z="0.269117255682">
+        <neutronic p="-8.4386" r="4.72824" t="85.0431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5869" x="2.42878595706" y="-0.75085859375" z="0.269117255682">
+        <neutronic p="-7.85571" r="4.72843" t="85.0359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5870" x="2.42878595706" y="-0.7126765625" z="0.269117255682">
+        <neutronic p="-7.27154" r="4.7286" t="85.0292"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5871" x="2.42878595706" y="-0.67449453125" z="0.269117255682">
+        <neutronic p="-6.68623" r="4.72874" t="85.023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5872" x="2.42878595706" y="-0.6363125" z="0.269117255682">
+        <neutronic p="-6.0999" r="4.72885" t="85.0173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5873" x="2.42878595706" y="-0.59813046875" z="0.269117255682">
+        <neutronic p="-5.51266" r="4.72893" t="85.0121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5874" x="2.42878595706" y="-0.5599484375" z="0.269117255682">
+        <neutronic p="-4.92467" r="4.72898" t="85.0075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5875" x="2.42878595706" y="-0.52176640625" z="0.269117255682">
+        <neutronic p="-4.33602" r="4.72901" t="85.0034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5876" x="2.42878595706" y="-0.483584375" z="0.269117255682">
+        <neutronic p="-3.74687" r="4.729" t="84.9997"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5877" x="2.42878595706" y="-0.44540234375" z="0.269117255682">
+        <neutronic p="-3.15733" r="4.72897" t="84.9967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5878" x="2.42878595706" y="-0.4072203125" z="0.269117255682">
+        <neutronic p="-2.56753" r="4.72891" t="84.9941"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5879" x="2.42878595706" y="-0.36903828125" z="0.269117255682">
+        <neutronic p="-1.97761" r="4.72882" t="84.9921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5880" x="2.42878595706" y="-0.33085625" z="0.269117255682">
+        <neutronic p="-1.38769" r="4.7287" t="84.9906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5881" x="2.42878595706" y="-0.29267421875" z="0.269117255682">
+        <neutronic p="-0.797902" r="4.72855" t="84.9896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5882" x="2.42878595706" y="-0.2544921875" z="0.269117255682">
+        <neutronic p="-0.208378" r="4.72838" t="84.9891"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5902" x="2.43869427234" y="-1.9345015625" z="0.155549247996">
+        <neutronic p="-24.7515" r="4.70977" t="87.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5903" x="2.43869427234" y="-1.89631953125" z="0.155549247996">
+        <neutronic p="-24.2531" r="4.71076" t="87.9128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5904" x="2.43869427234" y="-1.8581375" z="0.155549247996">
+        <neutronic p="-23.7509" r="4.71172" t="87.9046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5905" x="2.43869427234" y="-1.81995546875" z="0.155549247996">
+        <neutronic p="-23.245" r="4.71265" t="87.8966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5906" x="2.43869427234" y="-1.7817734375" z="0.155549247996">
+        <neutronic p="-22.7355" r="4.71356" t="87.8886"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5907" x="2.43869427234" y="-1.74359140625" z="0.155549247996">
+        <neutronic p="-22.2223" r="4.71445" t="87.8808"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5908" x="2.43869427234" y="-1.705409375" z="0.155549247996">
+        <neutronic p="-21.7056" r="4.71532" t="87.8731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5909" x="2.43869427234" y="-1.66722734375" z="0.155549247996">
+        <neutronic p="-21.1853" r="4.71616" t="87.8655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5910" x="2.43869427234" y="-1.6290453125" z="0.155549247996">
+        <neutronic p="-20.6616" r="4.71697" t="87.858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5911" x="2.43869427234" y="-1.59086328125" z="0.155549247996">
+        <neutronic p="-20.1344" r="4.71776" t="87.8507"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5912" x="2.43869427234" y="-1.55268125" z="0.155549247996">
+        <neutronic p="-19.604" r="4.71852" t="87.8435"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5913" x="2.43869427234" y="-1.51449921875" z="0.155549247996">
+        <neutronic p="-19.0702" r="4.71926" t="87.8364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5914" x="2.43869427234" y="-1.4763171875" z="0.155549247996">
+        <neutronic p="-18.5332" r="4.71998" t="87.8295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5915" x="2.43869427234" y="-1.43813515625" z="0.155549247996">
+        <neutronic p="-17.9931" r="4.72066" t="87.8228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5916" x="2.43869427234" y="-1.399953125" z="0.155549247996">
+        <neutronic p="-17.4499" r="4.72133" t="87.8162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5917" x="2.43869427234" y="-1.36177109375" z="0.155549247996">
+        <neutronic p="-16.9037" r="4.72196" t="87.8097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5918" x="2.43869427234" y="-1.3235890625" z="0.155549247996">
+        <neutronic p="-16.3546" r="4.72257" t="87.8034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5919" x="2.43869427234" y="-1.28540703125" z="0.155549247996">
+        <neutronic p="-15.8027" r="4.72315" t="87.7973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5920" x="2.43869427234" y="-1.247225" z="0.155549247996">
+        <neutronic p="-15.2481" r="4.72371" t="87.7914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5921" x="2.43869427234" y="-1.20904296875" z="0.155549247996">
+        <neutronic p="-14.6907" r="4.72424" t="87.7857"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5922" x="2.43869427234" y="-1.1708609375" z="0.155549247996">
+        <neutronic p="-14.1309" r="4.72474" t="87.7801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5923" x="2.43869427234" y="-1.13267890625" z="0.155549247996">
+        <neutronic p="-13.5685" r="4.72521" t="87.7747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5924" x="2.43869427234" y="-1.094496875" z="0.155549247996">
+        <neutronic p="-13.0038" r="4.72566" t="87.7696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5925" x="2.43869427234" y="-1.05631484375" z="0.155549247996">
+        <neutronic p="-12.4368" r="4.72608" t="87.7646"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5926" x="2.43869427234" y="-1.0181328125" z="0.155549247996">
+        <neutronic p="-11.8677" r="4.72647" t="87.7598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5927" x="2.43869427234" y="-0.97995078125" z="0.155549247996">
+        <neutronic p="-11.2965" r="4.72684" t="87.7552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5928" x="2.43869427234" y="-0.94176875" z="0.155549247996">
+        <neutronic p="-10.7233" r="4.72717" t="87.7508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5929" x="2.43869427234" y="-0.90358671875" z="0.155549247996">
+        <neutronic p="-10.1483" r="4.72748" t="87.7467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5930" x="2.43869427234" y="-0.8654046875" z="0.155549247996">
+        <neutronic p="-9.57159" r="4.72776" t="87.7427"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5931" x="2.43869427234" y="-0.82722265625" z="0.155549247996">
+        <neutronic p="-8.99326" r="4.72801" t="87.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5932" x="2.43869427234" y="-0.789040625" z="0.155549247996">
+        <neutronic p="-8.41343" r="4.72824" t="87.7355"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5933" x="2.43869427234" y="-0.75085859375" z="0.155549247996">
+        <neutronic p="-7.83223" r="4.72843" t="87.7322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5934" x="2.43869427234" y="-0.7126765625" z="0.155549247996">
+        <neutronic p="-7.24977" r="4.7286" t="87.7292"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5935" x="2.43869427234" y="-0.67449453125" z="0.155549247996">
+        <neutronic p="-6.66618" r="4.72874" t="87.7264"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5936" x="2.43869427234" y="-0.6363125" z="0.155549247996">
+        <neutronic p="-6.08157" r="4.72885" t="87.7238"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5937" x="2.43869427234" y="-0.59813046875" z="0.155549247996">
+        <neutronic p="-5.49608" r="4.72893" t="87.7214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5938" x="2.43869427234" y="-0.5599484375" z="0.155549247996">
+        <neutronic p="-4.90983" r="4.72898" t="87.7193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5939" x="2.43869427234" y="-0.52176640625" z="0.155549247996">
+        <neutronic p="-4.32295" r="4.72901" t="87.7174"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5940" x="2.43869427234" y="-0.483584375" z="0.155549247996">
+        <neutronic p="-3.73556" r="4.729" t="87.7158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5941" x="2.43869427234" y="-0.44540234375" z="0.155549247996">
+        <neutronic p="-3.14779" r="4.72897" t="87.7144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5942" x="2.43869427234" y="-0.4072203125" z="0.155549247996">
+        <neutronic p="-2.55977" r="4.72891" t="87.7132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5943" x="2.43869427234" y="-0.36903828125" z="0.155549247996">
+        <neutronic p="-1.97163" r="4.72882" t="87.7123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5944" x="2.43869427234" y="-0.33085625" z="0.155549247996">
+        <neutronic p="-1.38349" r="4.7287" t="87.7116"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5945" x="2.43869427234" y="-0.29267421875" z="0.155549247996">
+        <neutronic p="-0.795488" r="4.72855" t="87.7111"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5946" x="2.43869427234" y="-0.2544921875" z="0.155549247996">
+        <neutronic p="-0.207747" r="4.72838" t="87.7109"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5966" x="2.44329515349" y="-1.9345015625" z="0.0416427118618">
+        <neutronic p="-24.7348" r="4.70977" t="90.393"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5967" x="2.44329515349" y="-1.89631953125" z="0.0416427118618">
+        <neutronic p="-24.2366" r="4.71076" t="90.3946"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5968" x="2.44329515349" y="-1.8581375" z="0.0416427118618">
+        <neutronic p="-23.7347" r="4.71172" t="90.3961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5969" x="2.44329515349" y="-1.81995546875" z="0.0416427118618">
+        <neutronic p="-23.229" r="4.71265" t="90.3977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5970" x="2.44329515349" y="-1.7817734375" z="0.0416427118618">
+        <neutronic p="-22.7198" r="4.71356" t="90.3992"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5971" x="2.44329515349" y="-1.74359140625" z="0.0416427118618">
+        <neutronic p="-22.2069" r="4.71445" t="90.4006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5972" x="2.44329515349" y="-1.705409375" z="0.0416427118618">
+        <neutronic p="-21.6904" r="4.71532" t="90.4021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5973" x="2.44329515349" y="-1.66722734375" z="0.0416427118618">
+        <neutronic p="-21.1705" r="4.71616" t="90.4035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5974" x="2.44329515349" y="-1.6290453125" z="0.0416427118618">
+        <neutronic p="-20.647" r="4.71697" t="90.4049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5975" x="2.44329515349" y="-1.59086328125" z="0.0416427118618">
+        <neutronic p="-20.1202" r="4.71776" t="90.4063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5976" x="2.44329515349" y="-1.55268125" z="0.0416427118618">
+        <neutronic p="-19.59" r="4.71852" t="90.4077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5977" x="2.44329515349" y="-1.51449921875" z="0.0416427118618">
+        <neutronic p="-19.0566" r="4.71926" t="90.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5978" x="2.44329515349" y="-1.4763171875" z="0.0416427118618">
+        <neutronic p="-18.5199" r="4.71998" t="90.4103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5979" x="2.44329515349" y="-1.43813515625" z="0.0416427118618">
+        <neutronic p="-17.9802" r="4.72066" t="90.4116"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5980" x="2.44329515349" y="-1.399953125" z="0.0416427118618">
+        <neutronic p="-17.4373" r="4.72133" t="90.4128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5981" x="2.44329515349" y="-1.36177109375" z="0.0416427118618">
+        <neutronic p="-16.8915" r="4.72196" t="90.4141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5982" x="2.44329515349" y="-1.3235890625" z="0.0416427118618">
+        <neutronic p="-16.3427" r="4.72257" t="90.4152"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5983" x="2.44329515349" y="-1.28540703125" z="0.0416427118618">
+        <neutronic p="-15.7912" r="4.72315" t="90.4164"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5984" x="2.44329515349" y="-1.247225" z="0.0416427118618">
+        <neutronic p="-15.2369" r="4.72371" t="90.4175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5985" x="2.44329515349" y="-1.20904296875" z="0.0416427118618">
+        <neutronic p="-14.6799" r="4.72424" t="90.4186"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5986" x="2.44329515349" y="-1.1708609375" z="0.0416427118618">
+        <neutronic p="-14.1204" r="4.72474" t="90.4197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5987" x="2.44329515349" y="-1.13267890625" z="0.0416427118618">
+        <neutronic p="-13.5584" r="4.72521" t="90.4207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5988" x="2.44329515349" y="-1.094496875" z="0.0416427118618">
+        <neutronic p="-12.9941" r="4.72566" t="90.4216"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5989" x="2.44329515349" y="-1.05631484375" z="0.0416427118618">
+        <neutronic p="-12.4275" r="4.72608" t="90.4226"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5990" x="2.44329515349" y="-1.0181328125" z="0.0416427118618">
+        <neutronic p="-11.8588" r="4.72647" t="90.4235"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5991" x="2.44329515349" y="-0.97995078125" z="0.0416427118618">
+        <neutronic p="-11.288" r="4.72684" t="90.4244"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5992" x="2.44329515349" y="-0.94176875" z="0.0416427118618">
+        <neutronic p="-10.7152" r="4.72717" t="90.4252"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5993" x="2.44329515349" y="-0.90358671875" z="0.0416427118618">
+        <neutronic p="-10.1407" r="4.72748" t="90.426"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5994" x="2.44329515349" y="-0.8654046875" z="0.0416427118618">
+        <neutronic p="-9.56436" r="4.72776" t="90.4267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5995" x="2.44329515349" y="-0.82722265625" z="0.0416427118618">
+        <neutronic p="-8.98645" r="4.72801" t="90.4274"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5996" x="2.44329515349" y="-0.789040625" z="0.0416427118618">
+        <neutronic p="-8.40705" r="4.72824" t="90.4281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5997" x="2.44329515349" y="-0.75085859375" z="0.0416427118618">
+        <neutronic p="-7.82627" r="4.72843" t="90.4287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5998" x="2.44329515349" y="-0.7126765625" z="0.0416427118618">
+        <neutronic p="-7.24425" r="4.7286" t="90.4293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="5999" x="2.44329515349" y="-0.67449453125" z="0.0416427118618">
+        <neutronic p="-6.66109" r="4.72874" t="90.4298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6000" x="2.44329515349" y="-0.6363125" z="0.0416427118618">
+        <neutronic p="-6.07693" r="4.72885" t="90.4303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6001" x="2.44329515349" y="-0.59813046875" z="0.0416427118618">
+        <neutronic p="-5.49188" r="4.72893" t="90.4307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6002" x="2.44329515349" y="-0.5599484375" z="0.0416427118618">
+        <neutronic p="-4.90608" r="4.72898" t="90.4311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6003" x="2.44329515349" y="-0.52176640625" z="0.0416427118618">
+        <neutronic p="-4.31964" r="4.72901" t="90.4315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6004" x="2.44329515349" y="-0.483584375" z="0.0416427118618">
+        <neutronic p="-3.73269" r="4.729" t="90.4318"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6005" x="2.44329515349" y="-0.44540234375" z="0.0416427118618">
+        <neutronic p="-3.14537" r="4.72897" t="90.4321"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6006" x="2.44329515349" y="-0.4072203125" z="0.0416427118618">
+        <neutronic p="-2.5578" r="4.72891" t="90.4323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6007" x="2.44329515349" y="-0.36903828125" z="0.0416427118618">
+        <neutronic p="-1.97011" r="4.72882" t="90.4325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6008" x="2.44329515349" y="-0.33085625" z="0.0416427118618">
+        <neutronic p="-1.38243" r="4.7287" t="90.4326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6009" x="2.44329515349" y="-0.29267421875" z="0.0416427118618">
+        <neutronic p="-0.794876" r="4.72855" t="90.4327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6010" x="2.44329515349" y="-0.2544921875" z="0.0416427118618">
+        <neutronic p="-0.207587" r="4.72838" t="90.4327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6030" x="2.4425785874" y="-1.9345015625" z="-0.0723544530789">
+        <neutronic p="-24.7672" r="4.70977" t="92.8649"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6031" x="2.4425785874" y="-1.89631953125" z="-0.0723544530789">
+        <neutronic p="-24.2685" r="4.71076" t="92.8763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6032" x="2.4425785874" y="-1.8581375" z="-0.0723544530789">
+        <neutronic p="-23.7661" r="4.71172" t="92.8875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6033" x="2.4425785874" y="-1.81995546875" z="-0.0723544530789">
+        <neutronic p="-23.26" r="4.71265" t="92.8986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6034" x="2.4425785874" y="-1.7817734375" z="-0.0723544530789">
+        <neutronic p="-22.7502" r="4.71356" t="92.9096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6035" x="2.4425785874" y="-1.74359140625" z="-0.0723544530789">
+        <neutronic p="-22.2367" r="4.71445" t="92.9204"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6036" x="2.4425785874" y="-1.705409375" z="-0.0723544530789">
+        <neutronic p="-21.7197" r="4.71532" t="92.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6037" x="2.4425785874" y="-1.66722734375" z="-0.0723544530789">
+        <neutronic p="-21.1992" r="4.71616" t="92.9415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6038" x="2.4425785874" y="-1.6290453125" z="-0.0723544530789">
+        <neutronic p="-20.6752" r="4.71697" t="92.9518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6039" x="2.4425785874" y="-1.59086328125" z="-0.0723544530789">
+        <neutronic p="-20.1477" r="4.71776" t="92.9619"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6040" x="2.4425785874" y="-1.55268125" z="-0.0723544530789">
+        <neutronic p="-19.617" r="4.71852" t="92.9718"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6041" x="2.4425785874" y="-1.51449921875" z="-0.0723544530789">
+        <neutronic p="-19.0829" r="4.71926" t="92.9815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6042" x="2.4425785874" y="-1.4763171875" z="-0.0723544530789">
+        <neutronic p="-18.5456" r="4.71998" t="92.991"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6043" x="2.4425785874" y="-1.43813515625" z="-0.0723544530789">
+        <neutronic p="-18.0052" r="4.72066" t="93.0004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6044" x="2.4425785874" y="-1.399953125" z="-0.0723544530789">
+        <neutronic p="-17.4617" r="4.72133" t="93.0095"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6045" x="2.4425785874" y="-1.36177109375" z="-0.0723544530789">
+        <neutronic p="-16.9152" r="4.72196" t="93.0183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6046" x="2.4425785874" y="-1.3235890625" z="-0.0723544530789">
+        <neutronic p="-16.3658" r="4.72257" t="93.027"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6047" x="2.4425785874" y="-1.28540703125" z="-0.0723544530789">
+        <neutronic p="-15.8135" r="4.72315" t="93.0354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6048" x="2.4425785874" y="-1.247225" z="-0.0723544530789">
+        <neutronic p="-15.2585" r="4.72371" t="93.0436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6049" x="2.4425785874" y="-1.20904296875" z="-0.0723544530789">
+        <neutronic p="-14.7008" r="4.72424" t="93.0515"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6050" x="2.4425785874" y="-1.1708609375" z="-0.0723544530789">
+        <neutronic p="-14.1406" r="4.72474" t="93.0591"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6051" x="2.4425785874" y="-1.13267890625" z="-0.0723544530789">
+        <neutronic p="-13.5779" r="4.72521" t="93.0666"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6052" x="2.4425785874" y="-1.094496875" z="-0.0723544530789">
+        <neutronic p="-13.0128" r="4.72566" t="93.0737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6053" x="2.4425785874" y="-1.05631484375" z="-0.0723544530789">
+        <neutronic p="-12.4455" r="4.72608" t="93.0806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6054" x="2.4425785874" y="-1.0181328125" z="-0.0723544530789">
+        <neutronic p="-11.8759" r="4.72647" t="93.0872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6055" x="2.4425785874" y="-0.97995078125" z="-0.0723544530789">
+        <neutronic p="-11.3044" r="4.72684" t="93.0935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6056" x="2.4425785874" y="-0.94176875" z="-0.0723544530789">
+        <neutronic p="-10.7308" r="4.72717" t="93.0995"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6057" x="2.4425785874" y="-0.90358671875" z="-0.0723544530789">
+        <neutronic p="-10.1554" r="4.72748" t="93.1052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6058" x="2.4425785874" y="-0.8654046875" z="-0.0723544530789">
+        <neutronic p="-9.57834" r="4.72776" t="93.1107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6059" x="2.4425785874" y="-0.82722265625" z="-0.0723544530789">
+        <neutronic p="-8.99961" r="4.72801" t="93.1158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6060" x="2.4425785874" y="-0.789040625" z="-0.0723544530789">
+        <neutronic p="-8.41939" r="4.72824" t="93.1206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6061" x="2.4425785874" y="-0.75085859375" z="-0.0723544530789">
+        <neutronic p="-7.83778" r="4.72843" t="93.1251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6062" x="2.4425785874" y="-0.7126765625" z="-0.0723544530789">
+        <neutronic p="-7.25492" r="4.7286" t="93.1293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6063" x="2.4425785874" y="-0.67449453125" z="-0.0723544530789">
+        <neutronic p="-6.67092" r="4.72874" t="93.1332"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6064" x="2.4425785874" y="-0.6363125" z="-0.0723544530789">
+        <neutronic p="-6.08591" r="4.72885" t="93.1368"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6065" x="2.4425785874" y="-0.59813046875" z="-0.0723544530789">
+        <neutronic p="-5.50001" r="4.72893" t="93.1401"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6066" x="2.4425785874" y="-0.5599484375" z="-0.0723544530789">
+        <neutronic p="-4.91334" r="4.72898" t="93.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6067" x="2.4425785874" y="-0.52176640625" z="-0.0723544530789">
+        <neutronic p="-4.32604" r="4.72901" t="93.1456"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6068" x="2.4425785874" y="-0.483584375" z="-0.0723544530789">
+        <neutronic p="-3.73824" r="4.729" t="93.1479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6069" x="2.4425785874" y="-0.44540234375" z="-0.0723544530789">
+        <neutronic p="-3.15005" r="4.72897" t="93.1498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6070" x="2.4425785874" y="-0.4072203125" z="-0.0723544530789">
+        <neutronic p="-2.56161" r="4.72891" t="93.1514"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6071" x="2.4425785874" y="-0.36903828125" z="-0.0723544530789">
+        <neutronic p="-1.97304" r="4.72882" t="93.1527"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6072" x="2.4425785874" y="-0.33085625" z="-0.0723544530789">
+        <neutronic p="-1.38448" r="4.7287" t="93.1536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6073" x="2.4425785874" y="-0.29267421875" z="-0.0723544530789">
+        <neutronic p="-0.796059" r="4.72855" t="93.1542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6074" x="2.4425785874" y="-0.2544921875" z="-0.0723544530789">
+        <neutronic p="-0.207896" r="4.72838" t="93.1545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6094" x="2.43654613357" y="-1.9345015625" z="-0.186194149944">
+        <neutronic p="-24.8491" r="4.70977" t="95.3356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6095" x="2.43654613357" y="-1.89631953125" z="-0.186194149944">
+        <neutronic p="-24.3492" r="4.71076" t="95.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6096" x="2.43654613357" y="-1.8581375" z="-0.186194149944">
+        <neutronic p="-23.8455" r="4.71172" t="95.3778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6097" x="2.43654613357" y="-1.81995546875" z="-0.186194149944">
+        <neutronic p="-23.3381" r="4.71265" t="95.3985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6098" x="2.43654613357" y="-1.7817734375" z="-0.186194149944">
+        <neutronic p="-22.8269" r="4.71356" t="95.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6099" x="2.43654613357" y="-1.74359140625" z="-0.186194149944">
+        <neutronic p="-22.3121" r="4.71445" t="95.4391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6100" x="2.43654613357" y="-1.705409375" z="-0.186194149944">
+        <neutronic p="-21.7937" r="4.71532" t="95.459"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6101" x="2.43654613357" y="-1.66722734375" z="-0.186194149944">
+        <neutronic p="-21.2718" r="4.71616" t="95.4785"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6102" x="2.43654613357" y="-1.6290453125" z="-0.186194149944">
+        <neutronic p="-20.7463" r="4.71697" t="95.4977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6103" x="2.43654613357" y="-1.59086328125" z="-0.186194149944">
+        <neutronic p="-20.2174" r="4.71776" t="95.5166"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6104" x="2.43654613357" y="-1.55268125" z="-0.186194149944">
+        <neutronic p="-19.6851" r="4.71852" t="95.5351"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6105" x="2.43654613357" y="-1.51449921875" z="-0.186194149944">
+        <neutronic p="-19.1494" r="4.71926" t="95.5533"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6106" x="2.43654613357" y="-1.4763171875" z="-0.186194149944">
+        <neutronic p="-18.6106" r="4.71998" t="95.5711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6107" x="2.43654613357" y="-1.43813515625" z="-0.186194149944">
+        <neutronic p="-18.0685" r="4.72066" t="95.5885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6108" x="2.43654613357" y="-1.399953125" z="-0.186194149944">
+        <neutronic p="-17.5233" r="4.72133" t="95.6054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6109" x="2.43654613357" y="-1.36177109375" z="-0.186194149944">
+        <neutronic p="-16.9751" r="4.72196" t="95.622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6110" x="2.43654613357" y="-1.3235890625" z="-0.186194149944">
+        <neutronic p="-16.424" r="4.72257" t="95.6382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6111" x="2.43654613357" y="-1.28540703125" z="-0.186194149944">
+        <neutronic p="-15.87" r="4.72315" t="95.6539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6112" x="2.43654613357" y="-1.247225" z="-0.186194149944">
+        <neutronic p="-15.3132" r="4.72371" t="95.6691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6113" x="2.43654613357" y="-1.20904296875" z="-0.186194149944">
+        <neutronic p="-14.7537" r="4.72424" t="95.6839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6114" x="2.43654613357" y="-1.1708609375" z="-0.186194149944">
+        <neutronic p="-14.1916" r="4.72474" t="95.6982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6115" x="2.43654613357" y="-1.13267890625" z="-0.186194149944">
+        <neutronic p="-13.627" r="4.72521" t="95.7121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6116" x="2.43654613357" y="-1.094496875" z="-0.186194149944">
+        <neutronic p="-13.0601" r="4.72566" t="95.7254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6117" x="2.43654613357" y="-1.05631484375" z="-0.186194149944">
+        <neutronic p="-12.4908" r="4.72608" t="95.7382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6118" x="2.43654613357" y="-1.0181328125" z="-0.186194149944">
+        <neutronic p="-11.9193" r="4.72647" t="95.7505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6119" x="2.43654613357" y="-0.97995078125" z="-0.186194149944">
+        <neutronic p="-11.3458" r="4.72684" t="95.7623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6120" x="2.43654613357" y="-0.94176875" z="-0.186194149944">
+        <neutronic p="-10.7702" r="4.72717" t="95.7736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6121" x="2.43654613357" y="-0.90358671875" z="-0.186194149944">
+        <neutronic p="-10.1928" r="4.72748" t="95.7843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6122" x="2.43654613357" y="-0.8654046875" z="-0.186194149944">
+        <neutronic p="-9.61368" r="4.72776" t="95.7944"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6123" x="2.43654613357" y="-0.82722265625" z="-0.186194149944">
+        <neutronic p="-9.03289" r="4.72801" t="95.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6124" x="2.43654613357" y="-0.789040625" z="-0.186194149944">
+        <neutronic p="-8.45058" r="4.72824" t="95.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6125" x="2.43654613357" y="-0.75085859375" z="-0.186194149944">
+        <neutronic p="-7.86688" r="4.72843" t="95.8214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6126" x="2.43654613357" y="-0.7126765625" z="-0.186194149944">
+        <neutronic p="-7.2819" r="4.7286" t="95.8293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6127" x="2.43654613357" y="-0.67449453125" z="-0.186194149944">
+        <neutronic p="-6.69577" r="4.72874" t="95.8366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6128" x="2.43654613357" y="-0.6363125" z="-0.186194149944">
+        <neutronic p="-6.10862" r="4.72885" t="95.8432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6129" x="2.43654613357" y="-0.59813046875" z="-0.186194149944">
+        <neutronic p="-5.52056" r="4.72893" t="95.8493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6130" x="2.43654613357" y="-0.5599484375" z="-0.186194149944">
+        <neutronic p="-4.93172" r="4.72898" t="95.8548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6131" x="2.43654613357" y="-0.52176640625" z="-0.186194149944">
+        <neutronic p="-4.34225" r="4.72901" t="95.8596"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6132" x="2.43654613357" y="-0.483584375" z="-0.186194149944">
+        <neutronic p="-3.75225" r="4.729" t="95.8639"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6133" x="2.43654613357" y="-0.44540234375" z="-0.186194149944">
+        <neutronic p="-3.16187" r="4.72897" t="95.8675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6134" x="2.43654613357" y="-0.4072203125" z="-0.186194149944">
+        <neutronic p="-2.57122" r="4.72891" t="95.8705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6135" x="2.43654613357" y="-0.36903828125" z="-0.186194149944">
+        <neutronic p="-1.98045" r="4.72882" t="95.8729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6136" x="2.43654613357" y="-0.33085625" z="-0.186194149944">
+        <neutronic p="-1.38969" r="4.7287" t="95.8746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6137" x="2.43654613357" y="-0.29267421875" z="-0.186194149944">
+        <neutronic p="-0.799052" r="4.72855" t="95.8758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6138" x="2.43654613357" y="-0.2544921875" z="-0.186194149944">
+        <neutronic p="-0.208678" r="4.72838" t="95.8763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6158" x="2.42521092069" y="-1.9345015625" z="-0.299628624556">
+        <neutronic p="-24.9811" r="4.70977" t="97.8042"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6159" x="2.42521092069" y="-1.89631953125" z="-0.299628624556">
+        <neutronic p="-24.4793" r="4.71076" t="97.8354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6160" x="2.42521092069" y="-1.8581375" z="-0.299628624556">
+        <neutronic p="-23.9736" r="4.71172" t="97.8662"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6161" x="2.42521092069" y="-1.81995546875" z="-0.299628624556">
+        <neutronic p="-23.4641" r="4.71265" t="97.8966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6162" x="2.42521092069" y="-1.7817734375" z="-0.299628624556">
+        <neutronic p="-22.9508" r="4.71356" t="97.9266"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6163" x="2.42521092069" y="-1.74359140625" z="-0.299628624556">
+        <neutronic p="-22.4338" r="4.71445" t="97.9561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6164" x="2.42521092069" y="-1.705409375" z="-0.299628624556">
+        <neutronic p="-21.9132" r="4.71532" t="97.9853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6165" x="2.42521092069" y="-1.66722734375" z="-0.299628624556">
+        <neutronic p="-21.3889" r="4.71616" t="98.014"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6166" x="2.42521092069" y="-1.6290453125" z="-0.299628624556">
+        <neutronic p="-20.8611" r="4.71697" t="98.0422"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6167" x="2.42521092069" y="-1.59086328125" z="-0.299628624556">
+        <neutronic p="-20.3297" r="4.71776" t="98.0699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6168" x="2.42521092069" y="-1.55268125" z="-0.299628624556">
+        <neutronic p="-19.795" r="4.71852" t="98.0971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6169" x="2.42521092069" y="-1.51449921875" z="-0.299628624556">
+        <neutronic p="-19.2568" r="4.71926" t="98.1237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6170" x="2.42521092069" y="-1.4763171875" z="-0.299628624556">
+        <neutronic p="-18.7154" r="4.71998" t="98.1498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6171" x="2.42521092069" y="-1.43813515625" z="-0.299628624556">
+        <neutronic p="-18.1707" r="4.72066" t="98.1754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6172" x="2.42521092069" y="-1.399953125" z="-0.299628624556">
+        <neutronic p="-17.6228" r="4.72133" t="98.2003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6173" x="2.42521092069" y="-1.36177109375" z="-0.299628624556">
+        <neutronic p="-17.0719" r="4.72196" t="98.2246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6174" x="2.42521092069" y="-1.3235890625" z="-0.299628624556">
+        <neutronic p="-16.518" r="4.72257" t="98.2483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6175" x="2.42521092069" y="-1.28540703125" z="-0.299628624556">
+        <neutronic p="-15.9611" r="4.72315" t="98.2714"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6176" x="2.42521092069" y="-1.247225" z="-0.299628624556">
+        <neutronic p="-15.4015" r="4.72371" t="98.2938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6177" x="2.42521092069" y="-1.20904296875" z="-0.299628624556">
+        <neutronic p="-14.839" r="4.72424" t="98.3155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6178" x="2.42521092069" y="-1.1708609375" z="-0.299628624556">
+        <neutronic p="-14.274" r="4.72474" t="98.3365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6179" x="2.42521092069" y="-1.13267890625" z="-0.299628624556">
+        <neutronic p="-13.7064" r="4.72521" t="98.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6180" x="2.42521092069" y="-1.094496875" z="-0.299628624556">
+        <neutronic p="-13.1364" r="4.72566" t="98.3764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6181" x="2.42521092069" y="-1.05631484375" z="-0.299628624556">
+        <neutronic p="-12.564" r="4.72608" t="98.3953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6182" x="2.42521092069" y="-1.0181328125" z="-0.299628624556">
+        <neutronic p="-11.9894" r="4.72647" t="98.4133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6183" x="2.42521092069" y="-0.97995078125" z="-0.299628624556">
+        <neutronic p="-11.4126" r="4.72684" t="98.4306"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6184" x="2.42521092069" y="-0.94176875" z="-0.299628624556">
+        <neutronic p="-10.8339" r="4.72717" t="98.4472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6185" x="2.42521092069" y="-0.90358671875" z="-0.299628624556">
+        <neutronic p="-10.2532" r="4.72748" t="98.4629"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6186" x="2.42521092069" y="-0.8654046875" z="-0.299628624556">
+        <neutronic p="-9.67076" r="4.72776" t="98.4778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6187" x="2.42521092069" y="-0.82722265625" z="-0.299628624556">
+        <neutronic p="-9.08665" r="4.72801" t="98.4919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6188" x="2.42521092069" y="-0.789040625" z="-0.299628624556">
+        <neutronic p="-8.50098" r="4.72824" t="98.5051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6189" x="2.42521092069" y="-0.75085859375" z="-0.299628624556">
+        <neutronic p="-7.91389" r="4.72843" t="98.5175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6190" x="2.42521092069" y="-0.7126765625" z="-0.299628624556">
+        <neutronic p="-7.3255" r="4.7286" t="98.529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6191" x="2.42521092069" y="-0.67449453125" z="-0.299628624556">
+        <neutronic p="-6.73592" r="4.72874" t="98.5397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6192" x="2.42521092069" y="-0.6363125" z="-0.299628624556">
+        <neutronic p="-6.1453" r="4.72885" t="98.5495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6193" x="2.42521092069" y="-0.59813046875" z="-0.299628624556">
+        <neutronic p="-5.55376" r="4.72893" t="98.5584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6194" x="2.42521092069" y="-0.5599484375" z="-0.299628624556">
+        <neutronic p="-4.96142" r="4.72898" t="98.5664"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6195" x="2.42521092069" y="-0.52176640625" z="-0.299628624556">
+        <neutronic p="-4.36842" r="4.72901" t="98.5736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6196" x="2.42521092069" y="-0.483584375" z="-0.299628624556">
+        <neutronic p="-3.77489" r="4.729" t="98.5798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6197" x="2.42521092069" y="-0.44540234375" z="-0.299628624556">
+        <neutronic p="-3.18096" r="4.72897" t="98.5851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6198" x="2.42521092069" y="-0.4072203125" z="-0.299628624556">
+        <neutronic p="-2.58676" r="4.72891" t="98.5896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6199" x="2.42521092069" y="-0.36903828125" z="-0.299628624556">
+        <neutronic p="-1.99243" r="4.72882" t="98.5931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6200" x="2.42521092069" y="-0.33085625" z="-0.299628624556">
+        <neutronic p="-1.39809" r="4.7287" t="98.5957"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6201" x="2.42521092069" y="-0.29267421875" z="-0.299628624556">
+        <neutronic p="-0.803887" r="4.72855" t="98.5973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6202" x="2.42521092069" y="-0.2544921875" z="-0.299628624556">
+        <neutronic p="-0.209941" r="4.72838" t="98.5981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6222" x="2.40859761807" y="-1.9345015625" z="-0.412411004639">
+        <neutronic p="-25.1646" r="4.70977" t="100.27"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6223" x="2.40859761807" y="-1.89631953125" z="-0.412411004639">
+        <neutronic p="-24.66" r="4.71076" t="100.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6224" x="2.40859761807" y="-1.8581375" z="-0.412411004639">
+        <neutronic p="-24.1515" r="4.71172" t="100.352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6225" x="2.40859761807" y="-1.81995546875" z="-0.412411004639">
+        <neutronic p="-23.6392" r="4.71265" t="100.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6226" x="2.40859761807" y="-1.7817734375" z="-0.412411004639">
+        <neutronic p="-23.1229" r="4.71356" t="100.431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6227" x="2.40859761807" y="-1.74359140625" z="-0.412411004639">
+        <neutronic p="-22.6029" r="4.71445" t="100.471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6228" x="2.40859761807" y="-1.705409375" z="-0.412411004639">
+        <neutronic p="-22.0792" r="4.71532" t="100.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6229" x="2.40859761807" y="-1.66722734375" z="-0.412411004639">
+        <neutronic p="-21.5517" r="4.71616" t="100.547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6230" x="2.40859761807" y="-1.6290453125" z="-0.412411004639">
+        <neutronic p="-21.0206" r="4.71697" t="100.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6231" x="2.40859761807" y="-1.59086328125" z="-0.412411004639">
+        <neutronic p="-20.486" r="4.71776" t="100.621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6232" x="2.40859761807" y="-1.55268125" z="-0.412411004639">
+        <neutronic p="-19.9478" r="4.71852" t="100.657"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6233" x="2.40859761807" y="-1.51449921875" z="-0.412411004639">
+        <neutronic p="-19.4061" r="4.71926" t="100.692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6234" x="2.40859761807" y="-1.4763171875" z="-0.412411004639">
+        <neutronic p="-18.8611" r="4.71998" t="100.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6235" x="2.40859761807" y="-1.43813515625" z="-0.412411004639">
+        <neutronic p="-18.3128" r="4.72066" t="100.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6236" x="2.40859761807" y="-1.399953125" z="-0.412411004639">
+        <neutronic p="-17.7612" r="4.72133" t="100.793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6237" x="2.40859761807" y="-1.36177109375" z="-0.412411004639">
+        <neutronic p="-17.2065" r="4.72196" t="100.826"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6238" x="2.40859761807" y="-1.3235890625" z="-0.412411004639">
+        <neutronic p="-16.6487" r="4.72257" t="100.857"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6239" x="2.40859761807" y="-1.28540703125" z="-0.412411004639">
+        <neutronic p="-16.088" r="4.72315" t="100.887"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6240" x="2.40859761807" y="-1.247225" z="-0.412411004639">
+        <neutronic p="-15.5243" r="4.72371" t="100.917"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6241" x="2.40859761807" y="-1.20904296875" z="-0.412411004639">
+        <neutronic p="-14.9578" r="4.72424" t="100.946"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6242" x="2.40859761807" y="-1.1708609375" z="-0.412411004639">
+        <neutronic p="-14.3886" r="4.72474" t="100.974"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6243" x="2.40859761807" y="-1.13267890625" z="-0.412411004639">
+        <neutronic p="-13.8169" r="4.72521" t="101.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6244" x="2.40859761807" y="-1.094496875" z="-0.412411004639">
+        <neutronic p="-13.2426" r="4.72566" t="101.026"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6245" x="2.40859761807" y="-1.05631484375" z="-0.412411004639">
+        <neutronic p="-12.6659" r="4.72608" t="101.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6246" x="2.40859761807" y="-1.0181328125" z="-0.412411004639">
+        <neutronic p="-12.0869" r="4.72647" t="101.075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6247" x="2.40859761807" y="-0.97995078125" z="-0.412411004639">
+        <neutronic p="-11.5057" r="4.72684" t="101.098"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6248" x="2.40859761807" y="-0.94176875" z="-0.412411004639">
+        <neutronic p="-10.9225" r="4.72717" t="101.12"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6249" x="2.40859761807" y="-0.90358671875" z="-0.412411004639">
+        <neutronic p="-10.3373" r="4.72748" t="101.141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6250" x="2.40859761807" y="-0.8654046875" z="-0.412411004639">
+        <neutronic p="-9.75023" r="4.72776" t="101.161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6251" x="2.40859761807" y="-0.82722265625" z="-0.412411004639">
+        <neutronic p="-9.16149" r="4.72801" t="101.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6252" x="2.40859761807" y="-0.789040625" z="-0.412411004639">
+        <neutronic p="-8.57115" r="4.72824" t="101.197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6253" x="2.40859761807" y="-0.75085859375" z="-0.412411004639">
+        <neutronic p="-7.97934" r="4.72843" t="101.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6254" x="2.40859761807" y="-0.7126765625" z="-0.412411004639">
+        <neutronic p="-7.38619" r="4.7286" t="101.228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6255" x="2.40859761807" y="-0.67449453125" z="-0.412411004639">
+        <neutronic p="-6.79183" r="4.72874" t="101.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6256" x="2.40859761807" y="-0.6363125" z="-0.412411004639">
+        <neutronic p="-6.19639" r="4.72885" t="101.256"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6257" x="2.40859761807" y="-0.59813046875" z="-0.412411004639">
+        <neutronic p="-5.59999" r="4.72893" t="101.267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6258" x="2.40859761807" y="-0.5599484375" z="-0.412411004639">
+        <neutronic p="-5.00278" r="4.72898" t="101.278"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6259" x="2.40859761807" y="-0.52176640625" z="-0.412411004639">
+        <neutronic p="-4.40488" r="4.72901" t="101.287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6260" x="2.40859761807" y="-0.483584375" z="-0.412411004639">
+        <neutronic p="-3.80643" r="4.729" t="101.296"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6261" x="2.40859761807" y="-0.44540234375" z="-0.412411004639">
+        <neutronic p="-3.20756" r="4.72897" t="101.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6262" x="2.40859761807" y="-0.4072203125" z="-0.412411004639">
+        <neutronic p="-2.60841" r="4.72891" t="101.309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6263" x="2.40859761807" y="-0.36903828125" z="-0.412411004639">
+        <neutronic p="-2.00911" r="4.72882" t="101.313"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6264" x="2.40859761807" y="-0.33085625" z="-0.412411004639">
+        <neutronic p="-1.4098" r="4.7287" t="101.317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6265" x="2.40859761807" y="-0.29267421875" z="-0.412411004639">
+        <neutronic p="-0.810621" r="4.72855" t="101.319"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6266" x="2.40859761807" y="-0.2544921875" z="-0.412411004639">
+        <neutronic p="-0.211699" r="4.72838" t="101.32"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6286" x="2.38674238193" y="-1.9345015625" z="-0.524295837101">
+        <neutronic p="-25.4012" r="4.70977" t="102.731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6287" x="2.38674238193" y="-1.89631953125" z="-0.524295837101">
+        <neutronic p="-24.8931" r="4.71076" t="102.782"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6288" x="2.38674238193" y="-1.8581375" z="-0.524295837101">
+        <neutronic p="-24.381" r="4.71172" t="102.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6289" x="2.38674238193" y="-1.81995546875" z="-0.524295837101">
+        <neutronic p="-23.865" r="4.71265" t="102.883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6290" x="2.38674238193" y="-1.7817734375" z="-0.524295837101">
+        <neutronic p="-23.345" r="4.71356" t="102.933"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6291" x="2.38674238193" y="-1.74359140625" z="-0.524295837101">
+        <neutronic p="-22.8211" r="4.71445" t="102.981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6292" x="2.38674238193" y="-1.705409375" z="-0.524295837101">
+        <neutronic p="-22.2934" r="4.71532" t="103.029"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6293" x="2.38674238193" y="-1.66722734375" z="-0.524295837101">
+        <neutronic p="-21.7618" r="4.71616" t="103.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6294" x="2.38674238193" y="-1.6290453125" z="-0.524295837101">
+        <neutronic p="-21.2265" r="4.71697" t="103.123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6295" x="2.38674238193" y="-1.59086328125" z="-0.524295837101">
+        <neutronic p="-20.6876" r="4.71776" t="103.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6296" x="2.38674238193" y="-1.55268125" z="-0.524295837101">
+        <neutronic p="-20.145" r="4.71852" t="103.214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6297" x="2.38674238193" y="-1.51449921875" z="-0.524295837101">
+        <neutronic p="-19.5989" r="4.71926" t="103.258"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6298" x="2.38674238193" y="-1.4763171875" z="-0.524295837101">
+        <neutronic p="-19.0493" r="4.71998" t="103.301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6299" x="2.38674238193" y="-1.43813515625" z="-0.524295837101">
+        <neutronic p="-18.4963" r="4.72066" t="103.343"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6300" x="2.38674238193" y="-1.399953125" z="-0.524295837101">
+        <neutronic p="-17.94" r="4.72133" t="103.384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6301" x="2.38674238193" y="-1.36177109375" z="-0.524295837101">
+        <neutronic p="-17.3804" r="4.72196" t="103.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6302" x="2.38674238193" y="-1.3235890625" z="-0.524295837101">
+        <neutronic p="-16.8176" r="4.72257" t="103.464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6303" x="2.38674238193" y="-1.28540703125" z="-0.524295837101">
+        <neutronic p="-16.2518" r="4.72315" t="103.502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6304" x="2.38674238193" y="-1.247225" z="-0.524295837101">
+        <neutronic p="-15.683" r="4.72371" t="103.539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6305" x="2.38674238193" y="-1.20904296875" z="-0.524295837101">
+        <neutronic p="-15.1113" r="4.72424" t="103.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6306" x="2.38674238193" y="-1.1708609375" z="-0.524295837101">
+        <neutronic p="-14.5368" r="4.72474" t="103.609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6307" x="2.38674238193" y="-1.13267890625" z="-0.524295837101">
+        <neutronic p="-13.9596" r="4.72521" t="103.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6308" x="2.38674238193" y="-1.094496875" z="-0.524295837101">
+        <neutronic p="-13.3798" r="4.72566" t="103.675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6309" x="2.38674238193" y="-1.05631484375" z="-0.524295837101">
+        <neutronic p="-12.7975" r="4.72608" t="103.706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6310" x="2.38674238193" y="-1.0181328125" z="-0.524295837101">
+        <neutronic p="-12.2129" r="4.72647" t="103.736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6311" x="2.38674238193" y="-0.97995078125" z="-0.524295837101">
+        <neutronic p="-11.626" r="4.72684" t="103.765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6312" x="2.38674238193" y="-0.94176875" z="-0.524295837101">
+        <neutronic p="-11.037" r="4.72717" t="103.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6313" x="2.38674238193" y="-0.90358671875" z="-0.524295837101">
+        <neutronic p="-10.4459" r="4.72748" t="103.818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6314" x="2.38674238193" y="-0.8654046875" z="-0.524295837101">
+        <neutronic p="-9.85299" r="4.72776" t="103.843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6315" x="2.38674238193" y="-0.82722265625" z="-0.524295837101">
+        <neutronic p="-9.25826" r="4.72801" t="103.866"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6316" x="2.38674238193" y="-0.789040625" z="-0.524295837101">
+        <neutronic p="-8.66188" r="4.72824" t="103.888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6317" x="2.38674238193" y="-0.75085859375" z="-0.524295837101">
+        <neutronic p="-8.06398" r="4.72843" t="103.908"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6318" x="2.38674238193" y="-0.7126765625" z="-0.524295837101">
+        <neutronic p="-7.46469" r="4.7286" t="103.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6319" x="2.38674238193" y="-0.67449453125" z="-0.524295837101">
+        <neutronic p="-6.86414" r="4.72874" t="103.945"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6320" x="2.38674238193" y="-0.6363125" z="-0.524295837101">
+        <neutronic p="-6.26246" r="4.72885" t="103.961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6321" x="2.38674238193" y="-0.59813046875" z="-0.524295837101">
+        <neutronic p="-5.6598" r="4.72893" t="103.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6322" x="2.38674238193" y="-0.5599484375" z="-0.524295837101">
+        <neutronic p="-5.05627" r="4.72898" t="103.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6323" x="2.38674238193" y="-0.52176640625" z="-0.524295837101">
+        <neutronic p="-4.45203" r="4.72901" t="104.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6324" x="2.38674238193" y="-0.483584375" z="-0.524295837101">
+        <neutronic p="-3.84722" r="4.729" t="104.011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6325" x="2.38674238193" y="-0.44540234375" z="-0.524295837101">
+        <neutronic p="-3.24196" r="4.72897" t="104.02"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6326" x="2.38674238193" y="-0.4072203125" z="-0.524295837101">
+        <neutronic p="-2.6364" r="4.72891" t="104.028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6327" x="2.38674238193" y="-0.36903828125" z="-0.524295837101">
+        <neutronic p="-2.03069" r="4.72882" t="104.033"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6328" x="2.38674238193" y="-0.33085625" z="-0.524295837101">
+        <neutronic p="-1.42495" r="4.7287" t="104.038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6329" x="2.38674238193" y="-0.29267421875" z="-0.524295837101">
+        <neutronic p="-0.819333" r="4.72855" t="104.04"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6330" x="2.38674238193" y="-0.2544921875" z="-0.524295837101">
+        <neutronic p="-0.213975" r="4.72838" t="104.042"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6350" x="2.35969277676" y="-1.9345015625" z="-0.635039622217">
+        <neutronic p="-25.693" r="4.70977" t="105.187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6351" x="2.35969277676" y="-1.89631953125" z="-0.635039622217">
+        <neutronic p="-25.1807" r="4.71076" t="105.248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6352" x="2.35969277676" y="-1.8581375" z="-0.635039622217">
+        <neutronic p="-24.6643" r="4.71172" t="105.309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6353" x="2.35969277676" y="-1.81995546875" z="-0.635039622217">
+        <neutronic p="-24.1437" r="4.71265" t="105.37"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6354" x="2.35969277676" y="-1.7817734375" z="-0.635039622217">
+        <neutronic p="-23.6191" r="4.71356" t="105.429"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6355" x="2.35969277676" y="-1.74359140625" z="-0.635039622217">
+        <neutronic p="-23.0904" r="4.71445" t="105.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6356" x="2.35969277676" y="-1.705409375" z="-0.635039622217">
+        <neutronic p="-22.5578" r="4.71532" t="105.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6357" x="2.35969277676" y="-1.66722734375" z="-0.635039622217">
+        <neutronic p="-22.0213" r="4.71616" t="105.602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6358" x="2.35969277676" y="-1.6290453125" z="-0.635039622217">
+        <neutronic p="-21.4809" r="4.71697" t="105.658"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6359" x="2.35969277676" y="-1.59086328125" z="-0.635039622217">
+        <neutronic p="-20.9367" r="4.71776" t="105.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6360" x="2.35969277676" y="-1.55268125" z="-0.635039622217">
+        <neutronic p="-20.3887" r="4.71852" t="105.767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6361" x="2.35969277676" y="-1.51449921875" z="-0.635039622217">
+        <neutronic p="-19.8371" r="4.71926" t="105.82"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6362" x="2.35969277676" y="-1.4763171875" z="-0.635039622217">
+        <neutronic p="-19.2819" r="4.71998" t="105.872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6363" x="2.35969277676" y="-1.43813515625" z="-0.635039622217">
+        <neutronic p="-18.7231" r="4.72066" t="105.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6364" x="2.35969277676" y="-1.399953125" z="-0.635039622217">
+        <neutronic p="-18.1609" r="4.72133" t="105.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6365" x="2.35969277676" y="-1.36177109375" z="-0.635039622217">
+        <neutronic p="-17.5953" r="4.72196" t="106.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6366" x="2.35969277676" y="-1.3235890625" z="-0.635039622217">
+        <neutronic p="-17.0265" r="4.72257" t="106.068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6367" x="2.35969277676" y="-1.28540703125" z="-0.635039622217">
+        <neutronic p="-16.4544" r="4.72315" t="106.113"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6368" x="2.35969277676" y="-1.247225" z="-0.635039622217">
+        <neutronic p="-15.8793" r="4.72371" t="106.158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6369" x="2.35969277676" y="-1.20904296875" z="-0.635039622217">
+        <neutronic p="-15.3011" r="4.72424" t="106.201"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6370" x="2.35969277676" y="-1.1708609375" z="-0.635039622217">
+        <neutronic p="-14.72" r="4.72474" t="106.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6371" x="2.35969277676" y="-1.13267890625" z="-0.635039622217">
+        <neutronic p="-14.1362" r="4.72521" t="106.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6372" x="2.35969277676" y="-1.094496875" z="-0.635039622217">
+        <neutronic p="-13.5496" r="4.72566" t="106.322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6373" x="2.35969277676" y="-1.05631484375" z="-0.635039622217">
+        <neutronic p="-12.9605" r="4.72608" t="106.36"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6374" x="2.35969277676" y="-1.0181328125" z="-0.635039622217">
+        <neutronic p="-12.3689" r="4.72647" t="106.396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6375" x="2.35969277676" y="-0.97995078125" z="-0.635039622217">
+        <neutronic p="-11.775" r="4.72684" t="106.43"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6376" x="2.35969277676" y="-0.94176875" z="-0.635039622217">
+        <neutronic p="-11.1788" r="4.72717" t="106.463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6377" x="2.35969277676" y="-0.90358671875" z="-0.635039622217">
+        <neutronic p="-10.5805" r="4.72748" t="106.494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6378" x="2.35969277676" y="-0.8654046875" z="-0.635039622217">
+        <neutronic p="-9.98022" r="4.72776" t="106.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6379" x="2.35969277676" y="-0.82722265625" z="-0.635039622217">
+        <neutronic p="-9.3781" r="4.72801" t="106.552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6380" x="2.35969277676" y="-0.789040625" z="-0.635039622217">
+        <neutronic p="-8.77425" r="4.72824" t="106.578"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6381" x="2.35969277676" y="-0.75085859375" z="-0.635039622217">
+        <neutronic p="-8.16881" r="4.72843" t="106.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6382" x="2.35969277676" y="-0.7126765625" z="-0.635039622217">
+        <neutronic p="-7.56192" r="4.7286" t="106.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6383" x="2.35969277676" y="-0.67449453125" z="-0.635039622217">
+        <neutronic p="-6.9537" r="4.72874" t="106.647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6384" x="2.35969277676" y="-0.6363125" z="-0.635039622217">
+        <neutronic p="-6.34431" r="4.72885" t="106.667"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6385" x="2.35969277676" y="-0.59813046875" z="-0.635039622217">
+        <neutronic p="-5.73388" r="4.72893" t="106.684"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6386" x="2.35969277676" y="-0.5599484375" z="-0.635039622217">
+        <neutronic p="-5.12254" r="4.72898" t="106.7"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6387" x="2.35969277676" y="-0.52176640625" z="-0.635039622217">
+        <neutronic p="-4.51046" r="4.72901" t="106.715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6388" x="2.35969277676" y="-0.483584375" z="-0.635039622217">
+        <neutronic p="-3.89775" r="4.729" t="106.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6389" x="2.35969277676" y="-0.44540234375" z="-0.635039622217">
+        <neutronic p="-3.28458" r="4.72897" t="106.738"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6390" x="2.35969277676" y="-0.4072203125" z="-0.635039622217">
+        <neutronic p="-2.67109" r="4.72891" t="106.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6391" x="2.35969277676" y="-0.36903828125" z="-0.635039622217">
+        <neutronic p="-2.05742" r="4.72882" t="106.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6392" x="2.35969277676" y="-0.33085625" z="-0.635039622217">
+        <neutronic p="-1.44372" r="4.7287" t="106.759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6393" x="2.35969277676" y="-0.29267421875" z="-0.635039622217">
+        <neutronic p="-0.830127" r="4.72855" t="106.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6394" x="2.35969277676" y="-0.2544921875" z="-0.635039622217">
+        <neutronic p="-0.216794" r="4.72838" t="106.764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6414" x="2.32750767178" y="-1.9345015625" z="-0.744401343575">
+        <neutronic p="-26.0428" r="4.70977" t="107.636"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6415" x="2.32750767178" y="-1.89631953125" z="-0.744401343575">
+        <neutronic p="-25.5255" r="4.71076" t="107.708"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6416" x="2.32750767178" y="-1.8581375" z="-0.744401343575">
+        <neutronic p="-25.0039" r="4.71172" t="107.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6417" x="2.32750767178" y="-1.81995546875" z="-0.744401343575">
+        <neutronic p="-24.478" r="4.71265" t="107.85"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6418" x="2.32750767178" y="-1.7817734375" z="-0.744401343575">
+        <neutronic p="-23.9479" r="4.71356" t="107.92"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6419" x="2.32750767178" y="-1.74359140625" z="-0.744401343575">
+        <neutronic p="-23.4137" r="4.71445" t="107.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6420" x="2.32750767178" y="-1.705409375" z="-0.744401343575">
+        <neutronic p="-22.8752" r="4.71532" t="108.056"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6421" x="2.32750767178" y="-1.66722734375" z="-0.744401343575">
+        <neutronic p="-22.3328" r="4.71616" t="108.123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6422" x="2.32750767178" y="-1.6290453125" z="-0.744401343575">
+        <neutronic p="-21.7863" r="4.71697" t="108.188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6423" x="2.32750767178" y="-1.59086328125" z="-0.744401343575">
+        <neutronic p="-21.2358" r="4.71776" t="108.253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6424" x="2.32750767178" y="-1.55268125" z="-0.744401343575">
+        <neutronic p="-20.6814" r="4.71852" t="108.316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6425" x="2.32750767178" y="-1.51449921875" z="-0.744401343575">
+        <neutronic p="-20.1233" r="4.71926" t="108.378"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6426" x="2.32750767178" y="-1.4763171875" z="-0.744401343575">
+        <neutronic p="-19.5613" r="4.71998" t="108.439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6427" x="2.32750767178" y="-1.43813515625" z="-0.744401343575">
+        <neutronic p="-18.9957" r="4.72066" t="108.498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6428" x="2.32750767178" y="-1.399953125" z="-0.744401343575">
+        <neutronic p="-18.4265" r="4.72133" t="108.556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6429" x="2.32750767178" y="-1.36177109375" z="-0.744401343575">
+        <neutronic p="-17.8537" r="4.72196" t="108.613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6430" x="2.32750767178" y="-1.3235890625" z="-0.744401343575">
+        <neutronic p="-17.2776" r="4.72257" t="108.668"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6431" x="2.32750767178" y="-1.28540703125" z="-0.744401343575">
+        <neutronic p="-16.6981" r="4.72315" t="108.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6432" x="2.32750767178" y="-1.247225" z="-0.744401343575">
+        <neutronic p="-16.1153" r="4.72371" t="108.774"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6433" x="2.32750767178" y="-1.20904296875" z="-0.744401343575">
+        <neutronic p="-15.5294" r="4.72424" t="108.825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6434" x="2.32750767178" y="-1.1708609375" z="-0.744401343575">
+        <neutronic p="-14.9405" r="4.72474" t="108.874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6435" x="2.32750767178" y="-1.13267890625" z="-0.744401343575">
+        <neutronic p="-14.3487" r="4.72521" t="108.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6436" x="2.32750767178" y="-1.094496875" z="-0.744401343575">
+        <neutronic p="-13.754" r="4.72566" t="108.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6437" x="2.32750767178" y="-1.05631484375" z="-0.744401343575">
+        <neutronic p="-13.1566" r="4.72608" t="109.011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6438" x="2.32750767178" y="-1.0181328125" z="-0.744401343575">
+        <neutronic p="-12.5567" r="4.72647" t="109.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6439" x="2.32750767178" y="-0.97995078125" z="-0.744401343575">
+        <neutronic p="-11.9543" r="4.72684" t="109.094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6440" x="2.32750767178" y="-0.94176875" z="-0.744401343575">
+        <neutronic p="-11.3495" r="4.72717" t="109.132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6441" x="2.32750767178" y="-0.90358671875" z="-0.744401343575">
+        <neutronic p="-10.7425" r="4.72748" t="109.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6442" x="2.32750767178" y="-0.8654046875" z="-0.744401343575">
+        <neutronic p="-10.1334" r="4.72776" t="109.204"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6443" x="2.32750767178" y="-0.82722265625" z="-0.744401343575">
+        <neutronic p="-9.52242" r="4.72801" t="109.237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6444" x="2.32750767178" y="-0.789040625" z="-0.744401343575">
+        <neutronic p="-8.90959" r="4.72824" t="109.268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6445" x="2.32750767178" y="-0.75085859375" z="-0.744401343575">
+        <neutronic p="-8.29508" r="4.72843" t="109.297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6446" x="2.32750767178" y="-0.7126765625" z="-0.744401343575">
+        <neutronic p="-7.67904" r="4.7286" t="109.324"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6447" x="2.32750767178" y="-0.67449453125" z="-0.744401343575">
+        <neutronic p="-7.06161" r="4.72874" t="109.349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6448" x="2.32750767178" y="-0.6363125" z="-0.744401343575">
+        <neutronic p="-6.44292" r="4.72885" t="109.372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6449" x="2.32750767178" y="-0.59813046875" z="-0.744401343575">
+        <neutronic p="-5.82314" r="4.72893" t="109.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6450" x="2.32750767178" y="-0.5599484375" z="-0.744401343575">
+        <neutronic p="-5.2024" r="4.72898" t="109.411"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6451" x="2.32750767178" y="-0.52176640625" z="-0.744401343575">
+        <neutronic p="-4.58085" r="4.72901" t="109.428"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6452" x="2.32750767178" y="-0.483584375" z="-0.744401343575">
+        <neutronic p="-3.95866" r="4.729" t="109.442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6453" x="2.32750767178" y="-0.44540234375" z="-0.744401343575">
+        <neutronic p="-3.33595" r="4.72897" t="109.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6454" x="2.32750767178" y="-0.4072203125" z="-0.744401343575">
+        <neutronic p="-2.7129" r="4.72891" t="109.465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6455" x="2.32750767178" y="-0.36903828125" z="-0.744401343575">
+        <neutronic p="-2.08964" r="4.72882" t="109.473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6456" x="2.32750767178" y="-0.33085625" z="-0.744401343575">
+        <neutronic p="-1.46634" r="4.7287" t="109.48"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6457" x="2.32750767178" y="-0.29267421875" z="-0.744401343575">
+        <neutronic p="-0.843136" r="4.72855" t="109.484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6458" x="2.32750767178" y="-0.2544921875" z="-0.744401343575">
+        <neutronic p="-0.220192" r="4.72838" t="109.485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6478" x="2.29025711278" y="-1.9345015625" z="-0.852142992607">
+        <neutronic p="-26.454" r="4.70977" t="110.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6479" x="2.29025711278" y="-1.89631953125" z="-0.852142992607">
+        <neutronic p="-25.9309" r="4.71076" t="110.16"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6480" x="2.29025711278" y="-1.8581375" z="-0.852142992607">
+        <neutronic p="-25.4033" r="4.71172" t="110.242"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6481" x="2.29025711278" y="-1.81995546875" z="-0.852142992607">
+        <neutronic p="-24.8713" r="4.71265" t="110.324"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6482" x="2.29025711278" y="-1.7817734375" z="-0.852142992607">
+        <neutronic p="-24.3348" r="4.71356" t="110.404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6483" x="2.29025711278" y="-1.74359140625" z="-0.852142992607">
+        <neutronic p="-23.794" r="4.71445" t="110.483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6484" x="2.29025711278" y="-1.705409375" z="-0.852142992607">
+        <neutronic p="-23.2489" r="4.71532" t="110.561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6485" x="2.29025711278" y="-1.66722734375" z="-0.852142992607">
+        <neutronic p="-22.6995" r="4.71616" t="110.637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6486" x="2.29025711278" y="-1.6290453125" z="-0.852142992607">
+        <neutronic p="-22.1459" r="4.71697" t="110.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6487" x="2.29025711278" y="-1.59086328125" z="-0.852142992607">
+        <neutronic p="-21.5881" r="4.71776" t="110.787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6488" x="2.29025711278" y="-1.55268125" z="-0.852142992607">
+        <neutronic p="-21.0263" r="4.71852" t="110.86"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6489" x="2.29025711278" y="-1.51449921875" z="-0.852142992607">
+        <neutronic p="-20.4605" r="4.71926" t="110.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6490" x="2.29025711278" y="-1.4763171875" z="-0.852142992607">
+        <neutronic p="-19.8907" r="4.71998" t="111.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6491" x="2.29025711278" y="-1.43813515625" z="-0.852142992607">
+        <neutronic p="-19.317" r="4.72066" t="111.07"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6492" x="2.29025711278" y="-1.399953125" z="-0.852142992607">
+        <neutronic p="-18.7396" r="4.72133" t="111.136"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6493" x="2.29025711278" y="-1.36177109375" z="-0.852142992607">
+        <neutronic p="-18.1585" r="4.72196" t="111.202"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6494" x="2.29025711278" y="-1.3235890625" z="-0.852142992607">
+        <neutronic p="-17.5738" r="4.72257" t="111.265"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6495" x="2.29025711278" y="-1.28540703125" z="-0.852142992607">
+        <neutronic p="-16.9855" r="4.72315" t="111.327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6496" x="2.29025711278" y="-1.247225" z="-0.852142992607">
+        <neutronic p="-16.3939" r="4.72371" t="111.387"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6497" x="2.29025711278" y="-1.20904296875" z="-0.852142992607">
+        <neutronic p="-15.7989" r="4.72424" t="111.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6498" x="2.29025711278" y="-1.1708609375" z="-0.852142992607">
+        <neutronic p="-15.2008" r="4.72474" t="111.502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6499" x="2.29025711278" y="-1.13267890625" z="-0.852142992607">
+        <neutronic p="-14.5996" r="4.72521" t="111.557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6500" x="2.29025711278" y="-1.094496875" z="-0.852142992607">
+        <neutronic p="-13.9953" r="4.72566" t="111.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6501" x="2.29025711278" y="-1.05631484375" z="-0.852142992607">
+        <neutronic p="-13.3883" r="4.72608" t="111.66"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6502" x="2.29025711278" y="-1.0181328125" z="-0.852142992607">
+        <neutronic p="-12.7785" r="4.72647" t="111.709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6503" x="2.29025711278" y="-0.97995078125" z="-0.852142992607">
+        <neutronic p="-12.1661" r="4.72684" t="111.756"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6504" x="2.29025711278" y="-0.94176875" z="-0.852142992607">
+        <neutronic p="-11.5512" r="4.72717" t="111.8"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6505" x="2.29025711278" y="-0.90358671875" z="-0.852142992607">
+        <neutronic p="-10.934" r="4.72748" t="111.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6506" x="2.29025711278" y="-0.8654046875" z="-0.852142992607">
+        <neutronic p="-10.3145" r="4.72776" t="111.883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6507" x="2.29025711278" y="-0.82722265625" z="-0.852142992607">
+        <neutronic p="-9.69301" r="4.72801" t="111.92"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6508" x="2.29025711278" y="-0.789040625" z="-0.852142992607">
+        <neutronic p="-9.06958" r="4.72824" t="111.956"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6509" x="2.29025711278" y="-0.75085859375" z="-0.852142992607">
+        <neutronic p="-8.44437" r="4.72843" t="111.99"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6510" x="2.29025711278" y="-0.7126765625" z="-0.852142992607">
+        <neutronic p="-7.81753" r="4.7286" t="112.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6511" x="2.29025711278" y="-0.67449453125" z="-0.852142992607">
+        <neutronic p="-7.1892" r="4.72874" t="112.049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6512" x="2.29025711278" y="-0.6363125" z="-0.852142992607">
+        <neutronic p="-6.55954" r="4.72885" t="112.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6513" x="2.29025711278" y="-0.59813046875" z="-0.852142992607">
+        <neutronic p="-5.92871" r="4.72893" t="112.1"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6514" x="2.29025711278" y="-0.5599484375" z="-0.852142992607">
+        <neutronic p="-5.29685" r="4.72898" t="112.122"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6515" x="2.29025711278" y="-0.52176640625" z="-0.852142992607">
+        <neutronic p="-4.66413" r="4.72901" t="112.141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6516" x="2.29025711278" y="-0.483584375" z="-0.852142992607">
+        <neutronic p="-4.0307" r="4.729" t="112.158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6517" x="2.29025711278" y="-0.44540234375" z="-0.852142992607">
+        <neutronic p="-3.39672" r="4.72897" t="112.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6518" x="2.29025711278" y="-0.4072203125" z="-0.852142992607">
+        <neutronic p="-2.76235" r="4.72891" t="112.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6519" x="2.29025711278" y="-0.36903828125" z="-0.852142992607">
+        <neutronic p="-2.12776" r="4.72882" t="112.193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6520" x="2.29025711278" y="-0.33085625" z="-0.852142992607">
+        <neutronic p="-1.4931" r="4.7287" t="112.2"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6521" x="2.29025711278" y="-0.29267421875" z="-0.852142992607">
+        <neutronic p="-0.858528" r="4.72855" t="112.205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6522" x="2.29025711278" y="-0.2544921875" z="-0.852142992607">
+        <neutronic p="-0.224212" r="4.72838" t="112.207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6542" x="2.24802216976" y="-1.9345015625" z="-0.958030086575">
+        <neutronic p="-26.9306" r="4.70977" t="112.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6543" x="2.24802216976" y="-1.89631953125" z="-0.958030086575">
+        <neutronic p="-26.4009" r="4.71076" t="112.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6544" x="2.24802216976" y="-1.8581375" z="-0.958030086575">
+        <neutronic p="-25.8665" r="4.71172" t="112.696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6545" x="2.24802216976" y="-1.81995546875" z="-0.958030086575">
+        <neutronic p="-25.3275" r="4.71265" t="112.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6546" x="2.24802216976" y="-1.7817734375" z="-0.958030086575">
+        <neutronic p="-24.7838" r="4.71356" t="112.879"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6547" x="2.24802216976" y="-1.74359140625" z="-0.958030086575">
+        <neutronic p="-24.2355" r="4.71445" t="112.969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6548" x="2.24802216976" y="-1.705409375" z="-0.958030086575">
+        <neutronic p="-23.6827" r="4.71532" t="113.057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6549" x="2.24802216976" y="-1.66722734375" z="-0.958030086575">
+        <neutronic p="-23.1254" r="4.71616" t="113.144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6550" x="2.24802216976" y="-1.6290453125" z="-0.958030086575">
+        <neutronic p="-22.5636" r="4.71697" t="113.23"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6551" x="2.24802216976" y="-1.59086328125" z="-0.958030086575">
+        <neutronic p="-21.9975" r="4.71776" t="113.314"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6552" x="2.24802216976" y="-1.55268125" z="-0.958030086575">
+        <neutronic p="-21.4271" r="4.71852" t="113.397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6553" x="2.24802216976" y="-1.51449921875" z="-0.958030086575">
+        <neutronic p="-20.8525" r="4.71926" t="113.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6554" x="2.24802216976" y="-1.4763171875" z="-0.958030086575">
+        <neutronic p="-20.2737" r="4.71998" t="113.558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6555" x="2.24802216976" y="-1.43813515625" z="-0.958030086575">
+        <neutronic p="-19.6908" r="4.72066" t="113.635"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6556" x="2.24802216976" y="-1.399953125" z="-0.958030086575">
+        <neutronic p="-19.1039" r="4.72133" t="113.711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6557" x="2.24802216976" y="-1.36177109375" z="-0.958030086575">
+        <neutronic p="-18.5131" r="4.72196" t="113.785"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6558" x="2.24802216976" y="-1.3235890625" z="-0.958030086575">
+        <neutronic p="-17.9185" r="4.72257" t="113.858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6559" x="2.24802216976" y="-1.28540703125" z="-0.958030086575">
+        <neutronic p="-17.3202" r="4.72315" t="113.928"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6560" x="2.24802216976" y="-1.247225" z="-0.958030086575">
+        <neutronic p="-16.7183" r="4.72371" t="113.996"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6561" x="2.24802216976" y="-1.20904296875" z="-0.958030086575">
+        <neutronic p="-16.1128" r="4.72424" t="114.063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6562" x="2.24802216976" y="-1.1708609375" z="-0.958030086575">
+        <neutronic p="-15.504" r="4.72474" t="114.127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6563" x="2.24802216976" y="-1.13267890625" z="-0.958030086575">
+        <neutronic p="-14.8919" r="4.72521" t="114.189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6564" x="2.24802216976" y="-1.094496875" z="-0.958030086575">
+        <neutronic p="-14.2766" r="4.72566" t="114.249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6565" x="2.24802216976" y="-1.05631484375" z="-0.958030086575">
+        <neutronic p="-13.6583" r="4.72608" t="114.307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6566" x="2.24802216976" y="-1.0181328125" z="-0.958030086575">
+        <neutronic p="-13.037" r="4.72647" t="114.362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6567" x="2.24802216976" y="-0.97995078125" z="-0.958030086575">
+        <neutronic p="-12.413" r="4.72684" t="114.415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6568" x="2.24802216976" y="-0.94176875" z="-0.958030086575">
+        <neutronic p="-11.7864" r="4.72717" t="114.466"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6569" x="2.24802216976" y="-0.90358671875" z="-0.958030086575">
+        <neutronic p="-11.1573" r="4.72748" t="114.514"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6570" x="2.24802216976" y="-0.8654046875" z="-0.958030086575">
+        <neutronic p="-10.5258" r="4.72776" t="114.559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6571" x="2.24802216976" y="-0.82722265625" z="-0.958030086575">
+        <neutronic p="-9.89205" r="4.72801" t="114.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6572" x="2.24802216976" y="-0.789040625" z="-0.958030086575">
+        <neutronic p="-9.25628" r="4.72824" t="114.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6573" x="2.24802216976" y="-0.75085859375" z="-0.958030086575">
+        <neutronic p="-8.6186" r="4.72843" t="114.681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6574" x="2.24802216976" y="-0.7126765625" z="-0.958030086575">
+        <neutronic p="-7.97917" r="4.7286" t="114.717"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6575" x="2.24802216976" y="-0.67449453125" z="-0.958030086575">
+        <neutronic p="-7.33814" r="4.72874" t="114.749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6576" x="2.24802216976" y="-0.6363125" z="-0.958030086575">
+        <neutronic p="-6.69569" r="4.72885" t="114.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6577" x="2.24802216976" y="-0.59813046875" z="-0.958030086575">
+        <neutronic p="-6.05196" r="4.72893" t="114.807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6578" x="2.24802216976" y="-0.5599484375" z="-0.958030086575">
+        <neutronic p="-5.40713" r="4.72898" t="114.832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6579" x="2.24802216976" y="-0.52176640625" z="-0.958030086575">
+        <neutronic p="-4.76137" r="4.72901" t="114.853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6580" x="2.24802216976" y="-0.483584375" z="-0.958030086575">
+        <neutronic p="-4.11483" r="4.729" t="114.873"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6581" x="2.24802216976" y="-0.44540234375" z="-0.958030086575">
+        <neutronic p="-3.46769" r="4.72897" t="114.889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6582" x="2.24802216976" y="-0.4072203125" z="-0.958030086575">
+        <neutronic p="-2.82011" r="4.72891" t="114.903"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6583" x="2.24802216976" y="-0.36903828125" z="-0.958030086575">
+        <neutronic p="-2.17228" r="4.72882" t="114.913"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6584" x="2.24802216976" y="-0.33085625" z="-0.958030086575">
+        <neutronic p="-1.52435" r="4.7287" t="114.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6585" x="2.24802216976" y="-0.29267421875" z="-0.958030086575">
+        <neutronic p="-0.876506" r="4.72855" t="114.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6586" x="2.24802216976" y="-0.2544921875" z="-0.958030086575">
+        <neutronic p="-0.228908" r="4.72838" t="114.929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6606" x="2.2008947604" y="-1.9345015625" z="-1.06183217889">
+        <neutronic p="-27.4774" r="4.70977" t="114.93"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6607" x="2.2008947604" y="-1.89631953125" z="-1.06183217889">
+        <neutronic p="-26.9404" r="4.71076" t="115.036"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6608" x="2.2008947604" y="-1.8581375" z="-1.06183217889">
+        <neutronic p="-26.3983" r="4.71172" t="115.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6609" x="2.2008947604" y="-1.81995546875" z="-1.06183217889">
+        <neutronic p="-25.8514" r="4.71265" t="115.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6610" x="2.2008947604" y="-1.7817734375" z="-1.06183217889">
+        <neutronic p="-25.2995" r="4.71356" t="115.345"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6611" x="2.2008947604" y="-1.74359140625" z="-1.06183217889">
+        <neutronic p="-24.7428" r="4.71445" t="115.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6612" x="2.2008947604" y="-1.705409375" z="-1.06183217889">
+        <neutronic p="-24.1813" r="4.71532" t="115.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6613" x="2.2008947604" y="-1.66722734375" z="-1.06183217889">
+        <neutronic p="-23.6151" r="4.71616" t="115.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6614" x="2.2008947604" y="-1.6290453125" z="-1.06183217889">
+        <neutronic p="-23.0441" r="4.71697" t="115.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6615" x="2.2008947604" y="-1.59086328125" z="-1.06183217889">
+        <neutronic p="-22.4685" r="4.71776" t="115.834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6616" x="2.2008947604" y="-1.55268125" z="-1.06183217889">
+        <neutronic p="-21.8884" r="4.71852" t="115.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6617" x="2.2008947604" y="-1.51449921875" z="-1.06183217889">
+        <neutronic p="-21.3038" r="4.71926" t="116.018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6618" x="2.2008947604" y="-1.4763171875" z="-1.06183217889">
+        <neutronic p="-20.7147" r="4.71998" t="116.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6619" x="2.2008947604" y="-1.43813515625" z="-1.06183217889">
+        <neutronic p="-20.1213" r="4.72066" t="116.195"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6620" x="2.2008947604" y="-1.399953125" z="-1.06183217889">
+        <neutronic p="-19.5237" r="4.72133" t="116.28"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6621" x="2.2008947604" y="-1.36177109375" z="-1.06183217889">
+        <neutronic p="-18.9219" r="4.72196" t="116.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6622" x="2.2008947604" y="-1.3235890625" z="-1.06183217889">
+        <neutronic p="-18.316" r="4.72257" t="116.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6623" x="2.2008947604" y="-1.28540703125" z="-1.06183217889">
+        <neutronic p="-17.7061" r="4.72315" t="116.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6624" x="2.2008947604" y="-1.247225" z="-1.06183217889">
+        <neutronic p="-17.0924" r="4.72371" t="116.601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6625" x="2.2008947604" y="-1.20904296875" z="-1.06183217889">
+        <neutronic p="-16.475" r="4.72424" t="116.675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6626" x="2.2008947604" y="-1.1708609375" z="-1.06183217889">
+        <neutronic p="-15.8539" r="4.72474" t="116.748"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6627" x="2.2008947604" y="-1.13267890625" z="-1.06183217889">
+        <neutronic p="-15.2293" r="4.72521" t="116.818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6628" x="2.2008947604" y="-1.094496875" z="-1.06183217889">
+        <neutronic p="-14.6013" r="4.72566" t="116.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6629" x="2.2008947604" y="-1.05631484375" z="-1.06183217889">
+        <neutronic p="-13.9701" r="4.72608" t="116.95"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6630" x="2.2008947604" y="-1.0181328125" z="-1.06183217889">
+        <neutronic p="-13.3358" r="4.72647" t="117.012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6631" x="2.2008947604" y="-0.97995078125" z="-1.06183217889">
+        <neutronic p="-12.6984" r="4.72684" t="117.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6632" x="2.2008947604" y="-0.94176875" z="-1.06183217889">
+        <neutronic p="-12.0582" r="4.72717" t="117.129"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6633" x="2.2008947604" y="-0.90358671875" z="-1.06183217889">
+        <neutronic p="-11.4154" r="4.72748" t="117.183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6634" x="2.2008947604" y="-0.8654046875" z="-1.06183217889">
+        <neutronic p="-10.77" r="4.72776" t="117.234"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6635" x="2.2008947604" y="-0.82722265625" z="-1.06183217889">
+        <neutronic p="-10.1222" r="4.72801" t="117.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6636" x="2.2008947604" y="-0.789040625" z="-1.06183217889">
+        <neutronic p="-9.47219" r="4.72824" t="117.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6637" x="2.2008947604" y="-0.75085859375" z="-1.06183217889">
+        <neutronic p="-8.82012" r="4.72843" t="117.372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6638" x="2.2008947604" y="-0.7126765625" z="-1.06183217889">
+        <neutronic p="-8.16615" r="4.7286" t="117.412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6639" x="2.2008947604" y="-0.67449453125" z="-1.06183217889">
+        <neutronic p="-7.51047" r="4.72874" t="117.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6640" x="2.2008947604" y="-0.6363125" z="-1.06183217889">
+        <neutronic p="-6.85322" r="4.72885" t="117.482"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6641" x="2.2008947604" y="-0.59813046875" z="-1.06183217889">
+        <neutronic p="-6.1946" r="4.72893" t="117.513"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6642" x="2.2008947604" y="-0.5599484375" z="-1.06183217889">
+        <neutronic p="-5.53477" r="4.72898" t="117.541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6643" x="2.2008947604" y="-0.52176640625" z="-1.06183217889">
+        <neutronic p="-4.87392" r="4.72901" t="117.566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6644" x="2.2008947604" y="-0.483584375" z="-1.06183217889">
+        <neutronic p="-4.21221" r="4.729" t="117.587"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6645" x="2.2008947604" y="-0.44540234375" z="-1.06183217889">
+        <neutronic p="-3.54984" r="4.72897" t="117.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6646" x="2.2008947604" y="-0.4072203125" z="-1.06183217889">
+        <neutronic p="-2.88698" r="4.72891" t="117.621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6647" x="2.2008947604" y="-0.36903828125" z="-1.06183217889">
+        <neutronic p="-2.22382" r="4.72882" t="117.633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6648" x="2.2008947604" y="-0.33085625" z="-1.06183217889">
+        <neutronic p="-1.56054" r="4.7287" t="117.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6649" x="2.2008947604" y="-0.29267421875" z="-1.06183217889">
+        <neutronic p="-0.897321" r="4.72855" t="117.648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6650" x="2.2008947604" y="-0.2544921875" z="-1.06183217889">
+        <neutronic p="-0.234345" r="4.72838" t="117.651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6670" x="2.14897745011" y="-1.9345015625" z="-1.16332336064">
+        <neutronic p="-28.1001" r="4.70977" t="117.338"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6671" x="2.14897745011" y="-1.89631953125" z="-1.16332336064">
+        <neutronic p="-27.5549" r="4.71076" t="117.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6672" x="2.14897745011" y="-1.8581375" z="-1.16332336064">
+        <neutronic p="-27.0044" r="4.71172" t="117.572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6673" x="2.14897745011" y="-1.81995546875" z="-1.16332336064">
+        <neutronic p="-26.4487" r="4.71265" t="117.687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6674" x="2.14897745011" y="-1.7817734375" z="-1.16332336064">
+        <neutronic p="-25.8877" r="4.71356" t="117.8"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6675" x="2.14897745011" y="-1.74359140625" z="-1.16332336064">
+        <neutronic p="-25.3216" r="4.71445" t="117.912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6676" x="2.14897745011" y="-1.705409375" z="-1.16332336064">
+        <neutronic p="-24.7504" r="4.71532" t="118.023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6677" x="2.14897745011" y="-1.66722734375" z="-1.16332336064">
+        <neutronic p="-24.1742" r="4.71616" t="118.132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6678" x="2.14897745011" y="-1.6290453125" z="-1.16332336064">
+        <neutronic p="-23.5929" r="4.71697" t="118.239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6679" x="2.14897745011" y="-1.59086328125" z="-1.16332336064">
+        <neutronic p="-23.0067" r="4.71776" t="118.344"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6680" x="2.14897745011" y="-1.55268125" z="-1.16332336064">
+        <neutronic p="-22.4157" r="4.71852" t="118.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6681" x="2.14897745011" y="-1.51449921875" z="-1.16332336064">
+        <neutronic p="-21.8198" r="4.71926" t="118.549"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6682" x="2.14897745011" y="-1.4763171875" z="-1.16332336064">
+        <neutronic p="-21.2192" r="4.71998" t="118.649"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6683" x="2.14897745011" y="-1.43813515625" z="-1.16332336064">
+        <neutronic p="-20.6139" r="4.72066" t="118.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6684" x="2.14897745011" y="-1.399953125" z="-1.16332336064">
+        <neutronic p="-20.0041" r="4.72133" t="118.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6685" x="2.14897745011" y="-1.36177109375" z="-1.16332336064">
+        <neutronic p="-19.3898" r="4.72196" t="118.935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6686" x="2.14897745011" y="-1.3235890625" z="-1.16332336064">
+        <neutronic p="-18.7712" r="4.72257" t="119.025"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6687" x="2.14897745011" y="-1.28540703125" z="-1.16332336064">
+        <neutronic p="-18.1483" r="4.72315" t="119.114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6688" x="2.14897745011" y="-1.247225" z="-1.16332336064">
+        <neutronic p="-17.5212" r="4.72371" t="119.199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6689" x="2.14897745011" y="-1.20904296875" z="-1.16332336064">
+        <neutronic p="-16.8902" r="4.72424" t="119.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6690" x="2.14897745011" y="-1.1708609375" z="-1.16332336064">
+        <neutronic p="-16.2552" r="4.72474" t="119.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6691" x="2.14897745011" y="-1.13267890625" z="-1.16332336064">
+        <neutronic p="-15.6164" r="4.72521" t="119.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6692" x="2.14897745011" y="-1.094496875" z="-1.16332336064">
+        <neutronic p="-14.9739" r="4.72566" t="119.517"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6693" x="2.14897745011" y="-1.05631484375" z="-1.16332336064">
+        <neutronic p="-14.328" r="4.72608" t="119.589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6694" x="2.14897745011" y="-1.0181328125" z="-1.16332336064">
+        <neutronic p="-13.6786" r="4.72647" t="119.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6695" x="2.14897745011" y="-0.97995078125" z="-1.16332336064">
+        <neutronic p="-13.0261" r="4.72684" t="119.725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6696" x="2.14897745011" y="-0.94176875" z="-1.16332336064">
+        <neutronic p="-12.3704" r="4.72717" t="119.789"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6697" x="2.14897745011" y="-0.90358671875" z="-1.16332336064">
+        <neutronic p="-11.7119" r="4.72748" t="119.85"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6698" x="2.14897745011" y="-0.8654046875" z="-1.16332336064">
+        <neutronic p="-11.0506" r="4.72776" t="119.907"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6699" x="2.14897745011" y="-0.82722265625" z="-1.16332336064">
+        <neutronic p="-10.3867" r="4.72801" t="119.961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6700" x="2.14897745011" y="-0.789040625" z="-1.16332336064">
+        <neutronic p="-9.72035" r="4.72824" t="120.013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6701" x="2.14897745011" y="-0.75085859375" z="-1.16332336064">
+        <neutronic p="-9.05178" r="4.72843" t="120.06"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6702" x="2.14897745011" y="-0.7126765625" z="-1.16332336064">
+        <neutronic p="-8.38115" r="4.7286" t="120.105"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6703" x="2.14897745011" y="-0.67449453125" z="-1.16332336064">
+        <neutronic p="-7.70863" r="4.72874" t="120.146"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6704" x="2.14897745011" y="-0.6363125" z="-1.16332336064">
+        <neutronic p="-7.03441" r="4.72885" t="120.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6705" x="2.14897745011" y="-0.59813046875" z="-1.16332336064">
+        <neutronic p="-6.35867" r="4.72893" t="120.219"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6706" x="2.14897745011" y="-0.5599484375" z="-1.16332336064">
+        <neutronic p="-5.6816" r="4.72898" t="120.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6707" x="2.14897745011" y="-0.52176640625" z="-1.16332336064">
+        <neutronic p="-5.00341" r="4.72901" t="120.277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6708" x="2.14897745011" y="-0.483584375" z="-1.16332336064">
+        <neutronic p="-4.32426" r="4.729" t="120.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6709" x="2.14897745011" y="-0.44540234375" z="-1.16332336064">
+        <neutronic p="-3.64437" r="4.72897" t="120.322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6710" x="2.14897745011" y="-0.4072203125" z="-1.16332336064">
+        <neutronic p="-2.96393" r="4.72891" t="120.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6711" x="2.14897745011" y="-0.36903828125" z="-1.16332336064">
+        <neutronic p="-2.28314" r="4.72882" t="120.353"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6712" x="2.14897745011" y="-0.33085625" z="-1.16332336064">
+        <neutronic p="-1.60219" r="4.7287" t="120.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6713" x="2.14897745011" y="-0.29267421875" z="-1.16332336064">
+        <neutronic p="-0.921277" r="4.72855" t="120.37"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6714" x="2.14897745011" y="-0.2544921875" z="-1.16332336064">
+        <neutronic p="-0.240602" r="4.72838" t="120.373"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6734" x="2.09238322873" y="-1.9345015625" z="-1.26228275225">
+        <neutronic p="-28.8054" r="4.70977" t="119.731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6735" x="2.09238322873" y="-1.89631953125" z="-1.26228275225">
+        <neutronic p="-28.2512" r="4.71076" t="119.861"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6736" x="2.09238322873" y="-1.8581375" z="-1.26228275225">
+        <neutronic p="-27.6914" r="4.71172" t="119.99"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6737" x="2.09238322873" y="-1.81995546875" z="-1.26228275225">
+        <neutronic p="-27.126" r="4.71265" t="120.117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6738" x="2.09238322873" y="-1.7817734375" z="-1.26228275225">
+        <neutronic p="-26.555" r="4.71356" t="120.242"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6739" x="2.09238322873" y="-1.74359140625" z="-1.26228275225">
+        <neutronic p="-25.9786" r="4.71445" t="120.366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6740" x="2.09238322873" y="-1.705409375" z="-1.26228275225">
+        <neutronic p="-25.3967" r="4.71532" t="120.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6741" x="2.09238322873" y="-1.66722734375" z="-1.26228275225">
+        <neutronic p="-24.8093" r="4.71616" t="120.609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6742" x="2.09238322873" y="-1.6290453125" z="-1.26228275225">
+        <neutronic p="-24.2166" r="4.71697" t="120.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6743" x="2.09238322873" y="-1.59086328125" z="-1.26228275225">
+        <neutronic p="-23.6186" r="4.71776" t="120.844"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6744" x="2.09238322873" y="-1.55268125" z="-1.26228275225">
+        <neutronic p="-23.0154" r="4.71852" t="120.959"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6745" x="2.09238322873" y="-1.51449921875" z="-1.26228275225">
+        <neutronic p="-22.4069" r="4.71926" t="121.071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6746" x="2.09238322873" y="-1.4763171875" z="-1.26228275225">
+        <neutronic p="-21.7934" r="4.71998" t="121.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6747" x="2.09238322873" y="-1.43813515625" z="-1.26228275225">
+        <neutronic p="-21.1749" r="4.72066" t="121.289"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6748" x="2.09238322873" y="-1.399953125" z="-1.26228275225">
+        <neutronic p="-20.5514" r="4.72133" t="121.395"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6749" x="2.09238322873" y="-1.36177109375" z="-1.26228275225">
+        <neutronic p="-19.9232" r="4.72196" t="121.498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6750" x="2.09238322873" y="-1.3235890625" z="-1.26228275225">
+        <neutronic p="-19.2902" r="4.72257" t="121.598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6751" x="2.09238322873" y="-1.28540703125" z="-1.26228275225">
+        <neutronic p="-18.6526" r="4.72315" t="121.696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6752" x="2.09238322873" y="-1.247225" z="-1.26228275225">
+        <neutronic p="-18.0105" r="4.72371" t="121.791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6753" x="2.09238322873" y="-1.20904296875" z="-1.26228275225">
+        <neutronic p="-17.364" r="4.72424" t="121.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6754" x="2.09238322873" y="-1.1708609375" z="-1.26228275225">
+        <neutronic p="-16.7132" r="4.72474" t="121.973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6755" x="2.09238322873" y="-1.13267890625" z="-1.26228275225">
+        <neutronic p="-16.0584" r="4.72521" t="122.06"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6756" x="2.09238322873" y="-1.094496875" z="-1.26228275225">
+        <neutronic p="-15.3996" r="4.72566" t="122.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6757" x="2.09238322873" y="-1.05631484375" z="-1.26228275225">
+        <neutronic p="-14.7369" r="4.72608" t="122.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6758" x="2.09238322873" y="-1.0181328125" z="-1.26228275225">
+        <neutronic p="-14.0706" r="4.72647" t="122.301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6759" x="2.09238322873" y="-0.97995078125" z="-1.26228275225">
+        <neutronic p="-13.4007" r="4.72684" t="122.375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6760" x="2.09238322873" y="-0.94176875" z="-1.26228275225">
+        <neutronic p="-12.7275" r="4.72717" t="122.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6761" x="2.09238322873" y="-0.90358671875" z="-1.26228275225">
+        <neutronic p="-12.0511" r="4.72748" t="122.513"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6762" x="2.09238322873" y="-0.8654046875" z="-1.26228275225">
+        <neutronic p="-11.3716" r="4.72776" t="122.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6763" x="2.09238322873" y="-0.82722265625" z="-1.26228275225">
+        <neutronic p="-10.6894" r="4.72801" t="122.637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6764" x="2.09238322873" y="-0.789040625" z="-1.26228275225">
+        <neutronic p="-10.0044" r="4.72824" t="122.694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6765" x="2.09238322873" y="-0.75085859375" z="-1.26228275225">
+        <neutronic p="-9.31705" r="4.72843" t="122.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6766" x="2.09238322873" y="-0.7126765625" z="-1.26228275225">
+        <neutronic p="-8.62738" r="4.7286" t="122.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6767" x="2.09238322873" y="-0.67449453125" z="-1.26228275225">
+        <neutronic p="-7.93563" r="4.72874" t="122.843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6768" x="2.09238322873" y="-0.6363125" z="-1.26228275225">
+        <neutronic p="-7.24199" r="4.72885" t="122.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6769" x="2.09238322873" y="-0.59813046875" z="-1.26228275225">
+        <neutronic p="-6.54667" r="4.72893" t="122.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6770" x="2.09238322873" y="-0.5599484375" z="-1.26228275225">
+        <neutronic p="-5.84988" r="4.72898" t="122.958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6771" x="2.09238322873" y="-0.52176640625" z="-1.26228275225">
+        <neutronic p="-5.15182" r="4.72901" t="122.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6772" x="2.09238322873" y="-0.483584375" z="-1.26228275225">
+        <neutronic p="-4.45271" r="4.729" t="123.015"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6773" x="2.09238322873" y="-0.44540234375" z="-1.26228275225">
+        <neutronic p="-3.75275" r="4.72897" t="123.038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6774" x="2.09238322873" y="-0.4072203125" z="-1.26228275225">
+        <neutronic p="-3.05216" r="4.72891" t="123.057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6775" x="2.09238322873" y="-0.36903828125" z="-1.26228275225">
+        <neutronic p="-2.35115" r="4.72882" t="123.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6776" x="2.09238322873" y="-0.33085625" z="-1.26228275225">
+        <neutronic p="-1.64994" r="4.7287" t="123.084"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6777" x="2.09238322873" y="-0.29267421875" z="-1.26228275225">
+        <neutronic p="-0.948746" r="4.72855" t="123.091"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6778" x="2.09238322873" y="-0.2544921875" z="-1.26228275225">
+        <neutronic p="-0.247778" r="4.72838" t="123.094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6798" x="2.03123526467" y="-1.9345015625" z="-1.35849498418">
+        <neutronic p="-29.6009" r="4.70977" t="122.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6799" x="2.03123526467" y="-1.89631953125" z="-1.35849498418">
+        <neutronic p="-29.037" r="4.71076" t="122.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6800" x="2.03123526467" y="-1.8581375" z="-1.35849498418">
+        <neutronic p="-28.4671" r="4.71172" t="122.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6801" x="2.03123526467" y="-1.81995546875" z="-1.35849498418">
+        <neutronic p="-27.8912" r="4.71265" t="122.531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6802" x="2.03123526467" y="-1.7817734375" z="-1.35849498418">
+        <neutronic p="-27.3093" r="4.71356" t="122.669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6803" x="2.03123526467" y="-1.74359140625" z="-1.35849498418">
+        <neutronic p="-26.7216" r="4.71445" t="122.805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6804" x="2.03123526467" y="-1.705409375" z="-1.35849498418">
+        <neutronic p="-26.1279" r="4.71532" t="122.94"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6805" x="2.03123526467" y="-1.66722734375" z="-1.35849498418">
+        <neutronic p="-25.5283" r="4.71616" t="123.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6806" x="2.03123526467" y="-1.6290453125" z="-1.35849498418">
+        <neutronic p="-24.923" r="4.71697" t="123.203"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6807" x="2.03123526467" y="-1.59086328125" z="-1.35849498418">
+        <neutronic p="-24.3119" r="4.71776" t="123.331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6808" x="2.03123526467" y="-1.55268125" z="-1.35849498418">
+        <neutronic p="-23.6952" r="4.71852" t="123.457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6809" x="2.03123526467" y="-1.51449921875" z="-1.35849498418">
+        <neutronic p="-23.0729" r="4.71926" t="123.581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6810" x="2.03123526467" y="-1.4763171875" z="-1.35849498418">
+        <neutronic p="-22.445" r="4.71998" t="123.703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6811" x="2.03123526467" y="-1.43813515625" z="-1.35849498418">
+        <neutronic p="-21.8117" r="4.72066" t="123.822"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6812" x="2.03123526467" y="-1.399953125" z="-1.35849498418">
+        <neutronic p="-21.173" r="4.72133" t="123.938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6813" x="2.03123526467" y="-1.36177109375" z="-1.35849498418">
+        <neutronic p="-20.5291" r="4.72196" t="124.052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6814" x="2.03123526467" y="-1.3235890625" z="-1.35849498418">
+        <neutronic p="-19.8801" r="4.72257" t="124.163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6815" x="2.03123526467" y="-1.28540703125" z="-1.35849498418">
+        <neutronic p="-19.226" r="4.72315" t="124.271"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6816" x="2.03123526467" y="-1.247225" z="-1.35849498418">
+        <neutronic p="-18.567" r="4.72371" t="124.376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6817" x="2.03123526467" y="-1.20904296875" z="-1.35849498418">
+        <neutronic p="-17.9032" r="4.72424" t="124.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6818" x="2.03123526467" y="-1.1708609375" z="-1.35849498418">
+        <neutronic p="-17.2348" r="4.72474" t="124.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6819" x="2.03123526467" y="-1.13267890625" z="-1.35849498418">
+        <neutronic p="-16.5619" r="4.72521" t="124.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6820" x="2.03123526467" y="-1.094496875" z="-1.35849498418">
+        <neutronic p="-15.8845" r="4.72566" t="124.765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6821" x="2.03123526467" y="-1.05631484375" z="-1.35849498418">
+        <neutronic p="-15.203" r="4.72608" t="124.853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6822" x="2.03123526467" y="-1.0181328125" z="-1.35849498418">
+        <neutronic p="-14.5175" r="4.72647" t="124.939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6823" x="2.03123526467" y="-0.97995078125" z="-1.35849498418">
+        <neutronic p="-13.828" r="4.72684" t="125.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6824" x="2.03123526467" y="-0.94176875" z="-1.35849498418">
+        <neutronic p="-13.1349" r="4.72717" t="125.099"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6825" x="2.03123526467" y="-0.90358671875" z="-1.35849498418">
+        <neutronic p="-12.4382" r="4.72748" t="125.173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6826" x="2.03123526467" y="-0.8654046875" z="-1.35849498418">
+        <neutronic p="-11.7382" r="4.72776" t="125.244"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6827" x="2.03123526467" y="-0.82722265625" z="-1.35849498418">
+        <neutronic p="-11.0351" r="4.72801" t="125.31"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6828" x="2.03123526467" y="-0.789040625" z="-1.35849498418">
+        <neutronic p="-10.329" r="4.72824" t="125.373"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6829" x="2.03123526467" y="-0.75085859375" z="-1.35849498418">
+        <neutronic p="-9.62015" r="4.72843" t="125.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6830" x="2.03123526467" y="-0.7126765625" z="-1.35849498418">
+        <neutronic p="-8.90879" r="4.7286" t="125.487"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6831" x="2.03123526467" y="-0.67449453125" z="-1.35849498418">
+        <neutronic p="-8.19511" r="4.72874" t="125.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6832" x="2.03123526467" y="-0.6363125" z="-1.35849498418">
+        <neutronic p="-7.47932" r="4.72885" t="125.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6833" x="2.03123526467" y="-0.59813046875" z="-1.35849498418">
+        <neutronic p="-6.76166" r="4.72893" t="125.627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6834" x="2.03123526467" y="-0.5599484375" z="-1.35849498418">
+        <neutronic p="-6.04234" r="4.72898" t="125.665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6835" x="2.03123526467" y="-0.52176640625" z="-1.35849498418">
+        <neutronic p="-5.3216" r="4.72901" t="125.699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6836" x="2.03123526467" y="-0.483584375" z="-1.35849498418">
+        <neutronic p="-4.59965" r="4.729" t="125.729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6837" x="2.03123526467" y="-0.44540234375" z="-1.35849498418">
+        <neutronic p="-3.87675" r="4.72897" t="125.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6838" x="2.03123526467" y="-0.4072203125" z="-1.35849498418">
+        <neutronic p="-3.15311" r="4.72891" t="125.775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6839" x="2.03123526467" y="-0.36903828125" z="-1.35849498418">
+        <neutronic p="-2.42898" r="4.72882" t="125.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6840" x="2.03123526467" y="-0.33085625" z="-1.35849498418">
+        <neutronic p="-1.70459" r="4.7287" t="125.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6841" x="2.03123526467" y="-0.29267421875" z="-1.35849498418">
+        <neutronic p="-0.980182" r="4.72855" t="125.812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6842" x="2.03123526467" y="-0.2544921875" z="-1.35849498418">
+        <neutronic p="-0.255989" r="4.72838" t="125.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6862" x="1.96566663686" y="-1.9345015625" z="-1.45175066566">
+        <neutronic p="-30.4959" r="4.70977" t="124.463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6863" x="1.96566663686" y="-1.89631953125" z="-1.45175066566">
+        <neutronic p="-29.9216" r="4.71076" t="124.619"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6864" x="1.96566663686" y="-1.8581375" z="-1.45175066566">
+        <neutronic p="-29.3408" r="4.71172" t="124.774"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6865" x="1.96566663686" y="-1.81995546875" z="-1.45175066566">
+        <neutronic p="-28.7535" r="4.71265" t="124.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6866" x="1.96566663686" y="-1.7817734375" z="-1.45175066566">
+        <neutronic p="-28.1598" r="4.71356" t="125.078"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6867" x="1.96566663686" y="-1.74359140625" z="-1.45175066566">
+        <neutronic p="-27.5597" r="4.71445" t="125.228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6868" x="1.96566663686" y="-1.705409375" z="-1.45175066566">
+        <neutronic p="-26.9532" r="4.71532" t="125.375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6869" x="1.96566663686" y="-1.66722734375" z="-1.45175066566">
+        <neutronic p="-26.3404" r="4.71616" t="125.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6870" x="1.96566663686" y="-1.6290453125" z="-1.45175066566">
+        <neutronic p="-25.7212" r="4.71697" t="125.663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6871" x="1.96566663686" y="-1.59086328125" z="-1.45175066566">
+        <neutronic p="-25.0959" r="4.71776" t="125.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6872" x="1.96566663686" y="-1.55268125" z="-1.45175066566">
+        <neutronic p="-24.4643" r="4.71852" t="125.943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6873" x="1.96566663686" y="-1.51449921875" z="-1.45175066566">
+        <neutronic p="-23.8266" r="4.71926" t="126.079"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6874" x="1.96566663686" y="-1.4763171875" z="-1.45175066566">
+        <neutronic p="-23.1829" r="4.71998" t="126.212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6875" x="1.96566663686" y="-1.43813515625" z="-1.45175066566">
+        <neutronic p="-22.5333" r="4.72066" t="126.342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6876" x="1.96566663686" y="-1.399953125" z="-1.45175066566">
+        <neutronic p="-21.8778" r="4.72133" t="126.47"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6877" x="1.96566663686" y="-1.36177109375" z="-1.45175066566">
+        <neutronic p="-21.2165" r="4.72196" t="126.595"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6878" x="1.96566663686" y="-1.3235890625" z="-1.45175066566">
+        <neutronic p="-20.5496" r="4.72257" t="126.717"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6879" x="1.96566663686" y="-1.28540703125" z="-1.45175066566">
+        <neutronic p="-19.8771" r="4.72315" t="126.836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6880" x="1.96566663686" y="-1.247225" z="-1.45175066566">
+        <neutronic p="-19.1993" r="4.72371" t="126.951"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6881" x="1.96566663686" y="-1.20904296875" z="-1.45175066566">
+        <neutronic p="-18.5161" r="4.72424" t="127.063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6882" x="1.96566663686" y="-1.1708609375" z="-1.45175066566">
+        <neutronic p="-17.8279" r="4.72474" t="127.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6883" x="1.96566663686" y="-1.13267890625" z="-1.45175066566">
+        <neutronic p="-17.1346" r="4.72521" t="127.277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6884" x="1.96566663686" y="-1.094496875" z="-1.45175066566">
+        <neutronic p="-16.4365" r="4.72566" t="127.379"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6885" x="1.96566663686" y="-1.05631484375" z="-1.45175066566">
+        <neutronic p="-15.7338" r="4.72608" t="127.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6886" x="1.96566663686" y="-1.0181328125" z="-1.45175066566">
+        <neutronic p="-15.0265" r="4.72647" t="127.571"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6887" x="1.96566663686" y="-0.97995078125" z="-1.45175066566">
+        <neutronic p="-14.315" r="4.72684" t="127.661"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6888" x="1.96566663686" y="-0.94176875" z="-1.45175066566">
+        <neutronic p="-13.5993" r="4.72717" t="127.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6889" x="1.96566663686" y="-0.90358671875" z="-1.45175066566">
+        <neutronic p="-12.8797" r="4.72748" t="127.829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6890" x="1.96566663686" y="-0.8654046875" z="-1.45175066566">
+        <neutronic p="-12.1564" r="4.72776" t="127.907"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6891" x="1.96566663686" y="-0.82722265625" z="-1.45175066566">
+        <neutronic p="-11.4295" r="4.72801" t="127.98"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6892" x="1.96566663686" y="-0.789040625" z="-1.45175066566">
+        <neutronic p="-10.6994" r="4.72824" t="128.049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6893" x="1.96566663686" y="-0.75085859375" z="-1.45175066566">
+        <neutronic p="-9.96622" r="4.72843" t="128.114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6894" x="1.96566663686" y="-0.7126765625" z="-1.45175066566">
+        <neutronic p="-9.23018" r="4.7286" t="128.175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6895" x="1.96566663686" y="-0.67449453125" z="-1.45175066566">
+        <neutronic p="-8.49153" r="4.72874" t="128.231"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6896" x="1.96566663686" y="-0.6363125" z="-1.45175066566">
+        <neutronic p="-7.75051" r="4.72885" t="128.282"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6897" x="1.96566663686" y="-0.59813046875" z="-1.45175066566">
+        <neutronic p="-7.00736" r="4.72893" t="128.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6898" x="1.96566663686" y="-0.5599484375" z="-1.45175066566">
+        <neutronic p="-6.26234" r="4.72898" t="128.371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6899" x="1.96566663686" y="-0.52176640625" z="-1.45175066566">
+        <neutronic p="-5.5157" r="4.72901" t="128.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6900" x="1.96566663686" y="-0.483584375" z="-1.45175066566">
+        <neutronic p="-4.76768" r="4.729" t="128.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6901" x="1.96566663686" y="-0.44540234375" z="-1.45175066566">
+        <neutronic p="-4.01855" r="4.72897" t="128.469"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6902" x="1.96566663686" y="-0.4072203125" z="-1.45175066566">
+        <neutronic p="-3.26857" r="4.72891" t="128.493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6903" x="1.96566663686" y="-0.36903828125" z="-1.45175066566">
+        <neutronic p="-2.518" r="4.72882" t="128.511"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6904" x="1.96566663686" y="-0.33085625" z="-1.45175066566">
+        <neutronic p="-1.7671" r="4.7287" t="128.525"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6905" x="1.96566663686" y="-0.29267421875" z="-1.45175066566">
+        <neutronic p="-1.01614" r="4.72855" t="128.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6906" x="1.96566663686" y="-0.2544921875" z="-1.45175066566">
+        <neutronic p="-0.265383" r="4.72838" t="128.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6926" x="1.89582004508" y="-1.9345015625" z="-1.54184684038">
+        <neutronic p="-31.5007" r="4.70977" t="126.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6927" x="1.89582004508" y="-1.89631953125" z="-1.54184684038">
+        <neutronic p="-30.9154" r="4.71076" t="126.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6928" x="1.89582004508" y="-1.8581375" z="-1.54184684038">
+        <neutronic p="-30.3231" r="4.71172" t="127.135"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6929" x="1.89582004508" y="-1.81995546875" z="-1.54184684038">
+        <neutronic p="-29.7237" r="4.71265" t="127.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6930" x="1.89582004508" y="-1.7817734375" z="-1.54184684038">
+        <neutronic p="-29.1173" r="4.71356" t="127.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6931" x="1.89582004508" y="-1.74359140625" z="-1.54184684038">
+        <neutronic p="-28.504" r="4.71445" t="127.63"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6932" x="1.89582004508" y="-1.705409375" z="-1.54184684038">
+        <neutronic p="-27.8837" r="4.71532" t="127.791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6933" x="1.89582004508" y="-1.66722734375" z="-1.54184684038">
+        <neutronic p="-27.2564" r="4.71616" t="127.95"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6934" x="1.89582004508" y="-1.6290453125" z="-1.54184684038">
+        <neutronic p="-26.6223" r="4.71697" t="128.106"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6935" x="1.89582004508" y="-1.59086328125" z="-1.54184684038">
+        <neutronic p="-25.9813" r="4.71776" t="128.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6936" x="1.89582004508" y="-1.55268125" z="-1.54184684038">
+        <neutronic p="-25.3336" r="4.71852" t="128.412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6937" x="1.89582004508" y="-1.51449921875" z="-1.54184684038">
+        <neutronic p="-24.6791" r="4.71926" t="128.56"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6938" x="1.89582004508" y="-1.4763171875" z="-1.54184684038">
+        <neutronic p="-24.018" r="4.71998" t="128.706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6939" x="1.89582004508" y="-1.43813515625" z="-1.54184684038">
+        <neutronic p="-23.3504" r="4.72066" t="128.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6940" x="1.89582004508" y="-1.399953125" z="-1.54184684038">
+        <neutronic p="-22.6762" r="4.72133" t="128.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6941" x="1.89582004508" y="-1.36177109375" z="-1.54184684038">
+        <neutronic p="-21.9958" r="4.72196" t="129.126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6942" x="1.89582004508" y="-1.3235890625" z="-1.54184684038">
+        <neutronic p="-21.309" r="4.72257" t="129.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6943" x="1.89582004508" y="-1.28540703125" z="-1.54184684038">
+        <neutronic p="-20.6162" r="4.72315" t="129.39"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6944" x="1.89582004508" y="-1.247225" z="-1.54184684038">
+        <neutronic p="-19.9173" r="4.72371" t="129.516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6945" x="1.89582004508" y="-1.20904296875" z="-1.54184684038">
+        <neutronic p="-19.2126" r="4.72424" t="129.639"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6946" x="1.89582004508" y="-1.1708609375" z="-1.54184684038">
+        <neutronic p="-18.5021" r="4.72474" t="129.758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6947" x="1.89582004508" y="-1.13267890625" z="-1.54184684038">
+        <neutronic p="-17.7861" r="4.72521" t="129.874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6948" x="1.89582004508" y="-1.094496875" z="-1.54184684038">
+        <neutronic p="-17.0647" r="4.72566" t="129.985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6949" x="1.89582004508" y="-1.05631484375" z="-1.54184684038">
+        <neutronic p="-16.3381" r="4.72608" t="130.093"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6950" x="1.89582004508" y="-1.0181328125" z="-1.54184684038">
+        <neutronic p="-15.6064" r="4.72647" t="130.196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6951" x="1.89582004508" y="-0.97995078125" z="-1.54184684038">
+        <neutronic p="-14.8699" r="4.72684" t="130.295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6952" x="1.89582004508" y="-0.94176875" z="-1.54184684038">
+        <neutronic p="-14.1288" r="4.72717" t="130.389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6953" x="1.89582004508" y="-0.90358671875" z="-1.54184684038">
+        <neutronic p="-13.3833" r="4.72748" t="130.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6954" x="1.89582004508" y="-0.8654046875" z="-1.54184684038">
+        <neutronic p="-12.6336" r="4.72776" t="130.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6955" x="1.89582004508" y="-0.82722265625" z="-1.54184684038">
+        <neutronic p="-11.8799" r="4.72801" t="130.646"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6956" x="1.89582004508" y="-0.789040625" z="-1.54184684038">
+        <neutronic p="-11.1225" r="4.72824" t="130.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6957" x="1.89582004508" y="-0.75085859375" z="-1.54184684038">
+        <neutronic p="-10.3616" r="4.72843" t="130.793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6958" x="1.89582004508" y="-0.7126765625" z="-1.54184684038">
+        <neutronic p="-9.59746" r="4.7286" t="130.86"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6959" x="1.89582004508" y="-0.67449453125" z="-1.54184684038">
+        <neutronic p="-8.83038" r="4.72874" t="130.922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6960" x="1.89582004508" y="-0.6363125" z="-1.54184684038">
+        <neutronic p="-8.0606" r="4.72885" t="130.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6961" x="1.89582004508" y="-0.59813046875" z="-1.54184684038">
+        <neutronic p="-7.28839" r="4.72893" t="131.03"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6962" x="1.89582004508" y="-0.5599484375" z="-1.54184684038">
+        <neutronic p="-6.51402" r="4.72898" t="131.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6963" x="1.89582004508" y="-0.52176640625" z="-1.54184684038">
+        <neutronic p="-5.73779" r="4.72901" t="131.117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6964" x="1.89582004508" y="-0.483584375" z="-1.54184684038">
+        <neutronic p="-4.95997" r="4.729" t="131.153"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6965" x="1.89582004508" y="-0.44540234375" z="-1.54184684038">
+        <neutronic p="-4.18086" r="4.72897" t="131.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6966" x="1.89582004508" y="-0.4072203125" z="-1.54184684038">
+        <neutronic p="-3.40075" r="4.72891" t="131.21"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6967" x="1.89582004508" y="-0.36903828125" z="-1.54184684038">
+        <neutronic p="-2.61992" r="4.72882" t="131.23"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6968" x="1.89582004508" y="-0.33085625" z="-1.54184684038">
+        <neutronic p="-1.83868" r="4.7287" t="131.245"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6969" x="1.89582004508" y="-0.29267421875" z="-1.54184684038">
+        <neutronic p="-1.05732" r="4.72855" t="131.255"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6970" x="1.89582004508" y="-0.2544921875" z="-1.54184684038">
+        <neutronic p="-0.276139" r="4.72838" t="131.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6990" x="1.82184749945" y="-1.9345015625" z="-1.62858742819">
+        <neutronic p="-32.6278" r="4.70977" t="129.103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6991" x="1.82184749945" y="-1.89631953125" z="-1.62858742819">
+        <neutronic p="-32.031" r="4.71076" t="129.288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6992" x="1.82184749945" y="-1.8581375" z="-1.62858742819">
+        <neutronic p="-31.4265" r="4.71172" t="129.472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6993" x="1.82184749945" y="-1.81995546875" z="-1.62858742819">
+        <neutronic p="-30.8144" r="4.71265" t="129.653"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6994" x="1.82184749945" y="-1.7817734375" z="-1.62858742819">
+        <neutronic p="-30.1946" r="4.71356" t="129.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6995" x="1.82184749945" y="-1.74359140625" z="-1.62858742819">
+        <neutronic p="-29.5671" r="4.71445" t="130.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6996" x="1.82184749945" y="-1.705409375" z="-1.62858742819">
+        <neutronic p="-28.932" r="4.71532" t="130.185"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6997" x="1.82184749945" y="-1.66722734375" z="-1.62858742819">
+        <neutronic p="-28.2893" r="4.71616" t="130.358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6998" x="1.82184749945" y="-1.6290453125" z="-1.62858742819">
+        <neutronic p="-27.639" r="4.71697" t="130.529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="6999" x="1.82184749945" y="-1.59086328125" z="-1.62858742819">
+        <neutronic p="-26.9812" r="4.71776" t="130.697"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7000" x="1.82184749945" y="-1.55268125" z="-1.62858742819">
+        <neutronic p="-26.3159" r="4.71852" t="130.862"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7001" x="1.82184749945" y="-1.51449921875" z="-1.62858742819">
+        <neutronic p="-25.6432" r="4.71926" t="131.024"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7002" x="1.82184749945" y="-1.4763171875" z="-1.62858742819">
+        <neutronic p="-24.9631" r="4.71998" t="131.183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7003" x="1.82184749945" y="-1.43813515625" z="-1.62858742819">
+        <neutronic p="-24.2758" r="4.72066" t="131.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7004" x="1.82184749945" y="-1.399953125" z="-1.62858742819">
+        <neutronic p="-23.5812" r="4.72133" t="131.492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7005" x="1.82184749945" y="-1.36177109375" z="-1.62858742819">
+        <neutronic p="-22.8796" r="4.72196" t="131.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7006" x="1.82184749945" y="-1.3235890625" z="-1.62858742819">
+        <neutronic p="-22.171" r="4.72257" t="131.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7007" x="1.82184749945" y="-1.28540703125" z="-1.62858742819">
+        <neutronic p="-21.4555" r="4.72315" t="131.93"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7008" x="1.82184749945" y="-1.247225" z="-1.62858742819">
+        <neutronic p="-20.7333" r="4.72371" t="132.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7009" x="1.82184749945" y="-1.20904296875" z="-1.62858742819">
+        <neutronic p="-20.0045" r="4.72424" t="132.203"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7010" x="1.82184749945" y="-1.1708609375" z="-1.62858742819">
+        <neutronic p="-19.2693" r="4.72474" t="132.334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7011" x="1.82184749945" y="-1.13267890625" z="-1.62858742819">
+        <neutronic p="-18.5279" r="4.72521" t="132.46"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7012" x="1.82184749945" y="-1.094496875" z="-1.62858742819">
+        <neutronic p="-17.7804" r="4.72566" t="132.582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7013" x="1.82184749945" y="-1.05631484375" z="-1.62858742819">
+        <neutronic p="-17.027" r="4.72608" t="132.7"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7014" x="1.82184749945" y="-1.0181328125" z="-1.62858742819">
+        <neutronic p="-16.2679" r="4.72647" t="132.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7015" x="1.82184749945" y="-0.97995078125" z="-1.62858742819">
+        <neutronic p="-15.5033" r="4.72684" t="132.922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7016" x="1.82184749945" y="-0.94176875" z="-1.62858742819">
+        <neutronic p="-14.7334" r="4.72717" t="133.025"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7017" x="1.82184749945" y="-0.90358671875" z="-1.62858742819">
+        <neutronic p="-13.9586" r="4.72748" t="133.124"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7018" x="1.82184749945" y="-0.8654046875" z="-1.62858742819">
+        <neutronic p="-13.179" r="4.72776" t="133.218"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7019" x="1.82184749945" y="-0.82722265625" z="-1.62858742819">
+        <neutronic p="-12.3948" r="4.72801" t="133.307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7020" x="1.82184749945" y="-0.789040625" z="-1.62858742819">
+        <neutronic p="-11.6064" r="4.72824" t="133.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7021" x="1.82184749945" y="-0.75085859375" z="-1.62858742819">
+        <neutronic p="-10.814" r="4.72843" t="133.469"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7022" x="1.82184749945" y="-0.7126765625" z="-1.62858742819">
+        <neutronic p="-10.018" r="4.7286" t="133.542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7023" x="1.82184749945" y="-0.67449453125" z="-1.62858742819">
+        <neutronic p="-9.21846" r="4.72874" t="133.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7024" x="1.82184749945" y="-0.6363125" z="-1.62858742819">
+        <neutronic p="-8.41586" r="4.72885" t="133.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7025" x="1.82184749945" y="-0.59813046875" z="-1.62858742819">
+        <neutronic p="-7.61044" r="4.72893" t="133.729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7026" x="1.82184749945" y="-0.5599484375" z="-1.62858742819">
+        <neutronic p="-6.80253" r="4.72898" t="133.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7027" x="1.82184749945" y="-0.52176640625" z="-1.62858742819">
+        <neutronic p="-5.99245" r="4.72901" t="133.825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7028" x="1.82184749945" y="-0.483584375" z="-1.62858742819">
+        <neutronic p="-5.18051" r="4.729" t="133.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7029" x="1.82184749945" y="-0.44540234375" z="-1.62858742819">
+        <neutronic p="-4.36704" r="4.72897" t="133.899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7030" x="1.82184749945" y="-0.4072203125" z="-1.62858742819">
+        <neutronic p="-3.55238" r="4.72891" t="133.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7031" x="1.82184749945" y="-0.36903828125" z="-1.62858742819">
+        <neutronic p="-2.73686" r="4.72882" t="133.949"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7032" x="1.82184749945" y="-0.33085625" z="-1.62858742819">
+        <neutronic p="-1.92081" r="4.7287" t="133.966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7033" x="1.82184749945" y="-0.29267421875" z="-1.62858742819">
+        <neutronic p="-1.10457" r="4.72855" t="133.977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7034" x="1.82184749945" y="-0.2544921875" z="-1.62858742819">
+        <neutronic p="-0.288482" r="4.72838" t="133.981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7054" x="1.74390998956" y="-1.9345015625" z="-1.71178365187">
+        <neutronic p="-33.8914" r="4.70977" t="131.38"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7055" x="1.74390998956" y="-1.89631953125" z="-1.71178365187">
+        <neutronic p="-33.2828" r="4.71076" t="131.58"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7056" x="1.74390998956" y="-1.8581375" z="-1.71178365187">
+        <neutronic p="-32.6657" r="4.71172" t="131.779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7057" x="1.74390998956" y="-1.81995546875" z="-1.71178365187">
+        <neutronic p="-32.0403" r="4.71265" t="131.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7058" x="1.74390998956" y="-1.7817734375" z="-1.71178365187">
+        <neutronic p="-31.4064" r="4.71356" t="132.171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7059" x="1.74390998956" y="-1.74359140625" z="-1.71178365187">
+        <neutronic p="-30.7641" r="4.71445" t="132.364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7060" x="1.74390998956" y="-1.705409375" z="-1.71178365187">
+        <neutronic p="-30.1134" r="4.71532" t="132.554"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7061" x="1.74390998956" y="-1.66722734375" z="-1.71178365187">
+        <neutronic p="-29.4543" r="4.71616" t="132.742"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7062" x="1.74390998956" y="-1.6290453125" z="-1.71178365187">
+        <neutronic p="-28.7868" r="4.71697" t="132.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7063" x="1.74390998956" y="-1.59086328125" z="-1.71178365187">
+        <neutronic p="-28.111" r="4.71776" t="133.11"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7064" x="1.74390998956" y="-1.55268125" z="-1.71178365187">
+        <neutronic p="-27.4268" r="4.71852" t="133.29"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7065" x="1.74390998956" y="-1.51449921875" z="-1.71178365187">
+        <neutronic p="-26.7344" r="4.71926" t="133.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7066" x="1.74390998956" y="-1.4763171875" z="-1.71178365187">
+        <neutronic p="-26.0337" r="4.71998" t="133.64"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7067" x="1.74390998956" y="-1.43813515625" z="-1.71178365187">
+        <neutronic p="-25.3249" r="4.72066" t="133.81"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7068" x="1.74390998956" y="-1.399953125" z="-1.71178365187">
+        <neutronic p="-24.608" r="4.72133" t="133.977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7069" x="1.74390998956" y="-1.36177109375" z="-1.71178365187">
+        <neutronic p="-23.8832" r="4.72196" t="134.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7070" x="1.74390998956" y="-1.3235890625" z="-1.71178365187">
+        <neutronic p="-23.1505" r="4.72257" t="134.3"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7071" x="1.74390998956" y="-1.28540703125" z="-1.71178365187">
+        <neutronic p="-22.4101" r="4.72315" t="134.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7072" x="1.74390998956" y="-1.247225" z="-1.71178365187">
+        <neutronic p="-21.6621" r="4.72371" t="134.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7073" x="1.74390998956" y="-1.20904296875" z="-1.71178365187">
+        <neutronic p="-20.9067" r="4.72424" t="134.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7074" x="1.74390998956" y="-1.1708609375" z="-1.71178365187">
+        <neutronic p="-20.144" r="4.72474" t="134.896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7075" x="1.74390998956" y="-1.13267890625" z="-1.71178365187">
+        <neutronic p="-19.3742" r="4.72521" t="135.035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7076" x="1.74390998956" y="-1.094496875" z="-1.71178365187">
+        <neutronic p="-18.5974" r="4.72566" t="135.168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7077" x="1.74390998956" y="-1.05631484375" z="-1.71178365187">
+        <neutronic p="-17.814" r="4.72608" t="135.297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7078" x="1.74390998956" y="-1.0181328125" z="-1.71178365187">
+        <neutronic p="-17.024" r="4.72647" t="135.421"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7079" x="1.74390998956" y="-0.97995078125" z="-1.71178365187">
+        <neutronic p="-16.2278" r="4.72684" t="135.54"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7080" x="1.74390998956" y="-0.94176875" z="-1.71178365187">
+        <neutronic p="-15.4255" r="4.72717" t="135.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7081" x="1.74390998956" y="-0.90358671875" z="-1.71178365187">
+        <neutronic p="-14.6175" r="4.72748" t="135.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7082" x="1.74390998956" y="-0.8654046875" z="-1.71178365187">
+        <neutronic p="-13.804" r="4.72776" t="135.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7083" x="1.74390998956" y="-0.82722265625" z="-1.71178365187">
+        <neutronic p="-12.9853" r="4.72801" t="135.962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7084" x="1.74390998956" y="-0.789040625" z="-1.71178365187">
+        <neutronic p="-12.1616" r="4.72824" t="136.054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7085" x="1.74390998956" y="-0.75085859375" z="-1.71178365187">
+        <neutronic p="-11.3334" r="4.72843" t="136.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7086" x="1.74390998956" y="-0.7126765625" z="-1.71178365187">
+        <neutronic p="-10.5008" r="4.7286" t="136.22"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7087" x="1.74390998956" y="-0.67449453125" z="-1.71178365187">
+        <neutronic p="-9.66429" r="4.72874" t="136.295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7088" x="1.74390998956" y="-0.6363125" z="-1.71178365187">
+        <neutronic p="-8.82413" r="4.72885" t="136.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7089" x="1.74390998956" y="-0.59813046875" z="-1.71178365187">
+        <neutronic p="-7.98069" r="4.72893" t="136.425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7090" x="1.74390998956" y="-0.5599484375" z="-1.71178365187">
+        <neutronic p="-7.13432" r="4.72898" t="136.481"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7091" x="1.74390998956" y="-0.52176640625" z="-1.71178365187">
+        <neutronic p="-6.28539" r="4.72901" t="136.531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7092" x="1.74390998956" y="-0.483584375" z="-1.71178365187">
+        <neutronic p="-5.43426" r="4.729" t="136.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7093" x="1.74390998956" y="-0.44540234375" z="-1.71178365187">
+        <neutronic p="-4.58131" r="4.72897" t="136.612"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7094" x="1.74390998956" y="-0.4072203125" z="-1.71178365187">
+        <neutronic p="-3.72692" r="4.72891" t="136.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7095" x="1.74390998956" y="-0.36903828125" z="-1.71178365187">
+        <neutronic p="-2.87148" r="4.72882" t="136.668"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7096" x="1.74390998956" y="-0.33085625" z="-1.71178365187">
+        <neutronic p="-2.01537" r="4.7287" t="136.686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7097" x="1.74390998956" y="-0.29267421875" z="-1.71178365187">
+        <neutronic p="-1.15898" r="4.72855" t="136.698"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7098" x="1.74390998956" y="-0.2544921875" z="-1.71178365187">
+        <neutronic p="-0.302695" r="4.72838" t="136.703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7118" x="1.66217713414" y="-1.9345015625" z="-1.79125444793">
+        <neutronic p="-35.308" r="4.70977" t="133.62"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7119" x="1.66217713414" y="-1.89631953125" z="-1.79125444793">
+        <neutronic p="-34.6874" r="4.71076" t="133.837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7120" x="1.66217713414" y="-1.8581375" z="-1.79125444793">
+        <neutronic p="-34.0577" r="4.71172" t="134.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7121" x="1.66217713414" y="-1.81995546875" z="-1.79125444793">
+        <neutronic p="-33.4187" r="4.71265" t="134.266"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7122" x="1.66217713414" y="-1.7817734375" z="-1.79125444793">
+        <neutronic p="-32.7704" r="4.71356" t="134.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7123" x="1.66217713414" y="-1.74359140625" z="-1.79125444793">
+        <neutronic p="-32.1128" r="4.71445" t="134.686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7124" x="1.66217713414" y="-1.705409375" z="-1.79125444793">
+        <neutronic p="-31.4459" r="4.71532" t="134.893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7125" x="1.66217713414" y="-1.66722734375" z="-1.79125444793">
+        <neutronic p="-30.7696" r="4.71616" t="135.097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7126" x="1.66217713414" y="-1.6290453125" z="-1.79125444793">
+        <neutronic p="-30.0839" r="4.71697" t="135.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7127" x="1.66217713414" y="-1.59086328125" z="-1.79125444793">
+        <neutronic p="-29.389" r="4.71776" t="135.497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7128" x="1.66217713414" y="-1.55268125" z="-1.79125444793">
+        <neutronic p="-28.6847" r="4.71852" t="135.692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7129" x="1.66217713414" y="-1.51449921875" z="-1.79125444793">
+        <neutronic p="-27.9711" r="4.71926" t="135.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7130" x="1.66217713414" y="-1.4763171875" z="-1.79125444793">
+        <neutronic p="-27.2483" r="4.71998" t="136.073"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7131" x="1.66217713414" y="-1.43813515625" z="-1.79125444793">
+        <neutronic p="-26.5163" r="4.72066" t="136.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7132" x="1.66217713414" y="-1.399953125" z="-1.79125444793">
+        <neutronic p="-25.7753" r="4.72133" t="136.44"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7133" x="1.66217713414" y="-1.36177109375" z="-1.79125444793">
+        <neutronic p="-25.0252" r="4.72196" t="136.618"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7134" x="1.66217713414" y="-1.3235890625" z="-1.79125444793">
+        <neutronic p="-24.2662" r="4.72257" t="136.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7135" x="1.66217713414" y="-1.28540703125" z="-1.79125444793">
+        <neutronic p="-23.4984" r="4.72315" t="136.962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7136" x="1.66217713414" y="-1.247225" z="-1.79125444793">
+        <neutronic p="-22.722" r="4.72371" t="137.127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7137" x="1.66217713414" y="-1.20904296875" z="-1.79125444793">
+        <neutronic p="-21.9371" r="4.72424" t="137.288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7138" x="1.66217713414" y="-1.1708609375" z="-1.79125444793">
+        <neutronic p="-21.1438" r="4.72474" t="137.444"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7139" x="1.66217713414" y="-1.13267890625" z="-1.79125444793">
+        <neutronic p="-20.3424" r="4.72521" t="137.595"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7140" x="1.66217713414" y="-1.094496875" z="-1.79125444793">
+        <neutronic p="-19.533" r="4.72566" t="137.741"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7141" x="1.66217713414" y="-1.05631484375" z="-1.79125444793">
+        <neutronic p="-18.7159" r="4.72608" t="137.882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7142" x="1.66217713414" y="-1.0181328125" z="-1.79125444793">
+        <neutronic p="-17.8913" r="4.72647" t="138.018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7143" x="1.66217713414" y="-0.97995078125" z="-1.79125444793">
+        <neutronic p="-17.0594" r="4.72684" t="138.148"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7144" x="1.66217713414" y="-0.94176875" z="-1.79125444793">
+        <neutronic p="-16.2205" r="4.72717" t="138.272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7145" x="1.66217713414" y="-0.90358671875" z="-1.79125444793">
+        <neutronic p="-15.375" r="4.72748" t="138.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7146" x="1.66217713414" y="-0.8654046875" z="-1.79125444793">
+        <neutronic p="-14.523" r="4.72776" t="138.504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7147" x="1.66217713414" y="-0.82722265625" z="-1.79125444793">
+        <neutronic p="-13.6649" r="4.72801" t="138.611"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7148" x="1.66217713414" y="-0.789040625" z="-1.79125444793">
+        <neutronic p="-12.8011" r="4.72824" t="138.712"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7149" x="1.66217713414" y="-0.75085859375" z="-1.79125444793">
+        <neutronic p="-11.9319" r="4.72843" t="138.806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7150" x="1.66217713414" y="-0.7126765625" z="-1.79125444793">
+        <neutronic p="-11.0576" r="4.7286" t="138.894"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7151" x="1.66217713414" y="-0.67449453125" z="-1.79125444793">
+        <neutronic p="-10.1786" r="4.72874" t="138.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7152" x="1.66217713414" y="-0.6363125" z="-1.79125444793">
+        <neutronic p="-9.29535" r="4.72885" t="139.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7153" x="1.66217713414" y="-0.59813046875" z="-1.79125444793">
+        <neutronic p="-8.4082" r="4.72893" t="139.119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7154" x="1.66217713414" y="-0.5599484375" z="-1.79125444793">
+        <neutronic p="-7.51757" r="4.72898" t="139.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7155" x="1.66217713414" y="-0.52176640625" z="-1.79125444793">
+        <neutronic p="-6.62389" r="4.72901" t="139.236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7156" x="1.66217713414" y="-0.483584375" z="-1.79125444793">
+        <neutronic p="-5.72756" r="4.729" t="139.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7157" x="1.66217713414" y="-0.44540234375" z="-1.79125444793">
+        <neutronic p="-4.82905" r="4.72897" t="139.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7158" x="1.66217713414" y="-0.4072203125" z="-1.79125444793">
+        <neutronic p="-3.92877" r="4.72891" t="139.359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7159" x="1.66217713414" y="-0.36903828125" z="-1.79125444793">
+        <neutronic p="-3.02719" r="4.72882" t="139.386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7160" x="1.66217713414" y="-0.33085625" z="-1.79125444793">
+        <neutronic p="-2.12476" r="4.7287" t="139.406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7161" x="1.66217713414" y="-0.29267421875" z="-1.79125444793">
+        <neutronic p="-1.22192" r="4.72855" t="139.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7162" x="1.66217713414" y="-0.2544921875" z="-1.79125444793">
+        <neutronic p="-0.319139" r="4.72838" t="139.425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7182" x="1.57682681188" y="-1.9345015625" z="-1.8668268607">
+        <neutronic p="-36.8965" r="4.70977" t="135.82"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7183" x="1.57682681188" y="-1.89631953125" z="-1.8668268607">
+        <neutronic p="-36.2644" r="4.71076" t="136.054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7184" x="1.57682681188" y="-1.8581375" z="-1.8668268607">
+        <neutronic p="-35.6222" r="4.71172" t="136.287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7185" x="1.57682681188" y="-1.81995546875" z="-1.8668268607">
+        <neutronic p="-34.9698" r="4.71265" t="136.518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7186" x="1.57682681188" y="-1.7817734375" z="-1.8668268607">
+        <neutronic p="-34.307" r="4.71356" t="136.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7187" x="1.57682681188" y="-1.74359140625" z="-1.8668268607">
+        <neutronic p="-33.6339" r="4.71445" t="136.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7188" x="1.57682681188" y="-1.705409375" z="-1.8668268607">
+        <neutronic p="-32.9504" r="4.71532" t="137.196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7189" x="1.57682681188" y="-1.66722734375" z="-1.8668268607">
+        <neutronic p="-32.2564" r="4.71616" t="137.418"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7190" x="1.57682681188" y="-1.6290453125" z="-1.8668268607">
+        <neutronic p="-31.552" r="4.71697" t="137.636"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7191" x="1.57682681188" y="-1.59086328125" z="-1.8668268607">
+        <neutronic p="-30.8371" r="4.71776" t="137.851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7192" x="1.57682681188" y="-1.55268125" z="-1.8668268607">
+        <neutronic p="-30.1116" r="4.71852" t="138.064"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7193" x="1.57682681188" y="-1.51449921875" z="-1.8668268607">
+        <neutronic p="-29.3757" r="4.71926" t="138.273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7194" x="1.57682681188" y="-1.4763171875" z="-1.8668268607">
+        <neutronic p="-28.6294" r="4.71998" t="138.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7195" x="1.57682681188" y="-1.43813515625" z="-1.8668268607">
+        <neutronic p="-27.8726" r="4.72066" t="138.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7196" x="1.57682681188" y="-1.399953125" z="-1.8668268607">
+        <neutronic p="-27.1055" r="4.72133" t="138.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7197" x="1.57682681188" y="-1.36177109375" z="-1.8668268607">
+        <neutronic p="-26.3281" r="4.72196" t="139.071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7198" x="1.57682681188" y="-1.3235890625" z="-1.8668268607">
+        <neutronic p="-25.5406" r="4.72257" t="139.261"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7199" x="1.57682681188" y="-1.28540703125" z="-1.8668268607">
+        <neutronic p="-24.7429" r="4.72315" t="139.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7200" x="1.57682681188" y="-1.247225" z="-1.8668268607">
+        <neutronic p="-23.9353" r="4.72371" t="139.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7201" x="1.57682681188" y="-1.20904296875" z="-1.8668268607">
+        <neutronic p="-23.1178" r="4.72424" t="139.802"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7202" x="1.57682681188" y="-1.1708609375" z="-1.8668268607">
+        <neutronic p="-22.2908" r="4.72474" t="139.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7203" x="1.57682681188" y="-1.13267890625" z="-1.8668268607">
+        <neutronic p="-21.4543" r="4.72521" t="140.138"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7204" x="1.57682681188" y="-1.094496875" z="-1.8668268607">
+        <neutronic p="-20.6085" r="4.72566" t="140.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7205" x="1.57682681188" y="-1.05631484375" z="-1.8668268607">
+        <neutronic p="-19.7537" r="4.72608" t="140.452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7206" x="1.57682681188" y="-1.0181328125" z="-1.8668268607">
+        <neutronic p="-18.8901" r="4.72647" t="140.601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7207" x="1.57682681188" y="-0.97995078125" z="-1.8668268607">
+        <neutronic p="-18.0181" r="4.72684" t="140.743"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7208" x="1.57682681188" y="-0.94176875" z="-1.8668268607">
+        <neutronic p="-17.1378" r="4.72717" t="140.88"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7209" x="1.57682681188" y="-0.90358671875" z="-1.8668268607">
+        <neutronic p="-16.2497" r="4.72748" t="141.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7210" x="1.57682681188" y="-0.8654046875" z="-1.8668268607">
+        <neutronic p="-15.354" r="4.72776" t="141.134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7211" x="1.57682681188" y="-0.82722265625" z="-1.8668268607">
+        <neutronic p="-14.4511" r="4.72801" t="141.251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7212" x="1.57682681188" y="-0.789040625" z="-1.8668268607">
+        <neutronic p="-13.5413" r="4.72824" t="141.362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7213" x="1.57682681188" y="-0.75085859375" z="-1.8668268607">
+        <neutronic p="-12.6251" r="4.72843" t="141.466"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7214" x="1.57682681188" y="-0.7126765625" z="-1.8668268607">
+        <neutronic p="-11.703" r="4.7286" t="141.563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7215" x="1.57682681188" y="-0.67449453125" z="-1.8668268607">
+        <neutronic p="-10.7752" r="4.72874" t="141.652"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7216" x="1.57682681188" y="-0.6363125" z="-1.8668268607">
+        <neutronic p="-9.84224" r="4.72885" t="141.735"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7217" x="1.57682681188" y="-0.59813046875" z="-1.8668268607">
+        <neutronic p="-8.90463" r="4.72893" t="141.81"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7218" x="1.57682681188" y="-0.5599484375" z="-1.8668268607">
+        <neutronic p="-7.96282" r="4.72898" t="141.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7219" x="1.57682681188" y="-0.52176640625" z="-1.8668268607">
+        <neutronic p="-7.0173" r="4.72901" t="141.938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7220" x="1.57682681188" y="-0.483584375" z="-1.8668268607">
+        <neutronic p="-6.06858" r="4.729" t="141.991"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7221" x="1.57682681188" y="-0.44540234375" z="-1.8668268607">
+        <neutronic p="-5.11717" r="4.72897" t="142.036"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7222" x="1.57682681188" y="-0.4072203125" z="-1.8668268607">
+        <neutronic p="-4.1636" r="4.72891" t="142.074"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7223" x="1.57682681188" y="-0.36903828125" z="-1.8668268607">
+        <neutronic p="-3.20838" r="4.72882" t="142.104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7224" x="1.57682681188" y="-0.33085625" z="-1.8668268607">
+        <neutronic p="-2.25206" r="4.7287" t="142.126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7225" x="1.57682681188" y="-0.29267421875" z="-1.8668268607">
+        <neutronic p="-1.29518" r="4.72855" t="142.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7226" x="1.57682681188" y="-0.2544921875" z="-1.8668268607">
+        <neutronic p="-0.338279" r="4.72838" t="142.147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7246" x="1.48804477432" y="-1.9345015625" z="-1.93833641872">
+        <neutronic p="-38.6788" r="4.70977" t="137.971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7247" x="1.48804477432" y="-1.89631953125" z="-1.93833641872">
+        <neutronic p="-38.0361" r="4.71076" t="138.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7248" x="1.48804477432" y="-1.8581375" z="-1.93833641872">
+        <neutronic p="-37.3822" r="4.71172" t="138.475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7249" x="1.48804477432" y="-1.81995546875" z="-1.93833641872">
+        <neutronic p="-36.7169" r="4.71265" t="138.724"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7250" x="1.48804477432" y="-1.7817734375" z="-1.93833641872">
+        <neutronic p="-36.0401" r="4.71356" t="138.971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7251" x="1.48804477432" y="-1.74359140625" z="-1.93833641872">
+        <neutronic p="-35.3518" r="4.71445" t="139.216"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7252" x="1.48804477432" y="-1.705409375" z="-1.93833641872">
+        <neutronic p="-34.6519" r="4.71532" t="139.458"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7253" x="1.48804477432" y="-1.66722734375" z="-1.93833641872">
+        <neutronic p="-33.9402" r="4.71616" t="139.698"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7254" x="1.48804477432" y="-1.6290453125" z="-1.93833641872">
+        <neutronic p="-33.2167" r="4.71697" t="139.935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7255" x="1.48804477432" y="-1.59086328125" z="-1.93833641872">
+        <neutronic p="-32.4814" r="4.71776" t="140.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7256" x="1.48804477432" y="-1.55268125" z="-1.93833641872">
+        <neutronic p="-31.7342" r="4.71852" t="140.399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7257" x="1.48804477432" y="-1.51449921875" z="-1.93833641872">
+        <neutronic p="-30.9751" r="4.71926" t="140.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7258" x="1.48804477432" y="-1.4763171875" z="-1.93833641872">
+        <neutronic p="-30.2041" r="4.71998" t="140.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7259" x="1.48804477432" y="-1.43813515625" z="-1.93833641872">
+        <neutronic p="-29.4212" r="4.72066" t="141.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7260" x="1.48804477432" y="-1.399953125" z="-1.93833641872">
+        <neutronic p="-28.6264" r="4.72133" t="141.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7261" x="1.48804477432" y="-1.36177109375" z="-1.93833641872">
+        <neutronic p="-27.8197" r="4.72196" t="141.495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7262" x="1.48804477432" y="-1.3235890625" z="-1.93833641872">
+        <neutronic p="-27.0014" r="4.72257" t="141.702"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7263" x="1.48804477432" y="-1.28540703125" z="-1.93833641872">
+        <neutronic p="-26.1713" r="4.72315" t="141.904"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7264" x="1.48804477432" y="-1.247225" z="-1.93833641872">
+        <neutronic p="-25.3297" r="4.72371" t="142.101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7265" x="1.48804477432" y="-1.20904296875" z="-1.93833641872">
+        <neutronic p="-24.4767" r="4.72424" t="142.293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7266" x="1.48804477432" y="-1.1708609375" z="-1.93833641872">
+        <neutronic p="-23.6124" r="4.72474" t="142.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7267" x="1.48804477432" y="-1.13267890625" z="-1.93833641872">
+        <neutronic p="-22.737" r="4.72521" t="142.66"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7268" x="1.48804477432" y="-1.094496875" z="-1.93833641872">
+        <neutronic p="-21.8507" r="4.72566" t="142.835"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7269" x="1.48804477432" y="-1.05631484375" z="-1.93833641872">
+        <neutronic p="-20.9539" r="4.72608" t="143.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7270" x="1.48804477432" y="-1.0181328125" z="-1.93833641872">
+        <neutronic p="-20.0466" r="4.72647" t="143.167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7271" x="1.48804477432" y="-0.97995078125" z="-1.93833641872">
+        <neutronic p="-19.1293" r="4.72684" t="143.323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7272" x="1.48804477432" y="-0.94176875" z="-1.93833641872">
+        <neutronic p="-18.2022" r="4.72717" t="143.473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7273" x="1.48804477432" y="-0.90358671875" z="-1.93833641872">
+        <neutronic p="-17.2657" r="4.72748" t="143.616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7274" x="1.48804477432" y="-0.8654046875" z="-1.93833641872">
+        <neutronic p="-16.3202" r="4.72776" t="143.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7275" x="1.48804477432" y="-0.82722265625" z="-1.93833641872">
+        <neutronic p="-15.366" r="4.72801" t="143.882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7276" x="1.48804477432" y="-0.789040625" z="-1.93833641872">
+        <neutronic p="-14.4037" r="4.72824" t="144.003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7277" x="1.48804477432" y="-0.75085859375" z="-1.93833641872">
+        <neutronic p="-13.4335" r="4.72843" t="144.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7278" x="1.48804477432" y="-0.7126765625" z="-1.93833641872">
+        <neutronic p="-12.4561" r="4.7286" t="144.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7279" x="1.48804477432" y="-0.67449453125" z="-1.93833641872">
+        <neutronic p="-11.4718" r="4.72874" t="144.323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7280" x="1.48804477432" y="-0.6363125" z="-1.93833641872">
+        <neutronic p="-10.4813" r="4.72885" t="144.414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7281" x="1.48804477432" y="-0.59813046875" z="-1.93833641872">
+        <neutronic p="-9.48514" r="4.72893" t="144.497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7282" x="1.48804477432" y="-0.5599484375" z="-1.93833641872">
+        <neutronic p="-8.48379" r="4.72898" t="144.572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7283" x="1.48804477432" y="-0.52176640625" z="-1.93833641872">
+        <neutronic p="-7.47787" r="4.72901" t="144.638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7284" x="1.48804477432" y="-0.483584375" z="-1.93833641872">
+        <neutronic p="-6.468" r="4.729" t="144.697"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7285" x="1.48804477432" y="-0.44540234375" z="-1.93833641872">
+        <neutronic p="-5.45477" r="4.72897" t="144.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7286" x="1.48804477432" y="-0.4072203125" z="-1.93833641872">
+        <neutronic p="-4.43883" r="4.72891" t="144.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7287" x="1.48804477432" y="-0.36903828125" z="-1.93833641872">
+        <neutronic p="-3.4208" r="4.72882" t="144.821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7288" x="1.48804477432" y="-0.33085625" z="-1.93833641872">
+        <neutronic p="-2.40135" r="4.7287" t="144.845"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7289" x="1.48804477432" y="-0.29267421875" z="-1.93833641872">
+        <neutronic p="-1.3811" r="4.72855" t="144.861"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7290" x="1.48804477432" y="-0.2544921875" z="-1.93833641872">
+        <neutronic p="-0.360727" r="4.72838" t="144.869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7310" x="1.39602424158" y="-1.9345015625" z="-2.00562749269">
+        <neutronic p="-40.6798" r="4.70977" t="140.067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7311" x="1.39602424158" y="-1.89631953125" z="-2.00562749269">
+        <neutronic p="-40.0281" r="4.71076" t="140.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7312" x="1.39602424158" y="-1.8581375" z="-2.00562749269">
+        <neutronic p="-39.3639" r="4.71172" t="140.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7313" x="1.39602424158" y="-1.81995546875" z="-2.00562749269">
+        <neutronic p="-38.6872" r="4.71265" t="140.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7314" x="1.39602424158" y="-1.7817734375" z="-2.00562749269">
+        <neutronic p="-37.9976" r="4.71356" t="141.145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7315" x="1.39602424158" y="-1.74359140625" z="-2.00562749269">
+        <neutronic p="-37.2951" r="4.71445" t="141.41"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7316" x="1.39602424158" y="-1.705409375" z="-2.00562749269">
+        <neutronic p="-36.5796" r="4.71532" t="141.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7317" x="1.39602424158" y="-1.66722734375" z="-2.00562749269">
+        <neutronic p="-35.8508" r="4.71616" t="141.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7318" x="1.39602424158" y="-1.6290453125" z="-2.00562749269">
+        <neutronic p="-35.1087" r="4.71697" t="142.187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7319" x="1.39602424158" y="-1.59086328125" z="-2.00562749269">
+        <neutronic p="-34.3532" r="4.71776" t="142.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7320" x="1.39602424158" y="-1.55268125" z="-2.00562749269">
+        <neutronic p="-33.5841" r="4.71852" t="142.691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7321" x="1.39602424158" y="-1.51449921875" z="-2.00562749269">
+        <neutronic p="-32.8015" r="4.71926" t="142.937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7322" x="1.39602424158" y="-1.4763171875" z="-2.00562749269">
+        <neutronic p="-32.0052" r="4.71998" t="143.18"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7323" x="1.39602424158" y="-1.43813515625" z="-2.00562749269">
+        <neutronic p="-31.1952" r="4.72066" t="143.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7324" x="1.39602424158" y="-1.399953125" z="-2.00562749269">
+        <neutronic p="-30.3714" r="4.72133" t="143.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7325" x="1.39602424158" y="-1.36177109375" z="-2.00562749269">
+        <neutronic p="-29.534" r="4.72196" t="143.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7326" x="1.39602424158" y="-1.3235890625" z="-2.00562749269">
+        <neutronic p="-28.6829" r="4.72257" t="144.109"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7327" x="1.39602424158" y="-1.28540703125" z="-2.00562749269">
+        <neutronic p="-27.8181" r="4.72315" t="144.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7328" x="1.39602424158" y="-1.247225" z="-2.00562749269">
+        <neutronic p="-26.9398" r="4.72371" t="144.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7329" x="1.39602424158" y="-1.20904296875" z="-2.00562749269">
+        <neutronic p="-26.0481" r="4.72424" t="144.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7330" x="1.39602424158" y="-1.1708609375" z="-2.00562749269">
+        <neutronic p="-25.1431" r="4.72474" t="144.958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7331" x="1.39602424158" y="-1.13267890625" z="-2.00562749269">
+        <neutronic p="-24.225" r="4.72521" t="145.157"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7332" x="1.39602424158" y="-1.094496875" z="-2.00562749269">
+        <neutronic p="-23.2939" r="4.72566" t="145.349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7333" x="1.39602424158" y="-1.05631484375" z="-2.00562749269">
+        <neutronic p="-22.3502" r="4.72608" t="145.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7334" x="1.39602424158" y="-1.0181328125" z="-2.00562749269">
+        <neutronic p="-21.394" r="4.72647" t="145.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7335" x="1.39602424158" y="-0.97995078125" z="-2.00562749269">
+        <neutronic p="-20.4257" r="4.72684" t="145.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7336" x="1.39602424158" y="-0.94176875" z="-2.00562749269">
+        <neutronic p="-19.4457" r="4.72717" t="146.05"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7337" x="1.39602424158" y="-0.90358671875" z="-2.00562749269">
+        <neutronic p="-18.4543" r="4.72748" t="146.207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7338" x="1.39602424158" y="-0.8654046875" z="-2.00562749269">
+        <neutronic p="-17.4519" r="4.72776" t="146.357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7339" x="1.39602424158" y="-0.82722265625" z="-2.00562749269">
+        <neutronic p="-16.4389" r="4.72801" t="146.499"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7340" x="1.39602424158" y="-0.789040625" z="-2.00562749269">
+        <neutronic p="-15.4159" r="4.72824" t="146.634"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7341" x="1.39602424158" y="-0.75085859375" z="-2.00562749269">
+        <neutronic p="-14.3834" r="4.72843" t="146.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7342" x="1.39602424158" y="-0.7126765625" z="-2.00562749269">
+        <neutronic p="-13.342" r="4.7286" t="146.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7343" x="1.39602424158" y="-0.67449453125" z="-2.00562749269">
+        <neutronic p="-12.2921" r="4.72874" t="146.987"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7344" x="1.39602424158" y="-0.6363125" z="-2.00562749269">
+        <neutronic p="-11.2345" r="4.72885" t="147.087"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7345" x="1.39602424158" y="-0.59813046875" z="-2.00562749269">
+        <neutronic p="-10.1698" r="4.72893" t="147.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7346" x="1.39602424158" y="-0.5599484375" z="-2.00562749269">
+        <neutronic p="-9.09871" r="4.72898" t="147.262"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7347" x="1.39602424158" y="-0.52176640625" z="-2.00562749269">
+        <neutronic p="-8.02186" r="4.72901" t="147.335"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7348" x="1.39602424158" y="-0.483584375" z="-2.00562749269">
+        <neutronic p="-6.94002" r="4.729" t="147.4"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7349" x="1.39602424158" y="-0.44540234375" z="-2.00562749269">
+        <neutronic p="-5.85394" r="4.72897" t="147.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7350" x="1.39602424158" y="-0.4072203125" z="-2.00562749269">
+        <neutronic p="-4.7644" r="4.72891" t="147.501"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7351" x="1.39602424158" y="-0.36903828125" z="-2.00562749269">
+        <neutronic p="-3.67216" r="4.72882" t="147.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7352" x="1.39602424158" y="-0.33085625" z="-2.00562749269">
+        <neutronic p="-2.57803" r="4.7287" t="147.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7353" x="1.39602424158" y="-0.29267421875" z="-2.00562749269">
+        <neutronic p="-1.48281" r="4.72855" t="147.582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7354" x="1.39602424158" y="-0.2544921875" z="-2.00562749269">
+        <neutronic p="-0.387302" r="4.72838" t="147.59"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7374" x="1.30096548187" y="-1.9345015625" z="-2.06855363418">
+        <neutronic p="-42.9274" r="4.70977" t="142.096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7375" x="1.30096548187" y="-1.89631953125" z="-2.06855363418">
+        <neutronic p="-42.2693" r="4.71076" t="142.389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7376" x="1.30096548187" y="-1.8581375" z="-2.06855363418">
+        <neutronic p="-41.5975" r="4.71172" t="142.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7377" x="1.30096548187" y="-1.81995546875" z="-2.06855363418">
+        <neutronic p="-40.9116" r="4.71265" t="142.97"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7378" x="1.30096548187" y="-1.7817734375" z="-2.06855363418">
+        <neutronic p="-40.2115" r="4.71356" t="143.258"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7379" x="1.30096548187" y="-1.74359140625" z="-2.06855363418">
+        <neutronic p="-39.4969" r="4.71445" t="143.543"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7380" x="1.30096548187" y="-1.705409375" z="-2.06855363418">
+        <neutronic p="-38.7676" r="4.71532" t="143.826"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7381" x="1.30096548187" y="-1.66722734375" z="-2.06855363418">
+        <neutronic p="-38.0234" r="4.71616" t="144.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7382" x="1.30096548187" y="-1.6290453125" z="-2.06855363418">
+        <neutronic p="-37.2641" r="4.71697" t="144.385"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7383" x="1.30096548187" y="-1.59086328125" z="-2.06855363418">
+        <neutronic p="-36.4895" r="4.71776" t="144.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7384" x="1.30096548187" y="-1.55268125" z="-2.06855363418">
+        <neutronic p="-35.6995" r="4.71852" t="144.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7385" x="1.30096548187" y="-1.51449921875" z="-2.06855363418">
+        <neutronic p="-34.8938" r="4.71926" t="145.198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7386" x="1.30096548187" y="-1.4763171875" z="-2.06855363418">
+        <neutronic p="-34.0724" r="4.71998" t="145.462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7387" x="1.30096548187" y="-1.43813515625" z="-2.06855363418">
+        <neutronic p="-33.2352" r="4.72066" t="145.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7388" x="1.30096548187" y="-1.399953125" z="-2.06855363418">
+        <neutronic p="-32.382" r="4.72133" t="145.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7389" x="1.30096548187" y="-1.36177109375" z="-2.06855363418">
+        <neutronic p="-31.5128" r="4.72196" t="146.229"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7390" x="1.30096548187" y="-1.3235890625" z="-2.06855363418">
+        <neutronic p="-30.6276" r="4.72257" t="146.475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7391" x="1.30096548187" y="-1.28540703125" z="-2.06855363418">
+        <neutronic p="-29.7264" r="4.72315" t="146.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7392" x="1.30096548187" y="-1.247225" z="-2.06855363418">
+        <neutronic p="-28.8091" r="4.72371" t="146.951"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7393" x="1.30096548187" y="-1.20904296875" z="-2.06855363418">
+        <neutronic p="-27.8759" r="4.72424" t="147.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7394" x="1.30096548187" y="-1.1708609375" z="-2.06855363418">
+        <neutronic p="-26.9268" r="4.72474" t="147.404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7395" x="1.30096548187" y="-1.13267890625" z="-2.06855363418">
+        <neutronic p="-25.962" r="4.72521" t="147.622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7396" x="1.30096548187" y="-1.094496875" z="-2.06855363418">
+        <neutronic p="-24.9817" r="4.72566" t="147.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7397" x="1.30096548187" y="-1.05631484375" z="-2.06855363418">
+        <neutronic p="-23.986" r="4.72608" t="148.037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7398" x="1.30096548187" y="-1.0181328125" z="-2.06855363418">
+        <neutronic p="-22.9753" r="4.72647" t="148.234"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7399" x="1.30096548187" y="-0.97995078125" z="-2.06855363418">
+        <neutronic p="-21.9498" r="4.72684" t="148.423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7400" x="1.30096548187" y="-0.94176875" z="-2.06855363418">
+        <neutronic p="-20.9099" r="4.72717" t="148.605"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7401" x="1.30096548187" y="-0.90358671875" z="-2.06855363418">
+        <neutronic p="-19.8561" r="4.72748" t="148.779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7402" x="1.30096548187" y="-0.8654046875" z="-2.06855363418">
+        <neutronic p="-18.7887" r="4.72776" t="148.944"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7403" x="1.30096548187" y="-0.82722265625" z="-2.06855363418">
+        <neutronic p="-17.7082" r="4.72801" t="149.102"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7404" x="1.30096548187" y="-0.789040625" z="-2.06855363418">
+        <neutronic p="-16.6152" r="4.72824" t="149.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7405" x="1.30096548187" y="-0.75085859375" z="-2.06855363418">
+        <neutronic p="-15.5104" r="4.72843" t="149.39"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7406" x="1.30096548187" y="-0.7126765625" z="-2.06855363418">
+        <neutronic p="-14.3943" r="4.7286" t="149.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7407" x="1.30096548187" y="-0.67449453125" z="-2.06855363418">
+        <neutronic p="-13.2677" r="4.72874" t="149.641"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7408" x="1.30096548187" y="-0.6363125" z="-2.06855363418">
+        <neutronic p="-12.1313" r="4.72885" t="149.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7409" x="1.30096548187" y="-0.59813046875" z="-2.06855363418">
+        <neutronic p="-10.9859" r="4.72893" t="149.855"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7410" x="1.30096548187" y="-0.5599484375" z="-2.06855363418">
+        <neutronic p="-9.83228" r="4.72898" t="149.947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7411" x="1.30096548187" y="-0.52176640625" z="-2.06855363418">
+        <neutronic p="-8.67135" r="4.72901" t="150.028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7412" x="1.30096548187" y="-0.483584375" z="-2.06855363418">
+        <neutronic p="-7.50401" r="4.729" t="150.1"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7413" x="1.30096548187" y="-0.44540234375" z="-2.06855363418">
+        <neutronic p="-6.33119" r="4.72897" t="150.162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7414" x="1.30096548187" y="-0.4072203125" z="-2.06855363418">
+        <neutronic p="-5.15385" r="4.72891" t="150.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7415" x="1.30096548187" y="-0.36903828125" z="-2.06855363418">
+        <neutronic p="-3.97296" r="4.72882" t="150.253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7416" x="1.30096548187" y="-0.33085625" z="-2.06855363418">
+        <neutronic p="-2.78954" r="4.7287" t="150.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7417" x="1.30096548187" y="-0.29267421875" z="-2.06855363418">
+        <neutronic p="-1.60459" r="4.72855" t="150.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7418" x="1.30096548187" y="-0.2544921875" z="-2.06855363418">
+        <neutronic p="-0.419125" r="4.72838" t="150.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7438" x="1.20307537561" y="-1.9345015625" z="-2.12697789436">
+        <neutronic p="-45.4524" r="4.70977" t="144.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7439" x="1.20307537561" y="-1.89631953125" z="-2.12697789436">
+        <neutronic p="-44.792" r="4.71076" t="144.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7440" x="1.20307537561" y="-1.8581375" z="-2.12697789436">
+        <neutronic p="-44.1164" r="4.71172" t="144.676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7441" x="1.20307537561" y="-1.81995546875" z="-2.12697789436">
+        <neutronic p="-43.4253" r="4.71265" t="144.988"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7442" x="1.20307537561" y="-1.7817734375" z="-2.12697789436">
+        <neutronic p="-42.7183" r="4.71356" t="145.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7443" x="1.20307537561" y="-1.74359140625" z="-2.12697789436">
+        <neutronic p="-41.9951" r="4.71445" t="145.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7444" x="1.20307537561" y="-1.705409375" z="-2.12697789436">
+        <neutronic p="-41.2554" r="4.71532" t="145.912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7445" x="1.20307537561" y="-1.66722734375" z="-2.12697789436">
+        <neutronic p="-40.4989" r="4.71616" t="146.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7446" x="1.20307537561" y="-1.6290453125" z="-2.12697789436">
+        <neutronic p="-39.7252" r="4.71697" t="146.516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7447" x="1.20307537561" y="-1.59086328125" z="-2.12697789436">
+        <neutronic p="-38.9342" r="4.71776" t="146.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7448" x="1.20307537561" y="-1.55268125" z="-2.12697789436">
+        <neutronic p="-38.1254" r="4.71852" t="147.108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7449" x="1.20307537561" y="-1.51449921875" z="-2.12697789436">
+        <neutronic p="-37.2987" r="4.71926" t="147.398"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7450" x="1.20307537561" y="-1.4763171875" z="-2.12697789436">
+        <neutronic p="-36.4538" r="4.71998" t="147.685"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7451" x="1.20307537561" y="-1.43813515625" z="-2.12697789436">
+        <neutronic p="-35.5905" r="4.72066" t="147.968"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7452" x="1.20307537561" y="-1.399953125" z="-2.12697789436">
+        <neutronic p="-34.7086" r="4.72133" t="148.247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7453" x="1.20307537561" y="-1.36177109375" z="-2.12697789436">
+        <neutronic p="-33.808" r="4.72196" t="148.521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7454" x="1.20307537561" y="-1.3235890625" z="-2.12697789436">
+        <neutronic p="-32.8884" r="4.72257" t="148.79"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7455" x="1.20307537561" y="-1.28540703125" z="-2.12697789436">
+        <neutronic p="-31.9498" r="4.72315" t="149.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7456" x="1.20307537561" y="-1.247225" z="-2.12697789436">
+        <neutronic p="-30.9921" r="4.72371" t="149.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7457" x="1.20307537561" y="-1.20904296875" z="-2.12697789436">
+        <neutronic p="-30.0153" r="4.72424" t="149.563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7458" x="1.20307537561" y="-1.1708609375" z="-2.12697789436">
+        <neutronic p="-29.0194" r="4.72474" t="149.809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7459" x="1.20307537561" y="-1.13267890625" z="-2.12697789436">
+        <neutronic p="-28.0045" r="4.72521" t="150.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7460" x="1.20307537561" y="-1.094496875" z="-2.12697789436">
+        <neutronic p="-26.9707" r="4.72566" t="150.28"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7461" x="1.20307537561" y="-1.05631484375" z="-2.12697789436">
+        <neutronic p="-25.9181" r="4.72608" t="150.505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7462" x="1.20307537561" y="-1.0181328125" z="-2.12697789436">
+        <neutronic p="-24.847" r="4.72647" t="150.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7463" x="1.20307537561" y="-0.97995078125" z="-2.12697789436">
+        <neutronic p="-23.7576" r="4.72684" t="150.932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7464" x="1.20307537561" y="-0.94176875" z="-2.12697789436">
+        <neutronic p="-22.6504" r="4.72717" t="151.133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7465" x="1.20307537561" y="-0.90358671875" z="-2.12697789436">
+        <neutronic p="-21.5256" r="4.72748" t="151.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7466" x="1.20307537561" y="-0.8654046875" z="-2.12697789436">
+        <neutronic p="-20.3839" r="4.72776" t="151.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7467" x="1.20307537561" y="-0.82722265625" z="-2.12697789436">
+        <neutronic p="-19.2257" r="4.72801" t="151.683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7468" x="1.20307537561" y="-0.789040625" z="-2.12697789436">
+        <neutronic p="-18.0517" r="4.72824" t="151.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7469" x="1.20307537561" y="-0.75085859375" z="-2.12697789436">
+        <neutronic p="-16.8626" r="4.72843" t="152.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7470" x="1.20307537561" y="-0.7126765625" z="-2.12697789436">
+        <neutronic p="-15.6591" r="4.7286" t="152.149"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7471" x="1.20307537561" y="-0.67449453125" z="-2.12697789436">
+        <neutronic p="-14.442" r="4.72874" t="152.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7472" x="1.20307537561" y="-0.6363125" z="-2.12697789436">
+        <neutronic p="-13.2123" r="4.72885" t="152.408"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7473" x="1.20307537561" y="-0.59813046875" z="-2.12697789436">
+        <neutronic p="-11.9708" r="4.72893" t="152.522"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7474" x="1.20307537561" y="-0.5599484375" z="-2.12697789436">
+        <neutronic p="-10.7188" r="4.72898" t="152.625"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7475" x="1.20307537561" y="-0.52176640625" z="-2.12697789436">
+        <neutronic p="-9.45708" r="4.72901" t="152.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7476" x="1.20307537561" y="-0.483584375" z="-2.12697789436">
+        <neutronic p="-8.18696" r="4.729" t="152.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7477" x="1.20307537561" y="-0.44540234375" z="-2.12697789436">
+        <neutronic p="-6.90958" r="4.72897" t="152.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7478" x="1.20307537561" y="-0.4072203125" z="-2.12697789436">
+        <neutronic p="-5.62616" r="4.72891" t="152.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7479" x="1.20307537561" y="-0.36903828125" z="-2.12697789436">
+        <neutronic p="-4.33797" r="4.72882" t="152.968"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7480" x="1.20307537561" y="-0.33085625" z="-2.12697789436">
+        <neutronic p="-3.0463" r="4.7287" t="153.002"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7481" x="1.20307537561" y="-0.29267421875" z="-2.12697789436">
+        <neutronic p="-1.75245" r="4.72855" t="153.024"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7482" x="1.20307537561" y="-0.2544921875" z="-2.12697789436">
+        <neutronic p="-0.457771" r="4.72838" t="153.034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7502" x="1.1025669652" y="-1.9345015625" z="-2.18077312202">
+        <neutronic p="-48.2879" r="4.70977" t="145.91"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7503" x="1.1025669652" y="-1.89631953125" z="-2.18077312202">
+        <neutronic p="-47.631" r="4.71076" t="146.247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7504" x="1.1025669652" y="-1.8581375" z="-2.18077312202">
+        <neutronic p="-46.9575" r="4.71172" t="146.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7505" x="1.1025669652" y="-1.81995546875" z="-2.18077312202">
+        <neutronic p="-46.2668" r="4.71265" t="146.919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7506" x="1.1025669652" y="-1.7817734375" z="-2.18077312202">
+        <neutronic p="-45.5586" r="4.71356" t="147.252"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7507" x="1.1025669652" y="-1.74359140625" z="-2.18077312202">
+        <neutronic p="-44.8323" r="4.71445" t="147.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7508" x="1.1025669652" y="-1.705409375" z="-2.18077312202">
+        <neutronic p="-44.0876" r="4.71532" t="147.914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7509" x="1.1025669652" y="-1.66722734375" z="-2.18077312202">
+        <neutronic p="-43.3239" r="4.71616" t="148.241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7510" x="1.1025669652" y="-1.6290453125" z="-2.18077312202">
+        <neutronic p="-42.5409" r="4.71697" t="148.566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7511" x="1.1025669652" y="-1.59086328125" z="-2.18077312202">
+        <neutronic p="-41.7381" r="4.71776" t="148.889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7512" x="1.1025669652" y="-1.55268125" z="-2.18077312202">
+        <neutronic p="-40.9151" r="4.71852" t="149.208"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7513" x="1.1025669652" y="-1.51449921875" z="-2.18077312202">
+        <neutronic p="-40.0715" r="4.71926" t="149.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7514" x="1.1025669652" y="-1.4763171875" z="-2.18077312202">
+        <neutronic p="-39.2068" r="4.71998" t="149.836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7515" x="1.1025669652" y="-1.43813515625" z="-2.18077312202">
+        <neutronic p="-38.3207" r="4.72066" t="150.144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7516" x="1.1025669652" y="-1.399953125" z="-2.18077312202">
+        <neutronic p="-37.4129" r="4.72133" t="150.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7517" x="1.1025669652" y="-1.36177109375" z="-2.18077312202">
+        <neutronic p="-36.4829" r="4.72196" t="150.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7518" x="1.1025669652" y="-1.3235890625" z="-2.18077312202">
+        <neutronic p="-35.5306" r="4.72257" t="151.041"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7519" x="1.1025669652" y="-1.28540703125" z="-2.18077312202">
+        <neutronic p="-34.5556" r="4.72315" t="151.33"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7520" x="1.1025669652" y="-1.247225" z="-2.18077312202">
+        <neutronic p="-33.5577" r="4.72371" t="151.613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7521" x="1.1025669652" y="-1.20904296875" z="-2.18077312202">
+        <neutronic p="-32.5368" r="4.72424" t="151.89"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7522" x="1.1025669652" y="-1.1708609375" z="-2.18077312202">
+        <neutronic p="-31.4926" r="4.72474" t="152.16"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7523" x="1.1025669652" y="-1.13267890625" z="-2.18077312202">
+        <neutronic p="-30.4252" r="4.72521" t="152.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7524" x="1.1025669652" y="-1.094496875" z="-2.18077312202">
+        <neutronic p="-29.3346" r="4.72566" t="152.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7525" x="1.1025669652" y="-1.05631484375" z="-2.18077312202">
+        <neutronic p="-28.2207" r="4.72608" t="152.929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7526" x="1.1025669652" y="-1.0181328125" z="-2.18077312202">
+        <neutronic p="-27.0837" r="4.72647" t="153.17"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7527" x="1.1025669652" y="-0.97995078125" z="-2.18077312202">
+        <neutronic p="-25.9238" r="4.72684" t="153.402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7528" x="1.1025669652" y="-0.94176875" z="-2.18077312202">
+        <neutronic p="-24.7413" r="4.72717" t="153.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7529" x="1.1025669652" y="-0.90358671875" z="-2.18077312202">
+        <neutronic p="-23.5367" r="4.72748" t="153.84"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7530" x="1.1025669652" y="-0.8654046875" z="-2.18077312202">
+        <neutronic p="-22.3103" r="4.72776" t="154.044"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7531" x="1.1025669652" y="-0.82722265625" z="-2.18077312202">
+        <neutronic p="-21.0628" r="4.72801" t="154.239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7532" x="1.1025669652" y="-0.789040625" z="-2.18077312202">
+        <neutronic p="-19.7947" r="4.72824" t="154.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7533" x="1.1025669652" y="-0.75085859375" z="-2.18077312202">
+        <neutronic p="-18.507" r="4.72843" t="154.597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7534" x="1.1025669652" y="-0.7126765625" z="-2.18077312202">
+        <neutronic p="-17.2004" r="4.7286" t="154.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7535" x="1.1025669652" y="-0.67449453125" z="-2.18077312202">
+        <neutronic p="-15.876" r="4.72874" t="154.911"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7536" x="1.1025669652" y="-0.6363125" z="-2.18077312202">
+        <neutronic p="-14.5348" r="4.72885" t="155.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7537" x="1.1025669652" y="-0.59813046875" z="-2.18077312202">
+        <neutronic p="-13.178" r="4.72893" t="155.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7538" x="1.1025669652" y="-0.5599484375" z="-2.18077312202">
+        <neutronic p="-11.807" r="4.72898" t="155.294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7539" x="1.1025669652" y="-0.52176640625" z="-2.18077312202">
+        <neutronic p="-10.423" r="4.72901" t="155.397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7540" x="1.1025669652" y="-0.483584375" z="-2.18077312202">
+        <neutronic p="-9.02761" r="4.729" t="155.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7541" x="1.1025669652" y="-0.44540234375" z="-2.18077312202">
+        <neutronic p="-7.6223" r="4.72897" t="155.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7542" x="1.1025669652" y="-0.4072203125" z="-2.18077312202">
+        <neutronic p="-6.20871" r="4.72891" t="155.63"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7543" x="1.1025669652" y="-0.36903828125" z="-2.18077312202">
+        <neutronic p="-4.7885" r="4.72882" t="155.681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7544" x="1.1025669652" y="-0.33085625" z="-2.18077312202">
+        <neutronic p="-3.36339" r="4.7287" t="155.719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7545" x="1.1025669652" y="-0.29267421875" z="-2.18077312202">
+        <neutronic p="-1.93514" r="4.72855" t="155.744"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7546" x="1.1025669652" y="-0.2544921875" z="-2.18077312202">
+        <neutronic p="-0.505523" r="4.72838" t="155.756"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7566" x="0.999658991385" y="-1.9345015625" z="-2.22982224032">
+        <neutronic p="-51.4679" r="4.70977" t="147.665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7567" x="0.999658991385" y="-1.89631953125" z="-2.22982224032">
+        <neutronic p="-50.8227" r="4.71076" t="148.026"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7568" x="0.999658991385" y="-1.8581375" z="-2.22982224032">
+        <neutronic p="-50.1593" r="4.71172" t="148.386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7569" x="0.999658991385" y="-1.81995546875" z="-2.22982224032">
+        <neutronic p="-49.4773" r="4.71265" t="148.745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7570" x="0.999658991385" y="-1.7817734375" z="-2.22982224032">
+        <neutronic p="-48.7761" r="4.71356" t="149.104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7571" x="0.999658991385" y="-1.74359140625" z="-2.22982224032">
+        <neutronic p="-48.0549" r="4.71445" t="149.46"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7572" x="0.999658991385" y="-1.705409375" z="-2.22982224032">
+        <neutronic p="-47.3133" r="4.71532" t="149.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7573" x="0.999658991385" y="-1.66722734375" z="-2.22982224032">
+        <neutronic p="-46.5507" r="4.71616" t="150.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7574" x="0.999658991385" y="-1.6290453125" z="-2.22982224032">
+        <neutronic p="-45.7663" r="4.71697" t="150.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7575" x="0.999658991385" y="-1.59086328125" z="-2.22982224032">
+        <neutronic p="-44.9595" r="4.71776" t="150.869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7576" x="0.999658991385" y="-1.55268125" z="-2.22982224032">
+        <neutronic p="-44.1298" r="4.71852" t="151.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7577" x="0.999658991385" y="-1.51449921875" z="-2.22982224032">
+        <neutronic p="-43.2765" r="4.71926" t="151.558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7578" x="0.999658991385" y="-1.4763171875" z="-2.22982224032">
+        <neutronic p="-42.3989" r="4.71998" t="151.897"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7579" x="0.999658991385" y="-1.43813515625" z="-2.22982224032">
+        <neutronic p="-41.4966" r="4.72066" t="152.233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7580" x="0.999658991385" y="-1.399953125" z="-2.22982224032">
+        <neutronic p="-40.5688" r="4.72133" t="152.564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7581" x="0.999658991385" y="-1.36177109375" z="-2.22982224032">
+        <neutronic p="-39.6151" r="4.72196" t="152.891"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7582" x="0.999658991385" y="-1.3235890625" z="-2.22982224032">
+        <neutronic p="-38.6348" r="4.72257" t="153.214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7583" x="0.999658991385" y="-1.28540703125" z="-2.22982224032">
+        <neutronic p="-37.6274" r="4.72315" t="153.53"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7584" x="0.999658991385" y="-1.247225" z="-2.22982224032">
+        <neutronic p="-36.5926" r="4.72371" t="153.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7585" x="0.999658991385" y="-1.20904296875" z="-2.22982224032">
+        <neutronic p="-35.5298" r="4.72424" t="154.147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7586" x="0.999658991385" y="-1.1708609375" z="-2.22982224032">
+        <neutronic p="-34.4386" r="4.72474" t="154.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7587" x="0.999658991385" y="-1.13267890625" z="-2.22982224032">
+        <neutronic p="-33.3188" r="4.72521" t="154.736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7588" x="0.999658991385" y="-1.094496875" z="-2.22982224032">
+        <neutronic p="-32.1701" r="4.72566" t="155.02"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7589" x="0.999658991385" y="-1.05631484375" z="-2.22982224032">
+        <neutronic p="-30.9923" r="4.72608" t="155.296"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7590" x="0.999658991385" y="-1.0181328125" z="-2.22982224032">
+        <neutronic p="-29.7854" r="4.72647" t="155.564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7591" x="0.999658991385" y="-0.97995078125" z="-2.22982224032">
+        <neutronic p="-28.5494" r="4.72684" t="155.823"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7592" x="0.999658991385" y="-0.94176875" z="-2.22982224032">
+        <neutronic p="-27.2844" r="4.72717" t="156.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7593" x="0.999658991385" y="-0.90358671875" z="-2.22982224032">
+        <neutronic p="-25.9908" r="4.72748" t="156.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7594" x="0.999658991385" y="-0.8654046875" z="-2.22982224032">
+        <neutronic p="-24.6688" r="4.72776" t="156.541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7595" x="0.999658991385" y="-0.82722265625" z="-2.22982224032">
+        <neutronic p="-23.319" r="4.72801" t="156.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7596" x="0.999658991385" y="-0.789040625" z="-2.22982224032">
+        <neutronic p="-21.9422" r="4.72824" t="156.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7597" x="0.999658991385" y="-0.75085859375" z="-2.22982224032">
+        <neutronic p="-20.539" r="4.72843" t="157.163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7598" x="0.999658991385" y="-0.7126765625" z="-2.22982224032">
+        <neutronic p="-19.1105" r="4.7286" t="157.347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7599" x="0.999658991385" y="-0.67449453125" z="-2.22982224032">
+        <neutronic p="-17.6579" r="4.72874" t="157.518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7600" x="0.999658991385" y="-0.6363125" z="-2.22982224032">
+        <neutronic p="-16.1824" r="4.72885" t="157.676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7601" x="0.999658991385" y="-0.59813046875" z="-2.22982224032">
+        <neutronic p="-14.6855" r="4.72893" t="157.821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7602" x="0.999658991385" y="-0.5599484375" z="-2.22982224032">
+        <neutronic p="-13.1688" r="4.72898" t="157.952"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7603" x="0.999658991385" y="-0.52176640625" z="-2.22982224032">
+        <neutronic p="-11.6342" r="4.72901" t="158.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7604" x="0.999658991385" y="-0.483584375" z="-2.22982224032">
+        <neutronic p="-10.0836" r="4.729" t="158.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7605" x="0.999658991385" y="-0.44540234375" z="-2.22982224032">
+        <neutronic p="-8.51892" r="4.72897" t="158.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7606" x="0.999658991385" y="-0.4072203125" z="-2.22982224032">
+        <neutronic p="-6.9425" r="4.72891" t="158.334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7607" x="0.999658991385" y="-0.36903828125" z="-2.22982224032">
+        <neutronic p="-5.35657" r="4.72882" t="158.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7608" x="0.999658991385" y="-0.33085625" z="-2.22982224032">
+        <neutronic p="-3.76352" r="4.7287" t="158.436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7609" x="0.999658991385" y="-0.29267421875" z="-2.22982224032">
+        <neutronic p="-2.16577" r="4.72855" t="158.464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7610" x="0.999658991385" y="-0.2544921875" z="-2.22982224032">
+        <neutronic p="-0.565823" r="4.72838" t="158.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7630" x="0.894575417156" y="-1.9345015625" z="-2.27401850158">
+        <neutronic p="-55.025" r="4.70977" t="149.294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7631" x="0.894575417156" y="-1.89631953125" z="-2.27401850158">
+        <neutronic p="-54.4022" r="4.71076" t="149.679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7632" x="0.894575417156" y="-1.8581375" z="-2.27401850158">
+        <neutronic p="-53.7602" r="4.71172" t="150.064"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7633" x="0.894575417156" y="-1.81995546875" z="-2.27401850158">
+        <neutronic p="-53.0981" r="4.71265" t="150.449"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7634" x="0.894575417156" y="-1.7817734375" z="-2.27401850158">
+        <neutronic p="-52.4154" r="4.71356" t="150.832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7635" x="0.894575417156" y="-1.74359140625" z="-2.27401850158">
+        <neutronic p="-51.711" r="4.71445" t="151.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7636" x="0.894575417156" y="-1.705409375" z="-2.27401850158">
+        <neutronic p="-50.9844" r="4.71532" t="151.597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7637" x="0.894575417156" y="-1.66722734375" z="-2.27401850158">
+        <neutronic p="-50.2346" r="4.71616" t="151.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7638" x="0.894575417156" y="-1.6290453125" z="-2.27401850158">
+        <neutronic p="-49.4607" r="4.71697" t="152.356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7639" x="0.894575417156" y="-1.59086328125" z="-2.27401850158">
+        <neutronic p="-48.662" r="4.71776" t="152.733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7640" x="0.894575417156" y="-1.55268125" z="-2.27401850158">
+        <neutronic p="-47.8375" r="4.71852" t="153.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7641" x="0.894575417156" y="-1.51449921875" z="-2.27401850158">
+        <neutronic p="-46.9864" r="4.71926" t="153.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7642" x="0.894575417156" y="-1.4763171875" z="-2.27401850158">
+        <neutronic p="-46.1076" r="4.71998" t="153.848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7643" x="0.894575417156" y="-1.43813515625" z="-2.27401850158">
+        <neutronic p="-45.2004" r="4.72066" t="154.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7644" x="0.894575417156" y="-1.399953125" z="-2.27401850158">
+        <neutronic p="-44.2637" r="4.72133" t="154.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7645" x="0.894575417156" y="-1.36177109375" z="-2.27401850158">
+        <neutronic p="-43.2966" r="4.72196" t="154.933"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7646" x="0.894575417156" y="-1.3235890625" z="-2.27401850158">
+        <neutronic p="-42.2983" r="4.72257" t="155.286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7647" x="0.894575417156" y="-1.28540703125" z="-2.27401850158">
+        <neutronic p="-41.2678" r="4.72315" t="155.633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7648" x="0.894575417156" y="-1.247225" z="-2.27401850158">
+        <neutronic p="-40.2043" r="4.72371" t="155.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7649" x="0.894575417156" y="-1.20904296875" z="-2.27401850158">
+        <neutronic p="-39.1069" r="4.72424" t="156.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7650" x="0.894575417156" y="-1.1708609375" z="-2.27401850158">
+        <neutronic p="-37.9749" r="4.72474" t="156.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7651" x="0.894575417156" y="-1.13267890625" z="-2.27401850158">
+        <neutronic p="-36.8075" r="4.72521" t="156.965"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7652" x="0.894575417156" y="-1.094496875" z="-2.27401850158">
+        <neutronic p="-35.604" r="4.72566" t="157.281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7653" x="0.894575417156" y="-1.05631484375" z="-2.27401850158">
+        <neutronic p="-34.3639" r="4.72608" t="157.589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7654" x="0.894575417156" y="-1.0181328125" z="-2.27401850158">
+        <neutronic p="-33.0867" r="4.72647" t="157.887"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7655" x="0.894575417156" y="-0.97995078125" z="-2.27401850158">
+        <neutronic p="-31.7721" r="4.72684" t="158.177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7656" x="0.894575417156" y="-0.94176875" z="-2.27401850158">
+        <neutronic p="-30.4198" r="4.72717" t="158.457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7657" x="0.894575417156" y="-0.90358671875" z="-2.27401850158">
+        <neutronic p="-29.0299" r="4.72748" t="158.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7658" x="0.894575417156" y="-0.8654046875" z="-2.27401850158">
+        <neutronic p="-27.6023" r="4.72776" t="158.986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7659" x="0.894575417156" y="-0.82722265625" z="-2.27401850158">
+        <neutronic p="-26.1374" r="4.72801" t="159.233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7660" x="0.894575417156" y="-0.789040625" z="-2.27401850158">
+        <neutronic p="-24.6358" r="4.72824" t="159.468"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7661" x="0.894575417156" y="-0.75085859375" z="-2.27401850158">
+        <neutronic p="-23.0982" r="4.72843" t="159.691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7662" x="0.894575417156" y="-0.7126765625" z="-2.27401850158">
+        <neutronic p="-21.5256" r="4.7286" t="159.9"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7663" x="0.894575417156" y="-0.67449453125" z="-2.27401850158">
+        <neutronic p="-19.9193" r="4.72874" t="160.095"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7664" x="0.894575417156" y="-0.6363125" z="-2.27401850158">
+        <neutronic p="-18.2807" r="4.72885" t="160.276"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7665" x="0.894575417156" y="-0.59813046875" z="-2.27401850158">
+        <neutronic p="-16.6117" r="4.72893" t="160.442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7666" x="0.894575417156" y="-0.5599484375" z="-2.27401850158">
+        <neutronic p="-14.9143" r="4.72898" t="160.593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7667" x="0.894575417156" y="-0.52176640625" z="-2.27401850158">
+        <neutronic p="-13.1909" r="4.72901" t="160.728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7668" x="0.894575417156" y="-0.483584375" z="-2.27401850158">
+        <neutronic p="-11.4441" r="4.729" t="160.846"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7669" x="0.894575417156" y="-0.44540234375" z="-2.27401850158">
+        <neutronic p="-9.67666" r="4.72897" t="160.948"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7670" x="0.894575417156" y="-0.4072203125" z="-2.27401850158">
+        <neutronic p="-7.89171" r="4.72891" t="161.033"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7671" x="0.894575417156" y="-0.36903828125" z="-2.27401850158">
+        <neutronic p="-6.09249" r="4.72882" t="161.101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7672" x="0.894575417156" y="-0.33085625" z="-2.27401850158">
+        <neutronic p="-4.28243" r="4.7287" t="161.151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7673" x="0.894575417156" y="-0.29267421875" z="-2.27401850158">
+        <neutronic p="-2.46509" r="4.72855" t="161.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="7674" x="0.894575417156" y="-0.2544921875" z="-2.27401850158">
+        <neutronic p="-0.644106" r="4.72838" t="161.199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+  </type>
+  <idlist idname="bank2">
+    <id val="4110"/>
+    <id val="4111"/>
+    <id val="4112"/>
+    <id val="4113"/>
+    <id val="4114"/>
+    <id val="4115"/>
+    <id val="4116"/>
+    <id val="4117"/>
+    <id val="4118"/>
+    <id val="4119"/>
+    <id val="4120"/>
+    <id val="4121"/>
+    <id val="4122"/>
+    <id val="4123"/>
+    <id val="4124"/>
+    <id val="4125"/>
+    <id val="4126"/>
+    <id val="4127"/>
+    <id val="4128"/>
+    <id val="4129"/>
+    <id val="4130"/>
+    <id val="4131"/>
+    <id val="4132"/>
+    <id val="4133"/>
+    <id val="4134"/>
+    <id val="4135"/>
+    <id val="4136"/>
+    <id val="4137"/>
+    <id val="4138"/>
+    <id val="4139"/>
+    <id val="4140"/>
+    <id val="4141"/>
+    <id val="4142"/>
+    <id val="4143"/>
+    <id val="4144"/>
+    <id val="4145"/>
+    <id val="4146"/>
+    <id val="4147"/>
+    <id val="4148"/>
+    <id val="4149"/>
+    <id val="4150"/>
+    <id val="4151"/>
+    <id val="4152"/>
+    <id val="4153"/>
+    <id val="4154"/>
+    <id val="4174"/>
+    <id val="4175"/>
+    <id val="4176"/>
+    <id val="4177"/>
+    <id val="4178"/>
+    <id val="4179"/>
+    <id val="4180"/>
+    <id val="4181"/>
+    <id val="4182"/>
+    <id val="4183"/>
+    <id val="4184"/>
+    <id val="4185"/>
+    <id val="4186"/>
+    <id val="4187"/>
+    <id val="4188"/>
+    <id val="4189"/>
+    <id val="4190"/>
+    <id val="4191"/>
+    <id val="4192"/>
+    <id val="4193"/>
+    <id val="4194"/>
+    <id val="4195"/>
+    <id val="4196"/>
+    <id val="4197"/>
+    <id val="4198"/>
+    <id val="4199"/>
+    <id val="4200"/>
+    <id val="4201"/>
+    <id val="4202"/>
+    <id val="4203"/>
+    <id val="4204"/>
+    <id val="4205"/>
+    <id val="4206"/>
+    <id val="4207"/>
+    <id val="4208"/>
+    <id val="4209"/>
+    <id val="4210"/>
+    <id val="4211"/>
+    <id val="4212"/>
+    <id val="4213"/>
+    <id val="4214"/>
+    <id val="4215"/>
+    <id val="4216"/>
+    <id val="4217"/>
+    <id val="4218"/>
+    <id val="4238"/>
+    <id val="4239"/>
+    <id val="4240"/>
+    <id val="4241"/>
+    <id val="4242"/>
+    <id val="4243"/>
+    <id val="4244"/>
+    <id val="4245"/>
+    <id val="4246"/>
+    <id val="4247"/>
+    <id val="4248"/>
+    <id val="4249"/>
+    <id val="4250"/>
+    <id val="4251"/>
+    <id val="4252"/>
+    <id val="4253"/>
+    <id val="4254"/>
+    <id val="4255"/>
+    <id val="4256"/>
+    <id val="4257"/>
+    <id val="4258"/>
+    <id val="4259"/>
+    <id val="4260"/>
+    <id val="4261"/>
+    <id val="4262"/>
+    <id val="4263"/>
+    <id val="4264"/>
+    <id val="4265"/>
+    <id val="4266"/>
+    <id val="4267"/>
+    <id val="4268"/>
+    <id val="4269"/>
+    <id val="4270"/>
+    <id val="4271"/>
+    <id val="4272"/>
+    <id val="4273"/>
+    <id val="4274"/>
+    <id val="4275"/>
+    <id val="4276"/>
+    <id val="4277"/>
+    <id val="4278"/>
+    <id val="4279"/>
+    <id val="4280"/>
+    <id val="4281"/>
+    <id val="4282"/>
+    <id val="4302"/>
+    <id val="4303"/>
+    <id val="4304"/>
+    <id val="4305"/>
+    <id val="4306"/>
+    <id val="4307"/>
+    <id val="4308"/>
+    <id val="4309"/>
+    <id val="4310"/>
+    <id val="4311"/>
+    <id val="4312"/>
+    <id val="4313"/>
+    <id val="4314"/>
+    <id val="4315"/>
+    <id val="4316"/>
+    <id val="4317"/>
+    <id val="4318"/>
+    <id val="4319"/>
+    <id val="4320"/>
+    <id val="4321"/>
+    <id val="4322"/>
+    <id val="4323"/>
+    <id val="4324"/>
+    <id val="4325"/>
+    <id val="4326"/>
+    <id val="4327"/>
+    <id val="4328"/>
+    <id val="4329"/>
+    <id val="4330"/>
+    <id val="4331"/>
+    <id val="4332"/>
+    <id val="4333"/>
+    <id val="4334"/>
+    <id val="4335"/>
+    <id val="4336"/>
+    <id val="4337"/>
+    <id val="4338"/>
+    <id val="4339"/>
+    <id val="4340"/>
+    <id val="4341"/>
+    <id val="4342"/>
+    <id val="4343"/>
+    <id val="4344"/>
+    <id val="4345"/>
+    <id val="4346"/>
+    <id val="4366"/>
+    <id val="4367"/>
+    <id val="4368"/>
+    <id val="4369"/>
+    <id val="4370"/>
+    <id val="4371"/>
+    <id val="4372"/>
+    <id val="4373"/>
+    <id val="4374"/>
+    <id val="4375"/>
+    <id val="4376"/>
+    <id val="4377"/>
+    <id val="4378"/>
+    <id val="4379"/>
+    <id val="4380"/>
+    <id val="4381"/>
+    <id val="4382"/>
+    <id val="4383"/>
+    <id val="4384"/>
+    <id val="4385"/>
+    <id val="4386"/>
+    <id val="4387"/>
+    <id val="4388"/>
+    <id val="4389"/>
+    <id val="4390"/>
+    <id val="4391"/>
+    <id val="4392"/>
+    <id val="4393"/>
+    <id val="4394"/>
+    <id val="4395"/>
+    <id val="4396"/>
+    <id val="4397"/>
+    <id val="4398"/>
+    <id val="4399"/>
+    <id val="4400"/>
+    <id val="4401"/>
+    <id val="4402"/>
+    <id val="4403"/>
+    <id val="4404"/>
+    <id val="4405"/>
+    <id val="4406"/>
+    <id val="4407"/>
+    <id val="4408"/>
+    <id val="4409"/>
+    <id val="4410"/>
+    <id val="4430"/>
+    <id val="4431"/>
+    <id val="4432"/>
+    <id val="4433"/>
+    <id val="4434"/>
+    <id val="4435"/>
+    <id val="4436"/>
+    <id val="4437"/>
+    <id val="4438"/>
+    <id val="4439"/>
+    <id val="4440"/>
+    <id val="4441"/>
+    <id val="4442"/>
+    <id val="4443"/>
+    <id val="4444"/>
+    <id val="4445"/>
+    <id val="4446"/>
+    <id val="4447"/>
+    <id val="4448"/>
+    <id val="4449"/>
+    <id val="4450"/>
+    <id val="4451"/>
+    <id val="4452"/>
+    <id val="4453"/>
+    <id val="4454"/>
+    <id val="4455"/>
+    <id val="4456"/>
+    <id val="4457"/>
+    <id val="4458"/>
+    <id val="4459"/>
+    <id val="4460"/>
+    <id val="4461"/>
+    <id val="4462"/>
+    <id val="4463"/>
+    <id val="4464"/>
+    <id val="4465"/>
+    <id val="4466"/>
+    <id val="4467"/>
+    <id val="4468"/>
+    <id val="4469"/>
+    <id val="4470"/>
+    <id val="4471"/>
+    <id val="4472"/>
+    <id val="4473"/>
+    <id val="4474"/>
+    <id val="4494"/>
+    <id val="4495"/>
+    <id val="4496"/>
+    <id val="4497"/>
+    <id val="4498"/>
+    <id val="4499"/>
+    <id val="4500"/>
+    <id val="4501"/>
+    <id val="4502"/>
+    <id val="4503"/>
+    <id val="4504"/>
+    <id val="4505"/>
+    <id val="4506"/>
+    <id val="4507"/>
+    <id val="4508"/>
+    <id val="4509"/>
+    <id val="4510"/>
+    <id val="4511"/>
+    <id val="4512"/>
+    <id val="4513"/>
+    <id val="4514"/>
+    <id val="4515"/>
+    <id val="4516"/>
+    <id val="4517"/>
+    <id val="4518"/>
+    <id val="4519"/>
+    <id val="4520"/>
+    <id val="4521"/>
+    <id val="4522"/>
+    <id val="4523"/>
+    <id val="4524"/>
+    <id val="4525"/>
+    <id val="4526"/>
+    <id val="4527"/>
+    <id val="4528"/>
+    <id val="4529"/>
+    <id val="4530"/>
+    <id val="4531"/>
+    <id val="4532"/>
+    <id val="4533"/>
+    <id val="4534"/>
+    <id val="4535"/>
+    <id val="4536"/>
+    <id val="4537"/>
+    <id val="4538"/>
+    <id val="4558"/>
+    <id val="4559"/>
+    <id val="4560"/>
+    <id val="4561"/>
+    <id val="4562"/>
+    <id val="4563"/>
+    <id val="4564"/>
+    <id val="4565"/>
+    <id val="4566"/>
+    <id val="4567"/>
+    <id val="4568"/>
+    <id val="4569"/>
+    <id val="4570"/>
+    <id val="4571"/>
+    <id val="4572"/>
+    <id val="4573"/>
+    <id val="4574"/>
+    <id val="4575"/>
+    <id val="4576"/>
+    <id val="4577"/>
+    <id val="4578"/>
+    <id val="4579"/>
+    <id val="4580"/>
+    <id val="4581"/>
+    <id val="4582"/>
+    <id val="4583"/>
+    <id val="4584"/>
+    <id val="4585"/>
+    <id val="4586"/>
+    <id val="4587"/>
+    <id val="4588"/>
+    <id val="4589"/>
+    <id val="4590"/>
+    <id val="4591"/>
+    <id val="4592"/>
+    <id val="4593"/>
+    <id val="4594"/>
+    <id val="4595"/>
+    <id val="4596"/>
+    <id val="4597"/>
+    <id val="4598"/>
+    <id val="4599"/>
+    <id val="4600"/>
+    <id val="4601"/>
+    <id val="4602"/>
+    <id val="4622"/>
+    <id val="4623"/>
+    <id val="4624"/>
+    <id val="4625"/>
+    <id val="4626"/>
+    <id val="4627"/>
+    <id val="4628"/>
+    <id val="4629"/>
+    <id val="4630"/>
+    <id val="4631"/>
+    <id val="4632"/>
+    <id val="4633"/>
+    <id val="4634"/>
+    <id val="4635"/>
+    <id val="4636"/>
+    <id val="4637"/>
+    <id val="4638"/>
+    <id val="4639"/>
+    <id val="4640"/>
+    <id val="4641"/>
+    <id val="4642"/>
+    <id val="4643"/>
+    <id val="4644"/>
+    <id val="4645"/>
+    <id val="4646"/>
+    <id val="4647"/>
+    <id val="4648"/>
+    <id val="4649"/>
+    <id val="4650"/>
+    <id val="4651"/>
+    <id val="4652"/>
+    <id val="4653"/>
+    <id val="4654"/>
+    <id val="4655"/>
+    <id val="4656"/>
+    <id val="4657"/>
+    <id val="4658"/>
+    <id val="4659"/>
+    <id val="4660"/>
+    <id val="4661"/>
+    <id val="4662"/>
+    <id val="4663"/>
+    <id val="4664"/>
+    <id val="4665"/>
+    <id val="4666"/>
+    <id val="4686"/>
+    <id val="4687"/>
+    <id val="4688"/>
+    <id val="4689"/>
+    <id val="4690"/>
+    <id val="4691"/>
+    <id val="4692"/>
+    <id val="4693"/>
+    <id val="4694"/>
+    <id val="4695"/>
+    <id val="4696"/>
+    <id val="4697"/>
+    <id val="4698"/>
+    <id val="4699"/>
+    <id val="4700"/>
+    <id val="4701"/>
+    <id val="4702"/>
+    <id val="4703"/>
+    <id val="4704"/>
+    <id val="4705"/>
+    <id val="4706"/>
+    <id val="4707"/>
+    <id val="4708"/>
+    <id val="4709"/>
+    <id val="4710"/>
+    <id val="4711"/>
+    <id val="4712"/>
+    <id val="4713"/>
+    <id val="4714"/>
+    <id val="4715"/>
+    <id val="4716"/>
+    <id val="4717"/>
+    <id val="4718"/>
+    <id val="4719"/>
+    <id val="4720"/>
+    <id val="4721"/>
+    <id val="4722"/>
+    <id val="4723"/>
+    <id val="4724"/>
+    <id val="4725"/>
+    <id val="4726"/>
+    <id val="4727"/>
+    <id val="4728"/>
+    <id val="4729"/>
+    <id val="4730"/>
+    <id val="4750"/>
+    <id val="4751"/>
+    <id val="4752"/>
+    <id val="4753"/>
+    <id val="4754"/>
+    <id val="4755"/>
+    <id val="4756"/>
+    <id val="4757"/>
+    <id val="4758"/>
+    <id val="4759"/>
+    <id val="4760"/>
+    <id val="4761"/>
+    <id val="4762"/>
+    <id val="4763"/>
+    <id val="4764"/>
+    <id val="4765"/>
+    <id val="4766"/>
+    <id val="4767"/>
+    <id val="4768"/>
+    <id val="4769"/>
+    <id val="4770"/>
+    <id val="4771"/>
+    <id val="4772"/>
+    <id val="4773"/>
+    <id val="4774"/>
+    <id val="4775"/>
+    <id val="4776"/>
+    <id val="4777"/>
+    <id val="4778"/>
+    <id val="4779"/>
+    <id val="4780"/>
+    <id val="4781"/>
+    <id val="4782"/>
+    <id val="4783"/>
+    <id val="4784"/>
+    <id val="4785"/>
+    <id val="4786"/>
+    <id val="4787"/>
+    <id val="4788"/>
+    <id val="4789"/>
+    <id val="4790"/>
+    <id val="4791"/>
+    <id val="4792"/>
+    <id val="4793"/>
+    <id val="4794"/>
+    <id val="4814"/>
+    <id val="4815"/>
+    <id val="4816"/>
+    <id val="4817"/>
+    <id val="4818"/>
+    <id val="4819"/>
+    <id val="4820"/>
+    <id val="4821"/>
+    <id val="4822"/>
+    <id val="4823"/>
+    <id val="4824"/>
+    <id val="4825"/>
+    <id val="4826"/>
+    <id val="4827"/>
+    <id val="4828"/>
+    <id val="4829"/>
+    <id val="4830"/>
+    <id val="4831"/>
+    <id val="4832"/>
+    <id val="4833"/>
+    <id val="4834"/>
+    <id val="4835"/>
+    <id val="4836"/>
+    <id val="4837"/>
+    <id val="4838"/>
+    <id val="4839"/>
+    <id val="4840"/>
+    <id val="4841"/>
+    <id val="4842"/>
+    <id val="4843"/>
+    <id val="4844"/>
+    <id val="4845"/>
+    <id val="4846"/>
+    <id val="4847"/>
+    <id val="4848"/>
+    <id val="4849"/>
+    <id val="4850"/>
+    <id val="4851"/>
+    <id val="4852"/>
+    <id val="4853"/>
+    <id val="4854"/>
+    <id val="4855"/>
+    <id val="4856"/>
+    <id val="4857"/>
+    <id val="4858"/>
+    <id val="4878"/>
+    <id val="4879"/>
+    <id val="4880"/>
+    <id val="4881"/>
+    <id val="4882"/>
+    <id val="4883"/>
+    <id val="4884"/>
+    <id val="4885"/>
+    <id val="4886"/>
+    <id val="4887"/>
+    <id val="4888"/>
+    <id val="4889"/>
+    <id val="4890"/>
+    <id val="4891"/>
+    <id val="4892"/>
+    <id val="4893"/>
+    <id val="4894"/>
+    <id val="4895"/>
+    <id val="4896"/>
+    <id val="4897"/>
+    <id val="4898"/>
+    <id val="4899"/>
+    <id val="4900"/>
+    <id val="4901"/>
+    <id val="4902"/>
+    <id val="4903"/>
+    <id val="4904"/>
+    <id val="4905"/>
+    <id val="4906"/>
+    <id val="4907"/>
+    <id val="4908"/>
+    <id val="4909"/>
+    <id val="4910"/>
+    <id val="4911"/>
+    <id val="4912"/>
+    <id val="4913"/>
+    <id val="4914"/>
+    <id val="4915"/>
+    <id val="4916"/>
+    <id val="4917"/>
+    <id val="4918"/>
+    <id val="4919"/>
+    <id val="4920"/>
+    <id val="4921"/>
+    <id val="4922"/>
+    <id val="4942"/>
+    <id val="4943"/>
+    <id val="4944"/>
+    <id val="4945"/>
+    <id val="4946"/>
+    <id val="4947"/>
+    <id val="4948"/>
+    <id val="4949"/>
+    <id val="4950"/>
+    <id val="4951"/>
+    <id val="4952"/>
+    <id val="4953"/>
+    <id val="4954"/>
+    <id val="4955"/>
+    <id val="4956"/>
+    <id val="4957"/>
+    <id val="4958"/>
+    <id val="4959"/>
+    <id val="4960"/>
+    <id val="4961"/>
+    <id val="4962"/>
+    <id val="4963"/>
+    <id val="4964"/>
+    <id val="4965"/>
+    <id val="4966"/>
+    <id val="4967"/>
+    <id val="4968"/>
+    <id val="4969"/>
+    <id val="4970"/>
+    <id val="4971"/>
+    <id val="4972"/>
+    <id val="4973"/>
+    <id val="4974"/>
+    <id val="4975"/>
+    <id val="4976"/>
+    <id val="4977"/>
+    <id val="4978"/>
+    <id val="4979"/>
+    <id val="4980"/>
+    <id val="4981"/>
+    <id val="4982"/>
+    <id val="4983"/>
+    <id val="4984"/>
+    <id val="4985"/>
+    <id val="4986"/>
+    <id val="5006"/>
+    <id val="5007"/>
+    <id val="5008"/>
+    <id val="5009"/>
+    <id val="5010"/>
+    <id val="5011"/>
+    <id val="5012"/>
+    <id val="5013"/>
+    <id val="5014"/>
+    <id val="5015"/>
+    <id val="5016"/>
+    <id val="5017"/>
+    <id val="5018"/>
+    <id val="5019"/>
+    <id val="5020"/>
+    <id val="5021"/>
+    <id val="5022"/>
+    <id val="5023"/>
+    <id val="5024"/>
+    <id val="5025"/>
+    <id val="5026"/>
+    <id val="5027"/>
+    <id val="5028"/>
+    <id val="5029"/>
+    <id val="5030"/>
+    <id val="5031"/>
+    <id val="5032"/>
+    <id val="5033"/>
+    <id val="5034"/>
+    <id val="5035"/>
+    <id val="5036"/>
+    <id val="5037"/>
+    <id val="5038"/>
+    <id val="5039"/>
+    <id val="5040"/>
+    <id val="5041"/>
+    <id val="5042"/>
+    <id val="5043"/>
+    <id val="5044"/>
+    <id val="5045"/>
+    <id val="5046"/>
+    <id val="5047"/>
+    <id val="5048"/>
+    <id val="5049"/>
+    <id val="5050"/>
+    <id val="5070"/>
+    <id val="5071"/>
+    <id val="5072"/>
+    <id val="5073"/>
+    <id val="5074"/>
+    <id val="5075"/>
+    <id val="5076"/>
+    <id val="5077"/>
+    <id val="5078"/>
+    <id val="5079"/>
+    <id val="5080"/>
+    <id val="5081"/>
+    <id val="5082"/>
+    <id val="5083"/>
+    <id val="5084"/>
+    <id val="5085"/>
+    <id val="5086"/>
+    <id val="5087"/>
+    <id val="5088"/>
+    <id val="5089"/>
+    <id val="5090"/>
+    <id val="5091"/>
+    <id val="5092"/>
+    <id val="5093"/>
+    <id val="5094"/>
+    <id val="5095"/>
+    <id val="5096"/>
+    <id val="5097"/>
+    <id val="5098"/>
+    <id val="5099"/>
+    <id val="5100"/>
+    <id val="5101"/>
+    <id val="5102"/>
+    <id val="5103"/>
+    <id val="5104"/>
+    <id val="5105"/>
+    <id val="5106"/>
+    <id val="5107"/>
+    <id val="5108"/>
+    <id val="5109"/>
+    <id val="5110"/>
+    <id val="5111"/>
+    <id val="5112"/>
+    <id val="5113"/>
+    <id val="5114"/>
+    <id val="5134"/>
+    <id val="5135"/>
+    <id val="5136"/>
+    <id val="5137"/>
+    <id val="5138"/>
+    <id val="5139"/>
+    <id val="5140"/>
+    <id val="5141"/>
+    <id val="5142"/>
+    <id val="5143"/>
+    <id val="5144"/>
+    <id val="5145"/>
+    <id val="5146"/>
+    <id val="5147"/>
+    <id val="5148"/>
+    <id val="5149"/>
+    <id val="5150"/>
+    <id val="5151"/>
+    <id val="5152"/>
+    <id val="5153"/>
+    <id val="5154"/>
+    <id val="5155"/>
+    <id val="5156"/>
+    <id val="5157"/>
+    <id val="5158"/>
+    <id val="5159"/>
+    <id val="5160"/>
+    <id val="5161"/>
+    <id val="5162"/>
+    <id val="5163"/>
+    <id val="5164"/>
+    <id val="5165"/>
+    <id val="5166"/>
+    <id val="5167"/>
+    <id val="5168"/>
+    <id val="5169"/>
+    <id val="5170"/>
+    <id val="5171"/>
+    <id val="5172"/>
+    <id val="5173"/>
+    <id val="5174"/>
+    <id val="5175"/>
+    <id val="5176"/>
+    <id val="5177"/>
+    <id val="5178"/>
+    <id val="5198"/>
+    <id val="5199"/>
+    <id val="5200"/>
+    <id val="5201"/>
+    <id val="5202"/>
+    <id val="5203"/>
+    <id val="5204"/>
+    <id val="5205"/>
+    <id val="5206"/>
+    <id val="5207"/>
+    <id val="5208"/>
+    <id val="5209"/>
+    <id val="5210"/>
+    <id val="5211"/>
+    <id val="5212"/>
+    <id val="5213"/>
+    <id val="5214"/>
+    <id val="5215"/>
+    <id val="5216"/>
+    <id val="5217"/>
+    <id val="5218"/>
+    <id val="5219"/>
+    <id val="5220"/>
+    <id val="5221"/>
+    <id val="5222"/>
+    <id val="5223"/>
+    <id val="5224"/>
+    <id val="5225"/>
+    <id val="5226"/>
+    <id val="5227"/>
+    <id val="5228"/>
+    <id val="5229"/>
+    <id val="5230"/>
+    <id val="5231"/>
+    <id val="5232"/>
+    <id val="5233"/>
+    <id val="5234"/>
+    <id val="5235"/>
+    <id val="5236"/>
+    <id val="5237"/>
+    <id val="5238"/>
+    <id val="5239"/>
+    <id val="5240"/>
+    <id val="5241"/>
+    <id val="5242"/>
+    <id val="5262"/>
+    <id val="5263"/>
+    <id val="5264"/>
+    <id val="5265"/>
+    <id val="5266"/>
+    <id val="5267"/>
+    <id val="5268"/>
+    <id val="5269"/>
+    <id val="5270"/>
+    <id val="5271"/>
+    <id val="5272"/>
+    <id val="5273"/>
+    <id val="5274"/>
+    <id val="5275"/>
+    <id val="5276"/>
+    <id val="5277"/>
+    <id val="5278"/>
+    <id val="5279"/>
+    <id val="5280"/>
+    <id val="5281"/>
+    <id val="5282"/>
+    <id val="5283"/>
+    <id val="5284"/>
+    <id val="5285"/>
+    <id val="5286"/>
+    <id val="5287"/>
+    <id val="5288"/>
+    <id val="5289"/>
+    <id val="5290"/>
+    <id val="5291"/>
+    <id val="5292"/>
+    <id val="5293"/>
+    <id val="5294"/>
+    <id val="5295"/>
+    <id val="5296"/>
+    <id val="5297"/>
+    <id val="5298"/>
+    <id val="5299"/>
+    <id val="5300"/>
+    <id val="5301"/>
+    <id val="5302"/>
+    <id val="5303"/>
+    <id val="5304"/>
+    <id val="5305"/>
+    <id val="5306"/>
+    <id val="5326"/>
+    <id val="5327"/>
+    <id val="5328"/>
+    <id val="5329"/>
+    <id val="5330"/>
+    <id val="5331"/>
+    <id val="5332"/>
+    <id val="5333"/>
+    <id val="5334"/>
+    <id val="5335"/>
+    <id val="5336"/>
+    <id val="5337"/>
+    <id val="5338"/>
+    <id val="5339"/>
+    <id val="5340"/>
+    <id val="5341"/>
+    <id val="5342"/>
+    <id val="5343"/>
+    <id val="5344"/>
+    <id val="5345"/>
+    <id val="5346"/>
+    <id val="5347"/>
+    <id val="5348"/>
+    <id val="5349"/>
+    <id val="5350"/>
+    <id val="5351"/>
+    <id val="5352"/>
+    <id val="5353"/>
+    <id val="5354"/>
+    <id val="5355"/>
+    <id val="5356"/>
+    <id val="5357"/>
+    <id val="5358"/>
+    <id val="5359"/>
+    <id val="5360"/>
+    <id val="5361"/>
+    <id val="5362"/>
+    <id val="5363"/>
+    <id val="5364"/>
+    <id val="5365"/>
+    <id val="5366"/>
+    <id val="5367"/>
+    <id val="5368"/>
+    <id val="5369"/>
+    <id val="5370"/>
+    <id val="5390"/>
+    <id val="5391"/>
+    <id val="5392"/>
+    <id val="5393"/>
+    <id val="5394"/>
+    <id val="5395"/>
+    <id val="5396"/>
+    <id val="5397"/>
+    <id val="5398"/>
+    <id val="5399"/>
+    <id val="5400"/>
+    <id val="5401"/>
+    <id val="5402"/>
+    <id val="5403"/>
+    <id val="5404"/>
+    <id val="5405"/>
+    <id val="5406"/>
+    <id val="5407"/>
+    <id val="5408"/>
+    <id val="5409"/>
+    <id val="5410"/>
+    <id val="5411"/>
+    <id val="5412"/>
+    <id val="5413"/>
+    <id val="5414"/>
+    <id val="5415"/>
+    <id val="5416"/>
+    <id val="5417"/>
+    <id val="5418"/>
+    <id val="5419"/>
+    <id val="5420"/>
+    <id val="5421"/>
+    <id val="5422"/>
+    <id val="5423"/>
+    <id val="5424"/>
+    <id val="5425"/>
+    <id val="5426"/>
+    <id val="5427"/>
+    <id val="5428"/>
+    <id val="5429"/>
+    <id val="5430"/>
+    <id val="5431"/>
+    <id val="5432"/>
+    <id val="5433"/>
+    <id val="5434"/>
+    <id val="5454"/>
+    <id val="5455"/>
+    <id val="5456"/>
+    <id val="5457"/>
+    <id val="5458"/>
+    <id val="5459"/>
+    <id val="5460"/>
+    <id val="5461"/>
+    <id val="5462"/>
+    <id val="5463"/>
+    <id val="5464"/>
+    <id val="5465"/>
+    <id val="5466"/>
+    <id val="5467"/>
+    <id val="5468"/>
+    <id val="5469"/>
+    <id val="5470"/>
+    <id val="5471"/>
+    <id val="5472"/>
+    <id val="5473"/>
+    <id val="5474"/>
+    <id val="5475"/>
+    <id val="5476"/>
+    <id val="5477"/>
+    <id val="5478"/>
+    <id val="5479"/>
+    <id val="5480"/>
+    <id val="5481"/>
+    <id val="5482"/>
+    <id val="5483"/>
+    <id val="5484"/>
+    <id val="5485"/>
+    <id val="5486"/>
+    <id val="5487"/>
+    <id val="5488"/>
+    <id val="5489"/>
+    <id val="5490"/>
+    <id val="5491"/>
+    <id val="5492"/>
+    <id val="5493"/>
+    <id val="5494"/>
+    <id val="5495"/>
+    <id val="5496"/>
+    <id val="5497"/>
+    <id val="5498"/>
+    <id val="5518"/>
+    <id val="5519"/>
+    <id val="5520"/>
+    <id val="5521"/>
+    <id val="5522"/>
+    <id val="5523"/>
+    <id val="5524"/>
+    <id val="5525"/>
+    <id val="5526"/>
+    <id val="5527"/>
+    <id val="5528"/>
+    <id val="5529"/>
+    <id val="5530"/>
+    <id val="5531"/>
+    <id val="5532"/>
+    <id val="5533"/>
+    <id val="5534"/>
+    <id val="5535"/>
+    <id val="5536"/>
+    <id val="5537"/>
+    <id val="5538"/>
+    <id val="5539"/>
+    <id val="5540"/>
+    <id val="5541"/>
+    <id val="5542"/>
+    <id val="5543"/>
+    <id val="5544"/>
+    <id val="5545"/>
+    <id val="5546"/>
+    <id val="5547"/>
+    <id val="5548"/>
+    <id val="5549"/>
+    <id val="5550"/>
+    <id val="5551"/>
+    <id val="5552"/>
+    <id val="5553"/>
+    <id val="5554"/>
+    <id val="5555"/>
+    <id val="5556"/>
+    <id val="5557"/>
+    <id val="5558"/>
+    <id val="5559"/>
+    <id val="5560"/>
+    <id val="5561"/>
+    <id val="5562"/>
+    <id val="5582"/>
+    <id val="5583"/>
+    <id val="5584"/>
+    <id val="5585"/>
+    <id val="5586"/>
+    <id val="5587"/>
+    <id val="5588"/>
+    <id val="5589"/>
+    <id val="5590"/>
+    <id val="5591"/>
+    <id val="5592"/>
+    <id val="5593"/>
+    <id val="5594"/>
+    <id val="5595"/>
+    <id val="5596"/>
+    <id val="5597"/>
+    <id val="5598"/>
+    <id val="5599"/>
+    <id val="5600"/>
+    <id val="5601"/>
+    <id val="5602"/>
+    <id val="5603"/>
+    <id val="5604"/>
+    <id val="5605"/>
+    <id val="5606"/>
+    <id val="5607"/>
+    <id val="5608"/>
+    <id val="5609"/>
+    <id val="5610"/>
+    <id val="5611"/>
+    <id val="5612"/>
+    <id val="5613"/>
+    <id val="5614"/>
+    <id val="5615"/>
+    <id val="5616"/>
+    <id val="5617"/>
+    <id val="5618"/>
+    <id val="5619"/>
+    <id val="5620"/>
+    <id val="5621"/>
+    <id val="5622"/>
+    <id val="5623"/>
+    <id val="5624"/>
+    <id val="5625"/>
+    <id val="5626"/>
+    <id val="5646"/>
+    <id val="5647"/>
+    <id val="5648"/>
+    <id val="5649"/>
+    <id val="5650"/>
+    <id val="5651"/>
+    <id val="5652"/>
+    <id val="5653"/>
+    <id val="5654"/>
+    <id val="5655"/>
+    <id val="5656"/>
+    <id val="5657"/>
+    <id val="5658"/>
+    <id val="5659"/>
+    <id val="5660"/>
+    <id val="5661"/>
+    <id val="5662"/>
+    <id val="5663"/>
+    <id val="5664"/>
+    <id val="5665"/>
+    <id val="5666"/>
+    <id val="5667"/>
+    <id val="5668"/>
+    <id val="5669"/>
+    <id val="5670"/>
+    <id val="5671"/>
+    <id val="5672"/>
+    <id val="5673"/>
+    <id val="5674"/>
+    <id val="5675"/>
+    <id val="5676"/>
+    <id val="5677"/>
+    <id val="5678"/>
+    <id val="5679"/>
+    <id val="5680"/>
+    <id val="5681"/>
+    <id val="5682"/>
+    <id val="5683"/>
+    <id val="5684"/>
+    <id val="5685"/>
+    <id val="5686"/>
+    <id val="5687"/>
+    <id val="5688"/>
+    <id val="5689"/>
+    <id val="5690"/>
+    <id val="5710"/>
+    <id val="5711"/>
+    <id val="5712"/>
+    <id val="5713"/>
+    <id val="5714"/>
+    <id val="5715"/>
+    <id val="5716"/>
+    <id val="5717"/>
+    <id val="5718"/>
+    <id val="5719"/>
+    <id val="5720"/>
+    <id val="5721"/>
+    <id val="5722"/>
+    <id val="5723"/>
+    <id val="5724"/>
+    <id val="5725"/>
+    <id val="5726"/>
+    <id val="5727"/>
+    <id val="5728"/>
+    <id val="5729"/>
+    <id val="5730"/>
+    <id val="5731"/>
+    <id val="5732"/>
+    <id val="5733"/>
+    <id val="5734"/>
+    <id val="5735"/>
+    <id val="5736"/>
+    <id val="5737"/>
+    <id val="5738"/>
+    <id val="5739"/>
+    <id val="5740"/>
+    <id val="5741"/>
+    <id val="5742"/>
+    <id val="5743"/>
+    <id val="5744"/>
+    <id val="5745"/>
+    <id val="5746"/>
+    <id val="5747"/>
+    <id val="5748"/>
+    <id val="5749"/>
+    <id val="5750"/>
+    <id val="5751"/>
+    <id val="5752"/>
+    <id val="5753"/>
+    <id val="5754"/>
+    <id val="5774"/>
+    <id val="5775"/>
+    <id val="5776"/>
+    <id val="5777"/>
+    <id val="5778"/>
+    <id val="5779"/>
+    <id val="5780"/>
+    <id val="5781"/>
+    <id val="5782"/>
+    <id val="5783"/>
+    <id val="5784"/>
+    <id val="5785"/>
+    <id val="5786"/>
+    <id val="5787"/>
+    <id val="5788"/>
+    <id val="5789"/>
+    <id val="5790"/>
+    <id val="5791"/>
+    <id val="5792"/>
+    <id val="5793"/>
+    <id val="5794"/>
+    <id val="5795"/>
+    <id val="5796"/>
+    <id val="5797"/>
+    <id val="5798"/>
+    <id val="5799"/>
+    <id val="5800"/>
+    <id val="5801"/>
+    <id val="5802"/>
+    <id val="5803"/>
+    <id val="5804"/>
+    <id val="5805"/>
+    <id val="5806"/>
+    <id val="5807"/>
+    <id val="5808"/>
+    <id val="5809"/>
+    <id val="5810"/>
+    <id val="5811"/>
+    <id val="5812"/>
+    <id val="5813"/>
+    <id val="5814"/>
+    <id val="5815"/>
+    <id val="5816"/>
+    <id val="5817"/>
+    <id val="5818"/>
+    <id val="5838"/>
+    <id val="5839"/>
+    <id val="5840"/>
+    <id val="5841"/>
+    <id val="5842"/>
+    <id val="5843"/>
+    <id val="5844"/>
+    <id val="5845"/>
+    <id val="5846"/>
+    <id val="5847"/>
+    <id val="5848"/>
+    <id val="5849"/>
+    <id val="5850"/>
+    <id val="5851"/>
+    <id val="5852"/>
+    <id val="5853"/>
+    <id val="5854"/>
+    <id val="5855"/>
+    <id val="5856"/>
+    <id val="5857"/>
+    <id val="5858"/>
+    <id val="5859"/>
+    <id val="5860"/>
+    <id val="5861"/>
+    <id val="5862"/>
+    <id val="5863"/>
+    <id val="5864"/>
+    <id val="5865"/>
+    <id val="5866"/>
+    <id val="5867"/>
+    <id val="5868"/>
+    <id val="5869"/>
+    <id val="5870"/>
+    <id val="5871"/>
+    <id val="5872"/>
+    <id val="5873"/>
+    <id val="5874"/>
+    <id val="5875"/>
+    <id val="5876"/>
+    <id val="5877"/>
+    <id val="5878"/>
+    <id val="5879"/>
+    <id val="5880"/>
+    <id val="5881"/>
+    <id val="5882"/>
+    <id val="5902"/>
+    <id val="5903"/>
+    <id val="5904"/>
+    <id val="5905"/>
+    <id val="5906"/>
+    <id val="5907"/>
+    <id val="5908"/>
+    <id val="5909"/>
+    <id val="5910"/>
+    <id val="5911"/>
+    <id val="5912"/>
+    <id val="5913"/>
+    <id val="5914"/>
+    <id val="5915"/>
+    <id val="5916"/>
+    <id val="5917"/>
+    <id val="5918"/>
+    <id val="5919"/>
+    <id val="5920"/>
+    <id val="5921"/>
+    <id val="5922"/>
+    <id val="5923"/>
+    <id val="5924"/>
+    <id val="5925"/>
+    <id val="5926"/>
+    <id val="5927"/>
+    <id val="5928"/>
+    <id val="5929"/>
+    <id val="5930"/>
+    <id val="5931"/>
+    <id val="5932"/>
+    <id val="5933"/>
+    <id val="5934"/>
+    <id val="5935"/>
+    <id val="5936"/>
+    <id val="5937"/>
+    <id val="5938"/>
+    <id val="5939"/>
+    <id val="5940"/>
+    <id val="5941"/>
+    <id val="5942"/>
+    <id val="5943"/>
+    <id val="5944"/>
+    <id val="5945"/>
+    <id val="5946"/>
+    <id val="5966"/>
+    <id val="5967"/>
+    <id val="5968"/>
+    <id val="5969"/>
+    <id val="5970"/>
+    <id val="5971"/>
+    <id val="5972"/>
+    <id val="5973"/>
+    <id val="5974"/>
+    <id val="5975"/>
+    <id val="5976"/>
+    <id val="5977"/>
+    <id val="5978"/>
+    <id val="5979"/>
+    <id val="5980"/>
+    <id val="5981"/>
+    <id val="5982"/>
+    <id val="5983"/>
+    <id val="5984"/>
+    <id val="5985"/>
+    <id val="5986"/>
+    <id val="5987"/>
+    <id val="5988"/>
+    <id val="5989"/>
+    <id val="5990"/>
+    <id val="5991"/>
+    <id val="5992"/>
+    <id val="5993"/>
+    <id val="5994"/>
+    <id val="5995"/>
+    <id val="5996"/>
+    <id val="5997"/>
+    <id val="5998"/>
+    <id val="5999"/>
+    <id val="6000"/>
+    <id val="6001"/>
+    <id val="6002"/>
+    <id val="6003"/>
+    <id val="6004"/>
+    <id val="6005"/>
+    <id val="6006"/>
+    <id val="6007"/>
+    <id val="6008"/>
+    <id val="6009"/>
+    <id val="6010"/>
+    <id val="6030"/>
+    <id val="6031"/>
+    <id val="6032"/>
+    <id val="6033"/>
+    <id val="6034"/>
+    <id val="6035"/>
+    <id val="6036"/>
+    <id val="6037"/>
+    <id val="6038"/>
+    <id val="6039"/>
+    <id val="6040"/>
+    <id val="6041"/>
+    <id val="6042"/>
+    <id val="6043"/>
+    <id val="6044"/>
+    <id val="6045"/>
+    <id val="6046"/>
+    <id val="6047"/>
+    <id val="6048"/>
+    <id val="6049"/>
+    <id val="6050"/>
+    <id val="6051"/>
+    <id val="6052"/>
+    <id val="6053"/>
+    <id val="6054"/>
+    <id val="6055"/>
+    <id val="6056"/>
+    <id val="6057"/>
+    <id val="6058"/>
+    <id val="6059"/>
+    <id val="6060"/>
+    <id val="6061"/>
+    <id val="6062"/>
+    <id val="6063"/>
+    <id val="6064"/>
+    <id val="6065"/>
+    <id val="6066"/>
+    <id val="6067"/>
+    <id val="6068"/>
+    <id val="6069"/>
+    <id val="6070"/>
+    <id val="6071"/>
+    <id val="6072"/>
+    <id val="6073"/>
+    <id val="6074"/>
+    <id val="6094"/>
+    <id val="6095"/>
+    <id val="6096"/>
+    <id val="6097"/>
+    <id val="6098"/>
+    <id val="6099"/>
+    <id val="6100"/>
+    <id val="6101"/>
+    <id val="6102"/>
+    <id val="6103"/>
+    <id val="6104"/>
+    <id val="6105"/>
+    <id val="6106"/>
+    <id val="6107"/>
+    <id val="6108"/>
+    <id val="6109"/>
+    <id val="6110"/>
+    <id val="6111"/>
+    <id val="6112"/>
+    <id val="6113"/>
+    <id val="6114"/>
+    <id val="6115"/>
+    <id val="6116"/>
+    <id val="6117"/>
+    <id val="6118"/>
+    <id val="6119"/>
+    <id val="6120"/>
+    <id val="6121"/>
+    <id val="6122"/>
+    <id val="6123"/>
+    <id val="6124"/>
+    <id val="6125"/>
+    <id val="6126"/>
+    <id val="6127"/>
+    <id val="6128"/>
+    <id val="6129"/>
+    <id val="6130"/>
+    <id val="6131"/>
+    <id val="6132"/>
+    <id val="6133"/>
+    <id val="6134"/>
+    <id val="6135"/>
+    <id val="6136"/>
+    <id val="6137"/>
+    <id val="6138"/>
+    <id val="6158"/>
+    <id val="6159"/>
+    <id val="6160"/>
+    <id val="6161"/>
+    <id val="6162"/>
+    <id val="6163"/>
+    <id val="6164"/>
+    <id val="6165"/>
+    <id val="6166"/>
+    <id val="6167"/>
+    <id val="6168"/>
+    <id val="6169"/>
+    <id val="6170"/>
+    <id val="6171"/>
+    <id val="6172"/>
+    <id val="6173"/>
+    <id val="6174"/>
+    <id val="6175"/>
+    <id val="6176"/>
+    <id val="6177"/>
+    <id val="6178"/>
+    <id val="6179"/>
+    <id val="6180"/>
+    <id val="6181"/>
+    <id val="6182"/>
+    <id val="6183"/>
+    <id val="6184"/>
+    <id val="6185"/>
+    <id val="6186"/>
+    <id val="6187"/>
+    <id val="6188"/>
+    <id val="6189"/>
+    <id val="6190"/>
+    <id val="6191"/>
+    <id val="6192"/>
+    <id val="6193"/>
+    <id val="6194"/>
+    <id val="6195"/>
+    <id val="6196"/>
+    <id val="6197"/>
+    <id val="6198"/>
+    <id val="6199"/>
+    <id val="6200"/>
+    <id val="6201"/>
+    <id val="6202"/>
+    <id val="6222"/>
+    <id val="6223"/>
+    <id val="6224"/>
+    <id val="6225"/>
+    <id val="6226"/>
+    <id val="6227"/>
+    <id val="6228"/>
+    <id val="6229"/>
+    <id val="6230"/>
+    <id val="6231"/>
+    <id val="6232"/>
+    <id val="6233"/>
+    <id val="6234"/>
+    <id val="6235"/>
+    <id val="6236"/>
+    <id val="6237"/>
+    <id val="6238"/>
+    <id val="6239"/>
+    <id val="6240"/>
+    <id val="6241"/>
+    <id val="6242"/>
+    <id val="6243"/>
+    <id val="6244"/>
+    <id val="6245"/>
+    <id val="6246"/>
+    <id val="6247"/>
+    <id val="6248"/>
+    <id val="6249"/>
+    <id val="6250"/>
+    <id val="6251"/>
+    <id val="6252"/>
+    <id val="6253"/>
+    <id val="6254"/>
+    <id val="6255"/>
+    <id val="6256"/>
+    <id val="6257"/>
+    <id val="6258"/>
+    <id val="6259"/>
+    <id val="6260"/>
+    <id val="6261"/>
+    <id val="6262"/>
+    <id val="6263"/>
+    <id val="6264"/>
+    <id val="6265"/>
+    <id val="6266"/>
+    <id val="6286"/>
+    <id val="6287"/>
+    <id val="6288"/>
+    <id val="6289"/>
+    <id val="6290"/>
+    <id val="6291"/>
+    <id val="6292"/>
+    <id val="6293"/>
+    <id val="6294"/>
+    <id val="6295"/>
+    <id val="6296"/>
+    <id val="6297"/>
+    <id val="6298"/>
+    <id val="6299"/>
+    <id val="6300"/>
+    <id val="6301"/>
+    <id val="6302"/>
+    <id val="6303"/>
+    <id val="6304"/>
+    <id val="6305"/>
+    <id val="6306"/>
+    <id val="6307"/>
+    <id val="6308"/>
+    <id val="6309"/>
+    <id val="6310"/>
+    <id val="6311"/>
+    <id val="6312"/>
+    <id val="6313"/>
+    <id val="6314"/>
+    <id val="6315"/>
+    <id val="6316"/>
+    <id val="6317"/>
+    <id val="6318"/>
+    <id val="6319"/>
+    <id val="6320"/>
+    <id val="6321"/>
+    <id val="6322"/>
+    <id val="6323"/>
+    <id val="6324"/>
+    <id val="6325"/>
+    <id val="6326"/>
+    <id val="6327"/>
+    <id val="6328"/>
+    <id val="6329"/>
+    <id val="6330"/>
+    <id val="6350"/>
+    <id val="6351"/>
+    <id val="6352"/>
+    <id val="6353"/>
+    <id val="6354"/>
+    <id val="6355"/>
+    <id val="6356"/>
+    <id val="6357"/>
+    <id val="6358"/>
+    <id val="6359"/>
+    <id val="6360"/>
+    <id val="6361"/>
+    <id val="6362"/>
+    <id val="6363"/>
+    <id val="6364"/>
+    <id val="6365"/>
+    <id val="6366"/>
+    <id val="6367"/>
+    <id val="6368"/>
+    <id val="6369"/>
+    <id val="6370"/>
+    <id val="6371"/>
+    <id val="6372"/>
+    <id val="6373"/>
+    <id val="6374"/>
+    <id val="6375"/>
+    <id val="6376"/>
+    <id val="6377"/>
+    <id val="6378"/>
+    <id val="6379"/>
+    <id val="6380"/>
+    <id val="6381"/>
+    <id val="6382"/>
+    <id val="6383"/>
+    <id val="6384"/>
+    <id val="6385"/>
+    <id val="6386"/>
+    <id val="6387"/>
+    <id val="6388"/>
+    <id val="6389"/>
+    <id val="6390"/>
+    <id val="6391"/>
+    <id val="6392"/>
+    <id val="6393"/>
+    <id val="6394"/>
+    <id val="6414"/>
+    <id val="6415"/>
+    <id val="6416"/>
+    <id val="6417"/>
+    <id val="6418"/>
+    <id val="6419"/>
+    <id val="6420"/>
+    <id val="6421"/>
+    <id val="6422"/>
+    <id val="6423"/>
+    <id val="6424"/>
+    <id val="6425"/>
+    <id val="6426"/>
+    <id val="6427"/>
+    <id val="6428"/>
+    <id val="6429"/>
+    <id val="6430"/>
+    <id val="6431"/>
+    <id val="6432"/>
+    <id val="6433"/>
+    <id val="6434"/>
+    <id val="6435"/>
+    <id val="6436"/>
+    <id val="6437"/>
+    <id val="6438"/>
+    <id val="6439"/>
+    <id val="6440"/>
+    <id val="6441"/>
+    <id val="6442"/>
+    <id val="6443"/>
+    <id val="6444"/>
+    <id val="6445"/>
+    <id val="6446"/>
+    <id val="6447"/>
+    <id val="6448"/>
+    <id val="6449"/>
+    <id val="6450"/>
+    <id val="6451"/>
+    <id val="6452"/>
+    <id val="6453"/>
+    <id val="6454"/>
+    <id val="6455"/>
+    <id val="6456"/>
+    <id val="6457"/>
+    <id val="6458"/>
+    <id val="6478"/>
+    <id val="6479"/>
+    <id val="6480"/>
+    <id val="6481"/>
+    <id val="6482"/>
+    <id val="6483"/>
+    <id val="6484"/>
+    <id val="6485"/>
+    <id val="6486"/>
+    <id val="6487"/>
+    <id val="6488"/>
+    <id val="6489"/>
+    <id val="6490"/>
+    <id val="6491"/>
+    <id val="6492"/>
+    <id val="6493"/>
+    <id val="6494"/>
+    <id val="6495"/>
+    <id val="6496"/>
+    <id val="6497"/>
+    <id val="6498"/>
+    <id val="6499"/>
+    <id val="6500"/>
+    <id val="6501"/>
+    <id val="6502"/>
+    <id val="6503"/>
+    <id val="6504"/>
+    <id val="6505"/>
+    <id val="6506"/>
+    <id val="6507"/>
+    <id val="6508"/>
+    <id val="6509"/>
+    <id val="6510"/>
+    <id val="6511"/>
+    <id val="6512"/>
+    <id val="6513"/>
+    <id val="6514"/>
+    <id val="6515"/>
+    <id val="6516"/>
+    <id val="6517"/>
+    <id val="6518"/>
+    <id val="6519"/>
+    <id val="6520"/>
+    <id val="6521"/>
+    <id val="6522"/>
+    <id val="6542"/>
+    <id val="6543"/>
+    <id val="6544"/>
+    <id val="6545"/>
+    <id val="6546"/>
+    <id val="6547"/>
+    <id val="6548"/>
+    <id val="6549"/>
+    <id val="6550"/>
+    <id val="6551"/>
+    <id val="6552"/>
+    <id val="6553"/>
+    <id val="6554"/>
+    <id val="6555"/>
+    <id val="6556"/>
+    <id val="6557"/>
+    <id val="6558"/>
+    <id val="6559"/>
+    <id val="6560"/>
+    <id val="6561"/>
+    <id val="6562"/>
+    <id val="6563"/>
+    <id val="6564"/>
+    <id val="6565"/>
+    <id val="6566"/>
+    <id val="6567"/>
+    <id val="6568"/>
+    <id val="6569"/>
+    <id val="6570"/>
+    <id val="6571"/>
+    <id val="6572"/>
+    <id val="6573"/>
+    <id val="6574"/>
+    <id val="6575"/>
+    <id val="6576"/>
+    <id val="6577"/>
+    <id val="6578"/>
+    <id val="6579"/>
+    <id val="6580"/>
+    <id val="6581"/>
+    <id val="6582"/>
+    <id val="6583"/>
+    <id val="6584"/>
+    <id val="6585"/>
+    <id val="6586"/>
+    <id val="6606"/>
+    <id val="6607"/>
+    <id val="6608"/>
+    <id val="6609"/>
+    <id val="6610"/>
+    <id val="6611"/>
+    <id val="6612"/>
+    <id val="6613"/>
+    <id val="6614"/>
+    <id val="6615"/>
+    <id val="6616"/>
+    <id val="6617"/>
+    <id val="6618"/>
+    <id val="6619"/>
+    <id val="6620"/>
+    <id val="6621"/>
+    <id val="6622"/>
+    <id val="6623"/>
+    <id val="6624"/>
+    <id val="6625"/>
+    <id val="6626"/>
+    <id val="6627"/>
+    <id val="6628"/>
+    <id val="6629"/>
+    <id val="6630"/>
+    <id val="6631"/>
+    <id val="6632"/>
+    <id val="6633"/>
+    <id val="6634"/>
+    <id val="6635"/>
+    <id val="6636"/>
+    <id val="6637"/>
+    <id val="6638"/>
+    <id val="6639"/>
+    <id val="6640"/>
+    <id val="6641"/>
+    <id val="6642"/>
+    <id val="6643"/>
+    <id val="6644"/>
+    <id val="6645"/>
+    <id val="6646"/>
+    <id val="6647"/>
+    <id val="6648"/>
+    <id val="6649"/>
+    <id val="6650"/>
+    <id val="6670"/>
+    <id val="6671"/>
+    <id val="6672"/>
+    <id val="6673"/>
+    <id val="6674"/>
+    <id val="6675"/>
+    <id val="6676"/>
+    <id val="6677"/>
+    <id val="6678"/>
+    <id val="6679"/>
+    <id val="6680"/>
+    <id val="6681"/>
+    <id val="6682"/>
+    <id val="6683"/>
+    <id val="6684"/>
+    <id val="6685"/>
+    <id val="6686"/>
+    <id val="6687"/>
+    <id val="6688"/>
+    <id val="6689"/>
+    <id val="6690"/>
+    <id val="6691"/>
+    <id val="6692"/>
+    <id val="6693"/>
+    <id val="6694"/>
+    <id val="6695"/>
+    <id val="6696"/>
+    <id val="6697"/>
+    <id val="6698"/>
+    <id val="6699"/>
+    <id val="6700"/>
+    <id val="6701"/>
+    <id val="6702"/>
+    <id val="6703"/>
+    <id val="6704"/>
+    <id val="6705"/>
+    <id val="6706"/>
+    <id val="6707"/>
+    <id val="6708"/>
+    <id val="6709"/>
+    <id val="6710"/>
+    <id val="6711"/>
+    <id val="6712"/>
+    <id val="6713"/>
+    <id val="6714"/>
+    <id val="6734"/>
+    <id val="6735"/>
+    <id val="6736"/>
+    <id val="6737"/>
+    <id val="6738"/>
+    <id val="6739"/>
+    <id val="6740"/>
+    <id val="6741"/>
+    <id val="6742"/>
+    <id val="6743"/>
+    <id val="6744"/>
+    <id val="6745"/>
+    <id val="6746"/>
+    <id val="6747"/>
+    <id val="6748"/>
+    <id val="6749"/>
+    <id val="6750"/>
+    <id val="6751"/>
+    <id val="6752"/>
+    <id val="6753"/>
+    <id val="6754"/>
+    <id val="6755"/>
+    <id val="6756"/>
+    <id val="6757"/>
+    <id val="6758"/>
+    <id val="6759"/>
+    <id val="6760"/>
+    <id val="6761"/>
+    <id val="6762"/>
+    <id val="6763"/>
+    <id val="6764"/>
+    <id val="6765"/>
+    <id val="6766"/>
+    <id val="6767"/>
+    <id val="6768"/>
+    <id val="6769"/>
+    <id val="6770"/>
+    <id val="6771"/>
+    <id val="6772"/>
+    <id val="6773"/>
+    <id val="6774"/>
+    <id val="6775"/>
+    <id val="6776"/>
+    <id val="6777"/>
+    <id val="6778"/>
+    <id val="6798"/>
+    <id val="6799"/>
+    <id val="6800"/>
+    <id val="6801"/>
+    <id val="6802"/>
+    <id val="6803"/>
+    <id val="6804"/>
+    <id val="6805"/>
+    <id val="6806"/>
+    <id val="6807"/>
+    <id val="6808"/>
+    <id val="6809"/>
+    <id val="6810"/>
+    <id val="6811"/>
+    <id val="6812"/>
+    <id val="6813"/>
+    <id val="6814"/>
+    <id val="6815"/>
+    <id val="6816"/>
+    <id val="6817"/>
+    <id val="6818"/>
+    <id val="6819"/>
+    <id val="6820"/>
+    <id val="6821"/>
+    <id val="6822"/>
+    <id val="6823"/>
+    <id val="6824"/>
+    <id val="6825"/>
+    <id val="6826"/>
+    <id val="6827"/>
+    <id val="6828"/>
+    <id val="6829"/>
+    <id val="6830"/>
+    <id val="6831"/>
+    <id val="6832"/>
+    <id val="6833"/>
+    <id val="6834"/>
+    <id val="6835"/>
+    <id val="6836"/>
+    <id val="6837"/>
+    <id val="6838"/>
+    <id val="6839"/>
+    <id val="6840"/>
+    <id val="6841"/>
+    <id val="6842"/>
+    <id val="6862"/>
+    <id val="6863"/>
+    <id val="6864"/>
+    <id val="6865"/>
+    <id val="6866"/>
+    <id val="6867"/>
+    <id val="6868"/>
+    <id val="6869"/>
+    <id val="6870"/>
+    <id val="6871"/>
+    <id val="6872"/>
+    <id val="6873"/>
+    <id val="6874"/>
+    <id val="6875"/>
+    <id val="6876"/>
+    <id val="6877"/>
+    <id val="6878"/>
+    <id val="6879"/>
+    <id val="6880"/>
+    <id val="6881"/>
+    <id val="6882"/>
+    <id val="6883"/>
+    <id val="6884"/>
+    <id val="6885"/>
+    <id val="6886"/>
+    <id val="6887"/>
+    <id val="6888"/>
+    <id val="6889"/>
+    <id val="6890"/>
+    <id val="6891"/>
+    <id val="6892"/>
+    <id val="6893"/>
+    <id val="6894"/>
+    <id val="6895"/>
+    <id val="6896"/>
+    <id val="6897"/>
+    <id val="6898"/>
+    <id val="6899"/>
+    <id val="6900"/>
+    <id val="6901"/>
+    <id val="6902"/>
+    <id val="6903"/>
+    <id val="6904"/>
+    <id val="6905"/>
+    <id val="6906"/>
+    <id val="6926"/>
+    <id val="6927"/>
+    <id val="6928"/>
+    <id val="6929"/>
+    <id val="6930"/>
+    <id val="6931"/>
+    <id val="6932"/>
+    <id val="6933"/>
+    <id val="6934"/>
+    <id val="6935"/>
+    <id val="6936"/>
+    <id val="6937"/>
+    <id val="6938"/>
+    <id val="6939"/>
+    <id val="6940"/>
+    <id val="6941"/>
+    <id val="6942"/>
+    <id val="6943"/>
+    <id val="6944"/>
+    <id val="6945"/>
+    <id val="6946"/>
+    <id val="6947"/>
+    <id val="6948"/>
+    <id val="6949"/>
+    <id val="6950"/>
+    <id val="6951"/>
+    <id val="6952"/>
+    <id val="6953"/>
+    <id val="6954"/>
+    <id val="6955"/>
+    <id val="6956"/>
+    <id val="6957"/>
+    <id val="6958"/>
+    <id val="6959"/>
+    <id val="6960"/>
+    <id val="6961"/>
+    <id val="6962"/>
+    <id val="6963"/>
+    <id val="6964"/>
+    <id val="6965"/>
+    <id val="6966"/>
+    <id val="6967"/>
+    <id val="6968"/>
+    <id val="6969"/>
+    <id val="6970"/>
+    <id val="6990"/>
+    <id val="6991"/>
+    <id val="6992"/>
+    <id val="6993"/>
+    <id val="6994"/>
+    <id val="6995"/>
+    <id val="6996"/>
+    <id val="6997"/>
+    <id val="6998"/>
+    <id val="6999"/>
+    <id val="7000"/>
+    <id val="7001"/>
+    <id val="7002"/>
+    <id val="7003"/>
+    <id val="7004"/>
+    <id val="7005"/>
+    <id val="7006"/>
+    <id val="7007"/>
+    <id val="7008"/>
+    <id val="7009"/>
+    <id val="7010"/>
+    <id val="7011"/>
+    <id val="7012"/>
+    <id val="7013"/>
+    <id val="7014"/>
+    <id val="7015"/>
+    <id val="7016"/>
+    <id val="7017"/>
+    <id val="7018"/>
+    <id val="7019"/>
+    <id val="7020"/>
+    <id val="7021"/>
+    <id val="7022"/>
+    <id val="7023"/>
+    <id val="7024"/>
+    <id val="7025"/>
+    <id val="7026"/>
+    <id val="7027"/>
+    <id val="7028"/>
+    <id val="7029"/>
+    <id val="7030"/>
+    <id val="7031"/>
+    <id val="7032"/>
+    <id val="7033"/>
+    <id val="7034"/>
+    <id val="7054"/>
+    <id val="7055"/>
+    <id val="7056"/>
+    <id val="7057"/>
+    <id val="7058"/>
+    <id val="7059"/>
+    <id val="7060"/>
+    <id val="7061"/>
+    <id val="7062"/>
+    <id val="7063"/>
+    <id val="7064"/>
+    <id val="7065"/>
+    <id val="7066"/>
+    <id val="7067"/>
+    <id val="7068"/>
+    <id val="7069"/>
+    <id val="7070"/>
+    <id val="7071"/>
+    <id val="7072"/>
+    <id val="7073"/>
+    <id val="7074"/>
+    <id val="7075"/>
+    <id val="7076"/>
+    <id val="7077"/>
+    <id val="7078"/>
+    <id val="7079"/>
+    <id val="7080"/>
+    <id val="7081"/>
+    <id val="7082"/>
+    <id val="7083"/>
+    <id val="7084"/>
+    <id val="7085"/>
+    <id val="7086"/>
+    <id val="7087"/>
+    <id val="7088"/>
+    <id val="7089"/>
+    <id val="7090"/>
+    <id val="7091"/>
+    <id val="7092"/>
+    <id val="7093"/>
+    <id val="7094"/>
+    <id val="7095"/>
+    <id val="7096"/>
+    <id val="7097"/>
+    <id val="7098"/>
+    <id val="7118"/>
+    <id val="7119"/>
+    <id val="7120"/>
+    <id val="7121"/>
+    <id val="7122"/>
+    <id val="7123"/>
+    <id val="7124"/>
+    <id val="7125"/>
+    <id val="7126"/>
+    <id val="7127"/>
+    <id val="7128"/>
+    <id val="7129"/>
+    <id val="7130"/>
+    <id val="7131"/>
+    <id val="7132"/>
+    <id val="7133"/>
+    <id val="7134"/>
+    <id val="7135"/>
+    <id val="7136"/>
+    <id val="7137"/>
+    <id val="7138"/>
+    <id val="7139"/>
+    <id val="7140"/>
+    <id val="7141"/>
+    <id val="7142"/>
+    <id val="7143"/>
+    <id val="7144"/>
+    <id val="7145"/>
+    <id val="7146"/>
+    <id val="7147"/>
+    <id val="7148"/>
+    <id val="7149"/>
+    <id val="7150"/>
+    <id val="7151"/>
+    <id val="7152"/>
+    <id val="7153"/>
+    <id val="7154"/>
+    <id val="7155"/>
+    <id val="7156"/>
+    <id val="7157"/>
+    <id val="7158"/>
+    <id val="7159"/>
+    <id val="7160"/>
+    <id val="7161"/>
+    <id val="7162"/>
+    <id val="7182"/>
+    <id val="7183"/>
+    <id val="7184"/>
+    <id val="7185"/>
+    <id val="7186"/>
+    <id val="7187"/>
+    <id val="7188"/>
+    <id val="7189"/>
+    <id val="7190"/>
+    <id val="7191"/>
+    <id val="7192"/>
+    <id val="7193"/>
+    <id val="7194"/>
+    <id val="7195"/>
+    <id val="7196"/>
+    <id val="7197"/>
+    <id val="7198"/>
+    <id val="7199"/>
+    <id val="7200"/>
+    <id val="7201"/>
+    <id val="7202"/>
+    <id val="7203"/>
+    <id val="7204"/>
+    <id val="7205"/>
+    <id val="7206"/>
+    <id val="7207"/>
+    <id val="7208"/>
+    <id val="7209"/>
+    <id val="7210"/>
+    <id val="7211"/>
+    <id val="7212"/>
+    <id val="7213"/>
+    <id val="7214"/>
+    <id val="7215"/>
+    <id val="7216"/>
+    <id val="7217"/>
+    <id val="7218"/>
+    <id val="7219"/>
+    <id val="7220"/>
+    <id val="7221"/>
+    <id val="7222"/>
+    <id val="7223"/>
+    <id val="7224"/>
+    <id val="7225"/>
+    <id val="7226"/>
+    <id val="7246"/>
+    <id val="7247"/>
+    <id val="7248"/>
+    <id val="7249"/>
+    <id val="7250"/>
+    <id val="7251"/>
+    <id val="7252"/>
+    <id val="7253"/>
+    <id val="7254"/>
+    <id val="7255"/>
+    <id val="7256"/>
+    <id val="7257"/>
+    <id val="7258"/>
+    <id val="7259"/>
+    <id val="7260"/>
+    <id val="7261"/>
+    <id val="7262"/>
+    <id val="7263"/>
+    <id val="7264"/>
+    <id val="7265"/>
+    <id val="7266"/>
+    <id val="7267"/>
+    <id val="7268"/>
+    <id val="7269"/>
+    <id val="7270"/>
+    <id val="7271"/>
+    <id val="7272"/>
+    <id val="7273"/>
+    <id val="7274"/>
+    <id val="7275"/>
+    <id val="7276"/>
+    <id val="7277"/>
+    <id val="7278"/>
+    <id val="7279"/>
+    <id val="7280"/>
+    <id val="7281"/>
+    <id val="7282"/>
+    <id val="7283"/>
+    <id val="7284"/>
+    <id val="7285"/>
+    <id val="7286"/>
+    <id val="7287"/>
+    <id val="7288"/>
+    <id val="7289"/>
+    <id val="7290"/>
+    <id val="7310"/>
+    <id val="7311"/>
+    <id val="7312"/>
+    <id val="7313"/>
+    <id val="7314"/>
+    <id val="7315"/>
+    <id val="7316"/>
+    <id val="7317"/>
+    <id val="7318"/>
+    <id val="7319"/>
+    <id val="7320"/>
+    <id val="7321"/>
+    <id val="7322"/>
+    <id val="7323"/>
+    <id val="7324"/>
+    <id val="7325"/>
+    <id val="7326"/>
+    <id val="7327"/>
+    <id val="7328"/>
+    <id val="7329"/>
+    <id val="7330"/>
+    <id val="7331"/>
+    <id val="7332"/>
+    <id val="7333"/>
+    <id val="7334"/>
+    <id val="7335"/>
+    <id val="7336"/>
+    <id val="7337"/>
+    <id val="7338"/>
+    <id val="7339"/>
+    <id val="7340"/>
+    <id val="7341"/>
+    <id val="7342"/>
+    <id val="7343"/>
+    <id val="7344"/>
+    <id val="7345"/>
+    <id val="7346"/>
+    <id val="7347"/>
+    <id val="7348"/>
+    <id val="7349"/>
+    <id val="7350"/>
+    <id val="7351"/>
+    <id val="7352"/>
+    <id val="7353"/>
+    <id val="7354"/>
+    <id val="7374"/>
+    <id val="7375"/>
+    <id val="7376"/>
+    <id val="7377"/>
+    <id val="7378"/>
+    <id val="7379"/>
+    <id val="7380"/>
+    <id val="7381"/>
+    <id val="7382"/>
+    <id val="7383"/>
+    <id val="7384"/>
+    <id val="7385"/>
+    <id val="7386"/>
+    <id val="7387"/>
+    <id val="7388"/>
+    <id val="7389"/>
+    <id val="7390"/>
+    <id val="7391"/>
+    <id val="7392"/>
+    <id val="7393"/>
+    <id val="7394"/>
+    <id val="7395"/>
+    <id val="7396"/>
+    <id val="7397"/>
+    <id val="7398"/>
+    <id val="7399"/>
+    <id val="7400"/>
+    <id val="7401"/>
+    <id val="7402"/>
+    <id val="7403"/>
+    <id val="7404"/>
+    <id val="7405"/>
+    <id val="7406"/>
+    <id val="7407"/>
+    <id val="7408"/>
+    <id val="7409"/>
+    <id val="7410"/>
+    <id val="7411"/>
+    <id val="7412"/>
+    <id val="7413"/>
+    <id val="7414"/>
+    <id val="7415"/>
+    <id val="7416"/>
+    <id val="7417"/>
+    <id val="7418"/>
+    <id val="7438"/>
+    <id val="7439"/>
+    <id val="7440"/>
+    <id val="7441"/>
+    <id val="7442"/>
+    <id val="7443"/>
+    <id val="7444"/>
+    <id val="7445"/>
+    <id val="7446"/>
+    <id val="7447"/>
+    <id val="7448"/>
+    <id val="7449"/>
+    <id val="7450"/>
+    <id val="7451"/>
+    <id val="7452"/>
+    <id val="7453"/>
+    <id val="7454"/>
+    <id val="7455"/>
+    <id val="7456"/>
+    <id val="7457"/>
+    <id val="7458"/>
+    <id val="7459"/>
+    <id val="7460"/>
+    <id val="7461"/>
+    <id val="7462"/>
+    <id val="7463"/>
+    <id val="7464"/>
+    <id val="7465"/>
+    <id val="7466"/>
+    <id val="7467"/>
+    <id val="7468"/>
+    <id val="7469"/>
+    <id val="7470"/>
+    <id val="7471"/>
+    <id val="7472"/>
+    <id val="7473"/>
+    <id val="7474"/>
+    <id val="7475"/>
+    <id val="7476"/>
+    <id val="7477"/>
+    <id val="7478"/>
+    <id val="7479"/>
+    <id val="7480"/>
+    <id val="7481"/>
+    <id val="7482"/>
+    <id val="7502"/>
+    <id val="7503"/>
+    <id val="7504"/>
+    <id val="7505"/>
+    <id val="7506"/>
+    <id val="7507"/>
+    <id val="7508"/>
+    <id val="7509"/>
+    <id val="7510"/>
+    <id val="7511"/>
+    <id val="7512"/>
+    <id val="7513"/>
+    <id val="7514"/>
+    <id val="7515"/>
+    <id val="7516"/>
+    <id val="7517"/>
+    <id val="7518"/>
+    <id val="7519"/>
+    <id val="7520"/>
+    <id val="7521"/>
+    <id val="7522"/>
+    <id val="7523"/>
+    <id val="7524"/>
+    <id val="7525"/>
+    <id val="7526"/>
+    <id val="7527"/>
+    <id val="7528"/>
+    <id val="7529"/>
+    <id val="7530"/>
+    <id val="7531"/>
+    <id val="7532"/>
+    <id val="7533"/>
+    <id val="7534"/>
+    <id val="7535"/>
+    <id val="7536"/>
+    <id val="7537"/>
+    <id val="7538"/>
+    <id val="7539"/>
+    <id val="7540"/>
+    <id val="7541"/>
+    <id val="7542"/>
+    <id val="7543"/>
+    <id val="7544"/>
+    <id val="7545"/>
+    <id val="7546"/>
+    <id val="7566"/>
+    <id val="7567"/>
+    <id val="7568"/>
+    <id val="7569"/>
+    <id val="7570"/>
+    <id val="7571"/>
+    <id val="7572"/>
+    <id val="7573"/>
+    <id val="7574"/>
+    <id val="7575"/>
+    <id val="7576"/>
+    <id val="7577"/>
+    <id val="7578"/>
+    <id val="7579"/>
+    <id val="7580"/>
+    <id val="7581"/>
+    <id val="7582"/>
+    <id val="7583"/>
+    <id val="7584"/>
+    <id val="7585"/>
+    <id val="7586"/>
+    <id val="7587"/>
+    <id val="7588"/>
+    <id val="7589"/>
+    <id val="7590"/>
+    <id val="7591"/>
+    <id val="7592"/>
+    <id val="7593"/>
+    <id val="7594"/>
+    <id val="7595"/>
+    <id val="7596"/>
+    <id val="7597"/>
+    <id val="7598"/>
+    <id val="7599"/>
+    <id val="7600"/>
+    <id val="7601"/>
+    <id val="7602"/>
+    <id val="7603"/>
+    <id val="7604"/>
+    <id val="7605"/>
+    <id val="7606"/>
+    <id val="7607"/>
+    <id val="7608"/>
+    <id val="7609"/>
+    <id val="7610"/>
+    <id val="7630"/>
+    <id val="7631"/>
+    <id val="7632"/>
+    <id val="7633"/>
+    <id val="7634"/>
+    <id val="7635"/>
+    <id val="7636"/>
+    <id val="7637"/>
+    <id val="7638"/>
+    <id val="7639"/>
+    <id val="7640"/>
+    <id val="7641"/>
+    <id val="7642"/>
+    <id val="7643"/>
+    <id val="7644"/>
+    <id val="7645"/>
+    <id val="7646"/>
+    <id val="7647"/>
+    <id val="7648"/>
+    <id val="7649"/>
+    <id val="7650"/>
+    <id val="7651"/>
+    <id val="7652"/>
+    <id val="7653"/>
+    <id val="7654"/>
+    <id val="7655"/>
+    <id val="7656"/>
+    <id val="7657"/>
+    <id val="7658"/>
+    <id val="7659"/>
+    <id val="7660"/>
+    <id val="7661"/>
+    <id val="7662"/>
+    <id val="7663"/>
+    <id val="7664"/>
+    <id val="7665"/>
+    <id val="7666"/>
+    <id val="7667"/>
+    <id val="7668"/>
+    <id val="7669"/>
+    <id val="7670"/>
+    <id val="7671"/>
+    <id val="7672"/>
+    <id val="7673"/>
+    <id val="7674"/>
+  </idlist>
+  <component idlist="bank3" type="bank3">
+    <location/>
+  </component>
+  <type name="bank3">
+    <component type="pixel">
+      <location name="8197" x="-0.487260681056" y="0.21631015625" z="-2.39457769788">
+        <neutronic p="179.356" r="4.72838" t="161.199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8198" x="-0.487260681056" y="0.2544921875" z="-2.39457769788">
+        <neutronic p="177.535" r="4.72855" t="161.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8199" x="-0.487260681056" y="0.29267421875" z="-2.39457769788">
+        <neutronic p="175.718" r="4.7287" t="161.151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8200" x="-0.487260681056" y="0.33085625" z="-2.39457769788">
+        <neutronic p="173.908" r="4.72882" t="161.101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8201" x="-0.487260681056" y="0.36903828125" z="-2.39457769788">
+        <neutronic p="172.108" r="4.72891" t="161.033"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8202" x="-0.487260681056" y="0.4072203125" z="-2.39457769788">
+        <neutronic p="170.323" r="4.72897" t="160.948"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8203" x="-0.487260681056" y="0.44540234375" z="-2.39457769788">
+        <neutronic p="168.556" r="4.729" t="160.846"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8204" x="-0.487260681056" y="0.483584375" z="-2.39457769788">
+        <neutronic p="166.809" r="4.72901" t="160.728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8205" x="-0.487260681056" y="0.52176640625" z="-2.39457769788">
+        <neutronic p="165.086" r="4.72898" t="160.593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8206" x="-0.487260681056" y="0.5599484375" z="-2.39457769788">
+        <neutronic p="163.388" r="4.72893" t="160.442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8207" x="-0.487260681056" y="0.59813046875" z="-2.39457769788">
+        <neutronic p="161.719" r="4.72885" t="160.276"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8208" x="-0.487260681056" y="0.6363125" z="-2.39457769788">
+        <neutronic p="160.081" r="4.72874" t="160.095"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8209" x="-0.487260681056" y="0.67449453125" z="-2.39457769788">
+        <neutronic p="158.474" r="4.7286" t="159.9"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8210" x="-0.487260681056" y="0.7126765625" z="-2.39457769788">
+        <neutronic p="156.902" r="4.72843" t="159.691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8211" x="-0.487260681056" y="0.75085859375" z="-2.39457769788">
+        <neutronic p="155.364" r="4.72824" t="159.468"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8212" x="-0.487260681056" y="0.789040625" z="-2.39457769788">
+        <neutronic p="153.863" r="4.72801" t="159.233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8213" x="-0.487260681056" y="0.82722265625" z="-2.39457769788">
+        <neutronic p="152.398" r="4.72776" t="158.986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8214" x="-0.487260681056" y="0.8654046875" z="-2.39457769788">
+        <neutronic p="150.97" r="4.72748" t="158.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8215" x="-0.487260681056" y="0.90358671875" z="-2.39457769788">
+        <neutronic p="149.58" r="4.72717" t="158.457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8216" x="-0.487260681056" y="0.94176875" z="-2.39457769788">
+        <neutronic p="148.228" r="4.72684" t="158.177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8217" x="-0.487260681056" y="0.97995078125" z="-2.39457769788">
+        <neutronic p="146.913" r="4.72647" t="157.887"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8218" x="-0.487260681056" y="1.0181328125" z="-2.39457769788">
+        <neutronic p="145.636" r="4.72608" t="157.589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8219" x="-0.487260681056" y="1.05631484375" z="-2.39457769788">
+        <neutronic p="144.396" r="4.72566" t="157.281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8220" x="-0.487260681056" y="1.094496875" z="-2.39457769788">
+        <neutronic p="143.193" r="4.72521" t="156.965"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8221" x="-0.487260681056" y="1.13267890625" z="-2.39457769788">
+        <neutronic p="142.025" r="4.72474" t="156.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8222" x="-0.487260681056" y="1.1708609375" z="-2.39457769788">
+        <neutronic p="140.893" r="4.72424" t="156.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8223" x="-0.487260681056" y="1.20904296875" z="-2.39457769788">
+        <neutronic p="139.796" r="4.72371" t="155.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8224" x="-0.487260681056" y="1.247225" z="-2.39457769788">
+        <neutronic p="138.732" r="4.72315" t="155.633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8225" x="-0.487260681056" y="1.28540703125" z="-2.39457769788">
+        <neutronic p="137.702" r="4.72257" t="155.286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8226" x="-0.487260681056" y="1.3235890625" z="-2.39457769788">
+        <neutronic p="136.703" r="4.72196" t="154.933"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8227" x="-0.487260681056" y="1.36177109375" z="-2.39457769788">
+        <neutronic p="135.736" r="4.72133" t="154.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8228" x="-0.487260681056" y="1.399953125" z="-2.39457769788">
+        <neutronic p="134.8" r="4.72066" t="154.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8229" x="-0.487260681056" y="1.43813515625" z="-2.39457769788">
+        <neutronic p="133.892" r="4.71998" t="153.848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8230" x="-0.487260681056" y="1.4763171875" z="-2.39457769788">
+        <neutronic p="133.014" r="4.71926" t="153.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8231" x="-0.487260681056" y="1.51449921875" z="-2.39457769788">
+        <neutronic p="132.162" r="4.71852" t="153.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8232" x="-0.487260681056" y="1.55268125" z="-2.39457769788">
+        <neutronic p="131.338" r="4.71776" t="152.733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8233" x="-0.487260681056" y="1.59086328125" z="-2.39457769788">
+        <neutronic p="130.539" r="4.71697" t="152.356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8234" x="-0.487260681056" y="1.6290453125" z="-2.39457769788">
+        <neutronic p="129.765" r="4.71616" t="151.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8235" x="-0.487260681056" y="1.66722734375" z="-2.39457769788">
+        <neutronic p="129.016" r="4.71532" t="151.597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8236" x="-0.487260681056" y="1.705409375" z="-2.39457769788">
+        <neutronic p="128.289" r="4.71445" t="151.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8237" x="-0.487260681056" y="1.74359140625" z="-2.39457769788">
+        <neutronic p="127.585" r="4.71356" t="150.832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8238" x="-0.487260681056" y="1.7817734375" z="-2.39457769788">
+        <neutronic p="126.902" r="4.71265" t="150.449"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8239" x="-0.487260681056" y="1.81995546875" z="-2.39457769788">
+        <neutronic p="126.24" r="4.71172" t="150.064"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8240" x="-0.487260681056" y="1.8581375" z="-2.39457769788">
+        <neutronic p="125.598" r="4.71076" t="149.679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8241" x="-0.487260681056" y="1.89631953125" z="-2.39457769788">
+        <neutronic p="124.975" r="4.70977" t="149.294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8261" x="-0.598410194885" y="0.21631015625" z="-2.36924683416">
+        <neutronic p="179.434" r="4.72838" t="158.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8262" x="-0.598410194885" y="0.2544921875" z="-2.36924683416">
+        <neutronic p="177.834" r="4.72855" t="158.464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8263" x="-0.598410194885" y="0.29267421875" z="-2.36924683416">
+        <neutronic p="176.236" r="4.7287" t="158.436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8264" x="-0.598410194885" y="0.33085625" z="-2.36924683416">
+        <neutronic p="174.643" r="4.72882" t="158.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8265" x="-0.598410194885" y="0.36903828125" z="-2.36924683416">
+        <neutronic p="173.057" r="4.72891" t="158.334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8266" x="-0.598410194885" y="0.4072203125" z="-2.36924683416">
+        <neutronic p="171.481" r="4.72897" t="158.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8267" x="-0.598410194885" y="0.44540234375" z="-2.36924683416">
+        <neutronic p="169.916" r="4.729" t="158.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8268" x="-0.598410194885" y="0.483584375" z="-2.36924683416">
+        <neutronic p="168.366" r="4.72901" t="158.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8269" x="-0.598410194885" y="0.52176640625" z="-2.36924683416">
+        <neutronic p="166.831" r="4.72898" t="157.952"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8270" x="-0.598410194885" y="0.5599484375" z="-2.36924683416">
+        <neutronic p="165.315" r="4.72893" t="157.821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8271" x="-0.598410194885" y="0.59813046875" z="-2.36924683416">
+        <neutronic p="163.818" r="4.72885" t="157.676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8272" x="-0.598410194885" y="0.6363125" z="-2.36924683416">
+        <neutronic p="162.342" r="4.72874" t="157.518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8273" x="-0.598410194885" y="0.67449453125" z="-2.36924683416">
+        <neutronic p="160.889" r="4.7286" t="157.347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8274" x="-0.598410194885" y="0.7126765625" z="-2.36924683416">
+        <neutronic p="159.461" r="4.72843" t="157.163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8275" x="-0.598410194885" y="0.75085859375" z="-2.36924683416">
+        <neutronic p="158.058" r="4.72824" t="156.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8276" x="-0.598410194885" y="0.789040625" z="-2.36924683416">
+        <neutronic p="156.681" r="4.72801" t="156.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8277" x="-0.598410194885" y="0.82722265625" z="-2.36924683416">
+        <neutronic p="155.331" r="4.72776" t="156.541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8278" x="-0.598410194885" y="0.8654046875" z="-2.36924683416">
+        <neutronic p="154.009" r="4.72748" t="156.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8279" x="-0.598410194885" y="0.90358671875" z="-2.36924683416">
+        <neutronic p="152.716" r="4.72717" t="156.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8280" x="-0.598410194885" y="0.94176875" z="-2.36924683416">
+        <neutronic p="151.451" r="4.72684" t="155.823"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8281" x="-0.598410194885" y="0.97995078125" z="-2.36924683416">
+        <neutronic p="150.215" r="4.72647" t="155.564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8282" x="-0.598410194885" y="1.0181328125" z="-2.36924683416">
+        <neutronic p="149.008" r="4.72608" t="155.296"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8283" x="-0.598410194885" y="1.05631484375" z="-2.36924683416">
+        <neutronic p="147.83" r="4.72566" t="155.02"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8284" x="-0.598410194885" y="1.094496875" z="-2.36924683416">
+        <neutronic p="146.681" r="4.72521" t="154.736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8285" x="-0.598410194885" y="1.13267890625" z="-2.36924683416">
+        <neutronic p="145.561" r="4.72474" t="154.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8286" x="-0.598410194885" y="1.1708609375" z="-2.36924683416">
+        <neutronic p="144.47" r="4.72424" t="154.147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8287" x="-0.598410194885" y="1.20904296875" z="-2.36924683416">
+        <neutronic p="143.407" r="4.72371" t="153.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8288" x="-0.598410194885" y="1.247225" z="-2.36924683416">
+        <neutronic p="142.373" r="4.72315" t="153.53"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8289" x="-0.598410194885" y="1.28540703125" z="-2.36924683416">
+        <neutronic p="141.365" r="4.72257" t="153.214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8290" x="-0.598410194885" y="1.3235890625" z="-2.36924683416">
+        <neutronic p="140.385" r="4.72196" t="152.891"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8291" x="-0.598410194885" y="1.36177109375" z="-2.36924683416">
+        <neutronic p="139.431" r="4.72133" t="152.564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8292" x="-0.598410194885" y="1.399953125" z="-2.36924683416">
+        <neutronic p="138.503" r="4.72066" t="152.233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8293" x="-0.598410194885" y="1.43813515625" z="-2.36924683416">
+        <neutronic p="137.601" r="4.71998" t="151.897"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8294" x="-0.598410194885" y="1.4763171875" z="-2.36924683416">
+        <neutronic p="136.724" r="4.71926" t="151.558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8295" x="-0.598410194885" y="1.51449921875" z="-2.36924683416">
+        <neutronic p="135.87" r="4.71852" t="151.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8296" x="-0.598410194885" y="1.55268125" z="-2.36924683416">
+        <neutronic p="135.04" r="4.71776" t="150.869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8297" x="-0.598410194885" y="1.59086328125" z="-2.36924683416">
+        <neutronic p="134.234" r="4.71697" t="150.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8298" x="-0.598410194885" y="1.6290453125" z="-2.36924683416">
+        <neutronic p="133.449" r="4.71616" t="150.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8299" x="-0.598410194885" y="1.66722734375" z="-2.36924683416">
+        <neutronic p="132.687" r="4.71532" t="149.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8300" x="-0.598410194885" y="1.705409375" z="-2.36924683416">
+        <neutronic p="131.945" r="4.71445" t="149.46"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8301" x="-0.598410194885" y="1.74359140625" z="-2.36924683416">
+        <neutronic p="131.224" r="4.71356" t="149.104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8302" x="-0.598410194885" y="1.7817734375" z="-2.36924683416">
+        <neutronic p="130.523" r="4.71265" t="148.745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8303" x="-0.598410194885" y="1.81995546875" z="-2.36924683416">
+        <neutronic p="129.841" r="4.71172" t="148.386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8304" x="-0.598410194885" y="1.8581375" z="-2.36924683416">
+        <neutronic p="129.177" r="4.71076" t="148.026"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8305" x="-0.598410194885" y="1.89631953125" z="-2.36924683416">
+        <neutronic p="128.532" r="4.70977" t="147.665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8325" x="-0.708257363137" y="0.21631015625" z="-2.33875967771">
+        <neutronic p="179.494" r="4.72838" t="155.756"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8326" x="-0.708257363137" y="0.2544921875" z="-2.33875967771">
+        <neutronic p="178.065" r="4.72855" t="155.744"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8327" x="-0.708257363137" y="0.29267421875" z="-2.33875967771">
+        <neutronic p="176.637" r="4.7287" t="155.719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8328" x="-0.708257363137" y="0.33085625" z="-2.33875967771">
+        <neutronic p="175.212" r="4.72882" t="155.681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8329" x="-0.708257363137" y="0.36903828125" z="-2.33875967771">
+        <neutronic p="173.791" r="4.72891" t="155.63"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8330" x="-0.708257363137" y="0.4072203125" z="-2.33875967771">
+        <neutronic p="172.378" r="4.72897" t="155.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8331" x="-0.708257363137" y="0.44540234375" z="-2.33875967771">
+        <neutronic p="170.972" r="4.729" t="155.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8332" x="-0.708257363137" y="0.483584375" z="-2.33875967771">
+        <neutronic p="169.577" r="4.72901" t="155.397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8333" x="-0.708257363137" y="0.52176640625" z="-2.33875967771">
+        <neutronic p="168.193" r="4.72898" t="155.294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8334" x="-0.708257363137" y="0.5599484375" z="-2.33875967771">
+        <neutronic p="166.822" r="4.72893" t="155.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8335" x="-0.708257363137" y="0.59813046875" z="-2.33875967771">
+        <neutronic p="165.465" r="4.72885" t="155.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8336" x="-0.708257363137" y="0.6363125" z="-2.33875967771">
+        <neutronic p="164.124" r="4.72874" t="154.911"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8337" x="-0.708257363137" y="0.67449453125" z="-2.33875967771">
+        <neutronic p="162.8" r="4.7286" t="154.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8338" x="-0.708257363137" y="0.7126765625" z="-2.33875967771">
+        <neutronic p="161.493" r="4.72843" t="154.597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8339" x="-0.708257363137" y="0.75085859375" z="-2.33875967771">
+        <neutronic p="160.205" r="4.72824" t="154.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8340" x="-0.708257363137" y="0.789040625" z="-2.33875967771">
+        <neutronic p="158.937" r="4.72801" t="154.239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8341" x="-0.708257363137" y="0.82722265625" z="-2.33875967771">
+        <neutronic p="157.69" r="4.72776" t="154.044"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8342" x="-0.708257363137" y="0.8654046875" z="-2.33875967771">
+        <neutronic p="156.463" r="4.72748" t="153.84"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8343" x="-0.708257363137" y="0.90358671875" z="-2.33875967771">
+        <neutronic p="155.259" r="4.72717" t="153.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8344" x="-0.708257363137" y="0.94176875" z="-2.33875967771">
+        <neutronic p="154.076" r="4.72684" t="153.402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8345" x="-0.708257363137" y="0.97995078125" z="-2.33875967771">
+        <neutronic p="152.916" r="4.72647" t="153.17"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8346" x="-0.708257363137" y="1.0181328125" z="-2.33875967771">
+        <neutronic p="151.779" r="4.72608" t="152.929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8347" x="-0.708257363137" y="1.05631484375" z="-2.33875967771">
+        <neutronic p="150.665" r="4.72566" t="152.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8348" x="-0.708257363137" y="1.094496875" z="-2.33875967771">
+        <neutronic p="149.575" r="4.72521" t="152.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8349" x="-0.708257363137" y="1.13267890625" z="-2.33875967771">
+        <neutronic p="148.507" r="4.72474" t="152.16"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8350" x="-0.708257363137" y="1.1708609375" z="-2.33875967771">
+        <neutronic p="147.463" r="4.72424" t="151.89"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8351" x="-0.708257363137" y="1.20904296875" z="-2.33875967771">
+        <neutronic p="146.442" r="4.72371" t="151.613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8352" x="-0.708257363137" y="1.247225" z="-2.33875967771">
+        <neutronic p="145.444" r="4.72315" t="151.33"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8353" x="-0.708257363137" y="1.28540703125" z="-2.33875967771">
+        <neutronic p="144.469" r="4.72257" t="151.041"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8354" x="-0.708257363137" y="1.3235890625" z="-2.33875967771">
+        <neutronic p="143.517" r="4.72196" t="150.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8355" x="-0.708257363137" y="1.36177109375" z="-2.33875967771">
+        <neutronic p="142.587" r="4.72133" t="150.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8356" x="-0.708257363137" y="1.399953125" z="-2.33875967771">
+        <neutronic p="141.679" r="4.72066" t="150.144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8357" x="-0.708257363137" y="1.43813515625" z="-2.33875967771">
+        <neutronic p="140.793" r="4.71998" t="149.836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8358" x="-0.708257363137" y="1.4763171875" z="-2.33875967771">
+        <neutronic p="139.929" r="4.71926" t="149.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8359" x="-0.708257363137" y="1.51449921875" z="-2.33875967771">
+        <neutronic p="139.085" r="4.71852" t="149.208"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8360" x="-0.708257363137" y="1.55268125" z="-2.33875967771">
+        <neutronic p="138.262" r="4.71776" t="148.889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8361" x="-0.708257363137" y="1.59086328125" z="-2.33875967771">
+        <neutronic p="137.459" r="4.71697" t="148.566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8362" x="-0.708257363137" y="1.6290453125" z="-2.33875967771">
+        <neutronic p="136.676" r="4.71616" t="148.241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8363" x="-0.708257363137" y="1.66722734375" z="-2.33875967771">
+        <neutronic p="135.912" r="4.71532" t="147.914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8364" x="-0.708257363137" y="1.705409375" z="-2.33875967771">
+        <neutronic p="135.168" r="4.71445" t="147.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8365" x="-0.708257363137" y="1.74359140625" z="-2.33875967771">
+        <neutronic p="134.441" r="4.71356" t="147.252"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8366" x="-0.708257363137" y="1.7817734375" z="-2.33875967771">
+        <neutronic p="133.733" r="4.71265" t="146.919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8367" x="-0.708257363137" y="1.81995546875" z="-2.33875967771">
+        <neutronic p="133.043" r="4.71172" t="146.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8368" x="-0.708257363137" y="1.8581375" z="-2.33875967771">
+        <neutronic p="132.369" r="4.71076" t="146.247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8369" x="-0.708257363137" y="1.89631953125" z="-2.33875967771">
+        <neutronic p="131.712" r="4.70977" t="145.91"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8389" x="-0.816563120746" y="0.21631015625" z="-2.30318257903">
+        <neutronic p="179.542" r="4.72838" t="153.034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8390" x="-0.816563120746" y="0.2544921875" z="-2.30318257903">
+        <neutronic p="178.248" r="4.72855" t="153.024"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8391" x="-0.816563120746" y="0.29267421875" z="-2.30318257903">
+        <neutronic p="176.954" r="4.7287" t="153.002"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8392" x="-0.816563120746" y="0.33085625" z="-2.30318257903">
+        <neutronic p="175.662" r="4.72882" t="152.968"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8393" x="-0.816563120746" y="0.36903828125" z="-2.30318257903">
+        <neutronic p="174.374" r="4.72891" t="152.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8394" x="-0.816563120746" y="0.4072203125" z="-2.30318257903">
+        <neutronic p="173.09" r="4.72897" t="152.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8395" x="-0.816563120746" y="0.44540234375" z="-2.30318257903">
+        <neutronic p="171.813" r="4.729" t="152.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8396" x="-0.816563120746" y="0.483584375" z="-2.30318257903">
+        <neutronic p="170.543" r="4.72901" t="152.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8397" x="-0.816563120746" y="0.52176640625" z="-2.30318257903">
+        <neutronic p="169.281" r="4.72898" t="152.625"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8398" x="-0.816563120746" y="0.5599484375" z="-2.30318257903">
+        <neutronic p="168.029" r="4.72893" t="152.522"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8399" x="-0.816563120746" y="0.59813046875" z="-2.30318257903">
+        <neutronic p="166.788" r="4.72885" t="152.408"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8400" x="-0.816563120746" y="0.6363125" z="-2.30318257903">
+        <neutronic p="165.558" r="4.72874" t="152.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8401" x="-0.816563120746" y="0.67449453125" z="-2.30318257903">
+        <neutronic p="164.341" r="4.7286" t="152.149"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8402" x="-0.816563120746" y="0.7126765625" z="-2.30318257903">
+        <neutronic p="163.137" r="4.72843" t="152.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8403" x="-0.816563120746" y="0.75085859375" z="-2.30318257903">
+        <neutronic p="161.948" r="4.72824" t="151.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8404" x="-0.816563120746" y="0.789040625" z="-2.30318257903">
+        <neutronic p="160.774" r="4.72801" t="151.683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8405" x="-0.816563120746" y="0.82722265625" z="-2.30318257903">
+        <neutronic p="159.616" r="4.72776" t="151.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8406" x="-0.816563120746" y="0.8654046875" z="-2.30318257903">
+        <neutronic p="158.474" r="4.72748" t="151.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8407" x="-0.816563120746" y="0.90358671875" z="-2.30318257903">
+        <neutronic p="157.35" r="4.72717" t="151.133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8408" x="-0.816563120746" y="0.94176875" z="-2.30318257903">
+        <neutronic p="156.242" r="4.72684" t="150.932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8409" x="-0.816563120746" y="0.97995078125" z="-2.30318257903">
+        <neutronic p="155.153" r="4.72647" t="150.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8410" x="-0.816563120746" y="1.0181328125" z="-2.30318257903">
+        <neutronic p="154.082" r="4.72608" t="150.505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8411" x="-0.816563120746" y="1.05631484375" z="-2.30318257903">
+        <neutronic p="153.029" r="4.72566" t="150.28"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8412" x="-0.816563120746" y="1.094496875" z="-2.30318257903">
+        <neutronic p="151.995" r="4.72521" t="150.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8413" x="-0.816563120746" y="1.13267890625" z="-2.30318257903">
+        <neutronic p="150.981" r="4.72474" t="149.809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8414" x="-0.816563120746" y="1.1708609375" z="-2.30318257903">
+        <neutronic p="149.985" r="4.72424" t="149.563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8415" x="-0.816563120746" y="1.20904296875" z="-2.30318257903">
+        <neutronic p="149.008" r="4.72371" t="149.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8416" x="-0.816563120746" y="1.247225" z="-2.30318257903">
+        <neutronic p="148.05" r="4.72315" t="149.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8417" x="-0.816563120746" y="1.28540703125" z="-2.30318257903">
+        <neutronic p="147.112" r="4.72257" t="148.79"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8418" x="-0.816563120746" y="1.3235890625" z="-2.30318257903">
+        <neutronic p="146.192" r="4.72196" t="148.521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8419" x="-0.816563120746" y="1.36177109375" z="-2.30318257903">
+        <neutronic p="145.291" r="4.72133" t="148.247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8420" x="-0.816563120746" y="1.399953125" z="-2.30318257903">
+        <neutronic p="144.409" r="4.72066" t="147.968"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8421" x="-0.816563120746" y="1.43813515625" z="-2.30318257903">
+        <neutronic p="143.546" r="4.71998" t="147.685"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8422" x="-0.816563120746" y="1.4763171875" z="-2.30318257903">
+        <neutronic p="142.701" r="4.71926" t="147.398"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8423" x="-0.816563120746" y="1.51449921875" z="-2.30318257903">
+        <neutronic p="141.875" r="4.71852" t="147.108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8424" x="-0.816563120746" y="1.55268125" z="-2.30318257903">
+        <neutronic p="141.066" r="4.71776" t="146.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8425" x="-0.816563120746" y="1.59086328125" z="-2.30318257903">
+        <neutronic p="140.275" r="4.71697" t="146.516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8426" x="-0.816563120746" y="1.6290453125" z="-2.30318257903">
+        <neutronic p="139.501" r="4.71616" t="146.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8427" x="-0.816563120746" y="1.66722734375" z="-2.30318257903">
+        <neutronic p="138.745" r="4.71532" t="145.912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8428" x="-0.816563120746" y="1.705409375" z="-2.30318257903">
+        <neutronic p="138.005" r="4.71445" t="145.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8429" x="-0.816563120746" y="1.74359140625" z="-2.30318257903">
+        <neutronic p="137.282" r="4.71356" t="145.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8430" x="-0.816563120746" y="1.7817734375" z="-2.30318257903">
+        <neutronic p="136.575" r="4.71265" t="144.988"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8431" x="-0.816563120746" y="1.81995546875" z="-2.30318257903">
+        <neutronic p="135.884" r="4.71172" t="144.676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8432" x="-0.816563120746" y="1.8581375" z="-2.30318257903">
+        <neutronic p="135.208" r="4.71076" t="144.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8433" x="-0.816563120746" y="1.89631953125" z="-2.30318257903">
+        <neutronic p="134.548" r="4.70977" t="144.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8453" x="-0.92309175728" y="0.21631015625" z="-2.26259296608">
+        <neutronic p="179.581" r="4.72838" t="150.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8454" x="-0.92309175728" y="0.2544921875" z="-2.26259296608">
+        <neutronic p="178.395" r="4.72855" t="150.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8455" x="-0.92309175728" y="0.29267421875" z="-2.26259296608">
+        <neutronic p="177.21" r="4.7287" t="150.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8456" x="-0.92309175728" y="0.33085625" z="-2.26259296608">
+        <neutronic p="176.027" r="4.72882" t="150.253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8457" x="-0.92309175728" y="0.36903828125" z="-2.26259296608">
+        <neutronic p="174.846" r="4.72891" t="150.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8458" x="-0.92309175728" y="0.4072203125" z="-2.26259296608">
+        <neutronic p="173.669" r="4.72897" t="150.162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8459" x="-0.92309175728" y="0.44540234375" z="-2.26259296608">
+        <neutronic p="172.496" r="4.729" t="150.1"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8460" x="-0.92309175728" y="0.483584375" z="-2.26259296608">
+        <neutronic p="171.329" r="4.72901" t="150.028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8461" x="-0.92309175728" y="0.52176640625" z="-2.26259296608">
+        <neutronic p="170.168" r="4.72898" t="149.947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8462" x="-0.92309175728" y="0.5599484375" z="-2.26259296608">
+        <neutronic p="169.014" r="4.72893" t="149.855"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8463" x="-0.92309175728" y="0.59813046875" z="-2.26259296608">
+        <neutronic p="167.869" r="4.72885" t="149.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8464" x="-0.92309175728" y="0.6363125" z="-2.26259296608">
+        <neutronic p="166.732" r="4.72874" t="149.641"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8465" x="-0.92309175728" y="0.67449453125" z="-2.26259296608">
+        <neutronic p="165.606" r="4.7286" t="149.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8466" x="-0.92309175728" y="0.7126765625" z="-2.26259296608">
+        <neutronic p="164.49" r="4.72843" t="149.39"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8467" x="-0.92309175728" y="0.75085859375" z="-2.26259296608">
+        <neutronic p="163.385" r="4.72824" t="149.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8468" x="-0.92309175728" y="0.789040625" z="-2.26259296608">
+        <neutronic p="162.292" r="4.72801" t="149.102"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8469" x="-0.92309175728" y="0.82722265625" z="-2.26259296608">
+        <neutronic p="161.211" r="4.72776" t="148.944"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8470" x="-0.92309175728" y="0.8654046875" z="-2.26259296608">
+        <neutronic p="160.144" r="4.72748" t="148.779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8471" x="-0.92309175728" y="0.90358671875" z="-2.26259296608">
+        <neutronic p="159.09" r="4.72717" t="148.605"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8472" x="-0.92309175728" y="0.94176875" z="-2.26259296608">
+        <neutronic p="158.05" r="4.72684" t="148.423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8473" x="-0.92309175728" y="0.97995078125" z="-2.26259296608">
+        <neutronic p="157.025" r="4.72647" t="148.234"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8474" x="-0.92309175728" y="1.0181328125" z="-2.26259296608">
+        <neutronic p="156.014" r="4.72608" t="148.037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8475" x="-0.92309175728" y="1.05631484375" z="-2.26259296608">
+        <neutronic p="155.018" r="4.72566" t="147.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8476" x="-0.92309175728" y="1.094496875" z="-2.26259296608">
+        <neutronic p="154.038" r="4.72521" t="147.622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8477" x="-0.92309175728" y="1.13267890625" z="-2.26259296608">
+        <neutronic p="153.073" r="4.72474" t="147.404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8478" x="-0.92309175728" y="1.1708609375" z="-2.26259296608">
+        <neutronic p="152.124" r="4.72424" t="147.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8479" x="-0.92309175728" y="1.20904296875" z="-2.26259296608">
+        <neutronic p="151.191" r="4.72371" t="146.951"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8480" x="-0.92309175728" y="1.247225" z="-2.26259296608">
+        <neutronic p="150.274" r="4.72315" t="146.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8481" x="-0.92309175728" y="1.28540703125" z="-2.26259296608">
+        <neutronic p="149.372" r="4.72257" t="146.475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8482" x="-0.92309175728" y="1.3235890625" z="-2.26259296608">
+        <neutronic p="148.487" r="4.72196" t="146.229"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8483" x="-0.92309175728" y="1.36177109375" z="-2.26259296608">
+        <neutronic p="147.618" r="4.72133" t="145.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8484" x="-0.92309175728" y="1.399953125" z="-2.26259296608">
+        <neutronic p="146.765" r="4.72066" t="145.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8485" x="-0.92309175728" y="1.43813515625" z="-2.26259296608">
+        <neutronic p="145.928" r="4.71998" t="145.462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8486" x="-0.92309175728" y="1.4763171875" z="-2.26259296608">
+        <neutronic p="145.106" r="4.71926" t="145.198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8487" x="-0.92309175728" y="1.51449921875" z="-2.26259296608">
+        <neutronic p="144.301" r="4.71852" t="144.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8488" x="-0.92309175728" y="1.55268125" z="-2.26259296608">
+        <neutronic p="143.51" r="4.71776" t="144.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8489" x="-0.92309175728" y="1.59086328125" z="-2.26259296608">
+        <neutronic p="142.736" r="4.71697" t="144.385"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8490" x="-0.92309175728" y="1.6290453125" z="-2.26259296608">
+        <neutronic p="141.977" r="4.71616" t="144.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8491" x="-0.92309175728" y="1.66722734375" z="-2.26259296608">
+        <neutronic p="141.232" r="4.71532" t="143.826"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8492" x="-0.92309175728" y="1.705409375" z="-2.26259296608">
+        <neutronic p="140.503" r="4.71445" t="143.543"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8493" x="-0.92309175728" y="1.74359140625" z="-2.26259296608">
+        <neutronic p="139.788" r="4.71356" t="143.258"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8494" x="-0.92309175728" y="1.7817734375" z="-2.26259296608">
+        <neutronic p="139.088" r="4.71265" t="142.97"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8495" x="-0.92309175728" y="1.81995546875" z="-2.26259296608">
+        <neutronic p="138.403" r="4.71172" t="142.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8496" x="-0.92309175728" y="1.8581375" z="-2.26259296608">
+        <neutronic p="137.731" r="4.71076" t="142.389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8497" x="-0.92309175728" y="1.89631953125" z="-2.26259296608">
+        <neutronic p="137.073" r="4.70977" t="142.096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8517" x="-1.02761142994" y="0.21631015625" z="-2.21707917575">
+        <neutronic p="179.613" r="4.72838" t="147.59"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8518" x="-1.02761142994" y="0.2544921875" z="-2.21707917575">
+        <neutronic p="178.517" r="4.72855" t="147.582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8519" x="-1.02761142994" y="0.29267421875" z="-2.21707917575">
+        <neutronic p="177.422" r="4.7287" t="147.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8520" x="-1.02761142994" y="0.33085625" z="-2.21707917575">
+        <neutronic p="176.328" r="4.72882" t="147.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8521" x="-1.02761142994" y="0.36903828125" z="-2.21707917575">
+        <neutronic p="175.236" r="4.72891" t="147.501"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8522" x="-1.02761142994" y="0.4072203125" z="-2.21707917575">
+        <neutronic p="174.146" r="4.72897" t="147.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8523" x="-1.02761142994" y="0.44540234375" z="-2.21707917575">
+        <neutronic p="173.06" r="4.729" t="147.4"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8524" x="-1.02761142994" y="0.483584375" z="-2.21707917575">
+        <neutronic p="171.978" r="4.72901" t="147.335"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8525" x="-1.02761142994" y="0.52176640625" z="-2.21707917575">
+        <neutronic p="170.901" r="4.72898" t="147.262"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8526" x="-1.02761142994" y="0.5599484375" z="-2.21707917575">
+        <neutronic p="169.83" r="4.72893" t="147.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8527" x="-1.02761142994" y="0.59813046875" z="-2.21707917575">
+        <neutronic p="168.765" r="4.72885" t="147.087"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8528" x="-1.02761142994" y="0.6363125" z="-2.21707917575">
+        <neutronic p="167.708" r="4.72874" t="146.987"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8529" x="-1.02761142994" y="0.67449453125" z="-2.21707917575">
+        <neutronic p="166.658" r="4.7286" t="146.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8530" x="-1.02761142994" y="0.7126765625" z="-2.21707917575">
+        <neutronic p="165.617" r="4.72843" t="146.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8531" x="-1.02761142994" y="0.75085859375" z="-2.21707917575">
+        <neutronic p="164.584" r="4.72824" t="146.634"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8532" x="-1.02761142994" y="0.789040625" z="-2.21707917575">
+        <neutronic p="163.561" r="4.72801" t="146.499"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8533" x="-1.02761142994" y="0.82722265625" z="-2.21707917575">
+        <neutronic p="162.548" r="4.72776" t="146.357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8534" x="-1.02761142994" y="0.8654046875" z="-2.21707917575">
+        <neutronic p="161.546" r="4.72748" t="146.207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8535" x="-1.02761142994" y="0.90358671875" z="-2.21707917575">
+        <neutronic p="160.554" r="4.72717" t="146.05"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8536" x="-1.02761142994" y="0.94176875" z="-2.21707917575">
+        <neutronic p="159.574" r="4.72684" t="145.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8537" x="-1.02761142994" y="0.97995078125" z="-2.21707917575">
+        <neutronic p="158.606" r="4.72647" t="145.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8538" x="-1.02761142994" y="1.0181328125" z="-2.21707917575">
+        <neutronic p="157.65" r="4.72608" t="145.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8539" x="-1.02761142994" y="1.05631484375" z="-2.21707917575">
+        <neutronic p="156.706" r="4.72566" t="145.349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8540" x="-1.02761142994" y="1.094496875" z="-2.21707917575">
+        <neutronic p="155.775" r="4.72521" t="145.157"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8541" x="-1.02761142994" y="1.13267890625" z="-2.21707917575">
+        <neutronic p="154.857" r="4.72474" t="144.958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8542" x="-1.02761142994" y="1.1708609375" z="-2.21707917575">
+        <neutronic p="153.952" r="4.72424" t="144.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8543" x="-1.02761142994" y="1.20904296875" z="-2.21707917575">
+        <neutronic p="153.06" r="4.72371" t="144.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8544" x="-1.02761142994" y="1.247225" z="-2.21707917575">
+        <neutronic p="152.182" r="4.72315" t="144.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8545" x="-1.02761142994" y="1.28540703125" z="-2.21707917575">
+        <neutronic p="151.317" r="4.72257" t="144.109"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8546" x="-1.02761142994" y="1.3235890625" z="-2.21707917575">
+        <neutronic p="150.466" r="4.72196" t="143.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8547" x="-1.02761142994" y="1.36177109375" z="-2.21707917575">
+        <neutronic p="149.629" r="4.72133" t="143.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8548" x="-1.02761142994" y="1.399953125" z="-2.21707917575">
+        <neutronic p="148.805" r="4.72066" t="143.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8549" x="-1.02761142994" y="1.43813515625" z="-2.21707917575">
+        <neutronic p="147.995" r="4.71998" t="143.18"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8550" x="-1.02761142994" y="1.4763171875" z="-2.21707917575">
+        <neutronic p="147.199" r="4.71926" t="142.937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8551" x="-1.02761142994" y="1.51449921875" z="-2.21707917575">
+        <neutronic p="146.416" r="4.71852" t="142.691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8552" x="-1.02761142994" y="1.55268125" z="-2.21707917575">
+        <neutronic p="145.647" r="4.71776" t="142.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8553" x="-1.02761142994" y="1.59086328125" z="-2.21707917575">
+        <neutronic p="144.891" r="4.71697" t="142.187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8554" x="-1.02761142994" y="1.6290453125" z="-2.21707917575">
+        <neutronic p="144.149" r="4.71616" t="141.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8555" x="-1.02761142994" y="1.66722734375" z="-2.21707917575">
+        <neutronic p="143.42" r="4.71532" t="141.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8556" x="-1.02761142994" y="1.705409375" z="-2.21707917575">
+        <neutronic p="142.705" r="4.71445" t="141.41"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8557" x="-1.02761142994" y="1.74359140625" z="-2.21707917575">
+        <neutronic p="142.002" r="4.71356" t="141.145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8558" x="-1.02761142994" y="1.7817734375" z="-2.21707917575">
+        <neutronic p="141.313" r="4.71265" t="140.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8559" x="-1.02761142994" y="1.81995546875" z="-2.21707917575">
+        <neutronic p="140.636" r="4.71172" t="140.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8560" x="-1.02761142994" y="1.8581375" z="-2.21707917575">
+        <neutronic p="139.972" r="4.71076" t="140.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8561" x="-1.02761142994" y="1.89631953125" z="-2.21707917575">
+        <neutronic p="139.32" r="4.70977" t="140.067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8581" x="-1.1298946681" y="0.21631015625" z="-2.16674026166">
+        <neutronic p="179.639" r="4.72838" t="144.869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8582" x="-1.1298946681" y="0.2544921875" z="-2.16674026166">
+        <neutronic p="178.619" r="4.72855" t="144.861"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8583" x="-1.1298946681" y="0.29267421875" z="-2.16674026166">
+        <neutronic p="177.599" r="4.7287" t="144.845"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8584" x="-1.1298946681" y="0.33085625" z="-2.16674026166">
+        <neutronic p="176.579" r="4.72882" t="144.821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8585" x="-1.1298946681" y="0.36903828125" z="-2.16674026166">
+        <neutronic p="175.561" r="4.72891" t="144.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8586" x="-1.1298946681" y="0.4072203125" z="-2.16674026166">
+        <neutronic p="174.545" r="4.72897" t="144.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8587" x="-1.1298946681" y="0.44540234375" z="-2.16674026166">
+        <neutronic p="173.532" r="4.729" t="144.697"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8588" x="-1.1298946681" y="0.483584375" z="-2.16674026166">
+        <neutronic p="172.522" r="4.72901" t="144.638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8589" x="-1.1298946681" y="0.52176640625" z="-2.16674026166">
+        <neutronic p="171.516" r="4.72898" t="144.572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8590" x="-1.1298946681" y="0.5599484375" z="-2.16674026166">
+        <neutronic p="170.515" r="4.72893" t="144.497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8591" x="-1.1298946681" y="0.59813046875" z="-2.16674026166">
+        <neutronic p="169.519" r="4.72885" t="144.414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8592" x="-1.1298946681" y="0.6363125" z="-2.16674026166">
+        <neutronic p="168.528" r="4.72874" t="144.323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8593" x="-1.1298946681" y="0.67449453125" z="-2.16674026166">
+        <neutronic p="167.544" r="4.7286" t="144.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8594" x="-1.1298946681" y="0.7126765625" z="-2.16674026166">
+        <neutronic p="166.566" r="4.72843" t="144.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8595" x="-1.1298946681" y="0.75085859375" z="-2.16674026166">
+        <neutronic p="165.596" r="4.72824" t="144.003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8596" x="-1.1298946681" y="0.789040625" z="-2.16674026166">
+        <neutronic p="164.634" r="4.72801" t="143.882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8597" x="-1.1298946681" y="0.82722265625" z="-2.16674026166">
+        <neutronic p="163.68" r="4.72776" t="143.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8598" x="-1.1298946681" y="0.8654046875" z="-2.16674026166">
+        <neutronic p="162.734" r="4.72748" t="143.616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8599" x="-1.1298946681" y="0.90358671875" z="-2.16674026166">
+        <neutronic p="161.798" r="4.72717" t="143.473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8600" x="-1.1298946681" y="0.94176875" z="-2.16674026166">
+        <neutronic p="160.871" r="4.72684" t="143.323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8601" x="-1.1298946681" y="0.97995078125" z="-2.16674026166">
+        <neutronic p="159.953" r="4.72647" t="143.167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8602" x="-1.1298946681" y="1.0181328125" z="-2.16674026166">
+        <neutronic p="159.046" r="4.72608" t="143.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8603" x="-1.1298946681" y="1.05631484375" z="-2.16674026166">
+        <neutronic p="158.149" r="4.72566" t="142.835"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8604" x="-1.1298946681" y="1.094496875" z="-2.16674026166">
+        <neutronic p="157.263" r="4.72521" t="142.66"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8605" x="-1.1298946681" y="1.13267890625" z="-2.16674026166">
+        <neutronic p="156.388" r="4.72474" t="142.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8606" x="-1.1298946681" y="1.1708609375" z="-2.16674026166">
+        <neutronic p="155.523" r="4.72424" t="142.293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8607" x="-1.1298946681" y="1.20904296875" z="-2.16674026166">
+        <neutronic p="154.67" r="4.72371" t="142.101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8608" x="-1.1298946681" y="1.247225" z="-2.16674026166">
+        <neutronic p="153.829" r="4.72315" t="141.904"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8609" x="-1.1298946681" y="1.28540703125" z="-2.16674026166">
+        <neutronic p="152.999" r="4.72257" t="141.702"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8610" x="-1.1298946681" y="1.3235890625" z="-2.16674026166">
+        <neutronic p="152.18" r="4.72196" t="141.495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8611" x="-1.1298946681" y="1.36177109375" z="-2.16674026166">
+        <neutronic p="151.374" r="4.72133" t="141.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8612" x="-1.1298946681" y="1.399953125" z="-2.16674026166">
+        <neutronic p="150.579" r="4.72066" t="141.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8613" x="-1.1298946681" y="1.43813515625" z="-2.16674026166">
+        <neutronic p="149.796" r="4.71998" t="140.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8614" x="-1.1298946681" y="1.4763171875" z="-2.16674026166">
+        <neutronic p="149.025" r="4.71926" t="140.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8615" x="-1.1298946681" y="1.51449921875" z="-2.16674026166">
+        <neutronic p="148.266" r="4.71852" t="140.399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8616" x="-1.1298946681" y="1.55268125" z="-2.16674026166">
+        <neutronic p="147.519" r="4.71776" t="140.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8617" x="-1.1298946681" y="1.59086328125" z="-2.16674026166">
+        <neutronic p="146.783" r="4.71697" t="139.935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8618" x="-1.1298946681" y="1.6290453125" z="-2.16674026166">
+        <neutronic p="146.06" r="4.71616" t="139.698"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8619" x="-1.1298946681" y="1.66722734375" z="-2.16674026166">
+        <neutronic p="145.348" r="4.71532" t="139.458"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8620" x="-1.1298946681" y="1.705409375" z="-2.16674026166">
+        <neutronic p="144.648" r="4.71445" t="139.216"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8621" x="-1.1298946681" y="1.74359140625" z="-2.16674026166">
+        <neutronic p="143.96" r="4.71356" t="138.971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8622" x="-1.1298946681" y="1.7817734375" z="-2.16674026166">
+        <neutronic p="143.283" r="4.71265" t="138.724"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8623" x="-1.1298946681" y="1.81995546875" z="-2.16674026166">
+        <neutronic p="142.618" r="4.71172" t="138.475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8624" x="-1.1298946681" y="1.8581375" z="-2.16674026166">
+        <neutronic p="141.964" r="4.71076" t="138.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8625" x="-1.1298946681" y="1.89631953125" z="-2.16674026166">
+        <neutronic p="141.321" r="4.70977" t="137.971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8645" x="-1.22971886841" y="0.21631015625" z="-2.11168577852">
+        <neutronic p="179.662" r="4.72838" t="142.147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8646" x="-1.22971886841" y="0.2544921875" z="-2.11168577852">
+        <neutronic p="178.705" r="4.72855" t="142.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8647" x="-1.22971886841" y="0.29267421875" z="-2.11168577852">
+        <neutronic p="177.748" r="4.7287" t="142.126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8648" x="-1.22971886841" y="0.33085625" z="-2.11168577852">
+        <neutronic p="176.792" r="4.72882" t="142.104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8649" x="-1.22971886841" y="0.36903828125" z="-2.11168577852">
+        <neutronic p="175.836" r="4.72891" t="142.074"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8650" x="-1.22971886841" y="0.4072203125" z="-2.11168577852">
+        <neutronic p="174.883" r="4.72897" t="142.036"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8651" x="-1.22971886841" y="0.44540234375" z="-2.11168577852">
+        <neutronic p="173.931" r="4.729" t="141.991"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8652" x="-1.22971886841" y="0.483584375" z="-2.11168577852">
+        <neutronic p="172.983" r="4.72901" t="141.938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8653" x="-1.22971886841" y="0.52176640625" z="-2.11168577852">
+        <neutronic p="172.037" r="4.72898" t="141.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8654" x="-1.22971886841" y="0.5599484375" z="-2.11168577852">
+        <neutronic p="171.095" r="4.72893" t="141.81"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8655" x="-1.22971886841" y="0.59813046875" z="-2.11168577852">
+        <neutronic p="170.158" r="4.72885" t="141.735"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8656" x="-1.22971886841" y="0.6363125" z="-2.11168577852">
+        <neutronic p="169.225" r="4.72874" t="141.652"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8657" x="-1.22971886841" y="0.67449453125" z="-2.11168577852">
+        <neutronic p="168.297" r="4.7286" t="141.563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8658" x="-1.22971886841" y="0.7126765625" z="-2.11168577852">
+        <neutronic p="167.375" r="4.72843" t="141.466"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8659" x="-1.22971886841" y="0.75085859375" z="-2.11168577852">
+        <neutronic p="166.459" r="4.72824" t="141.362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8660" x="-1.22971886841" y="0.789040625" z="-2.11168577852">
+        <neutronic p="165.549" r="4.72801" t="141.251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8661" x="-1.22971886841" y="0.82722265625" z="-2.11168577852">
+        <neutronic p="164.646" r="4.72776" t="141.134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8662" x="-1.22971886841" y="0.8654046875" z="-2.11168577852">
+        <neutronic p="163.75" r="4.72748" t="141.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8663" x="-1.22971886841" y="0.90358671875" z="-2.11168577852">
+        <neutronic p="162.862" r="4.72717" t="140.88"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8664" x="-1.22971886841" y="0.94176875" z="-2.11168577852">
+        <neutronic p="161.982" r="4.72684" t="140.743"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8665" x="-1.22971886841" y="0.97995078125" z="-2.11168577852">
+        <neutronic p="161.11" r="4.72647" t="140.601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8666" x="-1.22971886841" y="1.0181328125" z="-2.11168577852">
+        <neutronic p="160.246" r="4.72608" t="140.452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8667" x="-1.22971886841" y="1.05631484375" z="-2.11168577852">
+        <neutronic p="159.392" r="4.72566" t="140.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8668" x="-1.22971886841" y="1.094496875" z="-2.11168577852">
+        <neutronic p="158.546" r="4.72521" t="140.138"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8669" x="-1.22971886841" y="1.13267890625" z="-2.11168577852">
+        <neutronic p="157.709" r="4.72474" t="139.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8670" x="-1.22971886841" y="1.1708609375" z="-2.11168577852">
+        <neutronic p="156.882" r="4.72424" t="139.802"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8671" x="-1.22971886841" y="1.20904296875" z="-2.11168577852">
+        <neutronic p="156.065" r="4.72371" t="139.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8672" x="-1.22971886841" y="1.247225" z="-2.11168577852">
+        <neutronic p="155.257" r="4.72315" t="139.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8673" x="-1.22971886841" y="1.28540703125" z="-2.11168577852">
+        <neutronic p="154.459" r="4.72257" t="139.261"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8674" x="-1.22971886841" y="1.3235890625" z="-2.11168577852">
+        <neutronic p="153.672" r="4.72196" t="139.071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8675" x="-1.22971886841" y="1.36177109375" z="-2.11168577852">
+        <neutronic p="152.894" r="4.72133" t="138.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8676" x="-1.22971886841" y="1.399953125" z="-2.11168577852">
+        <neutronic p="152.127" r="4.72066" t="138.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8677" x="-1.22971886841" y="1.43813515625" z="-2.11168577852">
+        <neutronic p="151.371" r="4.71998" t="138.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8678" x="-1.22971886841" y="1.4763171875" z="-2.11168577852">
+        <neutronic p="150.624" r="4.71926" t="138.273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8679" x="-1.22971886841" y="1.51449921875" z="-2.11168577852">
+        <neutronic p="149.888" r="4.71852" t="138.064"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8680" x="-1.22971886841" y="1.55268125" z="-2.11168577852">
+        <neutronic p="149.163" r="4.71776" t="137.851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8681" x="-1.22971886841" y="1.59086328125" z="-2.11168577852">
+        <neutronic p="148.448" r="4.71697" t="137.636"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8682" x="-1.22971886841" y="1.6290453125" z="-2.11168577852">
+        <neutronic p="147.744" r="4.71616" t="137.418"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8683" x="-1.22971886841" y="1.66722734375" z="-2.11168577852">
+        <neutronic p="147.05" r="4.71532" t="137.196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8684" x="-1.22971886841" y="1.705409375" z="-2.11168577852">
+        <neutronic p="146.366" r="4.71445" t="136.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8685" x="-1.22971886841" y="1.74359140625" z="-2.11168577852">
+        <neutronic p="145.693" r="4.71356" t="136.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8686" x="-1.22971886841" y="1.7817734375" z="-2.11168577852">
+        <neutronic p="145.03" r="4.71265" t="136.518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8687" x="-1.22971886841" y="1.81995546875" z="-2.11168577852">
+        <neutronic p="144.378" r="4.71172" t="136.287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8688" x="-1.22971886841" y="1.8581375" z="-2.11168577852">
+        <neutronic p="143.736" r="4.71076" t="136.054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8689" x="-1.22971886841" y="1.89631953125" z="-2.11168577852">
+        <neutronic p="143.104" r="4.70977" t="135.82"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8709" x="-1.3268667792" y="0.21631015625" z="-2.05203554373">
+        <neutronic p="179.681" r="4.72838" t="139.425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8710" x="-1.3268667792" y="0.2544921875" z="-2.05203554373">
+        <neutronic p="178.778" r="4.72855" t="139.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8711" x="-1.3268667792" y="0.29267421875" z="-2.05203554373">
+        <neutronic p="177.875" r="4.7287" t="139.406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8712" x="-1.3268667792" y="0.33085625" z="-2.05203554373">
+        <neutronic p="176.973" r="4.72882" t="139.386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8713" x="-1.3268667792" y="0.36903828125" z="-2.05203554373">
+        <neutronic p="176.071" r="4.72891" t="139.359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8714" x="-1.3268667792" y="0.4072203125" z="-2.05203554373">
+        <neutronic p="175.171" r="4.72897" t="139.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8715" x="-1.3268667792" y="0.44540234375" z="-2.05203554373">
+        <neutronic p="174.272" r="4.729" t="139.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8716" x="-1.3268667792" y="0.483584375" z="-2.05203554373">
+        <neutronic p="173.376" r="4.72901" t="139.236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8717" x="-1.3268667792" y="0.52176640625" z="-2.05203554373">
+        <neutronic p="172.482" r="4.72898" t="139.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8718" x="-1.3268667792" y="0.5599484375" z="-2.05203554373">
+        <neutronic p="171.592" r="4.72893" t="139.119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8719" x="-1.3268667792" y="0.59813046875" z="-2.05203554373">
+        <neutronic p="170.705" r="4.72885" t="139.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8720" x="-1.3268667792" y="0.6363125" z="-2.05203554373">
+        <neutronic p="169.821" r="4.72874" t="138.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8721" x="-1.3268667792" y="0.67449453125" z="-2.05203554373">
+        <neutronic p="168.942" r="4.7286" t="138.894"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8722" x="-1.3268667792" y="0.7126765625" z="-2.05203554373">
+        <neutronic p="168.068" r="4.72843" t="138.806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8723" x="-1.3268667792" y="0.75085859375" z="-2.05203554373">
+        <neutronic p="167.199" r="4.72824" t="138.712"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8724" x="-1.3268667792" y="0.789040625" z="-2.05203554373">
+        <neutronic p="166.335" r="4.72801" t="138.611"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8725" x="-1.3268667792" y="0.82722265625" z="-2.05203554373">
+        <neutronic p="165.477" r="4.72776" t="138.504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8726" x="-1.3268667792" y="0.8654046875" z="-2.05203554373">
+        <neutronic p="164.625" r="4.72748" t="138.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8727" x="-1.3268667792" y="0.90358671875" z="-2.05203554373">
+        <neutronic p="163.779" r="4.72717" t="138.272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8728" x="-1.3268667792" y="0.94176875" z="-2.05203554373">
+        <neutronic p="162.941" r="4.72684" t="138.148"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8729" x="-1.3268667792" y="0.97995078125" z="-2.05203554373">
+        <neutronic p="162.109" r="4.72647" t="138.018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8730" x="-1.3268667792" y="1.0181328125" z="-2.05203554373">
+        <neutronic p="161.284" r="4.72608" t="137.882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8731" x="-1.3268667792" y="1.05631484375" z="-2.05203554373">
+        <neutronic p="160.467" r="4.72566" t="137.741"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8732" x="-1.3268667792" y="1.094496875" z="-2.05203554373">
+        <neutronic p="159.658" r="4.72521" t="137.595"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8733" x="-1.3268667792" y="1.13267890625" z="-2.05203554373">
+        <neutronic p="158.856" r="4.72474" t="137.444"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8734" x="-1.3268667792" y="1.1708609375" z="-2.05203554373">
+        <neutronic p="158.063" r="4.72424" t="137.288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8735" x="-1.3268667792" y="1.20904296875" z="-2.05203554373">
+        <neutronic p="157.278" r="4.72371" t="137.127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8736" x="-1.3268667792" y="1.247225" z="-2.05203554373">
+        <neutronic p="156.502" r="4.72315" t="136.962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8737" x="-1.3268667792" y="1.28540703125" z="-2.05203554373">
+        <neutronic p="155.734" r="4.72257" t="136.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8738" x="-1.3268667792" y="1.3235890625" z="-2.05203554373">
+        <neutronic p="154.975" r="4.72196" t="136.618"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8739" x="-1.3268667792" y="1.36177109375" z="-2.05203554373">
+        <neutronic p="154.225" r="4.72133" t="136.44"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8740" x="-1.3268667792" y="1.399953125" z="-2.05203554373">
+        <neutronic p="153.484" r="4.72066" t="136.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8741" x="-1.3268667792" y="1.43813515625" z="-2.05203554373">
+        <neutronic p="152.752" r="4.71998" t="136.073"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8742" x="-1.3268667792" y="1.4763171875" z="-2.05203554373">
+        <neutronic p="152.029" r="4.71926" t="135.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8743" x="-1.3268667792" y="1.51449921875" z="-2.05203554373">
+        <neutronic p="151.315" r="4.71852" t="135.692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8744" x="-1.3268667792" y="1.55268125" z="-2.05203554373">
+        <neutronic p="150.611" r="4.71776" t="135.497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8745" x="-1.3268667792" y="1.59086328125" z="-2.05203554373">
+        <neutronic p="149.916" r="4.71697" t="135.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8746" x="-1.3268667792" y="1.6290453125" z="-2.05203554373">
+        <neutronic p="149.23" r="4.71616" t="135.097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8747" x="-1.3268667792" y="1.66722734375" z="-2.05203554373">
+        <neutronic p="148.554" r="4.71532" t="134.893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8748" x="-1.3268667792" y="1.705409375" z="-2.05203554373">
+        <neutronic p="147.887" r="4.71445" t="134.686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8749" x="-1.3268667792" y="1.74359140625" z="-2.05203554373">
+        <neutronic p="147.23" r="4.71356" t="134.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8750" x="-1.3268667792" y="1.7817734375" z="-2.05203554373">
+        <neutronic p="146.581" r="4.71265" t="134.266"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8751" x="-1.3268667792" y="1.81995546875" z="-2.05203554373">
+        <neutronic p="145.942" r="4.71172" t="134.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8752" x="-1.3268667792" y="1.8581375" z="-2.05203554373">
+        <neutronic p="145.313" r="4.71076" t="133.837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8753" x="-1.3268667792" y="1.89631953125" z="-2.05203554373">
+        <neutronic p="144.692" r="4.70977" t="133.62"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8773" x="-1.42112697335" y="0.21631015625" z="-1.98791937666">
+        <neutronic p="179.697" r="4.72838" t="136.703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8774" x="-1.42112697335" y="0.2544921875" z="-1.98791937666">
+        <neutronic p="178.841" r="4.72855" t="136.698"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8775" x="-1.42112697335" y="0.29267421875" z="-1.98791937666">
+        <neutronic p="177.985" r="4.7287" t="136.686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8776" x="-1.42112697335" y="0.33085625" z="-1.98791937666">
+        <neutronic p="177.129" r="4.72882" t="136.668"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8777" x="-1.42112697335" y="0.36903828125" z="-1.98791937666">
+        <neutronic p="176.273" r="4.72891" t="136.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8778" x="-1.42112697335" y="0.4072203125" z="-1.98791937666">
+        <neutronic p="175.419" r="4.72897" t="136.612"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8779" x="-1.42112697335" y="0.44540234375" z="-1.98791937666">
+        <neutronic p="174.566" r="4.729" t="136.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8780" x="-1.42112697335" y="0.483584375" z="-1.98791937666">
+        <neutronic p="173.715" r="4.72901" t="136.531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8781" x="-1.42112697335" y="0.52176640625" z="-1.98791937666">
+        <neutronic p="172.866" r="4.72898" t="136.481"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8782" x="-1.42112697335" y="0.5599484375" z="-1.98791937666">
+        <neutronic p="172.019" r="4.72893" t="136.425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8783" x="-1.42112697335" y="0.59813046875" z="-1.98791937666">
+        <neutronic p="171.176" r="4.72885" t="136.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8784" x="-1.42112697335" y="0.6363125" z="-1.98791937666">
+        <neutronic p="170.336" r="4.72874" t="136.295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8785" x="-1.42112697335" y="0.67449453125" z="-1.98791937666">
+        <neutronic p="169.499" r="4.7286" t="136.22"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8786" x="-1.42112697335" y="0.7126765625" z="-1.98791937666">
+        <neutronic p="168.667" r="4.72843" t="136.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8787" x="-1.42112697335" y="0.75085859375" z="-1.98791937666">
+        <neutronic p="167.838" r="4.72824" t="136.054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8788" x="-1.42112697335" y="0.789040625" z="-1.98791937666">
+        <neutronic p="167.015" r="4.72801" t="135.962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8789" x="-1.42112697335" y="0.82722265625" z="-1.98791937666">
+        <neutronic p="166.196" r="4.72776" t="135.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8790" x="-1.42112697335" y="0.8654046875" z="-1.98791937666">
+        <neutronic p="165.382" r="4.72748" t="135.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8791" x="-1.42112697335" y="0.90358671875" z="-1.98791937666">
+        <neutronic p="164.574" r="4.72717" t="135.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8792" x="-1.42112697335" y="0.94176875" z="-1.98791937666">
+        <neutronic p="163.772" r="4.72684" t="135.54"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8793" x="-1.42112697335" y="0.97995078125" z="-1.98791937666">
+        <neutronic p="162.976" r="4.72647" t="135.421"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8794" x="-1.42112697335" y="1.0181328125" z="-1.98791937666">
+        <neutronic p="162.186" r="4.72608" t="135.297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8795" x="-1.42112697335" y="1.05631484375" z="-1.98791937666">
+        <neutronic p="161.403" r="4.72566" t="135.168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8796" x="-1.42112697335" y="1.094496875" z="-1.98791937666">
+        <neutronic p="160.626" r="4.72521" t="135.035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8797" x="-1.42112697335" y="1.13267890625" z="-1.98791937666">
+        <neutronic p="159.856" r="4.72474" t="134.896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8798" x="-1.42112697335" y="1.1708609375" z="-1.98791937666">
+        <neutronic p="159.093" r="4.72424" t="134.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8799" x="-1.42112697335" y="1.20904296875" z="-1.98791937666">
+        <neutronic p="158.338" r="4.72371" t="134.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8800" x="-1.42112697335" y="1.247225" z="-1.98791937666">
+        <neutronic p="157.59" r="4.72315" t="134.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8801" x="-1.42112697335" y="1.28540703125" z="-1.98791937666">
+        <neutronic p="156.849" r="4.72257" t="134.3"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8802" x="-1.42112697335" y="1.3235890625" z="-1.98791937666">
+        <neutronic p="156.117" r="4.72196" t="134.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8803" x="-1.42112697335" y="1.36177109375" z="-1.98791937666">
+        <neutronic p="155.392" r="4.72133" t="133.977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8804" x="-1.42112697335" y="1.399953125" z="-1.98791937666">
+        <neutronic p="154.675" r="4.72066" t="133.81"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8805" x="-1.42112697335" y="1.43813515625" z="-1.98791937666">
+        <neutronic p="153.966" r="4.71998" t="133.64"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8806" x="-1.42112697335" y="1.4763171875" z="-1.98791937666">
+        <neutronic p="153.266" r="4.71926" t="133.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8807" x="-1.42112697335" y="1.51449921875" z="-1.98791937666">
+        <neutronic p="152.573" r="4.71852" t="133.29"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8808" x="-1.42112697335" y="1.55268125" z="-1.98791937666">
+        <neutronic p="151.889" r="4.71776" t="133.11"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8809" x="-1.42112697335" y="1.59086328125" z="-1.98791937666">
+        <neutronic p="151.213" r="4.71697" t="132.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8810" x="-1.42112697335" y="1.6290453125" z="-1.98791937666">
+        <neutronic p="150.546" r="4.71616" t="132.742"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8811" x="-1.42112697335" y="1.66722734375" z="-1.98791937666">
+        <neutronic p="149.887" r="4.71532" t="132.554"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8812" x="-1.42112697335" y="1.705409375" z="-1.98791937666">
+        <neutronic p="149.236" r="4.71445" t="132.364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8813" x="-1.42112697335" y="1.74359140625" z="-1.98791937666">
+        <neutronic p="148.594" r="4.71356" t="132.171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8814" x="-1.42112697335" y="1.7817734375" z="-1.98791937666">
+        <neutronic p="147.96" r="4.71265" t="131.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8815" x="-1.42112697335" y="1.81995546875" z="-1.98791937666">
+        <neutronic p="147.334" r="4.71172" t="131.779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8816" x="-1.42112697335" y="1.8581375" z="-1.98791937666">
+        <neutronic p="146.717" r="4.71076" t="131.58"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8817" x="-1.42112697335" y="1.89631953125" z="-1.98791937666">
+        <neutronic p="146.109" r="4.70977" t="131.38"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8837" x="-1.51229430839" y="0.21631015625" z="-1.91947681604">
+        <neutronic p="179.712" r="4.72838" t="133.981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8838" x="-1.51229430839" y="0.2544921875" z="-1.91947681604">
+        <neutronic p="178.895" r="4.72855" t="133.977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8839" x="-1.51229430839" y="0.29267421875" z="-1.91947681604">
+        <neutronic p="178.079" r="4.7287" t="133.966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8840" x="-1.51229430839" y="0.33085625" z="-1.91947681604">
+        <neutronic p="177.263" r="4.72882" t="133.949"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8841" x="-1.51229430839" y="0.36903828125" z="-1.91947681604">
+        <neutronic p="176.448" r="4.72891" t="133.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8842" x="-1.51229430839" y="0.4072203125" z="-1.91947681604">
+        <neutronic p="175.633" r="4.72897" t="133.899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8843" x="-1.51229430839" y="0.44540234375" z="-1.91947681604">
+        <neutronic p="174.82" r="4.729" t="133.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8844" x="-1.51229430839" y="0.483584375" z="-1.91947681604">
+        <neutronic p="174.008" r="4.72901" t="133.825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8845" x="-1.51229430839" y="0.52176640625" z="-1.91947681604">
+        <neutronic p="173.197" r="4.72898" t="133.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8846" x="-1.51229430839" y="0.5599484375" z="-1.91947681604">
+        <neutronic p="172.39" r="4.72893" t="133.729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8847" x="-1.51229430839" y="0.59813046875" z="-1.91947681604">
+        <neutronic p="171.584" r="4.72885" t="133.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8848" x="-1.51229430839" y="0.6363125" z="-1.91947681604">
+        <neutronic p="170.782" r="4.72874" t="133.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8849" x="-1.51229430839" y="0.67449453125" z="-1.91947681604">
+        <neutronic p="169.982" r="4.7286" t="133.542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8850" x="-1.51229430839" y="0.7126765625" z="-1.91947681604">
+        <neutronic p="169.186" r="4.72843" t="133.469"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8851" x="-1.51229430839" y="0.75085859375" z="-1.91947681604">
+        <neutronic p="168.394" r="4.72824" t="133.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8852" x="-1.51229430839" y="0.789040625" z="-1.91947681604">
+        <neutronic p="167.605" r="4.72801" t="133.307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8853" x="-1.51229430839" y="0.82722265625" z="-1.91947681604">
+        <neutronic p="166.821" r="4.72776" t="133.218"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8854" x="-1.51229430839" y="0.8654046875" z="-1.91947681604">
+        <neutronic p="166.041" r="4.72748" t="133.124"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8855" x="-1.51229430839" y="0.90358671875" z="-1.91947681604">
+        <neutronic p="165.267" r="4.72717" t="133.025"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8856" x="-1.51229430839" y="0.94176875" z="-1.91947681604">
+        <neutronic p="164.497" r="4.72684" t="132.922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8857" x="-1.51229430839" y="0.97995078125" z="-1.91947681604">
+        <neutronic p="163.732" r="4.72647" t="132.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8858" x="-1.51229430839" y="1.0181328125" z="-1.91947681604">
+        <neutronic p="162.973" r="4.72608" t="132.7"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8859" x="-1.51229430839" y="1.05631484375" z="-1.91947681604">
+        <neutronic p="162.22" r="4.72566" t="132.582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8860" x="-1.51229430839" y="1.094496875" z="-1.91947681604">
+        <neutronic p="161.472" r="4.72521" t="132.46"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8861" x="-1.51229430839" y="1.13267890625" z="-1.91947681604">
+        <neutronic p="160.731" r="4.72474" t="132.334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8862" x="-1.51229430839" y="1.1708609375" z="-1.91947681604">
+        <neutronic p="159.995" r="4.72424" t="132.203"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8863" x="-1.51229430839" y="1.20904296875" z="-1.91947681604">
+        <neutronic p="159.267" r="4.72371" t="132.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8864" x="-1.51229430839" y="1.247225" z="-1.91947681604">
+        <neutronic p="158.545" r="4.72315" t="131.93"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8865" x="-1.51229430839" y="1.28540703125" z="-1.91947681604">
+        <neutronic p="157.829" r="4.72257" t="131.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8866" x="-1.51229430839" y="1.3235890625" z="-1.91947681604">
+        <neutronic p="157.12" r="4.72196" t="131.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8867" x="-1.51229430839" y="1.36177109375" z="-1.91947681604">
+        <neutronic p="156.419" r="4.72133" t="131.492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8868" x="-1.51229430839" y="1.399953125" z="-1.91947681604">
+        <neutronic p="155.724" r="4.72066" t="131.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8869" x="-1.51229430839" y="1.43813515625" z="-1.91947681604">
+        <neutronic p="155.037" r="4.71998" t="131.183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8870" x="-1.51229430839" y="1.4763171875" z="-1.91947681604">
+        <neutronic p="154.357" r="4.71926" t="131.024"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8871" x="-1.51229430839" y="1.51449921875" z="-1.91947681604">
+        <neutronic p="153.684" r="4.71852" t="130.862"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8872" x="-1.51229430839" y="1.55268125" z="-1.91947681604">
+        <neutronic p="153.019" r="4.71776" t="130.697"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8873" x="-1.51229430839" y="1.59086328125" z="-1.91947681604">
+        <neutronic p="152.361" r="4.71697" t="130.529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8874" x="-1.51229430839" y="1.6290453125" z="-1.91947681604">
+        <neutronic p="151.711" r="4.71616" t="130.358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8875" x="-1.51229430839" y="1.66722734375" z="-1.91947681604">
+        <neutronic p="151.068" r="4.71532" t="130.185"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8876" x="-1.51229430839" y="1.705409375" z="-1.91947681604">
+        <neutronic p="150.433" r="4.71445" t="130.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8877" x="-1.51229430839" y="1.74359140625" z="-1.91947681604">
+        <neutronic p="149.805" r="4.71356" t="129.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8878" x="-1.51229430839" y="1.7817734375" z="-1.91947681604">
+        <neutronic p="149.186" r="4.71265" t="129.653"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8879" x="-1.51229430839" y="1.81995546875" z="-1.91947681604">
+        <neutronic p="148.573" r="4.71172" t="129.472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8880" x="-1.51229430839" y="1.8581375" z="-1.91947681604">
+        <neutronic p="147.969" r="4.71076" t="129.288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8881" x="-1.51229430839" y="1.89631953125" z="-1.91947681604">
+        <neutronic p="147.372" r="4.70977" t="129.103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8901" x="-1.60017037295" y="0.21631015625" z="-1.84685681633">
+        <neutronic p="179.724" r="4.72838" t="131.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8902" x="-1.60017037295" y="0.2544921875" z="-1.84685681633">
+        <neutronic p="178.943" r="4.72855" t="131.255"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8903" x="-1.60017037295" y="0.29267421875" z="-1.84685681633">
+        <neutronic p="178.161" r="4.7287" t="131.245"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8904" x="-1.60017037295" y="0.33085625" z="-1.84685681633">
+        <neutronic p="177.38" r="4.72882" t="131.23"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8905" x="-1.60017037295" y="0.36903828125" z="-1.84685681633">
+        <neutronic p="176.599" r="4.72891" t="131.21"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8906" x="-1.60017037295" y="0.4072203125" z="-1.84685681633">
+        <neutronic p="175.819" r="4.72897" t="131.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8907" x="-1.60017037295" y="0.44540234375" z="-1.84685681633">
+        <neutronic p="175.04" r="4.729" t="131.153"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8908" x="-1.60017037295" y="0.483584375" z="-1.84685681633">
+        <neutronic p="174.262" r="4.72901" t="131.117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8909" x="-1.60017037295" y="0.52176640625" z="-1.84685681633">
+        <neutronic p="173.486" r="4.72898" t="131.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8910" x="-1.60017037295" y="0.5599484375" z="-1.84685681633">
+        <neutronic p="172.712" r="4.72893" t="131.03"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8911" x="-1.60017037295" y="0.59813046875" z="-1.84685681633">
+        <neutronic p="171.939" r="4.72885" t="130.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8912" x="-1.60017037295" y="0.6363125" z="-1.84685681633">
+        <neutronic p="171.17" r="4.72874" t="130.922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8913" x="-1.60017037295" y="0.67449453125" z="-1.84685681633">
+        <neutronic p="170.403" r="4.7286" t="130.86"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8914" x="-1.60017037295" y="0.7126765625" z="-1.84685681633">
+        <neutronic p="169.638" r="4.72843" t="130.793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8915" x="-1.60017037295" y="0.75085859375" z="-1.84685681633">
+        <neutronic p="168.878" r="4.72824" t="130.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8916" x="-1.60017037295" y="0.789040625" z="-1.84685681633">
+        <neutronic p="168.12" r="4.72801" t="130.646"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8917" x="-1.60017037295" y="0.82722265625" z="-1.84685681633">
+        <neutronic p="167.366" r="4.72776" t="130.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8918" x="-1.60017037295" y="0.8654046875" z="-1.84685681633">
+        <neutronic p="166.617" r="4.72748" t="130.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8919" x="-1.60017037295" y="0.90358671875" z="-1.84685681633">
+        <neutronic p="165.871" r="4.72717" t="130.389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8920" x="-1.60017037295" y="0.94176875" z="-1.84685681633">
+        <neutronic p="165.13" r="4.72684" t="130.295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8921" x="-1.60017037295" y="0.97995078125" z="-1.84685681633">
+        <neutronic p="164.394" r="4.72647" t="130.196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8922" x="-1.60017037295" y="1.0181328125" z="-1.84685681633">
+        <neutronic p="163.662" r="4.72608" t="130.093"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8923" x="-1.60017037295" y="1.05631484375" z="-1.84685681633">
+        <neutronic p="162.935" r="4.72566" t="129.985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8924" x="-1.60017037295" y="1.094496875" z="-1.84685681633">
+        <neutronic p="162.214" r="4.72521" t="129.874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8925" x="-1.60017037295" y="1.13267890625" z="-1.84685681633">
+        <neutronic p="161.498" r="4.72474" t="129.758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8926" x="-1.60017037295" y="1.1708609375" z="-1.84685681633">
+        <neutronic p="160.787" r="4.72424" t="129.639"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8927" x="-1.60017037295" y="1.20904296875" z="-1.84685681633">
+        <neutronic p="160.083" r="4.72371" t="129.516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8928" x="-1.60017037295" y="1.247225" z="-1.84685681633">
+        <neutronic p="159.384" r="4.72315" t="129.39"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8929" x="-1.60017037295" y="1.28540703125" z="-1.84685681633">
+        <neutronic p="158.691" r="4.72257" t="129.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8930" x="-1.60017037295" y="1.3235890625" z="-1.84685681633">
+        <neutronic p="158.004" r="4.72196" t="129.126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8931" x="-1.60017037295" y="1.36177109375" z="-1.84685681633">
+        <neutronic p="157.324" r="4.72133" t="128.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8932" x="-1.60017037295" y="1.399953125" z="-1.84685681633">
+        <neutronic p="156.65" r="4.72066" t="128.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8933" x="-1.60017037295" y="1.43813515625" z="-1.84685681633">
+        <neutronic p="155.982" r="4.71998" t="128.706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8934" x="-1.60017037295" y="1.4763171875" z="-1.84685681633">
+        <neutronic p="155.321" r="4.71926" t="128.56"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8935" x="-1.60017037295" y="1.51449921875" z="-1.84685681633">
+        <neutronic p="154.666" r="4.71852" t="128.412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8936" x="-1.60017037295" y="1.55268125" z="-1.84685681633">
+        <neutronic p="154.019" r="4.71776" t="128.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8937" x="-1.60017037295" y="1.59086328125" z="-1.84685681633">
+        <neutronic p="153.378" r="4.71697" t="128.106"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8938" x="-1.60017037295" y="1.6290453125" z="-1.84685681633">
+        <neutronic p="152.744" r="4.71616" t="127.95"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8939" x="-1.60017037295" y="1.66722734375" z="-1.84685681633">
+        <neutronic p="152.116" r="4.71532" t="127.791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8940" x="-1.60017037295" y="1.705409375" z="-1.84685681633">
+        <neutronic p="151.496" r="4.71445" t="127.63"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8941" x="-1.60017037295" y="1.74359140625" z="-1.84685681633">
+        <neutronic p="150.883" r="4.71356" t="127.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8942" x="-1.60017037295" y="1.7817734375" z="-1.84685681633">
+        <neutronic p="150.276" r="4.71265" t="127.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8943" x="-1.60017037295" y="1.81995546875" z="-1.84685681633">
+        <neutronic p="149.677" r="4.71172" t="127.135"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8944" x="-1.60017037295" y="1.8581375" z="-1.84685681633">
+        <neutronic p="149.085" r="4.71076" t="126.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8945" x="-1.60017037295" y="1.89631953125" z="-1.84685681633">
+        <neutronic p="148.499" r="4.70977" t="126.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8965" x="-1.68456391863" y="0.21631015625" z="-1.77021742352">
+        <neutronic p="179.735" r="4.72838" t="128.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8966" x="-1.68456391863" y="0.2544921875" z="-1.77021742352">
+        <neutronic p="178.984" r="4.72855" t="128.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8967" x="-1.68456391863" y="0.29267421875" z="-1.77021742352">
+        <neutronic p="178.233" r="4.7287" t="128.525"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8968" x="-1.68456391863" y="0.33085625" z="-1.77021742352">
+        <neutronic p="177.482" r="4.72882" t="128.511"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8969" x="-1.68456391863" y="0.36903828125" z="-1.77021742352">
+        <neutronic p="176.731" r="4.72891" t="128.493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8970" x="-1.68456391863" y="0.4072203125" z="-1.77021742352">
+        <neutronic p="175.981" r="4.72897" t="128.469"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8971" x="-1.68456391863" y="0.44540234375" z="-1.77021742352">
+        <neutronic p="175.232" r="4.729" t="128.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8972" x="-1.68456391863" y="0.483584375" z="-1.77021742352">
+        <neutronic p="174.484" r="4.72901" t="128.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8973" x="-1.68456391863" y="0.52176640625" z="-1.77021742352">
+        <neutronic p="173.738" r="4.72898" t="128.371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8974" x="-1.68456391863" y="0.5599484375" z="-1.77021742352">
+        <neutronic p="172.993" r="4.72893" t="128.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8975" x="-1.68456391863" y="0.59813046875" z="-1.77021742352">
+        <neutronic p="172.249" r="4.72885" t="128.282"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8976" x="-1.68456391863" y="0.6363125" z="-1.77021742352">
+        <neutronic p="171.508" r="4.72874" t="128.231"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8977" x="-1.68456391863" y="0.67449453125" z="-1.77021742352">
+        <neutronic p="170.77" r="4.7286" t="128.175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8978" x="-1.68456391863" y="0.7126765625" z="-1.77021742352">
+        <neutronic p="170.034" r="4.72843" t="128.114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8979" x="-1.68456391863" y="0.75085859375" z="-1.77021742352">
+        <neutronic p="169.301" r="4.72824" t="128.049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8980" x="-1.68456391863" y="0.789040625" z="-1.77021742352">
+        <neutronic p="168.57" r="4.72801" t="127.98"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8981" x="-1.68456391863" y="0.82722265625" z="-1.77021742352">
+        <neutronic p="167.844" r="4.72776" t="127.907"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8982" x="-1.68456391863" y="0.8654046875" z="-1.77021742352">
+        <neutronic p="167.12" r="4.72748" t="127.829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8983" x="-1.68456391863" y="0.90358671875" z="-1.77021742352">
+        <neutronic p="166.401" r="4.72717" t="127.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8984" x="-1.68456391863" y="0.94176875" z="-1.77021742352">
+        <neutronic p="165.685" r="4.72684" t="127.661"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8985" x="-1.68456391863" y="0.97995078125" z="-1.77021742352">
+        <neutronic p="164.973" r="4.72647" t="127.571"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8986" x="-1.68456391863" y="1.0181328125" z="-1.77021742352">
+        <neutronic p="164.266" r="4.72608" t="127.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8987" x="-1.68456391863" y="1.05631484375" z="-1.77021742352">
+        <neutronic p="163.563" r="4.72566" t="127.379"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8988" x="-1.68456391863" y="1.094496875" z="-1.77021742352">
+        <neutronic p="162.865" r="4.72521" t="127.277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8989" x="-1.68456391863" y="1.13267890625" z="-1.77021742352">
+        <neutronic p="162.172" r="4.72474" t="127.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8990" x="-1.68456391863" y="1.1708609375" z="-1.77021742352">
+        <neutronic p="161.484" r="4.72424" t="127.063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8991" x="-1.68456391863" y="1.20904296875" z="-1.77021742352">
+        <neutronic p="160.801" r="4.72371" t="126.951"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8992" x="-1.68456391863" y="1.247225" z="-1.77021742352">
+        <neutronic p="160.123" r="4.72315" t="126.836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8993" x="-1.68456391863" y="1.28540703125" z="-1.77021742352">
+        <neutronic p="159.45" r="4.72257" t="126.717"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8994" x="-1.68456391863" y="1.3235890625" z="-1.77021742352">
+        <neutronic p="158.783" r="4.72196" t="126.595"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8995" x="-1.68456391863" y="1.36177109375" z="-1.77021742352">
+        <neutronic p="158.122" r="4.72133" t="126.47"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8996" x="-1.68456391863" y="1.399953125" z="-1.77021742352">
+        <neutronic p="157.467" r="4.72066" t="126.342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8997" x="-1.68456391863" y="1.43813515625" z="-1.77021742352">
+        <neutronic p="156.817" r="4.71998" t="126.212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8998" x="-1.68456391863" y="1.4763171875" z="-1.77021742352">
+        <neutronic p="156.173" r="4.71926" t="126.079"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="8999" x="-1.68456391863" y="1.51449921875" z="-1.77021742352">
+        <neutronic p="155.536" r="4.71852" t="125.943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9000" x="-1.68456391863" y="1.55268125" z="-1.77021742352">
+        <neutronic p="154.904" r="4.71776" t="125.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9001" x="-1.68456391863" y="1.59086328125" z="-1.77021742352">
+        <neutronic p="154.279" r="4.71697" t="125.663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9002" x="-1.68456391863" y="1.6290453125" z="-1.77021742352">
+        <neutronic p="153.66" r="4.71616" t="125.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9003" x="-1.68456391863" y="1.66722734375" z="-1.77021742352">
+        <neutronic p="153.047" r="4.71532" t="125.375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9004" x="-1.68456391863" y="1.705409375" z="-1.77021742352">
+        <neutronic p="152.44" r="4.71445" t="125.228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9005" x="-1.68456391863" y="1.74359140625" z="-1.77021742352">
+        <neutronic p="151.84" r="4.71356" t="125.078"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9006" x="-1.68456391863" y="1.7817734375" z="-1.77021742352">
+        <neutronic p="151.246" r="4.71265" t="124.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9007" x="-1.68456391863" y="1.81995546875" z="-1.77021742352">
+        <neutronic p="150.659" r="4.71172" t="124.774"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9008" x="-1.68456391863" y="1.8581375" z="-1.77021742352">
+        <neutronic p="150.078" r="4.71076" t="124.619"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9009" x="-1.68456391863" y="1.89631953125" z="-1.77021742352">
+        <neutronic p="149.504" r="4.70977" t="124.463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9029" x="-1.76529127615" y="0.21631015625" z="-1.6897254312">
+        <neutronic p="179.744" r="4.72838" t="125.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9030" x="-1.76529127615" y="0.2544921875" z="-1.6897254312">
+        <neutronic p="179.02" r="4.72855" t="125.812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9031" x="-1.76529127615" y="0.29267421875" z="-1.6897254312">
+        <neutronic p="178.295" r="4.7287" t="125.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9032" x="-1.76529127615" y="0.33085625" z="-1.6897254312">
+        <neutronic p="177.571" r="4.72882" t="125.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9033" x="-1.76529127615" y="0.36903828125" z="-1.6897254312">
+        <neutronic p="176.847" r="4.72891" t="125.775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9034" x="-1.76529127615" y="0.4072203125" z="-1.6897254312">
+        <neutronic p="176.123" r="4.72897" t="125.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9035" x="-1.76529127615" y="0.44540234375" z="-1.6897254312">
+        <neutronic p="175.4" r="4.729" t="125.729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9036" x="-1.76529127615" y="0.483584375" z="-1.6897254312">
+        <neutronic p="174.678" r="4.72901" t="125.699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9037" x="-1.76529127615" y="0.52176640625" z="-1.6897254312">
+        <neutronic p="173.958" r="4.72898" t="125.665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9038" x="-1.76529127615" y="0.5599484375" z="-1.6897254312">
+        <neutronic p="173.238" r="4.72893" t="125.627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9039" x="-1.76529127615" y="0.59813046875" z="-1.6897254312">
+        <neutronic p="172.521" r="4.72885" t="125.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9040" x="-1.76529127615" y="0.6363125" z="-1.6897254312">
+        <neutronic p="171.805" r="4.72874" t="125.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9041" x="-1.76529127615" y="0.67449453125" z="-1.6897254312">
+        <neutronic p="171.091" r="4.7286" t="125.487"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9042" x="-1.76529127615" y="0.7126765625" z="-1.6897254312">
+        <neutronic p="170.38" r="4.72843" t="125.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9043" x="-1.76529127615" y="0.75085859375" z="-1.6897254312">
+        <neutronic p="169.671" r="4.72824" t="125.373"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9044" x="-1.76529127615" y="0.789040625" z="-1.6897254312">
+        <neutronic p="168.965" r="4.72801" t="125.31"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9045" x="-1.76529127615" y="0.82722265625" z="-1.6897254312">
+        <neutronic p="168.262" r="4.72776" t="125.244"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9046" x="-1.76529127615" y="0.8654046875" z="-1.6897254312">
+        <neutronic p="167.562" r="4.72748" t="125.173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9047" x="-1.76529127615" y="0.90358671875" z="-1.6897254312">
+        <neutronic p="166.865" r="4.72717" t="125.099"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9048" x="-1.76529127615" y="0.94176875" z="-1.6897254312">
+        <neutronic p="166.172" r="4.72684" t="125.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9049" x="-1.76529127615" y="0.97995078125" z="-1.6897254312">
+        <neutronic p="165.483" r="4.72647" t="124.939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9050" x="-1.76529127615" y="1.0181328125" z="-1.6897254312">
+        <neutronic p="164.797" r="4.72608" t="124.853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9051" x="-1.76529127615" y="1.05631484375" z="-1.6897254312">
+        <neutronic p="164.115" r="4.72566" t="124.765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9052" x="-1.76529127615" y="1.094496875" z="-1.6897254312">
+        <neutronic p="163.438" r="4.72521" t="124.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9053" x="-1.76529127615" y="1.13267890625" z="-1.6897254312">
+        <neutronic p="162.765" r="4.72474" t="124.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9054" x="-1.76529127615" y="1.1708609375" z="-1.6897254312">
+        <neutronic p="162.097" r="4.72424" t="124.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9055" x="-1.76529127615" y="1.20904296875" z="-1.6897254312">
+        <neutronic p="161.433" r="4.72371" t="124.376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9056" x="-1.76529127615" y="1.247225" z="-1.6897254312">
+        <neutronic p="160.774" r="4.72315" t="124.271"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9057" x="-1.76529127615" y="1.28540703125" z="-1.6897254312">
+        <neutronic p="160.12" r="4.72257" t="124.163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9058" x="-1.76529127615" y="1.3235890625" z="-1.6897254312">
+        <neutronic p="159.471" r="4.72196" t="124.052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9059" x="-1.76529127615" y="1.36177109375" z="-1.6897254312">
+        <neutronic p="158.827" r="4.72133" t="123.938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9060" x="-1.76529127615" y="1.399953125" z="-1.6897254312">
+        <neutronic p="158.188" r="4.72066" t="123.822"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9061" x="-1.76529127615" y="1.43813515625" z="-1.6897254312">
+        <neutronic p="157.555" r="4.71998" t="123.703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9062" x="-1.76529127615" y="1.4763171875" z="-1.6897254312">
+        <neutronic p="156.927" r="4.71926" t="123.581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9063" x="-1.76529127615" y="1.51449921875" z="-1.6897254312">
+        <neutronic p="156.305" r="4.71852" t="123.457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9064" x="-1.76529127615" y="1.55268125" z="-1.6897254312">
+        <neutronic p="155.688" r="4.71776" t="123.331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9065" x="-1.76529127615" y="1.59086328125" z="-1.6897254312">
+        <neutronic p="155.077" r="4.71697" t="123.203"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9066" x="-1.76529127615" y="1.6290453125" z="-1.6897254312">
+        <neutronic p="154.472" r="4.71616" t="123.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9067" x="-1.76529127615" y="1.66722734375" z="-1.6897254312">
+        <neutronic p="153.872" r="4.71532" t="122.94"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9068" x="-1.76529127615" y="1.705409375" z="-1.6897254312">
+        <neutronic p="153.278" r="4.71445" t="122.805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9069" x="-1.76529127615" y="1.74359140625" z="-1.6897254312">
+        <neutronic p="152.691" r="4.71356" t="122.669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9070" x="-1.76529127615" y="1.7817734375" z="-1.6897254312">
+        <neutronic p="152.109" r="4.71265" t="122.531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9071" x="-1.76529127615" y="1.81995546875" z="-1.6897254312">
+        <neutronic p="151.533" r="4.71172" t="122.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9072" x="-1.76529127615" y="1.8581375" z="-1.6897254312">
+        <neutronic p="150.963" r="4.71076" t="122.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9073" x="-1.76529127615" y="1.89631953125" z="-1.6897254312">
+        <neutronic p="150.399" r="4.70977" t="122.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9093" x="-1.84217675514" y="0.21631015625" z="-1.6055560175">
+        <neutronic p="179.752" r="4.72838" t="123.094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9094" x="-1.84217675514" y="0.2544921875" z="-1.6055560175">
+        <neutronic p="179.051" r="4.72855" t="123.091"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9095" x="-1.84217675514" y="0.29267421875" z="-1.6055560175">
+        <neutronic p="178.35" r="4.7287" t="123.084"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9096" x="-1.84217675514" y="0.33085625" z="-1.6055560175">
+        <neutronic p="177.649" r="4.72882" t="123.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9097" x="-1.84217675514" y="0.36903828125" z="-1.6055560175">
+        <neutronic p="176.948" r="4.72891" t="123.057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9098" x="-1.84217675514" y="0.4072203125" z="-1.6055560175">
+        <neutronic p="176.247" r="4.72897" t="123.038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9099" x="-1.84217675514" y="0.44540234375" z="-1.6055560175">
+        <neutronic p="175.547" r="4.729" t="123.015"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9100" x="-1.84217675514" y="0.483584375" z="-1.6055560175">
+        <neutronic p="174.848" r="4.72901" t="122.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9101" x="-1.84217675514" y="0.52176640625" z="-1.6055560175">
+        <neutronic p="174.15" r="4.72898" t="122.958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9102" x="-1.84217675514" y="0.5599484375" z="-1.6055560175">
+        <neutronic p="173.453" r="4.72893" t="122.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9103" x="-1.84217675514" y="0.59813046875" z="-1.6055560175">
+        <neutronic p="172.758" r="4.72885" t="122.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9104" x="-1.84217675514" y="0.6363125" z="-1.6055560175">
+        <neutronic p="172.064" r="4.72874" t="122.843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9105" x="-1.84217675514" y="0.67449453125" z="-1.6055560175">
+        <neutronic p="171.373" r="4.7286" t="122.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9106" x="-1.84217675514" y="0.7126765625" z="-1.6055560175">
+        <neutronic p="170.683" r="4.72843" t="122.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9107" x="-1.84217675514" y="0.75085859375" z="-1.6055560175">
+        <neutronic p="169.996" r="4.72824" t="122.694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9108" x="-1.84217675514" y="0.789040625" z="-1.6055560175">
+        <neutronic p="169.311" r="4.72801" t="122.637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9109" x="-1.84217675514" y="0.82722265625" z="-1.6055560175">
+        <neutronic p="168.628" r="4.72776" t="122.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9110" x="-1.84217675514" y="0.8654046875" z="-1.6055560175">
+        <neutronic p="167.949" r="4.72748" t="122.513"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9111" x="-1.84217675514" y="0.90358671875" z="-1.6055560175">
+        <neutronic p="167.273" r="4.72717" t="122.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9112" x="-1.84217675514" y="0.94176875" z="-1.6055560175">
+        <neutronic p="166.599" r="4.72684" t="122.375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9113" x="-1.84217675514" y="0.97995078125" z="-1.6055560175">
+        <neutronic p="165.929" r="4.72647" t="122.301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9114" x="-1.84217675514" y="1.0181328125" z="-1.6055560175">
+        <neutronic p="165.263" r="4.72608" t="122.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9115" x="-1.84217675514" y="1.05631484375" z="-1.6055560175">
+        <neutronic p="164.6" r="4.72566" t="122.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9116" x="-1.84217675514" y="1.094496875" z="-1.6055560175">
+        <neutronic p="163.942" r="4.72521" t="122.06"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9117" x="-1.84217675514" y="1.13267890625" z="-1.6055560175">
+        <neutronic p="163.287" r="4.72474" t="121.973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9118" x="-1.84217675514" y="1.1708609375" z="-1.6055560175">
+        <neutronic p="162.636" r="4.72424" t="121.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9119" x="-1.84217675514" y="1.20904296875" z="-1.6055560175">
+        <neutronic p="161.99" r="4.72371" t="121.791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9120" x="-1.84217675514" y="1.247225" z="-1.6055560175">
+        <neutronic p="161.347" r="4.72315" t="121.696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9121" x="-1.84217675514" y="1.28540703125" z="-1.6055560175">
+        <neutronic p="160.71" r="4.72257" t="121.598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9122" x="-1.84217675514" y="1.3235890625" z="-1.6055560175">
+        <neutronic p="160.077" r="4.72196" t="121.498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9123" x="-1.84217675514" y="1.36177109375" z="-1.6055560175">
+        <neutronic p="159.449" r="4.72133" t="121.395"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9124" x="-1.84217675514" y="1.399953125" z="-1.6055560175">
+        <neutronic p="158.825" r="4.72066" t="121.289"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9125" x="-1.84217675514" y="1.43813515625" z="-1.6055560175">
+        <neutronic p="158.207" r="4.71998" t="121.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9126" x="-1.84217675514" y="1.4763171875" z="-1.6055560175">
+        <neutronic p="157.593" r="4.71926" t="121.071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9127" x="-1.84217675514" y="1.51449921875" z="-1.6055560175">
+        <neutronic p="156.985" r="4.71852" t="120.959"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9128" x="-1.84217675514" y="1.55268125" z="-1.6055560175">
+        <neutronic p="156.381" r="4.71776" t="120.844"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9129" x="-1.84217675514" y="1.59086328125" z="-1.6055560175">
+        <neutronic p="155.783" r="4.71697" t="120.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9130" x="-1.84217675514" y="1.6290453125" z="-1.6055560175">
+        <neutronic p="155.191" r="4.71616" t="120.609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9131" x="-1.84217675514" y="1.66722734375" z="-1.6055560175">
+        <neutronic p="154.603" r="4.71532" t="120.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9132" x="-1.84217675514" y="1.705409375" z="-1.6055560175">
+        <neutronic p="154.021" r="4.71445" t="120.366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9133" x="-1.84217675514" y="1.74359140625" z="-1.6055560175">
+        <neutronic p="153.445" r="4.71356" t="120.242"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9134" x="-1.84217675514" y="1.7817734375" z="-1.6055560175">
+        <neutronic p="152.874" r="4.71265" t="120.117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9135" x="-1.84217675514" y="1.81995546875" z="-1.6055560175">
+        <neutronic p="152.309" r="4.71172" t="119.99"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9136" x="-1.84217675514" y="1.8581375" z="-1.6055560175">
+        <neutronic p="151.749" r="4.71076" t="119.861"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9137" x="-1.84217675514" y="1.89631953125" z="-1.6055560175">
+        <neutronic p="151.195" r="4.70977" t="119.731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9157" x="-1.91505302645" y="0.21631015625" z="-1.5178923639">
+        <neutronic p="179.759" r="4.72838" t="120.373"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9158" x="-1.91505302645" y="0.2544921875" z="-1.5178923639">
+        <neutronic p="179.079" r="4.72855" t="120.37"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9159" x="-1.91505302645" y="0.29267421875" z="-1.5178923639">
+        <neutronic p="178.398" r="4.7287" t="120.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9160" x="-1.91505302645" y="0.33085625" z="-1.5178923639">
+        <neutronic p="177.717" r="4.72882" t="120.353"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9161" x="-1.91505302645" y="0.36903828125" z="-1.5178923639">
+        <neutronic p="177.036" r="4.72891" t="120.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9162" x="-1.91505302645" y="0.4072203125" z="-1.5178923639">
+        <neutronic p="176.356" r="4.72897" t="120.322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9163" x="-1.91505302645" y="0.44540234375" z="-1.5178923639">
+        <neutronic p="175.676" r="4.729" t="120.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9164" x="-1.91505302645" y="0.483584375" z="-1.5178923639">
+        <neutronic p="174.997" r="4.72901" t="120.277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9165" x="-1.91505302645" y="0.52176640625" z="-1.5178923639">
+        <neutronic p="174.318" r="4.72898" t="120.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9166" x="-1.91505302645" y="0.5599484375" z="-1.5178923639">
+        <neutronic p="173.641" r="4.72893" t="120.219"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9167" x="-1.91505302645" y="0.59813046875" z="-1.5178923639">
+        <neutronic p="172.966" r="4.72885" t="120.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9168" x="-1.91505302645" y="0.6363125" z="-1.5178923639">
+        <neutronic p="172.291" r="4.72874" t="120.146"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9169" x="-1.91505302645" y="0.67449453125" z="-1.5178923639">
+        <neutronic p="171.619" r="4.7286" t="120.105"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9170" x="-1.91505302645" y="0.7126765625" z="-1.5178923639">
+        <neutronic p="170.948" r="4.72843" t="120.06"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9171" x="-1.91505302645" y="0.75085859375" z="-1.5178923639">
+        <neutronic p="170.28" r="4.72824" t="120.013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9172" x="-1.91505302645" y="0.789040625" z="-1.5178923639">
+        <neutronic p="169.613" r="4.72801" t="119.961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9173" x="-1.91505302645" y="0.82722265625" z="-1.5178923639">
+        <neutronic p="168.949" r="4.72776" t="119.907"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9174" x="-1.91505302645" y="0.8654046875" z="-1.5178923639">
+        <neutronic p="168.288" r="4.72748" t="119.85"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9175" x="-1.91505302645" y="0.90358671875" z="-1.5178923639">
+        <neutronic p="167.63" r="4.72717" t="119.789"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9176" x="-1.91505302645" y="0.94176875" z="-1.5178923639">
+        <neutronic p="166.974" r="4.72684" t="119.725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9177" x="-1.91505302645" y="0.97995078125" z="-1.5178923639">
+        <neutronic p="166.321" r="4.72647" t="119.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9178" x="-1.91505302645" y="1.0181328125" z="-1.5178923639">
+        <neutronic p="165.672" r="4.72608" t="119.589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9179" x="-1.91505302645" y="1.05631484375" z="-1.5178923639">
+        <neutronic p="165.026" r="4.72566" t="119.517"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9180" x="-1.91505302645" y="1.094496875" z="-1.5178923639">
+        <neutronic p="164.384" r="4.72521" t="119.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9181" x="-1.91505302645" y="1.13267890625" z="-1.5178923639">
+        <neutronic p="163.745" r="4.72474" t="119.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9182" x="-1.91505302645" y="1.1708609375" z="-1.5178923639">
+        <neutronic p="163.11" r="4.72424" t="119.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9183" x="-1.91505302645" y="1.20904296875" z="-1.5178923639">
+        <neutronic p="162.479" r="4.72371" t="119.199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9184" x="-1.91505302645" y="1.247225" z="-1.5178923639">
+        <neutronic p="161.852" r="4.72315" t="119.114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9185" x="-1.91505302645" y="1.28540703125" z="-1.5178923639">
+        <neutronic p="161.229" r="4.72257" t="119.025"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9186" x="-1.91505302645" y="1.3235890625" z="-1.5178923639">
+        <neutronic p="160.61" r="4.72196" t="118.935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9187" x="-1.91505302645" y="1.36177109375" z="-1.5178923639">
+        <neutronic p="159.996" r="4.72133" t="118.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9188" x="-1.91505302645" y="1.399953125" z="-1.5178923639">
+        <neutronic p="159.386" r="4.72066" t="118.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9189" x="-1.91505302645" y="1.43813515625" z="-1.5178923639">
+        <neutronic p="158.781" r="4.71998" t="118.649"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9190" x="-1.91505302645" y="1.4763171875" z="-1.5178923639">
+        <neutronic p="158.18" r="4.71926" t="118.549"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9191" x="-1.91505302645" y="1.51449921875" z="-1.5178923639">
+        <neutronic p="157.584" r="4.71852" t="118.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9192" x="-1.91505302645" y="1.55268125" z="-1.5178923639">
+        <neutronic p="156.993" r="4.71776" t="118.344"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9193" x="-1.91505302645" y="1.59086328125" z="-1.5178923639">
+        <neutronic p="156.407" r="4.71697" t="118.239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9194" x="-1.91505302645" y="1.6290453125" z="-1.5178923639">
+        <neutronic p="155.826" r="4.71616" t="118.132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9195" x="-1.91505302645" y="1.66722734375" z="-1.5178923639">
+        <neutronic p="155.25" r="4.71532" t="118.023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9196" x="-1.91505302645" y="1.705409375" z="-1.5178923639">
+        <neutronic p="154.678" r="4.71445" t="117.912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9197" x="-1.91505302645" y="1.74359140625" z="-1.5178923639">
+        <neutronic p="154.112" r="4.71356" t="117.8"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9198" x="-1.91505302645" y="1.7817734375" z="-1.5178923639">
+        <neutronic p="153.551" r="4.71265" t="117.687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9199" x="-1.91505302645" y="1.81995546875" z="-1.5178923639">
+        <neutronic p="152.996" r="4.71172" t="117.572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9200" x="-1.91505302645" y="1.8581375" z="-1.5178923639">
+        <neutronic p="152.445" r="4.71076" t="117.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9201" x="-1.91505302645" y="1.89631953125" z="-1.5178923639">
+        <neutronic p="151.9" r="4.70977" t="117.338"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9221" x="-1.98376148635" y="0.21631015625" z="-1.42692525655">
+        <neutronic p="179.766" r="4.72838" t="117.651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9222" x="-1.98376148635" y="0.2544921875" z="-1.42692525655">
+        <neutronic p="179.103" r="4.72855" t="117.648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9223" x="-1.98376148635" y="0.29267421875" z="-1.42692525655">
+        <neutronic p="178.439" r="4.7287" t="117.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9224" x="-1.98376148635" y="0.33085625" z="-1.42692525655">
+        <neutronic p="177.776" r="4.72882" t="117.633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9225" x="-1.98376148635" y="0.36903828125" z="-1.42692525655">
+        <neutronic p="177.113" r="4.72891" t="117.621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9226" x="-1.98376148635" y="0.4072203125" z="-1.42692525655">
+        <neutronic p="176.45" r="4.72897" t="117.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9227" x="-1.98376148635" y="0.44540234375" z="-1.42692525655">
+        <neutronic p="175.788" r="4.729" t="117.587"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9228" x="-1.98376148635" y="0.483584375" z="-1.42692525655">
+        <neutronic p="175.126" r="4.72901" t="117.566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9229" x="-1.98376148635" y="0.52176640625" z="-1.42692525655">
+        <neutronic p="174.465" r="4.72898" t="117.541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9230" x="-1.98376148635" y="0.5599484375" z="-1.42692525655">
+        <neutronic p="173.805" r="4.72893" t="117.513"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9231" x="-1.98376148635" y="0.59813046875" z="-1.42692525655">
+        <neutronic p="173.147" r="4.72885" t="117.482"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9232" x="-1.98376148635" y="0.6363125" z="-1.42692525655">
+        <neutronic p="172.49" r="4.72874" t="117.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9233" x="-1.98376148635" y="0.67449453125" z="-1.42692525655">
+        <neutronic p="171.834" r="4.7286" t="117.412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9234" x="-1.98376148635" y="0.7126765625" z="-1.42692525655">
+        <neutronic p="171.18" r="4.72843" t="117.372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9235" x="-1.98376148635" y="0.75085859375" z="-1.42692525655">
+        <neutronic p="170.528" r="4.72824" t="117.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9236" x="-1.98376148635" y="0.789040625" z="-1.42692525655">
+        <neutronic p="169.878" r="4.72801" t="117.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9237" x="-1.98376148635" y="0.82722265625" z="-1.42692525655">
+        <neutronic p="169.23" r="4.72776" t="117.234"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9238" x="-1.98376148635" y="0.8654046875" z="-1.42692525655">
+        <neutronic p="168.585" r="4.72748" t="117.183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9239" x="-1.98376148635" y="0.90358671875" z="-1.42692525655">
+        <neutronic p="167.942" r="4.72717" t="117.129"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9240" x="-1.98376148635" y="0.94176875" z="-1.42692525655">
+        <neutronic p="167.302" r="4.72684" t="117.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9241" x="-1.98376148635" y="0.97995078125" z="-1.42692525655">
+        <neutronic p="166.664" r="4.72647" t="117.012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9242" x="-1.98376148635" y="1.0181328125" z="-1.42692525655">
+        <neutronic p="166.03" r="4.72608" t="116.95"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9243" x="-1.98376148635" y="1.05631484375" z="-1.42692525655">
+        <neutronic p="165.399" r="4.72566" t="116.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9244" x="-1.98376148635" y="1.094496875" z="-1.42692525655">
+        <neutronic p="164.771" r="4.72521" t="116.818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9245" x="-1.98376148635" y="1.13267890625" z="-1.42692525655">
+        <neutronic p="164.146" r="4.72474" t="116.748"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9246" x="-1.98376148635" y="1.1708609375" z="-1.42692525655">
+        <neutronic p="163.525" r="4.72424" t="116.675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9247" x="-1.98376148635" y="1.20904296875" z="-1.42692525655">
+        <neutronic p="162.908" r="4.72371" t="116.601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9248" x="-1.98376148635" y="1.247225" z="-1.42692525655">
+        <neutronic p="162.294" r="4.72315" t="116.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9249" x="-1.98376148635" y="1.28540703125" z="-1.42692525655">
+        <neutronic p="161.684" r="4.72257" t="116.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9250" x="-1.98376148635" y="1.3235890625" z="-1.42692525655">
+        <neutronic p="161.078" r="4.72196" t="116.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9251" x="-1.98376148635" y="1.36177109375" z="-1.42692525655">
+        <neutronic p="160.476" r="4.72133" t="116.28"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9252" x="-1.98376148635" y="1.399953125" z="-1.42692525655">
+        <neutronic p="159.879" r="4.72066" t="116.195"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9253" x="-1.98376148635" y="1.43813515625" z="-1.42692525655">
+        <neutronic p="159.285" r="4.71998" t="116.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9254" x="-1.98376148635" y="1.4763171875" z="-1.42692525655">
+        <neutronic p="158.696" r="4.71926" t="116.018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9255" x="-1.98376148635" y="1.51449921875" z="-1.42692525655">
+        <neutronic p="158.112" r="4.71852" t="115.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9256" x="-1.98376148635" y="1.55268125" z="-1.42692525655">
+        <neutronic p="157.531" r="4.71776" t="115.834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9257" x="-1.98376148635" y="1.59086328125" z="-1.42692525655">
+        <neutronic p="156.956" r="4.71697" t="115.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9258" x="-1.98376148635" y="1.6290453125" z="-1.42692525655">
+        <neutronic p="156.385" r="4.71616" t="115.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9259" x="-1.98376148635" y="1.66722734375" z="-1.42692525655">
+        <neutronic p="155.819" r="4.71532" t="115.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9260" x="-1.98376148635" y="1.705409375" z="-1.42692525655">
+        <neutronic p="155.257" r="4.71445" t="115.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9261" x="-1.98376148635" y="1.74359140625" z="-1.42692525655">
+        <neutronic p="154.701" r="4.71356" t="115.345"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9262" x="-1.98376148635" y="1.7817734375" z="-1.42692525655">
+        <neutronic p="154.149" r="4.71265" t="115.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9263" x="-1.98376148635" y="1.81995546875" z="-1.42692525655">
+        <neutronic p="153.602" r="4.71172" t="115.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9264" x="-1.98376148635" y="1.8581375" z="-1.42692525655">
+        <neutronic p="153.06" r="4.71076" t="115.036"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9265" x="-1.98376148635" y="1.89631953125" z="-1.42692525655">
+        <neutronic p="152.523" r="4.70977" t="114.93"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9285" x="-2.04815260169" y="0.21631015625" z="-1.33285267103">
+        <neutronic p="179.771" r="4.72838" t="114.929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9286" x="-2.04815260169" y="0.2544921875" z="-1.33285267103">
+        <neutronic p="179.124" r="4.72855" t="114.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9287" x="-2.04815260169" y="0.29267421875" z="-1.33285267103">
+        <neutronic p="178.476" r="4.7287" t="114.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9288" x="-2.04815260169" y="0.33085625" z="-1.33285267103">
+        <neutronic p="177.828" r="4.72882" t="114.913"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9289" x="-2.04815260169" y="0.36903828125" z="-1.33285267103">
+        <neutronic p="177.18" r="4.72891" t="114.903"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9290" x="-2.04815260169" y="0.4072203125" z="-1.33285267103">
+        <neutronic p="176.532" r="4.72897" t="114.889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9291" x="-2.04815260169" y="0.44540234375" z="-1.33285267103">
+        <neutronic p="175.885" r="4.729" t="114.873"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9292" x="-2.04815260169" y="0.483584375" z="-1.33285267103">
+        <neutronic p="175.239" r="4.72901" t="114.853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9293" x="-2.04815260169" y="0.52176640625" z="-1.33285267103">
+        <neutronic p="174.593" r="4.72898" t="114.832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9294" x="-2.04815260169" y="0.5599484375" z="-1.33285267103">
+        <neutronic p="173.948" r="4.72893" t="114.807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9295" x="-2.04815260169" y="0.59813046875" z="-1.33285267103">
+        <neutronic p="173.304" r="4.72885" t="114.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9296" x="-2.04815260169" y="0.6363125" z="-1.33285267103">
+        <neutronic p="172.662" r="4.72874" t="114.749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9297" x="-2.04815260169" y="0.67449453125" z="-1.33285267103">
+        <neutronic p="172.021" r="4.7286" t="114.717"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9298" x="-2.04815260169" y="0.7126765625" z="-1.33285267103">
+        <neutronic p="171.381" r="4.72843" t="114.681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9299" x="-2.04815260169" y="0.75085859375" z="-1.33285267103">
+        <neutronic p="170.744" r="4.72824" t="114.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9300" x="-2.04815260169" y="0.789040625" z="-1.33285267103">
+        <neutronic p="170.108" r="4.72801" t="114.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9301" x="-2.04815260169" y="0.82722265625" z="-1.33285267103">
+        <neutronic p="169.474" r="4.72776" t="114.559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9302" x="-2.04815260169" y="0.8654046875" z="-1.33285267103">
+        <neutronic p="168.843" r="4.72748" t="114.514"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9303" x="-2.04815260169" y="0.90358671875" z="-1.33285267103">
+        <neutronic p="168.214" r="4.72717" t="114.466"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9304" x="-2.04815260169" y="0.94176875" z="-1.33285267103">
+        <neutronic p="167.587" r="4.72684" t="114.415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9305" x="-2.04815260169" y="0.97995078125" z="-1.33285267103">
+        <neutronic p="166.963" r="4.72647" t="114.362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9306" x="-2.04815260169" y="1.0181328125" z="-1.33285267103">
+        <neutronic p="166.342" r="4.72608" t="114.307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9307" x="-2.04815260169" y="1.05631484375" z="-1.33285267103">
+        <neutronic p="165.723" r="4.72566" t="114.249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9308" x="-2.04815260169" y="1.094496875" z="-1.33285267103">
+        <neutronic p="165.108" r="4.72521" t="114.189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9309" x="-2.04815260169" y="1.13267890625" z="-1.33285267103">
+        <neutronic p="164.496" r="4.72474" t="114.127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9310" x="-2.04815260169" y="1.1708609375" z="-1.33285267103">
+        <neutronic p="163.887" r="4.72424" t="114.063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9311" x="-2.04815260169" y="1.20904296875" z="-1.33285267103">
+        <neutronic p="163.282" r="4.72371" t="113.996"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9312" x="-2.04815260169" y="1.247225" z="-1.33285267103">
+        <neutronic p="162.68" r="4.72315" t="113.928"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9313" x="-2.04815260169" y="1.28540703125" z="-1.33285267103">
+        <neutronic p="162.081" r="4.72257" t="113.858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9314" x="-2.04815260169" y="1.3235890625" z="-1.33285267103">
+        <neutronic p="161.487" r="4.72196" t="113.785"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9315" x="-2.04815260169" y="1.36177109375" z="-1.33285267103">
+        <neutronic p="160.896" r="4.72133" t="113.711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9316" x="-2.04815260169" y="1.399953125" z="-1.33285267103">
+        <neutronic p="160.309" r="4.72066" t="113.635"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9317" x="-2.04815260169" y="1.43813515625" z="-1.33285267103">
+        <neutronic p="159.726" r="4.71998" t="113.558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9318" x="-2.04815260169" y="1.4763171875" z="-1.33285267103">
+        <neutronic p="159.148" r="4.71926" t="113.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9319" x="-2.04815260169" y="1.51449921875" z="-1.33285267103">
+        <neutronic p="158.573" r="4.71852" t="113.397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9320" x="-2.04815260169" y="1.55268125" z="-1.33285267103">
+        <neutronic p="158.002" r="4.71776" t="113.314"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9321" x="-2.04815260169" y="1.59086328125" z="-1.33285267103">
+        <neutronic p="157.436" r="4.71697" t="113.23"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9322" x="-2.04815260169" y="1.6290453125" z="-1.33285267103">
+        <neutronic p="156.875" r="4.71616" t="113.144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9323" x="-2.04815260169" y="1.66722734375" z="-1.33285267103">
+        <neutronic p="156.317" r="4.71532" t="113.057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9324" x="-2.04815260169" y="1.705409375" z="-1.33285267103">
+        <neutronic p="155.765" r="4.71445" t="112.969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9325" x="-2.04815260169" y="1.74359140625" z="-1.33285267103">
+        <neutronic p="155.216" r="4.71356" t="112.879"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9326" x="-2.04815260169" y="1.7817734375" z="-1.33285267103">
+        <neutronic p="154.673" r="4.71265" t="112.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9327" x="-2.04815260169" y="1.81995546875" z="-1.33285267103">
+        <neutronic p="154.133" r="4.71172" t="112.696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9328" x="-2.04815260169" y="1.8581375" z="-1.33285267103">
+        <neutronic p="153.599" r="4.71076" t="112.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9329" x="-2.04815260169" y="1.89631953125" z="-1.33285267103">
+        <neutronic p="153.069" r="4.70977" t="112.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9349" x="-2.10808623536" y="0.21631015625" z="-1.23587934152">
+        <neutronic p="179.776" r="4.72838" t="112.207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9350" x="-2.10808623536" y="0.2544921875" z="-1.23587934152">
+        <neutronic p="179.141" r="4.72855" t="112.205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9351" x="-2.10808623536" y="0.29267421875" z="-1.23587934152">
+        <neutronic p="178.507" r="4.7287" t="112.2"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9352" x="-2.10808623536" y="0.33085625" z="-1.23587934152">
+        <neutronic p="177.872" r="4.72882" t="112.193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9353" x="-2.10808623536" y="0.36903828125" z="-1.23587934152">
+        <neutronic p="177.238" r="4.72891" t="112.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9354" x="-2.10808623536" y="0.4072203125" z="-1.23587934152">
+        <neutronic p="176.603" r="4.72897" t="112.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9355" x="-2.10808623536" y="0.44540234375" z="-1.23587934152">
+        <neutronic p="175.969" r="4.729" t="112.158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9356" x="-2.10808623536" y="0.483584375" z="-1.23587934152">
+        <neutronic p="175.336" r="4.72901" t="112.141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9357" x="-2.10808623536" y="0.52176640625" z="-1.23587934152">
+        <neutronic p="174.703" r="4.72898" t="112.122"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9358" x="-2.10808623536" y="0.5599484375" z="-1.23587934152">
+        <neutronic p="174.071" r="4.72893" t="112.1"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9359" x="-2.10808623536" y="0.59813046875" z="-1.23587934152">
+        <neutronic p="173.44" r="4.72885" t="112.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9360" x="-2.10808623536" y="0.6363125" z="-1.23587934152">
+        <neutronic p="172.811" r="4.72874" t="112.049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9361" x="-2.10808623536" y="0.67449453125" z="-1.23587934152">
+        <neutronic p="172.182" r="4.7286" t="112.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9362" x="-2.10808623536" y="0.7126765625" z="-1.23587934152">
+        <neutronic p="171.556" r="4.72843" t="111.99"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9363" x="-2.10808623536" y="0.75085859375" z="-1.23587934152">
+        <neutronic p="170.93" r="4.72824" t="111.956"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9364" x="-2.10808623536" y="0.789040625" z="-1.23587934152">
+        <neutronic p="170.307" r="4.72801" t="111.92"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9365" x="-2.10808623536" y="0.82722265625" z="-1.23587934152">
+        <neutronic p="169.685" r="4.72776" t="111.883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9366" x="-2.10808623536" y="0.8654046875" z="-1.23587934152">
+        <neutronic p="169.066" r="4.72748" t="111.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9367" x="-2.10808623536" y="0.90358671875" z="-1.23587934152">
+        <neutronic p="168.449" r="4.72717" t="111.8"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9368" x="-2.10808623536" y="0.94176875" z="-1.23587934152">
+        <neutronic p="167.834" r="4.72684" t="111.756"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9369" x="-2.10808623536" y="0.97995078125" z="-1.23587934152">
+        <neutronic p="167.222" r="4.72647" t="111.709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9370" x="-2.10808623536" y="1.0181328125" z="-1.23587934152">
+        <neutronic p="166.612" r="4.72608" t="111.66"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9371" x="-2.10808623536" y="1.05631484375" z="-1.23587934152">
+        <neutronic p="166.005" r="4.72566" t="111.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9372" x="-2.10808623536" y="1.094496875" z="-1.23587934152">
+        <neutronic p="165.4" r="4.72521" t="111.557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9373" x="-2.10808623536" y="1.13267890625" z="-1.23587934152">
+        <neutronic p="164.799" r="4.72474" t="111.502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9374" x="-2.10808623536" y="1.1708609375" z="-1.23587934152">
+        <neutronic p="164.201" r="4.72424" t="111.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9375" x="-2.10808623536" y="1.20904296875" z="-1.23587934152">
+        <neutronic p="163.606" r="4.72371" t="111.387"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9376" x="-2.10808623536" y="1.247225" z="-1.23587934152">
+        <neutronic p="163.014" r="4.72315" t="111.327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9377" x="-2.10808623536" y="1.28540703125" z="-1.23587934152">
+        <neutronic p="162.426" r="4.72257" t="111.265"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9378" x="-2.10808623536" y="1.3235890625" z="-1.23587934152">
+        <neutronic p="161.842" r="4.72196" t="111.202"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9379" x="-2.10808623536" y="1.36177109375" z="-1.23587934152">
+        <neutronic p="161.26" r="4.72133" t="111.136"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9380" x="-2.10808623536" y="1.399953125" z="-1.23587934152">
+        <neutronic p="160.683" r="4.72066" t="111.07"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9381" x="-2.10808623536" y="1.43813515625" z="-1.23587934152">
+        <neutronic p="160.109" r="4.71998" t="111.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9382" x="-2.10808623536" y="1.4763171875" z="-1.23587934152">
+        <neutronic p="159.54" r="4.71926" t="110.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9383" x="-2.10808623536" y="1.51449921875" z="-1.23587934152">
+        <neutronic p="158.974" r="4.71852" t="110.86"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9384" x="-2.10808623536" y="1.55268125" z="-1.23587934152">
+        <neutronic p="158.412" r="4.71776" t="110.787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9385" x="-2.10808623536" y="1.59086328125" z="-1.23587934152">
+        <neutronic p="157.854" r="4.71697" t="110.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9386" x="-2.10808623536" y="1.6290453125" z="-1.23587934152">
+        <neutronic p="157.301" r="4.71616" t="110.637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9387" x="-2.10808623536" y="1.66722734375" z="-1.23587934152">
+        <neutronic p="156.751" r="4.71532" t="110.561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9388" x="-2.10808623536" y="1.705409375" z="-1.23587934152">
+        <neutronic p="156.206" r="4.71445" t="110.483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9389" x="-2.10808623536" y="1.74359140625" z="-1.23587934152">
+        <neutronic p="155.665" r="4.71356" t="110.404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9390" x="-2.10808623536" y="1.7817734375" z="-1.23587934152">
+        <neutronic p="155.129" r="4.71265" t="110.324"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9391" x="-2.10808623536" y="1.81995546875" z="-1.23587934152">
+        <neutronic p="154.597" r="4.71172" t="110.242"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9392" x="-2.10808623536" y="1.8581375" z="-1.23587934152">
+        <neutronic p="154.069" r="4.71076" t="110.16"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9393" x="-2.10808623536" y="1.89631953125" z="-1.23587934152">
+        <neutronic p="153.546" r="4.70977" t="110.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9413" x="-2.16343195123" y="0.21631015625" z="-1.13621631519">
+        <neutronic p="179.78" r="4.72838" t="109.485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9414" x="-2.16343195123" y="0.2544921875" z="-1.13621631519">
+        <neutronic p="179.157" r="4.72855" t="109.484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9415" x="-2.16343195123" y="0.29267421875" z="-1.13621631519">
+        <neutronic p="178.534" r="4.7287" t="109.48"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9416" x="-2.16343195123" y="0.33085625" z="-1.13621631519">
+        <neutronic p="177.91" r="4.72882" t="109.473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9417" x="-2.16343195123" y="0.36903828125" z="-1.13621631519">
+        <neutronic p="177.287" r="4.72891" t="109.465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9418" x="-2.16343195123" y="0.4072203125" z="-1.13621631519">
+        <neutronic p="176.664" r="4.72897" t="109.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9419" x="-2.16343195123" y="0.44540234375" z="-1.13621631519">
+        <neutronic p="176.041" r="4.729" t="109.442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9420" x="-2.16343195123" y="0.483584375" z="-1.13621631519">
+        <neutronic p="175.419" r="4.72901" t="109.428"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9421" x="-2.16343195123" y="0.52176640625" z="-1.13621631519">
+        <neutronic p="174.798" r="4.72898" t="109.411"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9422" x="-2.16343195123" y="0.5599484375" z="-1.13621631519">
+        <neutronic p="174.177" r="4.72893" t="109.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9423" x="-2.16343195123" y="0.59813046875" z="-1.13621631519">
+        <neutronic p="173.557" r="4.72885" t="109.372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9424" x="-2.16343195123" y="0.6363125" z="-1.13621631519">
+        <neutronic p="172.938" r="4.72874" t="109.349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9425" x="-2.16343195123" y="0.67449453125" z="-1.13621631519">
+        <neutronic p="172.321" r="4.7286" t="109.324"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9426" x="-2.16343195123" y="0.7126765625" z="-1.13621631519">
+        <neutronic p="171.705" r="4.72843" t="109.297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9427" x="-2.16343195123" y="0.75085859375" z="-1.13621631519">
+        <neutronic p="171.09" r="4.72824" t="109.268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9428" x="-2.16343195123" y="0.789040625" z="-1.13621631519">
+        <neutronic p="170.478" r="4.72801" t="109.237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9429" x="-2.16343195123" y="0.82722265625" z="-1.13621631519">
+        <neutronic p="169.867" r="4.72776" t="109.204"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9430" x="-2.16343195123" y="0.8654046875" z="-1.13621631519">
+        <neutronic p="169.257" r="4.72748" t="109.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9431" x="-2.16343195123" y="0.90358671875" z="-1.13621631519">
+        <neutronic p="168.651" r="4.72717" t="109.132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9432" x="-2.16343195123" y="0.94176875" z="-1.13621631519">
+        <neutronic p="168.046" r="4.72684" t="109.094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9433" x="-2.16343195123" y="0.97995078125" z="-1.13621631519">
+        <neutronic p="167.443" r="4.72647" t="109.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9434" x="-2.16343195123" y="1.0181328125" z="-1.13621631519">
+        <neutronic p="166.843" r="4.72608" t="109.011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9435" x="-2.16343195123" y="1.05631484375" z="-1.13621631519">
+        <neutronic p="166.246" r="4.72566" t="108.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9436" x="-2.16343195123" y="1.094496875" z="-1.13621631519">
+        <neutronic p="165.651" r="4.72521" t="108.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9437" x="-2.16343195123" y="1.13267890625" z="-1.13621631519">
+        <neutronic p="165.059" r="4.72474" t="108.874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9438" x="-2.16343195123" y="1.1708609375" z="-1.13621631519">
+        <neutronic p="164.471" r="4.72424" t="108.825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9439" x="-2.16343195123" y="1.20904296875" z="-1.13621631519">
+        <neutronic p="163.885" r="4.72371" t="108.774"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9440" x="-2.16343195123" y="1.247225" z="-1.13621631519">
+        <neutronic p="163.302" r="4.72315" t="108.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9441" x="-2.16343195123" y="1.28540703125" z="-1.13621631519">
+        <neutronic p="162.722" r="4.72257" t="108.668"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9442" x="-2.16343195123" y="1.3235890625" z="-1.13621631519">
+        <neutronic p="162.146" r="4.72196" t="108.613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9443" x="-2.16343195123" y="1.36177109375" z="-1.13621631519">
+        <neutronic p="161.574" r="4.72133" t="108.556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9444" x="-2.16343195123" y="1.399953125" z="-1.13621631519">
+        <neutronic p="161.004" r="4.72066" t="108.498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9445" x="-2.16343195123" y="1.43813515625" z="-1.13621631519">
+        <neutronic p="160.439" r="4.71998" t="108.439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9446" x="-2.16343195123" y="1.4763171875" z="-1.13621631519">
+        <neutronic p="159.877" r="4.71926" t="108.378"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9447" x="-2.16343195123" y="1.51449921875" z="-1.13621631519">
+        <neutronic p="159.319" r="4.71852" t="108.316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9448" x="-2.16343195123" y="1.55268125" z="-1.13621631519">
+        <neutronic p="158.764" r="4.71776" t="108.253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9449" x="-2.16343195123" y="1.59086328125" z="-1.13621631519">
+        <neutronic p="158.214" r="4.71697" t="108.188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9450" x="-2.16343195123" y="1.6290453125" z="-1.13621631519">
+        <neutronic p="157.667" r="4.71616" t="108.123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9451" x="-2.16343195123" y="1.66722734375" z="-1.13621631519">
+        <neutronic p="157.125" r="4.71532" t="108.056"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9452" x="-2.16343195123" y="1.705409375" z="-1.13621631519">
+        <neutronic p="156.586" r="4.71445" t="107.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9453" x="-2.16343195123" y="1.74359140625" z="-1.13621631519">
+        <neutronic p="156.052" r="4.71356" t="107.92"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9454" x="-2.16343195123" y="1.7817734375" z="-1.13621631519">
+        <neutronic p="155.522" r="4.71265" t="107.85"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9455" x="-2.16343195123" y="1.81995546875" z="-1.13621631519">
+        <neutronic p="154.996" r="4.71172" t="107.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9456" x="-2.16343195123" y="1.8581375" z="-1.13621631519">
+        <neutronic p="154.474" r="4.71076" t="107.708"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9457" x="-2.16343195123" y="1.89631953125" z="-1.13621631519">
+        <neutronic p="153.957" r="4.70977" t="107.636"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9477" x="-2.21406929806" y="0.21631015625" z="-1.03408049294">
+        <neutronic p="179.783" r="4.72838" t="106.764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9478" x="-2.21406929806" y="0.2544921875" z="-1.03408049294">
+        <neutronic p="179.17" r="4.72855" t="106.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9479" x="-2.21406929806" y="0.29267421875" z="-1.03408049294">
+        <neutronic p="178.556" r="4.7287" t="106.759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9480" x="-2.21406929806" y="0.33085625" z="-1.03408049294">
+        <neutronic p="177.943" r="4.72882" t="106.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9481" x="-2.21406929806" y="0.36903828125" z="-1.03408049294">
+        <neutronic p="177.329" r="4.72891" t="106.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9482" x="-2.21406929806" y="0.4072203125" z="-1.03408049294">
+        <neutronic p="176.715" r="4.72897" t="106.738"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9483" x="-2.21406929806" y="0.44540234375" z="-1.03408049294">
+        <neutronic p="176.102" r="4.729" t="106.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9484" x="-2.21406929806" y="0.483584375" z="-1.03408049294">
+        <neutronic p="175.49" r="4.72901" t="106.715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9485" x="-2.21406929806" y="0.52176640625" z="-1.03408049294">
+        <neutronic p="174.877" r="4.72898" t="106.7"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9486" x="-2.21406929806" y="0.5599484375" z="-1.03408049294">
+        <neutronic p="174.266" r="4.72893" t="106.684"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9487" x="-2.21406929806" y="0.59813046875" z="-1.03408049294">
+        <neutronic p="173.656" r="4.72885" t="106.667"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9488" x="-2.21406929806" y="0.6363125" z="-1.03408049294">
+        <neutronic p="173.046" r="4.72874" t="106.647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9489" x="-2.21406929806" y="0.67449453125" z="-1.03408049294">
+        <neutronic p="172.438" r="4.7286" t="106.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9490" x="-2.21406929806" y="0.7126765625" z="-1.03408049294">
+        <neutronic p="171.831" r="4.72843" t="106.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9491" x="-2.21406929806" y="0.75085859375" z="-1.03408049294">
+        <neutronic p="171.226" r="4.72824" t="106.578"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9492" x="-2.21406929806" y="0.789040625" z="-1.03408049294">
+        <neutronic p="170.622" r="4.72801" t="106.552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9493" x="-2.21406929806" y="0.82722265625" z="-1.03408049294">
+        <neutronic p="170.02" r="4.72776" t="106.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9494" x="-2.21406929806" y="0.8654046875" z="-1.03408049294">
+        <neutronic p="169.42" r="4.72748" t="106.494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9495" x="-2.21406929806" y="0.90358671875" z="-1.03408049294">
+        <neutronic p="168.821" r="4.72717" t="106.463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9496" x="-2.21406929806" y="0.94176875" z="-1.03408049294">
+        <neutronic p="168.225" r="4.72684" t="106.43"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9497" x="-2.21406929806" y="0.97995078125" z="-1.03408049294">
+        <neutronic p="167.631" r="4.72647" t="106.396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9498" x="-2.21406929806" y="1.0181328125" z="-1.03408049294">
+        <neutronic p="167.039" r="4.72608" t="106.36"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9499" x="-2.21406929806" y="1.05631484375" z="-1.03408049294">
+        <neutronic p="166.45" r="4.72566" t="106.322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9500" x="-2.21406929806" y="1.094496875" z="-1.03408049294">
+        <neutronic p="165.864" r="4.72521" t="106.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9501" x="-2.21406929806" y="1.13267890625" z="-1.03408049294">
+        <neutronic p="165.28" r="4.72474" t="106.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9502" x="-2.21406929806" y="1.1708609375" z="-1.03408049294">
+        <neutronic p="164.699" r="4.72424" t="106.201"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9503" x="-2.21406929806" y="1.20904296875" z="-1.03408049294">
+        <neutronic p="164.121" r="4.72371" t="106.158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9504" x="-2.21406929806" y="1.247225" z="-1.03408049294">
+        <neutronic p="163.546" r="4.72315" t="106.113"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9505" x="-2.21406929806" y="1.28540703125" z="-1.03408049294">
+        <neutronic p="162.974" r="4.72257" t="106.068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9506" x="-2.21406929806" y="1.3235890625" z="-1.03408049294">
+        <neutronic p="162.405" r="4.72196" t="106.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9507" x="-2.21406929806" y="1.36177109375" z="-1.03408049294">
+        <neutronic p="161.839" r="4.72133" t="105.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9508" x="-2.21406929806" y="1.399953125" z="-1.03408049294">
+        <neutronic p="161.277" r="4.72066" t="105.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9509" x="-2.21406929806" y="1.43813515625" z="-1.03408049294">
+        <neutronic p="160.718" r="4.71998" t="105.872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9510" x="-2.21406929806" y="1.4763171875" z="-1.03408049294">
+        <neutronic p="160.163" r="4.71926" t="105.82"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9511" x="-2.21406929806" y="1.51449921875" z="-1.03408049294">
+        <neutronic p="159.611" r="4.71852" t="105.767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9512" x="-2.21406929806" y="1.55268125" z="-1.03408049294">
+        <neutronic p="159.063" r="4.71776" t="105.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9513" x="-2.21406929806" y="1.59086328125" z="-1.03408049294">
+        <neutronic p="158.519" r="4.71697" t="105.658"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9514" x="-2.21406929806" y="1.6290453125" z="-1.03408049294">
+        <neutronic p="157.979" r="4.71616" t="105.602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9515" x="-2.21406929806" y="1.66722734375" z="-1.03408049294">
+        <neutronic p="157.442" r="4.71532" t="105.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9516" x="-2.21406929806" y="1.705409375" z="-1.03408049294">
+        <neutronic p="156.91" r="4.71445" t="105.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9517" x="-2.21406929806" y="1.74359140625" z="-1.03408049294">
+        <neutronic p="156.381" r="4.71356" t="105.429"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9518" x="-2.21406929806" y="1.7817734375" z="-1.03408049294">
+        <neutronic p="155.856" r="4.71265" t="105.37"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9519" x="-2.21406929806" y="1.81995546875" z="-1.03408049294">
+        <neutronic p="155.336" r="4.71172" t="105.309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9520" x="-2.21406929806" y="1.8581375" z="-1.03408049294">
+        <neutronic p="154.819" r="4.71076" t="105.248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9521" x="-2.21406929806" y="1.89631953125" z="-1.03408049294">
+        <neutronic p="154.307" r="4.70977" t="105.187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9541" x="-2.25988807165" y="0.21631015625" z="-0.929694157301">
+        <neutronic p="179.786" r="4.72838" t="104.042"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9542" x="-2.25988807165" y="0.2544921875" z="-0.929694157301">
+        <neutronic p="179.181" r="4.72855" t="104.04"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9543" x="-2.25988807165" y="0.29267421875" z="-0.929694157301">
+        <neutronic p="178.575" r="4.7287" t="104.038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9544" x="-2.25988807165" y="0.33085625" z="-0.929694157301">
+        <neutronic p="177.969" r="4.72882" t="104.033"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9545" x="-2.25988807165" y="0.36903828125" z="-0.929694157301">
+        <neutronic p="177.364" r="4.72891" t="104.028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9546" x="-2.25988807165" y="0.4072203125" z="-0.929694157301">
+        <neutronic p="176.758" r="4.72897" t="104.02"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9547" x="-2.25988807165" y="0.44540234375" z="-0.929694157301">
+        <neutronic p="176.153" r="4.729" t="104.011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9548" x="-2.25988807165" y="0.483584375" z="-0.929694157301">
+        <neutronic p="175.548" r="4.72901" t="104.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9549" x="-2.25988807165" y="0.52176640625" z="-0.929694157301">
+        <neutronic p="174.944" r="4.72898" t="103.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9550" x="-2.25988807165" y="0.5599484375" z="-0.929694157301">
+        <neutronic p="174.34" r="4.72893" t="103.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9551" x="-2.25988807165" y="0.59813046875" z="-0.929694157301">
+        <neutronic p="173.738" r="4.72885" t="103.961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9552" x="-2.25988807165" y="0.6363125" z="-0.929694157301">
+        <neutronic p="173.136" r="4.72874" t="103.945"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9553" x="-2.25988807165" y="0.67449453125" z="-0.929694157301">
+        <neutronic p="172.535" r="4.7286" t="103.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9554" x="-2.25988807165" y="0.7126765625" z="-0.929694157301">
+        <neutronic p="171.936" r="4.72843" t="103.908"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9555" x="-2.25988807165" y="0.75085859375" z="-0.929694157301">
+        <neutronic p="171.338" r="4.72824" t="103.888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9556" x="-2.25988807165" y="0.789040625" z="-0.929694157301">
+        <neutronic p="170.742" r="4.72801" t="103.866"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9557" x="-2.25988807165" y="0.82722265625" z="-0.929694157301">
+        <neutronic p="170.147" r="4.72776" t="103.843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9558" x="-2.25988807165" y="0.8654046875" z="-0.929694157301">
+        <neutronic p="169.554" r="4.72748" t="103.818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9559" x="-2.25988807165" y="0.90358671875" z="-0.929694157301">
+        <neutronic p="168.963" r="4.72717" t="103.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9560" x="-2.25988807165" y="0.94176875" z="-0.929694157301">
+        <neutronic p="168.374" r="4.72684" t="103.765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9561" x="-2.25988807165" y="0.97995078125" z="-0.929694157301">
+        <neutronic p="167.787" r="4.72647" t="103.736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9562" x="-2.25988807165" y="1.0181328125" z="-0.929694157301">
+        <neutronic p="167.202" r="4.72608" t="103.706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9563" x="-2.25988807165" y="1.05631484375" z="-0.929694157301">
+        <neutronic p="166.62" r="4.72566" t="103.675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9564" x="-2.25988807165" y="1.094496875" z="-0.929694157301">
+        <neutronic p="166.04" r="4.72521" t="103.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9565" x="-2.25988807165" y="1.13267890625" z="-0.929694157301">
+        <neutronic p="165.463" r="4.72474" t="103.609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9566" x="-2.25988807165" y="1.1708609375" z="-0.929694157301">
+        <neutronic p="164.889" r="4.72424" t="103.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9567" x="-2.25988807165" y="1.20904296875" z="-0.929694157301">
+        <neutronic p="164.317" r="4.72371" t="103.539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9568" x="-2.25988807165" y="1.247225" z="-0.929694157301">
+        <neutronic p="163.748" r="4.72315" t="103.502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9569" x="-2.25988807165" y="1.28540703125" z="-0.929694157301">
+        <neutronic p="163.182" r="4.72257" t="103.464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9570" x="-2.25988807165" y="1.3235890625" z="-0.929694157301">
+        <neutronic p="162.62" r="4.72196" t="103.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9571" x="-2.25988807165" y="1.36177109375" z="-0.929694157301">
+        <neutronic p="162.06" r="4.72133" t="103.384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9572" x="-2.25988807165" y="1.399953125" z="-0.929694157301">
+        <neutronic p="161.504" r="4.72066" t="103.343"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9573" x="-2.25988807165" y="1.43813515625" z="-0.929694157301">
+        <neutronic p="160.951" r="4.71998" t="103.301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9574" x="-2.25988807165" y="1.4763171875" z="-0.929694157301">
+        <neutronic p="160.401" r="4.71926" t="103.258"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9575" x="-2.25988807165" y="1.51449921875" z="-0.929694157301">
+        <neutronic p="159.855" r="4.71852" t="103.214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9576" x="-2.25988807165" y="1.55268125" z="-0.929694157301">
+        <neutronic p="159.312" r="4.71776" t="103.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9577" x="-2.25988807165" y="1.59086328125" z="-0.929694157301">
+        <neutronic p="158.773" r="4.71697" t="103.123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9578" x="-2.25988807165" y="1.6290453125" z="-0.929694157301">
+        <neutronic p="158.238" r="4.71616" t="103.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9579" x="-2.25988807165" y="1.66722734375" z="-0.929694157301">
+        <neutronic p="157.707" r="4.71532" t="103.029"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9580" x="-2.25988807165" y="1.705409375" z="-0.929694157301">
+        <neutronic p="157.179" r="4.71445" t="102.981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9581" x="-2.25988807165" y="1.74359140625" z="-0.929694157301">
+        <neutronic p="156.655" r="4.71356" t="102.933"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9582" x="-2.25988807165" y="1.7817734375" z="-0.929694157301">
+        <neutronic p="156.135" r="4.71265" t="102.883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9583" x="-2.25988807165" y="1.81995546875" z="-0.929694157301">
+        <neutronic p="155.619" r="4.71172" t="102.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9584" x="-2.25988807165" y="1.8581375" z="-0.929694157301">
+        <neutronic p="155.107" r="4.71076" t="102.782"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9585" x="-2.25988807165" y="1.89631953125" z="-0.929694157301">
+        <neutronic p="154.599" r="4.70977" t="102.731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9605" x="-2.30078855464" y="0.21631015625" z="-0.823284488697">
+        <neutronic p="179.788" r="4.72838" t="101.32"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9606" x="-2.30078855464" y="0.2544921875" z="-0.823284488697">
+        <neutronic p="179.189" r="4.72855" t="101.319"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9607" x="-2.30078855464" y="0.29267421875" z="-0.823284488697">
+        <neutronic p="178.59" r="4.7287" t="101.317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9608" x="-2.30078855464" y="0.33085625" z="-0.823284488697">
+        <neutronic p="177.991" r="4.72882" t="101.313"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9609" x="-2.30078855464" y="0.36903828125" z="-0.823284488697">
+        <neutronic p="177.392" r="4.72891" t="101.309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9610" x="-2.30078855464" y="0.4072203125" z="-0.823284488697">
+        <neutronic p="176.792" r="4.72897" t="101.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9611" x="-2.30078855464" y="0.44540234375" z="-0.823284488697">
+        <neutronic p="176.194" r="4.729" t="101.296"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9612" x="-2.30078855464" y="0.483584375" z="-0.823284488697">
+        <neutronic p="175.595" r="4.72901" t="101.287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9613" x="-2.30078855464" y="0.52176640625" z="-0.823284488697">
+        <neutronic p="174.997" r="4.72898" t="101.278"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9614" x="-2.30078855464" y="0.5599484375" z="-0.823284488697">
+        <neutronic p="174.4" r="4.72893" t="101.267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9615" x="-2.30078855464" y="0.59813046875" z="-0.823284488697">
+        <neutronic p="173.804" r="4.72885" t="101.256"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9616" x="-2.30078855464" y="0.6363125" z="-0.823284488697">
+        <neutronic p="173.208" r="4.72874" t="101.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9617" x="-2.30078855464" y="0.67449453125" z="-0.823284488697">
+        <neutronic p="172.614" r="4.7286" t="101.228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9618" x="-2.30078855464" y="0.7126765625" z="-0.823284488697">
+        <neutronic p="172.021" r="4.72843" t="101.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9619" x="-2.30078855464" y="0.75085859375" z="-0.823284488697">
+        <neutronic p="171.429" r="4.72824" t="101.197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9620" x="-2.30078855464" y="0.789040625" z="-0.823284488697">
+        <neutronic p="170.839" r="4.72801" t="101.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9621" x="-2.30078855464" y="0.82722265625" z="-0.823284488697">
+        <neutronic p="170.25" r="4.72776" t="101.161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9622" x="-2.30078855464" y="0.8654046875" z="-0.823284488697">
+        <neutronic p="169.663" r="4.72748" t="101.141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9623" x="-2.30078855464" y="0.90358671875" z="-0.823284488697">
+        <neutronic p="169.078" r="4.72717" t="101.12"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9624" x="-2.30078855464" y="0.94176875" z="-0.823284488697">
+        <neutronic p="168.494" r="4.72684" t="101.098"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9625" x="-2.30078855464" y="0.97995078125" z="-0.823284488697">
+        <neutronic p="167.913" r="4.72647" t="101.075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9626" x="-2.30078855464" y="1.0181328125" z="-0.823284488697">
+        <neutronic p="167.334" r="4.72608" t="101.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9627" x="-2.30078855464" y="1.05631484375" z="-0.823284488697">
+        <neutronic p="166.757" r="4.72566" t="101.026"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9628" x="-2.30078855464" y="1.094496875" z="-0.823284488697">
+        <neutronic p="166.183" r="4.72521" t="101.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9629" x="-2.30078855464" y="1.13267890625" z="-0.823284488697">
+        <neutronic p="165.611" r="4.72474" t="100.974"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9630" x="-2.30078855464" y="1.1708609375" z="-0.823284488697">
+        <neutronic p="165.042" r="4.72424" t="100.946"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9631" x="-2.30078855464" y="1.20904296875" z="-0.823284488697">
+        <neutronic p="164.476" r="4.72371" t="100.917"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9632" x="-2.30078855464" y="1.247225" z="-0.823284488697">
+        <neutronic p="163.912" r="4.72315" t="100.887"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9633" x="-2.30078855464" y="1.28540703125" z="-0.823284488697">
+        <neutronic p="163.351" r="4.72257" t="100.857"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9634" x="-2.30078855464" y="1.3235890625" z="-0.823284488697">
+        <neutronic p="162.793" r="4.72196" t="100.826"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9635" x="-2.30078855464" y="1.36177109375" z="-0.823284488697">
+        <neutronic p="162.239" r="4.72133" t="100.793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9636" x="-2.30078855464" y="1.399953125" z="-0.823284488697">
+        <neutronic p="161.687" r="4.72066" t="100.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9637" x="-2.30078855464" y="1.43813515625" z="-0.823284488697">
+        <neutronic p="161.139" r="4.71998" t="100.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9638" x="-2.30078855464" y="1.4763171875" z="-0.823284488697">
+        <neutronic p="160.594" r="4.71926" t="100.692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9639" x="-2.30078855464" y="1.51449921875" z="-0.823284488697">
+        <neutronic p="160.052" r="4.71852" t="100.657"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9640" x="-2.30078855464" y="1.55268125" z="-0.823284488697">
+        <neutronic p="159.514" r="4.71776" t="100.621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9641" x="-2.30078855464" y="1.59086328125" z="-0.823284488697">
+        <neutronic p="158.979" r="4.71697" t="100.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9642" x="-2.30078855464" y="1.6290453125" z="-0.823284488697">
+        <neutronic p="158.448" r="4.71616" t="100.547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9643" x="-2.30078855464" y="1.66722734375" z="-0.823284488697">
+        <neutronic p="157.921" r="4.71532" t="100.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9644" x="-2.30078855464" y="1.705409375" z="-0.823284488697">
+        <neutronic p="157.397" r="4.71445" t="100.471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9645" x="-2.30078855464" y="1.74359140625" z="-0.823284488697">
+        <neutronic p="156.877" r="4.71356" t="100.431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9646" x="-2.30078855464" y="1.7817734375" z="-0.823284488697">
+        <neutronic p="156.361" r="4.71265" t="100.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9647" x="-2.30078855464" y="1.81995546875" z="-0.823284488697">
+        <neutronic p="155.848" r="4.71172" t="100.352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9648" x="-2.30078855464" y="1.8581375" z="-0.823284488697">
+        <neutronic p="155.34" r="4.71076" t="100.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9649" x="-2.30078855464" y="1.89631953125" z="-0.823284488697">
+        <neutronic p="154.835" r="4.70977" t="100.27"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9669" x="-2.33668173358" y="0.21631015625" z="-0.71508307102">
+        <neutronic p="179.79" r="4.72838" t="98.5981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9670" x="-2.33668173358" y="0.2544921875" z="-0.71508307102">
+        <neutronic p="179.196" r="4.72855" t="98.5973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9671" x="-2.33668173358" y="0.29267421875" z="-0.71508307102">
+        <neutronic p="178.602" r="4.7287" t="98.5957"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9672" x="-2.33668173358" y="0.33085625" z="-0.71508307102">
+        <neutronic p="178.008" r="4.72882" t="98.5931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9673" x="-2.33668173358" y="0.36903828125" z="-0.71508307102">
+        <neutronic p="177.413" r="4.72891" t="98.5896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9674" x="-2.33668173358" y="0.4072203125" z="-0.71508307102">
+        <neutronic p="176.819" r="4.72897" t="98.5851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9675" x="-2.33668173358" y="0.44540234375" z="-0.71508307102">
+        <neutronic p="176.225" r="4.729" t="98.5798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9676" x="-2.33668173358" y="0.483584375" z="-0.71508307102">
+        <neutronic p="175.632" r="4.72901" t="98.5736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9677" x="-2.33668173358" y="0.52176640625" z="-0.71508307102">
+        <neutronic p="175.039" r="4.72898" t="98.5664"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9678" x="-2.33668173358" y="0.5599484375" z="-0.71508307102">
+        <neutronic p="174.446" r="4.72893" t="98.5584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9679" x="-2.33668173358" y="0.59813046875" z="-0.71508307102">
+        <neutronic p="173.855" r="4.72885" t="98.5495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9680" x="-2.33668173358" y="0.6363125" z="-0.71508307102">
+        <neutronic p="173.264" r="4.72874" t="98.5397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9681" x="-2.33668173358" y="0.67449453125" z="-0.71508307102">
+        <neutronic p="172.674" r="4.7286" t="98.529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9682" x="-2.33668173358" y="0.7126765625" z="-0.71508307102">
+        <neutronic p="172.086" r="4.72843" t="98.5175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9683" x="-2.33668173358" y="0.75085859375" z="-0.71508307102">
+        <neutronic p="171.499" r="4.72824" t="98.5051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9684" x="-2.33668173358" y="0.789040625" z="-0.71508307102">
+        <neutronic p="170.913" r="4.72801" t="98.4919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9685" x="-2.33668173358" y="0.82722265625" z="-0.71508307102">
+        <neutronic p="170.329" r="4.72776" t="98.4778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9686" x="-2.33668173358" y="0.8654046875" z="-0.71508307102">
+        <neutronic p="169.747" r="4.72748" t="98.4629"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9687" x="-2.33668173358" y="0.90358671875" z="-0.71508307102">
+        <neutronic p="169.166" r="4.72717" t="98.4472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9688" x="-2.33668173358" y="0.94176875" z="-0.71508307102">
+        <neutronic p="168.587" r="4.72684" t="98.4306"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9689" x="-2.33668173358" y="0.97995078125" z="-0.71508307102">
+        <neutronic p="168.011" r="4.72647" t="98.4133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9690" x="-2.33668173358" y="1.0181328125" z="-0.71508307102">
+        <neutronic p="167.436" r="4.72608" t="98.3953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9691" x="-2.33668173358" y="1.05631484375" z="-0.71508307102">
+        <neutronic p="166.864" r="4.72566" t="98.3764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9692" x="-2.33668173358" y="1.094496875" z="-0.71508307102">
+        <neutronic p="166.294" r="4.72521" t="98.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9693" x="-2.33668173358" y="1.13267890625" z="-0.71508307102">
+        <neutronic p="165.726" r="4.72474" t="98.3365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9694" x="-2.33668173358" y="1.1708609375" z="-0.71508307102">
+        <neutronic p="165.161" r="4.72424" t="98.3155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9695" x="-2.33668173358" y="1.20904296875" z="-0.71508307102">
+        <neutronic p="164.599" r="4.72371" t="98.2938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9696" x="-2.33668173358" y="1.247225" z="-0.71508307102">
+        <neutronic p="164.039" r="4.72315" t="98.2714"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9697" x="-2.33668173358" y="1.28540703125" z="-0.71508307102">
+        <neutronic p="163.482" r="4.72257" t="98.2483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9698" x="-2.33668173358" y="1.3235890625" z="-0.71508307102">
+        <neutronic p="162.928" r="4.72196" t="98.2246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9699" x="-2.33668173358" y="1.36177109375" z="-0.71508307102">
+        <neutronic p="162.377" r="4.72133" t="98.2003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9700" x="-2.33668173358" y="1.399953125" z="-0.71508307102">
+        <neutronic p="161.829" r="4.72066" t="98.1754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9701" x="-2.33668173358" y="1.43813515625" z="-0.71508307102">
+        <neutronic p="161.285" r="4.71998" t="98.1498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9702" x="-2.33668173358" y="1.4763171875" z="-0.71508307102">
+        <neutronic p="160.743" r="4.71926" t="98.1237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9703" x="-2.33668173358" y="1.51449921875" z="-0.71508307102">
+        <neutronic p="160.205" r="4.71852" t="98.0971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9704" x="-2.33668173358" y="1.55268125" z="-0.71508307102">
+        <neutronic p="159.67" r="4.71776" t="98.0699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9705" x="-2.33668173358" y="1.59086328125" z="-0.71508307102">
+        <neutronic p="159.139" r="4.71697" t="98.0422"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9706" x="-2.33668173358" y="1.6290453125" z="-0.71508307102">
+        <neutronic p="158.611" r="4.71616" t="98.014"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9707" x="-2.33668173358" y="1.66722734375" z="-0.71508307102">
+        <neutronic p="158.087" r="4.71532" t="97.9853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9708" x="-2.33668173358" y="1.705409375" z="-0.71508307102">
+        <neutronic p="157.566" r="4.71445" t="97.9561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9709" x="-2.33668173358" y="1.74359140625" z="-0.71508307102">
+        <neutronic p="157.049" r="4.71356" t="97.9266"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9710" x="-2.33668173358" y="1.7817734375" z="-0.71508307102">
+        <neutronic p="156.536" r="4.71265" t="97.8966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9711" x="-2.33668173358" y="1.81995546875" z="-0.71508307102">
+        <neutronic p="156.026" r="4.71172" t="97.8662"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9712" x="-2.33668173358" y="1.8581375" z="-0.71508307102">
+        <neutronic p="155.521" r="4.71076" t="97.8354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9713" x="-2.33668173358" y="1.89631953125" z="-0.71508307102">
+        <neutronic p="155.019" r="4.70977" t="97.8042"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9733" x="-2.36748949261" y="0.21631015625" z="-0.605325387621">
+        <neutronic p="179.791" r="4.72838" t="95.8763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9734" x="-2.36748949261" y="0.2544921875" z="-0.605325387621">
+        <neutronic p="179.201" r="4.72855" t="95.8758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9735" x="-2.36748949261" y="0.29267421875" z="-0.605325387621">
+        <neutronic p="178.61" r="4.7287" t="95.8746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9736" x="-2.36748949261" y="0.33085625" z="-0.605325387621">
+        <neutronic p="178.02" r="4.72882" t="95.8729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9737" x="-2.36748949261" y="0.36903828125" z="-0.605325387621">
+        <neutronic p="177.429" r="4.72891" t="95.8705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9738" x="-2.36748949261" y="0.4072203125" z="-0.605325387621">
+        <neutronic p="176.838" r="4.72897" t="95.8675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9739" x="-2.36748949261" y="0.44540234375" z="-0.605325387621">
+        <neutronic p="176.248" r="4.729" t="95.8639"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9740" x="-2.36748949261" y="0.483584375" z="-0.605325387621">
+        <neutronic p="175.658" r="4.72901" t="95.8596"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9741" x="-2.36748949261" y="0.52176640625" z="-0.605325387621">
+        <neutronic p="175.068" r="4.72898" t="95.8548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9742" x="-2.36748949261" y="0.5599484375" z="-0.605325387621">
+        <neutronic p="174.479" r="4.72893" t="95.8493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9743" x="-2.36748949261" y="0.59813046875" z="-0.605325387621">
+        <neutronic p="173.891" r="4.72885" t="95.8432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9744" x="-2.36748949261" y="0.6363125" z="-0.605325387621">
+        <neutronic p="173.304" r="4.72874" t="95.8366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9745" x="-2.36748949261" y="0.67449453125" z="-0.605325387621">
+        <neutronic p="172.718" r="4.7286" t="95.8293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9746" x="-2.36748949261" y="0.7126765625" z="-0.605325387621">
+        <neutronic p="172.133" r="4.72843" t="95.8214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9747" x="-2.36748949261" y="0.75085859375" z="-0.605325387621">
+        <neutronic p="171.549" r="4.72824" t="95.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9748" x="-2.36748949261" y="0.789040625" z="-0.605325387621">
+        <neutronic p="170.967" r="4.72801" t="95.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9749" x="-2.36748949261" y="0.82722265625" z="-0.605325387621">
+        <neutronic p="170.386" r="4.72776" t="95.7944"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9750" x="-2.36748949261" y="0.8654046875" z="-0.605325387621">
+        <neutronic p="169.807" r="4.72748" t="95.7843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9751" x="-2.36748949261" y="0.90358671875" z="-0.605325387621">
+        <neutronic p="169.23" r="4.72717" t="95.7736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9752" x="-2.36748949261" y="0.94176875" z="-0.605325387621">
+        <neutronic p="168.654" r="4.72684" t="95.7623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9753" x="-2.36748949261" y="0.97995078125" z="-0.605325387621">
+        <neutronic p="168.081" r="4.72647" t="95.7505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9754" x="-2.36748949261" y="1.0181328125" z="-0.605325387621">
+        <neutronic p="167.509" r="4.72608" t="95.7382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9755" x="-2.36748949261" y="1.05631484375" z="-0.605325387621">
+        <neutronic p="166.94" r="4.72566" t="95.7254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9756" x="-2.36748949261" y="1.094496875" z="-0.605325387621">
+        <neutronic p="166.373" r="4.72521" t="95.7121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9757" x="-2.36748949261" y="1.13267890625" z="-0.605325387621">
+        <neutronic p="165.808" r="4.72474" t="95.6982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9758" x="-2.36748949261" y="1.1708609375" z="-0.605325387621">
+        <neutronic p="165.246" r="4.72424" t="95.6839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9759" x="-2.36748949261" y="1.20904296875" z="-0.605325387621">
+        <neutronic p="164.687" r="4.72371" t="95.6691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9760" x="-2.36748949261" y="1.247225" z="-0.605325387621">
+        <neutronic p="164.13" r="4.72315" t="95.6539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9761" x="-2.36748949261" y="1.28540703125" z="-0.605325387621">
+        <neutronic p="163.576" r="4.72257" t="95.6382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9762" x="-2.36748949261" y="1.3235890625" z="-0.605325387621">
+        <neutronic p="163.025" r="4.72196" t="95.622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9763" x="-2.36748949261" y="1.36177109375" z="-0.605325387621">
+        <neutronic p="162.477" r="4.72133" t="95.6054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9764" x="-2.36748949261" y="1.399953125" z="-0.605325387621">
+        <neutronic p="161.932" r="4.72066" t="95.5885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9765" x="-2.36748949261" y="1.43813515625" z="-0.605325387621">
+        <neutronic p="161.389" r="4.71998" t="95.5711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9766" x="-2.36748949261" y="1.4763171875" z="-0.605325387621">
+        <neutronic p="160.851" r="4.71926" t="95.5533"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9767" x="-2.36748949261" y="1.51449921875" z="-0.605325387621">
+        <neutronic p="160.315" r="4.71852" t="95.5351"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9768" x="-2.36748949261" y="1.55268125" z="-0.605325387621">
+        <neutronic p="159.783" r="4.71776" t="95.5166"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9769" x="-2.36748949261" y="1.59086328125" z="-0.605325387621">
+        <neutronic p="159.254" r="4.71697" t="95.4977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9770" x="-2.36748949261" y="1.6290453125" z="-0.605325387621">
+        <neutronic p="158.728" r="4.71616" t="95.4785"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9771" x="-2.36748949261" y="1.66722734375" z="-0.605325387621">
+        <neutronic p="158.206" r="4.71532" t="95.459"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9772" x="-2.36748949261" y="1.705409375" z="-0.605325387621">
+        <neutronic p="157.688" r="4.71445" t="95.4391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9773" x="-2.36748949261" y="1.74359140625" z="-0.605325387621">
+        <neutronic p="157.173" r="4.71356" t="95.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9774" x="-2.36748949261" y="1.7817734375" z="-0.605325387621">
+        <neutronic p="156.662" r="4.71265" t="95.3985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9775" x="-2.36748949261" y="1.81995546875" z="-0.605325387621">
+        <neutronic p="156.155" r="4.71172" t="95.3778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9776" x="-2.36748949261" y="1.8581375" z="-0.605325387621">
+        <neutronic p="155.651" r="4.71076" t="95.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9777" x="-2.36748949261" y="1.89631953125" z="-0.605325387621">
+        <neutronic p="155.151" r="4.70977" t="95.3356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9797" x="-2.39314478349" y="0.21631015625" z="-0.494250308817">
+        <neutronic p="179.792" r="4.72838" t="93.1545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9798" x="-2.39314478349" y="0.2544921875" z="-0.494250308817">
+        <neutronic p="179.204" r="4.72855" t="93.1542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9799" x="-2.39314478349" y="0.29267421875" z="-0.494250308817">
+        <neutronic p="178.616" r="4.7287" t="93.1536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9800" x="-2.39314478349" y="0.33085625" z="-0.494250308817">
+        <neutronic p="178.027" r="4.72882" t="93.1527"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9801" x="-2.39314478349" y="0.36903828125" z="-0.494250308817">
+        <neutronic p="177.438" r="4.72891" t="93.1514"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9802" x="-2.39314478349" y="0.4072203125" z="-0.494250308817">
+        <neutronic p="176.85" r="4.72897" t="93.1498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9803" x="-2.39314478349" y="0.44540234375" z="-0.494250308817">
+        <neutronic p="176.262" r="4.729" t="93.1479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9804" x="-2.39314478349" y="0.483584375" z="-0.494250308817">
+        <neutronic p="175.674" r="4.72901" t="93.1456"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9805" x="-2.39314478349" y="0.52176640625" z="-0.494250308817">
+        <neutronic p="175.087" r="4.72898" t="93.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9806" x="-2.39314478349" y="0.5599484375" z="-0.494250308817">
+        <neutronic p="174.5" r="4.72893" t="93.1401"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9807" x="-2.39314478349" y="0.59813046875" z="-0.494250308817">
+        <neutronic p="173.914" r="4.72885" t="93.1368"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9808" x="-2.39314478349" y="0.6363125" z="-0.494250308817">
+        <neutronic p="173.329" r="4.72874" t="93.1332"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9809" x="-2.39314478349" y="0.67449453125" z="-0.494250308817">
+        <neutronic p="172.745" r="4.7286" t="93.1293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9810" x="-2.39314478349" y="0.7126765625" z="-0.494250308817">
+        <neutronic p="172.162" r="4.72843" t="93.1251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9811" x="-2.39314478349" y="0.75085859375" z="-0.494250308817">
+        <neutronic p="171.581" r="4.72824" t="93.1206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9812" x="-2.39314478349" y="0.789040625" z="-0.494250308817">
+        <neutronic p="171.0" r="4.72801" t="93.1158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9813" x="-2.39314478349" y="0.82722265625" z="-0.494250308817">
+        <neutronic p="170.422" r="4.72776" t="93.1107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9814" x="-2.39314478349" y="0.8654046875" z="-0.494250308817">
+        <neutronic p="169.845" r="4.72748" t="93.1052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9815" x="-2.39314478349" y="0.90358671875" z="-0.494250308817">
+        <neutronic p="169.269" r="4.72717" t="93.0995"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9816" x="-2.39314478349" y="0.94176875" z="-0.494250308817">
+        <neutronic p="168.696" r="4.72684" t="93.0935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9817" x="-2.39314478349" y="0.97995078125" z="-0.494250308817">
+        <neutronic p="168.124" r="4.72647" t="93.0872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9818" x="-2.39314478349" y="1.0181328125" z="-0.494250308817">
+        <neutronic p="167.555" r="4.72608" t="93.0806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9819" x="-2.39314478349" y="1.05631484375" z="-0.494250308817">
+        <neutronic p="166.987" r="4.72566" t="93.0737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9820" x="-2.39314478349" y="1.094496875" z="-0.494250308817">
+        <neutronic p="166.422" r="4.72521" t="93.0666"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9821" x="-2.39314478349" y="1.13267890625" z="-0.494250308817">
+        <neutronic p="165.859" r="4.72474" t="93.0591"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9822" x="-2.39314478349" y="1.1708609375" z="-0.494250308817">
+        <neutronic p="165.299" r="4.72424" t="93.0515"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9823" x="-2.39314478349" y="1.20904296875" z="-0.494250308817">
+        <neutronic p="164.742" r="4.72371" t="93.0436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9824" x="-2.39314478349" y="1.247225" z="-0.494250308817">
+        <neutronic p="164.187" r="4.72315" t="93.0354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9825" x="-2.39314478349" y="1.28540703125" z="-0.494250308817">
+        <neutronic p="163.634" r="4.72257" t="93.027"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9826" x="-2.39314478349" y="1.3235890625" z="-0.494250308817">
+        <neutronic p="163.085" r="4.72196" t="93.0183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9827" x="-2.39314478349" y="1.36177109375" z="-0.494250308817">
+        <neutronic p="162.538" r="4.72133" t="93.0095"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9828" x="-2.39314478349" y="1.399953125" z="-0.494250308817">
+        <neutronic p="161.995" r="4.72066" t="93.0004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9829" x="-2.39314478349" y="1.43813515625" z="-0.494250308817">
+        <neutronic p="161.454" r="4.71998" t="92.991"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9830" x="-2.39314478349" y="1.4763171875" z="-0.494250308817">
+        <neutronic p="160.917" r="4.71926" t="92.9815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9831" x="-2.39314478349" y="1.51449921875" z="-0.494250308817">
+        <neutronic p="160.383" r="4.71852" t="92.9718"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9832" x="-2.39314478349" y="1.55268125" z="-0.494250308817">
+        <neutronic p="159.852" r="4.71776" t="92.9619"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9833" x="-2.39314478349" y="1.59086328125" z="-0.494250308817">
+        <neutronic p="159.325" r="4.71697" t="92.9518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9834" x="-2.39314478349" y="1.6290453125" z="-0.494250308817">
+        <neutronic p="158.801" r="4.71616" t="92.9415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9835" x="-2.39314478349" y="1.66722734375" z="-0.494250308817">
+        <neutronic p="158.28" r="4.71532" t="92.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9836" x="-2.39314478349" y="1.705409375" z="-0.494250308817">
+        <neutronic p="157.763" r="4.71445" t="92.9204"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9837" x="-2.39314478349" y="1.74359140625" z="-0.494250308817">
+        <neutronic p="157.25" r="4.71356" t="92.9096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9838" x="-2.39314478349" y="1.7817734375" z="-0.494250308817">
+        <neutronic p="156.74" r="4.71265" t="92.8986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9839" x="-2.39314478349" y="1.81995546875" z="-0.494250308817">
+        <neutronic p="156.234" r="4.71172" t="92.8875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9840" x="-2.39314478349" y="1.8581375" z="-0.494250308817">
+        <neutronic p="155.731" r="4.71076" t="92.8763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9841" x="-2.39314478349" y="1.89631953125" z="-0.494250308817">
+        <neutronic p="155.233" r="4.70977" t="92.8649"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9861" x="-2.41359177152" y="0.21631015625" z="-0.38209957203">
+        <neutronic p="179.792" r="4.72838" t="90.4327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9862" x="-2.41359177152" y="0.2544921875" z="-0.38209957203">
+        <neutronic p="179.205" r="4.72855" t="90.4327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9863" x="-2.41359177152" y="0.29267421875" z="-0.38209957203">
+        <neutronic p="178.618" r="4.7287" t="90.4326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9864" x="-2.41359177152" y="0.33085625" z="-0.38209957203">
+        <neutronic p="178.03" r="4.72882" t="90.4325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9865" x="-2.41359177152" y="0.36903828125" z="-0.38209957203">
+        <neutronic p="177.442" r="4.72891" t="90.4323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9866" x="-2.41359177152" y="0.4072203125" z="-0.38209957203">
+        <neutronic p="176.855" r="4.72897" t="90.4321"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9867" x="-2.41359177152" y="0.44540234375" z="-0.38209957203">
+        <neutronic p="176.267" r="4.729" t="90.4318"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9868" x="-2.41359177152" y="0.483584375" z="-0.38209957203">
+        <neutronic p="175.68" r="4.72901" t="90.4315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9869" x="-2.41359177152" y="0.52176640625" z="-0.38209957203">
+        <neutronic p="175.094" r="4.72898" t="90.4311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9870" x="-2.41359177152" y="0.5599484375" z="-0.38209957203">
+        <neutronic p="174.508" r="4.72893" t="90.4307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9871" x="-2.41359177152" y="0.59813046875" z="-0.38209957203">
+        <neutronic p="173.923" r="4.72885" t="90.4303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9872" x="-2.41359177152" y="0.6363125" z="-0.38209957203">
+        <neutronic p="173.339" r="4.72874" t="90.4298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9873" x="-2.41359177152" y="0.67449453125" z="-0.38209957203">
+        <neutronic p="172.756" r="4.7286" t="90.4293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9874" x="-2.41359177152" y="0.7126765625" z="-0.38209957203">
+        <neutronic p="172.174" r="4.72843" t="90.4287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9875" x="-2.41359177152" y="0.75085859375" z="-0.38209957203">
+        <neutronic p="171.593" r="4.72824" t="90.4281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9876" x="-2.41359177152" y="0.789040625" z="-0.38209957203">
+        <neutronic p="171.014" r="4.72801" t="90.4274"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9877" x="-2.41359177152" y="0.82722265625" z="-0.38209957203">
+        <neutronic p="170.436" r="4.72776" t="90.4267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9878" x="-2.41359177152" y="0.8654046875" z="-0.38209957203">
+        <neutronic p="169.859" r="4.72748" t="90.426"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9879" x="-2.41359177152" y="0.90358671875" z="-0.38209957203">
+        <neutronic p="169.285" r="4.72717" t="90.4252"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9880" x="-2.41359177152" y="0.94176875" z="-0.38209957203">
+        <neutronic p="168.712" r="4.72684" t="90.4244"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9881" x="-2.41359177152" y="0.97995078125" z="-0.38209957203">
+        <neutronic p="168.141" r="4.72647" t="90.4235"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9882" x="-2.41359177152" y="1.0181328125" z="-0.38209957203">
+        <neutronic p="167.572" r="4.72608" t="90.4226"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9883" x="-2.41359177152" y="1.05631484375" z="-0.38209957203">
+        <neutronic p="167.006" r="4.72566" t="90.4216"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9884" x="-2.41359177152" y="1.094496875" z="-0.38209957203">
+        <neutronic p="166.442" r="4.72521" t="90.4207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9885" x="-2.41359177152" y="1.13267890625" z="-0.38209957203">
+        <neutronic p="165.88" r="4.72474" t="90.4197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9886" x="-2.41359177152" y="1.1708609375" z="-0.38209957203">
+        <neutronic p="165.32" r="4.72424" t="90.4186"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9887" x="-2.41359177152" y="1.20904296875" z="-0.38209957203">
+        <neutronic p="164.763" r="4.72371" t="90.4175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9888" x="-2.41359177152" y="1.247225" z="-0.38209957203">
+        <neutronic p="164.209" r="4.72315" t="90.4164"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9889" x="-2.41359177152" y="1.28540703125" z="-0.38209957203">
+        <neutronic p="163.657" r="4.72257" t="90.4152"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9890" x="-2.41359177152" y="1.3235890625" z="-0.38209957203">
+        <neutronic p="163.109" r="4.72196" t="90.4141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9891" x="-2.41359177152" y="1.36177109375" z="-0.38209957203">
+        <neutronic p="162.563" r="4.72133" t="90.4128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9892" x="-2.41359177152" y="1.399953125" z="-0.38209957203">
+        <neutronic p="162.02" r="4.72066" t="90.4116"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9893" x="-2.41359177152" y="1.43813515625" z="-0.38209957203">
+        <neutronic p="161.48" r="4.71998" t="90.4103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9894" x="-2.41359177152" y="1.4763171875" z="-0.38209957203">
+        <neutronic p="160.943" r="4.71926" t="90.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9895" x="-2.41359177152" y="1.51449921875" z="-0.38209957203">
+        <neutronic p="160.41" r="4.71852" t="90.4077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9896" x="-2.41359177152" y="1.55268125" z="-0.38209957203">
+        <neutronic p="159.88" r="4.71776" t="90.4063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9897" x="-2.41359177152" y="1.59086328125" z="-0.38209957203">
+        <neutronic p="159.353" r="4.71697" t="90.4049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9898" x="-2.41359177152" y="1.6290453125" z="-0.38209957203">
+        <neutronic p="158.83" r="4.71616" t="90.4035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9899" x="-2.41359177152" y="1.66722734375" z="-0.38209957203">
+        <neutronic p="158.31" r="4.71532" t="90.4021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9900" x="-2.41359177152" y="1.705409375" z="-0.38209957203">
+        <neutronic p="157.793" r="4.71445" t="90.4006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9901" x="-2.41359177152" y="1.74359140625" z="-0.38209957203">
+        <neutronic p="157.28" r="4.71356" t="90.3992"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9902" x="-2.41359177152" y="1.7817734375" z="-0.38209957203">
+        <neutronic p="156.771" r="4.71265" t="90.3977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9903" x="-2.41359177152" y="1.81995546875" z="-0.38209957203">
+        <neutronic p="156.265" r="4.71172" t="90.3961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9904" x="-2.41359177152" y="1.8581375" z="-0.38209957203">
+        <neutronic p="155.763" r="4.71076" t="90.3946"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9905" x="-2.41359177152" y="1.89631953125" z="-0.38209957203">
+        <neutronic p="155.265" r="4.70977" t="90.393"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9925" x="-2.42878595706" y="0.21631015625" z="-0.269117255682">
+        <neutronic p="179.792" r="4.72838" t="87.7109"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9926" x="-2.42878595706" y="0.2544921875" z="-0.269117255682">
+        <neutronic p="179.205" r="4.72855" t="87.7111"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9927" x="-2.42878595706" y="0.29267421875" z="-0.269117255682">
+        <neutronic p="178.617" r="4.7287" t="87.7116"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9928" x="-2.42878595706" y="0.33085625" z="-0.269117255682">
+        <neutronic p="178.028" r="4.72882" t="87.7123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9929" x="-2.42878595706" y="0.36903828125" z="-0.269117255682">
+        <neutronic p="177.44" r="4.72891" t="87.7132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9930" x="-2.42878595706" y="0.4072203125" z="-0.269117255682">
+        <neutronic p="176.852" r="4.72897" t="87.7144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9931" x="-2.42878595706" y="0.44540234375" z="-0.269117255682">
+        <neutronic p="176.264" r="4.729" t="87.7158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9932" x="-2.42878595706" y="0.483584375" z="-0.269117255682">
+        <neutronic p="175.677" r="4.72901" t="87.7174"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9933" x="-2.42878595706" y="0.52176640625" z="-0.269117255682">
+        <neutronic p="175.09" r="4.72898" t="87.7193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9934" x="-2.42878595706" y="0.5599484375" z="-0.269117255682">
+        <neutronic p="174.504" r="4.72893" t="87.7214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9935" x="-2.42878595706" y="0.59813046875" z="-0.269117255682">
+        <neutronic p="173.918" r="4.72885" t="87.7238"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9936" x="-2.42878595706" y="0.6363125" z="-0.269117255682">
+        <neutronic p="173.334" r="4.72874" t="87.7264"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9937" x="-2.42878595706" y="0.67449453125" z="-0.269117255682">
+        <neutronic p="172.75" r="4.7286" t="87.7292"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9938" x="-2.42878595706" y="0.7126765625" z="-0.269117255682">
+        <neutronic p="172.168" r="4.72843" t="87.7322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9939" x="-2.42878595706" y="0.75085859375" z="-0.269117255682">
+        <neutronic p="171.587" r="4.72824" t="87.7355"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9940" x="-2.42878595706" y="0.789040625" z="-0.269117255682">
+        <neutronic p="171.007" r="4.72801" t="87.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9941" x="-2.42878595706" y="0.82722265625" z="-0.269117255682">
+        <neutronic p="170.428" r="4.72776" t="87.7427"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9942" x="-2.42878595706" y="0.8654046875" z="-0.269117255682">
+        <neutronic p="169.852" r="4.72748" t="87.7467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9943" x="-2.42878595706" y="0.90358671875" z="-0.269117255682">
+        <neutronic p="169.277" r="4.72717" t="87.7508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9944" x="-2.42878595706" y="0.94176875" z="-0.269117255682">
+        <neutronic p="168.704" r="4.72684" t="87.7552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9945" x="-2.42878595706" y="0.97995078125" z="-0.269117255682">
+        <neutronic p="168.132" r="4.72647" t="87.7598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9946" x="-2.42878595706" y="1.0181328125" z="-0.269117255682">
+        <neutronic p="167.563" r="4.72608" t="87.7646"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9947" x="-2.42878595706" y="1.05631484375" z="-0.269117255682">
+        <neutronic p="166.996" r="4.72566" t="87.7696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9948" x="-2.42878595706" y="1.094496875" z="-0.269117255682">
+        <neutronic p="166.431" r="4.72521" t="87.7747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9949" x="-2.42878595706" y="1.13267890625" z="-0.269117255682">
+        <neutronic p="165.869" r="4.72474" t="87.7801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9950" x="-2.42878595706" y="1.1708609375" z="-0.269117255682">
+        <neutronic p="165.309" r="4.72424" t="87.7857"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9951" x="-2.42878595706" y="1.20904296875" z="-0.269117255682">
+        <neutronic p="164.752" r="4.72371" t="87.7914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9952" x="-2.42878595706" y="1.247225" z="-0.269117255682">
+        <neutronic p="164.197" r="4.72315" t="87.7973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9953" x="-2.42878595706" y="1.28540703125" z="-0.269117255682">
+        <neutronic p="163.645" r="4.72257" t="87.8034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9954" x="-2.42878595706" y="1.3235890625" z="-0.269117255682">
+        <neutronic p="163.096" r="4.72196" t="87.8097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9955" x="-2.42878595706" y="1.36177109375" z="-0.269117255682">
+        <neutronic p="162.55" r="4.72133" t="87.8162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9956" x="-2.42878595706" y="1.399953125" z="-0.269117255682">
+        <neutronic p="162.007" r="4.72066" t="87.8228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9957" x="-2.42878595706" y="1.43813515625" z="-0.269117255682">
+        <neutronic p="161.467" r="4.71998" t="87.8295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9958" x="-2.42878595706" y="1.4763171875" z="-0.269117255682">
+        <neutronic p="160.93" r="4.71926" t="87.8364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9959" x="-2.42878595706" y="1.51449921875" z="-0.269117255682">
+        <neutronic p="160.396" r="4.71852" t="87.8435"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9960" x="-2.42878595706" y="1.55268125" z="-0.269117255682">
+        <neutronic p="159.866" r="4.71776" t="87.8507"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9961" x="-2.42878595706" y="1.59086328125" z="-0.269117255682">
+        <neutronic p="159.338" r="4.71697" t="87.858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9962" x="-2.42878595706" y="1.6290453125" z="-0.269117255682">
+        <neutronic p="158.815" r="4.71616" t="87.8655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9963" x="-2.42878595706" y="1.66722734375" z="-0.269117255682">
+        <neutronic p="158.294" r="4.71532" t="87.8731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9964" x="-2.42878595706" y="1.705409375" z="-0.269117255682">
+        <neutronic p="157.778" r="4.71445" t="87.8808"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9965" x="-2.42878595706" y="1.74359140625" z="-0.269117255682">
+        <neutronic p="157.265" r="4.71356" t="87.8886"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9966" x="-2.42878595706" y="1.7817734375" z="-0.269117255682">
+        <neutronic p="156.755" r="4.71265" t="87.8966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9967" x="-2.42878595706" y="1.81995546875" z="-0.269117255682">
+        <neutronic p="156.249" r="4.71172" t="87.9046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9968" x="-2.42878595706" y="1.8581375" z="-0.269117255682">
+        <neutronic p="155.747" r="4.71076" t="87.9128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9969" x="-2.42878595706" y="1.89631953125" z="-0.269117255682">
+        <neutronic p="155.248" r="4.70977" t="87.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9989" x="-2.43869427234" y="0.21631015625" z="-0.155549247996">
+        <neutronic p="179.792" r="4.72838" t="84.9891"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9990" x="-2.43869427234" y="0.2544921875" z="-0.155549247996">
+        <neutronic p="179.202" r="4.72855" t="84.9896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9991" x="-2.43869427234" y="0.29267421875" z="-0.155549247996">
+        <neutronic p="178.612" r="4.7287" t="84.9906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9992" x="-2.43869427234" y="0.33085625" z="-0.155549247996">
+        <neutronic p="178.022" r="4.72882" t="84.9921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9993" x="-2.43869427234" y="0.36903828125" z="-0.155549247996">
+        <neutronic p="177.432" r="4.72891" t="84.9941"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9994" x="-2.43869427234" y="0.4072203125" z="-0.155549247996">
+        <neutronic p="176.843" r="4.72897" t="84.9967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9995" x="-2.43869427234" y="0.44540234375" z="-0.155549247996">
+        <neutronic p="176.253" r="4.729" t="84.9997"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9996" x="-2.43869427234" y="0.483584375" z="-0.155549247996">
+        <neutronic p="175.664" r="4.72901" t="85.0034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9997" x="-2.43869427234" y="0.52176640625" z="-0.155549247996">
+        <neutronic p="175.075" r="4.72898" t="85.0075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9998" x="-2.43869427234" y="0.5599484375" z="-0.155549247996">
+        <neutronic p="174.487" r="4.72893" t="85.0121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="9999" x="-2.43869427234" y="0.59813046875" z="-0.155549247996">
+        <neutronic p="173.9" r="4.72885" t="85.0173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10000" x="-2.43869427234" y="0.6363125" z="-0.155549247996">
+        <neutronic p="173.314" r="4.72874" t="85.023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10001" x="-2.43869427234" y="0.67449453125" z="-0.155549247996">
+        <neutronic p="172.728" r="4.7286" t="85.0292"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10002" x="-2.43869427234" y="0.7126765625" z="-0.155549247996">
+        <neutronic p="172.144" r="4.72843" t="85.0359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10003" x="-2.43869427234" y="0.75085859375" z="-0.155549247996">
+        <neutronic p="171.561" r="4.72824" t="85.0431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10004" x="-2.43869427234" y="0.789040625" z="-0.155549247996">
+        <neutronic p="170.98" r="4.72801" t="85.0508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10005" x="-2.43869427234" y="0.82722265625" z="-0.155549247996">
+        <neutronic p="170.4" r="4.72776" t="85.0589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10006" x="-2.43869427234" y="0.8654046875" z="-0.155549247996">
+        <neutronic p="169.822" r="4.72748" t="85.0676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10007" x="-2.43869427234" y="0.90358671875" z="-0.155549247996">
+        <neutronic p="169.245" r="4.72717" t="85.0767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10008" x="-2.43869427234" y="0.94176875" z="-0.155549247996">
+        <neutronic p="168.67" r="4.72684" t="85.0863"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10009" x="-2.43869427234" y="0.97995078125" z="-0.155549247996">
+        <neutronic p="168.097" r="4.72647" t="85.0963"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10010" x="-2.43869427234" y="1.0181328125" z="-0.155549247996">
+        <neutronic p="167.527" r="4.72608" t="85.1068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10011" x="-2.43869427234" y="1.05631484375" z="-0.155549247996">
+        <neutronic p="166.958" r="4.72566" t="85.1177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10012" x="-2.43869427234" y="1.094496875" z="-0.155549247996">
+        <neutronic p="166.392" r="4.72521" t="85.1291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10013" x="-2.43869427234" y="1.13267890625" z="-0.155549247996">
+        <neutronic p="165.828" r="4.72474" t="85.1409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10014" x="-2.43869427234" y="1.1708609375" z="-0.155549247996">
+        <neutronic p="165.267" r="4.72424" t="85.1531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10015" x="-2.43869427234" y="1.20904296875" z="-0.155549247996">
+        <neutronic p="164.708" r="4.72371" t="85.1657"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10016" x="-2.43869427234" y="1.247225" z="-0.155549247996">
+        <neutronic p="164.152" r="4.72315" t="85.1786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10017" x="-2.43869427234" y="1.28540703125" z="-0.155549247996">
+        <neutronic p="163.598" r="4.72257" t="85.192"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10018" x="-2.43869427234" y="1.3235890625" z="-0.155549247996">
+        <neutronic p="163.048" r="4.72196" t="85.2058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10019" x="-2.43869427234" y="1.36177109375" z="-0.155549247996">
+        <neutronic p="162.5" r="4.72133" t="85.2199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10020" x="-2.43869427234" y="1.399953125" z="-0.155549247996">
+        <neutronic p="161.956" r="4.72066" t="85.2344"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10021" x="-2.43869427234" y="1.43813515625" z="-0.155549247996">
+        <neutronic p="161.414" r="4.71998" t="85.2492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10022" x="-2.43869427234" y="1.4763171875" z="-0.155549247996">
+        <neutronic p="160.876" r="4.71926" t="85.2643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10023" x="-2.43869427234" y="1.51449921875" z="-0.155549247996">
+        <neutronic p="160.341" r="4.71852" t="85.2798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10024" x="-2.43869427234" y="1.55268125" z="-0.155549247996">
+        <neutronic p="159.809" r="4.71776" t="85.2956"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10025" x="-2.43869427234" y="1.59086328125" z="-0.155549247996">
+        <neutronic p="159.281" r="4.71697" t="85.3117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10026" x="-2.43869427234" y="1.6290453125" z="-0.155549247996">
+        <neutronic p="158.756" r="4.71616" t="85.328"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10027" x="-2.43869427234" y="1.66722734375" z="-0.155549247996">
+        <neutronic p="158.235" r="4.71532" t="85.3447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10028" x="-2.43869427234" y="1.705409375" z="-0.155549247996">
+        <neutronic p="157.717" r="4.71445" t="85.3616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10029" x="-2.43869427234" y="1.74359140625" z="-0.155549247996">
+        <neutronic p="157.203" r="4.71356" t="85.3788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10030" x="-2.43869427234" y="1.7817734375" z="-0.155549247996">
+        <neutronic p="156.692" r="4.71265" t="85.3962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10031" x="-2.43869427234" y="1.81995546875" z="-0.155549247996">
+        <neutronic p="156.185" r="4.71172" t="85.4138"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10032" x="-2.43869427234" y="1.8581375" z="-0.155549247996">
+        <neutronic p="155.682" r="4.71076" t="85.4317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10033" x="-2.43869427234" y="1.89631953125" z="-0.155549247996">
+        <neutronic p="155.182" r="4.70977" t="85.4498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10053" x="-2.44329515349" y="0.21631015625" z="-0.0416427118618">
+        <neutronic p="179.791" r="4.72838" t="82.2673"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10054" x="-2.44329515349" y="0.2544921875" z="-0.0416427118618">
+        <neutronic p="179.198" r="4.72855" t="82.268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10055" x="-2.44329515349" y="0.29267421875" z="-0.0416427118618">
+        <neutronic p="178.605" r="4.7287" t="82.2695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10056" x="-2.44329515349" y="0.33085625" z="-0.0416427118618">
+        <neutronic p="178.012" r="4.72882" t="82.2719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10057" x="-2.44329515349" y="0.36903828125" z="-0.0416427118618">
+        <neutronic p="177.419" r="4.72891" t="82.275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10058" x="-2.44329515349" y="0.4072203125" z="-0.0416427118618">
+        <neutronic p="176.826" r="4.72897" t="82.279"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10059" x="-2.44329515349" y="0.44540234375" z="-0.0416427118618">
+        <neutronic p="176.233" r="4.729" t="82.2838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10060" x="-2.44329515349" y="0.483584375" z="-0.0416427118618">
+        <neutronic p="175.641" r="4.72901" t="82.2894"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10061" x="-2.44329515349" y="0.52176640625" z="-0.0416427118618">
+        <neutronic p="175.049" r="4.72898" t="82.2958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10062" x="-2.44329515349" y="0.5599484375" z="-0.0416427118618">
+        <neutronic p="174.458" r="4.72893" t="82.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10063" x="-2.44329515349" y="0.59813046875" z="-0.0416427118618">
+        <neutronic p="173.868" r="4.72885" t="82.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10064" x="-2.44329515349" y="0.6363125" z="-0.0416427118618">
+        <neutronic p="173.279" r="4.72874" t="82.3198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10065" x="-2.44329515349" y="0.67449453125" z="-0.0416427118618">
+        <neutronic p="172.69" r="4.7286" t="82.3294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10066" x="-2.44329515349" y="0.7126765625" z="-0.0416427118618">
+        <neutronic p="172.103" r="4.72843" t="82.3397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10067" x="-2.44329515349" y="0.75085859375" z="-0.0416427118618">
+        <neutronic p="171.517" r="4.72824" t="82.3509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10068" x="-2.44329515349" y="0.789040625" z="-0.0416427118618">
+        <neutronic p="170.933" r="4.72801" t="82.3628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10069" x="-2.44329515349" y="0.82722265625" z="-0.0416427118618">
+        <neutronic p="170.35" r="4.72776" t="82.3754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10070" x="-2.44329515349" y="0.8654046875" z="-0.0416427118618">
+        <neutronic p="169.769" r="4.72748" t="82.3888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10071" x="-2.44329515349" y="0.90358671875" z="-0.0416427118618">
+        <neutronic p="169.189" r="4.72717" t="82.4029"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10072" x="-2.44329515349" y="0.94176875" z="-0.0416427118618">
+        <neutronic p="168.611" r="4.72684" t="82.4177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10073" x="-2.44329515349" y="0.97995078125" z="-0.0416427118618">
+        <neutronic p="168.036" r="4.72647" t="82.4333"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10074" x="-2.44329515349" y="1.0181328125" z="-0.0416427118618">
+        <neutronic p="167.462" r="4.72608" t="82.4495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10075" x="-2.44329515349" y="1.05631484375" z="-0.0416427118618">
+        <neutronic p="166.891" r="4.72566" t="82.4664"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10076" x="-2.44329515349" y="1.094496875" z="-0.0416427118618">
+        <neutronic p="166.322" r="4.72521" t="82.484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10077" x="-2.44329515349" y="1.13267890625" z="-0.0416427118618">
+        <neutronic p="165.756" r="4.72474" t="82.5023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10078" x="-2.44329515349" y="1.1708609375" z="-0.0416427118618">
+        <neutronic p="165.192" r="4.72424" t="82.5211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10079" x="-2.44329515349" y="1.20904296875" z="-0.0416427118618">
+        <neutronic p="164.63" r="4.72371" t="82.5407"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10080" x="-2.44329515349" y="1.247225" z="-0.0416427118618">
+        <neutronic p="164.072" r="4.72315" t="82.5608"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10081" x="-2.44329515349" y="1.28540703125" z="-0.0416427118618">
+        <neutronic p="163.516" r="4.72257" t="82.5815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10082" x="-2.44329515349" y="1.3235890625" z="-0.0416427118618">
+        <neutronic p="162.963" r="4.72196" t="82.6028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10083" x="-2.44329515349" y="1.36177109375" z="-0.0416427118618">
+        <neutronic p="162.413" r="4.72133" t="82.6246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10084" x="-2.44329515349" y="1.399953125" z="-0.0416427118618">
+        <neutronic p="161.866" r="4.72066" t="82.647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10085" x="-2.44329515349" y="1.43813515625" z="-0.0416427118618">
+        <neutronic p="161.322" r="4.71998" t="82.67"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10086" x="-2.44329515349" y="1.4763171875" z="-0.0416427118618">
+        <neutronic p="160.782" r="4.71926" t="82.6934"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10087" x="-2.44329515349" y="1.51449921875" z="-0.0416427118618">
+        <neutronic p="160.245" r="4.71852" t="82.7174"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10088" x="-2.44329515349" y="1.55268125" z="-0.0416427118618">
+        <neutronic p="159.711" r="4.71776" t="82.7418"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10089" x="-2.44329515349" y="1.59086328125" z="-0.0416427118618">
+        <neutronic p="159.18" r="4.71697" t="82.7667"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10090" x="-2.44329515349" y="1.6290453125" z="-0.0416427118618">
+        <neutronic p="158.653" r="4.71616" t="82.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10091" x="-2.44329515349" y="1.66722734375" z="-0.0416427118618">
+        <neutronic p="158.13" r="4.71532" t="82.8178"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10092" x="-2.44329515349" y="1.705409375" z="-0.0416427118618">
+        <neutronic p="157.61" r="4.71445" t="82.8439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10093" x="-2.44329515349" y="1.74359140625" z="-0.0416427118618">
+        <neutronic p="157.094" r="4.71356" t="82.8705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10094" x="-2.44329515349" y="1.7817734375" z="-0.0416427118618">
+        <neutronic p="156.581" r="4.71265" t="82.8975"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10095" x="-2.44329515349" y="1.81995546875" z="-0.0416427118618">
+        <neutronic p="156.072" r="4.71172" t="82.9248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10096" x="-2.44329515349" y="1.8581375" z="-0.0416427118618">
+        <neutronic p="155.568" r="4.71076" t="82.9524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10097" x="-2.44329515349" y="1.89631953125" z="-0.0416427118618">
+        <neutronic p="155.066" r="4.70977" t="82.9804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10117" x="-2.4425785874" y="0.21631015625" z="0.0723544530789">
+        <neutronic p="179.789" r="4.72838" t="79.5455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10118" x="-2.4425785874" y="0.2544921875" z="0.0723544530789">
+        <neutronic p="179.192" r="4.72855" t="79.5465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10119" x="-2.4425785874" y="0.29267421875" z="0.0723544530789">
+        <neutronic p="178.594" r="4.7287" t="79.5485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10120" x="-2.4425785874" y="0.33085625" z="0.0723544530789">
+        <neutronic p="177.997" r="4.72882" t="79.5517"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10121" x="-2.4425785874" y="0.36903828125" z="0.0723544530789">
+        <neutronic p="177.399" r="4.72891" t="79.556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10122" x="-2.4425785874" y="0.4072203125" z="0.0723544530789">
+        <neutronic p="176.802" r="4.72897" t="79.5614"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10123" x="-2.4425785874" y="0.44540234375" z="0.0723544530789">
+        <neutronic p="176.205" r="4.729" t="79.5679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10124" x="-2.4425785874" y="0.483584375" z="0.0723544530789">
+        <neutronic p="175.608" r="4.72901" t="79.5755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10125" x="-2.4425785874" y="0.52176640625" z="0.0723544530789">
+        <neutronic p="175.012" r="4.72898" t="79.5842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10126" x="-2.4425785874" y="0.5599484375" z="0.0723544530789">
+        <neutronic p="174.416" r="4.72893" t="79.594"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10127" x="-2.4425785874" y="0.59813046875" z="0.0723544530789">
+        <neutronic p="173.821" r="4.72885" t="79.6049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10128" x="-2.4425785874" y="0.6363125" z="0.0723544530789">
+        <neutronic p="173.228" r="4.72874" t="79.6168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10129" x="-2.4425785874" y="0.67449453125" z="0.0723544530789">
+        <neutronic p="172.635" r="4.7286" t="79.6298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10130" x="-2.4425785874" y="0.7126765625" z="0.0723544530789">
+        <neutronic p="172.044" r="4.72843" t="79.6439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10131" x="-2.4425785874" y="0.75085859375" z="0.0723544530789">
+        <neutronic p="171.453" r="4.72824" t="79.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10132" x="-2.4425785874" y="0.789040625" z="0.0723544530789">
+        <neutronic p="170.865" r="4.72801" t="79.6752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10133" x="-2.4425785874" y="0.82722265625" z="0.0723544530789">
+        <neutronic p="170.278" r="4.72776" t="79.6924"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10134" x="-2.4425785874" y="0.8654046875" z="0.0723544530789">
+        <neutronic p="169.692" r="4.72748" t="79.7106"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10135" x="-2.4425785874" y="0.90358671875" z="0.0723544530789">
+        <neutronic p="169.108" r="4.72717" t="79.7297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10136" x="-2.4425785874" y="0.94176875" z="0.0723544530789">
+        <neutronic p="168.527" r="4.72684" t="79.7499"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10137" x="-2.4425785874" y="0.97995078125" z="0.0723544530789">
+        <neutronic p="167.947" r="4.72647" t="79.771"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10138" x="-2.4425785874" y="1.0181328125" z="0.0723544530789">
+        <neutronic p="167.37" r="4.72608" t="79.7931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10139" x="-2.4425785874" y="1.05631484375" z="0.0723544530789">
+        <neutronic p="166.795" r="4.72566" t="79.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10140" x="-2.4425785874" y="1.094496875" z="0.0723544530789">
+        <neutronic p="166.222" r="4.72521" t="79.8399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10141" x="-2.4425785874" y="1.13267890625" z="0.0723544530789">
+        <neutronic p="165.651" r="4.72474" t="79.8647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10142" x="-2.4425785874" y="1.1708609375" z="0.0723544530789">
+        <neutronic p="165.084" r="4.72424" t="79.8904"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10143" x="-2.4425785874" y="1.20904296875" z="0.0723544530789">
+        <neutronic p="164.519" r="4.72371" t="79.9169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10144" x="-2.4425785874" y="1.247225" z="0.0723544530789">
+        <neutronic p="163.956" r="4.72315" t="79.9442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10145" x="-2.4425785874" y="1.28540703125" z="0.0723544530789">
+        <neutronic p="163.397" r="4.72257" t="79.9723"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10146" x="-2.4425785874" y="1.3235890625" z="0.0723544530789">
+        <neutronic p="162.84" r="4.72196" t="80.0012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10147" x="-2.4425785874" y="1.36177109375" z="0.0723544530789">
+        <neutronic p="162.287" r="4.72133" t="80.0309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10148" x="-2.4425785874" y="1.399953125" z="0.0723544530789">
+        <neutronic p="161.737" r="4.72066" t="80.0613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10149" x="-2.4425785874" y="1.43813515625" z="0.0723544530789">
+        <neutronic p="161.19" r="4.71998" t="80.0925"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10150" x="-2.4425785874" y="1.4763171875" z="0.0723544530789">
+        <neutronic p="160.646" r="4.71926" t="80.1243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10151" x="-2.4425785874" y="1.51449921875" z="0.0723544530789">
+        <neutronic p="160.106" r="4.71852" t="80.1568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10152" x="-2.4425785874" y="1.55268125" z="0.0723544530789">
+        <neutronic p="159.569" r="4.71776" t="80.19"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10153" x="-2.4425785874" y="1.59086328125" z="0.0723544530789">
+        <neutronic p="159.035" r="4.71697" t="80.2237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10154" x="-2.4425785874" y="1.6290453125" z="0.0723544530789">
+        <neutronic p="158.505" r="4.71616" t="80.2581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10155" x="-2.4425785874" y="1.66722734375" z="0.0723544530789">
+        <neutronic p="157.979" r="4.71532" t="80.2931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10156" x="-2.4425785874" y="1.705409375" z="0.0723544530789">
+        <neutronic p="157.456" r="4.71445" t="80.3286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10157" x="-2.4425785874" y="1.74359140625" z="0.0723544530789">
+        <neutronic p="156.937" r="4.71356" t="80.3647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10158" x="-2.4425785874" y="1.7817734375" z="0.0723544530789">
+        <neutronic p="156.422" r="4.71265" t="80.4013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10159" x="-2.4425785874" y="1.81995546875" z="0.0723544530789">
+        <neutronic p="155.911" r="4.71172" t="80.4384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10160" x="-2.4425785874" y="1.8581375" z="0.0723544530789">
+        <neutronic p="155.403" r="4.71076" t="80.4759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10161" x="-2.4425785874" y="1.89631953125" z="0.0723544530789">
+        <neutronic p="154.899" r="4.70977" t="80.5139"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10181" x="-2.43654613357" y="0.21631015625" z="0.186194149944">
+        <neutronic p="179.787" r="4.72838" t="76.8237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10182" x="-2.43654613357" y="0.2544921875" z="0.186194149944">
+        <neutronic p="179.184" r="4.72855" t="76.8249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10183" x="-2.43654613357" y="0.29267421875" z="0.186194149944">
+        <neutronic p="178.58" r="4.7287" t="76.8275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10184" x="-2.43654613357" y="0.33085625" z="0.186194149944">
+        <neutronic p="177.977" r="4.72882" t="76.8316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10185" x="-2.43654613357" y="0.36903828125" z="0.186194149944">
+        <neutronic p="177.373" r="4.72891" t="76.837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10186" x="-2.43654613357" y="0.4072203125" z="0.186194149944">
+        <neutronic p="176.77" r="4.72897" t="76.8438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10187" x="-2.43654613357" y="0.44540234375" z="0.186194149944">
+        <neutronic p="176.167" r="4.729" t="76.8521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10188" x="-2.43654613357" y="0.483584375" z="0.186194149944">
+        <neutronic p="175.564" r="4.72901" t="76.8617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10189" x="-2.43654613357" y="0.52176640625" z="0.186194149944">
+        <neutronic p="174.962" r="4.72898" t="76.8728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10190" x="-2.43654613357" y="0.5599484375" z="0.186194149944">
+        <neutronic p="174.361" r="4.72893" t="76.8852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10191" x="-2.43654613357" y="0.59813046875" z="0.186194149944">
+        <neutronic p="173.76" r="4.72885" t="76.899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10192" x="-2.43654613357" y="0.6363125" z="0.186194149944">
+        <neutronic p="173.161" r="4.72874" t="76.9142"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10193" x="-2.43654613357" y="0.67449453125" z="0.186194149944">
+        <neutronic p="172.562" r="4.7286" t="76.9307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10194" x="-2.43654613357" y="0.7126765625" z="0.186194149944">
+        <neutronic p="171.965" r="4.72843" t="76.9485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10195" x="-2.43654613357" y="0.75085859375" z="0.186194149944">
+        <neutronic p="171.369" r="4.72824" t="76.9677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10196" x="-2.43654613357" y="0.789040625" z="0.186194149944">
+        <neutronic p="170.775" r="4.72801" t="76.9882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10197" x="-2.43654613357" y="0.82722265625" z="0.186194149944">
+        <neutronic p="170.182" r="4.72776" t="77.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10198" x="-2.43654613357" y="0.8654046875" z="0.186194149944">
+        <neutronic p="169.591" r="4.72748" t="77.0331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10199" x="-2.43654613357" y="0.90358671875" z="0.186194149944">
+        <neutronic p="169.002" r="4.72717" t="77.0574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10200" x="-2.43654613357" y="0.94176875" z="0.186194149944">
+        <neutronic p="168.415" r="4.72684" t="77.083"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10201" x="-2.43654613357" y="0.97995078125" z="0.186194149944">
+        <neutronic p="167.83" r="4.72647" t="77.1097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10202" x="-2.43654613357" y="1.0181328125" z="0.186194149944">
+        <neutronic p="167.248" r="4.72608" t="77.1377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10203" x="-2.43654613357" y="1.05631484375" z="0.186194149944">
+        <neutronic p="166.667" r="4.72566" t="77.1669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10204" x="-2.43654613357" y="1.094496875" z="0.186194149944">
+        <neutronic p="166.089" r="4.72521" t="77.1972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10205" x="-2.43654613357" y="1.13267890625" z="0.186194149944">
+        <neutronic p="165.514" r="4.72474" t="77.2286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10206" x="-2.43654613357" y="1.1708609375" z="0.186194149944">
+        <neutronic p="164.941" r="4.72424" t="77.2611"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10207" x="-2.43654613357" y="1.20904296875" z="0.186194149944">
+        <neutronic p="164.371" r="4.72371" t="77.2947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10208" x="-2.43654613357" y="1.247225" z="0.186194149944">
+        <neutronic p="163.804" r="4.72315" t="77.3293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10209" x="-2.43654613357" y="1.28540703125" z="0.186194149944">
+        <neutronic p="163.24" r="4.72257" t="77.365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10210" x="-2.43654613357" y="1.3235890625" z="0.186194149944">
+        <neutronic p="162.679" r="4.72196" t="77.4016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10211" x="-2.43654613357" y="1.36177109375" z="0.186194149944">
+        <neutronic p="162.121" r="4.72133" t="77.4393"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10212" x="-2.43654613357" y="1.399953125" z="0.186194149944">
+        <neutronic p="161.567" r="4.72066" t="77.4778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10213" x="-2.43654613357" y="1.43813515625" z="0.186194149944">
+        <neutronic p="161.015" r="4.71998" t="77.5173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10214" x="-2.43654613357" y="1.4763171875" z="0.186194149944">
+        <neutronic p="160.467" r="4.71926" t="77.5576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10215" x="-2.43654613357" y="1.51449921875" z="0.186194149944">
+        <neutronic p="159.923" r="4.71852" t="77.5988"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10216" x="-2.43654613357" y="1.55268125" z="0.186194149944">
+        <neutronic p="159.382" r="4.71776" t="77.6409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10217" x="-2.43654613357" y="1.59086328125" z="0.186194149944">
+        <neutronic p="158.844" r="4.71697" t="77.6837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10218" x="-2.43654613357" y="1.6290453125" z="0.186194149944">
+        <neutronic p="158.31" r="4.71616" t="77.7272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10219" x="-2.43654613357" y="1.66722734375" z="0.186194149944">
+        <neutronic p="157.78" r="4.71532" t="77.7716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10220" x="-2.43654613357" y="1.705409375" z="0.186194149944">
+        <neutronic p="157.254" r="4.71445" t="77.8166"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10221" x="-2.43654613357" y="1.74359140625" z="0.186194149944">
+        <neutronic p="156.731" r="4.71356" t="77.8623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10222" x="-2.43654613357" y="1.7817734375" z="0.186194149944">
+        <neutronic p="156.212" r="4.71265" t="77.9086"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10223" x="-2.43654613357" y="1.81995546875" z="0.186194149944">
+        <neutronic p="155.698" r="4.71172" t="77.9556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10224" x="-2.43654613357" y="1.8581375" z="0.186194149944">
+        <neutronic p="155.187" r="4.71076" t="78.0031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10225" x="-2.43654613357" y="1.89631953125" z="0.186194149944">
+        <neutronic p="154.68" r="4.70977" t="78.0512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10245" x="-2.42521092069" y="0.21631015625" z="0.299628624556">
+        <neutronic p="179.784" r="4.72838" t="74.1019"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10246" x="-2.42521092069" y="0.2544921875" z="0.299628624556">
+        <neutronic p="179.174" r="4.72855" t="74.1034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10247" x="-2.42521092069" y="0.29267421875" z="0.299628624556">
+        <neutronic p="178.563" r="4.7287" t="74.1066"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10248" x="-2.42521092069" y="0.33085625" z="0.299628624556">
+        <neutronic p="177.952" r="4.72882" t="74.1115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10249" x="-2.42521092069" y="0.36903828125" z="0.299628624556">
+        <neutronic p="177.341" r="4.72891" t="74.1181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10250" x="-2.42521092069" y="0.4072203125" z="0.299628624556">
+        <neutronic p="176.73" r="4.72897" t="74.1264"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10251" x="-2.42521092069" y="0.44540234375" z="0.299628624556">
+        <neutronic p="176.119" r="4.729" t="74.1364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10252" x="-2.42521092069" y="0.483584375" z="0.299628624556">
+        <neutronic p="175.509" r="4.72901" t="74.1482"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10253" x="-2.42521092069" y="0.52176640625" z="0.299628624556">
+        <neutronic p="174.9" r="4.72898" t="74.1616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10254" x="-2.42521092069" y="0.5599484375" z="0.299628624556">
+        <neutronic p="174.291" r="4.72893" t="74.1767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10255" x="-2.42521092069" y="0.59813046875" z="0.299628624556">
+        <neutronic p="173.683" r="4.72885" t="74.1935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10256" x="-2.42521092069" y="0.6363125" z="0.299628624556">
+        <neutronic p="173.077" r="4.72874" t="74.2119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10257" x="-2.42521092069" y="0.67449453125" z="0.299628624556">
+        <neutronic p="172.471" r="4.7286" t="74.232"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10258" x="-2.42521092069" y="0.7126765625" z="0.299628624556">
+        <neutronic p="171.867" r="4.72843" t="74.2538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10259" x="-2.42521092069" y="0.75085859375" z="0.299628624556">
+        <neutronic p="171.264" r="4.72824" t="74.2771"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10260" x="-2.42521092069" y="0.789040625" z="0.299628624556">
+        <neutronic p="170.663" r="4.72801" t="74.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10261" x="-2.42521092069" y="0.82722265625" z="0.299628624556">
+        <neutronic p="170.063" r="4.72776" t="74.3285"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10262" x="-2.42521092069" y="0.8654046875" z="0.299628624556">
+        <neutronic p="169.465" r="4.72748" t="74.3566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10263" x="-2.42521092069" y="0.90358671875" z="0.299628624556">
+        <neutronic p="168.869" r="4.72717" t="74.3862"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10264" x="-2.42521092069" y="0.94176875" z="0.299628624556">
+        <neutronic p="168.276" r="4.72684" t="74.4172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10265" x="-2.42521092069" y="0.97995078125" z="0.299628624556">
+        <neutronic p="167.684" r="4.72647" t="74.4498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10266" x="-2.42521092069" y="1.0181328125" z="0.299628624556">
+        <neutronic p="167.095" r="4.72608" t="74.4838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10267" x="-2.42521092069" y="1.05631484375" z="0.299628624556">
+        <neutronic p="166.508" r="4.72566" t="74.5192"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10268" x="-2.42521092069" y="1.094496875" z="0.299628624556">
+        <neutronic p="165.924" r="4.72521" t="74.5561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10269" x="-2.42521092069" y="1.13267890625" z="0.299628624556">
+        <neutronic p="165.342" r="4.72474" t="74.5943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10270" x="-2.42521092069" y="1.1708609375" z="0.299628624556">
+        <neutronic p="164.763" r="4.72424" t="74.6338"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10271" x="-2.42521092069" y="1.20904296875" z="0.299628624556">
+        <neutronic p="164.187" r="4.72371" t="74.6746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10272" x="-2.42521092069" y="1.247225" z="0.299628624556">
+        <neutronic p="163.614" r="4.72315" t="74.7167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10273" x="-2.42521092069" y="1.28540703125" z="0.299628624556">
+        <neutronic p="163.044" r="4.72257" t="74.7601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10274" x="-2.42521092069" y="1.3235890625" z="0.299628624556">
+        <neutronic p="162.478" r="4.72196" t="74.8046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10275" x="-2.42521092069" y="1.36177109375" z="0.299628624556">
+        <neutronic p="161.914" r="4.72133" t="74.8503"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10276" x="-2.42521092069" y="1.399953125" z="0.299628624556">
+        <neutronic p="161.354" r="4.72066" t="74.8972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10277" x="-2.42521092069" y="1.43813515625" z="0.299628624556">
+        <neutronic p="160.797" r="4.71998" t="74.9452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10278" x="-2.42521092069" y="1.4763171875" z="0.299628624556">
+        <neutronic p="160.244" r="4.71926" t="74.9942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10279" x="-2.42521092069" y="1.51449921875" z="0.299628624556">
+        <neutronic p="159.694" r="4.71852" t="75.0442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10280" x="-2.42521092069" y="1.55268125" z="0.299628624556">
+        <neutronic p="159.148" r="4.71776" t="75.0953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10281" x="-2.42521092069" y="1.59086328125" z="0.299628624556">
+        <neutronic p="158.605" r="4.71697" t="75.1473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10282" x="-2.42521092069" y="1.6290453125" z="0.299628624556">
+        <neutronic p="158.067" r="4.71616" t="75.2002"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10283" x="-2.42521092069" y="1.66722734375" z="0.299628624556">
+        <neutronic p="157.532" r="4.71532" t="75.254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10284" x="-2.42521092069" y="1.705409375" z="0.299628624556">
+        <neutronic p="157.001" r="4.71445" t="75.3087"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10285" x="-2.42521092069" y="1.74359140625" z="0.299628624556">
+        <neutronic p="156.474" r="4.71356" t="75.3642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10286" x="-2.42521092069" y="1.7817734375" z="0.299628624556">
+        <neutronic p="155.951" r="4.71265" t="75.4205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10287" x="-2.42521092069" y="1.81995546875" z="0.299628624556">
+        <neutronic p="155.432" r="4.71172" t="75.4775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10288" x="-2.42521092069" y="1.8581375" z="0.299628624556">
+        <neutronic p="154.917" r="4.71076" t="75.5352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10289" x="-2.42521092069" y="1.89631953125" z="0.299628624556">
+        <neutronic p="154.406" r="4.70977" t="75.5936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10309" x="-2.40859761807" y="0.21631015625" z="0.412411004639">
+        <neutronic p="179.781" r="4.72838" t="71.3801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10310" x="-2.40859761807" y="0.2544921875" z="0.412411004639">
+        <neutronic p="179.161" r="4.72855" t="71.3819"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10311" x="-2.40859761807" y="0.29267421875" z="0.412411004639">
+        <neutronic p="178.541" r="4.7287" t="71.3856"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10312" x="-2.40859761807" y="0.33085625" z="0.412411004639">
+        <neutronic p="177.921" r="4.72882" t="71.3914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10313" x="-2.40859761807" y="0.36903828125" z="0.412411004639">
+        <neutronic p="177.301" r="4.72891" t="71.3992"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10314" x="-2.40859761807" y="0.4072203125" z="0.412411004639">
+        <neutronic p="176.681" r="4.72897" t="71.4091"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10315" x="-2.40859761807" y="0.44540234375" z="0.412411004639">
+        <neutronic p="176.062" r="4.729" t="71.4209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10316" x="-2.40859761807" y="0.483584375" z="0.412411004639">
+        <neutronic p="175.443" r="4.72901" t="71.4348"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10317" x="-2.40859761807" y="0.52176640625" z="0.412411004639">
+        <neutronic p="174.825" r="4.72898" t="71.4507"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10318" x="-2.40859761807" y="0.5599484375" z="0.412411004639">
+        <neutronic p="174.207" r="4.72893" t="71.4686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10319" x="-2.40859761807" y="0.59813046875" z="0.412411004639">
+        <neutronic p="173.59" r="4.72885" t="71.4884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10320" x="-2.40859761807" y="0.6363125" z="0.412411004639">
+        <neutronic p="172.975" r="4.72874" t="71.5103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10321" x="-2.40859761807" y="0.67449453125" z="0.412411004639">
+        <neutronic p="172.36" r="4.7286" t="71.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10322" x="-2.40859761807" y="0.7126765625" z="0.412411004639">
+        <neutronic p="171.747" r="4.72843" t="71.5597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10323" x="-2.40859761807" y="0.75085859375" z="0.412411004639">
+        <neutronic p="171.136" r="4.72824" t="71.5873"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10324" x="-2.40859761807" y="0.789040625" z="0.412411004639">
+        <neutronic p="170.526" r="4.72801" t="71.6168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10325" x="-2.40859761807" y="0.82722265625" z="0.412411004639">
+        <neutronic p="169.918" r="4.72776" t="71.6481"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10326" x="-2.40859761807" y="0.8654046875" z="0.412411004639">
+        <neutronic p="169.312" r="4.72748" t="71.6813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10327" x="-2.40859761807" y="0.90358671875" z="0.412411004639">
+        <neutronic p="168.708" r="4.72717" t="71.7163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10328" x="-2.40859761807" y="0.94176875" z="0.412411004639">
+        <neutronic p="168.106" r="4.72684" t="71.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10329" x="-2.40859761807" y="0.97995078125" z="0.412411004639">
+        <neutronic p="167.507" r="4.72647" t="71.7915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10330" x="-2.40859761807" y="1.0181328125" z="0.412411004639">
+        <neutronic p="166.909" r="4.72608" t="71.8317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10331" x="-2.40859761807" y="1.05631484375" z="0.412411004639">
+        <neutronic p="166.315" r="4.72566" t="71.8736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10332" x="-2.40859761807" y="1.094496875" z="0.412411004639">
+        <neutronic p="165.723" r="4.72521" t="71.9171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10333" x="-2.40859761807" y="1.13267890625" z="0.412411004639">
+        <neutronic p="165.134" r="4.72474" t="71.9623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10334" x="-2.40859761807" y="1.1708609375" z="0.412411004639">
+        <neutronic p="164.547" r="4.72424" t="72.009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10335" x="-2.40859761807" y="1.20904296875" z="0.412411004639">
+        <neutronic p="163.964" r="4.72371" t="72.0572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10336" x="-2.40859761807" y="1.247225" z="0.412411004639">
+        <neutronic p="163.384" r="4.72315" t="72.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10337" x="-2.40859761807" y="1.28540703125" z="0.412411004639">
+        <neutronic p="162.807" r="4.72257" t="72.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10338" x="-2.40859761807" y="1.3235890625" z="0.412411004639">
+        <neutronic p="162.233" r="4.72196" t="72.2108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10339" x="-2.40859761807" y="1.36177109375" z="0.412411004639">
+        <neutronic p="161.663" r="4.72133" t="72.2648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10340" x="-2.40859761807" y="1.399953125" z="0.412411004639">
+        <neutronic p="161.096" r="4.72066" t="72.3202"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10341" x="-2.40859761807" y="1.43813515625" z="0.412411004639">
+        <neutronic p="160.533" r="4.71998" t="72.3768"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10342" x="-2.40859761807" y="1.4763171875" z="0.412411004639">
+        <neutronic p="159.973" r="4.71926" t="72.4347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10343" x="-2.40859761807" y="1.51449921875" z="0.412411004639">
+        <neutronic p="159.417" r="4.71852" t="72.4938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10344" x="-2.40859761807" y="1.55268125" z="0.412411004639">
+        <neutronic p="158.865" r="4.71776" t="72.5541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10345" x="-2.40859761807" y="1.59086328125" z="0.412411004639">
+        <neutronic p="158.317" r="4.71697" t="72.6155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10346" x="-2.40859761807" y="1.6290453125" z="0.412411004639">
+        <neutronic p="157.772" r="4.71616" t="72.6779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10347" x="-2.40859761807" y="1.66722734375" z="0.412411004639">
+        <neutronic p="157.232" r="4.71532" t="72.7415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10348" x="-2.40859761807" y="1.705409375" z="0.412411004639">
+        <neutronic p="156.695" r="4.71445" t="72.806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10349" x="-2.40859761807" y="1.74359140625" z="0.412411004639">
+        <neutronic p="156.163" r="4.71356" t="72.8715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10350" x="-2.40859761807" y="1.7817734375" z="0.412411004639">
+        <neutronic p="155.634" r="4.71265" t="72.9379"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10351" x="-2.40859761807" y="1.81995546875" z="0.412411004639">
+        <neutronic p="155.11" r="4.71172" t="73.0052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10352" x="-2.40859761807" y="1.8581375" z="0.412411004639">
+        <neutronic p="154.591" r="4.71076" t="73.0733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10353" x="-2.40859761807" y="1.89631953125" z="0.412411004639">
+        <neutronic p="154.075" r="4.70977" t="73.1422"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10373" x="-2.38674238193" y="0.21631015625" z="0.524295837101">
+        <neutronic p="179.777" r="4.72838" t="68.6583"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10374" x="-2.38674238193" y="0.2544921875" z="0.524295837101">
+        <neutronic p="179.147" r="4.72855" t="68.6603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10375" x="-2.38674238193" y="0.29267421875" z="0.524295837101">
+        <neutronic p="178.516" r="4.7287" t="68.6647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10376" x="-2.38674238193" y="0.33085625" z="0.524295837101">
+        <neutronic p="177.885" r="4.72882" t="68.6714"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10377" x="-2.38674238193" y="0.36903828125" z="0.524295837101">
+        <neutronic p="177.254" r="4.72891" t="68.6805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10378" x="-2.38674238193" y="0.4072203125" z="0.524295837101">
+        <neutronic p="176.624" r="4.72897" t="68.6919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10379" x="-2.38674238193" y="0.44540234375" z="0.524295837101">
+        <neutronic p="175.993" r="4.729" t="68.7057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10380" x="-2.38674238193" y="0.483584375" z="0.524295837101">
+        <neutronic p="175.364" r="4.72901" t="68.7218"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10381" x="-2.38674238193" y="0.52176640625" z="0.524295837101">
+        <neutronic p="174.735" r="4.72898" t="68.7402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10382" x="-2.38674238193" y="0.5599484375" z="0.524295837101">
+        <neutronic p="174.107" r="4.72893" t="68.7609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10383" x="-2.38674238193" y="0.59813046875" z="0.524295837101">
+        <neutronic p="173.48" r="4.72885" t="68.7839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10384" x="-2.38674238193" y="0.6363125" z="0.524295837101">
+        <neutronic p="172.854" r="4.72874" t="68.8092"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10385" x="-2.38674238193" y="0.67449453125" z="0.524295837101">
+        <neutronic p="172.229" r="4.7286" t="68.8368"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10386" x="-2.38674238193" y="0.7126765625" z="0.524295837101">
+        <neutronic p="171.606" r="4.72843" t="68.8665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10387" x="-2.38674238193" y="0.75085859375" z="0.524295837101">
+        <neutronic p="170.984" r="4.72824" t="68.8985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10388" x="-2.38674238193" y="0.789040625" z="0.524295837101">
+        <neutronic p="170.364" r="4.72801" t="68.9327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10389" x="-2.38674238193" y="0.82722265625" z="0.524295837101">
+        <neutronic p="169.746" r="4.72776" t="68.969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10390" x="-2.38674238193" y="0.8654046875" z="0.524295837101">
+        <neutronic p="169.13" r="4.72748" t="69.0075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10391" x="-2.38674238193" y="0.90358671875" z="0.524295837101">
+        <neutronic p="168.516" r="4.72717" t="69.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10392" x="-2.38674238193" y="0.94176875" z="0.524295837101">
+        <neutronic p="167.905" r="4.72684" t="69.0906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10393" x="-2.38674238193" y="0.97995078125" z="0.524295837101">
+        <neutronic p="167.296" r="4.72647" t="69.1352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10394" x="-2.38674238193" y="1.0181328125" z="0.524295837101">
+        <neutronic p="166.689" r="4.72608" t="69.1818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10395" x="-2.38674238193" y="1.05631484375" z="0.524295837101">
+        <neutronic p="166.086" r="4.72566" t="69.2303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10396" x="-2.38674238193" y="1.094496875" z="0.524295837101">
+        <neutronic p="165.485" r="4.72521" t="69.2807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10397" x="-2.38674238193" y="1.13267890625" z="0.524295837101">
+        <neutronic p="164.886" r="4.72474" t="69.333"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10398" x="-2.38674238193" y="1.1708609375" z="0.524295837101">
+        <neutronic p="164.291" r="4.72424" t="69.3871"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10399" x="-2.38674238193" y="1.20904296875" z="0.524295837101">
+        <neutronic p="163.699" r="4.72371" t="69.443"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10400" x="-2.38674238193" y="1.247225" z="0.524295837101">
+        <neutronic p="163.111" r="4.72315" t="69.5006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10401" x="-2.38674238193" y="1.28540703125" z="0.524295837101">
+        <neutronic p="162.525" r="4.72257" t="69.5599"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10402" x="-2.38674238193" y="1.3235890625" z="0.524295837101">
+        <neutronic p="161.944" r="4.72196" t="69.6209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10403" x="-2.38674238193" y="1.36177109375" z="0.524295837101">
+        <neutronic p="161.365" r="4.72133" t="69.6834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10404" x="-2.38674238193" y="1.399953125" z="0.524295837101">
+        <neutronic p="160.791" r="4.72066" t="69.7474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10405" x="-2.38674238193" y="1.43813515625" z="0.524295837101">
+        <neutronic p="160.22" r="4.71998" t="69.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10406" x="-2.38674238193" y="1.4763171875" z="0.524295837101">
+        <neutronic p="159.653" r="4.71926" t="69.88"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10407" x="-2.38674238193" y="1.51449921875" z="0.524295837101">
+        <neutronic p="159.089" r="4.71852" t="69.9484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10408" x="-2.38674238193" y="1.55268125" z="0.524295837101">
+        <neutronic p="158.53" r="4.71776" t="70.0181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10409" x="-2.38674238193" y="1.59086328125" z="0.524295837101">
+        <neutronic p="157.975" r="4.71697" t="70.0892"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10410" x="-2.38674238193" y="1.6290453125" z="0.524295837101">
+        <neutronic p="157.423" r="4.71616" t="70.1615"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10411" x="-2.38674238193" y="1.66722734375" z="0.524295837101">
+        <neutronic p="156.876" r="4.71532" t="70.2349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10412" x="-2.38674238193" y="1.705409375" z="0.524295837101">
+        <neutronic p="156.333" r="4.71445" t="70.3096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10413" x="-2.38674238193" y="1.74359140625" z="0.524295837101">
+        <neutronic p="155.795" r="4.71356" t="70.3853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10414" x="-2.38674238193" y="1.7817734375" z="0.524295837101">
+        <neutronic p="155.26" r="4.71265" t="70.4621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10415" x="-2.38674238193" y="1.81995546875" z="0.524295837101">
+        <neutronic p="154.73" r="4.71172" t="70.5398"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10416" x="-2.38674238193" y="1.8581375" z="0.524295837101">
+        <neutronic p="154.205" r="4.71076" t="70.6186"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10417" x="-2.38674238193" y="1.89631953125" z="0.524295837101">
+        <neutronic p="153.684" r="4.70977" t="70.6982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10437" x="-2.35969277676" y="0.21631015625" z="0.635039622217">
+        <neutronic p="179.773" r="4.72838" t="65.9365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10438" x="-2.35969277676" y="0.2544921875" z="0.635039622217">
+        <neutronic p="179.13" r="4.72855" t="65.9388"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10439" x="-2.35969277676" y="0.29267421875" z="0.635039622217">
+        <neutronic p="178.486" r="4.7287" t="65.9438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10440" x="-2.35969277676" y="0.33085625" z="0.635039622217">
+        <neutronic p="177.843" r="4.72882" t="65.9515"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10441" x="-2.35969277676" y="0.36903828125" z="0.635039622217">
+        <neutronic p="177.199" r="4.72891" t="65.9618"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10442" x="-2.35969277676" y="0.4072203125" z="0.635039622217">
+        <neutronic p="176.556" r="4.72897" t="65.9749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10443" x="-2.35969277676" y="0.44540234375" z="0.635039622217">
+        <neutronic p="175.913" r="4.729" t="65.9906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10444" x="-2.35969277676" y="0.483584375" z="0.635039622217">
+        <neutronic p="175.271" r="4.72901" t="66.009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10445" x="-2.35969277676" y="0.52176640625" z="0.635039622217">
+        <neutronic p="174.63" r="4.72898" t="66.0301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10446" x="-2.35969277676" y="0.5599484375" z="0.635039622217">
+        <neutronic p="173.989" r="4.72893" t="66.0537"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10447" x="-2.35969277676" y="0.59813046875" z="0.635039622217">
+        <neutronic p="173.35" r="4.72885" t="66.0801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10448" x="-2.35969277676" y="0.6363125" z="0.635039622217">
+        <neutronic p="172.712" r="4.72874" t="66.1089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10449" x="-2.35969277676" y="0.67449453125" z="0.635039622217">
+        <neutronic p="172.075" r="4.7286" t="66.1404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10450" x="-2.35969277676" y="0.7126765625" z="0.635039622217">
+        <neutronic p="171.44" r="4.72843" t="66.1745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10451" x="-2.35969277676" y="0.75085859375" z="0.635039622217">
+        <neutronic p="170.806" r="4.72824" t="66.211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10452" x="-2.35969277676" y="0.789040625" z="0.635039622217">
+        <neutronic p="170.174" r="4.72801" t="66.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10453" x="-2.35969277676" y="0.82722265625" z="0.635039622217">
+        <neutronic p="169.545" r="4.72776" t="66.2915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10454" x="-2.35969277676" y="0.8654046875" z="0.635039622217">
+        <neutronic p="168.917" r="4.72748" t="66.3354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10455" x="-2.35969277676" y="0.90358671875" z="0.635039622217">
+        <neutronic p="168.292" r="4.72717" t="66.3817"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10456" x="-2.35969277676" y="0.94176875" z="0.635039622217">
+        <neutronic p="167.669" r="4.72684" t="66.4303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10457" x="-2.35969277676" y="0.97995078125" z="0.635039622217">
+        <neutronic p="167.049" r="4.72647" t="66.4813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10458" x="-2.35969277676" y="1.0181328125" z="0.635039622217">
+        <neutronic p="166.432" r="4.72608" t="66.5345"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10459" x="-2.35969277676" y="1.05631484375" z="0.635039622217">
+        <neutronic p="165.817" r="4.72566" t="66.5899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10460" x="-2.35969277676" y="1.094496875" z="0.635039622217">
+        <neutronic p="165.206" r="4.72521" t="66.6474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10461" x="-2.35969277676" y="1.13267890625" z="0.635039622217">
+        <neutronic p="164.597" r="4.72474" t="66.7071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10462" x="-2.35969277676" y="1.1708609375" z="0.635039622217">
+        <neutronic p="163.992" r="4.72424" t="66.7689"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10463" x="-2.35969277676" y="1.20904296875" z="0.635039622217">
+        <neutronic p="163.39" r="4.72371" t="66.8326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10464" x="-2.35969277676" y="1.247225" z="0.635039622217">
+        <neutronic p="162.792" r="4.72315" t="66.8984"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10465" x="-2.35969277676" y="1.28540703125" z="0.635039622217">
+        <neutronic p="162.197" r="4.72257" t="66.966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10466" x="-2.35969277676" y="1.3235890625" z="0.635039622217">
+        <neutronic p="161.605" r="4.72196" t="67.0355"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10467" x="-2.35969277676" y="1.36177109375" z="0.635039622217">
+        <neutronic p="161.018" r="4.72133" t="67.1068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10468" x="-2.35969277676" y="1.399953125" z="0.635039622217">
+        <neutronic p="160.434" r="4.72066" t="67.1799"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10469" x="-2.35969277676" y="1.43813515625" z="0.635039622217">
+        <neutronic p="159.854" r="4.71998" t="67.2547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10470" x="-2.35969277676" y="1.4763171875" z="0.635039622217">
+        <neutronic p="159.278" r="4.71926" t="67.331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10471" x="-2.35969277676" y="1.51449921875" z="0.635039622217">
+        <neutronic p="158.707" r="4.71852" t="67.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10472" x="-2.35969277676" y="1.55268125" z="0.635039622217">
+        <neutronic p="158.139" r="4.71776" t="67.4885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10473" x="-2.35969277676" y="1.59086328125" z="0.635039622217">
+        <neutronic p="157.576" r="4.71697" t="67.5695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10474" x="-2.35969277676" y="1.6290453125" z="0.635039622217">
+        <neutronic p="157.017" r="4.71616" t="67.6519"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10475" x="-2.35969277676" y="1.66722734375" z="0.635039622217">
+        <neutronic p="156.462" r="4.71532" t="67.7356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10476" x="-2.35969277676" y="1.705409375" z="0.635039622217">
+        <neutronic p="155.912" r="4.71445" t="67.8206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10477" x="-2.35969277676" y="1.74359140625" z="0.635039622217">
+        <neutronic p="155.366" r="4.71356" t="67.9069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10478" x="-2.35969277676" y="1.7817734375" z="0.635039622217">
+        <neutronic p="154.825" r="4.71265" t="67.9943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10479" x="-2.35969277676" y="1.81995546875" z="0.635039622217">
+        <neutronic p="154.288" r="4.71172" t="68.0829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10480" x="-2.35969277676" y="1.8581375" z="0.635039622217">
+        <neutronic p="153.756" r="4.71076" t="68.1725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10481" x="-2.35969277676" y="1.89631953125" z="0.635039622217">
+        <neutronic p="153.228" r="4.70977" t="68.2632"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10501" x="-2.32750767178" y="0.21631015625" z="0.744401343575">
+        <neutronic p="179.767" r="4.72838" t="63.2147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10502" x="-2.32750767178" y="0.2544921875" z="0.744401343575">
+        <neutronic p="179.11" r="4.72855" t="63.2173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10503" x="-2.32750767178" y="0.29267421875" z="0.744401343575">
+        <neutronic p="178.452" r="4.7287" t="63.223"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10504" x="-2.32750767178" y="0.33085625" z="0.744401343575">
+        <neutronic p="177.793" r="4.72882" t="63.2316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10505" x="-2.32750767178" y="0.36903828125" z="0.744401343575">
+        <neutronic p="177.135" r="4.72891" t="63.2434"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10506" x="-2.32750767178" y="0.4072203125" z="0.744401343575">
+        <neutronic p="176.478" r="4.72897" t="63.2581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10507" x="-2.32750767178" y="0.44540234375" z="0.744401343575">
+        <neutronic p="175.82" r="4.729" t="63.2759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10508" x="-2.32750767178" y="0.483584375" z="0.744401343575">
+        <neutronic p="175.164" r="4.72901" t="63.2967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10509" x="-2.32750767178" y="0.52176640625" z="0.744401343575">
+        <neutronic p="174.508" r="4.72898" t="63.3205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10510" x="-2.32750767178" y="0.5599484375" z="0.744401343575">
+        <neutronic p="173.853" r="4.72893" t="63.3472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10511" x="-2.32750767178" y="0.59813046875" z="0.744401343575">
+        <neutronic p="173.199" r="4.72885" t="63.377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10512" x="-2.32750767178" y="0.6363125" z="0.744401343575">
+        <neutronic p="172.547" r="4.72874" t="63.4096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10513" x="-2.32750767178" y="0.67449453125" z="0.744401343575">
+        <neutronic p="171.896" r="4.7286" t="63.4452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10514" x="-2.32750767178" y="0.7126765625" z="0.744401343575">
+        <neutronic p="171.247" r="4.72843" t="63.4836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10515" x="-2.32750767178" y="0.75085859375" z="0.744401343575">
+        <neutronic p="170.6" r="4.72824" t="63.5249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10516" x="-2.32750767178" y="0.789040625" z="0.744401343575">
+        <neutronic p="169.955" r="4.72801" t="63.569"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10517" x="-2.32750767178" y="0.82722265625" z="0.744401343575">
+        <neutronic p="169.311" r="4.72776" t="63.6159"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10518" x="-2.32750767178" y="0.8654046875" z="0.744401343575">
+        <neutronic p="168.671" r="4.72748" t="63.6655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10519" x="-2.32750767178" y="0.90358671875" z="0.744401343575">
+        <neutronic p="168.032" r="4.72717" t="63.7177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10520" x="-2.32750767178" y="0.94176875" z="0.744401343575">
+        <neutronic p="167.397" r="4.72684" t="63.7727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10521" x="-2.32750767178" y="0.97995078125" z="0.744401343575">
+        <neutronic p="166.764" r="4.72647" t="63.8302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10522" x="-2.32750767178" y="1.0181328125" z="0.744401343575">
+        <neutronic p="166.134" r="4.72608" t="63.8902"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10523" x="-2.32750767178" y="1.05631484375" z="0.744401343575">
+        <neutronic p="165.507" r="4.72566" t="63.9528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10524" x="-2.32750767178" y="1.094496875" z="0.744401343575">
+        <neutronic p="164.883" r="4.72521" t="64.0178"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10525" x="-2.32750767178" y="1.13267890625" z="0.744401343575">
+        <neutronic p="164.263" r="4.72474" t="64.0851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10526" x="-2.32750767178" y="1.1708609375" z="0.744401343575">
+        <neutronic p="163.646" r="4.72424" t="64.1548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10527" x="-2.32750767178" y="1.20904296875" z="0.744401343575">
+        <neutronic p="163.032" r="4.72371" t="64.2268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10528" x="-2.32750767178" y="1.247225" z="0.744401343575">
+        <neutronic p="162.422" r="4.72315" t="64.3009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10529" x="-2.32750767178" y="1.28540703125" z="0.744401343575">
+        <neutronic p="161.816" r="4.72257" t="64.3773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10530" x="-2.32750767178" y="1.3235890625" z="0.744401343575">
+        <neutronic p="161.214" r="4.72196" t="64.4557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10531" x="-2.32750767178" y="1.36177109375" z="0.744401343575">
+        <neutronic p="160.616" r="4.72133" t="64.5361"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10532" x="-2.32750767178" y="1.399953125" z="0.744401343575">
+        <neutronic p="160.022" r="4.72066" t="64.6185"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10533" x="-2.32750767178" y="1.43813515625" z="0.744401343575">
+        <neutronic p="159.432" r="4.71998" t="64.7028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10534" x="-2.32750767178" y="1.4763171875" z="0.744401343575">
+        <neutronic p="158.846" r="4.71926" t="64.7889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10535" x="-2.32750767178" y="1.51449921875" z="0.744401343575">
+        <neutronic p="158.265" r="4.71852" t="64.8768"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10536" x="-2.32750767178" y="1.55268125" z="0.744401343575">
+        <neutronic p="157.688" r="4.71776" t="64.9663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10537" x="-2.32750767178" y="1.59086328125" z="0.744401343575">
+        <neutronic p="157.116" r="4.71697" t="65.0576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10538" x="-2.32750767178" y="1.6290453125" z="0.744401343575">
+        <neutronic p="156.548" r="4.71616" t="65.1504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10539" x="-2.32750767178" y="1.66722734375" z="0.744401343575">
+        <neutronic p="155.985" r="4.71532" t="65.2447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10540" x="-2.32750767178" y="1.705409375" z="0.744401343575">
+        <neutronic p="155.426" r="4.71445" t="65.3404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10541" x="-2.32750767178" y="1.74359140625" z="0.744401343575">
+        <neutronic p="154.872" r="4.71356" t="65.4376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10542" x="-2.32750767178" y="1.7817734375" z="0.744401343575">
+        <neutronic p="154.323" r="4.71265" t="65.536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10543" x="-2.32750767178" y="1.81995546875" z="0.744401343575">
+        <neutronic p="153.779" r="4.71172" t="65.6357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10544" x="-2.32750767178" y="1.8581375" z="0.744401343575">
+        <neutronic p="153.239" r="4.71076" t="65.7366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10545" x="-2.32750767178" y="1.89631953125" z="0.744401343575">
+        <neutronic p="152.704" r="4.70977" t="65.8386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10565" x="-2.29025711278" y="0.21631015625" z="0.852142992607">
+        <neutronic p="179.761" r="4.72838" t="60.4929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10566" x="-2.29025711278" y="0.2544921875" z="0.852142992607">
+        <neutronic p="179.087" r="4.72855" t="60.4958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10567" x="-2.29025711278" y="0.29267421875" z="0.852142992607">
+        <neutronic p="178.412" r="4.7287" t="60.5022"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10568" x="-2.29025711278" y="0.33085625" z="0.852142992607">
+        <neutronic p="177.737" r="4.72882" t="60.5119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10569" x="-2.29025711278" y="0.36903828125" z="0.852142992607">
+        <neutronic p="177.062" r="4.72891" t="60.525"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10570" x="-2.29025711278" y="0.4072203125" z="0.852142992607">
+        <neutronic p="176.387" r="4.72897" t="60.5416"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10571" x="-2.29025711278" y="0.44540234375" z="0.852142992607">
+        <neutronic p="175.713" r="4.729" t="60.5615"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10572" x="-2.29025711278" y="0.483584375" z="0.852142992607">
+        <neutronic p="175.04" r="4.72901" t="60.5848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10573" x="-2.29025711278" y="0.52176640625" z="0.852142992607">
+        <neutronic p="174.367" r="4.72898" t="60.6115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10574" x="-2.29025711278" y="0.5599484375" z="0.852142992607">
+        <neutronic p="173.696" r="4.72893" t="60.6415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10575" x="-2.29025711278" y="0.59813046875" z="0.852142992607">
+        <neutronic p="173.026" r="4.72885" t="60.6748"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10576" x="-2.29025711278" y="0.6363125" z="0.852142992607">
+        <neutronic p="172.357" r="4.72874" t="60.7114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10577" x="-2.29025711278" y="0.67449453125" z="0.852142992607">
+        <neutronic p="171.69" r="4.7286" t="60.7512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10578" x="-2.29025711278" y="0.7126765625" z="0.852142992607">
+        <neutronic p="171.025" r="4.72843" t="60.7943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10579" x="-2.29025711278" y="0.75085859375" z="0.852142992607">
+        <neutronic p="170.362" r="4.72824" t="60.8406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10580" x="-2.29025711278" y="0.789040625" z="0.852142992607">
+        <neutronic p="169.701" r="4.72801" t="60.8899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10581" x="-2.29025711278" y="0.82722265625" z="0.852142992607">
+        <neutronic p="169.043" r="4.72776" t="60.9424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10582" x="-2.29025711278" y="0.8654046875" z="0.852142992607">
+        <neutronic p="168.387" r="4.72748" t="60.998"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10583" x="-2.29025711278" y="0.90358671875" z="0.852142992607">
+        <neutronic p="167.733" r="4.72717" t="61.0565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10584" x="-2.29025711278" y="0.94176875" z="0.852142992607">
+        <neutronic p="167.083" r="4.72684" t="61.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10585" x="-2.29025711278" y="0.97995078125" z="0.852142992607">
+        <neutronic p="166.435" r="4.72647" t="61.1824"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10586" x="-2.29025711278" y="1.0181328125" z="0.852142992607">
+        <neutronic p="165.791" r="4.72608" t="61.2497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10587" x="-2.29025711278" y="1.05631484375" z="0.852142992607">
+        <neutronic p="165.15" r="4.72566" t="61.3197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10588" x="-2.29025711278" y="1.094496875" z="0.852142992607">
+        <neutronic p="164.512" r="4.72521" t="61.3924"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10589" x="-2.29025711278" y="1.13267890625" z="0.852142992607">
+        <neutronic p="163.878" r="4.72474" t="61.4678"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10590" x="-2.29025711278" y="1.1708609375" z="0.852142992607">
+        <neutronic p="163.248" r="4.72424" t="61.5457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10591" x="-2.29025711278" y="1.20904296875" z="0.852142992607">
+        <neutronic p="162.621" r="4.72371" t="61.6262"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10592" x="-2.29025711278" y="1.247225" z="0.852142992607">
+        <neutronic p="161.999" r="4.72315" t="61.7092"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10593" x="-2.29025711278" y="1.28540703125" z="0.852142992607">
+        <neutronic p="161.38" r="4.72257" t="61.7945"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10594" x="-2.29025711278" y="1.3235890625" z="0.852142992607">
+        <neutronic p="160.766" r="4.72196" t="61.8822"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10595" x="-2.29025711278" y="1.36177109375" z="0.852142992607">
+        <neutronic p="160.156" r="4.72133" t="61.9721"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10596" x="-2.29025711278" y="1.399953125" z="0.852142992607">
+        <neutronic p="159.55" r="4.72066" t="62.0642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10597" x="-2.29025711278" y="1.43813515625" z="0.852142992607">
+        <neutronic p="158.948" r="4.71998" t="62.1584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10598" x="-2.29025711278" y="1.4763171875" z="0.852142992607">
+        <neutronic p="158.352" r="4.71926" t="62.2546"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10599" x="-2.29025711278" y="1.51449921875" z="0.852142992607">
+        <neutronic p="157.76" r="4.71852" t="62.3528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10600" x="-2.29025711278" y="1.55268125" z="0.852142992607">
+        <neutronic p="157.172" r="4.71776" t="62.4529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10601" x="-2.29025711278" y="1.59086328125" z="0.852142992607">
+        <neutronic p="156.589" r="4.71697" t="62.5548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10602" x="-2.29025711278" y="1.6290453125" z="0.852142992607">
+        <neutronic p="156.012" r="4.71616" t="62.6584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10603" x="-2.29025711278" y="1.66722734375" z="0.852142992607">
+        <neutronic p="155.439" r="4.71532" t="62.7637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10604" x="-2.29025711278" y="1.705409375" z="0.852142992607">
+        <neutronic p="154.871" r="4.71445" t="62.8706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10605" x="-2.29025711278" y="1.74359140625" z="0.852142992607">
+        <neutronic p="154.308" r="4.71356" t="62.979"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10606" x="-2.29025711278" y="1.7817734375" z="0.852142992607">
+        <neutronic p="153.75" r="4.71265" t="63.0888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10607" x="-2.29025711278" y="1.81995546875" z="0.852142992607">
+        <neutronic p="153.197" r="4.71172" t="63.2"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10608" x="-2.29025711278" y="1.8581375" z="0.852142992607">
+        <neutronic p="152.649" r="4.71076" t="63.3125"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10609" x="-2.29025711278" y="1.89631953125" z="0.852142992607">
+        <neutronic p="152.106" r="4.70977" t="63.4263"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10629" x="-2.24802216976" y="0.21631015625" z="0.958030086575">
+        <neutronic p="179.755" r="4.72838" t="57.7711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10630" x="-2.24802216976" y="0.2544921875" z="0.958030086575">
+        <neutronic p="179.06" r="4.72855" t="57.7744"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10631" x="-2.24802216976" y="0.29267421875" z="0.958030086575">
+        <neutronic p="178.366" r="4.7287" t="57.7814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10632" x="-2.24802216976" y="0.33085625" z="0.958030086575">
+        <neutronic p="177.671" r="4.72882" t="57.7923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10633" x="-2.24802216976" y="0.36903828125" z="0.958030086575">
+        <neutronic p="176.977" r="4.72891" t="57.8069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10634" x="-2.24802216976" y="0.4072203125" z="0.958030086575">
+        <neutronic p="176.283" r="4.72897" t="57.8253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10635" x="-2.24802216976" y="0.44540234375" z="0.958030086575">
+        <neutronic p="175.59" r="4.729" t="57.8475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10636" x="-2.24802216976" y="0.483584375" z="0.958030086575">
+        <neutronic p="174.898" r="4.72901" t="57.8735"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10637" x="-2.24802216976" y="0.52176640625" z="0.958030086575">
+        <neutronic p="174.206" r="4.72898" t="57.9031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10638" x="-2.24802216976" y="0.5599484375" z="0.958030086575">
+        <neutronic p="173.516" r="4.72893" t="57.9366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10639" x="-2.24802216976" y="0.59813046875" z="0.958030086575">
+        <neutronic p="172.827" r="4.72885" t="57.9737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10640" x="-2.24802216976" y="0.6363125" z="0.958030086575">
+        <neutronic p="172.14" r="4.72874" t="58.0144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10641" x="-2.24802216976" y="0.67449453125" z="0.958030086575">
+        <neutronic p="171.455" r="4.7286" t="58.0588"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10642" x="-2.24802216976" y="0.7126765625" z="0.958030086575">
+        <neutronic p="170.771" r="4.72843" t="58.1067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10643" x="-2.24802216976" y="0.75085859375" z="0.958030086575">
+        <neutronic p="170.09" r="4.72824" t="58.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10644" x="-2.24802216976" y="0.789040625" z="0.958030086575">
+        <neutronic p="169.411" r="4.72801" t="58.2132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10645" x="-2.24802216976" y="0.82722265625" z="0.958030086575">
+        <neutronic p="168.735" r="4.72776" t="58.2716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10646" x="-2.24802216976" y="0.8654046875" z="0.958030086575">
+        <neutronic p="168.062" r="4.72748" t="58.3334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10647" x="-2.24802216976" y="0.90358671875" z="0.958030086575">
+        <neutronic p="167.391" r="4.72717" t="58.3986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10648" x="-2.24802216976" y="0.94176875" z="0.958030086575">
+        <neutronic p="166.724" r="4.72684" t="58.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10649" x="-2.24802216976" y="0.97995078125" z="0.958030086575">
+        <neutronic p="166.06" r="4.72647" t="58.5386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10650" x="-2.24802216976" y="1.0181328125" z="0.958030086575">
+        <neutronic p="165.399" r="4.72608" t="58.6134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10651" x="-2.24802216976" y="1.05631484375" z="0.958030086575">
+        <neutronic p="164.742" r="4.72566" t="58.6912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10652" x="-2.24802216976" y="1.094496875" z="0.958030086575">
+        <neutronic p="164.089" r="4.72521" t="58.7721"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10653" x="-2.24802216976" y="1.13267890625" z="0.958030086575">
+        <neutronic p="163.439" r="4.72474" t="58.8559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10654" x="-2.24802216976" y="1.1708609375" z="0.958030086575">
+        <neutronic p="162.793" r="4.72424" t="58.9425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10655" x="-2.24802216976" y="1.20904296875" z="0.958030086575">
+        <neutronic p="162.152" r="4.72371" t="59.032"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10656" x="-2.24802216976" y="1.247225" z="0.958030086575">
+        <neutronic p="161.515" r="4.72315" t="59.1241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10657" x="-2.24802216976" y="1.28540703125" z="0.958030086575">
+        <neutronic p="160.882" r="4.72257" t="59.2189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10658" x="-2.24802216976" y="1.3235890625" z="0.958030086575">
+        <neutronic p="160.254" r="4.72196" t="59.3163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10659" x="-2.24802216976" y="1.36177109375" z="0.958030086575">
+        <neutronic p="159.63" r="4.72133" t="59.4161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10660" x="-2.24802216976" y="1.399953125" z="0.958030086575">
+        <neutronic p="159.011" r="4.72066" t="59.5183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10661" x="-2.24802216976" y="1.43813515625" z="0.958030086575">
+        <neutronic p="158.397" r="4.71998" t="59.6229"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10662" x="-2.24802216976" y="1.4763171875" z="0.958030086575">
+        <neutronic p="157.788" r="4.71926" t="59.7297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10663" x="-2.24802216976" y="1.51449921875" z="0.958030086575">
+        <neutronic p="157.184" r="4.71852" t="59.8386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10664" x="-2.24802216976" y="1.55268125" z="0.958030086575">
+        <neutronic p="156.584" r="4.71776" t="59.9496"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10665" x="-2.24802216976" y="1.59086328125" z="0.958030086575">
+        <neutronic p="155.99" r="4.71697" t="60.0626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10666" x="-2.24802216976" y="1.6290453125" z="0.958030086575">
+        <neutronic p="155.401" r="4.71616" t="60.1775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10667" x="-2.24802216976" y="1.66722734375" z="0.958030086575">
+        <neutronic p="154.818" r="4.71532" t="60.2942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10668" x="-2.24802216976" y="1.705409375" z="0.958030086575">
+        <neutronic p="154.239" r="4.71445" t="60.4126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10669" x="-2.24802216976" y="1.74359140625" z="0.958030086575">
+        <neutronic p="153.666" r="4.71356" t="60.5327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10670" x="-2.24802216976" y="1.7817734375" z="0.958030086575">
+        <neutronic p="153.099" r="4.71265" t="60.6544"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10671" x="-2.24802216976" y="1.81995546875" z="0.958030086575">
+        <neutronic p="152.536" r="4.71172" t="60.7776"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10672" x="-2.24802216976" y="1.8581375" z="0.958030086575">
+        <neutronic p="151.98" r="4.71076" t="60.9022"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10673" x="-2.24802216976" y="1.89631953125" z="0.958030086575">
+        <neutronic p="151.428" r="4.70977" t="61.0282"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10693" x="-2.2008947604" y="0.21631015625" z="1.06183217889">
+        <neutronic p="179.747" r="4.72838" t="55.0494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10694" x="-2.2008947604" y="0.2544921875" z="1.06183217889">
+        <neutronic p="179.03" r="4.72855" t="55.0529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10695" x="-2.2008947604" y="0.29267421875" z="1.06183217889">
+        <neutronic p="178.314" r="4.7287" t="55.0607"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10696" x="-2.2008947604" y="0.33085625" z="1.06183217889">
+        <neutronic p="177.597" r="4.72882" t="55.0728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10697" x="-2.2008947604" y="0.36903828125" z="1.06183217889">
+        <neutronic p="176.88" r="4.72891" t="55.089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10698" x="-2.2008947604" y="0.4072203125" z="1.06183217889">
+        <neutronic p="176.165" r="4.72897" t="55.1094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10699" x="-2.2008947604" y="0.44540234375" z="1.06183217889">
+        <neutronic p="175.449" r="4.729" t="55.134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10700" x="-2.2008947604" y="0.483584375" z="1.06183217889">
+        <neutronic p="174.735" r="4.72901" t="55.1628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10701" x="-2.2008947604" y="0.52176640625" z="1.06183217889">
+        <neutronic p="174.022" r="4.72898" t="55.1957"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10702" x="-2.2008947604" y="0.5599484375" z="1.06183217889">
+        <neutronic p="173.31" r="4.72893" t="55.2327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10703" x="-2.2008947604" y="0.59813046875" z="1.06183217889">
+        <neutronic p="172.6" r="4.72885" t="55.2738"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10704" x="-2.2008947604" y="0.6363125" z="1.06183217889">
+        <neutronic p="171.891" r="4.72874" t="55.319"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10705" x="-2.2008947604" y="0.67449453125" z="1.06183217889">
+        <neutronic p="171.185" r="4.7286" t="55.3681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10706" x="-2.2008947604" y="0.7126765625" z="1.06183217889">
+        <neutronic p="170.481" r="4.72843" t="55.4212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10707" x="-2.2008947604" y="0.75085859375" z="1.06183217889">
+        <neutronic p="169.779" r="4.72824" t="55.4783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10708" x="-2.2008947604" y="0.789040625" z="1.06183217889">
+        <neutronic p="169.08" r="4.72801" t="55.5392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10709" x="-2.2008947604" y="0.82722265625" z="1.06183217889">
+        <neutronic p="168.384" r="4.72776" t="55.6038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10710" x="-2.2008947604" y="0.8654046875" z="1.06183217889">
+        <neutronic p="167.69" r="4.72748" t="55.6723"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10711" x="-2.2008947604" y="0.90358671875" z="1.06183217889">
+        <neutronic p="167.0" r="4.72717" t="55.7444"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10712" x="-2.2008947604" y="0.94176875" z="1.06183217889">
+        <neutronic p="166.314" r="4.72684" t="55.8201"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10713" x="-2.2008947604" y="0.97995078125" z="1.06183217889">
+        <neutronic p="165.631" r="4.72647" t="55.8994"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10714" x="-2.2008947604" y="1.0181328125" z="1.06183217889">
+        <neutronic p="164.952" r="4.72608" t="55.9821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10715" x="-2.2008947604" y="1.05631484375" z="1.06183217889">
+        <neutronic p="164.277" r="4.72566" t="56.0682"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10716" x="-2.2008947604" y="1.094496875" z="1.06183217889">
+        <neutronic p="163.605" r="4.72521" t="56.1576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10717" x="-2.2008947604" y="1.13267890625" z="1.06183217889">
+        <neutronic p="162.938" r="4.72474" t="56.2503"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10718" x="-2.2008947604" y="1.1708609375" z="1.06183217889">
+        <neutronic p="162.276" r="4.72424" t="56.3461"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10719" x="-2.2008947604" y="1.20904296875" z="1.06183217889">
+        <neutronic p="161.618" r="4.72371" t="56.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10720" x="-2.2008947604" y="1.247225" z="1.06183217889">
+        <neutronic p="160.964" r="4.72315" t="56.5468"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10721" x="-2.2008947604" y="1.28540703125" z="1.06183217889">
+        <neutronic p="160.316" r="4.72257" t="56.6516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10722" x="-2.2008947604" y="1.3235890625" z="1.06183217889">
+        <neutronic p="159.672" r="4.72196" t="56.7591"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10723" x="-2.2008947604" y="1.36177109375" z="1.06183217889">
+        <neutronic p="159.033" r="4.72133" t="56.8694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10724" x="-2.2008947604" y="1.399953125" z="1.06183217889">
+        <neutronic p="158.4" r="4.72066" t="56.9823"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10725" x="-2.2008947604" y="1.43813515625" z="1.06183217889">
+        <neutronic p="157.771" r="4.71998" t="57.0977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10726" x="-2.2008947604" y="1.4763171875" z="1.06183217889">
+        <neutronic p="157.148" r="4.71926" t="57.2155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10727" x="-2.2008947604" y="1.51449921875" z="1.06183217889">
+        <neutronic p="156.53" r="4.71852" t="57.3357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10728" x="-2.2008947604" y="1.55268125" z="1.06183217889">
+        <neutronic p="155.918" r="4.71776" t="57.4582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10729" x="-2.2008947604" y="1.59086328125" z="1.06183217889">
+        <neutronic p="155.311" r="4.71697" t="57.5828"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10730" x="-2.2008947604" y="1.6290453125" z="1.06183217889">
+        <neutronic p="154.71" r="4.71616" t="57.7094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10731" x="-2.2008947604" y="1.66722734375" z="1.06183217889">
+        <neutronic p="154.114" r="4.71532" t="57.8381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10732" x="-2.2008947604" y="1.705409375" z="1.06183217889">
+        <neutronic p="153.525" r="4.71445" t="57.9686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10733" x="-2.2008947604" y="1.74359140625" z="1.06183217889">
+        <neutronic p="152.94" r="4.71356" t="58.1009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10734" x="-2.2008947604" y="1.7817734375" z="1.06183217889">
+        <neutronic p="152.362" r="4.71265" t="58.235"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10735" x="-2.2008947604" y="1.81995546875" z="1.06183217889">
+        <neutronic p="151.79" r="4.71172" t="58.3706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10736" x="-2.2008947604" y="1.8581375" z="1.06183217889">
+        <neutronic p="151.223" r="4.71076" t="58.5078"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10737" x="-2.2008947604" y="1.89631953125" z="1.06183217889">
+        <neutronic p="150.662" r="4.70977" t="58.6464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10757" x="-2.14897745011" y="0.21631015625" z="1.16332336064">
+        <neutronic p="179.738" r="4.72838" t="52.3276"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10758" x="-2.14897745011" y="0.2544921875" z="1.16332336064">
+        <neutronic p="178.996" r="4.72855" t="52.3315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10759" x="-2.14897745011" y="0.29267421875" z="1.16332336064">
+        <neutronic p="178.254" r="4.7287" t="52.3401"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10760" x="-2.14897745011" y="0.33085625" z="1.16332336064">
+        <neutronic p="177.512" r="4.72882" t="52.3534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10761" x="-2.14897745011" y="0.36903828125" z="1.16332336064">
+        <neutronic p="176.77" r="4.72891" t="52.3713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10762" x="-2.14897745011" y="0.4072203125" z="1.16332336064">
+        <neutronic p="176.029" r="4.72897" t="52.3939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10763" x="-2.14897745011" y="0.44540234375" z="1.16332336064">
+        <neutronic p="175.288" r="4.729" t="52.4211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10764" x="-2.14897745011" y="0.483584375" z="1.16332336064">
+        <neutronic p="174.549" r="4.72901" t="52.4528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10765" x="-2.14897745011" y="0.52176640625" z="1.16332336064">
+        <neutronic p="173.811" r="4.72898" t="52.4892"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10766" x="-2.14897745011" y="0.5599484375" z="1.16332336064">
+        <neutronic p="173.074" r="4.72893" t="52.5301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10767" x="-2.14897745011" y="0.59813046875" z="1.16332336064">
+        <neutronic p="172.34" r="4.72885" t="52.5754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10768" x="-2.14897745011" y="0.6363125" z="1.16332336064">
+        <neutronic p="171.607" r="4.72874" t="52.6253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10769" x="-2.14897745011" y="0.67449453125" z="1.16332336064">
+        <neutronic p="170.877" r="4.7286" t="52.6796"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10770" x="-2.14897745011" y="0.7126765625" z="1.16332336064">
+        <neutronic p="170.149" r="4.72843" t="52.7382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10771" x="-2.14897745011" y="0.75085859375" z="1.16332336064">
+        <neutronic p="169.424" r="4.72824" t="52.8011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10772" x="-2.14897745011" y="0.789040625" z="1.16332336064">
+        <neutronic p="168.702" r="4.72801" t="52.8683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10773" x="-2.14897745011" y="0.82722265625" z="1.16332336064">
+        <neutronic p="167.983" r="4.72776" t="52.9397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10774" x="-2.14897745011" y="0.8654046875" z="1.16332336064">
+        <neutronic p="167.267" r="4.72748" t="53.0152"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10775" x="-2.14897745011" y="0.90358671875" z="1.16332336064">
+        <neutronic p="166.555" r="4.72717" t="53.0947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10776" x="-2.14897745011" y="0.94176875" z="1.16332336064">
+        <neutronic p="165.847" r="4.72684" t="53.1782"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10777" x="-2.14897745011" y="0.97995078125" z="1.16332336064">
+        <neutronic p="165.143" r="4.72647" t="53.2655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10778" x="-2.14897745011" y="1.0181328125" z="1.16332336064">
+        <neutronic p="164.443" r="4.72608" t="53.3567"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10779" x="-2.14897745011" y="1.05631484375" z="1.16332336064">
+        <neutronic p="163.747" r="4.72566" t="53.4516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10780" x="-2.14897745011" y="1.094496875" z="1.16332336064">
+        <neutronic p="163.056" r="4.72521" t="53.5501"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10781" x="-2.14897745011" y="1.13267890625" z="1.16332336064">
+        <neutronic p="162.369" r="4.72474" t="53.6522"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10782" x="-2.14897745011" y="1.1708609375" z="1.16332336064">
+        <neutronic p="161.687" r="4.72424" t="53.7577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10783" x="-2.14897745011" y="1.20904296875" z="1.16332336064">
+        <neutronic p="161.011" r="4.72371" t="53.8665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10784" x="-2.14897745011" y="1.247225" z="1.16332336064">
+        <neutronic p="160.339" r="4.72315" t="53.9786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10785" x="-2.14897745011" y="1.28540703125" z="1.16332336064">
+        <neutronic p="159.673" r="4.72257" t="54.0939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10786" x="-2.14897745011" y="1.3235890625" z="1.16332336064">
+        <neutronic p="159.011" r="4.72196" t="54.2122"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10787" x="-2.14897745011" y="1.36177109375" z="1.16332336064">
+        <neutronic p="158.356" r="4.72133" t="54.3335"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10788" x="-2.14897745011" y="1.399953125" z="1.16332336064">
+        <neutronic p="157.706" r="4.72066" t="54.4576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10789" x="-2.14897745011" y="1.43813515625" z="1.16332336064">
+        <neutronic p="157.062" r="4.71998" t="54.5844"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10790" x="-2.14897745011" y="1.4763171875" z="1.16332336064">
+        <neutronic p="156.423" r="4.71926" t="54.7139"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10791" x="-2.14897745011" y="1.51449921875" z="1.16332336064">
+        <neutronic p="155.791" r="4.71852" t="54.846"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10792" x="-2.14897745011" y="1.55268125" z="1.16332336064">
+        <neutronic p="155.164" r="4.71776" t="54.9805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10793" x="-2.14897745011" y="1.59086328125" z="1.16332336064">
+        <neutronic p="154.543" r="4.71697" t="55.1173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10794" x="-2.14897745011" y="1.6290453125" z="1.16332336064">
+        <neutronic p="153.929" r="4.71616" t="55.2563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10795" x="-2.14897745011" y="1.66722734375" z="1.16332336064">
+        <neutronic p="153.32" r="4.71532" t="55.3975"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10796" x="-2.14897745011" y="1.705409375" z="1.16332336064">
+        <neutronic p="152.718" r="4.71445" t="55.5407"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10797" x="-2.14897745011" y="1.74359140625" z="1.16332336064">
+        <neutronic p="152.122" r="4.71356" t="55.6858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10798" x="-2.14897745011" y="1.7817734375" z="1.16332336064">
+        <neutronic p="151.532" r="4.71265" t="55.8328"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10799" x="-2.14897745011" y="1.81995546875" z="1.16332336064">
+        <neutronic p="150.948" r="4.71172" t="55.9814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10800" x="-2.14897745011" y="1.8581375" z="1.16332336064">
+        <neutronic p="150.371" r="4.71076" t="56.1317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10801" x="-2.14897745011" y="1.89631953125" z="1.16332336064">
+        <neutronic p="149.8" r="4.70977" t="56.2836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10821" x="-2.09238322873" y="0.21631015625" z="1.26228275225">
+        <neutronic p="179.727" r="4.72838" t="49.6058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10822" x="-2.09238322873" y="0.2544921875" z="1.26228275225">
+        <neutronic p="178.956" r="4.72855" t="49.6101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10823" x="-2.09238322873" y="0.29267421875" z="1.26228275225">
+        <neutronic p="178.185" r="4.7287" t="49.6196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10824" x="-2.09238322873" y="0.33085625" z="1.26228275225">
+        <neutronic p="177.414" r="4.72882" t="49.6343"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10825" x="-2.09238322873" y="0.36903828125" z="1.26228275225">
+        <neutronic p="176.643" r="4.72891" t="49.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10826" x="-2.09238322873" y="0.4072203125" z="1.26228275225">
+        <neutronic p="175.873" r="4.72897" t="49.6789"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10827" x="-2.09238322873" y="0.44540234375" z="1.26228275225">
+        <neutronic p="175.104" r="4.729" t="49.7088"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10828" x="-2.09238322873" y="0.483584375" z="1.26228275225">
+        <neutronic p="174.336" r="4.72901" t="49.7438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10829" x="-2.09238322873" y="0.52176640625" z="1.26228275225">
+        <neutronic p="173.57" r="4.72898" t="49.7838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10830" x="-2.09238322873" y="0.5599484375" z="1.26228275225">
+        <neutronic p="172.805" r="4.72893" t="49.8289"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10831" x="-2.09238322873" y="0.59813046875" z="1.26228275225">
+        <neutronic p="172.043" r="4.72885" t="49.8788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10832" x="-2.09238322873" y="0.6363125" z="1.26228275225">
+        <neutronic p="171.282" r="4.72874" t="49.9337"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10833" x="-2.09238322873" y="0.67449453125" z="1.26228275225">
+        <neutronic p="170.525" r="4.7286" t="49.9935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10834" x="-2.09238322873" y="0.7126765625" z="1.26228275225">
+        <neutronic p="169.77" r="4.72843" t="50.058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10835" x="-2.09238322873" y="0.75085859375" z="1.26228275225">
+        <neutronic p="169.018" r="4.72824" t="50.1273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10836" x="-2.09238322873" y="0.789040625" z="1.26228275225">
+        <neutronic p="168.27" r="4.72801" t="50.2012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10837" x="-2.09238322873" y="0.82722265625" z="1.26228275225">
+        <neutronic p="167.525" r="4.72776" t="50.2797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10838" x="-2.09238322873" y="0.8654046875" z="1.26228275225">
+        <neutronic p="166.784" r="4.72748" t="50.3628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10839" x="-2.09238322873" y="0.90358671875" z="1.26228275225">
+        <neutronic p="166.047" r="4.72717" t="50.4502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10840" x="-2.09238322873" y="0.94176875" z="1.26228275225">
+        <neutronic p="165.314" r="4.72684" t="50.542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10841" x="-2.09238322873" y="0.97995078125" z="1.26228275225">
+        <neutronic p="164.586" r="4.72647" t="50.6381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10842" x="-2.09238322873" y="1.0181328125" z="1.26228275225">
+        <neutronic p="163.863" r="4.72608" t="50.7383"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10843" x="-2.09238322873" y="1.05631484375" z="1.26228275225">
+        <neutronic p="163.144" r="4.72566" t="50.8425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10844" x="-2.09238322873" y="1.094496875" z="1.26228275225">
+        <neutronic p="162.43" r="4.72521" t="50.9508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10845" x="-2.09238322873" y="1.13267890625" z="1.26228275225">
+        <neutronic p="161.722" r="4.72474" t="51.0628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10846" x="-2.09238322873" y="1.1708609375" z="1.26228275225">
+        <neutronic p="161.019" r="4.72424" t="51.1787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10847" x="-2.09238322873" y="1.20904296875" z="1.26228275225">
+        <neutronic p="160.321" r="4.72371" t="51.2981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10848" x="-2.09238322873" y="1.247225" z="1.26228275225">
+        <neutronic p="159.629" r="4.72315" t="51.4211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10849" x="-2.09238322873" y="1.28540703125" z="1.26228275225">
+        <neutronic p="158.943" r="4.72257" t="51.5476"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10850" x="-2.09238322873" y="1.3235890625" z="1.26228275225">
+        <neutronic p="158.263" r="4.72196" t="51.6773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10851" x="-2.09238322873" y="1.36177109375" z="1.26228275225">
+        <neutronic p="157.589" r="4.72133" t="51.8102"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10852" x="-2.09238322873" y="1.399953125" z="1.26228275225">
+        <neutronic p="156.921" r="4.72066" t="51.9462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10853" x="-2.09238322873" y="1.43813515625" z="1.26228275225">
+        <neutronic p="156.259" r="4.71998" t="52.0852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10854" x="-2.09238322873" y="1.4763171875" z="1.26228275225">
+        <neutronic p="155.603" r="4.71926" t="52.227"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10855" x="-2.09238322873" y="1.51449921875" z="1.26228275225">
+        <neutronic p="154.954" r="4.71852" t="52.3716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10856" x="-2.09238322873" y="1.55268125" z="1.26228275225">
+        <neutronic p="154.312" r="4.71776" t="52.5188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10857" x="-2.09238322873" y="1.59086328125" z="1.26228275225">
+        <neutronic p="153.676" r="4.71697" t="52.6685"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10858" x="-2.09238322873" y="1.6290453125" z="1.26228275225">
+        <neutronic p="153.047" r="4.71616" t="52.8206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10859" x="-2.09238322873" y="1.66722734375" z="1.26228275225">
+        <neutronic p="152.424" r="4.71532" t="52.9749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10860" x="-2.09238322873" y="1.705409375" z="1.26228275225">
+        <neutronic p="151.809" r="4.71445" t="53.1315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10861" x="-2.09238322873" y="1.74359140625" z="1.26228275225">
+        <neutronic p="151.199" r="4.71356" t="53.29"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10862" x="-2.09238322873" y="1.7817734375" z="1.26228275225">
+        <neutronic p="150.597" r="4.71265" t="53.4505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10863" x="-2.09238322873" y="1.81995546875" z="1.26228275225">
+        <neutronic p="150.002" r="4.71172" t="53.6129"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10864" x="-2.09238322873" y="1.8581375" z="1.26228275225">
+        <neutronic p="149.413" r="4.71076" t="53.777"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10865" x="-2.09238322873" y="1.89631953125" z="1.26228275225">
+        <neutronic p="148.831" r="4.70977" t="53.9426"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10885" x="-2.03123526467" y="0.21631015625" z="1.35849498418">
+        <neutronic p="179.716" r="4.72838" t="46.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10886" x="-2.03123526467" y="0.2544921875" z="1.35849498418">
+        <neutronic p="178.911" r="4.72855" t="46.8888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10887" x="-2.03123526467" y="0.29267421875" z="1.35849498418">
+        <neutronic p="178.107" r="4.7287" t="46.8993"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10888" x="-2.03123526467" y="0.33085625" z="1.35849498418">
+        <neutronic p="177.302" r="4.72882" t="46.9153"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10889" x="-2.03123526467" y="0.36903828125" z="1.35849498418">
+        <neutronic p="176.498" r="4.72891" t="46.9371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10890" x="-2.03123526467" y="0.4072203125" z="1.35849498418">
+        <neutronic p="175.695" r="4.72897" t="46.9644"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10891" x="-2.03123526467" y="0.44540234375" z="1.35849498418">
+        <neutronic p="174.893" r="4.729" t="46.9973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10892" x="-2.03123526467" y="0.483584375" z="1.35849498418">
+        <neutronic p="174.092" r="4.72901" t="47.0358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10893" x="-2.03123526467" y="0.52176640625" z="1.35849498418">
+        <neutronic p="173.294" r="4.72898" t="47.0799"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10894" x="-2.03123526467" y="0.5599484375" z="1.35849498418">
+        <neutronic p="172.497" r="4.72893" t="47.1294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10895" x="-2.03123526467" y="0.59813046875" z="1.35849498418">
+        <neutronic p="171.702" r="4.72885" t="47.1843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10896" x="-2.03123526467" y="0.6363125" z="1.35849498418">
+        <neutronic p="170.911" r="4.72874" t="47.2447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10897" x="-2.03123526467" y="0.67449453125" z="1.35849498418">
+        <neutronic p="170.122" r="4.7286" t="47.3104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10898" x="-2.03123526467" y="0.7126765625" z="1.35849498418">
+        <neutronic p="169.337" r="4.72843" t="47.3813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10899" x="-2.03123526467" y="0.75085859375" z="1.35849498418">
+        <neutronic p="168.555" r="4.72824" t="47.4574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10900" x="-2.03123526467" y="0.789040625" z="1.35849498418">
+        <neutronic p="167.777" r="4.72801" t="47.5386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10901" x="-2.03123526467" y="0.82722265625" z="1.35849498418">
+        <neutronic p="167.003" r="4.72776" t="47.6248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10902" x="-2.03123526467" y="0.8654046875" z="1.35849498418">
+        <neutronic p="166.233" r="4.72748" t="47.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10903" x="-2.03123526467" y="0.90358671875" z="1.35849498418">
+        <neutronic p="165.468" r="4.72717" t="47.812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10904" x="-2.03123526467" y="0.94176875" z="1.35849498418">
+        <neutronic p="164.707" r="4.72684" t="47.9127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10905" x="-2.03123526467" y="0.97995078125" z="1.35849498418">
+        <neutronic p="163.952" r="4.72647" t="48.0181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10906" x="-2.03123526467" y="1.0181328125" z="1.35849498418">
+        <neutronic p="163.202" r="4.72608" t="48.128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10907" x="-2.03123526467" y="1.05631484375" z="1.35849498418">
+        <neutronic p="162.457" r="4.72566" t="48.2423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10908" x="-2.03123526467" y="1.094496875" z="1.35849498418">
+        <neutronic p="161.719" r="4.72521" t="48.361"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10909" x="-2.03123526467" y="1.13267890625" z="1.35849498418">
+        <neutronic p="160.986" r="4.72474" t="48.4838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10910" x="-2.03123526467" y="1.1708609375" z="1.35849498418">
+        <neutronic p="160.258" r="4.72424" t="48.6107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10911" x="-2.03123526467" y="1.20904296875" z="1.35849498418">
+        <neutronic p="159.538" r="4.72371" t="48.7415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10912" x="-2.03123526467" y="1.247225" z="1.35849498418">
+        <neutronic p="158.823" r="4.72315" t="48.8761"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10913" x="-2.03123526467" y="1.28540703125" z="1.35849498418">
+        <neutronic p="158.115" r="4.72257" t="49.0145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10914" x="-2.03123526467" y="1.3235890625" z="1.35849498418">
+        <neutronic p="157.414" r="4.72196" t="49.1564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10915" x="-2.03123526467" y="1.36177109375" z="1.35849498418">
+        <neutronic p="156.719" r="4.72133" t="49.3018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10916" x="-2.03123526467" y="1.399953125" z="1.35849498418">
+        <neutronic p="156.031" r="4.72066" t="49.4505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10917" x="-2.03123526467" y="1.43813515625" z="1.35849498418">
+        <neutronic p="155.35" r="4.71998" t="49.6023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10918" x="-2.03123526467" y="1.4763171875" z="1.35849498418">
+        <neutronic p="154.676" r="4.71926" t="49.7573"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10919" x="-2.03123526467" y="1.51449921875" z="1.35849498418">
+        <neutronic p="154.01" r="4.71852" t="49.9151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10920" x="-2.03123526467" y="1.55268125" z="1.35849498418">
+        <neutronic p="153.35" r="4.71776" t="50.0758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10921" x="-2.03123526467" y="1.59086328125" z="1.35849498418">
+        <neutronic p="152.698" r="4.71697" t="50.2391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10922" x="-2.03123526467" y="1.6290453125" z="1.35849498418">
+        <neutronic p="152.053" r="4.71616" t="50.405"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10923" x="-2.03123526467" y="1.66722734375" z="1.35849498418">
+        <neutronic p="151.415" r="4.71532" t="50.5733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10924" x="-2.03123526467" y="1.705409375" z="1.35849498418">
+        <neutronic p="150.785" r="4.71445" t="50.7439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10925" x="-2.03123526467" y="1.74359140625" z="1.35849498418">
+        <neutronic p="150.162" r="4.71356" t="50.9167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10926" x="-2.03123526467" y="1.7817734375" z="1.35849498418">
+        <neutronic p="149.546" r="4.71265" t="51.0915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10927" x="-2.03123526467" y="1.81995546875" z="1.35849498418">
+        <neutronic p="148.938" r="4.71172" t="51.2682"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10928" x="-2.03123526467" y="1.8581375" z="1.35849498418">
+        <neutronic p="148.338" r="4.71076" t="51.4467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10929" x="-2.03123526467" y="1.89631953125" z="1.35849498418">
+        <neutronic p="147.745" r="4.70977" t="51.627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10949" x="-1.96566663686" y="0.21631015625" z="1.45175066566">
+        <neutronic p="179.702" r="4.72838" t="44.1622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10950" x="-1.96566663686" y="0.2544921875" z="1.45175066566">
+        <neutronic p="178.859" r="4.72855" t="44.1675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10951" x="-1.96566663686" y="0.29267421875" z="1.45175066566">
+        <neutronic p="178.016" r="4.7287" t="44.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10952" x="-1.96566663686" y="0.33085625" z="1.45175066566">
+        <neutronic p="177.173" r="4.72882" t="44.1967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10953" x="-1.96566663686" y="0.36903828125" z="1.45175066566">
+        <neutronic p="176.331" r="4.72891" t="44.2206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10954" x="-1.96566663686" y="0.4072203125" z="1.45175066566">
+        <neutronic p="175.49" r="4.72897" t="44.2506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10955" x="-1.96566663686" y="0.44540234375" z="1.45175066566">
+        <neutronic p="174.65" r="4.729" t="44.2868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10956" x="-1.96566663686" y="0.483584375" z="1.45175066566">
+        <neutronic p="173.812" r="4.72901" t="44.3291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10957" x="-1.96566663686" y="0.52176640625" z="1.45175066566">
+        <neutronic p="172.976" r="4.72898" t="44.3775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10958" x="-1.96566663686" y="0.5599484375" z="1.45175066566">
+        <neutronic p="172.143" r="4.72893" t="44.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10959" x="-1.96566663686" y="0.59813046875" z="1.45175066566">
+        <neutronic p="171.312" r="4.72885" t="44.4923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10960" x="-1.96566663686" y="0.6363125" z="1.45175066566">
+        <neutronic p="170.484" r="4.72874" t="44.5586"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10961" x="-1.96566663686" y="0.67449453125" z="1.45175066566">
+        <neutronic p="169.66" r="4.7286" t="44.6308"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10962" x="-1.96566663686" y="0.7126765625" z="1.45175066566">
+        <neutronic p="168.84" r="4.72843" t="44.7086"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10963" x="-1.96566663686" y="0.75085859375" z="1.45175066566">
+        <neutronic p="168.023" r="4.72824" t="44.7922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10964" x="-1.96566663686" y="0.789040625" z="1.45175066566">
+        <neutronic p="167.211" r="4.72801" t="44.8813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10965" x="-1.96566663686" y="0.82722265625" z="1.45175066566">
+        <neutronic p="166.404" r="4.72776" t="44.9759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10966" x="-1.96566663686" y="0.8654046875" z="1.45175066566">
+        <neutronic p="165.602" r="4.72748" t="45.0759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10967" x="-1.96566663686" y="0.90358671875" z="1.45175066566">
+        <neutronic p="164.805" r="4.72717" t="45.1812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10968" x="-1.96566663686" y="0.94176875" z="1.45175066566">
+        <neutronic p="164.013" r="4.72684" t="45.2916"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10969" x="-1.96566663686" y="0.97995078125" z="1.45175066566">
+        <neutronic p="163.228" r="4.72647" t="45.4071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10970" x="-1.96566663686" y="1.0181328125" z="1.45175066566">
+        <neutronic p="162.448" r="4.72608" t="45.5275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10971" x="-1.96566663686" y="1.05631484375" z="1.45175066566">
+        <neutronic p="161.674" r="4.72566" t="45.6527"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10972" x="-1.96566663686" y="1.094496875" z="1.45175066566">
+        <neutronic p="160.907" r="4.72521" t="45.7825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10973" x="-1.96566663686" y="1.13267890625" z="1.45175066566">
+        <neutronic p="160.147" r="4.72474" t="45.9169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10974" x="-1.96566663686" y="1.1708609375" z="1.45175066566">
+        <neutronic p="159.393" r="4.72424" t="46.0557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10975" x="-1.96566663686" y="1.20904296875" z="1.45175066566">
+        <neutronic p="158.646" r="4.72371" t="46.1987"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10976" x="-1.96566663686" y="1.247225" z="1.45175066566">
+        <neutronic p="157.907" r="4.72315" t="46.3459"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10977" x="-1.96566663686" y="1.28540703125" z="1.45175066566">
+        <neutronic p="157.175" r="4.72257" t="46.4971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10978" x="-1.96566663686" y="1.3235890625" z="1.45175066566">
+        <neutronic p="156.45" r="4.72196" t="46.6521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10979" x="-1.96566663686" y="1.36177109375" z="1.45175066566">
+        <neutronic p="155.733" r="4.72133" t="46.8108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10980" x="-1.96566663686" y="1.399953125" z="1.45175066566">
+        <neutronic p="155.023" r="4.72066" t="46.973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10981" x="-1.96566663686" y="1.43813515625" z="1.45175066566">
+        <neutronic p="154.321" r="4.71998" t="47.1387"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10982" x="-1.96566663686" y="1.4763171875" z="1.45175066566">
+        <neutronic p="153.627" r="4.71926" t="47.3076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10983" x="-1.96566663686" y="1.51449921875" z="1.45175066566">
+        <neutronic p="152.941" r="4.71852" t="47.4796"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10984" x="-1.96566663686" y="1.55268125" z="1.45175066566">
+        <neutronic p="152.263" r="4.71776" t="47.6546"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10985" x="-1.96566663686" y="1.59086328125" z="1.45175066566">
+        <neutronic p="151.593" r="4.71697" t="47.8325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10986" x="-1.96566663686" y="1.6290453125" z="1.45175066566">
+        <neutronic p="150.931" r="4.71616" t="48.013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10987" x="-1.96566663686" y="1.66722734375" z="1.45175066566">
+        <neutronic p="150.278" r="4.71532" t="48.1961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10988" x="-1.96566663686" y="1.705409375" z="1.45175066566">
+        <neutronic p="149.632" r="4.71445" t="48.3816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10989" x="-1.96566663686" y="1.74359140625" z="1.45175066566">
+        <neutronic p="148.995" r="4.71356" t="48.5694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10990" x="-1.96566663686" y="1.7817734375" z="1.45175066566">
+        <neutronic p="148.365" r="4.71265" t="48.7593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10991" x="-1.96566663686" y="1.81995546875" z="1.45175066566">
+        <neutronic p="147.744" r="4.71172" t="48.9512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10992" x="-1.96566663686" y="1.8581375" z="1.45175066566">
+        <neutronic p="147.131" r="4.71076" t="49.145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="10993" x="-1.96566663686" y="1.89631953125" z="1.45175066566">
+        <neutronic p="146.526" r="4.70977" t="49.3405"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11013" x="-1.89582004508" y="0.21631015625" z="1.54184684038">
+        <neutronic p="179.686" r="4.72838" t="41.4404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11014" x="-1.89582004508" y="0.2544921875" z="1.54184684038">
+        <neutronic p="178.799" r="4.72855" t="41.4462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11015" x="-1.89582004508" y="0.29267421875" z="1.54184684038">
+        <neutronic p="177.912" r="4.7287" t="41.4589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11016" x="-1.89582004508" y="0.33085625" z="1.54184684038">
+        <neutronic p="177.025" r="4.72882" t="41.4783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11017" x="-1.89582004508" y="0.36903828125" z="1.54184684038">
+        <neutronic p="176.139" r="4.72891" t="41.5046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11018" x="-1.89582004508" y="0.4072203125" z="1.54184684038">
+        <neutronic p="175.254" r="4.72897" t="41.5377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11019" x="-1.89582004508" y="0.44540234375" z="1.54184684038">
+        <neutronic p="174.37" r="4.729" t="41.5775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11020" x="-1.89582004508" y="0.483584375" z="1.54184684038">
+        <neutronic p="173.489" r="4.72901" t="41.624"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11021" x="-1.89582004508" y="0.52176640625" z="1.54184684038">
+        <neutronic p="172.61" r="4.72898" t="41.6772"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11022" x="-1.89582004508" y="0.5599484375" z="1.54184684038">
+        <neutronic p="171.735" r="4.72893" t="41.737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11023" x="-1.89582004508" y="0.59813046875" z="1.54184684038">
+        <neutronic p="170.862" r="4.72885" t="41.8034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11024" x="-1.89582004508" y="0.6363125" z="1.54184684038">
+        <neutronic p="169.993" r="4.72874" t="41.8762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11025" x="-1.89582004508" y="0.67449453125" z="1.54184684038">
+        <neutronic p="169.128" r="4.7286" t="41.9554"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11026" x="-1.89582004508" y="0.7126765625" z="1.54184684038">
+        <neutronic p="168.268" r="4.72843" t="42.0409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11027" x="-1.89582004508" y="0.75085859375" z="1.54184684038">
+        <neutronic p="167.412" r="4.72824" t="42.1326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11028" x="-1.89582004508" y="0.789040625" z="1.54184684038">
+        <neutronic p="166.562" r="4.72801" t="42.2304"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11029" x="-1.89582004508" y="0.82722265625" z="1.54184684038">
+        <neutronic p="165.717" r="4.72776" t="42.3342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11030" x="-1.89582004508" y="0.8654046875" z="1.54184684038">
+        <neutronic p="164.878" r="4.72748" t="42.4438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11031" x="-1.89582004508" y="0.90358671875" z="1.54184684038">
+        <neutronic p="164.044" r="4.72717" t="42.5592"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11032" x="-1.89582004508" y="0.94176875" z="1.54184684038">
+        <neutronic p="163.218" r="4.72684" t="42.6802"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11033" x="-1.89582004508" y="0.97995078125" z="1.54184684038">
+        <neutronic p="162.398" r="4.72647" t="42.8067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11034" x="-1.89582004508" y="1.0181328125" z="1.54184684038">
+        <neutronic p="161.585" r="4.72608" t="42.9385"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11035" x="-1.89582004508" y="1.05631484375" z="1.54184684038">
+        <neutronic p="160.779" r="4.72566" t="43.0755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11036" x="-1.89582004508" y="1.094496875" z="1.54184684038">
+        <neutronic p="159.98" r="4.72521" t="43.2176"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11037" x="-1.89582004508" y="1.13267890625" z="1.54184684038">
+        <neutronic p="159.189" r="4.72474" t="43.3645"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11038" x="-1.89582004508" y="1.1708609375" z="1.54184684038">
+        <neutronic p="158.406" r="4.72424" t="43.5162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11039" x="-1.89582004508" y="1.20904296875" z="1.54184684038">
+        <neutronic p="157.63" r="4.72371" t="43.6725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11040" x="-1.89582004508" y="1.247225" z="1.54184684038">
+        <neutronic p="156.863" r="4.72315" t="43.8332"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11041" x="-1.89582004508" y="1.28540703125" z="1.54184684038">
+        <neutronic p="156.105" r="4.72257" t="43.9982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11042" x="-1.89582004508" y="1.3235890625" z="1.54184684038">
+        <neutronic p="155.354" r="4.72196" t="44.1673"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11043" x="-1.89582004508" y="1.36177109375" z="1.54184684038">
+        <neutronic p="154.612" r="4.72133" t="44.3403"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11044" x="-1.89582004508" y="1.399953125" z="1.54184684038">
+        <neutronic p="153.879" r="4.72066" t="44.5171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11045" x="-1.89582004508" y="1.43813515625" z="1.54184684038">
+        <neutronic p="153.155" r="4.71998" t="44.6976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11046" x="-1.89582004508" y="1.4763171875" z="1.54184684038">
+        <neutronic p="152.439" r="4.71926" t="44.8815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11047" x="-1.89582004508" y="1.51449921875" z="1.54184684038">
+        <neutronic p="151.732" r="4.71852" t="45.0687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11048" x="-1.89582004508" y="1.55268125" z="1.54184684038">
+        <neutronic p="151.035" r="4.71776" t="45.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11049" x="-1.89582004508" y="1.59086328125" z="1.54184684038">
+        <neutronic p="150.346" r="4.71697" t="45.4524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11050" x="-1.89582004508" y="1.6290453125" z="1.54184684038">
+        <neutronic p="149.666" r="4.71616" t="45.6485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11051" x="-1.89582004508" y="1.66722734375" z="1.54184684038">
+        <neutronic p="148.995" r="4.71532" t="45.8473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11052" x="-1.89582004508" y="1.705409375" z="1.54184684038">
+        <neutronic p="148.334" r="4.71445" t="46.0487"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11053" x="-1.89582004508" y="1.74359140625" z="1.54184684038">
+        <neutronic p="147.681" r="4.71356" t="46.2524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11054" x="-1.89582004508" y="1.7817734375" z="1.54184684038">
+        <neutronic p="147.037" r="4.71265" t="46.4583"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11055" x="-1.89582004508" y="1.81995546875" z="1.54184684038">
+        <neutronic p="146.403" r="4.71172" t="46.6663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11056" x="-1.89582004508" y="1.8581375" z="1.54184684038">
+        <neutronic p="145.777" r="4.71076" t="46.8762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11057" x="-1.89582004508" y="1.89631953125" z="1.54184684038">
+        <neutronic p="145.16" r="4.70977" t="47.0879"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11077" x="-1.82184749945" y="0.21631015625" z="1.62858742819">
+        <neutronic p="179.668" r="4.72838" t="38.7187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11078" x="-1.82184749945" y="0.2544921875" z="1.62858742819">
+        <neutronic p="178.729" r="4.72855" t="38.7251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11079" x="-1.82184749945" y="0.29267421875" z="1.62858742819">
+        <neutronic p="177.791" r="4.7287" t="38.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11080" x="-1.82184749945" y="0.33085625" z="1.62858742819">
+        <neutronic p="176.852" r="4.72882" t="38.7604"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11081" x="-1.82184749945" y="0.36903828125" z="1.62858742819">
+        <neutronic p="175.915" r="4.72891" t="38.7893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11082" x="-1.82184749945" y="0.4072203125" z="1.62858742819">
+        <neutronic p="174.979" r="4.72897" t="38.8257"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11083" x="-1.82184749945" y="0.44540234375" z="1.62858742819">
+        <neutronic p="174.046" r="4.729" t="38.8695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11084" x="-1.82184749945" y="0.483584375" z="1.62858742819">
+        <neutronic p="173.114" r="4.72901" t="38.9207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11085" x="-1.82184749945" y="0.52176640625" z="1.62858742819">
+        <neutronic p="172.186" r="4.72898" t="38.9793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11086" x="-1.82184749945" y="0.5599484375" z="1.62858742819">
+        <neutronic p="171.262" r="4.72893" t="39.0451"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11087" x="-1.82184749945" y="0.59813046875" z="1.62858742819">
+        <neutronic p="170.341" r="4.72885" t="39.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11088" x="-1.82184749945" y="0.6363125" z="1.62858742819">
+        <neutronic p="169.424" r="4.72874" t="39.1981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11089" x="-1.82184749945" y="0.67449453125" z="1.62858742819">
+        <neutronic p="168.513" r="4.7286" t="39.2852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11090" x="-1.82184749945" y="0.7126765625" z="1.62858742819">
+        <neutronic p="167.607" r="4.72843" t="39.3791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11091" x="-1.82184749945" y="0.75085859375" z="1.62858742819">
+        <neutronic p="166.706" r="4.72824" t="39.4798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11092" x="-1.82184749945" y="0.789040625" z="1.62858742819">
+        <neutronic p="165.812" r="4.72801" t="39.5872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11093" x="-1.82184749945" y="0.82722265625" z="1.62858742819">
+        <neutronic p="164.924" r="4.72776" t="39.7011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11094" x="-1.82184749945" y="0.8654046875" z="1.62858742819">
+        <neutronic p="164.043" r="4.72748" t="39.8214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11095" x="-1.82184749945" y="0.90358671875" z="1.62858742819">
+        <neutronic p="163.168" r="4.72717" t="39.9479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11096" x="-1.82184749945" y="0.94176875" z="1.62858742819">
+        <neutronic p="162.302" r="4.72684" t="40.0806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11097" x="-1.82184749945" y="0.97995078125" z="1.62858742819">
+        <neutronic p="161.443" r="4.72647" t="40.2191"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11098" x="-1.82184749945" y="1.0181328125" z="1.62858742819">
+        <neutronic p="160.592" r="4.72608" t="40.3635"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11099" x="-1.82184749945" y="1.05631484375" z="1.62858742819">
+        <neutronic p="159.75" r="4.72566" t="40.5134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11100" x="-1.82184749945" y="1.094496875" z="1.62858742819">
+        <neutronic p="158.916" r="4.72521" t="40.6688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11101" x="-1.82184749945" y="1.13267890625" z="1.62858742819">
+        <neutronic p="158.091" r="4.72474" t="40.8295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11102" x="-1.82184749945" y="1.1708609375" z="1.62858742819">
+        <neutronic p="157.275" r="4.72424" t="40.9953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11103" x="-1.82184749945" y="1.20904296875" z="1.62858742819">
+        <neutronic p="156.469" r="4.72371" t="41.1659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11104" x="-1.82184749945" y="1.247225" z="1.62858742819">
+        <neutronic p="155.671" r="4.72315" t="41.3414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11105" x="-1.82184749945" y="1.28540703125" z="1.62858742819">
+        <neutronic p="154.883" r="4.72257" t="41.5213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11106" x="-1.82184749945" y="1.3235890625" z="1.62858742819">
+        <neutronic p="154.105" r="4.72196" t="41.7057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11107" x="-1.82184749945" y="1.36177109375" z="1.62858742819">
+        <neutronic p="153.337" r="4.72133" t="41.8942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11108" x="-1.82184749945" y="1.399953125" z="1.62858742819">
+        <neutronic p="152.578" r="4.72066" t="42.0868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11109" x="-1.82184749945" y="1.43813515625" z="1.62858742819">
+        <neutronic p="151.829" r="4.71998" t="42.2832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11110" x="-1.82184749945" y="1.4763171875" z="1.62858742819">
+        <neutronic p="151.091" r="4.71926" t="42.4832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11111" x="-1.82184749945" y="1.51449921875" z="1.62858742819">
+        <neutronic p="150.362" r="4.71852" t="42.6868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11112" x="-1.82184749945" y="1.55268125" z="1.62858742819">
+        <neutronic p="149.643" r="4.71776" t="42.8936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11113" x="-1.82184749945" y="1.59086328125" z="1.62858742819">
+        <neutronic p="148.935" r="4.71697" t="43.1035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11114" x="-1.82184749945" y="1.6290453125" z="1.62858742819">
+        <neutronic p="148.236" r="4.71616" t="43.3164"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11115" x="-1.82184749945" y="1.66722734375" z="1.62858742819">
+        <neutronic p="147.548" r="4.71532" t="43.532"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11116" x="-1.82184749945" y="1.705409375" z="1.62858742819">
+        <neutronic p="146.87" r="4.71445" t="43.7502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11117" x="-1.82184749945" y="1.74359140625" z="1.62858742819">
+        <neutronic p="146.202" r="4.71356" t="43.9709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11118" x="-1.82184749945" y="1.7817734375" z="1.62858742819">
+        <neutronic p="145.544" r="4.71265" t="44.1938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11119" x="-1.82184749945" y="1.81995546875" z="1.62858742819">
+        <neutronic p="144.895" r="4.71172" t="44.4188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11120" x="-1.82184749945" y="1.8581375" z="1.62858742819">
+        <neutronic p="144.257" r="4.71076" t="44.6458"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11121" x="-1.82184749945" y="1.89631953125" z="1.62858742819">
+        <neutronic p="143.629" r="4.70977" t="44.8746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11141" x="-1.74390998956" y="0.21631015625" z="1.71178365187">
+        <neutronic p="179.647" r="4.72838" t="35.9969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11142" x="-1.74390998956" y="0.2544921875" z="1.71178365187">
+        <neutronic p="178.648" r="4.72855" t="36.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11143" x="-1.74390998956" y="0.29267421875" z="1.71178365187">
+        <neutronic p="177.649" r="4.7287" t="36.0193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11144" x="-1.74390998956" y="0.33085625" z="1.71178365187">
+        <neutronic p="176.651" r="4.72882" t="36.043"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11145" x="-1.74390998956" y="0.36903828125" z="1.71178365187">
+        <neutronic p="175.654" r="4.72891" t="36.0749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11146" x="-1.74390998956" y="0.4072203125" z="1.71178365187">
+        <neutronic p="174.659" r="4.72897" t="36.115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11147" x="-1.74390998956" y="0.44540234375" z="1.71178365187">
+        <neutronic p="173.666" r="4.729" t="36.1633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11148" x="-1.74390998956" y="0.483584375" z="1.71178365187">
+        <neutronic p="172.677" r="4.72901" t="36.2198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11149" x="-1.74390998956" y="0.52176640625" z="1.71178365187">
+        <neutronic p="171.691" r="4.72898" t="36.2843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11150" x="-1.74390998956" y="0.5599484375" z="1.71178365187">
+        <neutronic p="170.71" r="4.72893" t="36.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11151" x="-1.74390998956" y="0.59813046875" z="1.71178365187">
+        <neutronic p="169.733" r="4.72885" t="36.4372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11152" x="-1.74390998956" y="0.6363125" z="1.71178365187">
+        <neutronic p="168.762" r="4.72874" t="36.5254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11153" x="-1.74390998956" y="0.67449453125" z="1.71178365187">
+        <neutronic p="167.796" r="4.7286" t="36.6212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11154" x="-1.74390998956" y="0.7126765625" z="1.71178365187">
+        <neutronic p="166.837" r="4.72843" t="36.7246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11155" x="-1.74390998956" y="0.75085859375" z="1.71178365187">
+        <neutronic p="165.885" r="4.72824" t="36.8354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11156" x="-1.74390998956" y="0.789040625" z="1.71178365187">
+        <neutronic p="164.94" r="4.72801" t="36.9535"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11157" x="-1.74390998956" y="0.82722265625" z="1.71178365187">
+        <neutronic p="164.003" r="4.72776" t="37.0786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11158" x="-1.74390998956" y="0.8654046875" z="1.71178365187">
+        <neutronic p="163.074" r="4.72748" t="37.2108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11159" x="-1.74390998956" y="0.90358671875" z="1.71178365187">
+        <neutronic p="162.154" r="4.72717" t="37.3497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11160" x="-1.74390998956" y="0.94176875" z="1.71178365187">
+        <neutronic p="161.242" r="4.72684" t="37.4952"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11161" x="-1.74390998956" y="0.97995078125" z="1.71178365187">
+        <neutronic p="160.34" r="4.72647" t="37.6471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11162" x="-1.74390998956" y="1.0181328125" z="1.71178365187">
+        <neutronic p="159.447" r="4.72608" t="37.8053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11163" x="-1.74390998956" y="1.05631484375" z="1.71178365187">
+        <neutronic p="158.564" r="4.72566" t="37.9695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11164" x="-1.74390998956" y="1.094496875" z="1.71178365187">
+        <neutronic p="157.691" r="4.72521" t="38.1396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11165" x="-1.74390998956" y="1.13267890625" z="1.71178365187">
+        <neutronic p="156.829" r="4.72474" t="38.3154"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11166" x="-1.74390998956" y="1.1708609375" z="1.71178365187">
+        <neutronic p="155.977" r="4.72424" t="38.4966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11167" x="-1.74390998956" y="1.20904296875" z="1.71178365187">
+        <neutronic p="155.135" r="4.72371" t="38.683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11168" x="-1.74390998956" y="1.247225" z="1.71178365187">
+        <neutronic p="154.305" r="4.72315" t="38.8745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11169" x="-1.74390998956" y="1.28540703125" z="1.71178365187">
+        <neutronic p="153.485" r="4.72257" t="39.0709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11170" x="-1.74390998956" y="1.3235890625" z="1.71178365187">
+        <neutronic p="152.677" r="4.72196" t="39.2719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11171" x="-1.74390998956" y="1.36177109375" z="1.71178365187">
+        <neutronic p="151.88" r="4.72133" t="39.4773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11172" x="-1.74390998956" y="1.399953125" z="1.71178365187">
+        <neutronic p="151.094" r="4.72066" t="39.687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11173" x="-1.74390998956" y="1.43813515625" z="1.71178365187">
+        <neutronic p="150.319" r="4.71998" t="39.9006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11174" x="-1.74390998956" y="1.4763171875" z="1.71178365187">
+        <neutronic p="149.556" r="4.71926" t="40.1181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11175" x="-1.74390998956" y="1.51449921875" z="1.71178365187">
+        <neutronic p="148.805" r="4.71852" t="40.3392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11176" x="-1.74390998956" y="1.55268125" z="1.71178365187">
+        <neutronic p="148.065" r="4.71776" t="40.5638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11177" x="-1.74390998956" y="1.59086328125" z="1.71178365187">
+        <neutronic p="147.336" r="4.71697" t="40.7915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11178" x="-1.74390998956" y="1.6290453125" z="1.71178365187">
+        <neutronic p="146.618" r="4.71616" t="41.0223"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11179" x="-1.74390998956" y="1.66722734375" z="1.71178365187">
+        <neutronic p="145.912" r="4.71532" t="41.2559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11180" x="-1.74390998956" y="1.705409375" z="1.71178365187">
+        <neutronic p="145.217" r="4.71445" t="41.4922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11181" x="-1.74390998956" y="1.74359140625" z="1.71178365187">
+        <neutronic p="144.534" r="4.71356" t="41.7309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11182" x="-1.74390998956" y="1.7817734375" z="1.71178365187">
+        <neutronic p="143.861" r="4.71265" t="41.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11183" x="-1.74390998956" y="1.81995546875" z="1.71178365187">
+        <neutronic p="143.2" r="4.71172" t="42.2151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11184" x="-1.74390998956" y="1.8581375" z="1.71178365187">
+        <neutronic p="142.55" r="4.71076" t="42.4602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11185" x="-1.74390998956" y="1.89631953125" z="1.71178365187">
+        <neutronic p="141.91" r="4.70977" t="42.7071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11205" x="-1.66217713414" y="0.21631015625" z="1.79125444793">
+        <neutronic p="179.622" r="4.72838" t="33.2751"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11206" x="-1.66217713414" y="0.2544921875" z="1.79125444793">
+        <neutronic p="178.551" r="4.72855" t="33.2829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11207" x="-1.66217713414" y="0.29267421875" z="1.79125444793">
+        <neutronic p="177.482" r="4.7287" t="33.2999"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11208" x="-1.66217713414" y="0.33085625" z="1.79125444793">
+        <neutronic p="176.413" r="4.72882" t="33.3261"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11209" x="-1.66217713414" y="0.36903828125" z="1.79125444793">
+        <neutronic p="175.345" r="4.72891" t="33.3614"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11210" x="-1.66217713414" y="0.4072203125" z="1.79125444793">
+        <neutronic p="174.281" r="4.72897" t="33.4058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11211" x="-1.66217713414" y="0.44540234375" z="1.79125444793">
+        <neutronic p="173.219" r="4.729" t="33.4593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11212" x="-1.66217713414" y="0.483584375" z="1.79125444793">
+        <neutronic p="172.161" r="4.72901" t="33.5217"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11213" x="-1.66217713414" y="0.52176640625" z="1.79125444793">
+        <neutronic p="171.108" r="4.72898" t="33.5931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11214" x="-1.66217713414" y="0.5599484375" z="1.79125444793">
+        <neutronic p="170.061" r="4.72893" t="33.6732"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11215" x="-1.66217713414" y="0.59813046875" z="1.79125444793">
+        <neutronic p="169.019" r="4.72885" t="33.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11216" x="-1.66217713414" y="0.6363125" z="1.79125444793">
+        <neutronic p="167.984" r="4.72874" t="33.8593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11217" x="-1.66217713414" y="0.67449453125" z="1.79125444793">
+        <neutronic p="166.956" r="4.7286" t="33.9651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11218" x="-1.66217713414" y="0.7126765625" z="1.79125444793">
+        <neutronic p="165.936" r="4.72843" t="34.0792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11219" x="-1.66217713414" y="0.75085859375" z="1.79125444793">
+        <neutronic p="164.924" r="4.72824" t="34.2013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11220" x="-1.66217713414" y="0.789040625" z="1.79125444793">
+        <neutronic p="163.921" r="4.72801" t="34.3314"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11221" x="-1.66217713414" y="0.82722265625" z="1.79125444793">
+        <neutronic p="162.928" r="4.72776" t="34.4692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11222" x="-1.66217713414" y="0.8654046875" z="1.79125444793">
+        <neutronic p="161.945" r="4.72748" t="34.6146"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11223" x="-1.66217713414" y="0.90358671875" z="1.79125444793">
+        <neutronic p="160.971" r="4.72717" t="34.7674"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11224" x="-1.66217713414" y="0.94176875" z="1.79125444793">
+        <neutronic p="160.009" r="4.72684" t="34.9273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11225" x="-1.66217713414" y="0.97995078125" z="1.79125444793">
+        <neutronic p="159.058" r="4.72647" t="35.0942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11226" x="-1.66217713414" y="1.0181328125" z="1.79125444793">
+        <neutronic p="158.118" r="4.72608" t="35.2677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11227" x="-1.66217713414" y="1.05631484375" z="1.79125444793">
+        <neutronic p="157.189" r="4.72566" t="35.4479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11228" x="-1.66217713414" y="1.094496875" z="1.79125444793">
+        <neutronic p="156.273" r="4.72521" t="35.6342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11229" x="-1.66217713414" y="1.13267890625" z="1.79125444793">
+        <neutronic p="155.369" r="4.72474" t="35.8267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11230" x="-1.66217713414" y="1.1708609375" z="1.79125444793">
+        <neutronic p="154.477" r="4.72424" t="36.0249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11231" x="-1.66217713414" y="1.20904296875" z="1.79125444793">
+        <neutronic p="153.598" r="4.72371" t="36.2288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11232" x="-1.66217713414" y="1.247225" z="1.79125444793">
+        <neutronic p="152.732" r="4.72315" t="36.438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11233" x="-1.66217713414" y="1.28540703125" z="1.79125444793">
+        <neutronic p="151.878" r="4.72257" t="36.6523"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11234" x="-1.66217713414" y="1.3235890625" z="1.79125444793">
+        <neutronic p="151.038" r="4.72196" t="36.8715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11235" x="-1.66217713414" y="1.36177109375" z="1.79125444793">
+        <neutronic p="150.21" r="4.72133" t="37.0954"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11236" x="-1.66217713414" y="1.399953125" z="1.79125444793">
+        <neutronic p="149.396" r="4.72066" t="37.3236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11237" x="-1.66217713414" y="1.43813515625" z="1.79125444793">
+        <neutronic p="148.594" r="4.71998" t="37.5561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11238" x="-1.66217713414" y="1.4763171875" z="1.79125444793">
+        <neutronic p="147.806" r="4.71926" t="37.7925"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11239" x="-1.66217713414" y="1.51449921875" z="1.79125444793">
+        <neutronic p="147.031" r="4.71852" t="38.0327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11240" x="-1.66217713414" y="1.55268125" z="1.79125444793">
+        <neutronic p="146.269" r="4.71776" t="38.2763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11241" x="-1.66217713414" y="1.59086328125" z="1.79125444793">
+        <neutronic p="145.52" r="4.71697" t="38.5233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11242" x="-1.66217713414" y="1.6290453125" z="1.79125444793">
+        <neutronic p="144.783" r="4.71616" t="38.7734"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11243" x="-1.66217713414" y="1.66722734375" z="1.79125444793">
+        <neutronic p="144.06" r="4.71532" t="39.0263"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11244" x="-1.66217713414" y="1.705409375" z="1.79125444793">
+        <neutronic p="143.349" r="4.71445" t="39.2819"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11245" x="-1.66217713414" y="1.74359140625" z="1.79125444793">
+        <neutronic p="142.651" r="4.71356" t="39.5399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11246" x="-1.66217713414" y="1.7817734375" z="1.79125444793">
+        <neutronic p="141.965" r="4.71265" t="39.8003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11247" x="-1.66217713414" y="1.81995546875" z="1.79125444793">
+        <neutronic p="141.292" r="4.71172" t="40.0627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11248" x="-1.66217713414" y="1.8581375" z="1.79125444793">
+        <neutronic p="140.631" r="4.71076" t="40.327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11249" x="-1.66217713414" y="1.89631953125" z="1.79125444793">
+        <neutronic p="139.982" r="4.70977" t="40.593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11269" x="-1.57682681188" y="0.21631015625" z="1.8668268607">
+        <neutronic p="179.592" r="4.72838" t="30.5534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11270" x="-1.57682681188" y="0.2544921875" z="1.8668268607">
+        <neutronic p="178.437" r="4.72855" t="30.5621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11271" x="-1.57682681188" y="0.29267421875" z="1.8668268607">
+        <neutronic p="177.282" r="4.7287" t="30.581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11272" x="-1.57682681188" y="0.33085625" z="1.8668268607">
+        <neutronic p="176.129" r="4.72882" t="30.6101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11273" x="-1.57682681188" y="0.36903828125" z="1.8668268607">
+        <neutronic p="174.978" r="4.72891" t="30.6493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11274" x="-1.57682681188" y="0.4072203125" z="1.8668268607">
+        <neutronic p="173.83" r="4.72897" t="30.6986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11275" x="-1.57682681188" y="0.44540234375" z="1.8668268607">
+        <neutronic p="172.687" r="4.729" t="30.758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11276" x="-1.57682681188" y="0.483584375" z="1.8668268607">
+        <neutronic p="171.548" r="4.72901" t="30.8273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11277" x="-1.57682681188" y="0.52176640625" z="1.8668268607">
+        <neutronic p="170.416" r="4.72898" t="30.9065"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11278" x="-1.57682681188" y="0.5599484375" z="1.8668268607">
+        <neutronic p="169.29" r="4.72893" t="30.9954"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11279" x="-1.57682681188" y="0.59813046875" z="1.8668268607">
+        <neutronic p="168.172" r="4.72885" t="31.0938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11280" x="-1.57682681188" y="0.6363125" z="1.8668268607">
+        <neutronic p="167.062" r="4.72874" t="31.2017"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11281" x="-1.57682681188" y="0.67449453125" z="1.8668268607">
+        <neutronic p="165.961" r="4.7286" t="31.3188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11282" x="-1.57682681188" y="0.7126765625" z="1.8668268607">
+        <neutronic p="164.87" r="4.72843" t="31.4451"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11283" x="-1.57682681188" y="0.75085859375" z="1.8668268607">
+        <neutronic p="163.789" r="4.72824" t="31.5801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11284" x="-1.57682681188" y="0.789040625" z="1.8668268607">
+        <neutronic p="162.72" r="4.72801" t="31.7239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11285" x="-1.57682681188" y="0.82722265625" z="1.8668268607">
+        <neutronic p="161.662" r="4.72776" t="31.8761"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11286" x="-1.57682681188" y="0.8654046875" z="1.8668268607">
+        <neutronic p="160.616" r="4.72748" t="32.0366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11287" x="-1.57682681188" y="0.90358671875" z="1.8668268607">
+        <neutronic p="159.583" r="4.72717" t="32.205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11288" x="-1.57682681188" y="0.94176875" z="1.8668268607">
+        <neutronic p="158.563" r="4.72684" t="32.3812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11289" x="-1.57682681188" y="0.97995078125" z="1.8668268607">
+        <neutronic p="157.556" r="4.72647" t="32.5648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11290" x="-1.57682681188" y="1.0181328125" z="1.8668268607">
+        <neutronic p="156.563" r="4.72608" t="32.7557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11291" x="-1.57682681188" y="1.05631484375" z="1.8668268607">
+        <neutronic p="155.585" r="4.72566" t="32.9536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11292" x="-1.57682681188" y="1.094496875" z="1.8668268607">
+        <neutronic p="154.62" r="4.72521" t="33.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11293" x="-1.57682681188" y="1.13267890625" z="1.8668268607">
+        <neutronic p="153.671" r="4.72474" t="33.3692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11294" x="-1.57682681188" y="1.1708609375" z="1.8668268607">
+        <neutronic p="152.736" r="4.72424" t="33.5865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11295" x="-1.57682681188" y="1.20904296875" z="1.8668268607">
+        <neutronic p="151.816" r="4.72371" t="33.8096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11296" x="-1.57682681188" y="1.247225" z="1.8668268607">
+        <neutronic p="150.912" r="4.72315" t="34.0383"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11297" x="-1.57682681188" y="1.28540703125" z="1.8668268607">
+        <neutronic p="150.022" r="4.72257" t="34.2725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11298" x="-1.57682681188" y="1.3235890625" z="1.8668268607">
+        <neutronic p="149.148" r="4.72196" t="34.5117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11299" x="-1.57682681188" y="1.36177109375" z="1.8668268607">
+        <neutronic p="148.289" r="4.72133" t="34.7558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11300" x="-1.57682681188" y="1.399953125" z="1.8668268607">
+        <neutronic p="147.445" r="4.72066" t="35.0044"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11301" x="-1.57682681188" y="1.43813515625" z="1.8668268607">
+        <neutronic p="146.616" r="4.71998" t="35.2574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11302" x="-1.57682681188" y="1.4763171875" z="1.8668268607">
+        <neutronic p="145.803" r="4.71926" t="35.5144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11303" x="-1.57682681188" y="1.51449921875" z="1.8668268607">
+        <neutronic p="145.005" r="4.71852" t="35.7752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11304" x="-1.57682681188" y="1.55268125" z="1.8668268607">
+        <neutronic p="144.221" r="4.71776" t="36.0396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11305" x="-1.57682681188" y="1.59086328125" z="1.8668268607">
+        <neutronic p="143.452" r="4.71697" t="36.3073"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11306" x="-1.57682681188" y="1.6290453125" z="1.8668268607">
+        <neutronic p="142.698" r="4.71616" t="36.5781"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11307" x="-1.57682681188" y="1.66722734375" z="1.8668268607">
+        <neutronic p="141.959" r="4.71532" t="36.8518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11308" x="-1.57682681188" y="1.705409375" z="1.8668268607">
+        <neutronic p="141.233" r="4.71445" t="37.1281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11309" x="-1.57682681188" y="1.74359140625" z="1.8668268607">
+        <neutronic p="140.522" r="4.71356" t="37.4067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11310" x="-1.57682681188" y="1.7817734375" z="1.8668268607">
+        <neutronic p="139.825" r="4.71265" t="37.6876"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11311" x="-1.57682681188" y="1.81995546875" z="1.8668268607">
+        <neutronic p="139.142" r="4.71172" t="37.9705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11312" x="-1.57682681188" y="1.8581375" z="1.8668268607">
+        <neutronic p="138.472" r="4.71076" t="38.2552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11313" x="-1.57682681188" y="1.89631953125" z="1.8668268607">
+        <neutronic p="137.816" r="4.70977" t="38.5414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11333" x="-1.48804477432" y="0.21631015625" z="1.93833641872">
+        <neutronic p="179.555" r="4.72838" t="27.8316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11334" x="-1.48804477432" y="0.2544921875" z="1.93833641872">
+        <neutronic p="178.298" r="4.72855" t="27.8414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11335" x="-1.48804477432" y="0.29267421875" z="1.93833641872">
+        <neutronic p="177.041" r="4.7287" t="27.8625"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11336" x="-1.48804477432" y="0.33085625" z="1.93833641872">
+        <neutronic p="175.786" r="4.72882" t="27.895"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11337" x="-1.48804477432" y="0.36903828125" z="1.93833641872">
+        <neutronic p="174.534" r="4.72891" t="27.9388"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11338" x="-1.48804477432" y="0.4072203125" z="1.93833641872">
+        <neutronic p="173.287" r="4.72897" t="27.994"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11339" x="-1.48804477432" y="0.44540234375" z="1.93833641872">
+        <neutronic p="172.045" r="4.729" t="28.0603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11340" x="-1.48804477432" y="0.483584375" z="1.93833641872">
+        <neutronic p="170.81" r="4.72901" t="28.1376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11341" x="-1.48804477432" y="0.52176640625" z="1.93833641872">
+        <neutronic p="169.582" r="4.72898" t="28.2259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11342" x="-1.48804477432" y="0.5599484375" z="1.93833641872">
+        <neutronic p="168.364" r="4.72893" t="28.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11343" x="-1.48804477432" y="0.59813046875" z="1.93833641872">
+        <neutronic p="167.154" r="4.72885" t="28.4347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11344" x="-1.48804477432" y="0.6363125" z="1.93833641872">
+        <neutronic p="165.956" r="4.72874" t="28.5548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11345" x="-1.48804477432" y="0.67449453125" z="1.93833641872">
+        <neutronic p="164.77" r="4.7286" t="28.6852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11346" x="-1.48804477432" y="0.7126765625" z="1.93833641872">
+        <neutronic p="163.595" r="4.72843" t="28.8254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11347" x="-1.48804477432" y="0.75085859375" z="1.93833641872">
+        <neutronic p="162.434" r="4.72824" t="28.9755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11348" x="-1.48804477432" y="0.789040625" z="1.93833641872">
+        <neutronic p="161.288" r="4.72801" t="29.135"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11349" x="-1.48804477432" y="0.82722265625" z="1.93833641872">
+        <neutronic p="160.155" r="4.72776" t="29.3037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11350" x="-1.48804477432" y="0.8654046875" z="1.93833641872">
+        <neutronic p="159.038" r="4.72748" t="29.4814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11351" x="-1.48804477432" y="0.90358671875" z="1.93833641872">
+        <neutronic p="157.937" r="4.72717" t="29.6677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11352" x="-1.48804477432" y="0.94176875" z="1.93833641872">
+        <neutronic p="156.852" r="4.72684" t="29.8624"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11353" x="-1.48804477432" y="0.97995078125" z="1.93833641872">
+        <neutronic p="155.784" r="4.72647" t="30.0652"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11354" x="-1.48804477432" y="1.0181328125" z="1.93833641872">
+        <neutronic p="154.732" r="4.72608" t="30.2757"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11355" x="-1.48804477432" y="1.05631484375" z="1.93833641872">
+        <neutronic p="153.699" r="4.72566" t="30.4936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11356" x="-1.48804477432" y="1.094496875" z="1.93833641872">
+        <neutronic p="152.682" r="4.72521" t="30.7187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11357" x="-1.48804477432" y="1.13267890625" z="1.93833641872">
+        <neutronic p="151.683" r="4.72474" t="30.9506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11358" x="-1.48804477432" y="1.1708609375" z="1.93833641872">
+        <neutronic p="150.703" r="4.72424" t="31.189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11359" x="-1.48804477432" y="1.20904296875" z="1.93833641872">
+        <neutronic p="149.74" r="4.72371" t="31.4337"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11360" x="-1.48804477432" y="1.247225" z="1.93833641872">
+        <neutronic p="148.795" r="4.72315" t="31.6842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11361" x="-1.48804477432" y="1.28540703125" z="1.93833641872">
+        <neutronic p="147.868" r="4.72257" t="31.9402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11362" x="-1.48804477432" y="1.3235890625" z="1.93833641872">
+        <neutronic p="146.96" r="4.72196" t="32.2016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11363" x="-1.48804477432" y="1.36177109375" z="1.93833641872">
+        <neutronic p="146.069" r="4.72133" t="32.4679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11364" x="-1.48804477432" y="1.399953125" z="1.93833641872">
+        <neutronic p="145.196" r="4.72066" t="32.7389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11365" x="-1.48804477432" y="1.43813515625" z="1.93833641872">
+        <neutronic p="144.341" r="4.71998" t="33.0143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11366" x="-1.48804477432" y="1.4763171875" z="1.93833641872">
+        <neutronic p="143.503" r="4.71926" t="33.2937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11367" x="-1.48804477432" y="1.51449921875" z="1.93833641872">
+        <neutronic p="142.683" r="4.71852" t="33.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11368" x="-1.48804477432" y="1.55268125" z="1.93833641872">
+        <neutronic p="141.88" r="4.71776" t="33.8638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11369" x="-1.48804477432" y="1.59086328125" z="1.93833641872">
+        <neutronic p="141.093" r="4.71697" t="34.1539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11370" x="-1.48804477432" y="1.6290453125" z="1.93833641872">
+        <neutronic p="140.324" r="4.71616" t="34.4471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11371" x="-1.48804477432" y="1.66722734375" z="1.93833641872">
+        <neutronic p="139.571" r="4.71532" t="34.743"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11372" x="-1.48804477432" y="1.705409375" z="1.93833641872">
+        <neutronic p="138.834" r="4.71445" t="35.0414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11373" x="-1.48804477432" y="1.74359140625" z="1.93833641872">
+        <neutronic p="138.113" r="4.71356" t="35.3421"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11374" x="-1.48804477432" y="1.7817734375" z="1.93833641872">
+        <neutronic p="137.408" r="4.71265" t="35.6448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11375" x="-1.48804477432" y="1.81995546875" z="1.93833641872">
+        <neutronic p="136.718" r="4.71172" t="35.9494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11376" x="-1.48804477432" y="1.8581375" z="1.93833641872">
+        <neutronic p="136.043" r="4.71076" t="36.2556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11377" x="-1.48804477432" y="1.89631953125" z="1.93833641872">
+        <neutronic p="135.383" r="4.70977" t="36.5632"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11397" x="-1.39602424158" y="0.21631015625" z="2.00562749269">
+        <neutronic p="179.511" r="4.72838" t="25.1099"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11398" x="-1.39602424158" y="0.2544921875" z="2.00562749269">
+        <neutronic p="178.127" r="4.72855" t="25.1209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11399" x="-1.39602424158" y="0.29267421875" z="2.00562749269">
+        <neutronic p="176.745" r="4.7287" t="25.1447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11400" x="-1.39602424158" y="0.33085625" z="2.00562749269">
+        <neutronic p="175.366" r="4.72882" t="25.1813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11401" x="-1.39602424158" y="0.36903828125" z="2.00562749269">
+        <neutronic p="173.991" r="4.72891" t="25.2306"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11402" x="-1.39602424158" y="0.4072203125" z="2.00562749269">
+        <neutronic p="172.621" r="4.72897" t="25.2926"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11403" x="-1.39602424158" y="0.44540234375" z="2.00562749269">
+        <neutronic p="171.26" r="4.729" t="25.3672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11404" x="-1.39602424158" y="0.483584375" z="2.00562749269">
+        <neutronic p="169.907" r="4.72901" t="25.4542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11405" x="-1.39602424158" y="0.52176640625" z="2.00562749269">
+        <neutronic p="168.565" r="4.72898" t="25.5533"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11406" x="-1.39602424158" y="0.5599484375" z="2.00562749269">
+        <neutronic p="167.234" r="4.72893" t="25.6645"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11407" x="-1.39602424158" y="0.59813046875" z="2.00562749269">
+        <neutronic p="165.916" r="4.72885" t="25.7875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11408" x="-1.39602424158" y="0.6363125" z="2.00562749269">
+        <neutronic p="164.613" r="4.72874" t="25.9221"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11409" x="-1.39602424158" y="0.67449453125" z="2.00562749269">
+        <neutronic p="163.325" r="4.7286" t="26.0679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11410" x="-1.39602424158" y="0.7126765625" z="2.00562749269">
+        <neutronic p="162.053" r="4.72843" t="26.2247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11411" x="-1.39602424158" y="0.75085859375" z="2.00562749269">
+        <neutronic p="160.798" r="4.72824" t="26.3923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11412" x="-1.39602424158" y="0.789040625" z="2.00562749269">
+        <neutronic p="159.561" r="4.72801" t="26.5702"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11413" x="-1.39602424158" y="0.82722265625" z="2.00562749269">
+        <neutronic p="158.344" r="4.72776" t="26.7581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11414" x="-1.39602424158" y="0.8654046875" z="2.00562749269">
+        <neutronic p="157.145" r="4.72748" t="26.9557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11415" x="-1.39602424158" y="0.90358671875" z="2.00562749269">
+        <neutronic p="155.967" r="4.72717" t="27.1627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11416" x="-1.39602424158" y="0.94176875" z="2.00562749269">
+        <neutronic p="154.809" r="4.72684" t="27.3787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11417" x="-1.39602424158" y="0.97995078125" z="2.00562749269">
+        <neutronic p="153.673" r="4.72647" t="27.6034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11418" x="-1.39602424158" y="1.0181328125" z="2.00562749269">
+        <neutronic p="152.557" r="4.72608" t="27.8362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11419" x="-1.39602424158" y="1.05631484375" z="2.00562749269">
+        <neutronic p="151.463" r="4.72566" t="28.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11420" x="-1.39602424158" y="1.094496875" z="2.00562749269">
+        <neutronic p="150.391" r="4.72521" t="28.3253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11421" x="-1.39602424158" y="1.13267890625" z="2.00562749269">
+        <neutronic p="149.34" r="4.72474" t="28.5808"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11422" x="-1.39602424158" y="1.1708609375" z="2.00562749269">
+        <neutronic p="148.311" r="4.72424" t="28.8431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11423" x="-1.39602424158" y="1.20904296875" z="2.00562749269">
+        <neutronic p="147.304" r="4.72371" t="29.1117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11424" x="-1.39602424158" y="1.247225" z="2.00562749269">
+        <neutronic p="146.319" r="4.72315" t="29.3865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11425" x="-1.39602424158" y="1.28540703125" z="2.00562749269">
+        <neutronic p="145.355" r="4.72257" t="29.6669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11426" x="-1.39602424158" y="1.3235890625" z="2.00562749269">
+        <neutronic p="144.413" r="4.72196" t="29.9528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11427" x="-1.39602424158" y="1.36177109375" z="2.00562749269">
+        <neutronic p="143.492" r="4.72133" t="30.2436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11428" x="-1.39602424158" y="1.399953125" z="2.00562749269">
+        <neutronic p="142.592" r="4.72066" t="30.5391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11429" x="-1.39602424158" y="1.43813515625" z="2.00562749269">
+        <neutronic p="141.713" r="4.71998" t="30.839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11430" x="-1.39602424158" y="1.4763171875" z="2.00562749269">
+        <neutronic p="140.854" r="4.71926" t="31.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11431" x="-1.39602424158" y="1.51449921875" z="2.00562749269">
+        <neutronic p="140.015" r="4.71852" t="31.4506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11432" x="-1.39602424158" y="1.55268125" z="2.00562749269">
+        <neutronic p="139.196" r="4.71776" t="31.7617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11433" x="-1.39602424158" y="1.59086328125" z="2.00562749269">
+        <neutronic p="138.396" r="4.71697" t="32.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11434" x="-1.39602424158" y="1.6290453125" z="2.00562749269">
+        <neutronic p="137.615" r="4.71616" t="32.3931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11435" x="-1.39602424158" y="1.66722734375" z="2.00562749269">
+        <neutronic p="136.853" r="4.71532" t="32.7128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11436" x="-1.39602424158" y="1.705409375" z="2.00562749269">
+        <neutronic p="136.109" r="4.71445" t="33.0348"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11437" x="-1.39602424158" y="1.74359140625" z="2.00562749269">
+        <neutronic p="135.383" r="4.71356" t="33.3589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11438" x="-1.39602424158" y="1.7817734375" z="2.00562749269">
+        <neutronic p="134.675" r="4.71265" t="33.6848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11439" x="-1.39602424158" y="1.81995546875" z="2.00562749269">
+        <neutronic p="133.983" r="4.71172" t="34.0123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11440" x="-1.39602424158" y="1.8581375" z="2.00562749269">
+        <neutronic p="133.308" r="4.71076" t="34.3412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11441" x="-1.39602424158" y="1.89631953125" z="2.00562749269">
+        <neutronic p="132.649" r="4.70977" t="34.6712"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11461" x="-1.30096548187" y="0.21631015625" z="2.06855363418">
+        <neutronic p="179.455" r="4.72838" t="22.3882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11462" x="-1.30096548187" y="0.2544921875" z="2.06855363418">
+        <neutronic p="177.914" r="4.72855" t="22.4007"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11463" x="-1.30096548187" y="0.29267421875" z="2.06855363418">
+        <neutronic p="176.375" r="4.7287" t="22.4277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11464" x="-1.30096548187" y="0.33085625" z="2.06855363418">
+        <neutronic p="174.839" r="4.72882" t="22.4693"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11465" x="-1.30096548187" y="0.36903828125" z="2.06855363418">
+        <neutronic p="173.311" r="4.72891" t="22.5254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11466" x="-1.30096548187" y="0.4072203125" z="2.06855363418">
+        <neutronic p="171.79" r="4.72897" t="22.5959"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11467" x="-1.30096548187" y="0.44540234375" z="2.06855363418">
+        <neutronic p="170.28" r="4.729" t="22.6805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11468" x="-1.30096548187" y="0.483584375" z="2.06855363418">
+        <neutronic p="168.783" r="4.72901" t="22.7791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11469" x="-1.30096548187" y="0.52176640625" z="2.06855363418">
+        <neutronic p="167.3" r="4.72898" t="22.8915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11470" x="-1.30096548187" y="0.5599484375" z="2.06855363418">
+        <neutronic p="165.833" r="4.72893" t="23.0173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11471" x="-1.30096548187" y="0.59813046875" z="2.06855363418">
+        <neutronic p="164.383" r="4.72885" t="23.1564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11472" x="-1.30096548187" y="0.6363125" z="2.06855363418">
+        <neutronic p="162.953" r="4.72874" t="23.3082"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11473" x="-1.30096548187" y="0.67449453125" z="2.06855363418">
+        <neutronic p="161.544" r="4.7286" t="23.4727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11474" x="-1.30096548187" y="0.7126765625" z="2.06855363418">
+        <neutronic p="160.157" r="4.72843" t="23.6492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11475" x="-1.30096548187" y="0.75085859375" z="2.06855363418">
+        <neutronic p="158.792" r="4.72824" t="23.8375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11476" x="-1.30096548187" y="0.789040625" z="2.06855363418">
+        <neutronic p="157.451" r="4.72801" t="24.0371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11477" x="-1.30096548187" y="0.82722265625" z="2.06855363418">
+        <neutronic p="156.136" r="4.72776" t="24.2477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11478" x="-1.30096548187" y="0.8654046875" z="2.06855363418">
+        <neutronic p="154.845" r="4.72748" t="24.4688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11479" x="-1.30096548187" y="0.90358671875" z="2.06855363418">
+        <neutronic p="153.581" r="4.72717" t="24.6999"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11480" x="-1.30096548187" y="0.94176875" z="2.06855363418">
+        <neutronic p="152.343" r="4.72684" t="24.9406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11481" x="-1.30096548187" y="0.97995078125" z="2.06855363418">
+        <neutronic p="151.131" r="4.72647" t="25.1905"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11482" x="-1.30096548187" y="1.0181328125" z="2.06855363418">
+        <neutronic p="149.947" r="4.72608" t="25.4492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11483" x="-1.30096548187" y="1.05631484375" z="2.06855363418">
+        <neutronic p="148.79" r="4.72566" t="25.7161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11484" x="-1.30096548187" y="1.094496875" z="2.06855363418">
+        <neutronic p="147.659" r="4.72521" t="25.9909"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11485" x="-1.30096548187" y="1.13267890625" z="2.06855363418">
+        <neutronic p="146.556" r="4.72474" t="26.2731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11486" x="-1.30096548187" y="1.1708609375" z="2.06855363418">
+        <neutronic p="145.479" r="4.72424" t="26.5622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11487" x="-1.30096548187" y="1.20904296875" z="2.06855363418">
+        <neutronic p="144.429" r="4.72371" t="26.8579"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11488" x="-1.30096548187" y="1.247225" z="2.06855363418">
+        <neutronic p="143.406" r="4.72315" t="27.1598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11489" x="-1.30096548187" y="1.28540703125" z="2.06855363418">
+        <neutronic p="142.408" r="4.72257" t="27.4674"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11490" x="-1.30096548187" y="1.3235890625" z="2.06855363418">
+        <neutronic p="141.436" r="4.72196" t="27.7803"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11491" x="-1.30096548187" y="1.36177109375" z="2.06855363418">
+        <neutronic p="140.489" r="4.72133" t="28.0982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11492" x="-1.30096548187" y="1.399953125" z="2.06855363418">
+        <neutronic p="139.566" r="4.72066" t="28.4206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11493" x="-1.30096548187" y="1.43813515625" z="2.06855363418">
+        <neutronic p="138.668" r="4.71998" t="28.7473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11494" x="-1.30096548187" y="1.4763171875" z="2.06855363418">
+        <neutronic p="137.794" r="4.71926" t="29.0778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11495" x="-1.30096548187" y="1.51449921875" z="2.06855363418">
+        <neutronic p="136.942" r="4.71852" t="29.4119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11496" x="-1.30096548187" y="1.55268125" z="2.06855363418">
+        <neutronic p="136.114" r="4.71776" t="29.7491"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11497" x="-1.30096548187" y="1.59086328125" z="2.06855363418">
+        <neutronic p="135.307" r="4.71697" t="30.0893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11498" x="-1.30096548187" y="1.6290453125" z="2.06855363418">
+        <neutronic p="134.522" r="4.71616" t="30.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11499" x="-1.30096548187" y="1.66722734375" z="2.06855363418">
+        <neutronic p="133.758" r="4.71532" t="30.777"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11500" x="-1.30096548187" y="1.705409375" z="2.06855363418">
+        <neutronic p="133.014" r="4.71445" t="31.1241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11501" x="-1.30096548187" y="1.74359140625" z="2.06855363418">
+        <neutronic p="132.291" r="4.71356" t="31.4729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11502" x="-1.30096548187" y="1.7817734375" z="2.06855363418">
+        <neutronic p="131.586" r="4.71265" t="31.8231"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11503" x="-1.30096548187" y="1.81995546875" z="2.06855363418">
+        <neutronic p="130.9" r="4.71172" t="32.1747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11504" x="-1.30096548187" y="1.8581375" z="2.06855363418">
+        <neutronic p="130.233" r="4.71076" t="32.5272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11505" x="-1.30096548187" y="1.89631953125" z="2.06855363418">
+        <neutronic p="129.583" r="4.70977" t="32.8806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11525" x="-1.20307537561" y="0.21631015625" z="2.12697789436">
+        <neutronic p="179.383" r="4.72838" t="19.6665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11526" x="-1.20307537561" y="0.2544921875" z="2.12697789436">
+        <neutronic p="177.639" r="4.72855" t="19.6809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11527" x="-1.20307537561" y="0.29267421875" z="2.12697789436">
+        <neutronic p="175.898" r="4.7287" t="19.7121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11528" x="-1.20307537561" y="0.33085625" z="2.12697789436">
+        <neutronic p="174.164" r="4.72882" t="19.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11529" x="-1.20307537561" y="0.36903828125" z="2.12697789436">
+        <neutronic p="172.439" r="4.72891" t="19.8246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11530" x="-1.20307537561" y="0.4072203125" z="2.12697789436">
+        <neutronic p="170.726" r="4.72897" t="19.9056"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11531" x="-1.20307537561" y="0.44540234375" z="2.12697789436">
+        <neutronic p="169.029" r="4.729" t="20.0028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11532" x="-1.20307537561" y="0.483584375" z="2.12697789436">
+        <neutronic p="167.35" r="4.72901" t="20.1159"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11533" x="-1.20307537561" y="0.52176640625" z="2.12697789436">
+        <neutronic p="165.691" r="4.72898" t="20.2446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11534" x="-1.20307537561" y="0.5599484375" z="2.12697789436">
+        <neutronic p="164.056" r="4.72893" t="20.3886"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11535" x="-1.20307537561" y="0.59813046875" z="2.12697789436">
+        <neutronic p="162.445" r="4.72885" t="20.5474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11536" x="-1.20307537561" y="0.6363125" z="2.12697789436">
+        <neutronic p="160.862" r="4.72874" t="20.7205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11537" x="-1.20307537561" y="0.67449453125" z="2.12697789436">
+        <neutronic p="159.308" r="4.7286" t="20.9076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11538" x="-1.20307537561" y="0.7126765625" z="2.12697789436">
+        <neutronic p="157.784" r="4.72843" t="21.1081"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11539" x="-1.20307537561" y="0.75085859375" z="2.12697789436">
+        <neutronic p="156.291" r="4.72824" t="21.3214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11540" x="-1.20307537561" y="0.789040625" z="2.12697789436">
+        <neutronic p="154.831" r="4.72801" t="21.5472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11541" x="-1.20307537561" y="0.82722265625" z="2.12697789436">
+        <neutronic p="153.404" r="4.72776" t="21.7847"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11542" x="-1.20307537561" y="0.8654046875" z="2.12697789436">
+        <neutronic p="152.011" r="4.72748" t="22.0336"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11543" x="-1.20307537561" y="0.90358671875" z="2.12697789436">
+        <neutronic p="150.652" r="4.72717" t="22.2932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11544" x="-1.20307537561" y="0.94176875" z="2.12697789436">
+        <neutronic p="149.328" r="4.72684" t="22.5629"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11545" x="-1.20307537561" y="0.97995078125" z="2.12697789436">
+        <neutronic p="148.038" r="4.72647" t="22.8423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11546" x="-1.20307537561" y="1.0181328125" z="2.12697789436">
+        <neutronic p="146.783" r="4.72608" t="23.1308"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11547" x="-1.20307537561" y="1.05631484375" z="2.12697789436">
+        <neutronic p="145.562" r="4.72566" t="23.4278"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11548" x="-1.20307537561" y="1.094496875" z="2.12697789436">
+        <neutronic p="144.375" r="4.72521" t="23.7329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11549" x="-1.20307537561" y="1.13267890625" z="2.12697789436">
+        <neutronic p="143.222" r="4.72474" t="24.0454"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11550" x="-1.20307537561" y="1.1708609375" z="2.12697789436">
+        <neutronic p="142.102" r="4.72424" t="24.365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11551" x="-1.20307537561" y="1.20904296875" z="2.12697789436">
+        <neutronic p="141.014" r="4.72371" t="24.6911"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11552" x="-1.20307537561" y="1.247225" z="2.12697789436">
+        <neutronic p="139.958" r="4.72315" t="25.0232"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11553" x="-1.20307537561" y="1.28540703125" z="2.12697789436">
+        <neutronic p="138.934" r="4.72257" t="25.3609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11554" x="-1.20307537561" y="1.3235890625" z="2.12697789436">
+        <neutronic p="137.94" r="4.72196" t="25.7037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11555" x="-1.20307537561" y="1.36177109375" z="2.12697789436">
+        <neutronic p="136.975" r="4.72133" t="26.0512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11556" x="-1.20307537561" y="1.399953125" z="2.12697789436">
+        <neutronic p="136.04" r="4.72066" t="26.4031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11557" x="-1.20307537561" y="1.43813515625" z="2.12697789436">
+        <neutronic p="135.133" r="4.71998" t="26.7588"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11558" x="-1.20307537561" y="1.4763171875" z="2.12697789436">
+        <neutronic p="134.253" r="4.71926" t="27.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11559" x="-1.20307537561" y="1.51449921875" z="2.12697789436">
+        <neutronic p="133.399" r="4.71852" t="27.4804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11560" x="-1.20307537561" y="1.55268125" z="2.12697789436">
+        <neutronic p="132.571" r="4.71776" t="27.8456"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11561" x="-1.20307537561" y="1.59086328125" z="2.12697789436">
+        <neutronic p="131.769" r="4.71697" t="28.2133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11562" x="-1.20307537561" y="1.6290453125" z="2.12697789436">
+        <neutronic p="130.99" r="4.71616" t="28.5832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11563" x="-1.20307537561" y="1.66722734375" z="2.12697789436">
+        <neutronic p="130.234" r="4.71532" t="28.9549"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11564" x="-1.20307537561" y="1.705409375" z="2.12697789436">
+        <neutronic p="129.501" r="4.71445" t="29.3281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11565" x="-1.20307537561" y="1.74359140625" z="2.12697789436">
+        <neutronic p="128.79" r="4.71356" t="29.7027"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11566" x="-1.20307537561" y="1.7817734375" z="2.12697789436">
+        <neutronic p="128.1" r="4.71265" t="30.0783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11567" x="-1.20307537561" y="1.81995546875" z="2.12697789436">
+        <neutronic p="127.43" r="4.71172" t="30.4547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11568" x="-1.20307537561" y="1.8581375" z="2.12697789436">
+        <neutronic p="126.78" r="4.71076" t="30.8317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11569" x="-1.20307537561" y="1.89631953125" z="2.12697789436">
+        <neutronic p="126.149" r="4.70977" t="31.2089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11589" x="-1.1025669652" y="0.21631015625" z="2.18077312202">
+        <neutronic p="179.288" r="4.72838" t="16.9449"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11590" x="-1.1025669652" y="0.2544921875" z="2.18077312202">
+        <neutronic p="177.274" r="4.72855" t="16.9617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11591" x="-1.1025669652" y="0.29267421875" z="2.18077312202">
+        <neutronic p="175.266" r="4.7287" t="16.9983"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11592" x="-1.1025669652" y="0.33085625" z="2.18077312202">
+        <neutronic p="173.269" r="4.72882" t="17.0544"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11593" x="-1.1025669652" y="0.36903828125" z="2.18077312202">
+        <neutronic p="171.286" r="4.72891" t="17.13"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11594" x="-1.1025669652" y="0.4072203125" z="2.18077312202">
+        <neutronic p="169.322" r="4.72897" t="17.2247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11595" x="-1.1025669652" y="0.44540234375" z="2.18077312202">
+        <neutronic p="167.382" r="4.729" t="17.3381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11596" x="-1.1025669652" y="0.483584375" z="2.18077312202">
+        <neutronic p="165.47" r="4.72901" t="17.4699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11597" x="-1.1025669652" y="0.52176640625" z="2.18077312202">
+        <neutronic p="163.589" r="4.72898" t="17.6196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11598" x="-1.1025669652" y="0.5599484375" z="2.18077312202">
+        <neutronic p="161.742" r="4.72893" t="17.7865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11599" x="-1.1025669652" y="0.59813046875" z="2.18077312202">
+        <neutronic p="159.933" r="4.72885" t="17.9703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11600" x="-1.1025669652" y="0.6363125" z="2.18077312202">
+        <neutronic p="158.163" r="4.72874" t="18.1701"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11601" x="-1.1025669652" y="0.67449453125" z="2.18077312202">
+        <neutronic p="156.435" r="4.7286" t="18.3854"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11602" x="-1.1025669652" y="0.7126765625" z="2.18077312202">
+        <neutronic p="154.75" r="4.72843" t="18.6155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11603" x="-1.1025669652" y="0.75085859375" z="2.18077312202">
+        <neutronic p="153.11" r="4.72824" t="18.8596"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11604" x="-1.1025669652" y="0.789040625" z="2.18077312202">
+        <neutronic p="151.515" r="4.72801" t="19.1172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11605" x="-1.1025669652" y="0.82722265625" z="2.18077312202">
+        <neutronic p="149.965" r="4.72776" t="19.3874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11606" x="-1.1025669652" y="0.8654046875" z="2.18077312202">
+        <neutronic p="148.462" r="4.72748" t="19.6696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11607" x="-1.1025669652" y="0.90358671875" z="2.18077312202">
+        <neutronic p="147.005" r="4.72717" t="19.963"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11608" x="-1.1025669652" y="0.94176875" z="2.18077312202">
+        <neutronic p="145.593" r="4.72684" t="20.267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11609" x="-1.1025669652" y="0.97995078125" z="2.18077312202">
+        <neutronic p="144.227" r="4.72647" t="20.5809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11610" x="-1.1025669652" y="1.0181328125" z="2.18077312202">
+        <neutronic p="142.906" r="4.72608" t="20.9041"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11611" x="-1.1025669652" y="1.05631484375" z="2.18077312202">
+        <neutronic p="141.628" r="4.72566" t="21.2358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11612" x="-1.1025669652" y="1.094496875" z="2.18077312202">
+        <neutronic p="140.393" r="4.72521" t="21.5754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11613" x="-1.1025669652" y="1.13267890625" z="2.18077312202">
+        <neutronic p="139.2" r="4.72474" t="21.9224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11614" x="-1.1025669652" y="1.1708609375" z="2.18077312202">
+        <neutronic p="138.048" r="4.72424" t="22.2762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11615" x="-1.1025669652" y="1.20904296875" z="2.18077312202">
+        <neutronic p="136.936" r="4.72371" t="22.6362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11616" x="-1.1025669652" y="1.247225" z="2.18077312202">
+        <neutronic p="135.861" r="4.72315" t="23.0019"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11617" x="-1.1025669652" y="1.28540703125" z="2.18077312202">
+        <neutronic p="134.824" r="4.72257" t="23.3727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11618" x="-1.1025669652" y="1.3235890625" z="2.18077312202">
+        <neutronic p="133.824" r="4.72196" t="23.7483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11619" x="-1.1025669652" y="1.36177109375" z="2.18077312202">
+        <neutronic p="132.857" r="4.72133" t="24.128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11620" x="-1.1025669652" y="1.399953125" z="2.18077312202">
+        <neutronic p="131.924" r="4.72066" t="24.5115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11621" x="-1.1025669652" y="1.43813515625" z="2.18077312202">
+        <neutronic p="131.024" r="4.71998" t="24.8984"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11622" x="-1.1025669652" y="1.4763171875" z="2.18077312202">
+        <neutronic p="130.154" r="4.71926" t="25.2883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11623" x="-1.1025669652" y="1.51449921875" z="2.18077312202">
+        <neutronic p="129.314" r="4.71852" t="25.6807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11624" x="-1.1025669652" y="1.55268125" z="2.18077312202">
+        <neutronic p="128.503" r="4.71776" t="26.0753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11625" x="-1.1025669652" y="1.59086328125" z="2.18077312202">
+        <neutronic p="127.72" r="4.71697" t="26.4718"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11626" x="-1.1025669652" y="1.6290453125" z="2.18077312202">
+        <neutronic p="126.962" r="4.71616" t="26.8699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11627" x="-1.1025669652" y="1.66722734375" z="2.18077312202">
+        <neutronic p="126.231" r="4.71532" t="27.2692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11628" x="-1.1025669652" y="1.705409375" z="2.18077312202">
+        <neutronic p="125.523" r="4.71445" t="27.6695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11629" x="-1.1025669652" y="1.74359140625" z="2.18077312202">
+        <neutronic p="124.839" r="4.71356" t="28.0706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11630" x="-1.1025669652" y="1.7817734375" z="2.18077312202">
+        <neutronic p="124.178" r="4.71265" t="28.472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11631" x="-1.1025669652" y="1.81995546875" z="2.18077312202">
+        <neutronic p="123.537" r="4.71172" t="28.8737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11632" x="-1.1025669652" y="1.8581375" z="2.18077312202">
+        <neutronic p="122.918" r="4.71076" t="29.2753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11633" x="-1.1025669652" y="1.89631953125" z="2.18077312202">
+        <neutronic p="122.318" r="4.70977" t="29.6767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11653" x="-0.999658991385" y="0.21631015625" z="2.22982224032">
+        <neutronic p="179.155" r="4.72838" t="14.2233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11654" x="-0.999658991385" y="0.2544921875" z="2.22982224032">
+        <neutronic p="176.768" r="4.72855" t="14.2436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11655" x="-0.999658991385" y="0.29267421875" z="2.22982224032">
+        <neutronic p="174.39" r="4.7287" t="14.2875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11656" x="-0.999658991385" y="0.33085625" z="2.22982224032">
+        <neutronic p="172.03" r="4.72882" t="14.3548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11657" x="-0.999658991385" y="0.36903828125" z="2.22982224032">
+        <neutronic p="169.695" r="4.72891" t="14.4453"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11658" x="-0.999658991385" y="0.4072203125" z="2.22982224032">
+        <neutronic p="167.392" r="4.72897" t="14.5585"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11659" x="-0.999658991385" y="0.44540234375" z="2.22982224032">
+        <neutronic p="165.129" r="4.729" t="14.6937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11660" x="-0.999658991385" y="0.483584375" z="2.22982224032">
+        <neutronic p="162.91" r="4.72901" t="14.8504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11661" x="-0.999658991385" y="0.52176640625" z="2.22982224032">
+        <neutronic p="160.742" r="4.72898" t="15.0277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11662" x="-0.999658991385" y="0.5599484375" z="2.22982224032">
+        <neutronic p="158.628" r="4.72893" t="15.2249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11663" x="-0.999658991385" y="0.59813046875" z="2.22982224032">
+        <neutronic p="156.572" r="4.72885" t="15.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11664" x="-0.999658991385" y="0.6363125" z="2.22982224032">
+        <neutronic p="154.576" r="4.72874" t="15.6752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11665" x="-0.999658991385" y="0.67449453125" z="2.22982224032">
+        <neutronic p="152.643" r="4.7286" t="15.9265"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11666" x="-0.999658991385" y="0.7126765625" z="2.22982224032">
+        <neutronic p="150.775" r="4.72843" t="16.1939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11667" x="-0.999658991385" y="0.75085859375" z="2.22982224032">
+        <neutronic p="148.971" r="4.72824" t="16.4765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11668" x="-0.999658991385" y="0.789040625" z="2.22982224032">
+        <neutronic p="147.231" r="4.72801" t="16.7733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11669" x="-0.999658991385" y="0.82722265625" z="2.22982224032">
+        <neutronic p="145.556" r="4.72776" t="17.0834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11670" x="-0.999658991385" y="0.8654046875" z="2.22982224032">
+        <neutronic p="143.945" r="4.72748" t="17.4058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11671" x="-0.999658991385" y="0.90358671875" z="2.22982224032">
+        <neutronic p="142.396" r="4.72717" t="17.7397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11672" x="-0.999658991385" y="0.94176875" z="2.22982224032">
+        <neutronic p="140.908" r="4.72684" t="18.0842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11673" x="-0.999658991385" y="0.97995078125" z="2.22982224032">
+        <neutronic p="139.48" r="4.72647" t="18.4384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11674" x="-0.999658991385" y="1.0181328125" z="2.22982224032">
+        <neutronic p="138.109" r="4.72608" t="18.8016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11675" x="-0.999658991385" y="1.05631484375" z="2.22982224032">
+        <neutronic p="136.794" r="4.72566" t="19.173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11676" x="-0.999658991385" y="1.094496875" z="2.22982224032">
+        <neutronic p="135.533" r="4.72521" t="19.5519"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11677" x="-0.999658991385" y="1.13267890625" z="2.22982224032">
+        <neutronic p="134.323" r="4.72474" t="19.9376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11678" x="-0.999658991385" y="1.1708609375" z="2.22982224032">
+        <neutronic p="133.162" r="4.72424" t="20.3294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11679" x="-0.999658991385" y="1.20904296875" z="2.22982224032">
+        <neutronic p="132.05" r="4.72371" t="20.7268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11680" x="-0.999658991385" y="1.247225" z="2.22982224032">
+        <neutronic p="130.982" r="4.72315" t="21.1291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11681" x="-0.999658991385" y="1.28540703125" z="2.22982224032">
+        <neutronic p="129.958" r="4.72257" t="21.5359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11682" x="-0.999658991385" y="1.3235890625" z="2.22982224032">
+        <neutronic p="128.975" r="4.72196" t="21.9465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11683" x="-0.999658991385" y="1.36177109375" z="2.22982224032">
+        <neutronic p="128.032" r="4.72133" t="22.3606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11684" x="-0.999658991385" y="1.399953125" z="2.22982224032">
+        <neutronic p="127.127" r="4.72066" t="22.7776"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11685" x="-0.999658991385" y="1.43813515625" z="2.22982224032">
+        <neutronic p="126.257" r="4.71998" t="23.1972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11686" x="-0.999658991385" y="1.4763171875" z="2.22982224032">
+        <neutronic p="125.422" r="4.71926" t="23.6189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11687" x="-0.999658991385" y="1.51449921875" z="2.22982224032">
+        <neutronic p="124.619" r="4.71852" t="24.0423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11688" x="-0.999658991385" y="1.55268125" z="2.22982224032">
+        <neutronic p="123.847" r="4.71776" t="24.4672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11689" x="-0.999658991385" y="1.59086328125" z="2.22982224032">
+        <neutronic p="123.105" r="4.71697" t="24.8932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11690" x="-0.999658991385" y="1.6290453125" z="2.22982224032">
+        <neutronic p="122.39" r="4.71616" t="25.3199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11691" x="-0.999658991385" y="1.66722734375" z="2.22982224032">
+        <neutronic p="121.703" r="4.71532" t="25.7472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11692" x="-0.999658991385" y="1.705409375" z="2.22982224032">
+        <neutronic p="121.04" r="4.71445" t="26.1746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11693" x="-0.999658991385" y="1.74359140625" z="2.22982224032">
+        <neutronic p="120.403" r="4.71356" t="26.602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11694" x="-0.999658991385" y="1.7817734375" z="2.22982224032">
+        <neutronic p="119.788" r="4.71265" t="27.0291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11695" x="-0.999658991385" y="1.81995546875" z="2.22982224032">
+        <neutronic p="119.195" r="4.71172" t="27.4557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11696" x="-0.999658991385" y="1.8581375" z="2.22982224032">
+        <neutronic p="118.623" r="4.71076" t="27.8816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11697" x="-0.999658991385" y="1.89631953125" z="2.22982224032">
+        <neutronic p="118.071" r="4.70977" t="28.3066"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11717" x="-0.894575417156" y="0.21631015625" z="2.27401850158">
+        <neutronic p="178.959" r="4.72838" t="11.5018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11718" x="-0.894575417156" y="0.2544921875" z="2.27401850158">
+        <neutronic p="176.019" r="4.72855" t="11.5271"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11719" x="-0.894575417156" y="0.29267421875" z="2.27401850158">
+        <neutronic p="173.098" r="4.7287" t="11.5817"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11720" x="-0.894575417156" y="0.33085625" z="2.27401850158">
+        <neutronic p="170.211" r="4.72882" t="11.6653"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11721" x="-0.894575417156" y="0.36903828125" z="2.27401850158">
+        <neutronic p="167.371" r="4.72891" t="11.7773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11722" x="-0.894575417156" y="0.4072203125" z="2.27401850158">
+        <neutronic p="164.59" r="4.72897" t="11.9168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11723" x="-0.894575417156" y="0.44540234375" z="2.27401850158">
+        <neutronic p="161.881" r="4.729" t="12.0828"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11724" x="-0.894575417156" y="0.483584375" z="2.27401850158">
+        <neutronic p="159.25" r="4.72901" t="12.2742"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11725" x="-0.894575417156" y="0.52176640625" z="2.27401850158">
+        <neutronic p="156.706" r="4.72898" t="12.4898"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11726" x="-0.894575417156" y="0.5599484375" z="2.27401850158">
+        <neutronic p="154.255" r="4.72893" t="12.728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11727" x="-0.894575417156" y="0.59813046875" z="2.27401850158">
+        <neutronic p="151.899" r="4.72885" t="12.9877"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11728" x="-0.894575417156" y="0.6363125" z="2.27401850158">
+        <neutronic p="149.64" r="4.72874" t="13.2672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11729" x="-0.894575417156" y="0.67449453125" z="2.27401850158">
+        <neutronic p="147.48" r="4.7286" t="13.5654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11730" x="-0.894575417156" y="0.7126765625" z="2.27401850158">
+        <neutronic p="145.417" r="4.72843" t="13.8806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11731" x="-0.894575417156" y="0.75085859375" z="2.27401850158">
+        <neutronic p="143.451" r="4.72824" t="14.2117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11732" x="-0.894575417156" y="0.789040625" z="2.27401850158">
+        <neutronic p="141.579" r="4.72801" t="14.5572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11733" x="-0.894575417156" y="0.82722265625" z="2.27401850158">
+        <neutronic p="139.798" r="4.72776" t="14.916"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11734" x="-0.894575417156" y="0.8654046875" z="2.27401850158">
+        <neutronic p="138.105" r="4.72748" t="15.2869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11735" x="-0.894575417156" y="0.90358671875" z="2.27401850158">
+        <neutronic p="136.496" r="4.72717" t="15.6688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11736" x="-0.894575417156" y="0.94176875" z="2.27401850158">
+        <neutronic p="134.967" r="4.72684" t="16.0606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11737" x="-0.894575417156" y="0.97995078125" z="2.27401850158">
+        <neutronic p="133.516" r="4.72647" t="16.4613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11738" x="-0.894575417156" y="1.0181328125" z="2.27401850158">
+        <neutronic p="132.137" r="4.72608" t="16.8701"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11739" x="-0.894575417156" y="1.05631484375" z="2.27401850158">
+        <neutronic p="130.827" r="4.72566" t="17.286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11740" x="-0.894575417156" y="1.094496875" z="2.27401850158">
+        <neutronic p="129.582" r="4.72521" t="17.7084"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11741" x="-0.894575417156" y="1.13267890625" z="2.27401850158">
+        <neutronic p="128.398" r="4.72474" t="18.1364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11742" x="-0.894575417156" y="1.1708609375" z="2.27401850158">
+        <neutronic p="127.273" r="4.72424" t="18.5694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11743" x="-0.894575417156" y="1.20904296875" z="2.27401850158">
+        <neutronic p="126.202" r="4.72371" t="19.0068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11744" x="-0.894575417156" y="1.247225" z="2.27401850158">
+        <neutronic p="125.183" r="4.72315" t="19.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11745" x="-0.894575417156" y="1.28540703125" z="2.27401850158">
+        <neutronic p="124.213" r="4.72257" t="19.8923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11746" x="-0.894575417156" y="1.3235890625" z="2.27401850158">
+        <neutronic p="123.288" r="4.72196" t="20.3394"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11747" x="-0.894575417156" y="1.36177109375" z="2.27401850158">
+        <neutronic p="122.405" r="4.72133" t="20.7888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11748" x="-0.894575417156" y="1.399953125" z="2.27401850158">
+        <neutronic p="121.564" r="4.72066" t="21.24"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11749" x="-0.894575417156" y="1.43813515625" z="2.27401850158">
+        <neutronic p="120.76" r="4.71998" t="21.6926"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11750" x="-0.894575417156" y="1.4763171875" z="2.27401850158">
+        <neutronic p="119.992" r="4.71926" t="22.1463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11751" x="-0.894575417156" y="1.51449921875" z="2.27401850158">
+        <neutronic p="119.258" r="4.71852" t="22.6007"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11752" x="-0.894575417156" y="1.55268125" z="2.27401850158">
+        <neutronic p="118.556" r="4.71776" t="23.0555"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11753" x="-0.894575417156" y="1.59086328125" z="2.27401850158">
+        <neutronic p="117.884" r="4.71697" t="23.5104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11754" x="-0.894575417156" y="1.6290453125" z="2.27401850158">
+        <neutronic p="117.24" r="4.71616" t="23.9651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11755" x="-0.894575417156" y="1.66722734375" z="2.27401850158">
+        <neutronic p="116.622" r="4.71532" t="24.4194"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11756" x="-0.894575417156" y="1.705409375" z="2.27401850158">
+        <neutronic p="116.03" r="4.71445" t="24.8729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11757" x="-0.894575417156" y="1.74359140625" z="2.27401850158">
+        <neutronic p="115.462" r="4.71356" t="25.3256"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11758" x="-0.894575417156" y="1.7817734375" z="2.27401850158">
+        <neutronic p="114.916" r="4.71265" t="25.7772"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11759" x="-0.894575417156" y="1.81995546875" z="2.27401850158">
+        <neutronic p="114.391" r="4.71172" t="26.2275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11760" x="-0.894575417156" y="1.8581375" z="2.27401850158">
+        <neutronic p="113.887" r="4.71076" t="26.6764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="11761" x="-0.894575417156" y="1.89631953125" z="2.27401850158">
+        <neutronic p="113.402" r="4.70977" t="27.1236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+  </type>
+  <idlist idname="bank3">
+    <id val="8197"/>
+    <id val="8198"/>
+    <id val="8199"/>
+    <id val="8200"/>
+    <id val="8201"/>
+    <id val="8202"/>
+    <id val="8203"/>
+    <id val="8204"/>
+    <id val="8205"/>
+    <id val="8206"/>
+    <id val="8207"/>
+    <id val="8208"/>
+    <id val="8209"/>
+    <id val="8210"/>
+    <id val="8211"/>
+    <id val="8212"/>
+    <id val="8213"/>
+    <id val="8214"/>
+    <id val="8215"/>
+    <id val="8216"/>
+    <id val="8217"/>
+    <id val="8218"/>
+    <id val="8219"/>
+    <id val="8220"/>
+    <id val="8221"/>
+    <id val="8222"/>
+    <id val="8223"/>
+    <id val="8224"/>
+    <id val="8225"/>
+    <id val="8226"/>
+    <id val="8227"/>
+    <id val="8228"/>
+    <id val="8229"/>
+    <id val="8230"/>
+    <id val="8231"/>
+    <id val="8232"/>
+    <id val="8233"/>
+    <id val="8234"/>
+    <id val="8235"/>
+    <id val="8236"/>
+    <id val="8237"/>
+    <id val="8238"/>
+    <id val="8239"/>
+    <id val="8240"/>
+    <id val="8241"/>
+    <id val="8261"/>
+    <id val="8262"/>
+    <id val="8263"/>
+    <id val="8264"/>
+    <id val="8265"/>
+    <id val="8266"/>
+    <id val="8267"/>
+    <id val="8268"/>
+    <id val="8269"/>
+    <id val="8270"/>
+    <id val="8271"/>
+    <id val="8272"/>
+    <id val="8273"/>
+    <id val="8274"/>
+    <id val="8275"/>
+    <id val="8276"/>
+    <id val="8277"/>
+    <id val="8278"/>
+    <id val="8279"/>
+    <id val="8280"/>
+    <id val="8281"/>
+    <id val="8282"/>
+    <id val="8283"/>
+    <id val="8284"/>
+    <id val="8285"/>
+    <id val="8286"/>
+    <id val="8287"/>
+    <id val="8288"/>
+    <id val="8289"/>
+    <id val="8290"/>
+    <id val="8291"/>
+    <id val="8292"/>
+    <id val="8293"/>
+    <id val="8294"/>
+    <id val="8295"/>
+    <id val="8296"/>
+    <id val="8297"/>
+    <id val="8298"/>
+    <id val="8299"/>
+    <id val="8300"/>
+    <id val="8301"/>
+    <id val="8302"/>
+    <id val="8303"/>
+    <id val="8304"/>
+    <id val="8305"/>
+    <id val="8325"/>
+    <id val="8326"/>
+    <id val="8327"/>
+    <id val="8328"/>
+    <id val="8329"/>
+    <id val="8330"/>
+    <id val="8331"/>
+    <id val="8332"/>
+    <id val="8333"/>
+    <id val="8334"/>
+    <id val="8335"/>
+    <id val="8336"/>
+    <id val="8337"/>
+    <id val="8338"/>
+    <id val="8339"/>
+    <id val="8340"/>
+    <id val="8341"/>
+    <id val="8342"/>
+    <id val="8343"/>
+    <id val="8344"/>
+    <id val="8345"/>
+    <id val="8346"/>
+    <id val="8347"/>
+    <id val="8348"/>
+    <id val="8349"/>
+    <id val="8350"/>
+    <id val="8351"/>
+    <id val="8352"/>
+    <id val="8353"/>
+    <id val="8354"/>
+    <id val="8355"/>
+    <id val="8356"/>
+    <id val="8357"/>
+    <id val="8358"/>
+    <id val="8359"/>
+    <id val="8360"/>
+    <id val="8361"/>
+    <id val="8362"/>
+    <id val="8363"/>
+    <id val="8364"/>
+    <id val="8365"/>
+    <id val="8366"/>
+    <id val="8367"/>
+    <id val="8368"/>
+    <id val="8369"/>
+    <id val="8389"/>
+    <id val="8390"/>
+    <id val="8391"/>
+    <id val="8392"/>
+    <id val="8393"/>
+    <id val="8394"/>
+    <id val="8395"/>
+    <id val="8396"/>
+    <id val="8397"/>
+    <id val="8398"/>
+    <id val="8399"/>
+    <id val="8400"/>
+    <id val="8401"/>
+    <id val="8402"/>
+    <id val="8403"/>
+    <id val="8404"/>
+    <id val="8405"/>
+    <id val="8406"/>
+    <id val="8407"/>
+    <id val="8408"/>
+    <id val="8409"/>
+    <id val="8410"/>
+    <id val="8411"/>
+    <id val="8412"/>
+    <id val="8413"/>
+    <id val="8414"/>
+    <id val="8415"/>
+    <id val="8416"/>
+    <id val="8417"/>
+    <id val="8418"/>
+    <id val="8419"/>
+    <id val="8420"/>
+    <id val="8421"/>
+    <id val="8422"/>
+    <id val="8423"/>
+    <id val="8424"/>
+    <id val="8425"/>
+    <id val="8426"/>
+    <id val="8427"/>
+    <id val="8428"/>
+    <id val="8429"/>
+    <id val="8430"/>
+    <id val="8431"/>
+    <id val="8432"/>
+    <id val="8433"/>
+    <id val="8453"/>
+    <id val="8454"/>
+    <id val="8455"/>
+    <id val="8456"/>
+    <id val="8457"/>
+    <id val="8458"/>
+    <id val="8459"/>
+    <id val="8460"/>
+    <id val="8461"/>
+    <id val="8462"/>
+    <id val="8463"/>
+    <id val="8464"/>
+    <id val="8465"/>
+    <id val="8466"/>
+    <id val="8467"/>
+    <id val="8468"/>
+    <id val="8469"/>
+    <id val="8470"/>
+    <id val="8471"/>
+    <id val="8472"/>
+    <id val="8473"/>
+    <id val="8474"/>
+    <id val="8475"/>
+    <id val="8476"/>
+    <id val="8477"/>
+    <id val="8478"/>
+    <id val="8479"/>
+    <id val="8480"/>
+    <id val="8481"/>
+    <id val="8482"/>
+    <id val="8483"/>
+    <id val="8484"/>
+    <id val="8485"/>
+    <id val="8486"/>
+    <id val="8487"/>
+    <id val="8488"/>
+    <id val="8489"/>
+    <id val="8490"/>
+    <id val="8491"/>
+    <id val="8492"/>
+    <id val="8493"/>
+    <id val="8494"/>
+    <id val="8495"/>
+    <id val="8496"/>
+    <id val="8497"/>
+    <id val="8517"/>
+    <id val="8518"/>
+    <id val="8519"/>
+    <id val="8520"/>
+    <id val="8521"/>
+    <id val="8522"/>
+    <id val="8523"/>
+    <id val="8524"/>
+    <id val="8525"/>
+    <id val="8526"/>
+    <id val="8527"/>
+    <id val="8528"/>
+    <id val="8529"/>
+    <id val="8530"/>
+    <id val="8531"/>
+    <id val="8532"/>
+    <id val="8533"/>
+    <id val="8534"/>
+    <id val="8535"/>
+    <id val="8536"/>
+    <id val="8537"/>
+    <id val="8538"/>
+    <id val="8539"/>
+    <id val="8540"/>
+    <id val="8541"/>
+    <id val="8542"/>
+    <id val="8543"/>
+    <id val="8544"/>
+    <id val="8545"/>
+    <id val="8546"/>
+    <id val="8547"/>
+    <id val="8548"/>
+    <id val="8549"/>
+    <id val="8550"/>
+    <id val="8551"/>
+    <id val="8552"/>
+    <id val="8553"/>
+    <id val="8554"/>
+    <id val="8555"/>
+    <id val="8556"/>
+    <id val="8557"/>
+    <id val="8558"/>
+    <id val="8559"/>
+    <id val="8560"/>
+    <id val="8561"/>
+    <id val="8581"/>
+    <id val="8582"/>
+    <id val="8583"/>
+    <id val="8584"/>
+    <id val="8585"/>
+    <id val="8586"/>
+    <id val="8587"/>
+    <id val="8588"/>
+    <id val="8589"/>
+    <id val="8590"/>
+    <id val="8591"/>
+    <id val="8592"/>
+    <id val="8593"/>
+    <id val="8594"/>
+    <id val="8595"/>
+    <id val="8596"/>
+    <id val="8597"/>
+    <id val="8598"/>
+    <id val="8599"/>
+    <id val="8600"/>
+    <id val="8601"/>
+    <id val="8602"/>
+    <id val="8603"/>
+    <id val="8604"/>
+    <id val="8605"/>
+    <id val="8606"/>
+    <id val="8607"/>
+    <id val="8608"/>
+    <id val="8609"/>
+    <id val="8610"/>
+    <id val="8611"/>
+    <id val="8612"/>
+    <id val="8613"/>
+    <id val="8614"/>
+    <id val="8615"/>
+    <id val="8616"/>
+    <id val="8617"/>
+    <id val="8618"/>
+    <id val="8619"/>
+    <id val="8620"/>
+    <id val="8621"/>
+    <id val="8622"/>
+    <id val="8623"/>
+    <id val="8624"/>
+    <id val="8625"/>
+    <id val="8645"/>
+    <id val="8646"/>
+    <id val="8647"/>
+    <id val="8648"/>
+    <id val="8649"/>
+    <id val="8650"/>
+    <id val="8651"/>
+    <id val="8652"/>
+    <id val="8653"/>
+    <id val="8654"/>
+    <id val="8655"/>
+    <id val="8656"/>
+    <id val="8657"/>
+    <id val="8658"/>
+    <id val="8659"/>
+    <id val="8660"/>
+    <id val="8661"/>
+    <id val="8662"/>
+    <id val="8663"/>
+    <id val="8664"/>
+    <id val="8665"/>
+    <id val="8666"/>
+    <id val="8667"/>
+    <id val="8668"/>
+    <id val="8669"/>
+    <id val="8670"/>
+    <id val="8671"/>
+    <id val="8672"/>
+    <id val="8673"/>
+    <id val="8674"/>
+    <id val="8675"/>
+    <id val="8676"/>
+    <id val="8677"/>
+    <id val="8678"/>
+    <id val="8679"/>
+    <id val="8680"/>
+    <id val="8681"/>
+    <id val="8682"/>
+    <id val="8683"/>
+    <id val="8684"/>
+    <id val="8685"/>
+    <id val="8686"/>
+    <id val="8687"/>
+    <id val="8688"/>
+    <id val="8689"/>
+    <id val="8709"/>
+    <id val="8710"/>
+    <id val="8711"/>
+    <id val="8712"/>
+    <id val="8713"/>
+    <id val="8714"/>
+    <id val="8715"/>
+    <id val="8716"/>
+    <id val="8717"/>
+    <id val="8718"/>
+    <id val="8719"/>
+    <id val="8720"/>
+    <id val="8721"/>
+    <id val="8722"/>
+    <id val="8723"/>
+    <id val="8724"/>
+    <id val="8725"/>
+    <id val="8726"/>
+    <id val="8727"/>
+    <id val="8728"/>
+    <id val="8729"/>
+    <id val="8730"/>
+    <id val="8731"/>
+    <id val="8732"/>
+    <id val="8733"/>
+    <id val="8734"/>
+    <id val="8735"/>
+    <id val="8736"/>
+    <id val="8737"/>
+    <id val="8738"/>
+    <id val="8739"/>
+    <id val="8740"/>
+    <id val="8741"/>
+    <id val="8742"/>
+    <id val="8743"/>
+    <id val="8744"/>
+    <id val="8745"/>
+    <id val="8746"/>
+    <id val="8747"/>
+    <id val="8748"/>
+    <id val="8749"/>
+    <id val="8750"/>
+    <id val="8751"/>
+    <id val="8752"/>
+    <id val="8753"/>
+    <id val="8773"/>
+    <id val="8774"/>
+    <id val="8775"/>
+    <id val="8776"/>
+    <id val="8777"/>
+    <id val="8778"/>
+    <id val="8779"/>
+    <id val="8780"/>
+    <id val="8781"/>
+    <id val="8782"/>
+    <id val="8783"/>
+    <id val="8784"/>
+    <id val="8785"/>
+    <id val="8786"/>
+    <id val="8787"/>
+    <id val="8788"/>
+    <id val="8789"/>
+    <id val="8790"/>
+    <id val="8791"/>
+    <id val="8792"/>
+    <id val="8793"/>
+    <id val="8794"/>
+    <id val="8795"/>
+    <id val="8796"/>
+    <id val="8797"/>
+    <id val="8798"/>
+    <id val="8799"/>
+    <id val="8800"/>
+    <id val="8801"/>
+    <id val="8802"/>
+    <id val="8803"/>
+    <id val="8804"/>
+    <id val="8805"/>
+    <id val="8806"/>
+    <id val="8807"/>
+    <id val="8808"/>
+    <id val="8809"/>
+    <id val="8810"/>
+    <id val="8811"/>
+    <id val="8812"/>
+    <id val="8813"/>
+    <id val="8814"/>
+    <id val="8815"/>
+    <id val="8816"/>
+    <id val="8817"/>
+    <id val="8837"/>
+    <id val="8838"/>
+    <id val="8839"/>
+    <id val="8840"/>
+    <id val="8841"/>
+    <id val="8842"/>
+    <id val="8843"/>
+    <id val="8844"/>
+    <id val="8845"/>
+    <id val="8846"/>
+    <id val="8847"/>
+    <id val="8848"/>
+    <id val="8849"/>
+    <id val="8850"/>
+    <id val="8851"/>
+    <id val="8852"/>
+    <id val="8853"/>
+    <id val="8854"/>
+    <id val="8855"/>
+    <id val="8856"/>
+    <id val="8857"/>
+    <id val="8858"/>
+    <id val="8859"/>
+    <id val="8860"/>
+    <id val="8861"/>
+    <id val="8862"/>
+    <id val="8863"/>
+    <id val="8864"/>
+    <id val="8865"/>
+    <id val="8866"/>
+    <id val="8867"/>
+    <id val="8868"/>
+    <id val="8869"/>
+    <id val="8870"/>
+    <id val="8871"/>
+    <id val="8872"/>
+    <id val="8873"/>
+    <id val="8874"/>
+    <id val="8875"/>
+    <id val="8876"/>
+    <id val="8877"/>
+    <id val="8878"/>
+    <id val="8879"/>
+    <id val="8880"/>
+    <id val="8881"/>
+    <id val="8901"/>
+    <id val="8902"/>
+    <id val="8903"/>
+    <id val="8904"/>
+    <id val="8905"/>
+    <id val="8906"/>
+    <id val="8907"/>
+    <id val="8908"/>
+    <id val="8909"/>
+    <id val="8910"/>
+    <id val="8911"/>
+    <id val="8912"/>
+    <id val="8913"/>
+    <id val="8914"/>
+    <id val="8915"/>
+    <id val="8916"/>
+    <id val="8917"/>
+    <id val="8918"/>
+    <id val="8919"/>
+    <id val="8920"/>
+    <id val="8921"/>
+    <id val="8922"/>
+    <id val="8923"/>
+    <id val="8924"/>
+    <id val="8925"/>
+    <id val="8926"/>
+    <id val="8927"/>
+    <id val="8928"/>
+    <id val="8929"/>
+    <id val="8930"/>
+    <id val="8931"/>
+    <id val="8932"/>
+    <id val="8933"/>
+    <id val="8934"/>
+    <id val="8935"/>
+    <id val="8936"/>
+    <id val="8937"/>
+    <id val="8938"/>
+    <id val="8939"/>
+    <id val="8940"/>
+    <id val="8941"/>
+    <id val="8942"/>
+    <id val="8943"/>
+    <id val="8944"/>
+    <id val="8945"/>
+    <id val="8965"/>
+    <id val="8966"/>
+    <id val="8967"/>
+    <id val="8968"/>
+    <id val="8969"/>
+    <id val="8970"/>
+    <id val="8971"/>
+    <id val="8972"/>
+    <id val="8973"/>
+    <id val="8974"/>
+    <id val="8975"/>
+    <id val="8976"/>
+    <id val="8977"/>
+    <id val="8978"/>
+    <id val="8979"/>
+    <id val="8980"/>
+    <id val="8981"/>
+    <id val="8982"/>
+    <id val="8983"/>
+    <id val="8984"/>
+    <id val="8985"/>
+    <id val="8986"/>
+    <id val="8987"/>
+    <id val="8988"/>
+    <id val="8989"/>
+    <id val="8990"/>
+    <id val="8991"/>
+    <id val="8992"/>
+    <id val="8993"/>
+    <id val="8994"/>
+    <id val="8995"/>
+    <id val="8996"/>
+    <id val="8997"/>
+    <id val="8998"/>
+    <id val="8999"/>
+    <id val="9000"/>
+    <id val="9001"/>
+    <id val="9002"/>
+    <id val="9003"/>
+    <id val="9004"/>
+    <id val="9005"/>
+    <id val="9006"/>
+    <id val="9007"/>
+    <id val="9008"/>
+    <id val="9009"/>
+    <id val="9029"/>
+    <id val="9030"/>
+    <id val="9031"/>
+    <id val="9032"/>
+    <id val="9033"/>
+    <id val="9034"/>
+    <id val="9035"/>
+    <id val="9036"/>
+    <id val="9037"/>
+    <id val="9038"/>
+    <id val="9039"/>
+    <id val="9040"/>
+    <id val="9041"/>
+    <id val="9042"/>
+    <id val="9043"/>
+    <id val="9044"/>
+    <id val="9045"/>
+    <id val="9046"/>
+    <id val="9047"/>
+    <id val="9048"/>
+    <id val="9049"/>
+    <id val="9050"/>
+    <id val="9051"/>
+    <id val="9052"/>
+    <id val="9053"/>
+    <id val="9054"/>
+    <id val="9055"/>
+    <id val="9056"/>
+    <id val="9057"/>
+    <id val="9058"/>
+    <id val="9059"/>
+    <id val="9060"/>
+    <id val="9061"/>
+    <id val="9062"/>
+    <id val="9063"/>
+    <id val="9064"/>
+    <id val="9065"/>
+    <id val="9066"/>
+    <id val="9067"/>
+    <id val="9068"/>
+    <id val="9069"/>
+    <id val="9070"/>
+    <id val="9071"/>
+    <id val="9072"/>
+    <id val="9073"/>
+    <id val="9093"/>
+    <id val="9094"/>
+    <id val="9095"/>
+    <id val="9096"/>
+    <id val="9097"/>
+    <id val="9098"/>
+    <id val="9099"/>
+    <id val="9100"/>
+    <id val="9101"/>
+    <id val="9102"/>
+    <id val="9103"/>
+    <id val="9104"/>
+    <id val="9105"/>
+    <id val="9106"/>
+    <id val="9107"/>
+    <id val="9108"/>
+    <id val="9109"/>
+    <id val="9110"/>
+    <id val="9111"/>
+    <id val="9112"/>
+    <id val="9113"/>
+    <id val="9114"/>
+    <id val="9115"/>
+    <id val="9116"/>
+    <id val="9117"/>
+    <id val="9118"/>
+    <id val="9119"/>
+    <id val="9120"/>
+    <id val="9121"/>
+    <id val="9122"/>
+    <id val="9123"/>
+    <id val="9124"/>
+    <id val="9125"/>
+    <id val="9126"/>
+    <id val="9127"/>
+    <id val="9128"/>
+    <id val="9129"/>
+    <id val="9130"/>
+    <id val="9131"/>
+    <id val="9132"/>
+    <id val="9133"/>
+    <id val="9134"/>
+    <id val="9135"/>
+    <id val="9136"/>
+    <id val="9137"/>
+    <id val="9157"/>
+    <id val="9158"/>
+    <id val="9159"/>
+    <id val="9160"/>
+    <id val="9161"/>
+    <id val="9162"/>
+    <id val="9163"/>
+    <id val="9164"/>
+    <id val="9165"/>
+    <id val="9166"/>
+    <id val="9167"/>
+    <id val="9168"/>
+    <id val="9169"/>
+    <id val="9170"/>
+    <id val="9171"/>
+    <id val="9172"/>
+    <id val="9173"/>
+    <id val="9174"/>
+    <id val="9175"/>
+    <id val="9176"/>
+    <id val="9177"/>
+    <id val="9178"/>
+    <id val="9179"/>
+    <id val="9180"/>
+    <id val="9181"/>
+    <id val="9182"/>
+    <id val="9183"/>
+    <id val="9184"/>
+    <id val="9185"/>
+    <id val="9186"/>
+    <id val="9187"/>
+    <id val="9188"/>
+    <id val="9189"/>
+    <id val="9190"/>
+    <id val="9191"/>
+    <id val="9192"/>
+    <id val="9193"/>
+    <id val="9194"/>
+    <id val="9195"/>
+    <id val="9196"/>
+    <id val="9197"/>
+    <id val="9198"/>
+    <id val="9199"/>
+    <id val="9200"/>
+    <id val="9201"/>
+    <id val="9221"/>
+    <id val="9222"/>
+    <id val="9223"/>
+    <id val="9224"/>
+    <id val="9225"/>
+    <id val="9226"/>
+    <id val="9227"/>
+    <id val="9228"/>
+    <id val="9229"/>
+    <id val="9230"/>
+    <id val="9231"/>
+    <id val="9232"/>
+    <id val="9233"/>
+    <id val="9234"/>
+    <id val="9235"/>
+    <id val="9236"/>
+    <id val="9237"/>
+    <id val="9238"/>
+    <id val="9239"/>
+    <id val="9240"/>
+    <id val="9241"/>
+    <id val="9242"/>
+    <id val="9243"/>
+    <id val="9244"/>
+    <id val="9245"/>
+    <id val="9246"/>
+    <id val="9247"/>
+    <id val="9248"/>
+    <id val="9249"/>
+    <id val="9250"/>
+    <id val="9251"/>
+    <id val="9252"/>
+    <id val="9253"/>
+    <id val="9254"/>
+    <id val="9255"/>
+    <id val="9256"/>
+    <id val="9257"/>
+    <id val="9258"/>
+    <id val="9259"/>
+    <id val="9260"/>
+    <id val="9261"/>
+    <id val="9262"/>
+    <id val="9263"/>
+    <id val="9264"/>
+    <id val="9265"/>
+    <id val="9285"/>
+    <id val="9286"/>
+    <id val="9287"/>
+    <id val="9288"/>
+    <id val="9289"/>
+    <id val="9290"/>
+    <id val="9291"/>
+    <id val="9292"/>
+    <id val="9293"/>
+    <id val="9294"/>
+    <id val="9295"/>
+    <id val="9296"/>
+    <id val="9297"/>
+    <id val="9298"/>
+    <id val="9299"/>
+    <id val="9300"/>
+    <id val="9301"/>
+    <id val="9302"/>
+    <id val="9303"/>
+    <id val="9304"/>
+    <id val="9305"/>
+    <id val="9306"/>
+    <id val="9307"/>
+    <id val="9308"/>
+    <id val="9309"/>
+    <id val="9310"/>
+    <id val="9311"/>
+    <id val="9312"/>
+    <id val="9313"/>
+    <id val="9314"/>
+    <id val="9315"/>
+    <id val="9316"/>
+    <id val="9317"/>
+    <id val="9318"/>
+    <id val="9319"/>
+    <id val="9320"/>
+    <id val="9321"/>
+    <id val="9322"/>
+    <id val="9323"/>
+    <id val="9324"/>
+    <id val="9325"/>
+    <id val="9326"/>
+    <id val="9327"/>
+    <id val="9328"/>
+    <id val="9329"/>
+    <id val="9349"/>
+    <id val="9350"/>
+    <id val="9351"/>
+    <id val="9352"/>
+    <id val="9353"/>
+    <id val="9354"/>
+    <id val="9355"/>
+    <id val="9356"/>
+    <id val="9357"/>
+    <id val="9358"/>
+    <id val="9359"/>
+    <id val="9360"/>
+    <id val="9361"/>
+    <id val="9362"/>
+    <id val="9363"/>
+    <id val="9364"/>
+    <id val="9365"/>
+    <id val="9366"/>
+    <id val="9367"/>
+    <id val="9368"/>
+    <id val="9369"/>
+    <id val="9370"/>
+    <id val="9371"/>
+    <id val="9372"/>
+    <id val="9373"/>
+    <id val="9374"/>
+    <id val="9375"/>
+    <id val="9376"/>
+    <id val="9377"/>
+    <id val="9378"/>
+    <id val="9379"/>
+    <id val="9380"/>
+    <id val="9381"/>
+    <id val="9382"/>
+    <id val="9383"/>
+    <id val="9384"/>
+    <id val="9385"/>
+    <id val="9386"/>
+    <id val="9387"/>
+    <id val="9388"/>
+    <id val="9389"/>
+    <id val="9390"/>
+    <id val="9391"/>
+    <id val="9392"/>
+    <id val="9393"/>
+    <id val="9413"/>
+    <id val="9414"/>
+    <id val="9415"/>
+    <id val="9416"/>
+    <id val="9417"/>
+    <id val="9418"/>
+    <id val="9419"/>
+    <id val="9420"/>
+    <id val="9421"/>
+    <id val="9422"/>
+    <id val="9423"/>
+    <id val="9424"/>
+    <id val="9425"/>
+    <id val="9426"/>
+    <id val="9427"/>
+    <id val="9428"/>
+    <id val="9429"/>
+    <id val="9430"/>
+    <id val="9431"/>
+    <id val="9432"/>
+    <id val="9433"/>
+    <id val="9434"/>
+    <id val="9435"/>
+    <id val="9436"/>
+    <id val="9437"/>
+    <id val="9438"/>
+    <id val="9439"/>
+    <id val="9440"/>
+    <id val="9441"/>
+    <id val="9442"/>
+    <id val="9443"/>
+    <id val="9444"/>
+    <id val="9445"/>
+    <id val="9446"/>
+    <id val="9447"/>
+    <id val="9448"/>
+    <id val="9449"/>
+    <id val="9450"/>
+    <id val="9451"/>
+    <id val="9452"/>
+    <id val="9453"/>
+    <id val="9454"/>
+    <id val="9455"/>
+    <id val="9456"/>
+    <id val="9457"/>
+    <id val="9477"/>
+    <id val="9478"/>
+    <id val="9479"/>
+    <id val="9480"/>
+    <id val="9481"/>
+    <id val="9482"/>
+    <id val="9483"/>
+    <id val="9484"/>
+    <id val="9485"/>
+    <id val="9486"/>
+    <id val="9487"/>
+    <id val="9488"/>
+    <id val="9489"/>
+    <id val="9490"/>
+    <id val="9491"/>
+    <id val="9492"/>
+    <id val="9493"/>
+    <id val="9494"/>
+    <id val="9495"/>
+    <id val="9496"/>
+    <id val="9497"/>
+    <id val="9498"/>
+    <id val="9499"/>
+    <id val="9500"/>
+    <id val="9501"/>
+    <id val="9502"/>
+    <id val="9503"/>
+    <id val="9504"/>
+    <id val="9505"/>
+    <id val="9506"/>
+    <id val="9507"/>
+    <id val="9508"/>
+    <id val="9509"/>
+    <id val="9510"/>
+    <id val="9511"/>
+    <id val="9512"/>
+    <id val="9513"/>
+    <id val="9514"/>
+    <id val="9515"/>
+    <id val="9516"/>
+    <id val="9517"/>
+    <id val="9518"/>
+    <id val="9519"/>
+    <id val="9520"/>
+    <id val="9521"/>
+    <id val="9541"/>
+    <id val="9542"/>
+    <id val="9543"/>
+    <id val="9544"/>
+    <id val="9545"/>
+    <id val="9546"/>
+    <id val="9547"/>
+    <id val="9548"/>
+    <id val="9549"/>
+    <id val="9550"/>
+    <id val="9551"/>
+    <id val="9552"/>
+    <id val="9553"/>
+    <id val="9554"/>
+    <id val="9555"/>
+    <id val="9556"/>
+    <id val="9557"/>
+    <id val="9558"/>
+    <id val="9559"/>
+    <id val="9560"/>
+    <id val="9561"/>
+    <id val="9562"/>
+    <id val="9563"/>
+    <id val="9564"/>
+    <id val="9565"/>
+    <id val="9566"/>
+    <id val="9567"/>
+    <id val="9568"/>
+    <id val="9569"/>
+    <id val="9570"/>
+    <id val="9571"/>
+    <id val="9572"/>
+    <id val="9573"/>
+    <id val="9574"/>
+    <id val="9575"/>
+    <id val="9576"/>
+    <id val="9577"/>
+    <id val="9578"/>
+    <id val="9579"/>
+    <id val="9580"/>
+    <id val="9581"/>
+    <id val="9582"/>
+    <id val="9583"/>
+    <id val="9584"/>
+    <id val="9585"/>
+    <id val="9605"/>
+    <id val="9606"/>
+    <id val="9607"/>
+    <id val="9608"/>
+    <id val="9609"/>
+    <id val="9610"/>
+    <id val="9611"/>
+    <id val="9612"/>
+    <id val="9613"/>
+    <id val="9614"/>
+    <id val="9615"/>
+    <id val="9616"/>
+    <id val="9617"/>
+    <id val="9618"/>
+    <id val="9619"/>
+    <id val="9620"/>
+    <id val="9621"/>
+    <id val="9622"/>
+    <id val="9623"/>
+    <id val="9624"/>
+    <id val="9625"/>
+    <id val="9626"/>
+    <id val="9627"/>
+    <id val="9628"/>
+    <id val="9629"/>
+    <id val="9630"/>
+    <id val="9631"/>
+    <id val="9632"/>
+    <id val="9633"/>
+    <id val="9634"/>
+    <id val="9635"/>
+    <id val="9636"/>
+    <id val="9637"/>
+    <id val="9638"/>
+    <id val="9639"/>
+    <id val="9640"/>
+    <id val="9641"/>
+    <id val="9642"/>
+    <id val="9643"/>
+    <id val="9644"/>
+    <id val="9645"/>
+    <id val="9646"/>
+    <id val="9647"/>
+    <id val="9648"/>
+    <id val="9649"/>
+    <id val="9669"/>
+    <id val="9670"/>
+    <id val="9671"/>
+    <id val="9672"/>
+    <id val="9673"/>
+    <id val="9674"/>
+    <id val="9675"/>
+    <id val="9676"/>
+    <id val="9677"/>
+    <id val="9678"/>
+    <id val="9679"/>
+    <id val="9680"/>
+    <id val="9681"/>
+    <id val="9682"/>
+    <id val="9683"/>
+    <id val="9684"/>
+    <id val="9685"/>
+    <id val="9686"/>
+    <id val="9687"/>
+    <id val="9688"/>
+    <id val="9689"/>
+    <id val="9690"/>
+    <id val="9691"/>
+    <id val="9692"/>
+    <id val="9693"/>
+    <id val="9694"/>
+    <id val="9695"/>
+    <id val="9696"/>
+    <id val="9697"/>
+    <id val="9698"/>
+    <id val="9699"/>
+    <id val="9700"/>
+    <id val="9701"/>
+    <id val="9702"/>
+    <id val="9703"/>
+    <id val="9704"/>
+    <id val="9705"/>
+    <id val="9706"/>
+    <id val="9707"/>
+    <id val="9708"/>
+    <id val="9709"/>
+    <id val="9710"/>
+    <id val="9711"/>
+    <id val="9712"/>
+    <id val="9713"/>
+    <id val="9733"/>
+    <id val="9734"/>
+    <id val="9735"/>
+    <id val="9736"/>
+    <id val="9737"/>
+    <id val="9738"/>
+    <id val="9739"/>
+    <id val="9740"/>
+    <id val="9741"/>
+    <id val="9742"/>
+    <id val="9743"/>
+    <id val="9744"/>
+    <id val="9745"/>
+    <id val="9746"/>
+    <id val="9747"/>
+    <id val="9748"/>
+    <id val="9749"/>
+    <id val="9750"/>
+    <id val="9751"/>
+    <id val="9752"/>
+    <id val="9753"/>
+    <id val="9754"/>
+    <id val="9755"/>
+    <id val="9756"/>
+    <id val="9757"/>
+    <id val="9758"/>
+    <id val="9759"/>
+    <id val="9760"/>
+    <id val="9761"/>
+    <id val="9762"/>
+    <id val="9763"/>
+    <id val="9764"/>
+    <id val="9765"/>
+    <id val="9766"/>
+    <id val="9767"/>
+    <id val="9768"/>
+    <id val="9769"/>
+    <id val="9770"/>
+    <id val="9771"/>
+    <id val="9772"/>
+    <id val="9773"/>
+    <id val="9774"/>
+    <id val="9775"/>
+    <id val="9776"/>
+    <id val="9777"/>
+    <id val="9797"/>
+    <id val="9798"/>
+    <id val="9799"/>
+    <id val="9800"/>
+    <id val="9801"/>
+    <id val="9802"/>
+    <id val="9803"/>
+    <id val="9804"/>
+    <id val="9805"/>
+    <id val="9806"/>
+    <id val="9807"/>
+    <id val="9808"/>
+    <id val="9809"/>
+    <id val="9810"/>
+    <id val="9811"/>
+    <id val="9812"/>
+    <id val="9813"/>
+    <id val="9814"/>
+    <id val="9815"/>
+    <id val="9816"/>
+    <id val="9817"/>
+    <id val="9818"/>
+    <id val="9819"/>
+    <id val="9820"/>
+    <id val="9821"/>
+    <id val="9822"/>
+    <id val="9823"/>
+    <id val="9824"/>
+    <id val="9825"/>
+    <id val="9826"/>
+    <id val="9827"/>
+    <id val="9828"/>
+    <id val="9829"/>
+    <id val="9830"/>
+    <id val="9831"/>
+    <id val="9832"/>
+    <id val="9833"/>
+    <id val="9834"/>
+    <id val="9835"/>
+    <id val="9836"/>
+    <id val="9837"/>
+    <id val="9838"/>
+    <id val="9839"/>
+    <id val="9840"/>
+    <id val="9841"/>
+    <id val="9861"/>
+    <id val="9862"/>
+    <id val="9863"/>
+    <id val="9864"/>
+    <id val="9865"/>
+    <id val="9866"/>
+    <id val="9867"/>
+    <id val="9868"/>
+    <id val="9869"/>
+    <id val="9870"/>
+    <id val="9871"/>
+    <id val="9872"/>
+    <id val="9873"/>
+    <id val="9874"/>
+    <id val="9875"/>
+    <id val="9876"/>
+    <id val="9877"/>
+    <id val="9878"/>
+    <id val="9879"/>
+    <id val="9880"/>
+    <id val="9881"/>
+    <id val="9882"/>
+    <id val="9883"/>
+    <id val="9884"/>
+    <id val="9885"/>
+    <id val="9886"/>
+    <id val="9887"/>
+    <id val="9888"/>
+    <id val="9889"/>
+    <id val="9890"/>
+    <id val="9891"/>
+    <id val="9892"/>
+    <id val="9893"/>
+    <id val="9894"/>
+    <id val="9895"/>
+    <id val="9896"/>
+    <id val="9897"/>
+    <id val="9898"/>
+    <id val="9899"/>
+    <id val="9900"/>
+    <id val="9901"/>
+    <id val="9902"/>
+    <id val="9903"/>
+    <id val="9904"/>
+    <id val="9905"/>
+    <id val="9925"/>
+    <id val="9926"/>
+    <id val="9927"/>
+    <id val="9928"/>
+    <id val="9929"/>
+    <id val="9930"/>
+    <id val="9931"/>
+    <id val="9932"/>
+    <id val="9933"/>
+    <id val="9934"/>
+    <id val="9935"/>
+    <id val="9936"/>
+    <id val="9937"/>
+    <id val="9938"/>
+    <id val="9939"/>
+    <id val="9940"/>
+    <id val="9941"/>
+    <id val="9942"/>
+    <id val="9943"/>
+    <id val="9944"/>
+    <id val="9945"/>
+    <id val="9946"/>
+    <id val="9947"/>
+    <id val="9948"/>
+    <id val="9949"/>
+    <id val="9950"/>
+    <id val="9951"/>
+    <id val="9952"/>
+    <id val="9953"/>
+    <id val="9954"/>
+    <id val="9955"/>
+    <id val="9956"/>
+    <id val="9957"/>
+    <id val="9958"/>
+    <id val="9959"/>
+    <id val="9960"/>
+    <id val="9961"/>
+    <id val="9962"/>
+    <id val="9963"/>
+    <id val="9964"/>
+    <id val="9965"/>
+    <id val="9966"/>
+    <id val="9967"/>
+    <id val="9968"/>
+    <id val="9969"/>
+    <id val="9989"/>
+    <id val="9990"/>
+    <id val="9991"/>
+    <id val="9992"/>
+    <id val="9993"/>
+    <id val="9994"/>
+    <id val="9995"/>
+    <id val="9996"/>
+    <id val="9997"/>
+    <id val="9998"/>
+    <id val="9999"/>
+    <id val="10000"/>
+    <id val="10001"/>
+    <id val="10002"/>
+    <id val="10003"/>
+    <id val="10004"/>
+    <id val="10005"/>
+    <id val="10006"/>
+    <id val="10007"/>
+    <id val="10008"/>
+    <id val="10009"/>
+    <id val="10010"/>
+    <id val="10011"/>
+    <id val="10012"/>
+    <id val="10013"/>
+    <id val="10014"/>
+    <id val="10015"/>
+    <id val="10016"/>
+    <id val="10017"/>
+    <id val="10018"/>
+    <id val="10019"/>
+    <id val="10020"/>
+    <id val="10021"/>
+    <id val="10022"/>
+    <id val="10023"/>
+    <id val="10024"/>
+    <id val="10025"/>
+    <id val="10026"/>
+    <id val="10027"/>
+    <id val="10028"/>
+    <id val="10029"/>
+    <id val="10030"/>
+    <id val="10031"/>
+    <id val="10032"/>
+    <id val="10033"/>
+    <id val="10053"/>
+    <id val="10054"/>
+    <id val="10055"/>
+    <id val="10056"/>
+    <id val="10057"/>
+    <id val="10058"/>
+    <id val="10059"/>
+    <id val="10060"/>
+    <id val="10061"/>
+    <id val="10062"/>
+    <id val="10063"/>
+    <id val="10064"/>
+    <id val="10065"/>
+    <id val="10066"/>
+    <id val="10067"/>
+    <id val="10068"/>
+    <id val="10069"/>
+    <id val="10070"/>
+    <id val="10071"/>
+    <id val="10072"/>
+    <id val="10073"/>
+    <id val="10074"/>
+    <id val="10075"/>
+    <id val="10076"/>
+    <id val="10077"/>
+    <id val="10078"/>
+    <id val="10079"/>
+    <id val="10080"/>
+    <id val="10081"/>
+    <id val="10082"/>
+    <id val="10083"/>
+    <id val="10084"/>
+    <id val="10085"/>
+    <id val="10086"/>
+    <id val="10087"/>
+    <id val="10088"/>
+    <id val="10089"/>
+    <id val="10090"/>
+    <id val="10091"/>
+    <id val="10092"/>
+    <id val="10093"/>
+    <id val="10094"/>
+    <id val="10095"/>
+    <id val="10096"/>
+    <id val="10097"/>
+    <id val="10117"/>
+    <id val="10118"/>
+    <id val="10119"/>
+    <id val="10120"/>
+    <id val="10121"/>
+    <id val="10122"/>
+    <id val="10123"/>
+    <id val="10124"/>
+    <id val="10125"/>
+    <id val="10126"/>
+    <id val="10127"/>
+    <id val="10128"/>
+    <id val="10129"/>
+    <id val="10130"/>
+    <id val="10131"/>
+    <id val="10132"/>
+    <id val="10133"/>
+    <id val="10134"/>
+    <id val="10135"/>
+    <id val="10136"/>
+    <id val="10137"/>
+    <id val="10138"/>
+    <id val="10139"/>
+    <id val="10140"/>
+    <id val="10141"/>
+    <id val="10142"/>
+    <id val="10143"/>
+    <id val="10144"/>
+    <id val="10145"/>
+    <id val="10146"/>
+    <id val="10147"/>
+    <id val="10148"/>
+    <id val="10149"/>
+    <id val="10150"/>
+    <id val="10151"/>
+    <id val="10152"/>
+    <id val="10153"/>
+    <id val="10154"/>
+    <id val="10155"/>
+    <id val="10156"/>
+    <id val="10157"/>
+    <id val="10158"/>
+    <id val="10159"/>
+    <id val="10160"/>
+    <id val="10161"/>
+    <id val="10181"/>
+    <id val="10182"/>
+    <id val="10183"/>
+    <id val="10184"/>
+    <id val="10185"/>
+    <id val="10186"/>
+    <id val="10187"/>
+    <id val="10188"/>
+    <id val="10189"/>
+    <id val="10190"/>
+    <id val="10191"/>
+    <id val="10192"/>
+    <id val="10193"/>
+    <id val="10194"/>
+    <id val="10195"/>
+    <id val="10196"/>
+    <id val="10197"/>
+    <id val="10198"/>
+    <id val="10199"/>
+    <id val="10200"/>
+    <id val="10201"/>
+    <id val="10202"/>
+    <id val="10203"/>
+    <id val="10204"/>
+    <id val="10205"/>
+    <id val="10206"/>
+    <id val="10207"/>
+    <id val="10208"/>
+    <id val="10209"/>
+    <id val="10210"/>
+    <id val="10211"/>
+    <id val="10212"/>
+    <id val="10213"/>
+    <id val="10214"/>
+    <id val="10215"/>
+    <id val="10216"/>
+    <id val="10217"/>
+    <id val="10218"/>
+    <id val="10219"/>
+    <id val="10220"/>
+    <id val="10221"/>
+    <id val="10222"/>
+    <id val="10223"/>
+    <id val="10224"/>
+    <id val="10225"/>
+    <id val="10245"/>
+    <id val="10246"/>
+    <id val="10247"/>
+    <id val="10248"/>
+    <id val="10249"/>
+    <id val="10250"/>
+    <id val="10251"/>
+    <id val="10252"/>
+    <id val="10253"/>
+    <id val="10254"/>
+    <id val="10255"/>
+    <id val="10256"/>
+    <id val="10257"/>
+    <id val="10258"/>
+    <id val="10259"/>
+    <id val="10260"/>
+    <id val="10261"/>
+    <id val="10262"/>
+    <id val="10263"/>
+    <id val="10264"/>
+    <id val="10265"/>
+    <id val="10266"/>
+    <id val="10267"/>
+    <id val="10268"/>
+    <id val="10269"/>
+    <id val="10270"/>
+    <id val="10271"/>
+    <id val="10272"/>
+    <id val="10273"/>
+    <id val="10274"/>
+    <id val="10275"/>
+    <id val="10276"/>
+    <id val="10277"/>
+    <id val="10278"/>
+    <id val="10279"/>
+    <id val="10280"/>
+    <id val="10281"/>
+    <id val="10282"/>
+    <id val="10283"/>
+    <id val="10284"/>
+    <id val="10285"/>
+    <id val="10286"/>
+    <id val="10287"/>
+    <id val="10288"/>
+    <id val="10289"/>
+    <id val="10309"/>
+    <id val="10310"/>
+    <id val="10311"/>
+    <id val="10312"/>
+    <id val="10313"/>
+    <id val="10314"/>
+    <id val="10315"/>
+    <id val="10316"/>
+    <id val="10317"/>
+    <id val="10318"/>
+    <id val="10319"/>
+    <id val="10320"/>
+    <id val="10321"/>
+    <id val="10322"/>
+    <id val="10323"/>
+    <id val="10324"/>
+    <id val="10325"/>
+    <id val="10326"/>
+    <id val="10327"/>
+    <id val="10328"/>
+    <id val="10329"/>
+    <id val="10330"/>
+    <id val="10331"/>
+    <id val="10332"/>
+    <id val="10333"/>
+    <id val="10334"/>
+    <id val="10335"/>
+    <id val="10336"/>
+    <id val="10337"/>
+    <id val="10338"/>
+    <id val="10339"/>
+    <id val="10340"/>
+    <id val="10341"/>
+    <id val="10342"/>
+    <id val="10343"/>
+    <id val="10344"/>
+    <id val="10345"/>
+    <id val="10346"/>
+    <id val="10347"/>
+    <id val="10348"/>
+    <id val="10349"/>
+    <id val="10350"/>
+    <id val="10351"/>
+    <id val="10352"/>
+    <id val="10353"/>
+    <id val="10373"/>
+    <id val="10374"/>
+    <id val="10375"/>
+    <id val="10376"/>
+    <id val="10377"/>
+    <id val="10378"/>
+    <id val="10379"/>
+    <id val="10380"/>
+    <id val="10381"/>
+    <id val="10382"/>
+    <id val="10383"/>
+    <id val="10384"/>
+    <id val="10385"/>
+    <id val="10386"/>
+    <id val="10387"/>
+    <id val="10388"/>
+    <id val="10389"/>
+    <id val="10390"/>
+    <id val="10391"/>
+    <id val="10392"/>
+    <id val="10393"/>
+    <id val="10394"/>
+    <id val="10395"/>
+    <id val="10396"/>
+    <id val="10397"/>
+    <id val="10398"/>
+    <id val="10399"/>
+    <id val="10400"/>
+    <id val="10401"/>
+    <id val="10402"/>
+    <id val="10403"/>
+    <id val="10404"/>
+    <id val="10405"/>
+    <id val="10406"/>
+    <id val="10407"/>
+    <id val="10408"/>
+    <id val="10409"/>
+    <id val="10410"/>
+    <id val="10411"/>
+    <id val="10412"/>
+    <id val="10413"/>
+    <id val="10414"/>
+    <id val="10415"/>
+    <id val="10416"/>
+    <id val="10417"/>
+    <id val="10437"/>
+    <id val="10438"/>
+    <id val="10439"/>
+    <id val="10440"/>
+    <id val="10441"/>
+    <id val="10442"/>
+    <id val="10443"/>
+    <id val="10444"/>
+    <id val="10445"/>
+    <id val="10446"/>
+    <id val="10447"/>
+    <id val="10448"/>
+    <id val="10449"/>
+    <id val="10450"/>
+    <id val="10451"/>
+    <id val="10452"/>
+    <id val="10453"/>
+    <id val="10454"/>
+    <id val="10455"/>
+    <id val="10456"/>
+    <id val="10457"/>
+    <id val="10458"/>
+    <id val="10459"/>
+    <id val="10460"/>
+    <id val="10461"/>
+    <id val="10462"/>
+    <id val="10463"/>
+    <id val="10464"/>
+    <id val="10465"/>
+    <id val="10466"/>
+    <id val="10467"/>
+    <id val="10468"/>
+    <id val="10469"/>
+    <id val="10470"/>
+    <id val="10471"/>
+    <id val="10472"/>
+    <id val="10473"/>
+    <id val="10474"/>
+    <id val="10475"/>
+    <id val="10476"/>
+    <id val="10477"/>
+    <id val="10478"/>
+    <id val="10479"/>
+    <id val="10480"/>
+    <id val="10481"/>
+    <id val="10501"/>
+    <id val="10502"/>
+    <id val="10503"/>
+    <id val="10504"/>
+    <id val="10505"/>
+    <id val="10506"/>
+    <id val="10507"/>
+    <id val="10508"/>
+    <id val="10509"/>
+    <id val="10510"/>
+    <id val="10511"/>
+    <id val="10512"/>
+    <id val="10513"/>
+    <id val="10514"/>
+    <id val="10515"/>
+    <id val="10516"/>
+    <id val="10517"/>
+    <id val="10518"/>
+    <id val="10519"/>
+    <id val="10520"/>
+    <id val="10521"/>
+    <id val="10522"/>
+    <id val="10523"/>
+    <id val="10524"/>
+    <id val="10525"/>
+    <id val="10526"/>
+    <id val="10527"/>
+    <id val="10528"/>
+    <id val="10529"/>
+    <id val="10530"/>
+    <id val="10531"/>
+    <id val="10532"/>
+    <id val="10533"/>
+    <id val="10534"/>
+    <id val="10535"/>
+    <id val="10536"/>
+    <id val="10537"/>
+    <id val="10538"/>
+    <id val="10539"/>
+    <id val="10540"/>
+    <id val="10541"/>
+    <id val="10542"/>
+    <id val="10543"/>
+    <id val="10544"/>
+    <id val="10545"/>
+    <id val="10565"/>
+    <id val="10566"/>
+    <id val="10567"/>
+    <id val="10568"/>
+    <id val="10569"/>
+    <id val="10570"/>
+    <id val="10571"/>
+    <id val="10572"/>
+    <id val="10573"/>
+    <id val="10574"/>
+    <id val="10575"/>
+    <id val="10576"/>
+    <id val="10577"/>
+    <id val="10578"/>
+    <id val="10579"/>
+    <id val="10580"/>
+    <id val="10581"/>
+    <id val="10582"/>
+    <id val="10583"/>
+    <id val="10584"/>
+    <id val="10585"/>
+    <id val="10586"/>
+    <id val="10587"/>
+    <id val="10588"/>
+    <id val="10589"/>
+    <id val="10590"/>
+    <id val="10591"/>
+    <id val="10592"/>
+    <id val="10593"/>
+    <id val="10594"/>
+    <id val="10595"/>
+    <id val="10596"/>
+    <id val="10597"/>
+    <id val="10598"/>
+    <id val="10599"/>
+    <id val="10600"/>
+    <id val="10601"/>
+    <id val="10602"/>
+    <id val="10603"/>
+    <id val="10604"/>
+    <id val="10605"/>
+    <id val="10606"/>
+    <id val="10607"/>
+    <id val="10608"/>
+    <id val="10609"/>
+    <id val="10629"/>
+    <id val="10630"/>
+    <id val="10631"/>
+    <id val="10632"/>
+    <id val="10633"/>
+    <id val="10634"/>
+    <id val="10635"/>
+    <id val="10636"/>
+    <id val="10637"/>
+    <id val="10638"/>
+    <id val="10639"/>
+    <id val="10640"/>
+    <id val="10641"/>
+    <id val="10642"/>
+    <id val="10643"/>
+    <id val="10644"/>
+    <id val="10645"/>
+    <id val="10646"/>
+    <id val="10647"/>
+    <id val="10648"/>
+    <id val="10649"/>
+    <id val="10650"/>
+    <id val="10651"/>
+    <id val="10652"/>
+    <id val="10653"/>
+    <id val="10654"/>
+    <id val="10655"/>
+    <id val="10656"/>
+    <id val="10657"/>
+    <id val="10658"/>
+    <id val="10659"/>
+    <id val="10660"/>
+    <id val="10661"/>
+    <id val="10662"/>
+    <id val="10663"/>
+    <id val="10664"/>
+    <id val="10665"/>
+    <id val="10666"/>
+    <id val="10667"/>
+    <id val="10668"/>
+    <id val="10669"/>
+    <id val="10670"/>
+    <id val="10671"/>
+    <id val="10672"/>
+    <id val="10673"/>
+    <id val="10693"/>
+    <id val="10694"/>
+    <id val="10695"/>
+    <id val="10696"/>
+    <id val="10697"/>
+    <id val="10698"/>
+    <id val="10699"/>
+    <id val="10700"/>
+    <id val="10701"/>
+    <id val="10702"/>
+    <id val="10703"/>
+    <id val="10704"/>
+    <id val="10705"/>
+    <id val="10706"/>
+    <id val="10707"/>
+    <id val="10708"/>
+    <id val="10709"/>
+    <id val="10710"/>
+    <id val="10711"/>
+    <id val="10712"/>
+    <id val="10713"/>
+    <id val="10714"/>
+    <id val="10715"/>
+    <id val="10716"/>
+    <id val="10717"/>
+    <id val="10718"/>
+    <id val="10719"/>
+    <id val="10720"/>
+    <id val="10721"/>
+    <id val="10722"/>
+    <id val="10723"/>
+    <id val="10724"/>
+    <id val="10725"/>
+    <id val="10726"/>
+    <id val="10727"/>
+    <id val="10728"/>
+    <id val="10729"/>
+    <id val="10730"/>
+    <id val="10731"/>
+    <id val="10732"/>
+    <id val="10733"/>
+    <id val="10734"/>
+    <id val="10735"/>
+    <id val="10736"/>
+    <id val="10737"/>
+    <id val="10757"/>
+    <id val="10758"/>
+    <id val="10759"/>
+    <id val="10760"/>
+    <id val="10761"/>
+    <id val="10762"/>
+    <id val="10763"/>
+    <id val="10764"/>
+    <id val="10765"/>
+    <id val="10766"/>
+    <id val="10767"/>
+    <id val="10768"/>
+    <id val="10769"/>
+    <id val="10770"/>
+    <id val="10771"/>
+    <id val="10772"/>
+    <id val="10773"/>
+    <id val="10774"/>
+    <id val="10775"/>
+    <id val="10776"/>
+    <id val="10777"/>
+    <id val="10778"/>
+    <id val="10779"/>
+    <id val="10780"/>
+    <id val="10781"/>
+    <id val="10782"/>
+    <id val="10783"/>
+    <id val="10784"/>
+    <id val="10785"/>
+    <id val="10786"/>
+    <id val="10787"/>
+    <id val="10788"/>
+    <id val="10789"/>
+    <id val="10790"/>
+    <id val="10791"/>
+    <id val="10792"/>
+    <id val="10793"/>
+    <id val="10794"/>
+    <id val="10795"/>
+    <id val="10796"/>
+    <id val="10797"/>
+    <id val="10798"/>
+    <id val="10799"/>
+    <id val="10800"/>
+    <id val="10801"/>
+    <id val="10821"/>
+    <id val="10822"/>
+    <id val="10823"/>
+    <id val="10824"/>
+    <id val="10825"/>
+    <id val="10826"/>
+    <id val="10827"/>
+    <id val="10828"/>
+    <id val="10829"/>
+    <id val="10830"/>
+    <id val="10831"/>
+    <id val="10832"/>
+    <id val="10833"/>
+    <id val="10834"/>
+    <id val="10835"/>
+    <id val="10836"/>
+    <id val="10837"/>
+    <id val="10838"/>
+    <id val="10839"/>
+    <id val="10840"/>
+    <id val="10841"/>
+    <id val="10842"/>
+    <id val="10843"/>
+    <id val="10844"/>
+    <id val="10845"/>
+    <id val="10846"/>
+    <id val="10847"/>
+    <id val="10848"/>
+    <id val="10849"/>
+    <id val="10850"/>
+    <id val="10851"/>
+    <id val="10852"/>
+    <id val="10853"/>
+    <id val="10854"/>
+    <id val="10855"/>
+    <id val="10856"/>
+    <id val="10857"/>
+    <id val="10858"/>
+    <id val="10859"/>
+    <id val="10860"/>
+    <id val="10861"/>
+    <id val="10862"/>
+    <id val="10863"/>
+    <id val="10864"/>
+    <id val="10865"/>
+    <id val="10885"/>
+    <id val="10886"/>
+    <id val="10887"/>
+    <id val="10888"/>
+    <id val="10889"/>
+    <id val="10890"/>
+    <id val="10891"/>
+    <id val="10892"/>
+    <id val="10893"/>
+    <id val="10894"/>
+    <id val="10895"/>
+    <id val="10896"/>
+    <id val="10897"/>
+    <id val="10898"/>
+    <id val="10899"/>
+    <id val="10900"/>
+    <id val="10901"/>
+    <id val="10902"/>
+    <id val="10903"/>
+    <id val="10904"/>
+    <id val="10905"/>
+    <id val="10906"/>
+    <id val="10907"/>
+    <id val="10908"/>
+    <id val="10909"/>
+    <id val="10910"/>
+    <id val="10911"/>
+    <id val="10912"/>
+    <id val="10913"/>
+    <id val="10914"/>
+    <id val="10915"/>
+    <id val="10916"/>
+    <id val="10917"/>
+    <id val="10918"/>
+    <id val="10919"/>
+    <id val="10920"/>
+    <id val="10921"/>
+    <id val="10922"/>
+    <id val="10923"/>
+    <id val="10924"/>
+    <id val="10925"/>
+    <id val="10926"/>
+    <id val="10927"/>
+    <id val="10928"/>
+    <id val="10929"/>
+    <id val="10949"/>
+    <id val="10950"/>
+    <id val="10951"/>
+    <id val="10952"/>
+    <id val="10953"/>
+    <id val="10954"/>
+    <id val="10955"/>
+    <id val="10956"/>
+    <id val="10957"/>
+    <id val="10958"/>
+    <id val="10959"/>
+    <id val="10960"/>
+    <id val="10961"/>
+    <id val="10962"/>
+    <id val="10963"/>
+    <id val="10964"/>
+    <id val="10965"/>
+    <id val="10966"/>
+    <id val="10967"/>
+    <id val="10968"/>
+    <id val="10969"/>
+    <id val="10970"/>
+    <id val="10971"/>
+    <id val="10972"/>
+    <id val="10973"/>
+    <id val="10974"/>
+    <id val="10975"/>
+    <id val="10976"/>
+    <id val="10977"/>
+    <id val="10978"/>
+    <id val="10979"/>
+    <id val="10980"/>
+    <id val="10981"/>
+    <id val="10982"/>
+    <id val="10983"/>
+    <id val="10984"/>
+    <id val="10985"/>
+    <id val="10986"/>
+    <id val="10987"/>
+    <id val="10988"/>
+    <id val="10989"/>
+    <id val="10990"/>
+    <id val="10991"/>
+    <id val="10992"/>
+    <id val="10993"/>
+    <id val="11013"/>
+    <id val="11014"/>
+    <id val="11015"/>
+    <id val="11016"/>
+    <id val="11017"/>
+    <id val="11018"/>
+    <id val="11019"/>
+    <id val="11020"/>
+    <id val="11021"/>
+    <id val="11022"/>
+    <id val="11023"/>
+    <id val="11024"/>
+    <id val="11025"/>
+    <id val="11026"/>
+    <id val="11027"/>
+    <id val="11028"/>
+    <id val="11029"/>
+    <id val="11030"/>
+    <id val="11031"/>
+    <id val="11032"/>
+    <id val="11033"/>
+    <id val="11034"/>
+    <id val="11035"/>
+    <id val="11036"/>
+    <id val="11037"/>
+    <id val="11038"/>
+    <id val="11039"/>
+    <id val="11040"/>
+    <id val="11041"/>
+    <id val="11042"/>
+    <id val="11043"/>
+    <id val="11044"/>
+    <id val="11045"/>
+    <id val="11046"/>
+    <id val="11047"/>
+    <id val="11048"/>
+    <id val="11049"/>
+    <id val="11050"/>
+    <id val="11051"/>
+    <id val="11052"/>
+    <id val="11053"/>
+    <id val="11054"/>
+    <id val="11055"/>
+    <id val="11056"/>
+    <id val="11057"/>
+    <id val="11077"/>
+    <id val="11078"/>
+    <id val="11079"/>
+    <id val="11080"/>
+    <id val="11081"/>
+    <id val="11082"/>
+    <id val="11083"/>
+    <id val="11084"/>
+    <id val="11085"/>
+    <id val="11086"/>
+    <id val="11087"/>
+    <id val="11088"/>
+    <id val="11089"/>
+    <id val="11090"/>
+    <id val="11091"/>
+    <id val="11092"/>
+    <id val="11093"/>
+    <id val="11094"/>
+    <id val="11095"/>
+    <id val="11096"/>
+    <id val="11097"/>
+    <id val="11098"/>
+    <id val="11099"/>
+    <id val="11100"/>
+    <id val="11101"/>
+    <id val="11102"/>
+    <id val="11103"/>
+    <id val="11104"/>
+    <id val="11105"/>
+    <id val="11106"/>
+    <id val="11107"/>
+    <id val="11108"/>
+    <id val="11109"/>
+    <id val="11110"/>
+    <id val="11111"/>
+    <id val="11112"/>
+    <id val="11113"/>
+    <id val="11114"/>
+    <id val="11115"/>
+    <id val="11116"/>
+    <id val="11117"/>
+    <id val="11118"/>
+    <id val="11119"/>
+    <id val="11120"/>
+    <id val="11121"/>
+    <id val="11141"/>
+    <id val="11142"/>
+    <id val="11143"/>
+    <id val="11144"/>
+    <id val="11145"/>
+    <id val="11146"/>
+    <id val="11147"/>
+    <id val="11148"/>
+    <id val="11149"/>
+    <id val="11150"/>
+    <id val="11151"/>
+    <id val="11152"/>
+    <id val="11153"/>
+    <id val="11154"/>
+    <id val="11155"/>
+    <id val="11156"/>
+    <id val="11157"/>
+    <id val="11158"/>
+    <id val="11159"/>
+    <id val="11160"/>
+    <id val="11161"/>
+    <id val="11162"/>
+    <id val="11163"/>
+    <id val="11164"/>
+    <id val="11165"/>
+    <id val="11166"/>
+    <id val="11167"/>
+    <id val="11168"/>
+    <id val="11169"/>
+    <id val="11170"/>
+    <id val="11171"/>
+    <id val="11172"/>
+    <id val="11173"/>
+    <id val="11174"/>
+    <id val="11175"/>
+    <id val="11176"/>
+    <id val="11177"/>
+    <id val="11178"/>
+    <id val="11179"/>
+    <id val="11180"/>
+    <id val="11181"/>
+    <id val="11182"/>
+    <id val="11183"/>
+    <id val="11184"/>
+    <id val="11185"/>
+    <id val="11205"/>
+    <id val="11206"/>
+    <id val="11207"/>
+    <id val="11208"/>
+    <id val="11209"/>
+    <id val="11210"/>
+    <id val="11211"/>
+    <id val="11212"/>
+    <id val="11213"/>
+    <id val="11214"/>
+    <id val="11215"/>
+    <id val="11216"/>
+    <id val="11217"/>
+    <id val="11218"/>
+    <id val="11219"/>
+    <id val="11220"/>
+    <id val="11221"/>
+    <id val="11222"/>
+    <id val="11223"/>
+    <id val="11224"/>
+    <id val="11225"/>
+    <id val="11226"/>
+    <id val="11227"/>
+    <id val="11228"/>
+    <id val="11229"/>
+    <id val="11230"/>
+    <id val="11231"/>
+    <id val="11232"/>
+    <id val="11233"/>
+    <id val="11234"/>
+    <id val="11235"/>
+    <id val="11236"/>
+    <id val="11237"/>
+    <id val="11238"/>
+    <id val="11239"/>
+    <id val="11240"/>
+    <id val="11241"/>
+    <id val="11242"/>
+    <id val="11243"/>
+    <id val="11244"/>
+    <id val="11245"/>
+    <id val="11246"/>
+    <id val="11247"/>
+    <id val="11248"/>
+    <id val="11249"/>
+    <id val="11269"/>
+    <id val="11270"/>
+    <id val="11271"/>
+    <id val="11272"/>
+    <id val="11273"/>
+    <id val="11274"/>
+    <id val="11275"/>
+    <id val="11276"/>
+    <id val="11277"/>
+    <id val="11278"/>
+    <id val="11279"/>
+    <id val="11280"/>
+    <id val="11281"/>
+    <id val="11282"/>
+    <id val="11283"/>
+    <id val="11284"/>
+    <id val="11285"/>
+    <id val="11286"/>
+    <id val="11287"/>
+    <id val="11288"/>
+    <id val="11289"/>
+    <id val="11290"/>
+    <id val="11291"/>
+    <id val="11292"/>
+    <id val="11293"/>
+    <id val="11294"/>
+    <id val="11295"/>
+    <id val="11296"/>
+    <id val="11297"/>
+    <id val="11298"/>
+    <id val="11299"/>
+    <id val="11300"/>
+    <id val="11301"/>
+    <id val="11302"/>
+    <id val="11303"/>
+    <id val="11304"/>
+    <id val="11305"/>
+    <id val="11306"/>
+    <id val="11307"/>
+    <id val="11308"/>
+    <id val="11309"/>
+    <id val="11310"/>
+    <id val="11311"/>
+    <id val="11312"/>
+    <id val="11313"/>
+    <id val="11333"/>
+    <id val="11334"/>
+    <id val="11335"/>
+    <id val="11336"/>
+    <id val="11337"/>
+    <id val="11338"/>
+    <id val="11339"/>
+    <id val="11340"/>
+    <id val="11341"/>
+    <id val="11342"/>
+    <id val="11343"/>
+    <id val="11344"/>
+    <id val="11345"/>
+    <id val="11346"/>
+    <id val="11347"/>
+    <id val="11348"/>
+    <id val="11349"/>
+    <id val="11350"/>
+    <id val="11351"/>
+    <id val="11352"/>
+    <id val="11353"/>
+    <id val="11354"/>
+    <id val="11355"/>
+    <id val="11356"/>
+    <id val="11357"/>
+    <id val="11358"/>
+    <id val="11359"/>
+    <id val="11360"/>
+    <id val="11361"/>
+    <id val="11362"/>
+    <id val="11363"/>
+    <id val="11364"/>
+    <id val="11365"/>
+    <id val="11366"/>
+    <id val="11367"/>
+    <id val="11368"/>
+    <id val="11369"/>
+    <id val="11370"/>
+    <id val="11371"/>
+    <id val="11372"/>
+    <id val="11373"/>
+    <id val="11374"/>
+    <id val="11375"/>
+    <id val="11376"/>
+    <id val="11377"/>
+    <id val="11397"/>
+    <id val="11398"/>
+    <id val="11399"/>
+    <id val="11400"/>
+    <id val="11401"/>
+    <id val="11402"/>
+    <id val="11403"/>
+    <id val="11404"/>
+    <id val="11405"/>
+    <id val="11406"/>
+    <id val="11407"/>
+    <id val="11408"/>
+    <id val="11409"/>
+    <id val="11410"/>
+    <id val="11411"/>
+    <id val="11412"/>
+    <id val="11413"/>
+    <id val="11414"/>
+    <id val="11415"/>
+    <id val="11416"/>
+    <id val="11417"/>
+    <id val="11418"/>
+    <id val="11419"/>
+    <id val="11420"/>
+    <id val="11421"/>
+    <id val="11422"/>
+    <id val="11423"/>
+    <id val="11424"/>
+    <id val="11425"/>
+    <id val="11426"/>
+    <id val="11427"/>
+    <id val="11428"/>
+    <id val="11429"/>
+    <id val="11430"/>
+    <id val="11431"/>
+    <id val="11432"/>
+    <id val="11433"/>
+    <id val="11434"/>
+    <id val="11435"/>
+    <id val="11436"/>
+    <id val="11437"/>
+    <id val="11438"/>
+    <id val="11439"/>
+    <id val="11440"/>
+    <id val="11441"/>
+    <id val="11461"/>
+    <id val="11462"/>
+    <id val="11463"/>
+    <id val="11464"/>
+    <id val="11465"/>
+    <id val="11466"/>
+    <id val="11467"/>
+    <id val="11468"/>
+    <id val="11469"/>
+    <id val="11470"/>
+    <id val="11471"/>
+    <id val="11472"/>
+    <id val="11473"/>
+    <id val="11474"/>
+    <id val="11475"/>
+    <id val="11476"/>
+    <id val="11477"/>
+    <id val="11478"/>
+    <id val="11479"/>
+    <id val="11480"/>
+    <id val="11481"/>
+    <id val="11482"/>
+    <id val="11483"/>
+    <id val="11484"/>
+    <id val="11485"/>
+    <id val="11486"/>
+    <id val="11487"/>
+    <id val="11488"/>
+    <id val="11489"/>
+    <id val="11490"/>
+    <id val="11491"/>
+    <id val="11492"/>
+    <id val="11493"/>
+    <id val="11494"/>
+    <id val="11495"/>
+    <id val="11496"/>
+    <id val="11497"/>
+    <id val="11498"/>
+    <id val="11499"/>
+    <id val="11500"/>
+    <id val="11501"/>
+    <id val="11502"/>
+    <id val="11503"/>
+    <id val="11504"/>
+    <id val="11505"/>
+    <id val="11525"/>
+    <id val="11526"/>
+    <id val="11527"/>
+    <id val="11528"/>
+    <id val="11529"/>
+    <id val="11530"/>
+    <id val="11531"/>
+    <id val="11532"/>
+    <id val="11533"/>
+    <id val="11534"/>
+    <id val="11535"/>
+    <id val="11536"/>
+    <id val="11537"/>
+    <id val="11538"/>
+    <id val="11539"/>
+    <id val="11540"/>
+    <id val="11541"/>
+    <id val="11542"/>
+    <id val="11543"/>
+    <id val="11544"/>
+    <id val="11545"/>
+    <id val="11546"/>
+    <id val="11547"/>
+    <id val="11548"/>
+    <id val="11549"/>
+    <id val="11550"/>
+    <id val="11551"/>
+    <id val="11552"/>
+    <id val="11553"/>
+    <id val="11554"/>
+    <id val="11555"/>
+    <id val="11556"/>
+    <id val="11557"/>
+    <id val="11558"/>
+    <id val="11559"/>
+    <id val="11560"/>
+    <id val="11561"/>
+    <id val="11562"/>
+    <id val="11563"/>
+    <id val="11564"/>
+    <id val="11565"/>
+    <id val="11566"/>
+    <id val="11567"/>
+    <id val="11568"/>
+    <id val="11569"/>
+    <id val="11589"/>
+    <id val="11590"/>
+    <id val="11591"/>
+    <id val="11592"/>
+    <id val="11593"/>
+    <id val="11594"/>
+    <id val="11595"/>
+    <id val="11596"/>
+    <id val="11597"/>
+    <id val="11598"/>
+    <id val="11599"/>
+    <id val="11600"/>
+    <id val="11601"/>
+    <id val="11602"/>
+    <id val="11603"/>
+    <id val="11604"/>
+    <id val="11605"/>
+    <id val="11606"/>
+    <id val="11607"/>
+    <id val="11608"/>
+    <id val="11609"/>
+    <id val="11610"/>
+    <id val="11611"/>
+    <id val="11612"/>
+    <id val="11613"/>
+    <id val="11614"/>
+    <id val="11615"/>
+    <id val="11616"/>
+    <id val="11617"/>
+    <id val="11618"/>
+    <id val="11619"/>
+    <id val="11620"/>
+    <id val="11621"/>
+    <id val="11622"/>
+    <id val="11623"/>
+    <id val="11624"/>
+    <id val="11625"/>
+    <id val="11626"/>
+    <id val="11627"/>
+    <id val="11628"/>
+    <id val="11629"/>
+    <id val="11630"/>
+    <id val="11631"/>
+    <id val="11632"/>
+    <id val="11633"/>
+    <id val="11653"/>
+    <id val="11654"/>
+    <id val="11655"/>
+    <id val="11656"/>
+    <id val="11657"/>
+    <id val="11658"/>
+    <id val="11659"/>
+    <id val="11660"/>
+    <id val="11661"/>
+    <id val="11662"/>
+    <id val="11663"/>
+    <id val="11664"/>
+    <id val="11665"/>
+    <id val="11666"/>
+    <id val="11667"/>
+    <id val="11668"/>
+    <id val="11669"/>
+    <id val="11670"/>
+    <id val="11671"/>
+    <id val="11672"/>
+    <id val="11673"/>
+    <id val="11674"/>
+    <id val="11675"/>
+    <id val="11676"/>
+    <id val="11677"/>
+    <id val="11678"/>
+    <id val="11679"/>
+    <id val="11680"/>
+    <id val="11681"/>
+    <id val="11682"/>
+    <id val="11683"/>
+    <id val="11684"/>
+    <id val="11685"/>
+    <id val="11686"/>
+    <id val="11687"/>
+    <id val="11688"/>
+    <id val="11689"/>
+    <id val="11690"/>
+    <id val="11691"/>
+    <id val="11692"/>
+    <id val="11693"/>
+    <id val="11694"/>
+    <id val="11695"/>
+    <id val="11696"/>
+    <id val="11697"/>
+    <id val="11717"/>
+    <id val="11718"/>
+    <id val="11719"/>
+    <id val="11720"/>
+    <id val="11721"/>
+    <id val="11722"/>
+    <id val="11723"/>
+    <id val="11724"/>
+    <id val="11725"/>
+    <id val="11726"/>
+    <id val="11727"/>
+    <id val="11728"/>
+    <id val="11729"/>
+    <id val="11730"/>
+    <id val="11731"/>
+    <id val="11732"/>
+    <id val="11733"/>
+    <id val="11734"/>
+    <id val="11735"/>
+    <id val="11736"/>
+    <id val="11737"/>
+    <id val="11738"/>
+    <id val="11739"/>
+    <id val="11740"/>
+    <id val="11741"/>
+    <id val="11742"/>
+    <id val="11743"/>
+    <id val="11744"/>
+    <id val="11745"/>
+    <id val="11746"/>
+    <id val="11747"/>
+    <id val="11748"/>
+    <id val="11749"/>
+    <id val="11750"/>
+    <id val="11751"/>
+    <id val="11752"/>
+    <id val="11753"/>
+    <id val="11754"/>
+    <id val="11755"/>
+    <id val="11756"/>
+    <id val="11757"/>
+    <id val="11758"/>
+    <id val="11759"/>
+    <id val="11760"/>
+    <id val="11761"/>
+  </idlist>
+  <component idlist="bank4" type="bank4">
+    <location/>
+  </component>
+  <type name="bank4">
+    <component type="pixel">
+      <location name="12302" x="-0.487260681056" y="-1.9345015625" z="-2.39457769788">
+        <neutronic p="-124.975" r="4.70977" t="149.294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12303" x="-0.487260681056" y="-1.89631953125" z="-2.39457769788">
+        <neutronic p="-125.598" r="4.71076" t="149.679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12304" x="-0.487260681056" y="-1.8581375" z="-2.39457769788">
+        <neutronic p="-126.24" r="4.71172" t="150.064"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12305" x="-0.487260681056" y="-1.81995546875" z="-2.39457769788">
+        <neutronic p="-126.902" r="4.71265" t="150.449"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12306" x="-0.487260681056" y="-1.7817734375" z="-2.39457769788">
+        <neutronic p="-127.585" r="4.71356" t="150.832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12307" x="-0.487260681056" y="-1.74359140625" z="-2.39457769788">
+        <neutronic p="-128.289" r="4.71445" t="151.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12308" x="-0.487260681056" y="-1.705409375" z="-2.39457769788">
+        <neutronic p="-129.016" r="4.71532" t="151.597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12309" x="-0.487260681056" y="-1.66722734375" z="-2.39457769788">
+        <neutronic p="-129.765" r="4.71616" t="151.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12310" x="-0.487260681056" y="-1.6290453125" z="-2.39457769788">
+        <neutronic p="-130.539" r="4.71697" t="152.356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12311" x="-0.487260681056" y="-1.59086328125" z="-2.39457769788">
+        <neutronic p="-131.338" r="4.71776" t="152.733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12312" x="-0.487260681056" y="-1.55268125" z="-2.39457769788">
+        <neutronic p="-132.162" r="4.71852" t="153.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12313" x="-0.487260681056" y="-1.51449921875" z="-2.39457769788">
+        <neutronic p="-133.014" r="4.71926" t="153.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12314" x="-0.487260681056" y="-1.4763171875" z="-2.39457769788">
+        <neutronic p="-133.892" r="4.71998" t="153.848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12315" x="-0.487260681056" y="-1.43813515625" z="-2.39457769788">
+        <neutronic p="-134.8" r="4.72066" t="154.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12316" x="-0.487260681056" y="-1.399953125" z="-2.39457769788">
+        <neutronic p="-135.736" r="4.72133" t="154.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12317" x="-0.487260681056" y="-1.36177109375" z="-2.39457769788">
+        <neutronic p="-136.703" r="4.72196" t="154.933"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12318" x="-0.487260681056" y="-1.3235890625" z="-2.39457769788">
+        <neutronic p="-137.702" r="4.72257" t="155.286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12319" x="-0.487260681056" y="-1.28540703125" z="-2.39457769788">
+        <neutronic p="-138.732" r="4.72315" t="155.633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12320" x="-0.487260681056" y="-1.247225" z="-2.39457769788">
+        <neutronic p="-139.796" r="4.72371" t="155.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12321" x="-0.487260681056" y="-1.20904296875" z="-2.39457769788">
+        <neutronic p="-140.893" r="4.72424" t="156.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12322" x="-0.487260681056" y="-1.1708609375" z="-2.39457769788">
+        <neutronic p="-142.025" r="4.72474" t="156.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12323" x="-0.487260681056" y="-1.13267890625" z="-2.39457769788">
+        <neutronic p="-143.193" r="4.72521" t="156.965"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12324" x="-0.487260681056" y="-1.094496875" z="-2.39457769788">
+        <neutronic p="-144.396" r="4.72566" t="157.281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12325" x="-0.487260681056" y="-1.05631484375" z="-2.39457769788">
+        <neutronic p="-145.636" r="4.72608" t="157.589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12326" x="-0.487260681056" y="-1.0181328125" z="-2.39457769788">
+        <neutronic p="-146.913" r="4.72647" t="157.887"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12327" x="-0.487260681056" y="-0.97995078125" z="-2.39457769788">
+        <neutronic p="-148.228" r="4.72684" t="158.177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12328" x="-0.487260681056" y="-0.94176875" z="-2.39457769788">
+        <neutronic p="-149.58" r="4.72717" t="158.457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12329" x="-0.487260681056" y="-0.90358671875" z="-2.39457769788">
+        <neutronic p="-150.97" r="4.72748" t="158.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12330" x="-0.487260681056" y="-0.8654046875" z="-2.39457769788">
+        <neutronic p="-152.398" r="4.72776" t="158.986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12331" x="-0.487260681056" y="-0.82722265625" z="-2.39457769788">
+        <neutronic p="-153.863" r="4.72801" t="159.233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12332" x="-0.487260681056" y="-0.789040625" z="-2.39457769788">
+        <neutronic p="-155.364" r="4.72824" t="159.468"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12333" x="-0.487260681056" y="-0.75085859375" z="-2.39457769788">
+        <neutronic p="-156.902" r="4.72843" t="159.691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12334" x="-0.487260681056" y="-0.7126765625" z="-2.39457769788">
+        <neutronic p="-158.474" r="4.7286" t="159.9"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12335" x="-0.487260681056" y="-0.67449453125" z="-2.39457769788">
+        <neutronic p="-160.081" r="4.72874" t="160.095"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12336" x="-0.487260681056" y="-0.6363125" z="-2.39457769788">
+        <neutronic p="-161.719" r="4.72885" t="160.276"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12337" x="-0.487260681056" y="-0.59813046875" z="-2.39457769788">
+        <neutronic p="-163.388" r="4.72893" t="160.442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12338" x="-0.487260681056" y="-0.5599484375" z="-2.39457769788">
+        <neutronic p="-165.086" r="4.72898" t="160.593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12339" x="-0.487260681056" y="-0.52176640625" z="-2.39457769788">
+        <neutronic p="-166.809" r="4.72901" t="160.728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12340" x="-0.487260681056" y="-0.483584375" z="-2.39457769788">
+        <neutronic p="-168.556" r="4.729" t="160.846"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12341" x="-0.487260681056" y="-0.44540234375" z="-2.39457769788">
+        <neutronic p="-170.323" r="4.72897" t="160.948"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12342" x="-0.487260681056" y="-0.4072203125" z="-2.39457769788">
+        <neutronic p="-172.108" r="4.72891" t="161.033"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12343" x="-0.487260681056" y="-0.36903828125" z="-2.39457769788">
+        <neutronic p="-173.908" r="4.72882" t="161.101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12344" x="-0.487260681056" y="-0.33085625" z="-2.39457769788">
+        <neutronic p="-175.718" r="4.7287" t="161.151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12345" x="-0.487260681056" y="-0.29267421875" z="-2.39457769788">
+        <neutronic p="-177.535" r="4.72855" t="161.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12346" x="-0.487260681056" y="-0.2544921875" z="-2.39457769788">
+        <neutronic p="-179.356" r="4.72838" t="161.199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12366" x="-0.598410194885" y="-1.9345015625" z="-2.36924683416">
+        <neutronic p="-128.532" r="4.70977" t="147.665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12367" x="-0.598410194885" y="-1.89631953125" z="-2.36924683416">
+        <neutronic p="-129.177" r="4.71076" t="148.026"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12368" x="-0.598410194885" y="-1.8581375" z="-2.36924683416">
+        <neutronic p="-129.841" r="4.71172" t="148.386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12369" x="-0.598410194885" y="-1.81995546875" z="-2.36924683416">
+        <neutronic p="-130.523" r="4.71265" t="148.745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12370" x="-0.598410194885" y="-1.7817734375" z="-2.36924683416">
+        <neutronic p="-131.224" r="4.71356" t="149.104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12371" x="-0.598410194885" y="-1.74359140625" z="-2.36924683416">
+        <neutronic p="-131.945" r="4.71445" t="149.46"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12372" x="-0.598410194885" y="-1.705409375" z="-2.36924683416">
+        <neutronic p="-132.687" r="4.71532" t="149.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12373" x="-0.598410194885" y="-1.66722734375" z="-2.36924683416">
+        <neutronic p="-133.449" r="4.71616" t="150.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12374" x="-0.598410194885" y="-1.6290453125" z="-2.36924683416">
+        <neutronic p="-134.234" r="4.71697" t="150.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12375" x="-0.598410194885" y="-1.59086328125" z="-2.36924683416">
+        <neutronic p="-135.04" r="4.71776" t="150.869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12376" x="-0.598410194885" y="-1.55268125" z="-2.36924683416">
+        <neutronic p="-135.87" r="4.71852" t="151.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12377" x="-0.598410194885" y="-1.51449921875" z="-2.36924683416">
+        <neutronic p="-136.724" r="4.71926" t="151.558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12378" x="-0.598410194885" y="-1.4763171875" z="-2.36924683416">
+        <neutronic p="-137.601" r="4.71998" t="151.897"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12379" x="-0.598410194885" y="-1.43813515625" z="-2.36924683416">
+        <neutronic p="-138.503" r="4.72066" t="152.233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12380" x="-0.598410194885" y="-1.399953125" z="-2.36924683416">
+        <neutronic p="-139.431" r="4.72133" t="152.564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12381" x="-0.598410194885" y="-1.36177109375" z="-2.36924683416">
+        <neutronic p="-140.385" r="4.72196" t="152.891"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12382" x="-0.598410194885" y="-1.3235890625" z="-2.36924683416">
+        <neutronic p="-141.365" r="4.72257" t="153.214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12383" x="-0.598410194885" y="-1.28540703125" z="-2.36924683416">
+        <neutronic p="-142.373" r="4.72315" t="153.53"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12384" x="-0.598410194885" y="-1.247225" z="-2.36924683416">
+        <neutronic p="-143.407" r="4.72371" t="153.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12385" x="-0.598410194885" y="-1.20904296875" z="-2.36924683416">
+        <neutronic p="-144.47" r="4.72424" t="154.147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12386" x="-0.598410194885" y="-1.1708609375" z="-2.36924683416">
+        <neutronic p="-145.561" r="4.72474" t="154.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12387" x="-0.598410194885" y="-1.13267890625" z="-2.36924683416">
+        <neutronic p="-146.681" r="4.72521" t="154.736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12388" x="-0.598410194885" y="-1.094496875" z="-2.36924683416">
+        <neutronic p="-147.83" r="4.72566" t="155.02"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12389" x="-0.598410194885" y="-1.05631484375" z="-2.36924683416">
+        <neutronic p="-149.008" r="4.72608" t="155.296"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12390" x="-0.598410194885" y="-1.0181328125" z="-2.36924683416">
+        <neutronic p="-150.215" r="4.72647" t="155.564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12391" x="-0.598410194885" y="-0.97995078125" z="-2.36924683416">
+        <neutronic p="-151.451" r="4.72684" t="155.823"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12392" x="-0.598410194885" y="-0.94176875" z="-2.36924683416">
+        <neutronic p="-152.716" r="4.72717" t="156.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12393" x="-0.598410194885" y="-0.90358671875" z="-2.36924683416">
+        <neutronic p="-154.009" r="4.72748" t="156.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12394" x="-0.598410194885" y="-0.8654046875" z="-2.36924683416">
+        <neutronic p="-155.331" r="4.72776" t="156.541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12395" x="-0.598410194885" y="-0.82722265625" z="-2.36924683416">
+        <neutronic p="-156.681" r="4.72801" t="156.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12396" x="-0.598410194885" y="-0.789040625" z="-2.36924683416">
+        <neutronic p="-158.058" r="4.72824" t="156.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12397" x="-0.598410194885" y="-0.75085859375" z="-2.36924683416">
+        <neutronic p="-159.461" r="4.72843" t="157.163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12398" x="-0.598410194885" y="-0.7126765625" z="-2.36924683416">
+        <neutronic p="-160.889" r="4.7286" t="157.347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12399" x="-0.598410194885" y="-0.67449453125" z="-2.36924683416">
+        <neutronic p="-162.342" r="4.72874" t="157.518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12400" x="-0.598410194885" y="-0.6363125" z="-2.36924683416">
+        <neutronic p="-163.818" r="4.72885" t="157.676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12401" x="-0.598410194885" y="-0.59813046875" z="-2.36924683416">
+        <neutronic p="-165.315" r="4.72893" t="157.821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12402" x="-0.598410194885" y="-0.5599484375" z="-2.36924683416">
+        <neutronic p="-166.831" r="4.72898" t="157.952"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12403" x="-0.598410194885" y="-0.52176640625" z="-2.36924683416">
+        <neutronic p="-168.366" r="4.72901" t="158.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12404" x="-0.598410194885" y="-0.483584375" z="-2.36924683416">
+        <neutronic p="-169.916" r="4.729" t="158.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12405" x="-0.598410194885" y="-0.44540234375" z="-2.36924683416">
+        <neutronic p="-171.481" r="4.72897" t="158.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12406" x="-0.598410194885" y="-0.4072203125" z="-2.36924683416">
+        <neutronic p="-173.057" r="4.72891" t="158.334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12407" x="-0.598410194885" y="-0.36903828125" z="-2.36924683416">
+        <neutronic p="-174.643" r="4.72882" t="158.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12408" x="-0.598410194885" y="-0.33085625" z="-2.36924683416">
+        <neutronic p="-176.236" r="4.7287" t="158.436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12409" x="-0.598410194885" y="-0.29267421875" z="-2.36924683416">
+        <neutronic p="-177.834" r="4.72855" t="158.464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12410" x="-0.598410194885" y="-0.2544921875" z="-2.36924683416">
+        <neutronic p="-179.434" r="4.72838" t="158.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12430" x="-0.708257363137" y="-1.9345015625" z="-2.33875967771">
+        <neutronic p="-131.712" r="4.70977" t="145.91"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12431" x="-0.708257363137" y="-1.89631953125" z="-2.33875967771">
+        <neutronic p="-132.369" r="4.71076" t="146.247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12432" x="-0.708257363137" y="-1.8581375" z="-2.33875967771">
+        <neutronic p="-133.043" r="4.71172" t="146.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12433" x="-0.708257363137" y="-1.81995546875" z="-2.33875967771">
+        <neutronic p="-133.733" r="4.71265" t="146.919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12434" x="-0.708257363137" y="-1.7817734375" z="-2.33875967771">
+        <neutronic p="-134.441" r="4.71356" t="147.252"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12435" x="-0.708257363137" y="-1.74359140625" z="-2.33875967771">
+        <neutronic p="-135.168" r="4.71445" t="147.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12436" x="-0.708257363137" y="-1.705409375" z="-2.33875967771">
+        <neutronic p="-135.912" r="4.71532" t="147.914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12437" x="-0.708257363137" y="-1.66722734375" z="-2.33875967771">
+        <neutronic p="-136.676" r="4.71616" t="148.241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12438" x="-0.708257363137" y="-1.6290453125" z="-2.33875967771">
+        <neutronic p="-137.459" r="4.71697" t="148.566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12439" x="-0.708257363137" y="-1.59086328125" z="-2.33875967771">
+        <neutronic p="-138.262" r="4.71776" t="148.889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12440" x="-0.708257363137" y="-1.55268125" z="-2.33875967771">
+        <neutronic p="-139.085" r="4.71852" t="149.208"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12441" x="-0.708257363137" y="-1.51449921875" z="-2.33875967771">
+        <neutronic p="-139.929" r="4.71926" t="149.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12442" x="-0.708257363137" y="-1.4763171875" z="-2.33875967771">
+        <neutronic p="-140.793" r="4.71998" t="149.836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12443" x="-0.708257363137" y="-1.43813515625" z="-2.33875967771">
+        <neutronic p="-141.679" r="4.72066" t="150.144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12444" x="-0.708257363137" y="-1.399953125" z="-2.33875967771">
+        <neutronic p="-142.587" r="4.72133" t="150.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12445" x="-0.708257363137" y="-1.36177109375" z="-2.33875967771">
+        <neutronic p="-143.517" r="4.72196" t="150.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12446" x="-0.708257363137" y="-1.3235890625" z="-2.33875967771">
+        <neutronic p="-144.469" r="4.72257" t="151.041"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12447" x="-0.708257363137" y="-1.28540703125" z="-2.33875967771">
+        <neutronic p="-145.444" r="4.72315" t="151.33"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12448" x="-0.708257363137" y="-1.247225" z="-2.33875967771">
+        <neutronic p="-146.442" r="4.72371" t="151.613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12449" x="-0.708257363137" y="-1.20904296875" z="-2.33875967771">
+        <neutronic p="-147.463" r="4.72424" t="151.89"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12450" x="-0.708257363137" y="-1.1708609375" z="-2.33875967771">
+        <neutronic p="-148.507" r="4.72474" t="152.16"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12451" x="-0.708257363137" y="-1.13267890625" z="-2.33875967771">
+        <neutronic p="-149.575" r="4.72521" t="152.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12452" x="-0.708257363137" y="-1.094496875" z="-2.33875967771">
+        <neutronic p="-150.665" r="4.72566" t="152.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12453" x="-0.708257363137" y="-1.05631484375" z="-2.33875967771">
+        <neutronic p="-151.779" r="4.72608" t="152.929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12454" x="-0.708257363137" y="-1.0181328125" z="-2.33875967771">
+        <neutronic p="-152.916" r="4.72647" t="153.17"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12455" x="-0.708257363137" y="-0.97995078125" z="-2.33875967771">
+        <neutronic p="-154.076" r="4.72684" t="153.402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12456" x="-0.708257363137" y="-0.94176875" z="-2.33875967771">
+        <neutronic p="-155.259" r="4.72717" t="153.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12457" x="-0.708257363137" y="-0.90358671875" z="-2.33875967771">
+        <neutronic p="-156.463" r="4.72748" t="153.84"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12458" x="-0.708257363137" y="-0.8654046875" z="-2.33875967771">
+        <neutronic p="-157.69" r="4.72776" t="154.044"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12459" x="-0.708257363137" y="-0.82722265625" z="-2.33875967771">
+        <neutronic p="-158.937" r="4.72801" t="154.239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12460" x="-0.708257363137" y="-0.789040625" z="-2.33875967771">
+        <neutronic p="-160.205" r="4.72824" t="154.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12461" x="-0.708257363137" y="-0.75085859375" z="-2.33875967771">
+        <neutronic p="-161.493" r="4.72843" t="154.597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12462" x="-0.708257363137" y="-0.7126765625" z="-2.33875967771">
+        <neutronic p="-162.8" r="4.7286" t="154.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12463" x="-0.708257363137" y="-0.67449453125" z="-2.33875967771">
+        <neutronic p="-164.124" r="4.72874" t="154.911"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12464" x="-0.708257363137" y="-0.6363125" z="-2.33875967771">
+        <neutronic p="-165.465" r="4.72885" t="155.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12465" x="-0.708257363137" y="-0.59813046875" z="-2.33875967771">
+        <neutronic p="-166.822" r="4.72893" t="155.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12466" x="-0.708257363137" y="-0.5599484375" z="-2.33875967771">
+        <neutronic p="-168.193" r="4.72898" t="155.294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12467" x="-0.708257363137" y="-0.52176640625" z="-2.33875967771">
+        <neutronic p="-169.577" r="4.72901" t="155.397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12468" x="-0.708257363137" y="-0.483584375" z="-2.33875967771">
+        <neutronic p="-170.972" r="4.729" t="155.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12469" x="-0.708257363137" y="-0.44540234375" z="-2.33875967771">
+        <neutronic p="-172.378" r="4.72897" t="155.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12470" x="-0.708257363137" y="-0.4072203125" z="-2.33875967771">
+        <neutronic p="-173.791" r="4.72891" t="155.63"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12471" x="-0.708257363137" y="-0.36903828125" z="-2.33875967771">
+        <neutronic p="-175.212" r="4.72882" t="155.681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12472" x="-0.708257363137" y="-0.33085625" z="-2.33875967771">
+        <neutronic p="-176.637" r="4.7287" t="155.719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12473" x="-0.708257363137" y="-0.29267421875" z="-2.33875967771">
+        <neutronic p="-178.065" r="4.72855" t="155.744"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12474" x="-0.708257363137" y="-0.2544921875" z="-2.33875967771">
+        <neutronic p="-179.494" r="4.72838" t="155.756"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12494" x="-0.816563120746" y="-1.9345015625" z="-2.30318257903">
+        <neutronic p="-134.548" r="4.70977" t="144.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12495" x="-0.816563120746" y="-1.89631953125" z="-2.30318257903">
+        <neutronic p="-135.208" r="4.71076" t="144.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12496" x="-0.816563120746" y="-1.8581375" z="-2.30318257903">
+        <neutronic p="-135.884" r="4.71172" t="144.676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12497" x="-0.816563120746" y="-1.81995546875" z="-2.30318257903">
+        <neutronic p="-136.575" r="4.71265" t="144.988"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12498" x="-0.816563120746" y="-1.7817734375" z="-2.30318257903">
+        <neutronic p="-137.282" r="4.71356" t="145.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12499" x="-0.816563120746" y="-1.74359140625" z="-2.30318257903">
+        <neutronic p="-138.005" r="4.71445" t="145.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12500" x="-0.816563120746" y="-1.705409375" z="-2.30318257903">
+        <neutronic p="-138.745" r="4.71532" t="145.912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12501" x="-0.816563120746" y="-1.66722734375" z="-2.30318257903">
+        <neutronic p="-139.501" r="4.71616" t="146.215"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12502" x="-0.816563120746" y="-1.6290453125" z="-2.30318257903">
+        <neutronic p="-140.275" r="4.71697" t="146.516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12503" x="-0.816563120746" y="-1.59086328125" z="-2.30318257903">
+        <neutronic p="-141.066" r="4.71776" t="146.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12504" x="-0.816563120746" y="-1.55268125" z="-2.30318257903">
+        <neutronic p="-141.875" r="4.71852" t="147.108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12505" x="-0.816563120746" y="-1.51449921875" z="-2.30318257903">
+        <neutronic p="-142.701" r="4.71926" t="147.398"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12506" x="-0.816563120746" y="-1.4763171875" z="-2.30318257903">
+        <neutronic p="-143.546" r="4.71998" t="147.685"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12507" x="-0.816563120746" y="-1.43813515625" z="-2.30318257903">
+        <neutronic p="-144.409" r="4.72066" t="147.968"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12508" x="-0.816563120746" y="-1.399953125" z="-2.30318257903">
+        <neutronic p="-145.291" r="4.72133" t="148.247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12509" x="-0.816563120746" y="-1.36177109375" z="-2.30318257903">
+        <neutronic p="-146.192" r="4.72196" t="148.521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12510" x="-0.816563120746" y="-1.3235890625" z="-2.30318257903">
+        <neutronic p="-147.112" r="4.72257" t="148.79"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12511" x="-0.816563120746" y="-1.28540703125" z="-2.30318257903">
+        <neutronic p="-148.05" r="4.72315" t="149.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12512" x="-0.816563120746" y="-1.247225" z="-2.30318257903">
+        <neutronic p="-149.008" r="4.72371" t="149.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12513" x="-0.816563120746" y="-1.20904296875" z="-2.30318257903">
+        <neutronic p="-149.985" r="4.72424" t="149.563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12514" x="-0.816563120746" y="-1.1708609375" z="-2.30318257903">
+        <neutronic p="-150.981" r="4.72474" t="149.809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12515" x="-0.816563120746" y="-1.13267890625" z="-2.30318257903">
+        <neutronic p="-151.995" r="4.72521" t="150.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12516" x="-0.816563120746" y="-1.094496875" z="-2.30318257903">
+        <neutronic p="-153.029" r="4.72566" t="150.28"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12517" x="-0.816563120746" y="-1.05631484375" z="-2.30318257903">
+        <neutronic p="-154.082" r="4.72608" t="150.505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12518" x="-0.816563120746" y="-1.0181328125" z="-2.30318257903">
+        <neutronic p="-155.153" r="4.72647" t="150.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12519" x="-0.816563120746" y="-0.97995078125" z="-2.30318257903">
+        <neutronic p="-156.242" r="4.72684" t="150.932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12520" x="-0.816563120746" y="-0.94176875" z="-2.30318257903">
+        <neutronic p="-157.35" r="4.72717" t="151.133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12521" x="-0.816563120746" y="-0.90358671875" z="-2.30318257903">
+        <neutronic p="-158.474" r="4.72748" t="151.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12522" x="-0.816563120746" y="-0.8654046875" z="-2.30318257903">
+        <neutronic p="-159.616" r="4.72776" t="151.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12523" x="-0.816563120746" y="-0.82722265625" z="-2.30318257903">
+        <neutronic p="-160.774" r="4.72801" t="151.683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12524" x="-0.816563120746" y="-0.789040625" z="-2.30318257903">
+        <neutronic p="-161.948" r="4.72824" t="151.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12525" x="-0.816563120746" y="-0.75085859375" z="-2.30318257903">
+        <neutronic p="-163.137" r="4.72843" t="152.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12526" x="-0.816563120746" y="-0.7126765625" z="-2.30318257903">
+        <neutronic p="-164.341" r="4.7286" t="152.149"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12527" x="-0.816563120746" y="-0.67449453125" z="-2.30318257903">
+        <neutronic p="-165.558" r="4.72874" t="152.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12528" x="-0.816563120746" y="-0.6363125" z="-2.30318257903">
+        <neutronic p="-166.788" r="4.72885" t="152.408"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12529" x="-0.816563120746" y="-0.59813046875" z="-2.30318257903">
+        <neutronic p="-168.029" r="4.72893" t="152.522"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12530" x="-0.816563120746" y="-0.5599484375" z="-2.30318257903">
+        <neutronic p="-169.281" r="4.72898" t="152.625"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12531" x="-0.816563120746" y="-0.52176640625" z="-2.30318257903">
+        <neutronic p="-170.543" r="4.72901" t="152.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12532" x="-0.816563120746" y="-0.483584375" z="-2.30318257903">
+        <neutronic p="-171.813" r="4.729" t="152.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12533" x="-0.816563120746" y="-0.44540234375" z="-2.30318257903">
+        <neutronic p="-173.09" r="4.72897" t="152.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12534" x="-0.816563120746" y="-0.4072203125" z="-2.30318257903">
+        <neutronic p="-174.374" r="4.72891" t="152.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12535" x="-0.816563120746" y="-0.36903828125" z="-2.30318257903">
+        <neutronic p="-175.662" r="4.72882" t="152.968"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12536" x="-0.816563120746" y="-0.33085625" z="-2.30318257903">
+        <neutronic p="-176.954" r="4.7287" t="153.002"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12537" x="-0.816563120746" y="-0.29267421875" z="-2.30318257903">
+        <neutronic p="-178.248" r="4.72855" t="153.024"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12538" x="-0.816563120746" y="-0.2544921875" z="-2.30318257903">
+        <neutronic p="-179.542" r="4.72838" t="153.034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12558" x="-0.92309175728" y="-1.9345015625" z="-2.26259296608">
+        <neutronic p="-137.073" r="4.70977" t="142.096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12559" x="-0.92309175728" y="-1.89631953125" z="-2.26259296608">
+        <neutronic p="-137.731" r="4.71076" t="142.389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12560" x="-0.92309175728" y="-1.8581375" z="-2.26259296608">
+        <neutronic p="-138.403" r="4.71172" t="142.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12561" x="-0.92309175728" y="-1.81995546875" z="-2.26259296608">
+        <neutronic p="-139.088" r="4.71265" t="142.97"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12562" x="-0.92309175728" y="-1.7817734375" z="-2.26259296608">
+        <neutronic p="-139.788" r="4.71356" t="143.258"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12563" x="-0.92309175728" y="-1.74359140625" z="-2.26259296608">
+        <neutronic p="-140.503" r="4.71445" t="143.543"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12564" x="-0.92309175728" y="-1.705409375" z="-2.26259296608">
+        <neutronic p="-141.232" r="4.71532" t="143.826"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12565" x="-0.92309175728" y="-1.66722734375" z="-2.26259296608">
+        <neutronic p="-141.977" r="4.71616" t="144.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12566" x="-0.92309175728" y="-1.6290453125" z="-2.26259296608">
+        <neutronic p="-142.736" r="4.71697" t="144.385"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12567" x="-0.92309175728" y="-1.59086328125" z="-2.26259296608">
+        <neutronic p="-143.51" r="4.71776" t="144.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12568" x="-0.92309175728" y="-1.55268125" z="-2.26259296608">
+        <neutronic p="-144.301" r="4.71852" t="144.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12569" x="-0.92309175728" y="-1.51449921875" z="-2.26259296608">
+        <neutronic p="-145.106" r="4.71926" t="145.198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12570" x="-0.92309175728" y="-1.4763171875" z="-2.26259296608">
+        <neutronic p="-145.928" r="4.71998" t="145.462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12571" x="-0.92309175728" y="-1.43813515625" z="-2.26259296608">
+        <neutronic p="-146.765" r="4.72066" t="145.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12572" x="-0.92309175728" y="-1.399953125" z="-2.26259296608">
+        <neutronic p="-147.618" r="4.72133" t="145.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12573" x="-0.92309175728" y="-1.36177109375" z="-2.26259296608">
+        <neutronic p="-148.487" r="4.72196" t="146.229"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12574" x="-0.92309175728" y="-1.3235890625" z="-2.26259296608">
+        <neutronic p="-149.372" r="4.72257" t="146.475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12575" x="-0.92309175728" y="-1.28540703125" z="-2.26259296608">
+        <neutronic p="-150.274" r="4.72315" t="146.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12576" x="-0.92309175728" y="-1.247225" z="-2.26259296608">
+        <neutronic p="-151.191" r="4.72371" t="146.951"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12577" x="-0.92309175728" y="-1.20904296875" z="-2.26259296608">
+        <neutronic p="-152.124" r="4.72424" t="147.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12578" x="-0.92309175728" y="-1.1708609375" z="-2.26259296608">
+        <neutronic p="-153.073" r="4.72474" t="147.404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12579" x="-0.92309175728" y="-1.13267890625" z="-2.26259296608">
+        <neutronic p="-154.038" r="4.72521" t="147.622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12580" x="-0.92309175728" y="-1.094496875" z="-2.26259296608">
+        <neutronic p="-155.018" r="4.72566" t="147.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12581" x="-0.92309175728" y="-1.05631484375" z="-2.26259296608">
+        <neutronic p="-156.014" r="4.72608" t="148.037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12582" x="-0.92309175728" y="-1.0181328125" z="-2.26259296608">
+        <neutronic p="-157.025" r="4.72647" t="148.234"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12583" x="-0.92309175728" y="-0.97995078125" z="-2.26259296608">
+        <neutronic p="-158.05" r="4.72684" t="148.423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12584" x="-0.92309175728" y="-0.94176875" z="-2.26259296608">
+        <neutronic p="-159.09" r="4.72717" t="148.605"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12585" x="-0.92309175728" y="-0.90358671875" z="-2.26259296608">
+        <neutronic p="-160.144" r="4.72748" t="148.779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12586" x="-0.92309175728" y="-0.8654046875" z="-2.26259296608">
+        <neutronic p="-161.211" r="4.72776" t="148.944"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12587" x="-0.92309175728" y="-0.82722265625" z="-2.26259296608">
+        <neutronic p="-162.292" r="4.72801" t="149.102"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12588" x="-0.92309175728" y="-0.789040625" z="-2.26259296608">
+        <neutronic p="-163.385" r="4.72824" t="149.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12589" x="-0.92309175728" y="-0.75085859375" z="-2.26259296608">
+        <neutronic p="-164.49" r="4.72843" t="149.39"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12590" x="-0.92309175728" y="-0.7126765625" z="-2.26259296608">
+        <neutronic p="-165.606" r="4.7286" t="149.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12591" x="-0.92309175728" y="-0.67449453125" z="-2.26259296608">
+        <neutronic p="-166.732" r="4.72874" t="149.641"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12592" x="-0.92309175728" y="-0.6363125" z="-2.26259296608">
+        <neutronic p="-167.869" r="4.72885" t="149.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12593" x="-0.92309175728" y="-0.59813046875" z="-2.26259296608">
+        <neutronic p="-169.014" r="4.72893" t="149.855"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12594" x="-0.92309175728" y="-0.5599484375" z="-2.26259296608">
+        <neutronic p="-170.168" r="4.72898" t="149.947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12595" x="-0.92309175728" y="-0.52176640625" z="-2.26259296608">
+        <neutronic p="-171.329" r="4.72901" t="150.028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12596" x="-0.92309175728" y="-0.483584375" z="-2.26259296608">
+        <neutronic p="-172.496" r="4.729" t="150.1"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12597" x="-0.92309175728" y="-0.44540234375" z="-2.26259296608">
+        <neutronic p="-173.669" r="4.72897" t="150.162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12598" x="-0.92309175728" y="-0.4072203125" z="-2.26259296608">
+        <neutronic p="-174.846" r="4.72891" t="150.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12599" x="-0.92309175728" y="-0.36903828125" z="-2.26259296608">
+        <neutronic p="-176.027" r="4.72882" t="150.253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12600" x="-0.92309175728" y="-0.33085625" z="-2.26259296608">
+        <neutronic p="-177.21" r="4.7287" t="150.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12601" x="-0.92309175728" y="-0.29267421875" z="-2.26259296608">
+        <neutronic p="-178.395" r="4.72855" t="150.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12602" x="-0.92309175728" y="-0.2544921875" z="-2.26259296608">
+        <neutronic p="-179.581" r="4.72838" t="150.312"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12622" x="-1.02761142994" y="-1.9345015625" z="-2.21707917575">
+        <neutronic p="-139.32" r="4.70977" t="140.067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12623" x="-1.02761142994" y="-1.89631953125" z="-2.21707917575">
+        <neutronic p="-139.972" r="4.71076" t="140.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12624" x="-1.02761142994" y="-1.8581375" z="-2.21707917575">
+        <neutronic p="-140.636" r="4.71172" t="140.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12625" x="-1.02761142994" y="-1.81995546875" z="-2.21707917575">
+        <neutronic p="-141.313" r="4.71265" t="140.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12626" x="-1.02761142994" y="-1.7817734375" z="-2.21707917575">
+        <neutronic p="-142.002" r="4.71356" t="141.145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12627" x="-1.02761142994" y="-1.74359140625" z="-2.21707917575">
+        <neutronic p="-142.705" r="4.71445" t="141.41"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12628" x="-1.02761142994" y="-1.705409375" z="-2.21707917575">
+        <neutronic p="-143.42" r="4.71532" t="141.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12629" x="-1.02761142994" y="-1.66722734375" z="-2.21707917575">
+        <neutronic p="-144.149" r="4.71616" t="141.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12630" x="-1.02761142994" y="-1.6290453125" z="-2.21707917575">
+        <neutronic p="-144.891" r="4.71697" t="142.187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12631" x="-1.02761142994" y="-1.59086328125" z="-2.21707917575">
+        <neutronic p="-145.647" r="4.71776" t="142.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12632" x="-1.02761142994" y="-1.55268125" z="-2.21707917575">
+        <neutronic p="-146.416" r="4.71852" t="142.691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12633" x="-1.02761142994" y="-1.51449921875" z="-2.21707917575">
+        <neutronic p="-147.199" r="4.71926" t="142.937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12634" x="-1.02761142994" y="-1.4763171875" z="-2.21707917575">
+        <neutronic p="-147.995" r="4.71998" t="143.18"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12635" x="-1.02761142994" y="-1.43813515625" z="-2.21707917575">
+        <neutronic p="-148.805" r="4.72066" t="143.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12636" x="-1.02761142994" y="-1.399953125" z="-2.21707917575">
+        <neutronic p="-149.629" r="4.72133" t="143.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12637" x="-1.02761142994" y="-1.36177109375" z="-2.21707917575">
+        <neutronic p="-150.466" r="4.72196" t="143.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12638" x="-1.02761142994" y="-1.3235890625" z="-2.21707917575">
+        <neutronic p="-151.317" r="4.72257" t="144.109"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12639" x="-1.02761142994" y="-1.28540703125" z="-2.21707917575">
+        <neutronic p="-152.182" r="4.72315" t="144.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12640" x="-1.02761142994" y="-1.247225" z="-2.21707917575">
+        <neutronic p="-153.06" r="4.72371" t="144.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12641" x="-1.02761142994" y="-1.20904296875" z="-2.21707917575">
+        <neutronic p="-153.952" r="4.72424" t="144.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12642" x="-1.02761142994" y="-1.1708609375" z="-2.21707917575">
+        <neutronic p="-154.857" r="4.72474" t="144.958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12643" x="-1.02761142994" y="-1.13267890625" z="-2.21707917575">
+        <neutronic p="-155.775" r="4.72521" t="145.157"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12644" x="-1.02761142994" y="-1.094496875" z="-2.21707917575">
+        <neutronic p="-156.706" r="4.72566" t="145.349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12645" x="-1.02761142994" y="-1.05631484375" z="-2.21707917575">
+        <neutronic p="-157.65" r="4.72608" t="145.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12646" x="-1.02761142994" y="-1.0181328125" z="-2.21707917575">
+        <neutronic p="-158.606" r="4.72647" t="145.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12647" x="-1.02761142994" y="-0.97995078125" z="-2.21707917575">
+        <neutronic p="-159.574" r="4.72684" t="145.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12648" x="-1.02761142994" y="-0.94176875" z="-2.21707917575">
+        <neutronic p="-160.554" r="4.72717" t="146.05"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12649" x="-1.02761142994" y="-0.90358671875" z="-2.21707917575">
+        <neutronic p="-161.546" r="4.72748" t="146.207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12650" x="-1.02761142994" y="-0.8654046875" z="-2.21707917575">
+        <neutronic p="-162.548" r="4.72776" t="146.357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12651" x="-1.02761142994" y="-0.82722265625" z="-2.21707917575">
+        <neutronic p="-163.561" r="4.72801" t="146.499"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12652" x="-1.02761142994" y="-0.789040625" z="-2.21707917575">
+        <neutronic p="-164.584" r="4.72824" t="146.634"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12653" x="-1.02761142994" y="-0.75085859375" z="-2.21707917575">
+        <neutronic p="-165.617" r="4.72843" t="146.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12654" x="-1.02761142994" y="-0.7126765625" z="-2.21707917575">
+        <neutronic p="-166.658" r="4.7286" t="146.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12655" x="-1.02761142994" y="-0.67449453125" z="-2.21707917575">
+        <neutronic p="-167.708" r="4.72874" t="146.987"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12656" x="-1.02761142994" y="-0.6363125" z="-2.21707917575">
+        <neutronic p="-168.765" r="4.72885" t="147.087"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12657" x="-1.02761142994" y="-0.59813046875" z="-2.21707917575">
+        <neutronic p="-169.83" r="4.72893" t="147.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12658" x="-1.02761142994" y="-0.5599484375" z="-2.21707917575">
+        <neutronic p="-170.901" r="4.72898" t="147.262"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12659" x="-1.02761142994" y="-0.52176640625" z="-2.21707917575">
+        <neutronic p="-171.978" r="4.72901" t="147.335"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12660" x="-1.02761142994" y="-0.483584375" z="-2.21707917575">
+        <neutronic p="-173.06" r="4.729" t="147.4"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12661" x="-1.02761142994" y="-0.44540234375" z="-2.21707917575">
+        <neutronic p="-174.146" r="4.72897" t="147.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12662" x="-1.02761142994" y="-0.4072203125" z="-2.21707917575">
+        <neutronic p="-175.236" r="4.72891" t="147.501"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12663" x="-1.02761142994" y="-0.36903828125" z="-2.21707917575">
+        <neutronic p="-176.328" r="4.72882" t="147.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12664" x="-1.02761142994" y="-0.33085625" z="-2.21707917575">
+        <neutronic p="-177.422" r="4.7287" t="147.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12665" x="-1.02761142994" y="-0.29267421875" z="-2.21707917575">
+        <neutronic p="-178.517" r="4.72855" t="147.582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12666" x="-1.02761142994" y="-0.2544921875" z="-2.21707917575">
+        <neutronic p="-179.613" r="4.72838" t="147.59"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12686" x="-1.1298946681" y="-1.9345015625" z="-2.16674026166">
+        <neutronic p="-141.321" r="4.70977" t="137.971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12687" x="-1.1298946681" y="-1.89631953125" z="-2.16674026166">
+        <neutronic p="-141.964" r="4.71076" t="138.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12688" x="-1.1298946681" y="-1.8581375" z="-2.16674026166">
+        <neutronic p="-142.618" r="4.71172" t="138.475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12689" x="-1.1298946681" y="-1.81995546875" z="-2.16674026166">
+        <neutronic p="-143.283" r="4.71265" t="138.724"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12690" x="-1.1298946681" y="-1.7817734375" z="-2.16674026166">
+        <neutronic p="-143.96" r="4.71356" t="138.971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12691" x="-1.1298946681" y="-1.74359140625" z="-2.16674026166">
+        <neutronic p="-144.648" r="4.71445" t="139.216"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12692" x="-1.1298946681" y="-1.705409375" z="-2.16674026166">
+        <neutronic p="-145.348" r="4.71532" t="139.458"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12693" x="-1.1298946681" y="-1.66722734375" z="-2.16674026166">
+        <neutronic p="-146.06" r="4.71616" t="139.698"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12694" x="-1.1298946681" y="-1.6290453125" z="-2.16674026166">
+        <neutronic p="-146.783" r="4.71697" t="139.935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12695" x="-1.1298946681" y="-1.59086328125" z="-2.16674026166">
+        <neutronic p="-147.519" r="4.71776" t="140.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12696" x="-1.1298946681" y="-1.55268125" z="-2.16674026166">
+        <neutronic p="-148.266" r="4.71852" t="140.399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12697" x="-1.1298946681" y="-1.51449921875" z="-2.16674026166">
+        <neutronic p="-149.025" r="4.71926" t="140.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12698" x="-1.1298946681" y="-1.4763171875" z="-2.16674026166">
+        <neutronic p="-149.796" r="4.71998" t="140.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12699" x="-1.1298946681" y="-1.43813515625" z="-2.16674026166">
+        <neutronic p="-150.579" r="4.72066" t="141.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12700" x="-1.1298946681" y="-1.399953125" z="-2.16674026166">
+        <neutronic p="-151.374" r="4.72133" t="141.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12701" x="-1.1298946681" y="-1.36177109375" z="-2.16674026166">
+        <neutronic p="-152.18" r="4.72196" t="141.495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12702" x="-1.1298946681" y="-1.3235890625" z="-2.16674026166">
+        <neutronic p="-152.999" r="4.72257" t="141.702"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12703" x="-1.1298946681" y="-1.28540703125" z="-2.16674026166">
+        <neutronic p="-153.829" r="4.72315" t="141.904"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12704" x="-1.1298946681" y="-1.247225" z="-2.16674026166">
+        <neutronic p="-154.67" r="4.72371" t="142.101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12705" x="-1.1298946681" y="-1.20904296875" z="-2.16674026166">
+        <neutronic p="-155.523" r="4.72424" t="142.293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12706" x="-1.1298946681" y="-1.1708609375" z="-2.16674026166">
+        <neutronic p="-156.388" r="4.72474" t="142.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12707" x="-1.1298946681" y="-1.13267890625" z="-2.16674026166">
+        <neutronic p="-157.263" r="4.72521" t="142.66"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12708" x="-1.1298946681" y="-1.094496875" z="-2.16674026166">
+        <neutronic p="-158.149" r="4.72566" t="142.835"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12709" x="-1.1298946681" y="-1.05631484375" z="-2.16674026166">
+        <neutronic p="-159.046" r="4.72608" t="143.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12710" x="-1.1298946681" y="-1.0181328125" z="-2.16674026166">
+        <neutronic p="-159.953" r="4.72647" t="143.167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12711" x="-1.1298946681" y="-0.97995078125" z="-2.16674026166">
+        <neutronic p="-160.871" r="4.72684" t="143.323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12712" x="-1.1298946681" y="-0.94176875" z="-2.16674026166">
+        <neutronic p="-161.798" r="4.72717" t="143.473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12713" x="-1.1298946681" y="-0.90358671875" z="-2.16674026166">
+        <neutronic p="-162.734" r="4.72748" t="143.616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12714" x="-1.1298946681" y="-0.8654046875" z="-2.16674026166">
+        <neutronic p="-163.68" r="4.72776" t="143.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12715" x="-1.1298946681" y="-0.82722265625" z="-2.16674026166">
+        <neutronic p="-164.634" r="4.72801" t="143.882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12716" x="-1.1298946681" y="-0.789040625" z="-2.16674026166">
+        <neutronic p="-165.596" r="4.72824" t="144.003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12717" x="-1.1298946681" y="-0.75085859375" z="-2.16674026166">
+        <neutronic p="-166.566" r="4.72843" t="144.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12718" x="-1.1298946681" y="-0.7126765625" z="-2.16674026166">
+        <neutronic p="-167.544" r="4.7286" t="144.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12719" x="-1.1298946681" y="-0.67449453125" z="-2.16674026166">
+        <neutronic p="-168.528" r="4.72874" t="144.323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12720" x="-1.1298946681" y="-0.6363125" z="-2.16674026166">
+        <neutronic p="-169.519" r="4.72885" t="144.414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12721" x="-1.1298946681" y="-0.59813046875" z="-2.16674026166">
+        <neutronic p="-170.515" r="4.72893" t="144.497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12722" x="-1.1298946681" y="-0.5599484375" z="-2.16674026166">
+        <neutronic p="-171.516" r="4.72898" t="144.572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12723" x="-1.1298946681" y="-0.52176640625" z="-2.16674026166">
+        <neutronic p="-172.522" r="4.72901" t="144.638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12724" x="-1.1298946681" y="-0.483584375" z="-2.16674026166">
+        <neutronic p="-173.532" r="4.729" t="144.697"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12725" x="-1.1298946681" y="-0.44540234375" z="-2.16674026166">
+        <neutronic p="-174.545" r="4.72897" t="144.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12726" x="-1.1298946681" y="-0.4072203125" z="-2.16674026166">
+        <neutronic p="-175.561" r="4.72891" t="144.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12727" x="-1.1298946681" y="-0.36903828125" z="-2.16674026166">
+        <neutronic p="-176.579" r="4.72882" t="144.821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12728" x="-1.1298946681" y="-0.33085625" z="-2.16674026166">
+        <neutronic p="-177.599" r="4.7287" t="144.845"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12729" x="-1.1298946681" y="-0.29267421875" z="-2.16674026166">
+        <neutronic p="-178.619" r="4.72855" t="144.861"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12730" x="-1.1298946681" y="-0.2544921875" z="-2.16674026166">
+        <neutronic p="-179.639" r="4.72838" t="144.869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12750" x="-1.22971886841" y="-1.9345015625" z="-2.11168577852">
+        <neutronic p="-143.104" r="4.70977" t="135.82"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12751" x="-1.22971886841" y="-1.89631953125" z="-2.11168577852">
+        <neutronic p="-143.736" r="4.71076" t="136.054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12752" x="-1.22971886841" y="-1.8581375" z="-2.11168577852">
+        <neutronic p="-144.378" r="4.71172" t="136.287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12753" x="-1.22971886841" y="-1.81995546875" z="-2.11168577852">
+        <neutronic p="-145.03" r="4.71265" t="136.518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12754" x="-1.22971886841" y="-1.7817734375" z="-2.11168577852">
+        <neutronic p="-145.693" r="4.71356" t="136.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12755" x="-1.22971886841" y="-1.74359140625" z="-2.11168577852">
+        <neutronic p="-146.366" r="4.71445" t="136.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12756" x="-1.22971886841" y="-1.705409375" z="-2.11168577852">
+        <neutronic p="-147.05" r="4.71532" t="137.196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12757" x="-1.22971886841" y="-1.66722734375" z="-2.11168577852">
+        <neutronic p="-147.744" r="4.71616" t="137.418"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12758" x="-1.22971886841" y="-1.6290453125" z="-2.11168577852">
+        <neutronic p="-148.448" r="4.71697" t="137.636"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12759" x="-1.22971886841" y="-1.59086328125" z="-2.11168577852">
+        <neutronic p="-149.163" r="4.71776" t="137.851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12760" x="-1.22971886841" y="-1.55268125" z="-2.11168577852">
+        <neutronic p="-149.888" r="4.71852" t="138.064"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12761" x="-1.22971886841" y="-1.51449921875" z="-2.11168577852">
+        <neutronic p="-150.624" r="4.71926" t="138.273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12762" x="-1.22971886841" y="-1.4763171875" z="-2.11168577852">
+        <neutronic p="-151.371" r="4.71998" t="138.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12763" x="-1.22971886841" y="-1.43813515625" z="-2.11168577852">
+        <neutronic p="-152.127" r="4.72066" t="138.68"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12764" x="-1.22971886841" y="-1.399953125" z="-2.11168577852">
+        <neutronic p="-152.894" r="4.72133" t="138.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12765" x="-1.22971886841" y="-1.36177109375" z="-2.11168577852">
+        <neutronic p="-153.672" r="4.72196" t="139.071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12766" x="-1.22971886841" y="-1.3235890625" z="-2.11168577852">
+        <neutronic p="-154.459" r="4.72257" t="139.261"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12767" x="-1.22971886841" y="-1.28540703125" z="-2.11168577852">
+        <neutronic p="-155.257" r="4.72315" t="139.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12768" x="-1.22971886841" y="-1.247225" z="-2.11168577852">
+        <neutronic p="-156.065" r="4.72371" t="139.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12769" x="-1.22971886841" y="-1.20904296875" z="-2.11168577852">
+        <neutronic p="-156.882" r="4.72424" t="139.802"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12770" x="-1.22971886841" y="-1.1708609375" z="-2.11168577852">
+        <neutronic p="-157.709" r="4.72474" t="139.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12771" x="-1.22971886841" y="-1.13267890625" z="-2.11168577852">
+        <neutronic p="-158.546" r="4.72521" t="140.138"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12772" x="-1.22971886841" y="-1.094496875" z="-2.11168577852">
+        <neutronic p="-159.392" r="4.72566" t="140.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12773" x="-1.22971886841" y="-1.05631484375" z="-2.11168577852">
+        <neutronic p="-160.246" r="4.72608" t="140.452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12774" x="-1.22971886841" y="-1.0181328125" z="-2.11168577852">
+        <neutronic p="-161.11" r="4.72647" t="140.601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12775" x="-1.22971886841" y="-0.97995078125" z="-2.11168577852">
+        <neutronic p="-161.982" r="4.72684" t="140.743"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12776" x="-1.22971886841" y="-0.94176875" z="-2.11168577852">
+        <neutronic p="-162.862" r="4.72717" t="140.88"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12777" x="-1.22971886841" y="-0.90358671875" z="-2.11168577852">
+        <neutronic p="-163.75" r="4.72748" t="141.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12778" x="-1.22971886841" y="-0.8654046875" z="-2.11168577852">
+        <neutronic p="-164.646" r="4.72776" t="141.134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12779" x="-1.22971886841" y="-0.82722265625" z="-2.11168577852">
+        <neutronic p="-165.549" r="4.72801" t="141.251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12780" x="-1.22971886841" y="-0.789040625" z="-2.11168577852">
+        <neutronic p="-166.459" r="4.72824" t="141.362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12781" x="-1.22971886841" y="-0.75085859375" z="-2.11168577852">
+        <neutronic p="-167.375" r="4.72843" t="141.466"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12782" x="-1.22971886841" y="-0.7126765625" z="-2.11168577852">
+        <neutronic p="-168.297" r="4.7286" t="141.563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12783" x="-1.22971886841" y="-0.67449453125" z="-2.11168577852">
+        <neutronic p="-169.225" r="4.72874" t="141.652"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12784" x="-1.22971886841" y="-0.6363125" z="-2.11168577852">
+        <neutronic p="-170.158" r="4.72885" t="141.735"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12785" x="-1.22971886841" y="-0.59813046875" z="-2.11168577852">
+        <neutronic p="-171.095" r="4.72893" t="141.81"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12786" x="-1.22971886841" y="-0.5599484375" z="-2.11168577852">
+        <neutronic p="-172.037" r="4.72898" t="141.878"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12787" x="-1.22971886841" y="-0.52176640625" z="-2.11168577852">
+        <neutronic p="-172.983" r="4.72901" t="141.938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12788" x="-1.22971886841" y="-0.483584375" z="-2.11168577852">
+        <neutronic p="-173.931" r="4.729" t="141.991"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12789" x="-1.22971886841" y="-0.44540234375" z="-2.11168577852">
+        <neutronic p="-174.883" r="4.72897" t="142.036"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12790" x="-1.22971886841" y="-0.4072203125" z="-2.11168577852">
+        <neutronic p="-175.836" r="4.72891" t="142.074"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12791" x="-1.22971886841" y="-0.36903828125" z="-2.11168577852">
+        <neutronic p="-176.792" r="4.72882" t="142.104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12792" x="-1.22971886841" y="-0.33085625" z="-2.11168577852">
+        <neutronic p="-177.748" r="4.7287" t="142.126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12793" x="-1.22971886841" y="-0.29267421875" z="-2.11168577852">
+        <neutronic p="-178.705" r="4.72855" t="142.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12794" x="-1.22971886841" y="-0.2544921875" z="-2.11168577852">
+        <neutronic p="-179.662" r="4.72838" t="142.147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12814" x="-1.3268667792" y="-1.9345015625" z="-2.05203554373">
+        <neutronic p="-144.692" r="4.70977" t="133.62"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12815" x="-1.3268667792" y="-1.89631953125" z="-2.05203554373">
+        <neutronic p="-145.313" r="4.71076" t="133.837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12816" x="-1.3268667792" y="-1.8581375" z="-2.05203554373">
+        <neutronic p="-145.942" r="4.71172" t="134.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12817" x="-1.3268667792" y="-1.81995546875" z="-2.05203554373">
+        <neutronic p="-146.581" r="4.71265" t="134.266"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12818" x="-1.3268667792" y="-1.7817734375" z="-2.05203554373">
+        <neutronic p="-147.23" r="4.71356" t="134.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12819" x="-1.3268667792" y="-1.74359140625" z="-2.05203554373">
+        <neutronic p="-147.887" r="4.71445" t="134.686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12820" x="-1.3268667792" y="-1.705409375" z="-2.05203554373">
+        <neutronic p="-148.554" r="4.71532" t="134.893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12821" x="-1.3268667792" y="-1.66722734375" z="-2.05203554373">
+        <neutronic p="-149.23" r="4.71616" t="135.097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12822" x="-1.3268667792" y="-1.6290453125" z="-2.05203554373">
+        <neutronic p="-149.916" r="4.71697" t="135.298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12823" x="-1.3268667792" y="-1.59086328125" z="-2.05203554373">
+        <neutronic p="-150.611" r="4.71776" t="135.497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12824" x="-1.3268667792" y="-1.55268125" z="-2.05203554373">
+        <neutronic p="-151.315" r="4.71852" t="135.692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12825" x="-1.3268667792" y="-1.51449921875" z="-2.05203554373">
+        <neutronic p="-152.029" r="4.71926" t="135.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12826" x="-1.3268667792" y="-1.4763171875" z="-2.05203554373">
+        <neutronic p="-152.752" r="4.71998" t="136.073"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12827" x="-1.3268667792" y="-1.43813515625" z="-2.05203554373">
+        <neutronic p="-153.484" r="4.72066" t="136.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12828" x="-1.3268667792" y="-1.399953125" z="-2.05203554373">
+        <neutronic p="-154.225" r="4.72133" t="136.44"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12829" x="-1.3268667792" y="-1.36177109375" z="-2.05203554373">
+        <neutronic p="-154.975" r="4.72196" t="136.618"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12830" x="-1.3268667792" y="-1.3235890625" z="-2.05203554373">
+        <neutronic p="-155.734" r="4.72257" t="136.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12831" x="-1.3268667792" y="-1.28540703125" z="-2.05203554373">
+        <neutronic p="-156.502" r="4.72315" t="136.962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12832" x="-1.3268667792" y="-1.247225" z="-2.05203554373">
+        <neutronic p="-157.278" r="4.72371" t="137.127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12833" x="-1.3268667792" y="-1.20904296875" z="-2.05203554373">
+        <neutronic p="-158.063" r="4.72424" t="137.288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12834" x="-1.3268667792" y="-1.1708609375" z="-2.05203554373">
+        <neutronic p="-158.856" r="4.72474" t="137.444"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12835" x="-1.3268667792" y="-1.13267890625" z="-2.05203554373">
+        <neutronic p="-159.658" r="4.72521" t="137.595"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12836" x="-1.3268667792" y="-1.094496875" z="-2.05203554373">
+        <neutronic p="-160.467" r="4.72566" t="137.741"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12837" x="-1.3268667792" y="-1.05631484375" z="-2.05203554373">
+        <neutronic p="-161.284" r="4.72608" t="137.882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12838" x="-1.3268667792" y="-1.0181328125" z="-2.05203554373">
+        <neutronic p="-162.109" r="4.72647" t="138.018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12839" x="-1.3268667792" y="-0.97995078125" z="-2.05203554373">
+        <neutronic p="-162.941" r="4.72684" t="138.148"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12840" x="-1.3268667792" y="-0.94176875" z="-2.05203554373">
+        <neutronic p="-163.779" r="4.72717" t="138.272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12841" x="-1.3268667792" y="-0.90358671875" z="-2.05203554373">
+        <neutronic p="-164.625" r="4.72748" t="138.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12842" x="-1.3268667792" y="-0.8654046875" z="-2.05203554373">
+        <neutronic p="-165.477" r="4.72776" t="138.504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12843" x="-1.3268667792" y="-0.82722265625" z="-2.05203554373">
+        <neutronic p="-166.335" r="4.72801" t="138.611"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12844" x="-1.3268667792" y="-0.789040625" z="-2.05203554373">
+        <neutronic p="-167.199" r="4.72824" t="138.712"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12845" x="-1.3268667792" y="-0.75085859375" z="-2.05203554373">
+        <neutronic p="-168.068" r="4.72843" t="138.806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12846" x="-1.3268667792" y="-0.7126765625" z="-2.05203554373">
+        <neutronic p="-168.942" r="4.7286" t="138.894"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12847" x="-1.3268667792" y="-0.67449453125" z="-2.05203554373">
+        <neutronic p="-169.821" r="4.72874" t="138.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12848" x="-1.3268667792" y="-0.6363125" z="-2.05203554373">
+        <neutronic p="-170.705" r="4.72885" t="139.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12849" x="-1.3268667792" y="-0.59813046875" z="-2.05203554373">
+        <neutronic p="-171.592" r="4.72893" t="139.119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12850" x="-1.3268667792" y="-0.5599484375" z="-2.05203554373">
+        <neutronic p="-172.482" r="4.72898" t="139.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12851" x="-1.3268667792" y="-0.52176640625" z="-2.05203554373">
+        <neutronic p="-173.376" r="4.72901" t="139.236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12852" x="-1.3268667792" y="-0.483584375" z="-2.05203554373">
+        <neutronic p="-174.272" r="4.729" t="139.284"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12853" x="-1.3268667792" y="-0.44540234375" z="-2.05203554373">
+        <neutronic p="-175.171" r="4.72897" t="139.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12854" x="-1.3268667792" y="-0.4072203125" z="-2.05203554373">
+        <neutronic p="-176.071" r="4.72891" t="139.359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12855" x="-1.3268667792" y="-0.36903828125" z="-2.05203554373">
+        <neutronic p="-176.973" r="4.72882" t="139.386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12856" x="-1.3268667792" y="-0.33085625" z="-2.05203554373">
+        <neutronic p="-177.875" r="4.7287" t="139.406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12857" x="-1.3268667792" y="-0.29267421875" z="-2.05203554373">
+        <neutronic p="-178.778" r="4.72855" t="139.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12858" x="-1.3268667792" y="-0.2544921875" z="-2.05203554373">
+        <neutronic p="-179.681" r="4.72838" t="139.425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12878" x="-1.42112697335" y="-1.9345015625" z="-1.98791937666">
+        <neutronic p="-146.109" r="4.70977" t="131.38"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12879" x="-1.42112697335" y="-1.89631953125" z="-1.98791937666">
+        <neutronic p="-146.717" r="4.71076" t="131.58"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12880" x="-1.42112697335" y="-1.8581375" z="-1.98791937666">
+        <neutronic p="-147.334" r="4.71172" t="131.779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12881" x="-1.42112697335" y="-1.81995546875" z="-1.98791937666">
+        <neutronic p="-147.96" r="4.71265" t="131.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12882" x="-1.42112697335" y="-1.7817734375" z="-1.98791937666">
+        <neutronic p="-148.594" r="4.71356" t="132.171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12883" x="-1.42112697335" y="-1.74359140625" z="-1.98791937666">
+        <neutronic p="-149.236" r="4.71445" t="132.364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12884" x="-1.42112697335" y="-1.705409375" z="-1.98791937666">
+        <neutronic p="-149.887" r="4.71532" t="132.554"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12885" x="-1.42112697335" y="-1.66722734375" z="-1.98791937666">
+        <neutronic p="-150.546" r="4.71616" t="132.742"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12886" x="-1.42112697335" y="-1.6290453125" z="-1.98791937666">
+        <neutronic p="-151.213" r="4.71697" t="132.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12887" x="-1.42112697335" y="-1.59086328125" z="-1.98791937666">
+        <neutronic p="-151.889" r="4.71776" t="133.11"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12888" x="-1.42112697335" y="-1.55268125" z="-1.98791937666">
+        <neutronic p="-152.573" r="4.71852" t="133.29"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12889" x="-1.42112697335" y="-1.51449921875" z="-1.98791937666">
+        <neutronic p="-153.266" r="4.71926" t="133.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12890" x="-1.42112697335" y="-1.4763171875" z="-1.98791937666">
+        <neutronic p="-153.966" r="4.71998" t="133.64"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12891" x="-1.42112697335" y="-1.43813515625" z="-1.98791937666">
+        <neutronic p="-154.675" r="4.72066" t="133.81"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12892" x="-1.42112697335" y="-1.399953125" z="-1.98791937666">
+        <neutronic p="-155.392" r="4.72133" t="133.977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12893" x="-1.42112697335" y="-1.36177109375" z="-1.98791937666">
+        <neutronic p="-156.117" r="4.72196" t="134.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12894" x="-1.42112697335" y="-1.3235890625" z="-1.98791937666">
+        <neutronic p="-156.849" r="4.72257" t="134.3"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12895" x="-1.42112697335" y="-1.28540703125" z="-1.98791937666">
+        <neutronic p="-157.59" r="4.72315" t="134.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12896" x="-1.42112697335" y="-1.247225" z="-1.98791937666">
+        <neutronic p="-158.338" r="4.72371" t="134.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12897" x="-1.42112697335" y="-1.20904296875" z="-1.98791937666">
+        <neutronic p="-159.093" r="4.72424" t="134.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12898" x="-1.42112697335" y="-1.1708609375" z="-1.98791937666">
+        <neutronic p="-159.856" r="4.72474" t="134.896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12899" x="-1.42112697335" y="-1.13267890625" z="-1.98791937666">
+        <neutronic p="-160.626" r="4.72521" t="135.035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12900" x="-1.42112697335" y="-1.094496875" z="-1.98791937666">
+        <neutronic p="-161.403" r="4.72566" t="135.168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12901" x="-1.42112697335" y="-1.05631484375" z="-1.98791937666">
+        <neutronic p="-162.186" r="4.72608" t="135.297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12902" x="-1.42112697335" y="-1.0181328125" z="-1.98791937666">
+        <neutronic p="-162.976" r="4.72647" t="135.421"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12903" x="-1.42112697335" y="-0.97995078125" z="-1.98791937666">
+        <neutronic p="-163.772" r="4.72684" t="135.54"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12904" x="-1.42112697335" y="-0.94176875" z="-1.98791937666">
+        <neutronic p="-164.574" r="4.72717" t="135.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12905" x="-1.42112697335" y="-0.90358671875" z="-1.98791937666">
+        <neutronic p="-165.382" r="4.72748" t="135.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12906" x="-1.42112697335" y="-0.8654046875" z="-1.98791937666">
+        <neutronic p="-166.196" r="4.72776" t="135.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12907" x="-1.42112697335" y="-0.82722265625" z="-1.98791937666">
+        <neutronic p="-167.015" r="4.72801" t="135.962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12908" x="-1.42112697335" y="-0.789040625" z="-1.98791937666">
+        <neutronic p="-167.838" r="4.72824" t="136.054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12909" x="-1.42112697335" y="-0.75085859375" z="-1.98791937666">
+        <neutronic p="-168.667" r="4.72843" t="136.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12910" x="-1.42112697335" y="-0.7126765625" z="-1.98791937666">
+        <neutronic p="-169.499" r="4.7286" t="136.22"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12911" x="-1.42112697335" y="-0.67449453125" z="-1.98791937666">
+        <neutronic p="-170.336" r="4.72874" t="136.295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12912" x="-1.42112697335" y="-0.6363125" z="-1.98791937666">
+        <neutronic p="-171.176" r="4.72885" t="136.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12913" x="-1.42112697335" y="-0.59813046875" z="-1.98791937666">
+        <neutronic p="-172.019" r="4.72893" t="136.425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12914" x="-1.42112697335" y="-0.5599484375" z="-1.98791937666">
+        <neutronic p="-172.866" r="4.72898" t="136.481"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12915" x="-1.42112697335" y="-0.52176640625" z="-1.98791937666">
+        <neutronic p="-173.715" r="4.72901" t="136.531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12916" x="-1.42112697335" y="-0.483584375" z="-1.98791937666">
+        <neutronic p="-174.566" r="4.729" t="136.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12917" x="-1.42112697335" y="-0.44540234375" z="-1.98791937666">
+        <neutronic p="-175.419" r="4.72897" t="136.612"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12918" x="-1.42112697335" y="-0.4072203125" z="-1.98791937666">
+        <neutronic p="-176.273" r="4.72891" t="136.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12919" x="-1.42112697335" y="-0.36903828125" z="-1.98791937666">
+        <neutronic p="-177.129" r="4.72882" t="136.668"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12920" x="-1.42112697335" y="-0.33085625" z="-1.98791937666">
+        <neutronic p="-177.985" r="4.7287" t="136.686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12921" x="-1.42112697335" y="-0.29267421875" z="-1.98791937666">
+        <neutronic p="-178.841" r="4.72855" t="136.698"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12922" x="-1.42112697335" y="-0.2544921875" z="-1.98791937666">
+        <neutronic p="-179.697" r="4.72838" t="136.703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12942" x="-1.51229430839" y="-1.9345015625" z="-1.91947681604">
+        <neutronic p="-147.372" r="4.70977" t="129.103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12943" x="-1.51229430839" y="-1.89631953125" z="-1.91947681604">
+        <neutronic p="-147.969" r="4.71076" t="129.288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12944" x="-1.51229430839" y="-1.8581375" z="-1.91947681604">
+        <neutronic p="-148.573" r="4.71172" t="129.472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12945" x="-1.51229430839" y="-1.81995546875" z="-1.91947681604">
+        <neutronic p="-149.186" r="4.71265" t="129.653"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12946" x="-1.51229430839" y="-1.7817734375" z="-1.91947681604">
+        <neutronic p="-149.805" r="4.71356" t="129.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12947" x="-1.51229430839" y="-1.74359140625" z="-1.91947681604">
+        <neutronic p="-150.433" r="4.71445" t="130.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12948" x="-1.51229430839" y="-1.705409375" z="-1.91947681604">
+        <neutronic p="-151.068" r="4.71532" t="130.185"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12949" x="-1.51229430839" y="-1.66722734375" z="-1.91947681604">
+        <neutronic p="-151.711" r="4.71616" t="130.358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12950" x="-1.51229430839" y="-1.6290453125" z="-1.91947681604">
+        <neutronic p="-152.361" r="4.71697" t="130.529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12951" x="-1.51229430839" y="-1.59086328125" z="-1.91947681604">
+        <neutronic p="-153.019" r="4.71776" t="130.697"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12952" x="-1.51229430839" y="-1.55268125" z="-1.91947681604">
+        <neutronic p="-153.684" r="4.71852" t="130.862"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12953" x="-1.51229430839" y="-1.51449921875" z="-1.91947681604">
+        <neutronic p="-154.357" r="4.71926" t="131.024"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12954" x="-1.51229430839" y="-1.4763171875" z="-1.91947681604">
+        <neutronic p="-155.037" r="4.71998" t="131.183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12955" x="-1.51229430839" y="-1.43813515625" z="-1.91947681604">
+        <neutronic p="-155.724" r="4.72066" t="131.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12956" x="-1.51229430839" y="-1.399953125" z="-1.91947681604">
+        <neutronic p="-156.419" r="4.72133" t="131.492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12957" x="-1.51229430839" y="-1.36177109375" z="-1.91947681604">
+        <neutronic p="-157.12" r="4.72196" t="131.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12958" x="-1.51229430839" y="-1.3235890625" z="-1.91947681604">
+        <neutronic p="-157.829" r="4.72257" t="131.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12959" x="-1.51229430839" y="-1.28540703125" z="-1.91947681604">
+        <neutronic p="-158.545" r="4.72315" t="131.93"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12960" x="-1.51229430839" y="-1.247225" z="-1.91947681604">
+        <neutronic p="-159.267" r="4.72371" t="132.069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12961" x="-1.51229430839" y="-1.20904296875" z="-1.91947681604">
+        <neutronic p="-159.995" r="4.72424" t="132.203"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12962" x="-1.51229430839" y="-1.1708609375" z="-1.91947681604">
+        <neutronic p="-160.731" r="4.72474" t="132.334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12963" x="-1.51229430839" y="-1.13267890625" z="-1.91947681604">
+        <neutronic p="-161.472" r="4.72521" t="132.46"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12964" x="-1.51229430839" y="-1.094496875" z="-1.91947681604">
+        <neutronic p="-162.22" r="4.72566" t="132.582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12965" x="-1.51229430839" y="-1.05631484375" z="-1.91947681604">
+        <neutronic p="-162.973" r="4.72608" t="132.7"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12966" x="-1.51229430839" y="-1.0181328125" z="-1.91947681604">
+        <neutronic p="-163.732" r="4.72647" t="132.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12967" x="-1.51229430839" y="-0.97995078125" z="-1.91947681604">
+        <neutronic p="-164.497" r="4.72684" t="132.922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12968" x="-1.51229430839" y="-0.94176875" z="-1.91947681604">
+        <neutronic p="-165.267" r="4.72717" t="133.025"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12969" x="-1.51229430839" y="-0.90358671875" z="-1.91947681604">
+        <neutronic p="-166.041" r="4.72748" t="133.124"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12970" x="-1.51229430839" y="-0.8654046875" z="-1.91947681604">
+        <neutronic p="-166.821" r="4.72776" t="133.218"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12971" x="-1.51229430839" y="-0.82722265625" z="-1.91947681604">
+        <neutronic p="-167.605" r="4.72801" t="133.307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12972" x="-1.51229430839" y="-0.789040625" z="-1.91947681604">
+        <neutronic p="-168.394" r="4.72824" t="133.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12973" x="-1.51229430839" y="-0.75085859375" z="-1.91947681604">
+        <neutronic p="-169.186" r="4.72843" t="133.469"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12974" x="-1.51229430839" y="-0.7126765625" z="-1.91947681604">
+        <neutronic p="-169.982" r="4.7286" t="133.542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12975" x="-1.51229430839" y="-0.67449453125" z="-1.91947681604">
+        <neutronic p="-170.782" r="4.72874" t="133.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12976" x="-1.51229430839" y="-0.6363125" z="-1.91947681604">
+        <neutronic p="-171.584" r="4.72885" t="133.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12977" x="-1.51229430839" y="-0.59813046875" z="-1.91947681604">
+        <neutronic p="-172.39" r="4.72893" t="133.729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12978" x="-1.51229430839" y="-0.5599484375" z="-1.91947681604">
+        <neutronic p="-173.197" r="4.72898" t="133.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12979" x="-1.51229430839" y="-0.52176640625" z="-1.91947681604">
+        <neutronic p="-174.008" r="4.72901" t="133.825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12980" x="-1.51229430839" y="-0.483584375" z="-1.91947681604">
+        <neutronic p="-174.82" r="4.729" t="133.865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12981" x="-1.51229430839" y="-0.44540234375" z="-1.91947681604">
+        <neutronic p="-175.633" r="4.72897" t="133.899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12982" x="-1.51229430839" y="-0.4072203125" z="-1.91947681604">
+        <neutronic p="-176.448" r="4.72891" t="133.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12983" x="-1.51229430839" y="-0.36903828125" z="-1.91947681604">
+        <neutronic p="-177.263" r="4.72882" t="133.949"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12984" x="-1.51229430839" y="-0.33085625" z="-1.91947681604">
+        <neutronic p="-178.079" r="4.7287" t="133.966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12985" x="-1.51229430839" y="-0.29267421875" z="-1.91947681604">
+        <neutronic p="-178.895" r="4.72855" t="133.977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="12986" x="-1.51229430839" y="-0.2544921875" z="-1.91947681604">
+        <neutronic p="-179.712" r="4.72838" t="133.981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13006" x="-1.60017037295" y="-1.9345015625" z="-1.84685681633">
+        <neutronic p="-148.499" r="4.70977" t="126.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13007" x="-1.60017037295" y="-1.89631953125" z="-1.84685681633">
+        <neutronic p="-149.085" r="4.71076" t="126.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13008" x="-1.60017037295" y="-1.8581375" z="-1.84685681633">
+        <neutronic p="-149.677" r="4.71172" t="127.135"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13009" x="-1.60017037295" y="-1.81995546875" z="-1.84685681633">
+        <neutronic p="-150.276" r="4.71265" t="127.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13010" x="-1.60017037295" y="-1.7817734375" z="-1.84685681633">
+        <neutronic p="-150.883" r="4.71356" t="127.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13011" x="-1.60017037295" y="-1.74359140625" z="-1.84685681633">
+        <neutronic p="-151.496" r="4.71445" t="127.63"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13012" x="-1.60017037295" y="-1.705409375" z="-1.84685681633">
+        <neutronic p="-152.116" r="4.71532" t="127.791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13013" x="-1.60017037295" y="-1.66722734375" z="-1.84685681633">
+        <neutronic p="-152.744" r="4.71616" t="127.95"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13014" x="-1.60017037295" y="-1.6290453125" z="-1.84685681633">
+        <neutronic p="-153.378" r="4.71697" t="128.106"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13015" x="-1.60017037295" y="-1.59086328125" z="-1.84685681633">
+        <neutronic p="-154.019" r="4.71776" t="128.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13016" x="-1.60017037295" y="-1.55268125" z="-1.84685681633">
+        <neutronic p="-154.666" r="4.71852" t="128.412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13017" x="-1.60017037295" y="-1.51449921875" z="-1.84685681633">
+        <neutronic p="-155.321" r="4.71926" t="128.56"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13018" x="-1.60017037295" y="-1.4763171875" z="-1.84685681633">
+        <neutronic p="-155.982" r="4.71998" t="128.706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13019" x="-1.60017037295" y="-1.43813515625" z="-1.84685681633">
+        <neutronic p="-156.65" r="4.72066" t="128.849"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13020" x="-1.60017037295" y="-1.399953125" z="-1.84685681633">
+        <neutronic p="-157.324" r="4.72133" t="128.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13021" x="-1.60017037295" y="-1.36177109375" z="-1.84685681633">
+        <neutronic p="-158.004" r="4.72196" t="129.126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13022" x="-1.60017037295" y="-1.3235890625" z="-1.84685681633">
+        <neutronic p="-158.691" r="4.72257" t="129.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13023" x="-1.60017037295" y="-1.28540703125" z="-1.84685681633">
+        <neutronic p="-159.384" r="4.72315" t="129.39"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13024" x="-1.60017037295" y="-1.247225" z="-1.84685681633">
+        <neutronic p="-160.083" r="4.72371" t="129.516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13025" x="-1.60017037295" y="-1.20904296875" z="-1.84685681633">
+        <neutronic p="-160.787" r="4.72424" t="129.639"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13026" x="-1.60017037295" y="-1.1708609375" z="-1.84685681633">
+        <neutronic p="-161.498" r="4.72474" t="129.758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13027" x="-1.60017037295" y="-1.13267890625" z="-1.84685681633">
+        <neutronic p="-162.214" r="4.72521" t="129.874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13028" x="-1.60017037295" y="-1.094496875" z="-1.84685681633">
+        <neutronic p="-162.935" r="4.72566" t="129.985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13029" x="-1.60017037295" y="-1.05631484375" z="-1.84685681633">
+        <neutronic p="-163.662" r="4.72608" t="130.093"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13030" x="-1.60017037295" y="-1.0181328125" z="-1.84685681633">
+        <neutronic p="-164.394" r="4.72647" t="130.196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13031" x="-1.60017037295" y="-0.97995078125" z="-1.84685681633">
+        <neutronic p="-165.13" r="4.72684" t="130.295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13032" x="-1.60017037295" y="-0.94176875" z="-1.84685681633">
+        <neutronic p="-165.871" r="4.72717" t="130.389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13033" x="-1.60017037295" y="-0.90358671875" z="-1.84685681633">
+        <neutronic p="-166.617" r="4.72748" t="130.479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13034" x="-1.60017037295" y="-0.8654046875" z="-1.84685681633">
+        <neutronic p="-167.366" r="4.72776" t="130.565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13035" x="-1.60017037295" y="-0.82722265625" z="-1.84685681633">
+        <neutronic p="-168.12" r="4.72801" t="130.646"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13036" x="-1.60017037295" y="-0.789040625" z="-1.84685681633">
+        <neutronic p="-168.878" r="4.72824" t="130.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13037" x="-1.60017037295" y="-0.75085859375" z="-1.84685681633">
+        <neutronic p="-169.638" r="4.72843" t="130.793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13038" x="-1.60017037295" y="-0.7126765625" z="-1.84685681633">
+        <neutronic p="-170.403" r="4.7286" t="130.86"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13039" x="-1.60017037295" y="-0.67449453125" z="-1.84685681633">
+        <neutronic p="-171.17" r="4.72874" t="130.922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13040" x="-1.60017037295" y="-0.6363125" z="-1.84685681633">
+        <neutronic p="-171.939" r="4.72885" t="130.978"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13041" x="-1.60017037295" y="-0.59813046875" z="-1.84685681633">
+        <neutronic p="-172.712" r="4.72893" t="131.03"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13042" x="-1.60017037295" y="-0.5599484375" z="-1.84685681633">
+        <neutronic p="-173.486" r="4.72898" t="131.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13043" x="-1.60017037295" y="-0.52176640625" z="-1.84685681633">
+        <neutronic p="-174.262" r="4.72901" t="131.117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13044" x="-1.60017037295" y="-0.483584375" z="-1.84685681633">
+        <neutronic p="-175.04" r="4.729" t="131.153"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13045" x="-1.60017037295" y="-0.44540234375" z="-1.84685681633">
+        <neutronic p="-175.819" r="4.72897" t="131.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13046" x="-1.60017037295" y="-0.4072203125" z="-1.84685681633">
+        <neutronic p="-176.599" r="4.72891" t="131.21"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13047" x="-1.60017037295" y="-0.36903828125" z="-1.84685681633">
+        <neutronic p="-177.38" r="4.72882" t="131.23"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13048" x="-1.60017037295" y="-0.33085625" z="-1.84685681633">
+        <neutronic p="-178.161" r="4.7287" t="131.245"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13049" x="-1.60017037295" y="-0.29267421875" z="-1.84685681633">
+        <neutronic p="-178.943" r="4.72855" t="131.255"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13050" x="-1.60017037295" y="-0.2544921875" z="-1.84685681633">
+        <neutronic p="-179.724" r="4.72838" t="131.26"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13070" x="-1.68456391863" y="-1.9345015625" z="-1.77021742352">
+        <neutronic p="-149.504" r="4.70977" t="124.463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13071" x="-1.68456391863" y="-1.89631953125" z="-1.77021742352">
+        <neutronic p="-150.078" r="4.71076" t="124.619"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13072" x="-1.68456391863" y="-1.8581375" z="-1.77021742352">
+        <neutronic p="-150.659" r="4.71172" t="124.774"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13073" x="-1.68456391863" y="-1.81995546875" z="-1.77021742352">
+        <neutronic p="-151.246" r="4.71265" t="124.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13074" x="-1.68456391863" y="-1.7817734375" z="-1.77021742352">
+        <neutronic p="-151.84" r="4.71356" t="125.078"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13075" x="-1.68456391863" y="-1.74359140625" z="-1.77021742352">
+        <neutronic p="-152.44" r="4.71445" t="125.228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13076" x="-1.68456391863" y="-1.705409375" z="-1.77021742352">
+        <neutronic p="-153.047" r="4.71532" t="125.375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13077" x="-1.68456391863" y="-1.66722734375" z="-1.77021742352">
+        <neutronic p="-153.66" r="4.71616" t="125.52"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13078" x="-1.68456391863" y="-1.6290453125" z="-1.77021742352">
+        <neutronic p="-154.279" r="4.71697" t="125.663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13079" x="-1.68456391863" y="-1.59086328125" z="-1.77021742352">
+        <neutronic p="-154.904" r="4.71776" t="125.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13080" x="-1.68456391863" y="-1.55268125" z="-1.77021742352">
+        <neutronic p="-155.536" r="4.71852" t="125.943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13081" x="-1.68456391863" y="-1.51449921875" z="-1.77021742352">
+        <neutronic p="-156.173" r="4.71926" t="126.079"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13082" x="-1.68456391863" y="-1.4763171875" z="-1.77021742352">
+        <neutronic p="-156.817" r="4.71998" t="126.212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13083" x="-1.68456391863" y="-1.43813515625" z="-1.77021742352">
+        <neutronic p="-157.467" r="4.72066" t="126.342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13084" x="-1.68456391863" y="-1.399953125" z="-1.77021742352">
+        <neutronic p="-158.122" r="4.72133" t="126.47"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13085" x="-1.68456391863" y="-1.36177109375" z="-1.77021742352">
+        <neutronic p="-158.783" r="4.72196" t="126.595"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13086" x="-1.68456391863" y="-1.3235890625" z="-1.77021742352">
+        <neutronic p="-159.45" r="4.72257" t="126.717"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13087" x="-1.68456391863" y="-1.28540703125" z="-1.77021742352">
+        <neutronic p="-160.123" r="4.72315" t="126.836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13088" x="-1.68456391863" y="-1.247225" z="-1.77021742352">
+        <neutronic p="-160.801" r="4.72371" t="126.951"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13089" x="-1.68456391863" y="-1.20904296875" z="-1.77021742352">
+        <neutronic p="-161.484" r="4.72424" t="127.063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13090" x="-1.68456391863" y="-1.1708609375" z="-1.77021742352">
+        <neutronic p="-162.172" r="4.72474" t="127.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13091" x="-1.68456391863" y="-1.13267890625" z="-1.77021742352">
+        <neutronic p="-162.865" r="4.72521" t="127.277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13092" x="-1.68456391863" y="-1.094496875" z="-1.77021742352">
+        <neutronic p="-163.563" r="4.72566" t="127.379"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13093" x="-1.68456391863" y="-1.05631484375" z="-1.77021742352">
+        <neutronic p="-164.266" r="4.72608" t="127.477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13094" x="-1.68456391863" y="-1.0181328125" z="-1.77021742352">
+        <neutronic p="-164.973" r="4.72647" t="127.571"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13095" x="-1.68456391863" y="-0.97995078125" z="-1.77021742352">
+        <neutronic p="-165.685" r="4.72684" t="127.661"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13096" x="-1.68456391863" y="-0.94176875" z="-1.77021742352">
+        <neutronic p="-166.401" r="4.72717" t="127.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13097" x="-1.68456391863" y="-0.90358671875" z="-1.77021742352">
+        <neutronic p="-167.12" r="4.72748" t="127.829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13098" x="-1.68456391863" y="-0.8654046875" z="-1.77021742352">
+        <neutronic p="-167.844" r="4.72776" t="127.907"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13099" x="-1.68456391863" y="-0.82722265625" z="-1.77021742352">
+        <neutronic p="-168.57" r="4.72801" t="127.98"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13100" x="-1.68456391863" y="-0.789040625" z="-1.77021742352">
+        <neutronic p="-169.301" r="4.72824" t="128.049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13101" x="-1.68456391863" y="-0.75085859375" z="-1.77021742352">
+        <neutronic p="-170.034" r="4.72843" t="128.114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13102" x="-1.68456391863" y="-0.7126765625" z="-1.77021742352">
+        <neutronic p="-170.77" r="4.7286" t="128.175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13103" x="-1.68456391863" y="-0.67449453125" z="-1.77021742352">
+        <neutronic p="-171.508" r="4.72874" t="128.231"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13104" x="-1.68456391863" y="-0.6363125" z="-1.77021742352">
+        <neutronic p="-172.249" r="4.72885" t="128.282"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13105" x="-1.68456391863" y="-0.59813046875" z="-1.77021742352">
+        <neutronic p="-172.993" r="4.72893" t="128.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13106" x="-1.68456391863" y="-0.5599484375" z="-1.77021742352">
+        <neutronic p="-173.738" r="4.72898" t="128.371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13107" x="-1.68456391863" y="-0.52176640625" z="-1.77021742352">
+        <neutronic p="-174.484" r="4.72901" t="128.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13108" x="-1.68456391863" y="-0.483584375" z="-1.77021742352">
+        <neutronic p="-175.232" r="4.729" t="128.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13109" x="-1.68456391863" y="-0.44540234375" z="-1.77021742352">
+        <neutronic p="-175.981" r="4.72897" t="128.469"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13110" x="-1.68456391863" y="-0.4072203125" z="-1.77021742352">
+        <neutronic p="-176.731" r="4.72891" t="128.493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13111" x="-1.68456391863" y="-0.36903828125" z="-1.77021742352">
+        <neutronic p="-177.482" r="4.72882" t="128.511"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13112" x="-1.68456391863" y="-0.33085625" z="-1.77021742352">
+        <neutronic p="-178.233" r="4.7287" t="128.525"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13113" x="-1.68456391863" y="-0.29267421875" z="-1.77021742352">
+        <neutronic p="-178.984" r="4.72855" t="128.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13114" x="-1.68456391863" y="-0.2544921875" z="-1.77021742352">
+        <neutronic p="-179.735" r="4.72838" t="128.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13134" x="-1.76529127615" y="-1.9345015625" z="-1.6897254312">
+        <neutronic p="-150.399" r="4.70977" t="122.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13135" x="-1.76529127615" y="-1.89631953125" z="-1.6897254312">
+        <neutronic p="-150.963" r="4.71076" t="122.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13136" x="-1.76529127615" y="-1.8581375" z="-1.6897254312">
+        <neutronic p="-151.533" r="4.71172" t="122.391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13137" x="-1.76529127615" y="-1.81995546875" z="-1.6897254312">
+        <neutronic p="-152.109" r="4.71265" t="122.531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13138" x="-1.76529127615" y="-1.7817734375" z="-1.6897254312">
+        <neutronic p="-152.691" r="4.71356" t="122.669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13139" x="-1.76529127615" y="-1.74359140625" z="-1.6897254312">
+        <neutronic p="-153.278" r="4.71445" t="122.805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13140" x="-1.76529127615" y="-1.705409375" z="-1.6897254312">
+        <neutronic p="-153.872" r="4.71532" t="122.94"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13141" x="-1.76529127615" y="-1.66722734375" z="-1.6897254312">
+        <neutronic p="-154.472" r="4.71616" t="123.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13142" x="-1.76529127615" y="-1.6290453125" z="-1.6897254312">
+        <neutronic p="-155.077" r="4.71697" t="123.203"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13143" x="-1.76529127615" y="-1.59086328125" z="-1.6897254312">
+        <neutronic p="-155.688" r="4.71776" t="123.331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13144" x="-1.76529127615" y="-1.55268125" z="-1.6897254312">
+        <neutronic p="-156.305" r="4.71852" t="123.457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13145" x="-1.76529127615" y="-1.51449921875" z="-1.6897254312">
+        <neutronic p="-156.927" r="4.71926" t="123.581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13146" x="-1.76529127615" y="-1.4763171875" z="-1.6897254312">
+        <neutronic p="-157.555" r="4.71998" t="123.703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13147" x="-1.76529127615" y="-1.43813515625" z="-1.6897254312">
+        <neutronic p="-158.188" r="4.72066" t="123.822"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13148" x="-1.76529127615" y="-1.399953125" z="-1.6897254312">
+        <neutronic p="-158.827" r="4.72133" t="123.938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13149" x="-1.76529127615" y="-1.36177109375" z="-1.6897254312">
+        <neutronic p="-159.471" r="4.72196" t="124.052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13150" x="-1.76529127615" y="-1.3235890625" z="-1.6897254312">
+        <neutronic p="-160.12" r="4.72257" t="124.163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13151" x="-1.76529127615" y="-1.28540703125" z="-1.6897254312">
+        <neutronic p="-160.774" r="4.72315" t="124.271"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13152" x="-1.76529127615" y="-1.247225" z="-1.6897254312">
+        <neutronic p="-161.433" r="4.72371" t="124.376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13153" x="-1.76529127615" y="-1.20904296875" z="-1.6897254312">
+        <neutronic p="-162.097" r="4.72424" t="124.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13154" x="-1.76529127615" y="-1.1708609375" z="-1.6897254312">
+        <neutronic p="-162.765" r="4.72474" t="124.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13155" x="-1.76529127615" y="-1.13267890625" z="-1.6897254312">
+        <neutronic p="-163.438" r="4.72521" t="124.672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13156" x="-1.76529127615" y="-1.094496875" z="-1.6897254312">
+        <neutronic p="-164.115" r="4.72566" t="124.765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13157" x="-1.76529127615" y="-1.05631484375" z="-1.6897254312">
+        <neutronic p="-164.797" r="4.72608" t="124.853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13158" x="-1.76529127615" y="-1.0181328125" z="-1.6897254312">
+        <neutronic p="-165.483" r="4.72647" t="124.939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13159" x="-1.76529127615" y="-0.97995078125" z="-1.6897254312">
+        <neutronic p="-166.172" r="4.72684" t="125.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13160" x="-1.76529127615" y="-0.94176875" z="-1.6897254312">
+        <neutronic p="-166.865" r="4.72717" t="125.099"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13161" x="-1.76529127615" y="-0.90358671875" z="-1.6897254312">
+        <neutronic p="-167.562" r="4.72748" t="125.173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13162" x="-1.76529127615" y="-0.8654046875" z="-1.6897254312">
+        <neutronic p="-168.262" r="4.72776" t="125.244"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13163" x="-1.76529127615" y="-0.82722265625" z="-1.6897254312">
+        <neutronic p="-168.965" r="4.72801" t="125.31"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13164" x="-1.76529127615" y="-0.789040625" z="-1.6897254312">
+        <neutronic p="-169.671" r="4.72824" t="125.373"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13165" x="-1.76529127615" y="-0.75085859375" z="-1.6897254312">
+        <neutronic p="-170.38" r="4.72843" t="125.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13166" x="-1.76529127615" y="-0.7126765625" z="-1.6897254312">
+        <neutronic p="-171.091" r="4.7286" t="125.487"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13167" x="-1.76529127615" y="-0.67449453125" z="-1.6897254312">
+        <neutronic p="-171.805" r="4.72874" t="125.538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13168" x="-1.76529127615" y="-0.6363125" z="-1.6897254312">
+        <neutronic p="-172.521" r="4.72885" t="125.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13169" x="-1.76529127615" y="-0.59813046875" z="-1.6897254312">
+        <neutronic p="-173.238" r="4.72893" t="125.627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13170" x="-1.76529127615" y="-0.5599484375" z="-1.6897254312">
+        <neutronic p="-173.958" r="4.72898" t="125.665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13171" x="-1.76529127615" y="-0.52176640625" z="-1.6897254312">
+        <neutronic p="-174.678" r="4.72901" t="125.699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13172" x="-1.76529127615" y="-0.483584375" z="-1.6897254312">
+        <neutronic p="-175.4" r="4.729" t="125.729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13173" x="-1.76529127615" y="-0.44540234375" z="-1.6897254312">
+        <neutronic p="-176.123" r="4.72897" t="125.754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13174" x="-1.76529127615" y="-0.4072203125" z="-1.6897254312">
+        <neutronic p="-176.847" r="4.72891" t="125.775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13175" x="-1.76529127615" y="-0.36903828125" z="-1.6897254312">
+        <neutronic p="-177.571" r="4.72882" t="125.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13176" x="-1.76529127615" y="-0.33085625" z="-1.6897254312">
+        <neutronic p="-178.295" r="4.7287" t="125.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13177" x="-1.76529127615" y="-0.29267421875" z="-1.6897254312">
+        <neutronic p="-179.02" r="4.72855" t="125.812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13178" x="-1.76529127615" y="-0.2544921875" z="-1.6897254312">
+        <neutronic p="-179.744" r="4.72838" t="125.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13198" x="-1.84217675514" y="-1.9345015625" z="-1.6055560175">
+        <neutronic p="-151.195" r="4.70977" t="119.731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13199" x="-1.84217675514" y="-1.89631953125" z="-1.6055560175">
+        <neutronic p="-151.749" r="4.71076" t="119.861"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13200" x="-1.84217675514" y="-1.8581375" z="-1.6055560175">
+        <neutronic p="-152.309" r="4.71172" t="119.99"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13201" x="-1.84217675514" y="-1.81995546875" z="-1.6055560175">
+        <neutronic p="-152.874" r="4.71265" t="120.117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13202" x="-1.84217675514" y="-1.7817734375" z="-1.6055560175">
+        <neutronic p="-153.445" r="4.71356" t="120.242"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13203" x="-1.84217675514" y="-1.74359140625" z="-1.6055560175">
+        <neutronic p="-154.021" r="4.71445" t="120.366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13204" x="-1.84217675514" y="-1.705409375" z="-1.6055560175">
+        <neutronic p="-154.603" r="4.71532" t="120.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13205" x="-1.84217675514" y="-1.66722734375" z="-1.6055560175">
+        <neutronic p="-155.191" r="4.71616" t="120.609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13206" x="-1.84217675514" y="-1.6290453125" z="-1.6055560175">
+        <neutronic p="-155.783" r="4.71697" t="120.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13207" x="-1.84217675514" y="-1.59086328125" z="-1.6055560175">
+        <neutronic p="-156.381" r="4.71776" t="120.844"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13208" x="-1.84217675514" y="-1.55268125" z="-1.6055560175">
+        <neutronic p="-156.985" r="4.71852" t="120.959"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13209" x="-1.84217675514" y="-1.51449921875" z="-1.6055560175">
+        <neutronic p="-157.593" r="4.71926" t="121.071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13210" x="-1.84217675514" y="-1.4763171875" z="-1.6055560175">
+        <neutronic p="-158.207" r="4.71998" t="121.181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13211" x="-1.84217675514" y="-1.43813515625" z="-1.6055560175">
+        <neutronic p="-158.825" r="4.72066" t="121.289"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13212" x="-1.84217675514" y="-1.399953125" z="-1.6055560175">
+        <neutronic p="-159.449" r="4.72133" t="121.395"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13213" x="-1.84217675514" y="-1.36177109375" z="-1.6055560175">
+        <neutronic p="-160.077" r="4.72196" t="121.498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13214" x="-1.84217675514" y="-1.3235890625" z="-1.6055560175">
+        <neutronic p="-160.71" r="4.72257" t="121.598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13215" x="-1.84217675514" y="-1.28540703125" z="-1.6055560175">
+        <neutronic p="-161.347" r="4.72315" t="121.696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13216" x="-1.84217675514" y="-1.247225" z="-1.6055560175">
+        <neutronic p="-161.99" r="4.72371" t="121.791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13217" x="-1.84217675514" y="-1.20904296875" z="-1.6055560175">
+        <neutronic p="-162.636" r="4.72424" t="121.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13218" x="-1.84217675514" y="-1.1708609375" z="-1.6055560175">
+        <neutronic p="-163.287" r="4.72474" t="121.973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13219" x="-1.84217675514" y="-1.13267890625" z="-1.6055560175">
+        <neutronic p="-163.942" r="4.72521" t="122.06"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13220" x="-1.84217675514" y="-1.094496875" z="-1.6055560175">
+        <neutronic p="-164.6" r="4.72566" t="122.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13221" x="-1.84217675514" y="-1.05631484375" z="-1.6055560175">
+        <neutronic p="-165.263" r="4.72608" t="122.224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13222" x="-1.84217675514" y="-1.0181328125" z="-1.6055560175">
+        <neutronic p="-165.929" r="4.72647" t="122.301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13223" x="-1.84217675514" y="-0.97995078125" z="-1.6055560175">
+        <neutronic p="-166.599" r="4.72684" t="122.375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13224" x="-1.84217675514" y="-0.94176875" z="-1.6055560175">
+        <neutronic p="-167.273" r="4.72717" t="122.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13225" x="-1.84217675514" y="-0.90358671875" z="-1.6055560175">
+        <neutronic p="-167.949" r="4.72748" t="122.513"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13226" x="-1.84217675514" y="-0.8654046875" z="-1.6055560175">
+        <neutronic p="-168.628" r="4.72776" t="122.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13227" x="-1.84217675514" y="-0.82722265625" z="-1.6055560175">
+        <neutronic p="-169.311" r="4.72801" t="122.637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13228" x="-1.84217675514" y="-0.789040625" z="-1.6055560175">
+        <neutronic p="-169.996" r="4.72824" t="122.694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13229" x="-1.84217675514" y="-0.75085859375" z="-1.6055560175">
+        <neutronic p="-170.683" r="4.72843" t="122.747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13230" x="-1.84217675514" y="-0.7126765625" z="-1.6055560175">
+        <neutronic p="-171.373" r="4.7286" t="122.797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13231" x="-1.84217675514" y="-0.67449453125" z="-1.6055560175">
+        <neutronic p="-172.064" r="4.72874" t="122.843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13232" x="-1.84217675514" y="-0.6363125" z="-1.6055560175">
+        <neutronic p="-172.758" r="4.72885" t="122.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13233" x="-1.84217675514" y="-0.59813046875" z="-1.6055560175">
+        <neutronic p="-173.453" r="4.72893" t="122.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13234" x="-1.84217675514" y="-0.5599484375" z="-1.6055560175">
+        <neutronic p="-174.15" r="4.72898" t="122.958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13235" x="-1.84217675514" y="-0.52176640625" z="-1.6055560175">
+        <neutronic p="-174.848" r="4.72901" t="122.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13236" x="-1.84217675514" y="-0.483584375" z="-1.6055560175">
+        <neutronic p="-175.547" r="4.729" t="123.015"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13237" x="-1.84217675514" y="-0.44540234375" z="-1.6055560175">
+        <neutronic p="-176.247" r="4.72897" t="123.038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13238" x="-1.84217675514" y="-0.4072203125" z="-1.6055560175">
+        <neutronic p="-176.948" r="4.72891" t="123.057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13239" x="-1.84217675514" y="-0.36903828125" z="-1.6055560175">
+        <neutronic p="-177.649" r="4.72882" t="123.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13240" x="-1.84217675514" y="-0.33085625" z="-1.6055560175">
+        <neutronic p="-178.35" r="4.7287" t="123.084"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13241" x="-1.84217675514" y="-0.29267421875" z="-1.6055560175">
+        <neutronic p="-179.051" r="4.72855" t="123.091"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13242" x="-1.84217675514" y="-0.2544921875" z="-1.6055560175">
+        <neutronic p="-179.752" r="4.72838" t="123.094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13262" x="-1.91505302645" y="-1.9345015625" z="-1.5178923639">
+        <neutronic p="-151.9" r="4.70977" t="117.338"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13263" x="-1.91505302645" y="-1.89631953125" z="-1.5178923639">
+        <neutronic p="-152.445" r="4.71076" t="117.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13264" x="-1.91505302645" y="-1.8581375" z="-1.5178923639">
+        <neutronic p="-152.996" r="4.71172" t="117.572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13265" x="-1.91505302645" y="-1.81995546875" z="-1.5178923639">
+        <neutronic p="-153.551" r="4.71265" t="117.687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13266" x="-1.91505302645" y="-1.7817734375" z="-1.5178923639">
+        <neutronic p="-154.112" r="4.71356" t="117.8"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13267" x="-1.91505302645" y="-1.74359140625" z="-1.5178923639">
+        <neutronic p="-154.678" r="4.71445" t="117.912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13268" x="-1.91505302645" y="-1.705409375" z="-1.5178923639">
+        <neutronic p="-155.25" r="4.71532" t="118.023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13269" x="-1.91505302645" y="-1.66722734375" z="-1.5178923639">
+        <neutronic p="-155.826" r="4.71616" t="118.132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13270" x="-1.91505302645" y="-1.6290453125" z="-1.5178923639">
+        <neutronic p="-156.407" r="4.71697" t="118.239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13271" x="-1.91505302645" y="-1.59086328125" z="-1.5178923639">
+        <neutronic p="-156.993" r="4.71776" t="118.344"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13272" x="-1.91505302645" y="-1.55268125" z="-1.5178923639">
+        <neutronic p="-157.584" r="4.71852" t="118.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13273" x="-1.91505302645" y="-1.51449921875" z="-1.5178923639">
+        <neutronic p="-158.18" r="4.71926" t="118.549"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13274" x="-1.91505302645" y="-1.4763171875" z="-1.5178923639">
+        <neutronic p="-158.781" r="4.71998" t="118.649"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13275" x="-1.91505302645" y="-1.43813515625" z="-1.5178923639">
+        <neutronic p="-159.386" r="4.72066" t="118.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13276" x="-1.91505302645" y="-1.399953125" z="-1.5178923639">
+        <neutronic p="-159.996" r="4.72133" t="118.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13277" x="-1.91505302645" y="-1.36177109375" z="-1.5178923639">
+        <neutronic p="-160.61" r="4.72196" t="118.935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13278" x="-1.91505302645" y="-1.3235890625" z="-1.5178923639">
+        <neutronic p="-161.229" r="4.72257" t="119.025"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13279" x="-1.91505302645" y="-1.28540703125" z="-1.5178923639">
+        <neutronic p="-161.852" r="4.72315" t="119.114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13280" x="-1.91505302645" y="-1.247225" z="-1.5178923639">
+        <neutronic p="-162.479" r="4.72371" t="119.199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13281" x="-1.91505302645" y="-1.20904296875" z="-1.5178923639">
+        <neutronic p="-163.11" r="4.72424" t="119.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13282" x="-1.91505302645" y="-1.1708609375" z="-1.5178923639">
+        <neutronic p="-163.745" r="4.72474" t="119.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13283" x="-1.91505302645" y="-1.13267890625" z="-1.5178923639">
+        <neutronic p="-164.384" r="4.72521" t="119.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13284" x="-1.91505302645" y="-1.094496875" z="-1.5178923639">
+        <neutronic p="-165.026" r="4.72566" t="119.517"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13285" x="-1.91505302645" y="-1.05631484375" z="-1.5178923639">
+        <neutronic p="-165.672" r="4.72608" t="119.589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13286" x="-1.91505302645" y="-1.0181328125" z="-1.5178923639">
+        <neutronic p="-166.321" r="4.72647" t="119.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13287" x="-1.91505302645" y="-0.97995078125" z="-1.5178923639">
+        <neutronic p="-166.974" r="4.72684" t="119.725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13288" x="-1.91505302645" y="-0.94176875" z="-1.5178923639">
+        <neutronic p="-167.63" r="4.72717" t="119.789"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13289" x="-1.91505302645" y="-0.90358671875" z="-1.5178923639">
+        <neutronic p="-168.288" r="4.72748" t="119.85"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13290" x="-1.91505302645" y="-0.8654046875" z="-1.5178923639">
+        <neutronic p="-168.949" r="4.72776" t="119.907"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13291" x="-1.91505302645" y="-0.82722265625" z="-1.5178923639">
+        <neutronic p="-169.613" r="4.72801" t="119.961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13292" x="-1.91505302645" y="-0.789040625" z="-1.5178923639">
+        <neutronic p="-170.28" r="4.72824" t="120.013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13293" x="-1.91505302645" y="-0.75085859375" z="-1.5178923639">
+        <neutronic p="-170.948" r="4.72843" t="120.06"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13294" x="-1.91505302645" y="-0.7126765625" z="-1.5178923639">
+        <neutronic p="-171.619" r="4.7286" t="120.105"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13295" x="-1.91505302645" y="-0.67449453125" z="-1.5178923639">
+        <neutronic p="-172.291" r="4.72874" t="120.146"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13296" x="-1.91505302645" y="-0.6363125" z="-1.5178923639">
+        <neutronic p="-172.966" r="4.72885" t="120.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13297" x="-1.91505302645" y="-0.59813046875" z="-1.5178923639">
+        <neutronic p="-173.641" r="4.72893" t="120.219"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13298" x="-1.91505302645" y="-0.5599484375" z="-1.5178923639">
+        <neutronic p="-174.318" r="4.72898" t="120.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13299" x="-1.91505302645" y="-0.52176640625" z="-1.5178923639">
+        <neutronic p="-174.997" r="4.72901" t="120.277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13300" x="-1.91505302645" y="-0.483584375" z="-1.5178923639">
+        <neutronic p="-175.676" r="4.729" t="120.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13301" x="-1.91505302645" y="-0.44540234375" z="-1.5178923639">
+        <neutronic p="-176.356" r="4.72897" t="120.322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13302" x="-1.91505302645" y="-0.4072203125" z="-1.5178923639">
+        <neutronic p="-177.036" r="4.72891" t="120.339"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13303" x="-1.91505302645" y="-0.36903828125" z="-1.5178923639">
+        <neutronic p="-177.717" r="4.72882" t="120.353"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13304" x="-1.91505302645" y="-0.33085625" z="-1.5178923639">
+        <neutronic p="-178.398" r="4.7287" t="120.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13305" x="-1.91505302645" y="-0.29267421875" z="-1.5178923639">
+        <neutronic p="-179.079" r="4.72855" t="120.37"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13306" x="-1.91505302645" y="-0.2544921875" z="-1.5178923639">
+        <neutronic p="-179.759" r="4.72838" t="120.373"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13326" x="-1.98376148635" y="-1.9345015625" z="-1.42692525655">
+        <neutronic p="-152.523" r="4.70977" t="114.93"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13327" x="-1.98376148635" y="-1.89631953125" z="-1.42692525655">
+        <neutronic p="-153.06" r="4.71076" t="115.036"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13328" x="-1.98376148635" y="-1.8581375" z="-1.42692525655">
+        <neutronic p="-153.602" r="4.71172" t="115.14"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13329" x="-1.98376148635" y="-1.81995546875" z="-1.42692525655">
+        <neutronic p="-154.149" r="4.71265" t="115.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13330" x="-1.98376148635" y="-1.7817734375" z="-1.42692525655">
+        <neutronic p="-154.701" r="4.71356" t="115.345"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13331" x="-1.98376148635" y="-1.74359140625" z="-1.42692525655">
+        <neutronic p="-155.257" r="4.71445" t="115.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13332" x="-1.98376148635" y="-1.705409375" z="-1.42692525655">
+        <neutronic p="-155.819" r="4.71532" t="115.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13333" x="-1.98376148635" y="-1.66722734375" z="-1.42692525655">
+        <neutronic p="-156.385" r="4.71616" t="115.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13334" x="-1.98376148635" y="-1.6290453125" z="-1.42692525655">
+        <neutronic p="-156.956" r="4.71697" t="115.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13335" x="-1.98376148635" y="-1.59086328125" z="-1.42692525655">
+        <neutronic p="-157.531" r="4.71776" t="115.834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13336" x="-1.98376148635" y="-1.55268125" z="-1.42692525655">
+        <neutronic p="-158.112" r="4.71852" t="115.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13337" x="-1.98376148635" y="-1.51449921875" z="-1.42692525655">
+        <neutronic p="-158.696" r="4.71926" t="116.018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13338" x="-1.98376148635" y="-1.4763171875" z="-1.42692525655">
+        <neutronic p="-159.285" r="4.71998" t="116.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13339" x="-1.98376148635" y="-1.43813515625" z="-1.42692525655">
+        <neutronic p="-159.879" r="4.72066" t="116.195"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13340" x="-1.98376148635" y="-1.399953125" z="-1.42692525655">
+        <neutronic p="-160.476" r="4.72133" t="116.28"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13341" x="-1.98376148635" y="-1.36177109375" z="-1.42692525655">
+        <neutronic p="-161.078" r="4.72196" t="116.363"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13342" x="-1.98376148635" y="-1.3235890625" z="-1.42692525655">
+        <neutronic p="-161.684" r="4.72257" t="116.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13343" x="-1.98376148635" y="-1.28540703125" z="-1.42692525655">
+        <neutronic p="-162.294" r="4.72315" t="116.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13344" x="-1.98376148635" y="-1.247225" z="-1.42692525655">
+        <neutronic p="-162.908" r="4.72371" t="116.601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13345" x="-1.98376148635" y="-1.20904296875" z="-1.42692525655">
+        <neutronic p="-163.525" r="4.72424" t="116.675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13346" x="-1.98376148635" y="-1.1708609375" z="-1.42692525655">
+        <neutronic p="-164.146" r="4.72474" t="116.748"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13347" x="-1.98376148635" y="-1.13267890625" z="-1.42692525655">
+        <neutronic p="-164.771" r="4.72521" t="116.818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13348" x="-1.98376148635" y="-1.094496875" z="-1.42692525655">
+        <neutronic p="-165.399" r="4.72566" t="116.885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13349" x="-1.98376148635" y="-1.05631484375" z="-1.42692525655">
+        <neutronic p="-166.03" r="4.72608" t="116.95"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13350" x="-1.98376148635" y="-1.0181328125" z="-1.42692525655">
+        <neutronic p="-166.664" r="4.72647" t="117.012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13351" x="-1.98376148635" y="-0.97995078125" z="-1.42692525655">
+        <neutronic p="-167.302" r="4.72684" t="117.072"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13352" x="-1.98376148635" y="-0.94176875" z="-1.42692525655">
+        <neutronic p="-167.942" r="4.72717" t="117.129"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13353" x="-1.98376148635" y="-0.90358671875" z="-1.42692525655">
+        <neutronic p="-168.585" r="4.72748" t="117.183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13354" x="-1.98376148635" y="-0.8654046875" z="-1.42692525655">
+        <neutronic p="-169.23" r="4.72776" t="117.234"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13355" x="-1.98376148635" y="-0.82722265625" z="-1.42692525655">
+        <neutronic p="-169.878" r="4.72801" t="117.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13356" x="-1.98376148635" y="-0.789040625" z="-1.42692525655">
+        <neutronic p="-170.528" r="4.72824" t="117.329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13357" x="-1.98376148635" y="-0.75085859375" z="-1.42692525655">
+        <neutronic p="-171.18" r="4.72843" t="117.372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13358" x="-1.98376148635" y="-0.7126765625" z="-1.42692525655">
+        <neutronic p="-171.834" r="4.7286" t="117.412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13359" x="-1.98376148635" y="-0.67449453125" z="-1.42692525655">
+        <neutronic p="-172.49" r="4.72874" t="117.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13360" x="-1.98376148635" y="-0.6363125" z="-1.42692525655">
+        <neutronic p="-173.147" r="4.72885" t="117.482"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13361" x="-1.98376148635" y="-0.59813046875" z="-1.42692525655">
+        <neutronic p="-173.805" r="4.72893" t="117.513"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13362" x="-1.98376148635" y="-0.5599484375" z="-1.42692525655">
+        <neutronic p="-174.465" r="4.72898" t="117.541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13363" x="-1.98376148635" y="-0.52176640625" z="-1.42692525655">
+        <neutronic p="-175.126" r="4.72901" t="117.566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13364" x="-1.98376148635" y="-0.483584375" z="-1.42692525655">
+        <neutronic p="-175.788" r="4.729" t="117.587"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13365" x="-1.98376148635" y="-0.44540234375" z="-1.42692525655">
+        <neutronic p="-176.45" r="4.72897" t="117.606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13366" x="-1.98376148635" y="-0.4072203125" z="-1.42692525655">
+        <neutronic p="-177.113" r="4.72891" t="117.621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13367" x="-1.98376148635" y="-0.36903828125" z="-1.42692525655">
+        <neutronic p="-177.776" r="4.72882" t="117.633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13368" x="-1.98376148635" y="-0.33085625" z="-1.42692525655">
+        <neutronic p="-178.439" r="4.7287" t="117.642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13369" x="-1.98376148635" y="-0.29267421875" z="-1.42692525655">
+        <neutronic p="-179.103" r="4.72855" t="117.648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13370" x="-1.98376148635" y="-0.2544921875" z="-1.42692525655">
+        <neutronic p="-179.766" r="4.72838" t="117.651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13390" x="-2.04815260169" y="-1.9345015625" z="-1.33285267103">
+        <neutronic p="-153.069" r="4.70977" t="112.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13391" x="-2.04815260169" y="-1.89631953125" z="-1.33285267103">
+        <neutronic p="-153.599" r="4.71076" t="112.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13392" x="-2.04815260169" y="-1.8581375" z="-1.33285267103">
+        <neutronic p="-154.133" r="4.71172" t="112.696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13393" x="-2.04815260169" y="-1.81995546875" z="-1.33285267103">
+        <neutronic p="-154.673" r="4.71265" t="112.788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13394" x="-2.04815260169" y="-1.7817734375" z="-1.33285267103">
+        <neutronic p="-155.216" r="4.71356" t="112.879"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13395" x="-2.04815260169" y="-1.74359140625" z="-1.33285267103">
+        <neutronic p="-155.765" r="4.71445" t="112.969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13396" x="-2.04815260169" y="-1.705409375" z="-1.33285267103">
+        <neutronic p="-156.317" r="4.71532" t="113.057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13397" x="-2.04815260169" y="-1.66722734375" z="-1.33285267103">
+        <neutronic p="-156.875" r="4.71616" t="113.144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13398" x="-2.04815260169" y="-1.6290453125" z="-1.33285267103">
+        <neutronic p="-157.436" r="4.71697" t="113.23"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13399" x="-2.04815260169" y="-1.59086328125" z="-1.33285267103">
+        <neutronic p="-158.002" r="4.71776" t="113.314"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13400" x="-2.04815260169" y="-1.55268125" z="-1.33285267103">
+        <neutronic p="-158.573" r="4.71852" t="113.397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13401" x="-2.04815260169" y="-1.51449921875" z="-1.33285267103">
+        <neutronic p="-159.148" r="4.71926" t="113.478"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13402" x="-2.04815260169" y="-1.4763171875" z="-1.33285267103">
+        <neutronic p="-159.726" r="4.71998" t="113.558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13403" x="-2.04815260169" y="-1.43813515625" z="-1.33285267103">
+        <neutronic p="-160.309" r="4.72066" t="113.635"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13404" x="-2.04815260169" y="-1.399953125" z="-1.33285267103">
+        <neutronic p="-160.896" r="4.72133" t="113.711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13405" x="-2.04815260169" y="-1.36177109375" z="-1.33285267103">
+        <neutronic p="-161.487" r="4.72196" t="113.785"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13406" x="-2.04815260169" y="-1.3235890625" z="-1.33285267103">
+        <neutronic p="-162.081" r="4.72257" t="113.858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13407" x="-2.04815260169" y="-1.28540703125" z="-1.33285267103">
+        <neutronic p="-162.68" r="4.72315" t="113.928"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13408" x="-2.04815260169" y="-1.247225" z="-1.33285267103">
+        <neutronic p="-163.282" r="4.72371" t="113.996"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13409" x="-2.04815260169" y="-1.20904296875" z="-1.33285267103">
+        <neutronic p="-163.887" r="4.72424" t="114.063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13410" x="-2.04815260169" y="-1.1708609375" z="-1.33285267103">
+        <neutronic p="-164.496" r="4.72474" t="114.127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13411" x="-2.04815260169" y="-1.13267890625" z="-1.33285267103">
+        <neutronic p="-165.108" r="4.72521" t="114.189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13412" x="-2.04815260169" y="-1.094496875" z="-1.33285267103">
+        <neutronic p="-165.723" r="4.72566" t="114.249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13413" x="-2.04815260169" y="-1.05631484375" z="-1.33285267103">
+        <neutronic p="-166.342" r="4.72608" t="114.307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13414" x="-2.04815260169" y="-1.0181328125" z="-1.33285267103">
+        <neutronic p="-166.963" r="4.72647" t="114.362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13415" x="-2.04815260169" y="-0.97995078125" z="-1.33285267103">
+        <neutronic p="-167.587" r="4.72684" t="114.415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13416" x="-2.04815260169" y="-0.94176875" z="-1.33285267103">
+        <neutronic p="-168.214" r="4.72717" t="114.466"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13417" x="-2.04815260169" y="-0.90358671875" z="-1.33285267103">
+        <neutronic p="-168.843" r="4.72748" t="114.514"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13418" x="-2.04815260169" y="-0.8654046875" z="-1.33285267103">
+        <neutronic p="-169.474" r="4.72776" t="114.559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13419" x="-2.04815260169" y="-0.82722265625" z="-1.33285267103">
+        <neutronic p="-170.108" r="4.72801" t="114.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13420" x="-2.04815260169" y="-0.789040625" z="-1.33285267103">
+        <neutronic p="-170.744" r="4.72824" t="114.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13421" x="-2.04815260169" y="-0.75085859375" z="-1.33285267103">
+        <neutronic p="-171.381" r="4.72843" t="114.681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13422" x="-2.04815260169" y="-0.7126765625" z="-1.33285267103">
+        <neutronic p="-172.021" r="4.7286" t="114.717"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13423" x="-2.04815260169" y="-0.67449453125" z="-1.33285267103">
+        <neutronic p="-172.662" r="4.72874" t="114.749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13424" x="-2.04815260169" y="-0.6363125" z="-1.33285267103">
+        <neutronic p="-173.304" r="4.72885" t="114.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13425" x="-2.04815260169" y="-0.59813046875" z="-1.33285267103">
+        <neutronic p="-173.948" r="4.72893" t="114.807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13426" x="-2.04815260169" y="-0.5599484375" z="-1.33285267103">
+        <neutronic p="-174.593" r="4.72898" t="114.832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13427" x="-2.04815260169" y="-0.52176640625" z="-1.33285267103">
+        <neutronic p="-175.239" r="4.72901" t="114.853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13428" x="-2.04815260169" y="-0.483584375" z="-1.33285267103">
+        <neutronic p="-175.885" r="4.729" t="114.873"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13429" x="-2.04815260169" y="-0.44540234375" z="-1.33285267103">
+        <neutronic p="-176.532" r="4.72897" t="114.889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13430" x="-2.04815260169" y="-0.4072203125" z="-1.33285267103">
+        <neutronic p="-177.18" r="4.72891" t="114.903"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13431" x="-2.04815260169" y="-0.36903828125" z="-1.33285267103">
+        <neutronic p="-177.828" r="4.72882" t="114.913"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13432" x="-2.04815260169" y="-0.33085625" z="-1.33285267103">
+        <neutronic p="-178.476" r="4.7287" t="114.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13433" x="-2.04815260169" y="-0.29267421875" z="-1.33285267103">
+        <neutronic p="-179.124" r="4.72855" t="114.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13434" x="-2.04815260169" y="-0.2544921875" z="-1.33285267103">
+        <neutronic p="-179.771" r="4.72838" t="114.929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13454" x="-2.10808623536" y="-1.9345015625" z="-1.23587934152">
+        <neutronic p="-153.546" r="4.70977" t="110.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13455" x="-2.10808623536" y="-1.89631953125" z="-1.23587934152">
+        <neutronic p="-154.069" r="4.71076" t="110.16"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13456" x="-2.10808623536" y="-1.8581375" z="-1.23587934152">
+        <neutronic p="-154.597" r="4.71172" t="110.242"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13457" x="-2.10808623536" y="-1.81995546875" z="-1.23587934152">
+        <neutronic p="-155.129" r="4.71265" t="110.324"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13458" x="-2.10808623536" y="-1.7817734375" z="-1.23587934152">
+        <neutronic p="-155.665" r="4.71356" t="110.404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13459" x="-2.10808623536" y="-1.74359140625" z="-1.23587934152">
+        <neutronic p="-156.206" r="4.71445" t="110.483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13460" x="-2.10808623536" y="-1.705409375" z="-1.23587934152">
+        <neutronic p="-156.751" r="4.71532" t="110.561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13461" x="-2.10808623536" y="-1.66722734375" z="-1.23587934152">
+        <neutronic p="-157.301" r="4.71616" t="110.637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13462" x="-2.10808623536" y="-1.6290453125" z="-1.23587934152">
+        <neutronic p="-157.854" r="4.71697" t="110.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13463" x="-2.10808623536" y="-1.59086328125" z="-1.23587934152">
+        <neutronic p="-158.412" r="4.71776" t="110.787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13464" x="-2.10808623536" y="-1.55268125" z="-1.23587934152">
+        <neutronic p="-158.974" r="4.71852" t="110.86"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13465" x="-2.10808623536" y="-1.51449921875" z="-1.23587934152">
+        <neutronic p="-159.54" r="4.71926" t="110.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13466" x="-2.10808623536" y="-1.4763171875" z="-1.23587934152">
+        <neutronic p="-160.109" r="4.71998" t="111.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13467" x="-2.10808623536" y="-1.43813515625" z="-1.23587934152">
+        <neutronic p="-160.683" r="4.72066" t="111.07"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13468" x="-2.10808623536" y="-1.399953125" z="-1.23587934152">
+        <neutronic p="-161.26" r="4.72133" t="111.136"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13469" x="-2.10808623536" y="-1.36177109375" z="-1.23587934152">
+        <neutronic p="-161.842" r="4.72196" t="111.202"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13470" x="-2.10808623536" y="-1.3235890625" z="-1.23587934152">
+        <neutronic p="-162.426" r="4.72257" t="111.265"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13471" x="-2.10808623536" y="-1.28540703125" z="-1.23587934152">
+        <neutronic p="-163.014" r="4.72315" t="111.327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13472" x="-2.10808623536" y="-1.247225" z="-1.23587934152">
+        <neutronic p="-163.606" r="4.72371" t="111.387"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13473" x="-2.10808623536" y="-1.20904296875" z="-1.23587934152">
+        <neutronic p="-164.201" r="4.72424" t="111.446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13474" x="-2.10808623536" y="-1.1708609375" z="-1.23587934152">
+        <neutronic p="-164.799" r="4.72474" t="111.502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13475" x="-2.10808623536" y="-1.13267890625" z="-1.23587934152">
+        <neutronic p="-165.4" r="4.72521" t="111.557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13476" x="-2.10808623536" y="-1.094496875" z="-1.23587934152">
+        <neutronic p="-166.005" r="4.72566" t="111.61"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13477" x="-2.10808623536" y="-1.05631484375" z="-1.23587934152">
+        <neutronic p="-166.612" r="4.72608" t="111.66"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13478" x="-2.10808623536" y="-1.0181328125" z="-1.23587934152">
+        <neutronic p="-167.222" r="4.72647" t="111.709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13479" x="-2.10808623536" y="-0.97995078125" z="-1.23587934152">
+        <neutronic p="-167.834" r="4.72684" t="111.756"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13480" x="-2.10808623536" y="-0.94176875" z="-1.23587934152">
+        <neutronic p="-168.449" r="4.72717" t="111.8"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13481" x="-2.10808623536" y="-0.90358671875" z="-1.23587934152">
+        <neutronic p="-169.066" r="4.72748" t="111.842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13482" x="-2.10808623536" y="-0.8654046875" z="-1.23587934152">
+        <neutronic p="-169.685" r="4.72776" t="111.883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13483" x="-2.10808623536" y="-0.82722265625" z="-1.23587934152">
+        <neutronic p="-170.307" r="4.72801" t="111.92"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13484" x="-2.10808623536" y="-0.789040625" z="-1.23587934152">
+        <neutronic p="-170.93" r="4.72824" t="111.956"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13485" x="-2.10808623536" y="-0.75085859375" z="-1.23587934152">
+        <neutronic p="-171.556" r="4.72843" t="111.99"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13486" x="-2.10808623536" y="-0.7126765625" z="-1.23587934152">
+        <neutronic p="-172.182" r="4.7286" t="112.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13487" x="-2.10808623536" y="-0.67449453125" z="-1.23587934152">
+        <neutronic p="-172.811" r="4.72874" t="112.049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13488" x="-2.10808623536" y="-0.6363125" z="-1.23587934152">
+        <neutronic p="-173.44" r="4.72885" t="112.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13489" x="-2.10808623536" y="-0.59813046875" z="-1.23587934152">
+        <neutronic p="-174.071" r="4.72893" t="112.1"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13490" x="-2.10808623536" y="-0.5599484375" z="-1.23587934152">
+        <neutronic p="-174.703" r="4.72898" t="112.122"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13491" x="-2.10808623536" y="-0.52176640625" z="-1.23587934152">
+        <neutronic p="-175.336" r="4.72901" t="112.141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13492" x="-2.10808623536" y="-0.483584375" z="-1.23587934152">
+        <neutronic p="-175.969" r="4.729" t="112.158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13493" x="-2.10808623536" y="-0.44540234375" z="-1.23587934152">
+        <neutronic p="-176.603" r="4.72897" t="112.172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13494" x="-2.10808623536" y="-0.4072203125" z="-1.23587934152">
+        <neutronic p="-177.238" r="4.72891" t="112.184"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13495" x="-2.10808623536" y="-0.36903828125" z="-1.23587934152">
+        <neutronic p="-177.872" r="4.72882" t="112.193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13496" x="-2.10808623536" y="-0.33085625" z="-1.23587934152">
+        <neutronic p="-178.507" r="4.7287" t="112.2"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13497" x="-2.10808623536" y="-0.29267421875" z="-1.23587934152">
+        <neutronic p="-179.141" r="4.72855" t="112.205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13498" x="-2.10808623536" y="-0.2544921875" z="-1.23587934152">
+        <neutronic p="-179.776" r="4.72838" t="112.207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13518" x="-2.16343195123" y="-1.9345015625" z="-1.13621631519">
+        <neutronic p="-153.957" r="4.70977" t="107.636"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13519" x="-2.16343195123" y="-1.89631953125" z="-1.13621631519">
+        <neutronic p="-154.474" r="4.71076" t="107.708"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13520" x="-2.16343195123" y="-1.8581375" z="-1.13621631519">
+        <neutronic p="-154.996" r="4.71172" t="107.78"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13521" x="-2.16343195123" y="-1.81995546875" z="-1.13621631519">
+        <neutronic p="-155.522" r="4.71265" t="107.85"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13522" x="-2.16343195123" y="-1.7817734375" z="-1.13621631519">
+        <neutronic p="-156.052" r="4.71356" t="107.92"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13523" x="-2.16343195123" y="-1.74359140625" z="-1.13621631519">
+        <neutronic p="-156.586" r="4.71445" t="107.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13524" x="-2.16343195123" y="-1.705409375" z="-1.13621631519">
+        <neutronic p="-157.125" r="4.71532" t="108.056"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13525" x="-2.16343195123" y="-1.66722734375" z="-1.13621631519">
+        <neutronic p="-157.667" r="4.71616" t="108.123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13526" x="-2.16343195123" y="-1.6290453125" z="-1.13621631519">
+        <neutronic p="-158.214" r="4.71697" t="108.188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13527" x="-2.16343195123" y="-1.59086328125" z="-1.13621631519">
+        <neutronic p="-158.764" r="4.71776" t="108.253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13528" x="-2.16343195123" y="-1.55268125" z="-1.13621631519">
+        <neutronic p="-159.319" r="4.71852" t="108.316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13529" x="-2.16343195123" y="-1.51449921875" z="-1.13621631519">
+        <neutronic p="-159.877" r="4.71926" t="108.378"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13530" x="-2.16343195123" y="-1.4763171875" z="-1.13621631519">
+        <neutronic p="-160.439" r="4.71998" t="108.439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13531" x="-2.16343195123" y="-1.43813515625" z="-1.13621631519">
+        <neutronic p="-161.004" r="4.72066" t="108.498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13532" x="-2.16343195123" y="-1.399953125" z="-1.13621631519">
+        <neutronic p="-161.574" r="4.72133" t="108.556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13533" x="-2.16343195123" y="-1.36177109375" z="-1.13621631519">
+        <neutronic p="-162.146" r="4.72196" t="108.613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13534" x="-2.16343195123" y="-1.3235890625" z="-1.13621631519">
+        <neutronic p="-162.722" r="4.72257" t="108.668"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13535" x="-2.16343195123" y="-1.28540703125" z="-1.13621631519">
+        <neutronic p="-163.302" r="4.72315" t="108.722"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13536" x="-2.16343195123" y="-1.247225" z="-1.13621631519">
+        <neutronic p="-163.885" r="4.72371" t="108.774"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13537" x="-2.16343195123" y="-1.20904296875" z="-1.13621631519">
+        <neutronic p="-164.471" r="4.72424" t="108.825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13538" x="-2.16343195123" y="-1.1708609375" z="-1.13621631519">
+        <neutronic p="-165.059" r="4.72474" t="108.874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13539" x="-2.16343195123" y="-1.13267890625" z="-1.13621631519">
+        <neutronic p="-165.651" r="4.72521" t="108.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13540" x="-2.16343195123" y="-1.094496875" z="-1.13621631519">
+        <neutronic p="-166.246" r="4.72566" t="108.967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13541" x="-2.16343195123" y="-1.05631484375" z="-1.13621631519">
+        <neutronic p="-166.843" r="4.72608" t="109.011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13542" x="-2.16343195123" y="-1.0181328125" z="-1.13621631519">
+        <neutronic p="-167.443" r="4.72647" t="109.053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13543" x="-2.16343195123" y="-0.97995078125" z="-1.13621631519">
+        <neutronic p="-168.046" r="4.72684" t="109.094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13544" x="-2.16343195123" y="-0.94176875" z="-1.13621631519">
+        <neutronic p="-168.651" r="4.72717" t="109.132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13545" x="-2.16343195123" y="-0.90358671875" z="-1.13621631519">
+        <neutronic p="-169.257" r="4.72748" t="109.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13546" x="-2.16343195123" y="-0.8654046875" z="-1.13621631519">
+        <neutronic p="-169.867" r="4.72776" t="109.204"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13547" x="-2.16343195123" y="-0.82722265625" z="-1.13621631519">
+        <neutronic p="-170.478" r="4.72801" t="109.237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13548" x="-2.16343195123" y="-0.789040625" z="-1.13621631519">
+        <neutronic p="-171.09" r="4.72824" t="109.268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13549" x="-2.16343195123" y="-0.75085859375" z="-1.13621631519">
+        <neutronic p="-171.705" r="4.72843" t="109.297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13550" x="-2.16343195123" y="-0.7126765625" z="-1.13621631519">
+        <neutronic p="-172.321" r="4.7286" t="109.324"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13551" x="-2.16343195123" y="-0.67449453125" z="-1.13621631519">
+        <neutronic p="-172.938" r="4.72874" t="109.349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13552" x="-2.16343195123" y="-0.6363125" z="-1.13621631519">
+        <neutronic p="-173.557" r="4.72885" t="109.372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13553" x="-2.16343195123" y="-0.59813046875" z="-1.13621631519">
+        <neutronic p="-174.177" r="4.72893" t="109.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13554" x="-2.16343195123" y="-0.5599484375" z="-1.13621631519">
+        <neutronic p="-174.798" r="4.72898" t="109.411"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13555" x="-2.16343195123" y="-0.52176640625" z="-1.13621631519">
+        <neutronic p="-175.419" r="4.72901" t="109.428"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13556" x="-2.16343195123" y="-0.483584375" z="-1.13621631519">
+        <neutronic p="-176.041" r="4.729" t="109.442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13557" x="-2.16343195123" y="-0.44540234375" z="-1.13621631519">
+        <neutronic p="-176.664" r="4.72897" t="109.455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13558" x="-2.16343195123" y="-0.4072203125" z="-1.13621631519">
+        <neutronic p="-177.287" r="4.72891" t="109.465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13559" x="-2.16343195123" y="-0.36903828125" z="-1.13621631519">
+        <neutronic p="-177.91" r="4.72882" t="109.473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13560" x="-2.16343195123" y="-0.33085625" z="-1.13621631519">
+        <neutronic p="-178.534" r="4.7287" t="109.48"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13561" x="-2.16343195123" y="-0.29267421875" z="-1.13621631519">
+        <neutronic p="-179.157" r="4.72855" t="109.484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13562" x="-2.16343195123" y="-0.2544921875" z="-1.13621631519">
+        <neutronic p="-179.78" r="4.72838" t="109.485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13582" x="-2.21406929806" y="-1.9345015625" z="-1.03408049294">
+        <neutronic p="-154.307" r="4.70977" t="105.187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13583" x="-2.21406929806" y="-1.89631953125" z="-1.03408049294">
+        <neutronic p="-154.819" r="4.71076" t="105.248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13584" x="-2.21406929806" y="-1.8581375" z="-1.03408049294">
+        <neutronic p="-155.336" r="4.71172" t="105.309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13585" x="-2.21406929806" y="-1.81995546875" z="-1.03408049294">
+        <neutronic p="-155.856" r="4.71265" t="105.37"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13586" x="-2.21406929806" y="-1.7817734375" z="-1.03408049294">
+        <neutronic p="-156.381" r="4.71356" t="105.429"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13587" x="-2.21406929806" y="-1.74359140625" z="-1.03408049294">
+        <neutronic p="-156.91" r="4.71445" t="105.488"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13588" x="-2.21406929806" y="-1.705409375" z="-1.03408049294">
+        <neutronic p="-157.442" r="4.71532" t="105.545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13589" x="-2.21406929806" y="-1.66722734375" z="-1.03408049294">
+        <neutronic p="-157.979" r="4.71616" t="105.602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13590" x="-2.21406929806" y="-1.6290453125" z="-1.03408049294">
+        <neutronic p="-158.519" r="4.71697" t="105.658"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13591" x="-2.21406929806" y="-1.59086328125" z="-1.03408049294">
+        <neutronic p="-159.063" r="4.71776" t="105.713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13592" x="-2.21406929806" y="-1.55268125" z="-1.03408049294">
+        <neutronic p="-159.611" r="4.71852" t="105.767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13593" x="-2.21406929806" y="-1.51449921875" z="-1.03408049294">
+        <neutronic p="-160.163" r="4.71926" t="105.82"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13594" x="-2.21406929806" y="-1.4763171875" z="-1.03408049294">
+        <neutronic p="-160.718" r="4.71998" t="105.872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13595" x="-2.21406929806" y="-1.43813515625" z="-1.03408049294">
+        <neutronic p="-161.277" r="4.72066" t="105.923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13596" x="-2.21406929806" y="-1.399953125" z="-1.03408049294">
+        <neutronic p="-161.839" r="4.72133" t="105.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13597" x="-2.21406929806" y="-1.36177109375" z="-1.03408049294">
+        <neutronic p="-162.405" r="4.72196" t="106.021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13598" x="-2.21406929806" y="-1.3235890625" z="-1.03408049294">
+        <neutronic p="-162.974" r="4.72257" t="106.068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13599" x="-2.21406929806" y="-1.28540703125" z="-1.03408049294">
+        <neutronic p="-163.546" r="4.72315" t="106.113"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13600" x="-2.21406929806" y="-1.247225" z="-1.03408049294">
+        <neutronic p="-164.121" r="4.72371" t="106.158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13601" x="-2.21406929806" y="-1.20904296875" z="-1.03408049294">
+        <neutronic p="-164.699" r="4.72424" t="106.201"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13602" x="-2.21406929806" y="-1.1708609375" z="-1.03408049294">
+        <neutronic p="-165.28" r="4.72474" t="106.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13603" x="-2.21406929806" y="-1.13267890625" z="-1.03408049294">
+        <neutronic p="-165.864" r="4.72521" t="106.283"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13604" x="-2.21406929806" y="-1.094496875" z="-1.03408049294">
+        <neutronic p="-166.45" r="4.72566" t="106.322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13605" x="-2.21406929806" y="-1.05631484375" z="-1.03408049294">
+        <neutronic p="-167.039" r="4.72608" t="106.36"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13606" x="-2.21406929806" y="-1.0181328125" z="-1.03408049294">
+        <neutronic p="-167.631" r="4.72647" t="106.396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13607" x="-2.21406929806" y="-0.97995078125" z="-1.03408049294">
+        <neutronic p="-168.225" r="4.72684" t="106.43"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13608" x="-2.21406929806" y="-0.94176875" z="-1.03408049294">
+        <neutronic p="-168.821" r="4.72717" t="106.463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13609" x="-2.21406929806" y="-0.90358671875" z="-1.03408049294">
+        <neutronic p="-169.42" r="4.72748" t="106.494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13610" x="-2.21406929806" y="-0.8654046875" z="-1.03408049294">
+        <neutronic p="-170.02" r="4.72776" t="106.524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13611" x="-2.21406929806" y="-0.82722265625" z="-1.03408049294">
+        <neutronic p="-170.622" r="4.72801" t="106.552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13612" x="-2.21406929806" y="-0.789040625" z="-1.03408049294">
+        <neutronic p="-171.226" r="4.72824" t="106.578"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13613" x="-2.21406929806" y="-0.75085859375" z="-1.03408049294">
+        <neutronic p="-171.831" r="4.72843" t="106.603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13614" x="-2.21406929806" y="-0.7126765625" z="-1.03408049294">
+        <neutronic p="-172.438" r="4.7286" t="106.626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13615" x="-2.21406929806" y="-0.67449453125" z="-1.03408049294">
+        <neutronic p="-173.046" r="4.72874" t="106.647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13616" x="-2.21406929806" y="-0.6363125" z="-1.03408049294">
+        <neutronic p="-173.656" r="4.72885" t="106.667"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13617" x="-2.21406929806" y="-0.59813046875" z="-1.03408049294">
+        <neutronic p="-174.266" r="4.72893" t="106.684"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13618" x="-2.21406929806" y="-0.5599484375" z="-1.03408049294">
+        <neutronic p="-174.877" r="4.72898" t="106.7"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13619" x="-2.21406929806" y="-0.52176640625" z="-1.03408049294">
+        <neutronic p="-175.49" r="4.72901" t="106.715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13620" x="-2.21406929806" y="-0.483584375" z="-1.03408049294">
+        <neutronic p="-176.102" r="4.729" t="106.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13621" x="-2.21406929806" y="-0.44540234375" z="-1.03408049294">
+        <neutronic p="-176.715" r="4.72897" t="106.738"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13622" x="-2.21406929806" y="-0.4072203125" z="-1.03408049294">
+        <neutronic p="-177.329" r="4.72891" t="106.746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13623" x="-2.21406929806" y="-0.36903828125" z="-1.03408049294">
+        <neutronic p="-177.943" r="4.72882" t="106.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13624" x="-2.21406929806" y="-0.33085625" z="-1.03408049294">
+        <neutronic p="-178.556" r="4.7287" t="106.759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13625" x="-2.21406929806" y="-0.29267421875" z="-1.03408049294">
+        <neutronic p="-179.17" r="4.72855" t="106.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13626" x="-2.21406929806" y="-0.2544921875" z="-1.03408049294">
+        <neutronic p="-179.783" r="4.72838" t="106.764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13646" x="-2.25988807165" y="-1.9345015625" z="-0.929694157301">
+        <neutronic p="-154.599" r="4.70977" t="102.731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13647" x="-2.25988807165" y="-1.89631953125" z="-0.929694157301">
+        <neutronic p="-155.107" r="4.71076" t="102.782"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13648" x="-2.25988807165" y="-1.8581375" z="-0.929694157301">
+        <neutronic p="-155.619" r="4.71172" t="102.833"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13649" x="-2.25988807165" y="-1.81995546875" z="-0.929694157301">
+        <neutronic p="-156.135" r="4.71265" t="102.883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13650" x="-2.25988807165" y="-1.7817734375" z="-0.929694157301">
+        <neutronic p="-156.655" r="4.71356" t="102.933"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13651" x="-2.25988807165" y="-1.74359140625" z="-0.929694157301">
+        <neutronic p="-157.179" r="4.71445" t="102.981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13652" x="-2.25988807165" y="-1.705409375" z="-0.929694157301">
+        <neutronic p="-157.707" r="4.71532" t="103.029"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13653" x="-2.25988807165" y="-1.66722734375" z="-0.929694157301">
+        <neutronic p="-158.238" r="4.71616" t="103.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13654" x="-2.25988807165" y="-1.6290453125" z="-0.929694157301">
+        <neutronic p="-158.773" r="4.71697" t="103.123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13655" x="-2.25988807165" y="-1.59086328125" z="-0.929694157301">
+        <neutronic p="-159.312" r="4.71776" t="103.169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13656" x="-2.25988807165" y="-1.55268125" z="-0.929694157301">
+        <neutronic p="-159.855" r="4.71852" t="103.214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13657" x="-2.25988807165" y="-1.51449921875" z="-0.929694157301">
+        <neutronic p="-160.401" r="4.71926" t="103.258"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13658" x="-2.25988807165" y="-1.4763171875" z="-0.929694157301">
+        <neutronic p="-160.951" r="4.71998" t="103.301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13659" x="-2.25988807165" y="-1.43813515625" z="-0.929694157301">
+        <neutronic p="-161.504" r="4.72066" t="103.343"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13660" x="-2.25988807165" y="-1.399953125" z="-0.929694157301">
+        <neutronic p="-162.06" r="4.72133" t="103.384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13661" x="-2.25988807165" y="-1.36177109375" z="-0.929694157301">
+        <neutronic p="-162.62" r="4.72196" t="103.424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13662" x="-2.25988807165" y="-1.3235890625" z="-0.929694157301">
+        <neutronic p="-163.182" r="4.72257" t="103.464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13663" x="-2.25988807165" y="-1.28540703125" z="-0.929694157301">
+        <neutronic p="-163.748" r="4.72315" t="103.502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13664" x="-2.25988807165" y="-1.247225" z="-0.929694157301">
+        <neutronic p="-164.317" r="4.72371" t="103.539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13665" x="-2.25988807165" y="-1.20904296875" z="-0.929694157301">
+        <neutronic p="-164.889" r="4.72424" t="103.575"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13666" x="-2.25988807165" y="-1.1708609375" z="-0.929694157301">
+        <neutronic p="-165.463" r="4.72474" t="103.609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13667" x="-2.25988807165" y="-1.13267890625" z="-0.929694157301">
+        <neutronic p="-166.04" r="4.72521" t="103.643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13668" x="-2.25988807165" y="-1.094496875" z="-0.929694157301">
+        <neutronic p="-166.62" r="4.72566" t="103.675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13669" x="-2.25988807165" y="-1.05631484375" z="-0.929694157301">
+        <neutronic p="-167.202" r="4.72608" t="103.706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13670" x="-2.25988807165" y="-1.0181328125" z="-0.929694157301">
+        <neutronic p="-167.787" r="4.72647" t="103.736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13671" x="-2.25988807165" y="-0.97995078125" z="-0.929694157301">
+        <neutronic p="-168.374" r="4.72684" t="103.765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13672" x="-2.25988807165" y="-0.94176875" z="-0.929694157301">
+        <neutronic p="-168.963" r="4.72717" t="103.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13673" x="-2.25988807165" y="-0.90358671875" z="-0.929694157301">
+        <neutronic p="-169.554" r="4.72748" t="103.818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13674" x="-2.25988807165" y="-0.8654046875" z="-0.929694157301">
+        <neutronic p="-170.147" r="4.72776" t="103.843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13675" x="-2.25988807165" y="-0.82722265625" z="-0.929694157301">
+        <neutronic p="-170.742" r="4.72801" t="103.866"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13676" x="-2.25988807165" y="-0.789040625" z="-0.929694157301">
+        <neutronic p="-171.338" r="4.72824" t="103.888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13677" x="-2.25988807165" y="-0.75085859375" z="-0.929694157301">
+        <neutronic p="-171.936" r="4.72843" t="103.908"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13678" x="-2.25988807165" y="-0.7126765625" z="-0.929694157301">
+        <neutronic p="-172.535" r="4.7286" t="103.927"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13679" x="-2.25988807165" y="-0.67449453125" z="-0.929694157301">
+        <neutronic p="-173.136" r="4.72874" t="103.945"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13680" x="-2.25988807165" y="-0.6363125" z="-0.929694157301">
+        <neutronic p="-173.738" r="4.72885" t="103.961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13681" x="-2.25988807165" y="-0.59813046875" z="-0.929694157301">
+        <neutronic p="-174.34" r="4.72893" t="103.976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13682" x="-2.25988807165" y="-0.5599484375" z="-0.929694157301">
+        <neutronic p="-174.944" r="4.72898" t="103.989"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13683" x="-2.25988807165" y="-0.52176640625" z="-0.929694157301">
+        <neutronic p="-175.548" r="4.72901" t="104.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13684" x="-2.25988807165" y="-0.483584375" z="-0.929694157301">
+        <neutronic p="-176.153" r="4.729" t="104.011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13685" x="-2.25988807165" y="-0.44540234375" z="-0.929694157301">
+        <neutronic p="-176.758" r="4.72897" t="104.02"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13686" x="-2.25988807165" y="-0.4072203125" z="-0.929694157301">
+        <neutronic p="-177.364" r="4.72891" t="104.028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13687" x="-2.25988807165" y="-0.36903828125" z="-0.929694157301">
+        <neutronic p="-177.969" r="4.72882" t="104.033"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13688" x="-2.25988807165" y="-0.33085625" z="-0.929694157301">
+        <neutronic p="-178.575" r="4.7287" t="104.038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13689" x="-2.25988807165" y="-0.29267421875" z="-0.929694157301">
+        <neutronic p="-179.181" r="4.72855" t="104.04"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13690" x="-2.25988807165" y="-0.2544921875" z="-0.929694157301">
+        <neutronic p="-179.786" r="4.72838" t="104.042"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13710" x="-2.30078855464" y="-1.9345015625" z="-0.823284488697">
+        <neutronic p="-154.835" r="4.70977" t="100.27"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13711" x="-2.30078855464" y="-1.89631953125" z="-0.823284488697">
+        <neutronic p="-155.34" r="4.71076" t="100.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13712" x="-2.30078855464" y="-1.8581375" z="-0.823284488697">
+        <neutronic p="-155.848" r="4.71172" t="100.352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13713" x="-2.30078855464" y="-1.81995546875" z="-0.823284488697">
+        <neutronic p="-156.361" r="4.71265" t="100.392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13714" x="-2.30078855464" y="-1.7817734375" z="-0.823284488697">
+        <neutronic p="-156.877" r="4.71356" t="100.431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13715" x="-2.30078855464" y="-1.74359140625" z="-0.823284488697">
+        <neutronic p="-157.397" r="4.71445" t="100.471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13716" x="-2.30078855464" y="-1.705409375" z="-0.823284488697">
+        <neutronic p="-157.921" r="4.71532" t="100.509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13717" x="-2.30078855464" y="-1.66722734375" z="-0.823284488697">
+        <neutronic p="-158.448" r="4.71616" t="100.547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13718" x="-2.30078855464" y="-1.6290453125" z="-0.823284488697">
+        <neutronic p="-158.979" r="4.71697" t="100.584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13719" x="-2.30078855464" y="-1.59086328125" z="-0.823284488697">
+        <neutronic p="-159.514" r="4.71776" t="100.621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13720" x="-2.30078855464" y="-1.55268125" z="-0.823284488697">
+        <neutronic p="-160.052" r="4.71852" t="100.657"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13721" x="-2.30078855464" y="-1.51449921875" z="-0.823284488697">
+        <neutronic p="-160.594" r="4.71926" t="100.692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13722" x="-2.30078855464" y="-1.4763171875" z="-0.823284488697">
+        <neutronic p="-161.139" r="4.71998" t="100.727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13723" x="-2.30078855464" y="-1.43813515625" z="-0.823284488697">
+        <neutronic p="-161.687" r="4.72066" t="100.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13724" x="-2.30078855464" y="-1.399953125" z="-0.823284488697">
+        <neutronic p="-162.239" r="4.72133" t="100.793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13725" x="-2.30078855464" y="-1.36177109375" z="-0.823284488697">
+        <neutronic p="-162.793" r="4.72196" t="100.826"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13726" x="-2.30078855464" y="-1.3235890625" z="-0.823284488697">
+        <neutronic p="-163.351" r="4.72257" t="100.857"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13727" x="-2.30078855464" y="-1.28540703125" z="-0.823284488697">
+        <neutronic p="-163.912" r="4.72315" t="100.887"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13728" x="-2.30078855464" y="-1.247225" z="-0.823284488697">
+        <neutronic p="-164.476" r="4.72371" t="100.917"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13729" x="-2.30078855464" y="-1.20904296875" z="-0.823284488697">
+        <neutronic p="-165.042" r="4.72424" t="100.946"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13730" x="-2.30078855464" y="-1.1708609375" z="-0.823284488697">
+        <neutronic p="-165.611" r="4.72474" t="100.974"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13731" x="-2.30078855464" y="-1.13267890625" z="-0.823284488697">
+        <neutronic p="-166.183" r="4.72521" t="101.001"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13732" x="-2.30078855464" y="-1.094496875" z="-0.823284488697">
+        <neutronic p="-166.757" r="4.72566" t="101.026"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13733" x="-2.30078855464" y="-1.05631484375" z="-0.823284488697">
+        <neutronic p="-167.334" r="4.72608" t="101.051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13734" x="-2.30078855464" y="-1.0181328125" z="-0.823284488697">
+        <neutronic p="-167.913" r="4.72647" t="101.075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13735" x="-2.30078855464" y="-0.97995078125" z="-0.823284488697">
+        <neutronic p="-168.494" r="4.72684" t="101.098"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13736" x="-2.30078855464" y="-0.94176875" z="-0.823284488697">
+        <neutronic p="-169.078" r="4.72717" t="101.12"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13737" x="-2.30078855464" y="-0.90358671875" z="-0.823284488697">
+        <neutronic p="-169.663" r="4.72748" t="101.141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13738" x="-2.30078855464" y="-0.8654046875" z="-0.823284488697">
+        <neutronic p="-170.25" r="4.72776" t="101.161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13739" x="-2.30078855464" y="-0.82722265625" z="-0.823284488697">
+        <neutronic p="-170.839" r="4.72801" t="101.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13740" x="-2.30078855464" y="-0.789040625" z="-0.823284488697">
+        <neutronic p="-171.429" r="4.72824" t="101.197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13741" x="-2.30078855464" y="-0.75085859375" z="-0.823284488697">
+        <neutronic p="-172.021" r="4.72843" t="101.213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13742" x="-2.30078855464" y="-0.7126765625" z="-0.823284488697">
+        <neutronic p="-172.614" r="4.7286" t="101.228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13743" x="-2.30078855464" y="-0.67449453125" z="-0.823284488697">
+        <neutronic p="-173.208" r="4.72874" t="101.243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13744" x="-2.30078855464" y="-0.6363125" z="-0.823284488697">
+        <neutronic p="-173.804" r="4.72885" t="101.256"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13745" x="-2.30078855464" y="-0.59813046875" z="-0.823284488697">
+        <neutronic p="-174.4" r="4.72893" t="101.267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13746" x="-2.30078855464" y="-0.5599484375" z="-0.823284488697">
+        <neutronic p="-174.997" r="4.72898" t="101.278"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13747" x="-2.30078855464" y="-0.52176640625" z="-0.823284488697">
+        <neutronic p="-175.595" r="4.72901" t="101.287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13748" x="-2.30078855464" y="-0.483584375" z="-0.823284488697">
+        <neutronic p="-176.194" r="4.729" t="101.296"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13749" x="-2.30078855464" y="-0.44540234375" z="-0.823284488697">
+        <neutronic p="-176.792" r="4.72897" t="101.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13750" x="-2.30078855464" y="-0.4072203125" z="-0.823284488697">
+        <neutronic p="-177.392" r="4.72891" t="101.309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13751" x="-2.30078855464" y="-0.36903828125" z="-0.823284488697">
+        <neutronic p="-177.991" r="4.72882" t="101.313"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13752" x="-2.30078855464" y="-0.33085625" z="-0.823284488697">
+        <neutronic p="-178.59" r="4.7287" t="101.317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13753" x="-2.30078855464" y="-0.29267421875" z="-0.823284488697">
+        <neutronic p="-179.189" r="4.72855" t="101.319"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13754" x="-2.30078855464" y="-0.2544921875" z="-0.823284488697">
+        <neutronic p="-179.788" r="4.72838" t="101.32"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13774" x="-2.33668173358" y="-1.9345015625" z="-0.71508307102">
+        <neutronic p="-155.019" r="4.70977" t="97.8042"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13775" x="-2.33668173358" y="-1.89631953125" z="-0.71508307102">
+        <neutronic p="-155.521" r="4.71076" t="97.8354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13776" x="-2.33668173358" y="-1.8581375" z="-0.71508307102">
+        <neutronic p="-156.026" r="4.71172" t="97.8662"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13777" x="-2.33668173358" y="-1.81995546875" z="-0.71508307102">
+        <neutronic p="-156.536" r="4.71265" t="97.8966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13778" x="-2.33668173358" y="-1.7817734375" z="-0.71508307102">
+        <neutronic p="-157.049" r="4.71356" t="97.9266"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13779" x="-2.33668173358" y="-1.74359140625" z="-0.71508307102">
+        <neutronic p="-157.566" r="4.71445" t="97.9561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13780" x="-2.33668173358" y="-1.705409375" z="-0.71508307102">
+        <neutronic p="-158.087" r="4.71532" t="97.9853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13781" x="-2.33668173358" y="-1.66722734375" z="-0.71508307102">
+        <neutronic p="-158.611" r="4.71616" t="98.014"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13782" x="-2.33668173358" y="-1.6290453125" z="-0.71508307102">
+        <neutronic p="-159.139" r="4.71697" t="98.0422"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13783" x="-2.33668173358" y="-1.59086328125" z="-0.71508307102">
+        <neutronic p="-159.67" r="4.71776" t="98.0699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13784" x="-2.33668173358" y="-1.55268125" z="-0.71508307102">
+        <neutronic p="-160.205" r="4.71852" t="98.0971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13785" x="-2.33668173358" y="-1.51449921875" z="-0.71508307102">
+        <neutronic p="-160.743" r="4.71926" t="98.1237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13786" x="-2.33668173358" y="-1.4763171875" z="-0.71508307102">
+        <neutronic p="-161.285" r="4.71998" t="98.1498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13787" x="-2.33668173358" y="-1.43813515625" z="-0.71508307102">
+        <neutronic p="-161.829" r="4.72066" t="98.1754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13788" x="-2.33668173358" y="-1.399953125" z="-0.71508307102">
+        <neutronic p="-162.377" r="4.72133" t="98.2003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13789" x="-2.33668173358" y="-1.36177109375" z="-0.71508307102">
+        <neutronic p="-162.928" r="4.72196" t="98.2246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13790" x="-2.33668173358" y="-1.3235890625" z="-0.71508307102">
+        <neutronic p="-163.482" r="4.72257" t="98.2483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13791" x="-2.33668173358" y="-1.28540703125" z="-0.71508307102">
+        <neutronic p="-164.039" r="4.72315" t="98.2714"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13792" x="-2.33668173358" y="-1.247225" z="-0.71508307102">
+        <neutronic p="-164.599" r="4.72371" t="98.2938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13793" x="-2.33668173358" y="-1.20904296875" z="-0.71508307102">
+        <neutronic p="-165.161" r="4.72424" t="98.3155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13794" x="-2.33668173358" y="-1.1708609375" z="-0.71508307102">
+        <neutronic p="-165.726" r="4.72474" t="98.3365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13795" x="-2.33668173358" y="-1.13267890625" z="-0.71508307102">
+        <neutronic p="-166.294" r="4.72521" t="98.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13796" x="-2.33668173358" y="-1.094496875" z="-0.71508307102">
+        <neutronic p="-166.864" r="4.72566" t="98.3764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13797" x="-2.33668173358" y="-1.05631484375" z="-0.71508307102">
+        <neutronic p="-167.436" r="4.72608" t="98.3953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13798" x="-2.33668173358" y="-1.0181328125" z="-0.71508307102">
+        <neutronic p="-168.011" r="4.72647" t="98.4133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13799" x="-2.33668173358" y="-0.97995078125" z="-0.71508307102">
+        <neutronic p="-168.587" r="4.72684" t="98.4306"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13800" x="-2.33668173358" y="-0.94176875" z="-0.71508307102">
+        <neutronic p="-169.166" r="4.72717" t="98.4472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13801" x="-2.33668173358" y="-0.90358671875" z="-0.71508307102">
+        <neutronic p="-169.747" r="4.72748" t="98.4629"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13802" x="-2.33668173358" y="-0.8654046875" z="-0.71508307102">
+        <neutronic p="-170.329" r="4.72776" t="98.4778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13803" x="-2.33668173358" y="-0.82722265625" z="-0.71508307102">
+        <neutronic p="-170.913" r="4.72801" t="98.4919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13804" x="-2.33668173358" y="-0.789040625" z="-0.71508307102">
+        <neutronic p="-171.499" r="4.72824" t="98.5051"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13805" x="-2.33668173358" y="-0.75085859375" z="-0.71508307102">
+        <neutronic p="-172.086" r="4.72843" t="98.5175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13806" x="-2.33668173358" y="-0.7126765625" z="-0.71508307102">
+        <neutronic p="-172.674" r="4.7286" t="98.529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13807" x="-2.33668173358" y="-0.67449453125" z="-0.71508307102">
+        <neutronic p="-173.264" r="4.72874" t="98.5397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13808" x="-2.33668173358" y="-0.6363125" z="-0.71508307102">
+        <neutronic p="-173.855" r="4.72885" t="98.5495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13809" x="-2.33668173358" y="-0.59813046875" z="-0.71508307102">
+        <neutronic p="-174.446" r="4.72893" t="98.5584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13810" x="-2.33668173358" y="-0.5599484375" z="-0.71508307102">
+        <neutronic p="-175.039" r="4.72898" t="98.5664"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13811" x="-2.33668173358" y="-0.52176640625" z="-0.71508307102">
+        <neutronic p="-175.632" r="4.72901" t="98.5736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13812" x="-2.33668173358" y="-0.483584375" z="-0.71508307102">
+        <neutronic p="-176.225" r="4.729" t="98.5798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13813" x="-2.33668173358" y="-0.44540234375" z="-0.71508307102">
+        <neutronic p="-176.819" r="4.72897" t="98.5851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13814" x="-2.33668173358" y="-0.4072203125" z="-0.71508307102">
+        <neutronic p="-177.413" r="4.72891" t="98.5896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13815" x="-2.33668173358" y="-0.36903828125" z="-0.71508307102">
+        <neutronic p="-178.008" r="4.72882" t="98.5931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13816" x="-2.33668173358" y="-0.33085625" z="-0.71508307102">
+        <neutronic p="-178.602" r="4.7287" t="98.5957"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13817" x="-2.33668173358" y="-0.29267421875" z="-0.71508307102">
+        <neutronic p="-179.196" r="4.72855" t="98.5973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13818" x="-2.33668173358" y="-0.2544921875" z="-0.71508307102">
+        <neutronic p="-179.79" r="4.72838" t="98.5981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13838" x="-2.36748949261" y="-1.9345015625" z="-0.605325387621">
+        <neutronic p="-155.151" r="4.70977" t="95.3356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13839" x="-2.36748949261" y="-1.89631953125" z="-0.605325387621">
+        <neutronic p="-155.651" r="4.71076" t="95.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13840" x="-2.36748949261" y="-1.8581375" z="-0.605325387621">
+        <neutronic p="-156.155" r="4.71172" t="95.3778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13841" x="-2.36748949261" y="-1.81995546875" z="-0.605325387621">
+        <neutronic p="-156.662" r="4.71265" t="95.3985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13842" x="-2.36748949261" y="-1.7817734375" z="-0.605325387621">
+        <neutronic p="-157.173" r="4.71356" t="95.419"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13843" x="-2.36748949261" y="-1.74359140625" z="-0.605325387621">
+        <neutronic p="-157.688" r="4.71445" t="95.4391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13844" x="-2.36748949261" y="-1.705409375" z="-0.605325387621">
+        <neutronic p="-158.206" r="4.71532" t="95.459"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13845" x="-2.36748949261" y="-1.66722734375" z="-0.605325387621">
+        <neutronic p="-158.728" r="4.71616" t="95.4785"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13846" x="-2.36748949261" y="-1.6290453125" z="-0.605325387621">
+        <neutronic p="-159.254" r="4.71697" t="95.4977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13847" x="-2.36748949261" y="-1.59086328125" z="-0.605325387621">
+        <neutronic p="-159.783" r="4.71776" t="95.5166"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13848" x="-2.36748949261" y="-1.55268125" z="-0.605325387621">
+        <neutronic p="-160.315" r="4.71852" t="95.5351"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13849" x="-2.36748949261" y="-1.51449921875" z="-0.605325387621">
+        <neutronic p="-160.851" r="4.71926" t="95.5533"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13850" x="-2.36748949261" y="-1.4763171875" z="-0.605325387621">
+        <neutronic p="-161.389" r="4.71998" t="95.5711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13851" x="-2.36748949261" y="-1.43813515625" z="-0.605325387621">
+        <neutronic p="-161.932" r="4.72066" t="95.5885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13852" x="-2.36748949261" y="-1.399953125" z="-0.605325387621">
+        <neutronic p="-162.477" r="4.72133" t="95.6054"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13853" x="-2.36748949261" y="-1.36177109375" z="-0.605325387621">
+        <neutronic p="-163.025" r="4.72196" t="95.622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13854" x="-2.36748949261" y="-1.3235890625" z="-0.605325387621">
+        <neutronic p="-163.576" r="4.72257" t="95.6382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13855" x="-2.36748949261" y="-1.28540703125" z="-0.605325387621">
+        <neutronic p="-164.13" r="4.72315" t="95.6539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13856" x="-2.36748949261" y="-1.247225" z="-0.605325387621">
+        <neutronic p="-164.687" r="4.72371" t="95.6691"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13857" x="-2.36748949261" y="-1.20904296875" z="-0.605325387621">
+        <neutronic p="-165.246" r="4.72424" t="95.6839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13858" x="-2.36748949261" y="-1.1708609375" z="-0.605325387621">
+        <neutronic p="-165.808" r="4.72474" t="95.6982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13859" x="-2.36748949261" y="-1.13267890625" z="-0.605325387621">
+        <neutronic p="-166.373" r="4.72521" t="95.7121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13860" x="-2.36748949261" y="-1.094496875" z="-0.605325387621">
+        <neutronic p="-166.94" r="4.72566" t="95.7254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13861" x="-2.36748949261" y="-1.05631484375" z="-0.605325387621">
+        <neutronic p="-167.509" r="4.72608" t="95.7382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13862" x="-2.36748949261" y="-1.0181328125" z="-0.605325387621">
+        <neutronic p="-168.081" r="4.72647" t="95.7505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13863" x="-2.36748949261" y="-0.97995078125" z="-0.605325387621">
+        <neutronic p="-168.654" r="4.72684" t="95.7623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13864" x="-2.36748949261" y="-0.94176875" z="-0.605325387621">
+        <neutronic p="-169.23" r="4.72717" t="95.7736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13865" x="-2.36748949261" y="-0.90358671875" z="-0.605325387621">
+        <neutronic p="-169.807" r="4.72748" t="95.7843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13866" x="-2.36748949261" y="-0.8654046875" z="-0.605325387621">
+        <neutronic p="-170.386" r="4.72776" t="95.7944"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13867" x="-2.36748949261" y="-0.82722265625" z="-0.605325387621">
+        <neutronic p="-170.967" r="4.72801" t="95.804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13868" x="-2.36748949261" y="-0.789040625" z="-0.605325387621">
+        <neutronic p="-171.549" r="4.72824" t="95.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13869" x="-2.36748949261" y="-0.75085859375" z="-0.605325387621">
+        <neutronic p="-172.133" r="4.72843" t="95.8214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13870" x="-2.36748949261" y="-0.7126765625" z="-0.605325387621">
+        <neutronic p="-172.718" r="4.7286" t="95.8293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13871" x="-2.36748949261" y="-0.67449453125" z="-0.605325387621">
+        <neutronic p="-173.304" r="4.72874" t="95.8366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13872" x="-2.36748949261" y="-0.6363125" z="-0.605325387621">
+        <neutronic p="-173.891" r="4.72885" t="95.8432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13873" x="-2.36748949261" y="-0.59813046875" z="-0.605325387621">
+        <neutronic p="-174.479" r="4.72893" t="95.8493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13874" x="-2.36748949261" y="-0.5599484375" z="-0.605325387621">
+        <neutronic p="-175.068" r="4.72898" t="95.8548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13875" x="-2.36748949261" y="-0.52176640625" z="-0.605325387621">
+        <neutronic p="-175.658" r="4.72901" t="95.8596"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13876" x="-2.36748949261" y="-0.483584375" z="-0.605325387621">
+        <neutronic p="-176.248" r="4.729" t="95.8639"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13877" x="-2.36748949261" y="-0.44540234375" z="-0.605325387621">
+        <neutronic p="-176.838" r="4.72897" t="95.8675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13878" x="-2.36748949261" y="-0.4072203125" z="-0.605325387621">
+        <neutronic p="-177.429" r="4.72891" t="95.8705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13879" x="-2.36748949261" y="-0.36903828125" z="-0.605325387621">
+        <neutronic p="-178.02" r="4.72882" t="95.8729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13880" x="-2.36748949261" y="-0.33085625" z="-0.605325387621">
+        <neutronic p="-178.61" r="4.7287" t="95.8746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13881" x="-2.36748949261" y="-0.29267421875" z="-0.605325387621">
+        <neutronic p="-179.201" r="4.72855" t="95.8758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13882" x="-2.36748949261" y="-0.2544921875" z="-0.605325387621">
+        <neutronic p="-179.791" r="4.72838" t="95.8763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13902" x="-2.39314478349" y="-1.9345015625" z="-0.494250308817">
+        <neutronic p="-155.233" r="4.70977" t="92.8649"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13903" x="-2.39314478349" y="-1.89631953125" z="-0.494250308817">
+        <neutronic p="-155.731" r="4.71076" t="92.8763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13904" x="-2.39314478349" y="-1.8581375" z="-0.494250308817">
+        <neutronic p="-156.234" r="4.71172" t="92.8875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13905" x="-2.39314478349" y="-1.81995546875" z="-0.494250308817">
+        <neutronic p="-156.74" r="4.71265" t="92.8986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13906" x="-2.39314478349" y="-1.7817734375" z="-0.494250308817">
+        <neutronic p="-157.25" r="4.71356" t="92.9096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13907" x="-2.39314478349" y="-1.74359140625" z="-0.494250308817">
+        <neutronic p="-157.763" r="4.71445" t="92.9204"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13908" x="-2.39314478349" y="-1.705409375" z="-0.494250308817">
+        <neutronic p="-158.28" r="4.71532" t="92.931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13909" x="-2.39314478349" y="-1.66722734375" z="-0.494250308817">
+        <neutronic p="-158.801" r="4.71616" t="92.9415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13910" x="-2.39314478349" y="-1.6290453125" z="-0.494250308817">
+        <neutronic p="-159.325" r="4.71697" t="92.9518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13911" x="-2.39314478349" y="-1.59086328125" z="-0.494250308817">
+        <neutronic p="-159.852" r="4.71776" t="92.9619"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13912" x="-2.39314478349" y="-1.55268125" z="-0.494250308817">
+        <neutronic p="-160.383" r="4.71852" t="92.9718"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13913" x="-2.39314478349" y="-1.51449921875" z="-0.494250308817">
+        <neutronic p="-160.917" r="4.71926" t="92.9815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13914" x="-2.39314478349" y="-1.4763171875" z="-0.494250308817">
+        <neutronic p="-161.454" r="4.71998" t="92.991"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13915" x="-2.39314478349" y="-1.43813515625" z="-0.494250308817">
+        <neutronic p="-161.995" r="4.72066" t="93.0004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13916" x="-2.39314478349" y="-1.399953125" z="-0.494250308817">
+        <neutronic p="-162.538" r="4.72133" t="93.0095"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13917" x="-2.39314478349" y="-1.36177109375" z="-0.494250308817">
+        <neutronic p="-163.085" r="4.72196" t="93.0183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13918" x="-2.39314478349" y="-1.3235890625" z="-0.494250308817">
+        <neutronic p="-163.634" r="4.72257" t="93.027"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13919" x="-2.39314478349" y="-1.28540703125" z="-0.494250308817">
+        <neutronic p="-164.187" r="4.72315" t="93.0354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13920" x="-2.39314478349" y="-1.247225" z="-0.494250308817">
+        <neutronic p="-164.742" r="4.72371" t="93.0436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13921" x="-2.39314478349" y="-1.20904296875" z="-0.494250308817">
+        <neutronic p="-165.299" r="4.72424" t="93.0515"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13922" x="-2.39314478349" y="-1.1708609375" z="-0.494250308817">
+        <neutronic p="-165.859" r="4.72474" t="93.0591"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13923" x="-2.39314478349" y="-1.13267890625" z="-0.494250308817">
+        <neutronic p="-166.422" r="4.72521" t="93.0666"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13924" x="-2.39314478349" y="-1.094496875" z="-0.494250308817">
+        <neutronic p="-166.987" r="4.72566" t="93.0737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13925" x="-2.39314478349" y="-1.05631484375" z="-0.494250308817">
+        <neutronic p="-167.555" r="4.72608" t="93.0806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13926" x="-2.39314478349" y="-1.0181328125" z="-0.494250308817">
+        <neutronic p="-168.124" r="4.72647" t="93.0872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13927" x="-2.39314478349" y="-0.97995078125" z="-0.494250308817">
+        <neutronic p="-168.696" r="4.72684" t="93.0935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13928" x="-2.39314478349" y="-0.94176875" z="-0.494250308817">
+        <neutronic p="-169.269" r="4.72717" t="93.0995"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13929" x="-2.39314478349" y="-0.90358671875" z="-0.494250308817">
+        <neutronic p="-169.845" r="4.72748" t="93.1052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13930" x="-2.39314478349" y="-0.8654046875" z="-0.494250308817">
+        <neutronic p="-170.422" r="4.72776" t="93.1107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13931" x="-2.39314478349" y="-0.82722265625" z="-0.494250308817">
+        <neutronic p="-171.0" r="4.72801" t="93.1158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13932" x="-2.39314478349" y="-0.789040625" z="-0.494250308817">
+        <neutronic p="-171.581" r="4.72824" t="93.1206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13933" x="-2.39314478349" y="-0.75085859375" z="-0.494250308817">
+        <neutronic p="-172.162" r="4.72843" t="93.1251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13934" x="-2.39314478349" y="-0.7126765625" z="-0.494250308817">
+        <neutronic p="-172.745" r="4.7286" t="93.1293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13935" x="-2.39314478349" y="-0.67449453125" z="-0.494250308817">
+        <neutronic p="-173.329" r="4.72874" t="93.1332"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13936" x="-2.39314478349" y="-0.6363125" z="-0.494250308817">
+        <neutronic p="-173.914" r="4.72885" t="93.1368"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13937" x="-2.39314478349" y="-0.59813046875" z="-0.494250308817">
+        <neutronic p="-174.5" r="4.72893" t="93.1401"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13938" x="-2.39314478349" y="-0.5599484375" z="-0.494250308817">
+        <neutronic p="-175.087" r="4.72898" t="93.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13939" x="-2.39314478349" y="-0.52176640625" z="-0.494250308817">
+        <neutronic p="-175.674" r="4.72901" t="93.1456"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13940" x="-2.39314478349" y="-0.483584375" z="-0.494250308817">
+        <neutronic p="-176.262" r="4.729" t="93.1479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13941" x="-2.39314478349" y="-0.44540234375" z="-0.494250308817">
+        <neutronic p="-176.85" r="4.72897" t="93.1498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13942" x="-2.39314478349" y="-0.4072203125" z="-0.494250308817">
+        <neutronic p="-177.438" r="4.72891" t="93.1514"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13943" x="-2.39314478349" y="-0.36903828125" z="-0.494250308817">
+        <neutronic p="-178.027" r="4.72882" t="93.1527"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13944" x="-2.39314478349" y="-0.33085625" z="-0.494250308817">
+        <neutronic p="-178.616" r="4.7287" t="93.1536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13945" x="-2.39314478349" y="-0.29267421875" z="-0.494250308817">
+        <neutronic p="-179.204" r="4.72855" t="93.1542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13946" x="-2.39314478349" y="-0.2544921875" z="-0.494250308817">
+        <neutronic p="-179.792" r="4.72838" t="93.1545"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13966" x="-2.41359177152" y="-1.9345015625" z="-0.38209957203">
+        <neutronic p="-155.265" r="4.70977" t="90.393"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13967" x="-2.41359177152" y="-1.89631953125" z="-0.38209957203">
+        <neutronic p="-155.763" r="4.71076" t="90.3946"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13968" x="-2.41359177152" y="-1.8581375" z="-0.38209957203">
+        <neutronic p="-156.265" r="4.71172" t="90.3961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13969" x="-2.41359177152" y="-1.81995546875" z="-0.38209957203">
+        <neutronic p="-156.771" r="4.71265" t="90.3977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13970" x="-2.41359177152" y="-1.7817734375" z="-0.38209957203">
+        <neutronic p="-157.28" r="4.71356" t="90.3992"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13971" x="-2.41359177152" y="-1.74359140625" z="-0.38209957203">
+        <neutronic p="-157.793" r="4.71445" t="90.4006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13972" x="-2.41359177152" y="-1.705409375" z="-0.38209957203">
+        <neutronic p="-158.31" r="4.71532" t="90.4021"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13973" x="-2.41359177152" y="-1.66722734375" z="-0.38209957203">
+        <neutronic p="-158.83" r="4.71616" t="90.4035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13974" x="-2.41359177152" y="-1.6290453125" z="-0.38209957203">
+        <neutronic p="-159.353" r="4.71697" t="90.4049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13975" x="-2.41359177152" y="-1.59086328125" z="-0.38209957203">
+        <neutronic p="-159.88" r="4.71776" t="90.4063"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13976" x="-2.41359177152" y="-1.55268125" z="-0.38209957203">
+        <neutronic p="-160.41" r="4.71852" t="90.4077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13977" x="-2.41359177152" y="-1.51449921875" z="-0.38209957203">
+        <neutronic p="-160.943" r="4.71926" t="90.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13978" x="-2.41359177152" y="-1.4763171875" z="-0.38209957203">
+        <neutronic p="-161.48" r="4.71998" t="90.4103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13979" x="-2.41359177152" y="-1.43813515625" z="-0.38209957203">
+        <neutronic p="-162.02" r="4.72066" t="90.4116"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13980" x="-2.41359177152" y="-1.399953125" z="-0.38209957203">
+        <neutronic p="-162.563" r="4.72133" t="90.4128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13981" x="-2.41359177152" y="-1.36177109375" z="-0.38209957203">
+        <neutronic p="-163.109" r="4.72196" t="90.4141"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13982" x="-2.41359177152" y="-1.3235890625" z="-0.38209957203">
+        <neutronic p="-163.657" r="4.72257" t="90.4152"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13983" x="-2.41359177152" y="-1.28540703125" z="-0.38209957203">
+        <neutronic p="-164.209" r="4.72315" t="90.4164"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13984" x="-2.41359177152" y="-1.247225" z="-0.38209957203">
+        <neutronic p="-164.763" r="4.72371" t="90.4175"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13985" x="-2.41359177152" y="-1.20904296875" z="-0.38209957203">
+        <neutronic p="-165.32" r="4.72424" t="90.4186"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13986" x="-2.41359177152" y="-1.1708609375" z="-0.38209957203">
+        <neutronic p="-165.88" r="4.72474" t="90.4197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13987" x="-2.41359177152" y="-1.13267890625" z="-0.38209957203">
+        <neutronic p="-166.442" r="4.72521" t="90.4207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13988" x="-2.41359177152" y="-1.094496875" z="-0.38209957203">
+        <neutronic p="-167.006" r="4.72566" t="90.4216"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13989" x="-2.41359177152" y="-1.05631484375" z="-0.38209957203">
+        <neutronic p="-167.572" r="4.72608" t="90.4226"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13990" x="-2.41359177152" y="-1.0181328125" z="-0.38209957203">
+        <neutronic p="-168.141" r="4.72647" t="90.4235"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13991" x="-2.41359177152" y="-0.97995078125" z="-0.38209957203">
+        <neutronic p="-168.712" r="4.72684" t="90.4244"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13992" x="-2.41359177152" y="-0.94176875" z="-0.38209957203">
+        <neutronic p="-169.285" r="4.72717" t="90.4252"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13993" x="-2.41359177152" y="-0.90358671875" z="-0.38209957203">
+        <neutronic p="-169.859" r="4.72748" t="90.426"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13994" x="-2.41359177152" y="-0.8654046875" z="-0.38209957203">
+        <neutronic p="-170.436" r="4.72776" t="90.4267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13995" x="-2.41359177152" y="-0.82722265625" z="-0.38209957203">
+        <neutronic p="-171.014" r="4.72801" t="90.4274"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13996" x="-2.41359177152" y="-0.789040625" z="-0.38209957203">
+        <neutronic p="-171.593" r="4.72824" t="90.4281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13997" x="-2.41359177152" y="-0.75085859375" z="-0.38209957203">
+        <neutronic p="-172.174" r="4.72843" t="90.4287"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13998" x="-2.41359177152" y="-0.7126765625" z="-0.38209957203">
+        <neutronic p="-172.756" r="4.7286" t="90.4293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="13999" x="-2.41359177152" y="-0.67449453125" z="-0.38209957203">
+        <neutronic p="-173.339" r="4.72874" t="90.4298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14000" x="-2.41359177152" y="-0.6363125" z="-0.38209957203">
+        <neutronic p="-173.923" r="4.72885" t="90.4303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14001" x="-2.41359177152" y="-0.59813046875" z="-0.38209957203">
+        <neutronic p="-174.508" r="4.72893" t="90.4307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14002" x="-2.41359177152" y="-0.5599484375" z="-0.38209957203">
+        <neutronic p="-175.094" r="4.72898" t="90.4311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14003" x="-2.41359177152" y="-0.52176640625" z="-0.38209957203">
+        <neutronic p="-175.68" r="4.72901" t="90.4315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14004" x="-2.41359177152" y="-0.483584375" z="-0.38209957203">
+        <neutronic p="-176.267" r="4.729" t="90.4318"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14005" x="-2.41359177152" y="-0.44540234375" z="-0.38209957203">
+        <neutronic p="-176.855" r="4.72897" t="90.4321"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14006" x="-2.41359177152" y="-0.4072203125" z="-0.38209957203">
+        <neutronic p="-177.442" r="4.72891" t="90.4323"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14007" x="-2.41359177152" y="-0.36903828125" z="-0.38209957203">
+        <neutronic p="-178.03" r="4.72882" t="90.4325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14008" x="-2.41359177152" y="-0.33085625" z="-0.38209957203">
+        <neutronic p="-178.618" r="4.7287" t="90.4326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14009" x="-2.41359177152" y="-0.29267421875" z="-0.38209957203">
+        <neutronic p="-179.205" r="4.72855" t="90.4327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14010" x="-2.41359177152" y="-0.2544921875" z="-0.38209957203">
+        <neutronic p="-179.792" r="4.72838" t="90.4327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14030" x="-2.42878595706" y="-1.9345015625" z="-0.269117255682">
+        <neutronic p="-155.248" r="4.70977" t="87.921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14031" x="-2.42878595706" y="-1.89631953125" z="-0.269117255682">
+        <neutronic p="-155.747" r="4.71076" t="87.9128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14032" x="-2.42878595706" y="-1.8581375" z="-0.269117255682">
+        <neutronic p="-156.249" r="4.71172" t="87.9046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14033" x="-2.42878595706" y="-1.81995546875" z="-0.269117255682">
+        <neutronic p="-156.755" r="4.71265" t="87.8966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14034" x="-2.42878595706" y="-1.7817734375" z="-0.269117255682">
+        <neutronic p="-157.265" r="4.71356" t="87.8886"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14035" x="-2.42878595706" y="-1.74359140625" z="-0.269117255682">
+        <neutronic p="-157.778" r="4.71445" t="87.8808"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14036" x="-2.42878595706" y="-1.705409375" z="-0.269117255682">
+        <neutronic p="-158.294" r="4.71532" t="87.8731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14037" x="-2.42878595706" y="-1.66722734375" z="-0.269117255682">
+        <neutronic p="-158.815" r="4.71616" t="87.8655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14038" x="-2.42878595706" y="-1.6290453125" z="-0.269117255682">
+        <neutronic p="-159.338" r="4.71697" t="87.858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14039" x="-2.42878595706" y="-1.59086328125" z="-0.269117255682">
+        <neutronic p="-159.866" r="4.71776" t="87.8507"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14040" x="-2.42878595706" y="-1.55268125" z="-0.269117255682">
+        <neutronic p="-160.396" r="4.71852" t="87.8435"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14041" x="-2.42878595706" y="-1.51449921875" z="-0.269117255682">
+        <neutronic p="-160.93" r="4.71926" t="87.8364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14042" x="-2.42878595706" y="-1.4763171875" z="-0.269117255682">
+        <neutronic p="-161.467" r="4.71998" t="87.8295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14043" x="-2.42878595706" y="-1.43813515625" z="-0.269117255682">
+        <neutronic p="-162.007" r="4.72066" t="87.8228"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14044" x="-2.42878595706" y="-1.399953125" z="-0.269117255682">
+        <neutronic p="-162.55" r="4.72133" t="87.8162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14045" x="-2.42878595706" y="-1.36177109375" z="-0.269117255682">
+        <neutronic p="-163.096" r="4.72196" t="87.8097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14046" x="-2.42878595706" y="-1.3235890625" z="-0.269117255682">
+        <neutronic p="-163.645" r="4.72257" t="87.8034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14047" x="-2.42878595706" y="-1.28540703125" z="-0.269117255682">
+        <neutronic p="-164.197" r="4.72315" t="87.7973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14048" x="-2.42878595706" y="-1.247225" z="-0.269117255682">
+        <neutronic p="-164.752" r="4.72371" t="87.7914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14049" x="-2.42878595706" y="-1.20904296875" z="-0.269117255682">
+        <neutronic p="-165.309" r="4.72424" t="87.7857"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14050" x="-2.42878595706" y="-1.1708609375" z="-0.269117255682">
+        <neutronic p="-165.869" r="4.72474" t="87.7801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14051" x="-2.42878595706" y="-1.13267890625" z="-0.269117255682">
+        <neutronic p="-166.431" r="4.72521" t="87.7747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14052" x="-2.42878595706" y="-1.094496875" z="-0.269117255682">
+        <neutronic p="-166.996" r="4.72566" t="87.7696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14053" x="-2.42878595706" y="-1.05631484375" z="-0.269117255682">
+        <neutronic p="-167.563" r="4.72608" t="87.7646"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14054" x="-2.42878595706" y="-1.0181328125" z="-0.269117255682">
+        <neutronic p="-168.132" r="4.72647" t="87.7598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14055" x="-2.42878595706" y="-0.97995078125" z="-0.269117255682">
+        <neutronic p="-168.704" r="4.72684" t="87.7552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14056" x="-2.42878595706" y="-0.94176875" z="-0.269117255682">
+        <neutronic p="-169.277" r="4.72717" t="87.7508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14057" x="-2.42878595706" y="-0.90358671875" z="-0.269117255682">
+        <neutronic p="-169.852" r="4.72748" t="87.7467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14058" x="-2.42878595706" y="-0.8654046875" z="-0.269117255682">
+        <neutronic p="-170.428" r="4.72776" t="87.7427"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14059" x="-2.42878595706" y="-0.82722265625" z="-0.269117255682">
+        <neutronic p="-171.007" r="4.72801" t="87.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14060" x="-2.42878595706" y="-0.789040625" z="-0.269117255682">
+        <neutronic p="-171.587" r="4.72824" t="87.7355"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14061" x="-2.42878595706" y="-0.75085859375" z="-0.269117255682">
+        <neutronic p="-172.168" r="4.72843" t="87.7322"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14062" x="-2.42878595706" y="-0.7126765625" z="-0.269117255682">
+        <neutronic p="-172.75" r="4.7286" t="87.7292"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14063" x="-2.42878595706" y="-0.67449453125" z="-0.269117255682">
+        <neutronic p="-173.334" r="4.72874" t="87.7264"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14064" x="-2.42878595706" y="-0.6363125" z="-0.269117255682">
+        <neutronic p="-173.918" r="4.72885" t="87.7238"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14065" x="-2.42878595706" y="-0.59813046875" z="-0.269117255682">
+        <neutronic p="-174.504" r="4.72893" t="87.7214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14066" x="-2.42878595706" y="-0.5599484375" z="-0.269117255682">
+        <neutronic p="-175.09" r="4.72898" t="87.7193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14067" x="-2.42878595706" y="-0.52176640625" z="-0.269117255682">
+        <neutronic p="-175.677" r="4.72901" t="87.7174"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14068" x="-2.42878595706" y="-0.483584375" z="-0.269117255682">
+        <neutronic p="-176.264" r="4.729" t="87.7158"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14069" x="-2.42878595706" y="-0.44540234375" z="-0.269117255682">
+        <neutronic p="-176.852" r="4.72897" t="87.7144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14070" x="-2.42878595706" y="-0.4072203125" z="-0.269117255682">
+        <neutronic p="-177.44" r="4.72891" t="87.7132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14071" x="-2.42878595706" y="-0.36903828125" z="-0.269117255682">
+        <neutronic p="-178.028" r="4.72882" t="87.7123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14072" x="-2.42878595706" y="-0.33085625" z="-0.269117255682">
+        <neutronic p="-178.617" r="4.7287" t="87.7116"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14073" x="-2.42878595706" y="-0.29267421875" z="-0.269117255682">
+        <neutronic p="-179.205" r="4.72855" t="87.7111"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14074" x="-2.42878595706" y="-0.2544921875" z="-0.269117255682">
+        <neutronic p="-179.792" r="4.72838" t="87.7109"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14094" x="-2.43869427234" y="-1.9345015625" z="-0.155549247996">
+        <neutronic p="-155.182" r="4.70977" t="85.4498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14095" x="-2.43869427234" y="-1.89631953125" z="-0.155549247996">
+        <neutronic p="-155.682" r="4.71076" t="85.4317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14096" x="-2.43869427234" y="-1.8581375" z="-0.155549247996">
+        <neutronic p="-156.185" r="4.71172" t="85.4138"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14097" x="-2.43869427234" y="-1.81995546875" z="-0.155549247996">
+        <neutronic p="-156.692" r="4.71265" t="85.3962"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14098" x="-2.43869427234" y="-1.7817734375" z="-0.155549247996">
+        <neutronic p="-157.203" r="4.71356" t="85.3788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14099" x="-2.43869427234" y="-1.74359140625" z="-0.155549247996">
+        <neutronic p="-157.717" r="4.71445" t="85.3616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14100" x="-2.43869427234" y="-1.705409375" z="-0.155549247996">
+        <neutronic p="-158.235" r="4.71532" t="85.3447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14101" x="-2.43869427234" y="-1.66722734375" z="-0.155549247996">
+        <neutronic p="-158.756" r="4.71616" t="85.328"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14102" x="-2.43869427234" y="-1.6290453125" z="-0.155549247996">
+        <neutronic p="-159.281" r="4.71697" t="85.3117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14103" x="-2.43869427234" y="-1.59086328125" z="-0.155549247996">
+        <neutronic p="-159.809" r="4.71776" t="85.2956"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14104" x="-2.43869427234" y="-1.55268125" z="-0.155549247996">
+        <neutronic p="-160.341" r="4.71852" t="85.2798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14105" x="-2.43869427234" y="-1.51449921875" z="-0.155549247996">
+        <neutronic p="-160.876" r="4.71926" t="85.2643"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14106" x="-2.43869427234" y="-1.4763171875" z="-0.155549247996">
+        <neutronic p="-161.414" r="4.71998" t="85.2492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14107" x="-2.43869427234" y="-1.43813515625" z="-0.155549247996">
+        <neutronic p="-161.956" r="4.72066" t="85.2344"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14108" x="-2.43869427234" y="-1.399953125" z="-0.155549247996">
+        <neutronic p="-162.5" r="4.72133" t="85.2199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14109" x="-2.43869427234" y="-1.36177109375" z="-0.155549247996">
+        <neutronic p="-163.048" r="4.72196" t="85.2058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14110" x="-2.43869427234" y="-1.3235890625" z="-0.155549247996">
+        <neutronic p="-163.598" r="4.72257" t="85.192"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14111" x="-2.43869427234" y="-1.28540703125" z="-0.155549247996">
+        <neutronic p="-164.152" r="4.72315" t="85.1786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14112" x="-2.43869427234" y="-1.247225" z="-0.155549247996">
+        <neutronic p="-164.708" r="4.72371" t="85.1657"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14113" x="-2.43869427234" y="-1.20904296875" z="-0.155549247996">
+        <neutronic p="-165.267" r="4.72424" t="85.1531"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14114" x="-2.43869427234" y="-1.1708609375" z="-0.155549247996">
+        <neutronic p="-165.828" r="4.72474" t="85.1409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14115" x="-2.43869427234" y="-1.13267890625" z="-0.155549247996">
+        <neutronic p="-166.392" r="4.72521" t="85.1291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14116" x="-2.43869427234" y="-1.094496875" z="-0.155549247996">
+        <neutronic p="-166.958" r="4.72566" t="85.1177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14117" x="-2.43869427234" y="-1.05631484375" z="-0.155549247996">
+        <neutronic p="-167.527" r="4.72608" t="85.1068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14118" x="-2.43869427234" y="-1.0181328125" z="-0.155549247996">
+        <neutronic p="-168.097" r="4.72647" t="85.0963"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14119" x="-2.43869427234" y="-0.97995078125" z="-0.155549247996">
+        <neutronic p="-168.67" r="4.72684" t="85.0863"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14120" x="-2.43869427234" y="-0.94176875" z="-0.155549247996">
+        <neutronic p="-169.245" r="4.72717" t="85.0767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14121" x="-2.43869427234" y="-0.90358671875" z="-0.155549247996">
+        <neutronic p="-169.822" r="4.72748" t="85.0676"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14122" x="-2.43869427234" y="-0.8654046875" z="-0.155549247996">
+        <neutronic p="-170.4" r="4.72776" t="85.0589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14123" x="-2.43869427234" y="-0.82722265625" z="-0.155549247996">
+        <neutronic p="-170.98" r="4.72801" t="85.0508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14124" x="-2.43869427234" y="-0.789040625" z="-0.155549247996">
+        <neutronic p="-171.561" r="4.72824" t="85.0431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14125" x="-2.43869427234" y="-0.75085859375" z="-0.155549247996">
+        <neutronic p="-172.144" r="4.72843" t="85.0359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14126" x="-2.43869427234" y="-0.7126765625" z="-0.155549247996">
+        <neutronic p="-172.728" r="4.7286" t="85.0292"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14127" x="-2.43869427234" y="-0.67449453125" z="-0.155549247996">
+        <neutronic p="-173.314" r="4.72874" t="85.023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14128" x="-2.43869427234" y="-0.6363125" z="-0.155549247996">
+        <neutronic p="-173.9" r="4.72885" t="85.0173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14129" x="-2.43869427234" y="-0.59813046875" z="-0.155549247996">
+        <neutronic p="-174.487" r="4.72893" t="85.0121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14130" x="-2.43869427234" y="-0.5599484375" z="-0.155549247996">
+        <neutronic p="-175.075" r="4.72898" t="85.0075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14131" x="-2.43869427234" y="-0.52176640625" z="-0.155549247996">
+        <neutronic p="-175.664" r="4.72901" t="85.0034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14132" x="-2.43869427234" y="-0.483584375" z="-0.155549247996">
+        <neutronic p="-176.253" r="4.729" t="84.9997"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14133" x="-2.43869427234" y="-0.44540234375" z="-0.155549247996">
+        <neutronic p="-176.843" r="4.72897" t="84.9967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14134" x="-2.43869427234" y="-0.4072203125" z="-0.155549247996">
+        <neutronic p="-177.432" r="4.72891" t="84.9941"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14135" x="-2.43869427234" y="-0.36903828125" z="-0.155549247996">
+        <neutronic p="-178.022" r="4.72882" t="84.9921"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14136" x="-2.43869427234" y="-0.33085625" z="-0.155549247996">
+        <neutronic p="-178.612" r="4.7287" t="84.9906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14137" x="-2.43869427234" y="-0.29267421875" z="-0.155549247996">
+        <neutronic p="-179.202" r="4.72855" t="84.9896"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14138" x="-2.43869427234" y="-0.2544921875" z="-0.155549247996">
+        <neutronic p="-179.792" r="4.72838" t="84.9891"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14158" x="-2.44329515349" y="-1.9345015625" z="-0.0416427118618">
+        <neutronic p="-155.066" r="4.70977" t="82.9804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14159" x="-2.44329515349" y="-1.89631953125" z="-0.0416427118618">
+        <neutronic p="-155.568" r="4.71076" t="82.9524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14160" x="-2.44329515349" y="-1.8581375" z="-0.0416427118618">
+        <neutronic p="-156.072" r="4.71172" t="82.9248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14161" x="-2.44329515349" y="-1.81995546875" z="-0.0416427118618">
+        <neutronic p="-156.581" r="4.71265" t="82.8975"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14162" x="-2.44329515349" y="-1.7817734375" z="-0.0416427118618">
+        <neutronic p="-157.094" r="4.71356" t="82.8705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14163" x="-2.44329515349" y="-1.74359140625" z="-0.0416427118618">
+        <neutronic p="-157.61" r="4.71445" t="82.8439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14164" x="-2.44329515349" y="-1.705409375" z="-0.0416427118618">
+        <neutronic p="-158.13" r="4.71532" t="82.8178"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14165" x="-2.44329515349" y="-1.66722734375" z="-0.0416427118618">
+        <neutronic p="-158.653" r="4.71616" t="82.792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14166" x="-2.44329515349" y="-1.6290453125" z="-0.0416427118618">
+        <neutronic p="-159.18" r="4.71697" t="82.7667"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14167" x="-2.44329515349" y="-1.59086328125" z="-0.0416427118618">
+        <neutronic p="-159.711" r="4.71776" t="82.7418"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14168" x="-2.44329515349" y="-1.55268125" z="-0.0416427118618">
+        <neutronic p="-160.245" r="4.71852" t="82.7174"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14169" x="-2.44329515349" y="-1.51449921875" z="-0.0416427118618">
+        <neutronic p="-160.782" r="4.71926" t="82.6934"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14170" x="-2.44329515349" y="-1.4763171875" z="-0.0416427118618">
+        <neutronic p="-161.322" r="4.71998" t="82.67"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14171" x="-2.44329515349" y="-1.43813515625" z="-0.0416427118618">
+        <neutronic p="-161.866" r="4.72066" t="82.647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14172" x="-2.44329515349" y="-1.399953125" z="-0.0416427118618">
+        <neutronic p="-162.413" r="4.72133" t="82.6246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14173" x="-2.44329515349" y="-1.36177109375" z="-0.0416427118618">
+        <neutronic p="-162.963" r="4.72196" t="82.6028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14174" x="-2.44329515349" y="-1.3235890625" z="-0.0416427118618">
+        <neutronic p="-163.516" r="4.72257" t="82.5815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14175" x="-2.44329515349" y="-1.28540703125" z="-0.0416427118618">
+        <neutronic p="-164.072" r="4.72315" t="82.5608"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14176" x="-2.44329515349" y="-1.247225" z="-0.0416427118618">
+        <neutronic p="-164.63" r="4.72371" t="82.5407"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14177" x="-2.44329515349" y="-1.20904296875" z="-0.0416427118618">
+        <neutronic p="-165.192" r="4.72424" t="82.5211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14178" x="-2.44329515349" y="-1.1708609375" z="-0.0416427118618">
+        <neutronic p="-165.756" r="4.72474" t="82.5023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14179" x="-2.44329515349" y="-1.13267890625" z="-0.0416427118618">
+        <neutronic p="-166.322" r="4.72521" t="82.484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14180" x="-2.44329515349" y="-1.094496875" z="-0.0416427118618">
+        <neutronic p="-166.891" r="4.72566" t="82.4664"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14181" x="-2.44329515349" y="-1.05631484375" z="-0.0416427118618">
+        <neutronic p="-167.462" r="4.72608" t="82.4495"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14182" x="-2.44329515349" y="-1.0181328125" z="-0.0416427118618">
+        <neutronic p="-168.036" r="4.72647" t="82.4333"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14183" x="-2.44329515349" y="-0.97995078125" z="-0.0416427118618">
+        <neutronic p="-168.611" r="4.72684" t="82.4177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14184" x="-2.44329515349" y="-0.94176875" z="-0.0416427118618">
+        <neutronic p="-169.189" r="4.72717" t="82.4029"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14185" x="-2.44329515349" y="-0.90358671875" z="-0.0416427118618">
+        <neutronic p="-169.769" r="4.72748" t="82.3888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14186" x="-2.44329515349" y="-0.8654046875" z="-0.0416427118618">
+        <neutronic p="-170.35" r="4.72776" t="82.3754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14187" x="-2.44329515349" y="-0.82722265625" z="-0.0416427118618">
+        <neutronic p="-170.933" r="4.72801" t="82.3628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14188" x="-2.44329515349" y="-0.789040625" z="-0.0416427118618">
+        <neutronic p="-171.517" r="4.72824" t="82.3509"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14189" x="-2.44329515349" y="-0.75085859375" z="-0.0416427118618">
+        <neutronic p="-172.103" r="4.72843" t="82.3397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14190" x="-2.44329515349" y="-0.7126765625" z="-0.0416427118618">
+        <neutronic p="-172.69" r="4.7286" t="82.3294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14191" x="-2.44329515349" y="-0.67449453125" z="-0.0416427118618">
+        <neutronic p="-173.279" r="4.72874" t="82.3198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14192" x="-2.44329515349" y="-0.6363125" z="-0.0416427118618">
+        <neutronic p="-173.868" r="4.72885" t="82.311"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14193" x="-2.44329515349" y="-0.59813046875" z="-0.0416427118618">
+        <neutronic p="-174.458" r="4.72893" t="82.303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14194" x="-2.44329515349" y="-0.5599484375" z="-0.0416427118618">
+        <neutronic p="-175.049" r="4.72898" t="82.2958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14195" x="-2.44329515349" y="-0.52176640625" z="-0.0416427118618">
+        <neutronic p="-175.641" r="4.72901" t="82.2894"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14196" x="-2.44329515349" y="-0.483584375" z="-0.0416427118618">
+        <neutronic p="-176.233" r="4.729" t="82.2838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14197" x="-2.44329515349" y="-0.44540234375" z="-0.0416427118618">
+        <neutronic p="-176.826" r="4.72897" t="82.279"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14198" x="-2.44329515349" y="-0.4072203125" z="-0.0416427118618">
+        <neutronic p="-177.419" r="4.72891" t="82.275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14199" x="-2.44329515349" y="-0.36903828125" z="-0.0416427118618">
+        <neutronic p="-178.012" r="4.72882" t="82.2719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14200" x="-2.44329515349" y="-0.33085625" z="-0.0416427118618">
+        <neutronic p="-178.605" r="4.7287" t="82.2695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14201" x="-2.44329515349" y="-0.29267421875" z="-0.0416427118618">
+        <neutronic p="-179.198" r="4.72855" t="82.268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14202" x="-2.44329515349" y="-0.2544921875" z="-0.0416427118618">
+        <neutronic p="-179.791" r="4.72838" t="82.2673"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14222" x="-2.4425785874" y="-1.9345015625" z="0.0723544530789">
+        <neutronic p="-154.899" r="4.70977" t="80.5139"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14223" x="-2.4425785874" y="-1.89631953125" z="0.0723544530789">
+        <neutronic p="-155.403" r="4.71076" t="80.4759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14224" x="-2.4425785874" y="-1.8581375" z="0.0723544530789">
+        <neutronic p="-155.911" r="4.71172" t="80.4384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14225" x="-2.4425785874" y="-1.81995546875" z="0.0723544530789">
+        <neutronic p="-156.422" r="4.71265" t="80.4013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14226" x="-2.4425785874" y="-1.7817734375" z="0.0723544530789">
+        <neutronic p="-156.937" r="4.71356" t="80.3647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14227" x="-2.4425785874" y="-1.74359140625" z="0.0723544530789">
+        <neutronic p="-157.456" r="4.71445" t="80.3286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14228" x="-2.4425785874" y="-1.705409375" z="0.0723544530789">
+        <neutronic p="-157.979" r="4.71532" t="80.2931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14229" x="-2.4425785874" y="-1.66722734375" z="0.0723544530789">
+        <neutronic p="-158.505" r="4.71616" t="80.2581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14230" x="-2.4425785874" y="-1.6290453125" z="0.0723544530789">
+        <neutronic p="-159.035" r="4.71697" t="80.2237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14231" x="-2.4425785874" y="-1.59086328125" z="0.0723544530789">
+        <neutronic p="-159.569" r="4.71776" t="80.19"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14232" x="-2.4425785874" y="-1.55268125" z="0.0723544530789">
+        <neutronic p="-160.106" r="4.71852" t="80.1568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14233" x="-2.4425785874" y="-1.51449921875" z="0.0723544530789">
+        <neutronic p="-160.646" r="4.71926" t="80.1243"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14234" x="-2.4425785874" y="-1.4763171875" z="0.0723544530789">
+        <neutronic p="-161.19" r="4.71998" t="80.0925"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14235" x="-2.4425785874" y="-1.43813515625" z="0.0723544530789">
+        <neutronic p="-161.737" r="4.72066" t="80.0613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14236" x="-2.4425785874" y="-1.399953125" z="0.0723544530789">
+        <neutronic p="-162.287" r="4.72133" t="80.0309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14237" x="-2.4425785874" y="-1.36177109375" z="0.0723544530789">
+        <neutronic p="-162.84" r="4.72196" t="80.0012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14238" x="-2.4425785874" y="-1.3235890625" z="0.0723544530789">
+        <neutronic p="-163.397" r="4.72257" t="79.9723"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14239" x="-2.4425785874" y="-1.28540703125" z="0.0723544530789">
+        <neutronic p="-163.956" r="4.72315" t="79.9442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14240" x="-2.4425785874" y="-1.247225" z="0.0723544530789">
+        <neutronic p="-164.519" r="4.72371" t="79.9169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14241" x="-2.4425785874" y="-1.20904296875" z="0.0723544530789">
+        <neutronic p="-165.084" r="4.72424" t="79.8904"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14242" x="-2.4425785874" y="-1.1708609375" z="0.0723544530789">
+        <neutronic p="-165.651" r="4.72474" t="79.8647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14243" x="-2.4425785874" y="-1.13267890625" z="0.0723544530789">
+        <neutronic p="-166.222" r="4.72521" t="79.8399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14244" x="-2.4425785874" y="-1.094496875" z="0.0723544530789">
+        <neutronic p="-166.795" r="4.72566" t="79.816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14245" x="-2.4425785874" y="-1.05631484375" z="0.0723544530789">
+        <neutronic p="-167.37" r="4.72608" t="79.7931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14246" x="-2.4425785874" y="-1.0181328125" z="0.0723544530789">
+        <neutronic p="-167.947" r="4.72647" t="79.771"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14247" x="-2.4425785874" y="-0.97995078125" z="0.0723544530789">
+        <neutronic p="-168.527" r="4.72684" t="79.7499"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14248" x="-2.4425785874" y="-0.94176875" z="0.0723544530789">
+        <neutronic p="-169.108" r="4.72717" t="79.7297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14249" x="-2.4425785874" y="-0.90358671875" z="0.0723544530789">
+        <neutronic p="-169.692" r="4.72748" t="79.7106"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14250" x="-2.4425785874" y="-0.8654046875" z="0.0723544530789">
+        <neutronic p="-170.278" r="4.72776" t="79.6924"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14251" x="-2.4425785874" y="-0.82722265625" z="0.0723544530789">
+        <neutronic p="-170.865" r="4.72801" t="79.6752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14252" x="-2.4425785874" y="-0.789040625" z="0.0723544530789">
+        <neutronic p="-171.453" r="4.72824" t="79.659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14253" x="-2.4425785874" y="-0.75085859375" z="0.0723544530789">
+        <neutronic p="-172.044" r="4.72843" t="79.6439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14254" x="-2.4425785874" y="-0.7126765625" z="0.0723544530789">
+        <neutronic p="-172.635" r="4.7286" t="79.6298"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14255" x="-2.4425785874" y="-0.67449453125" z="0.0723544530789">
+        <neutronic p="-173.228" r="4.72874" t="79.6168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14256" x="-2.4425785874" y="-0.6363125" z="0.0723544530789">
+        <neutronic p="-173.821" r="4.72885" t="79.6049"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14257" x="-2.4425785874" y="-0.59813046875" z="0.0723544530789">
+        <neutronic p="-174.416" r="4.72893" t="79.594"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14258" x="-2.4425785874" y="-0.5599484375" z="0.0723544530789">
+        <neutronic p="-175.012" r="4.72898" t="79.5842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14259" x="-2.4425785874" y="-0.52176640625" z="0.0723544530789">
+        <neutronic p="-175.608" r="4.72901" t="79.5755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14260" x="-2.4425785874" y="-0.483584375" z="0.0723544530789">
+        <neutronic p="-176.205" r="4.729" t="79.5679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14261" x="-2.4425785874" y="-0.44540234375" z="0.0723544530789">
+        <neutronic p="-176.802" r="4.72897" t="79.5614"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14262" x="-2.4425785874" y="-0.4072203125" z="0.0723544530789">
+        <neutronic p="-177.399" r="4.72891" t="79.556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14263" x="-2.4425785874" y="-0.36903828125" z="0.0723544530789">
+        <neutronic p="-177.997" r="4.72882" t="79.5517"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14264" x="-2.4425785874" y="-0.33085625" z="0.0723544530789">
+        <neutronic p="-178.594" r="4.7287" t="79.5485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14265" x="-2.4425785874" y="-0.29267421875" z="0.0723544530789">
+        <neutronic p="-179.192" r="4.72855" t="79.5465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14266" x="-2.4425785874" y="-0.2544921875" z="0.0723544530789">
+        <neutronic p="-179.789" r="4.72838" t="79.5455"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14286" x="-2.43654613357" y="-1.9345015625" z="0.186194149944">
+        <neutronic p="-154.68" r="4.70977" t="78.0512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14287" x="-2.43654613357" y="-1.89631953125" z="0.186194149944">
+        <neutronic p="-155.187" r="4.71076" t="78.0031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14288" x="-2.43654613357" y="-1.8581375" z="0.186194149944">
+        <neutronic p="-155.698" r="4.71172" t="77.9556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14289" x="-2.43654613357" y="-1.81995546875" z="0.186194149944">
+        <neutronic p="-156.212" r="4.71265" t="77.9086"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14290" x="-2.43654613357" y="-1.7817734375" z="0.186194149944">
+        <neutronic p="-156.731" r="4.71356" t="77.8623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14291" x="-2.43654613357" y="-1.74359140625" z="0.186194149944">
+        <neutronic p="-157.254" r="4.71445" t="77.8166"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14292" x="-2.43654613357" y="-1.705409375" z="0.186194149944">
+        <neutronic p="-157.78" r="4.71532" t="77.7716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14293" x="-2.43654613357" y="-1.66722734375" z="0.186194149944">
+        <neutronic p="-158.31" r="4.71616" t="77.7272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14294" x="-2.43654613357" y="-1.6290453125" z="0.186194149944">
+        <neutronic p="-158.844" r="4.71697" t="77.6837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14295" x="-2.43654613357" y="-1.59086328125" z="0.186194149944">
+        <neutronic p="-159.382" r="4.71776" t="77.6409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14296" x="-2.43654613357" y="-1.55268125" z="0.186194149944">
+        <neutronic p="-159.923" r="4.71852" t="77.5988"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14297" x="-2.43654613357" y="-1.51449921875" z="0.186194149944">
+        <neutronic p="-160.467" r="4.71926" t="77.5576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14298" x="-2.43654613357" y="-1.4763171875" z="0.186194149944">
+        <neutronic p="-161.015" r="4.71998" t="77.5173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14299" x="-2.43654613357" y="-1.43813515625" z="0.186194149944">
+        <neutronic p="-161.567" r="4.72066" t="77.4778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14300" x="-2.43654613357" y="-1.399953125" z="0.186194149944">
+        <neutronic p="-162.121" r="4.72133" t="77.4393"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14301" x="-2.43654613357" y="-1.36177109375" z="0.186194149944">
+        <neutronic p="-162.679" r="4.72196" t="77.4016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14302" x="-2.43654613357" y="-1.3235890625" z="0.186194149944">
+        <neutronic p="-163.24" r="4.72257" t="77.365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14303" x="-2.43654613357" y="-1.28540703125" z="0.186194149944">
+        <neutronic p="-163.804" r="4.72315" t="77.3293"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14304" x="-2.43654613357" y="-1.247225" z="0.186194149944">
+        <neutronic p="-164.371" r="4.72371" t="77.2947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14305" x="-2.43654613357" y="-1.20904296875" z="0.186194149944">
+        <neutronic p="-164.941" r="4.72424" t="77.2611"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14306" x="-2.43654613357" y="-1.1708609375" z="0.186194149944">
+        <neutronic p="-165.514" r="4.72474" t="77.2286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14307" x="-2.43654613357" y="-1.13267890625" z="0.186194149944">
+        <neutronic p="-166.089" r="4.72521" t="77.1972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14308" x="-2.43654613357" y="-1.094496875" z="0.186194149944">
+        <neutronic p="-166.667" r="4.72566" t="77.1669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14309" x="-2.43654613357" y="-1.05631484375" z="0.186194149944">
+        <neutronic p="-167.248" r="4.72608" t="77.1377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14310" x="-2.43654613357" y="-1.0181328125" z="0.186194149944">
+        <neutronic p="-167.83" r="4.72647" t="77.1097"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14311" x="-2.43654613357" y="-0.97995078125" z="0.186194149944">
+        <neutronic p="-168.415" r="4.72684" t="77.083"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14312" x="-2.43654613357" y="-0.94176875" z="0.186194149944">
+        <neutronic p="-169.002" r="4.72717" t="77.0574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14313" x="-2.43654613357" y="-0.90358671875" z="0.186194149944">
+        <neutronic p="-169.591" r="4.72748" t="77.0331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14314" x="-2.43654613357" y="-0.8654046875" z="0.186194149944">
+        <neutronic p="-170.182" r="4.72776" t="77.01"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14315" x="-2.43654613357" y="-0.82722265625" z="0.186194149944">
+        <neutronic p="-170.775" r="4.72801" t="76.9882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14316" x="-2.43654613357" y="-0.789040625" z="0.186194149944">
+        <neutronic p="-171.369" r="4.72824" t="76.9677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14317" x="-2.43654613357" y="-0.75085859375" z="0.186194149944">
+        <neutronic p="-171.965" r="4.72843" t="76.9485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14318" x="-2.43654613357" y="-0.7126765625" z="0.186194149944">
+        <neutronic p="-172.562" r="4.7286" t="76.9307"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14319" x="-2.43654613357" y="-0.67449453125" z="0.186194149944">
+        <neutronic p="-173.161" r="4.72874" t="76.9142"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14320" x="-2.43654613357" y="-0.6363125" z="0.186194149944">
+        <neutronic p="-173.76" r="4.72885" t="76.899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14321" x="-2.43654613357" y="-0.59813046875" z="0.186194149944">
+        <neutronic p="-174.361" r="4.72893" t="76.8852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14322" x="-2.43654613357" y="-0.5599484375" z="0.186194149944">
+        <neutronic p="-174.962" r="4.72898" t="76.8728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14323" x="-2.43654613357" y="-0.52176640625" z="0.186194149944">
+        <neutronic p="-175.564" r="4.72901" t="76.8617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14324" x="-2.43654613357" y="-0.483584375" z="0.186194149944">
+        <neutronic p="-176.167" r="4.729" t="76.8521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14325" x="-2.43654613357" y="-0.44540234375" z="0.186194149944">
+        <neutronic p="-176.77" r="4.72897" t="76.8438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14326" x="-2.43654613357" y="-0.4072203125" z="0.186194149944">
+        <neutronic p="-177.373" r="4.72891" t="76.837"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14327" x="-2.43654613357" y="-0.36903828125" z="0.186194149944">
+        <neutronic p="-177.977" r="4.72882" t="76.8316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14328" x="-2.43654613357" y="-0.33085625" z="0.186194149944">
+        <neutronic p="-178.58" r="4.7287" t="76.8275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14329" x="-2.43654613357" y="-0.29267421875" z="0.186194149944">
+        <neutronic p="-179.184" r="4.72855" t="76.8249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14330" x="-2.43654613357" y="-0.2544921875" z="0.186194149944">
+        <neutronic p="-179.787" r="4.72838" t="76.8237"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14350" x="-2.42521092069" y="-1.9345015625" z="0.299628624556">
+        <neutronic p="-154.406" r="4.70977" t="75.5936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14351" x="-2.42521092069" y="-1.89631953125" z="0.299628624556">
+        <neutronic p="-154.917" r="4.71076" t="75.5352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14352" x="-2.42521092069" y="-1.8581375" z="0.299628624556">
+        <neutronic p="-155.432" r="4.71172" t="75.4775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14353" x="-2.42521092069" y="-1.81995546875" z="0.299628624556">
+        <neutronic p="-155.951" r="4.71265" t="75.4205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14354" x="-2.42521092069" y="-1.7817734375" z="0.299628624556">
+        <neutronic p="-156.474" r="4.71356" t="75.3642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14355" x="-2.42521092069" y="-1.74359140625" z="0.299628624556">
+        <neutronic p="-157.001" r="4.71445" t="75.3087"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14356" x="-2.42521092069" y="-1.705409375" z="0.299628624556">
+        <neutronic p="-157.532" r="4.71532" t="75.254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14357" x="-2.42521092069" y="-1.66722734375" z="0.299628624556">
+        <neutronic p="-158.067" r="4.71616" t="75.2002"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14358" x="-2.42521092069" y="-1.6290453125" z="0.299628624556">
+        <neutronic p="-158.605" r="4.71697" t="75.1473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14359" x="-2.42521092069" y="-1.59086328125" z="0.299628624556">
+        <neutronic p="-159.148" r="4.71776" t="75.0953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14360" x="-2.42521092069" y="-1.55268125" z="0.299628624556">
+        <neutronic p="-159.694" r="4.71852" t="75.0442"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14361" x="-2.42521092069" y="-1.51449921875" z="0.299628624556">
+        <neutronic p="-160.244" r="4.71926" t="74.9942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14362" x="-2.42521092069" y="-1.4763171875" z="0.299628624556">
+        <neutronic p="-160.797" r="4.71998" t="74.9452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14363" x="-2.42521092069" y="-1.43813515625" z="0.299628624556">
+        <neutronic p="-161.354" r="4.72066" t="74.8972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14364" x="-2.42521092069" y="-1.399953125" z="0.299628624556">
+        <neutronic p="-161.914" r="4.72133" t="74.8503"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14365" x="-2.42521092069" y="-1.36177109375" z="0.299628624556">
+        <neutronic p="-162.478" r="4.72196" t="74.8046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14366" x="-2.42521092069" y="-1.3235890625" z="0.299628624556">
+        <neutronic p="-163.044" r="4.72257" t="74.7601"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14367" x="-2.42521092069" y="-1.28540703125" z="0.299628624556">
+        <neutronic p="-163.614" r="4.72315" t="74.7167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14368" x="-2.42521092069" y="-1.247225" z="0.299628624556">
+        <neutronic p="-164.187" r="4.72371" t="74.6746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14369" x="-2.42521092069" y="-1.20904296875" z="0.299628624556">
+        <neutronic p="-164.763" r="4.72424" t="74.6338"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14370" x="-2.42521092069" y="-1.1708609375" z="0.299628624556">
+        <neutronic p="-165.342" r="4.72474" t="74.5943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14371" x="-2.42521092069" y="-1.13267890625" z="0.299628624556">
+        <neutronic p="-165.924" r="4.72521" t="74.5561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14372" x="-2.42521092069" y="-1.094496875" z="0.299628624556">
+        <neutronic p="-166.508" r="4.72566" t="74.5192"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14373" x="-2.42521092069" y="-1.05631484375" z="0.299628624556">
+        <neutronic p="-167.095" r="4.72608" t="74.4838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14374" x="-2.42521092069" y="-1.0181328125" z="0.299628624556">
+        <neutronic p="-167.684" r="4.72647" t="74.4498"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14375" x="-2.42521092069" y="-0.97995078125" z="0.299628624556">
+        <neutronic p="-168.276" r="4.72684" t="74.4172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14376" x="-2.42521092069" y="-0.94176875" z="0.299628624556">
+        <neutronic p="-168.869" r="4.72717" t="74.3862"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14377" x="-2.42521092069" y="-0.90358671875" z="0.299628624556">
+        <neutronic p="-169.465" r="4.72748" t="74.3566"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14378" x="-2.42521092069" y="-0.8654046875" z="0.299628624556">
+        <neutronic p="-170.063" r="4.72776" t="74.3285"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14379" x="-2.42521092069" y="-0.82722265625" z="0.299628624556">
+        <neutronic p="-170.663" r="4.72801" t="74.302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14380" x="-2.42521092069" y="-0.789040625" z="0.299628624556">
+        <neutronic p="-171.264" r="4.72824" t="74.2771"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14381" x="-2.42521092069" y="-0.75085859375" z="0.299628624556">
+        <neutronic p="-171.867" r="4.72843" t="74.2538"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14382" x="-2.42521092069" y="-0.7126765625" z="0.299628624556">
+        <neutronic p="-172.471" r="4.7286" t="74.232"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14383" x="-2.42521092069" y="-0.67449453125" z="0.299628624556">
+        <neutronic p="-173.077" r="4.72874" t="74.2119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14384" x="-2.42521092069" y="-0.6363125" z="0.299628624556">
+        <neutronic p="-173.683" r="4.72885" t="74.1935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14385" x="-2.42521092069" y="-0.59813046875" z="0.299628624556">
+        <neutronic p="-174.291" r="4.72893" t="74.1767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14386" x="-2.42521092069" y="-0.5599484375" z="0.299628624556">
+        <neutronic p="-174.9" r="4.72898" t="74.1616"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14387" x="-2.42521092069" y="-0.52176640625" z="0.299628624556">
+        <neutronic p="-175.509" r="4.72901" t="74.1482"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14388" x="-2.42521092069" y="-0.483584375" z="0.299628624556">
+        <neutronic p="-176.119" r="4.729" t="74.1364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14389" x="-2.42521092069" y="-0.44540234375" z="0.299628624556">
+        <neutronic p="-176.73" r="4.72897" t="74.1264"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14390" x="-2.42521092069" y="-0.4072203125" z="0.299628624556">
+        <neutronic p="-177.341" r="4.72891" t="74.1181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14391" x="-2.42521092069" y="-0.36903828125" z="0.299628624556">
+        <neutronic p="-177.952" r="4.72882" t="74.1115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14392" x="-2.42521092069" y="-0.33085625" z="0.299628624556">
+        <neutronic p="-178.563" r="4.7287" t="74.1066"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14393" x="-2.42521092069" y="-0.29267421875" z="0.299628624556">
+        <neutronic p="-179.174" r="4.72855" t="74.1034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14394" x="-2.42521092069" y="-0.2544921875" z="0.299628624556">
+        <neutronic p="-179.784" r="4.72838" t="74.1019"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14414" x="-2.40859761807" y="-1.9345015625" z="0.412411004639">
+        <neutronic p="-154.075" r="4.70977" t="73.1422"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14415" x="-2.40859761807" y="-1.89631953125" z="0.412411004639">
+        <neutronic p="-154.591" r="4.71076" t="73.0733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14416" x="-2.40859761807" y="-1.8581375" z="0.412411004639">
+        <neutronic p="-155.11" r="4.71172" t="73.0052"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14417" x="-2.40859761807" y="-1.81995546875" z="0.412411004639">
+        <neutronic p="-155.634" r="4.71265" t="72.9379"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14418" x="-2.40859761807" y="-1.7817734375" z="0.412411004639">
+        <neutronic p="-156.163" r="4.71356" t="72.8715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14419" x="-2.40859761807" y="-1.74359140625" z="0.412411004639">
+        <neutronic p="-156.695" r="4.71445" t="72.806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14420" x="-2.40859761807" y="-1.705409375" z="0.412411004639">
+        <neutronic p="-157.232" r="4.71532" t="72.7415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14421" x="-2.40859761807" y="-1.66722734375" z="0.412411004639">
+        <neutronic p="-157.772" r="4.71616" t="72.6779"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14422" x="-2.40859761807" y="-1.6290453125" z="0.412411004639">
+        <neutronic p="-158.317" r="4.71697" t="72.6155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14423" x="-2.40859761807" y="-1.59086328125" z="0.412411004639">
+        <neutronic p="-158.865" r="4.71776" t="72.5541"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14424" x="-2.40859761807" y="-1.55268125" z="0.412411004639">
+        <neutronic p="-159.417" r="4.71852" t="72.4938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14425" x="-2.40859761807" y="-1.51449921875" z="0.412411004639">
+        <neutronic p="-159.973" r="4.71926" t="72.4347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14426" x="-2.40859761807" y="-1.4763171875" z="0.412411004639">
+        <neutronic p="-160.533" r="4.71998" t="72.3768"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14427" x="-2.40859761807" y="-1.43813515625" z="0.412411004639">
+        <neutronic p="-161.096" r="4.72066" t="72.3202"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14428" x="-2.40859761807" y="-1.399953125" z="0.412411004639">
+        <neutronic p="-161.663" r="4.72133" t="72.2648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14429" x="-2.40859761807" y="-1.36177109375" z="0.412411004639">
+        <neutronic p="-162.233" r="4.72196" t="72.2108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14430" x="-2.40859761807" y="-1.3235890625" z="0.412411004639">
+        <neutronic p="-162.807" r="4.72257" t="72.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14431" x="-2.40859761807" y="-1.28540703125" z="0.412411004639">
+        <neutronic p="-163.384" r="4.72315" t="72.107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14432" x="-2.40859761807" y="-1.247225" z="0.412411004639">
+        <neutronic p="-163.964" r="4.72371" t="72.0572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14433" x="-2.40859761807" y="-1.20904296875" z="0.412411004639">
+        <neutronic p="-164.547" r="4.72424" t="72.009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14434" x="-2.40859761807" y="-1.1708609375" z="0.412411004639">
+        <neutronic p="-165.134" r="4.72474" t="71.9623"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14435" x="-2.40859761807" y="-1.13267890625" z="0.412411004639">
+        <neutronic p="-165.723" r="4.72521" t="71.9171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14436" x="-2.40859761807" y="-1.094496875" z="0.412411004639">
+        <neutronic p="-166.315" r="4.72566" t="71.8736"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14437" x="-2.40859761807" y="-1.05631484375" z="0.412411004639">
+        <neutronic p="-166.909" r="4.72608" t="71.8317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14438" x="-2.40859761807" y="-1.0181328125" z="0.412411004639">
+        <neutronic p="-167.507" r="4.72647" t="71.7915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14439" x="-2.40859761807" y="-0.97995078125" z="0.412411004639">
+        <neutronic p="-168.106" r="4.72684" t="71.753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14440" x="-2.40859761807" y="-0.94176875" z="0.412411004639">
+        <neutronic p="-168.708" r="4.72717" t="71.7163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14441" x="-2.40859761807" y="-0.90358671875" z="0.412411004639">
+        <neutronic p="-169.312" r="4.72748" t="71.6813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14442" x="-2.40859761807" y="-0.8654046875" z="0.412411004639">
+        <neutronic p="-169.918" r="4.72776" t="71.6481"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14443" x="-2.40859761807" y="-0.82722265625" z="0.412411004639">
+        <neutronic p="-170.526" r="4.72801" t="71.6168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14444" x="-2.40859761807" y="-0.789040625" z="0.412411004639">
+        <neutronic p="-171.136" r="4.72824" t="71.5873"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14445" x="-2.40859761807" y="-0.75085859375" z="0.412411004639">
+        <neutronic p="-171.747" r="4.72843" t="71.5597"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14446" x="-2.40859761807" y="-0.7126765625" z="0.412411004639">
+        <neutronic p="-172.36" r="4.7286" t="71.534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14447" x="-2.40859761807" y="-0.67449453125" z="0.412411004639">
+        <neutronic p="-172.975" r="4.72874" t="71.5103"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14448" x="-2.40859761807" y="-0.6363125" z="0.412411004639">
+        <neutronic p="-173.59" r="4.72885" t="71.4884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14449" x="-2.40859761807" y="-0.59813046875" z="0.412411004639">
+        <neutronic p="-174.207" r="4.72893" t="71.4686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14450" x="-2.40859761807" y="-0.5599484375" z="0.412411004639">
+        <neutronic p="-174.825" r="4.72898" t="71.4507"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14451" x="-2.40859761807" y="-0.52176640625" z="0.412411004639">
+        <neutronic p="-175.443" r="4.72901" t="71.4348"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14452" x="-2.40859761807" y="-0.483584375" z="0.412411004639">
+        <neutronic p="-176.062" r="4.729" t="71.4209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14453" x="-2.40859761807" y="-0.44540234375" z="0.412411004639">
+        <neutronic p="-176.681" r="4.72897" t="71.4091"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14454" x="-2.40859761807" y="-0.4072203125" z="0.412411004639">
+        <neutronic p="-177.301" r="4.72891" t="71.3992"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14455" x="-2.40859761807" y="-0.36903828125" z="0.412411004639">
+        <neutronic p="-177.921" r="4.72882" t="71.3914"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14456" x="-2.40859761807" y="-0.33085625" z="0.412411004639">
+        <neutronic p="-178.541" r="4.7287" t="71.3856"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14457" x="-2.40859761807" y="-0.29267421875" z="0.412411004639">
+        <neutronic p="-179.161" r="4.72855" t="71.3819"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14458" x="-2.40859761807" y="-0.2544921875" z="0.412411004639">
+        <neutronic p="-179.781" r="4.72838" t="71.3801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14478" x="-2.38674238193" y="-1.9345015625" z="0.524295837101">
+        <neutronic p="-153.684" r="4.70977" t="70.6982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14479" x="-2.38674238193" y="-1.89631953125" z="0.524295837101">
+        <neutronic p="-154.205" r="4.71076" t="70.6186"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14480" x="-2.38674238193" y="-1.8581375" z="0.524295837101">
+        <neutronic p="-154.73" r="4.71172" t="70.5398"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14481" x="-2.38674238193" y="-1.81995546875" z="0.524295837101">
+        <neutronic p="-155.26" r="4.71265" t="70.4621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14482" x="-2.38674238193" y="-1.7817734375" z="0.524295837101">
+        <neutronic p="-155.795" r="4.71356" t="70.3853"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14483" x="-2.38674238193" y="-1.74359140625" z="0.524295837101">
+        <neutronic p="-156.333" r="4.71445" t="70.3096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14484" x="-2.38674238193" y="-1.705409375" z="0.524295837101">
+        <neutronic p="-156.876" r="4.71532" t="70.2349"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14485" x="-2.38674238193" y="-1.66722734375" z="0.524295837101">
+        <neutronic p="-157.423" r="4.71616" t="70.1615"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14486" x="-2.38674238193" y="-1.6290453125" z="0.524295837101">
+        <neutronic p="-157.975" r="4.71697" t="70.0892"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14487" x="-2.38674238193" y="-1.59086328125" z="0.524295837101">
+        <neutronic p="-158.53" r="4.71776" t="70.0181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14488" x="-2.38674238193" y="-1.55268125" z="0.524295837101">
+        <neutronic p="-159.089" r="4.71852" t="69.9484"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14489" x="-2.38674238193" y="-1.51449921875" z="0.524295837101">
+        <neutronic p="-159.653" r="4.71926" t="69.88"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14490" x="-2.38674238193" y="-1.4763171875" z="0.524295837101">
+        <neutronic p="-160.22" r="4.71998" t="69.813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14491" x="-2.38674238193" y="-1.43813515625" z="0.524295837101">
+        <neutronic p="-160.791" r="4.72066" t="69.7474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14492" x="-2.38674238193" y="-1.399953125" z="0.524295837101">
+        <neutronic p="-161.365" r="4.72133" t="69.6834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14493" x="-2.38674238193" y="-1.36177109375" z="0.524295837101">
+        <neutronic p="-161.944" r="4.72196" t="69.6209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14494" x="-2.38674238193" y="-1.3235890625" z="0.524295837101">
+        <neutronic p="-162.525" r="4.72257" t="69.5599"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14495" x="-2.38674238193" y="-1.28540703125" z="0.524295837101">
+        <neutronic p="-163.111" r="4.72315" t="69.5006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14496" x="-2.38674238193" y="-1.247225" z="0.524295837101">
+        <neutronic p="-163.699" r="4.72371" t="69.443"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14497" x="-2.38674238193" y="-1.20904296875" z="0.524295837101">
+        <neutronic p="-164.291" r="4.72424" t="69.3871"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14498" x="-2.38674238193" y="-1.1708609375" z="0.524295837101">
+        <neutronic p="-164.886" r="4.72474" t="69.333"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14499" x="-2.38674238193" y="-1.13267890625" z="0.524295837101">
+        <neutronic p="-165.485" r="4.72521" t="69.2807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14500" x="-2.38674238193" y="-1.094496875" z="0.524295837101">
+        <neutronic p="-166.086" r="4.72566" t="69.2303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14501" x="-2.38674238193" y="-1.05631484375" z="0.524295837101">
+        <neutronic p="-166.689" r="4.72608" t="69.1818"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14502" x="-2.38674238193" y="-1.0181328125" z="0.524295837101">
+        <neutronic p="-167.296" r="4.72647" t="69.1352"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14503" x="-2.38674238193" y="-0.97995078125" z="0.524295837101">
+        <neutronic p="-167.905" r="4.72684" t="69.0906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14504" x="-2.38674238193" y="-0.94176875" z="0.524295837101">
+        <neutronic p="-168.516" r="4.72717" t="69.048"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14505" x="-2.38674238193" y="-0.90358671875" z="0.524295837101">
+        <neutronic p="-169.13" r="4.72748" t="69.0075"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14506" x="-2.38674238193" y="-0.8654046875" z="0.524295837101">
+        <neutronic p="-169.746" r="4.72776" t="68.969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14507" x="-2.38674238193" y="-0.82722265625" z="0.524295837101">
+        <neutronic p="-170.364" r="4.72801" t="68.9327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14508" x="-2.38674238193" y="-0.789040625" z="0.524295837101">
+        <neutronic p="-170.984" r="4.72824" t="68.8985"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14509" x="-2.38674238193" y="-0.75085859375" z="0.524295837101">
+        <neutronic p="-171.606" r="4.72843" t="68.8665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14510" x="-2.38674238193" y="-0.7126765625" z="0.524295837101">
+        <neutronic p="-172.229" r="4.7286" t="68.8368"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14511" x="-2.38674238193" y="-0.67449453125" z="0.524295837101">
+        <neutronic p="-172.854" r="4.72874" t="68.8092"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14512" x="-2.38674238193" y="-0.6363125" z="0.524295837101">
+        <neutronic p="-173.48" r="4.72885" t="68.7839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14513" x="-2.38674238193" y="-0.59813046875" z="0.524295837101">
+        <neutronic p="-174.107" r="4.72893" t="68.7609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14514" x="-2.38674238193" y="-0.5599484375" z="0.524295837101">
+        <neutronic p="-174.735" r="4.72898" t="68.7402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14515" x="-2.38674238193" y="-0.52176640625" z="0.524295837101">
+        <neutronic p="-175.364" r="4.72901" t="68.7218"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14516" x="-2.38674238193" y="-0.483584375" z="0.524295837101">
+        <neutronic p="-175.993" r="4.729" t="68.7057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14517" x="-2.38674238193" y="-0.44540234375" z="0.524295837101">
+        <neutronic p="-176.624" r="4.72897" t="68.6919"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14518" x="-2.38674238193" y="-0.4072203125" z="0.524295837101">
+        <neutronic p="-177.254" r="4.72891" t="68.6805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14519" x="-2.38674238193" y="-0.36903828125" z="0.524295837101">
+        <neutronic p="-177.885" r="4.72882" t="68.6714"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14520" x="-2.38674238193" y="-0.33085625" z="0.524295837101">
+        <neutronic p="-178.516" r="4.7287" t="68.6647"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14521" x="-2.38674238193" y="-0.29267421875" z="0.524295837101">
+        <neutronic p="-179.147" r="4.72855" t="68.6603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14522" x="-2.38674238193" y="-0.2544921875" z="0.524295837101">
+        <neutronic p="-179.777" r="4.72838" t="68.6583"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14542" x="-2.35969277676" y="-1.9345015625" z="0.635039622217">
+        <neutronic p="-153.228" r="4.70977" t="68.2632"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14543" x="-2.35969277676" y="-1.89631953125" z="0.635039622217">
+        <neutronic p="-153.756" r="4.71076" t="68.1725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14544" x="-2.35969277676" y="-1.8581375" z="0.635039622217">
+        <neutronic p="-154.288" r="4.71172" t="68.0829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14545" x="-2.35969277676" y="-1.81995546875" z="0.635039622217">
+        <neutronic p="-154.825" r="4.71265" t="67.9943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14546" x="-2.35969277676" y="-1.7817734375" z="0.635039622217">
+        <neutronic p="-155.366" r="4.71356" t="67.9069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14547" x="-2.35969277676" y="-1.74359140625" z="0.635039622217">
+        <neutronic p="-155.912" r="4.71445" t="67.8206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14548" x="-2.35969277676" y="-1.705409375" z="0.635039622217">
+        <neutronic p="-156.462" r="4.71532" t="67.7356"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14549" x="-2.35969277676" y="-1.66722734375" z="0.635039622217">
+        <neutronic p="-157.017" r="4.71616" t="67.6519"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14550" x="-2.35969277676" y="-1.6290453125" z="0.635039622217">
+        <neutronic p="-157.576" r="4.71697" t="67.5695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14551" x="-2.35969277676" y="-1.59086328125" z="0.635039622217">
+        <neutronic p="-158.139" r="4.71776" t="67.4885"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14552" x="-2.35969277676" y="-1.55268125" z="0.635039622217">
+        <neutronic p="-158.707" r="4.71852" t="67.409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14553" x="-2.35969277676" y="-1.51449921875" z="0.635039622217">
+        <neutronic p="-159.278" r="4.71926" t="67.331"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14554" x="-2.35969277676" y="-1.4763171875" z="0.635039622217">
+        <neutronic p="-159.854" r="4.71998" t="67.2547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14555" x="-2.35969277676" y="-1.43813515625" z="0.635039622217">
+        <neutronic p="-160.434" r="4.72066" t="67.1799"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14556" x="-2.35969277676" y="-1.399953125" z="0.635039622217">
+        <neutronic p="-161.018" r="4.72133" t="67.1068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14557" x="-2.35969277676" y="-1.36177109375" z="0.635039622217">
+        <neutronic p="-161.605" r="4.72196" t="67.0355"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14558" x="-2.35969277676" y="-1.3235890625" z="0.635039622217">
+        <neutronic p="-162.197" r="4.72257" t="66.966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14559" x="-2.35969277676" y="-1.28540703125" z="0.635039622217">
+        <neutronic p="-162.792" r="4.72315" t="66.8984"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14560" x="-2.35969277676" y="-1.247225" z="0.635039622217">
+        <neutronic p="-163.39" r="4.72371" t="66.8326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14561" x="-2.35969277676" y="-1.20904296875" z="0.635039622217">
+        <neutronic p="-163.992" r="4.72424" t="66.7689"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14562" x="-2.35969277676" y="-1.1708609375" z="0.635039622217">
+        <neutronic p="-164.597" r="4.72474" t="66.7071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14563" x="-2.35969277676" y="-1.13267890625" z="0.635039622217">
+        <neutronic p="-165.206" r="4.72521" t="66.6474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14564" x="-2.35969277676" y="-1.094496875" z="0.635039622217">
+        <neutronic p="-165.817" r="4.72566" t="66.5899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14565" x="-2.35969277676" y="-1.05631484375" z="0.635039622217">
+        <neutronic p="-166.432" r="4.72608" t="66.5345"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14566" x="-2.35969277676" y="-1.0181328125" z="0.635039622217">
+        <neutronic p="-167.049" r="4.72647" t="66.4813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14567" x="-2.35969277676" y="-0.97995078125" z="0.635039622217">
+        <neutronic p="-167.669" r="4.72684" t="66.4303"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14568" x="-2.35969277676" y="-0.94176875" z="0.635039622217">
+        <neutronic p="-168.292" r="4.72717" t="66.3817"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14569" x="-2.35969277676" y="-0.90358671875" z="0.635039622217">
+        <neutronic p="-168.917" r="4.72748" t="66.3354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14570" x="-2.35969277676" y="-0.8654046875" z="0.635039622217">
+        <neutronic p="-169.545" r="4.72776" t="66.2915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14571" x="-2.35969277676" y="-0.82722265625" z="0.635039622217">
+        <neutronic p="-170.174" r="4.72801" t="66.25"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14572" x="-2.35969277676" y="-0.789040625" z="0.635039622217">
+        <neutronic p="-170.806" r="4.72824" t="66.211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14573" x="-2.35969277676" y="-0.75085859375" z="0.635039622217">
+        <neutronic p="-171.44" r="4.72843" t="66.1745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14574" x="-2.35969277676" y="-0.7126765625" z="0.635039622217">
+        <neutronic p="-172.075" r="4.7286" t="66.1404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14575" x="-2.35969277676" y="-0.67449453125" z="0.635039622217">
+        <neutronic p="-172.712" r="4.72874" t="66.1089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14576" x="-2.35969277676" y="-0.6363125" z="0.635039622217">
+        <neutronic p="-173.35" r="4.72885" t="66.0801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14577" x="-2.35969277676" y="-0.59813046875" z="0.635039622217">
+        <neutronic p="-173.989" r="4.72893" t="66.0537"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14578" x="-2.35969277676" y="-0.5599484375" z="0.635039622217">
+        <neutronic p="-174.63" r="4.72898" t="66.0301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14579" x="-2.35969277676" y="-0.52176640625" z="0.635039622217">
+        <neutronic p="-175.271" r="4.72901" t="66.009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14580" x="-2.35969277676" y="-0.483584375" z="0.635039622217">
+        <neutronic p="-175.913" r="4.729" t="65.9906"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14581" x="-2.35969277676" y="-0.44540234375" z="0.635039622217">
+        <neutronic p="-176.556" r="4.72897" t="65.9749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14582" x="-2.35969277676" y="-0.4072203125" z="0.635039622217">
+        <neutronic p="-177.199" r="4.72891" t="65.9618"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14583" x="-2.35969277676" y="-0.36903828125" z="0.635039622217">
+        <neutronic p="-177.843" r="4.72882" t="65.9515"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14584" x="-2.35969277676" y="-0.33085625" z="0.635039622217">
+        <neutronic p="-178.486" r="4.7287" t="65.9438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14585" x="-2.35969277676" y="-0.29267421875" z="0.635039622217">
+        <neutronic p="-179.13" r="4.72855" t="65.9388"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14586" x="-2.35969277676" y="-0.2544921875" z="0.635039622217">
+        <neutronic p="-179.773" r="4.72838" t="65.9365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14606" x="-2.32750767178" y="-1.9345015625" z="0.744401343575">
+        <neutronic p="-152.704" r="4.70977" t="65.8386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14607" x="-2.32750767178" y="-1.89631953125" z="0.744401343575">
+        <neutronic p="-153.239" r="4.71076" t="65.7366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14608" x="-2.32750767178" y="-1.8581375" z="0.744401343575">
+        <neutronic p="-153.779" r="4.71172" t="65.6357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14609" x="-2.32750767178" y="-1.81995546875" z="0.744401343575">
+        <neutronic p="-154.323" r="4.71265" t="65.536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14610" x="-2.32750767178" y="-1.7817734375" z="0.744401343575">
+        <neutronic p="-154.872" r="4.71356" t="65.4376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14611" x="-2.32750767178" y="-1.74359140625" z="0.744401343575">
+        <neutronic p="-155.426" r="4.71445" t="65.3404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14612" x="-2.32750767178" y="-1.705409375" z="0.744401343575">
+        <neutronic p="-155.985" r="4.71532" t="65.2447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14613" x="-2.32750767178" y="-1.66722734375" z="0.744401343575">
+        <neutronic p="-156.548" r="4.71616" t="65.1504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14614" x="-2.32750767178" y="-1.6290453125" z="0.744401343575">
+        <neutronic p="-157.116" r="4.71697" t="65.0576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14615" x="-2.32750767178" y="-1.59086328125" z="0.744401343575">
+        <neutronic p="-157.688" r="4.71776" t="64.9663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14616" x="-2.32750767178" y="-1.55268125" z="0.744401343575">
+        <neutronic p="-158.265" r="4.71852" t="64.8768"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14617" x="-2.32750767178" y="-1.51449921875" z="0.744401343575">
+        <neutronic p="-158.846" r="4.71926" t="64.7889"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14618" x="-2.32750767178" y="-1.4763171875" z="0.744401343575">
+        <neutronic p="-159.432" r="4.71998" t="64.7028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14619" x="-2.32750767178" y="-1.43813515625" z="0.744401343575">
+        <neutronic p="-160.022" r="4.72066" t="64.6185"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14620" x="-2.32750767178" y="-1.399953125" z="0.744401343575">
+        <neutronic p="-160.616" r="4.72133" t="64.5361"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14621" x="-2.32750767178" y="-1.36177109375" z="0.744401343575">
+        <neutronic p="-161.214" r="4.72196" t="64.4557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14622" x="-2.32750767178" y="-1.3235890625" z="0.744401343575">
+        <neutronic p="-161.816" r="4.72257" t="64.3773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14623" x="-2.32750767178" y="-1.28540703125" z="0.744401343575">
+        <neutronic p="-162.422" r="4.72315" t="64.3009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14624" x="-2.32750767178" y="-1.247225" z="0.744401343575">
+        <neutronic p="-163.032" r="4.72371" t="64.2268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14625" x="-2.32750767178" y="-1.20904296875" z="0.744401343575">
+        <neutronic p="-163.646" r="4.72424" t="64.1548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14626" x="-2.32750767178" y="-1.1708609375" z="0.744401343575">
+        <neutronic p="-164.263" r="4.72474" t="64.0851"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14627" x="-2.32750767178" y="-1.13267890625" z="0.744401343575">
+        <neutronic p="-164.883" r="4.72521" t="64.0178"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14628" x="-2.32750767178" y="-1.094496875" z="0.744401343575">
+        <neutronic p="-165.507" r="4.72566" t="63.9528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14629" x="-2.32750767178" y="-1.05631484375" z="0.744401343575">
+        <neutronic p="-166.134" r="4.72608" t="63.8902"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14630" x="-2.32750767178" y="-1.0181328125" z="0.744401343575">
+        <neutronic p="-166.764" r="4.72647" t="63.8302"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14631" x="-2.32750767178" y="-0.97995078125" z="0.744401343575">
+        <neutronic p="-167.397" r="4.72684" t="63.7727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14632" x="-2.32750767178" y="-0.94176875" z="0.744401343575">
+        <neutronic p="-168.032" r="4.72717" t="63.7177"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14633" x="-2.32750767178" y="-0.90358671875" z="0.744401343575">
+        <neutronic p="-168.671" r="4.72748" t="63.6655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14634" x="-2.32750767178" y="-0.8654046875" z="0.744401343575">
+        <neutronic p="-169.311" r="4.72776" t="63.6159"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14635" x="-2.32750767178" y="-0.82722265625" z="0.744401343575">
+        <neutronic p="-169.955" r="4.72801" t="63.569"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14636" x="-2.32750767178" y="-0.789040625" z="0.744401343575">
+        <neutronic p="-170.6" r="4.72824" t="63.5249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14637" x="-2.32750767178" y="-0.75085859375" z="0.744401343575">
+        <neutronic p="-171.247" r="4.72843" t="63.4836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14638" x="-2.32750767178" y="-0.7126765625" z="0.744401343575">
+        <neutronic p="-171.896" r="4.7286" t="63.4452"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14639" x="-2.32750767178" y="-0.67449453125" z="0.744401343575">
+        <neutronic p="-172.547" r="4.72874" t="63.4096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14640" x="-2.32750767178" y="-0.6363125" z="0.744401343575">
+        <neutronic p="-173.199" r="4.72885" t="63.377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14641" x="-2.32750767178" y="-0.59813046875" z="0.744401343575">
+        <neutronic p="-173.853" r="4.72893" t="63.3472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14642" x="-2.32750767178" y="-0.5599484375" z="0.744401343575">
+        <neutronic p="-174.508" r="4.72898" t="63.3205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14643" x="-2.32750767178" y="-0.52176640625" z="0.744401343575">
+        <neutronic p="-175.164" r="4.72901" t="63.2967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14644" x="-2.32750767178" y="-0.483584375" z="0.744401343575">
+        <neutronic p="-175.82" r="4.729" t="63.2759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14645" x="-2.32750767178" y="-0.44540234375" z="0.744401343575">
+        <neutronic p="-176.478" r="4.72897" t="63.2581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14646" x="-2.32750767178" y="-0.4072203125" z="0.744401343575">
+        <neutronic p="-177.135" r="4.72891" t="63.2434"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14647" x="-2.32750767178" y="-0.36903828125" z="0.744401343575">
+        <neutronic p="-177.793" r="4.72882" t="63.2316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14648" x="-2.32750767178" y="-0.33085625" z="0.744401343575">
+        <neutronic p="-178.452" r="4.7287" t="63.223"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14649" x="-2.32750767178" y="-0.29267421875" z="0.744401343575">
+        <neutronic p="-179.11" r="4.72855" t="63.2173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14650" x="-2.32750767178" y="-0.2544921875" z="0.744401343575">
+        <neutronic p="-179.767" r="4.72838" t="63.2147"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14670" x="-2.29025711278" y="-1.9345015625" z="0.852142992607">
+        <neutronic p="-152.106" r="4.70977" t="63.4263"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14671" x="-2.29025711278" y="-1.89631953125" z="0.852142992607">
+        <neutronic p="-152.649" r="4.71076" t="63.3125"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14672" x="-2.29025711278" y="-1.8581375" z="0.852142992607">
+        <neutronic p="-153.197" r="4.71172" t="63.2"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14673" x="-2.29025711278" y="-1.81995546875" z="0.852142992607">
+        <neutronic p="-153.75" r="4.71265" t="63.0888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14674" x="-2.29025711278" y="-1.7817734375" z="0.852142992607">
+        <neutronic p="-154.308" r="4.71356" t="62.979"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14675" x="-2.29025711278" y="-1.74359140625" z="0.852142992607">
+        <neutronic p="-154.871" r="4.71445" t="62.8706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14676" x="-2.29025711278" y="-1.705409375" z="0.852142992607">
+        <neutronic p="-155.439" r="4.71532" t="62.7637"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14677" x="-2.29025711278" y="-1.66722734375" z="0.852142992607">
+        <neutronic p="-156.012" r="4.71616" t="62.6584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14678" x="-2.29025711278" y="-1.6290453125" z="0.852142992607">
+        <neutronic p="-156.589" r="4.71697" t="62.5548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14679" x="-2.29025711278" y="-1.59086328125" z="0.852142992607">
+        <neutronic p="-157.172" r="4.71776" t="62.4529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14680" x="-2.29025711278" y="-1.55268125" z="0.852142992607">
+        <neutronic p="-157.76" r="4.71852" t="62.3528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14681" x="-2.29025711278" y="-1.51449921875" z="0.852142992607">
+        <neutronic p="-158.352" r="4.71926" t="62.2546"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14682" x="-2.29025711278" y="-1.4763171875" z="0.852142992607">
+        <neutronic p="-158.948" r="4.71998" t="62.1584"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14683" x="-2.29025711278" y="-1.43813515625" z="0.852142992607">
+        <neutronic p="-159.55" r="4.72066" t="62.0642"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14684" x="-2.29025711278" y="-1.399953125" z="0.852142992607">
+        <neutronic p="-160.156" r="4.72133" t="61.9721"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14685" x="-2.29025711278" y="-1.36177109375" z="0.852142992607">
+        <neutronic p="-160.766" r="4.72196" t="61.8822"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14686" x="-2.29025711278" y="-1.3235890625" z="0.852142992607">
+        <neutronic p="-161.38" r="4.72257" t="61.7945"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14687" x="-2.29025711278" y="-1.28540703125" z="0.852142992607">
+        <neutronic p="-161.999" r="4.72315" t="61.7092"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14688" x="-2.29025711278" y="-1.247225" z="0.852142992607">
+        <neutronic p="-162.621" r="4.72371" t="61.6262"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14689" x="-2.29025711278" y="-1.20904296875" z="0.852142992607">
+        <neutronic p="-163.248" r="4.72424" t="61.5457"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14690" x="-2.29025711278" y="-1.1708609375" z="0.852142992607">
+        <neutronic p="-163.878" r="4.72474" t="61.4678"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14691" x="-2.29025711278" y="-1.13267890625" z="0.852142992607">
+        <neutronic p="-164.512" r="4.72521" t="61.3924"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14692" x="-2.29025711278" y="-1.094496875" z="0.852142992607">
+        <neutronic p="-165.15" r="4.72566" t="61.3197"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14693" x="-2.29025711278" y="-1.05631484375" z="0.852142992607">
+        <neutronic p="-165.791" r="4.72608" t="61.2497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14694" x="-2.29025711278" y="-1.0181328125" z="0.852142992607">
+        <neutronic p="-166.435" r="4.72647" t="61.1824"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14695" x="-2.29025711278" y="-0.97995078125" z="0.852142992607">
+        <neutronic p="-167.083" r="4.72684" t="61.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14696" x="-2.29025711278" y="-0.94176875" z="0.852142992607">
+        <neutronic p="-167.733" r="4.72717" t="61.0565"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14697" x="-2.29025711278" y="-0.90358671875" z="0.852142992607">
+        <neutronic p="-168.387" r="4.72748" t="60.998"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14698" x="-2.29025711278" y="-0.8654046875" z="0.852142992607">
+        <neutronic p="-169.043" r="4.72776" t="60.9424"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14699" x="-2.29025711278" y="-0.82722265625" z="0.852142992607">
+        <neutronic p="-169.701" r="4.72801" t="60.8899"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14700" x="-2.29025711278" y="-0.789040625" z="0.852142992607">
+        <neutronic p="-170.362" r="4.72824" t="60.8406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14701" x="-2.29025711278" y="-0.75085859375" z="0.852142992607">
+        <neutronic p="-171.025" r="4.72843" t="60.7943"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14702" x="-2.29025711278" y="-0.7126765625" z="0.852142992607">
+        <neutronic p="-171.69" r="4.7286" t="60.7512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14703" x="-2.29025711278" y="-0.67449453125" z="0.852142992607">
+        <neutronic p="-172.357" r="4.72874" t="60.7114"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14704" x="-2.29025711278" y="-0.6363125" z="0.852142992607">
+        <neutronic p="-173.026" r="4.72885" t="60.6748"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14705" x="-2.29025711278" y="-0.59813046875" z="0.852142992607">
+        <neutronic p="-173.696" r="4.72893" t="60.6415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14706" x="-2.29025711278" y="-0.5599484375" z="0.852142992607">
+        <neutronic p="-174.367" r="4.72898" t="60.6115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14707" x="-2.29025711278" y="-0.52176640625" z="0.852142992607">
+        <neutronic p="-175.04" r="4.72901" t="60.5848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14708" x="-2.29025711278" y="-0.483584375" z="0.852142992607">
+        <neutronic p="-175.713" r="4.729" t="60.5615"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14709" x="-2.29025711278" y="-0.44540234375" z="0.852142992607">
+        <neutronic p="-176.387" r="4.72897" t="60.5416"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14710" x="-2.29025711278" y="-0.4072203125" z="0.852142992607">
+        <neutronic p="-177.062" r="4.72891" t="60.525"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14711" x="-2.29025711278" y="-0.36903828125" z="0.852142992607">
+        <neutronic p="-177.737" r="4.72882" t="60.5119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14712" x="-2.29025711278" y="-0.33085625" z="0.852142992607">
+        <neutronic p="-178.412" r="4.7287" t="60.5022"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14713" x="-2.29025711278" y="-0.29267421875" z="0.852142992607">
+        <neutronic p="-179.087" r="4.72855" t="60.4958"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14714" x="-2.29025711278" y="-0.2544921875" z="0.852142992607">
+        <neutronic p="-179.761" r="4.72838" t="60.4929"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14734" x="-2.24802216976" y="-1.9345015625" z="0.958030086575">
+        <neutronic p="-151.428" r="4.70977" t="61.0282"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14735" x="-2.24802216976" y="-1.89631953125" z="0.958030086575">
+        <neutronic p="-151.98" r="4.71076" t="60.9022"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14736" x="-2.24802216976" y="-1.8581375" z="0.958030086575">
+        <neutronic p="-152.536" r="4.71172" t="60.7776"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14737" x="-2.24802216976" y="-1.81995546875" z="0.958030086575">
+        <neutronic p="-153.099" r="4.71265" t="60.6544"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14738" x="-2.24802216976" y="-1.7817734375" z="0.958030086575">
+        <neutronic p="-153.666" r="4.71356" t="60.5327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14739" x="-2.24802216976" y="-1.74359140625" z="0.958030086575">
+        <neutronic p="-154.239" r="4.71445" t="60.4126"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14740" x="-2.24802216976" y="-1.705409375" z="0.958030086575">
+        <neutronic p="-154.818" r="4.71532" t="60.2942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14741" x="-2.24802216976" y="-1.66722734375" z="0.958030086575">
+        <neutronic p="-155.401" r="4.71616" t="60.1775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14742" x="-2.24802216976" y="-1.6290453125" z="0.958030086575">
+        <neutronic p="-155.99" r="4.71697" t="60.0626"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14743" x="-2.24802216976" y="-1.59086328125" z="0.958030086575">
+        <neutronic p="-156.584" r="4.71776" t="59.9496"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14744" x="-2.24802216976" y="-1.55268125" z="0.958030086575">
+        <neutronic p="-157.184" r="4.71852" t="59.8386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14745" x="-2.24802216976" y="-1.51449921875" z="0.958030086575">
+        <neutronic p="-157.788" r="4.71926" t="59.7297"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14746" x="-2.24802216976" y="-1.4763171875" z="0.958030086575">
+        <neutronic p="-158.397" r="4.71998" t="59.6229"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14747" x="-2.24802216976" y="-1.43813515625" z="0.958030086575">
+        <neutronic p="-159.011" r="4.72066" t="59.5183"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14748" x="-2.24802216976" y="-1.399953125" z="0.958030086575">
+        <neutronic p="-159.63" r="4.72133" t="59.4161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14749" x="-2.24802216976" y="-1.36177109375" z="0.958030086575">
+        <neutronic p="-160.254" r="4.72196" t="59.3163"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14750" x="-2.24802216976" y="-1.3235890625" z="0.958030086575">
+        <neutronic p="-160.882" r="4.72257" t="59.2189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14751" x="-2.24802216976" y="-1.28540703125" z="0.958030086575">
+        <neutronic p="-161.515" r="4.72315" t="59.1241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14752" x="-2.24802216976" y="-1.247225" z="0.958030086575">
+        <neutronic p="-162.152" r="4.72371" t="59.032"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14753" x="-2.24802216976" y="-1.20904296875" z="0.958030086575">
+        <neutronic p="-162.793" r="4.72424" t="58.9425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14754" x="-2.24802216976" y="-1.1708609375" z="0.958030086575">
+        <neutronic p="-163.439" r="4.72474" t="58.8559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14755" x="-2.24802216976" y="-1.13267890625" z="0.958030086575">
+        <neutronic p="-164.089" r="4.72521" t="58.7721"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14756" x="-2.24802216976" y="-1.094496875" z="0.958030086575">
+        <neutronic p="-164.742" r="4.72566" t="58.6912"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14757" x="-2.24802216976" y="-1.05631484375" z="0.958030086575">
+        <neutronic p="-165.399" r="4.72608" t="58.6134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14758" x="-2.24802216976" y="-1.0181328125" z="0.958030086575">
+        <neutronic p="-166.06" r="4.72647" t="58.5386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14759" x="-2.24802216976" y="-0.97995078125" z="0.958030086575">
+        <neutronic p="-166.724" r="4.72684" t="58.467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14760" x="-2.24802216976" y="-0.94176875" z="0.958030086575">
+        <neutronic p="-167.391" r="4.72717" t="58.3986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14761" x="-2.24802216976" y="-0.90358671875" z="0.958030086575">
+        <neutronic p="-168.062" r="4.72748" t="58.3334"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14762" x="-2.24802216976" y="-0.8654046875" z="0.958030086575">
+        <neutronic p="-168.735" r="4.72776" t="58.2716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14763" x="-2.24802216976" y="-0.82722265625" z="0.958030086575">
+        <neutronic p="-169.411" r="4.72801" t="58.2132"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14764" x="-2.24802216976" y="-0.789040625" z="0.958030086575">
+        <neutronic p="-170.09" r="4.72824" t="58.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14765" x="-2.24802216976" y="-0.75085859375" z="0.958030086575">
+        <neutronic p="-170.771" r="4.72843" t="58.1067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14766" x="-2.24802216976" y="-0.7126765625" z="0.958030086575">
+        <neutronic p="-171.455" r="4.7286" t="58.0588"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14767" x="-2.24802216976" y="-0.67449453125" z="0.958030086575">
+        <neutronic p="-172.14" r="4.72874" t="58.0144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14768" x="-2.24802216976" y="-0.6363125" z="0.958030086575">
+        <neutronic p="-172.827" r="4.72885" t="57.9737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14769" x="-2.24802216976" y="-0.59813046875" z="0.958030086575">
+        <neutronic p="-173.516" r="4.72893" t="57.9366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14770" x="-2.24802216976" y="-0.5599484375" z="0.958030086575">
+        <neutronic p="-174.206" r="4.72898" t="57.9031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14771" x="-2.24802216976" y="-0.52176640625" z="0.958030086575">
+        <neutronic p="-174.898" r="4.72901" t="57.8735"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14772" x="-2.24802216976" y="-0.483584375" z="0.958030086575">
+        <neutronic p="-175.59" r="4.729" t="57.8475"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14773" x="-2.24802216976" y="-0.44540234375" z="0.958030086575">
+        <neutronic p="-176.283" r="4.72897" t="57.8253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14774" x="-2.24802216976" y="-0.4072203125" z="0.958030086575">
+        <neutronic p="-176.977" r="4.72891" t="57.8069"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14775" x="-2.24802216976" y="-0.36903828125" z="0.958030086575">
+        <neutronic p="-177.671" r="4.72882" t="57.7923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14776" x="-2.24802216976" y="-0.33085625" z="0.958030086575">
+        <neutronic p="-178.366" r="4.7287" t="57.7814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14777" x="-2.24802216976" y="-0.29267421875" z="0.958030086575">
+        <neutronic p="-179.06" r="4.72855" t="57.7744"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14778" x="-2.24802216976" y="-0.2544921875" z="0.958030086575">
+        <neutronic p="-179.755" r="4.72838" t="57.7711"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14798" x="-2.2008947604" y="-1.9345015625" z="1.06183217889">
+        <neutronic p="-150.662" r="4.70977" t="58.6464"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14799" x="-2.2008947604" y="-1.89631953125" z="1.06183217889">
+        <neutronic p="-151.223" r="4.71076" t="58.5078"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14800" x="-2.2008947604" y="-1.8581375" z="1.06183217889">
+        <neutronic p="-151.79" r="4.71172" t="58.3706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14801" x="-2.2008947604" y="-1.81995546875" z="1.06183217889">
+        <neutronic p="-152.362" r="4.71265" t="58.235"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14802" x="-2.2008947604" y="-1.7817734375" z="1.06183217889">
+        <neutronic p="-152.94" r="4.71356" t="58.1009"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14803" x="-2.2008947604" y="-1.74359140625" z="1.06183217889">
+        <neutronic p="-153.525" r="4.71445" t="57.9686"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14804" x="-2.2008947604" y="-1.705409375" z="1.06183217889">
+        <neutronic p="-154.114" r="4.71532" t="57.8381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14805" x="-2.2008947604" y="-1.66722734375" z="1.06183217889">
+        <neutronic p="-154.71" r="4.71616" t="57.7094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14806" x="-2.2008947604" y="-1.6290453125" z="1.06183217889">
+        <neutronic p="-155.311" r="4.71697" t="57.5828"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14807" x="-2.2008947604" y="-1.59086328125" z="1.06183217889">
+        <neutronic p="-155.918" r="4.71776" t="57.4582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14808" x="-2.2008947604" y="-1.55268125" z="1.06183217889">
+        <neutronic p="-156.53" r="4.71852" t="57.3357"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14809" x="-2.2008947604" y="-1.51449921875" z="1.06183217889">
+        <neutronic p="-157.148" r="4.71926" t="57.2155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14810" x="-2.2008947604" y="-1.4763171875" z="1.06183217889">
+        <neutronic p="-157.771" r="4.71998" t="57.0977"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14811" x="-2.2008947604" y="-1.43813515625" z="1.06183217889">
+        <neutronic p="-158.4" r="4.72066" t="56.9823"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14812" x="-2.2008947604" y="-1.399953125" z="1.06183217889">
+        <neutronic p="-159.033" r="4.72133" t="56.8694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14813" x="-2.2008947604" y="-1.36177109375" z="1.06183217889">
+        <neutronic p="-159.672" r="4.72196" t="56.7591"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14814" x="-2.2008947604" y="-1.3235890625" z="1.06183217889">
+        <neutronic p="-160.316" r="4.72257" t="56.6516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14815" x="-2.2008947604" y="-1.28540703125" z="1.06183217889">
+        <neutronic p="-160.964" r="4.72315" t="56.5468"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14816" x="-2.2008947604" y="-1.247225" z="1.06183217889">
+        <neutronic p="-161.618" r="4.72371" t="56.445"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14817" x="-2.2008947604" y="-1.20904296875" z="1.06183217889">
+        <neutronic p="-162.276" r="4.72424" t="56.3461"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14818" x="-2.2008947604" y="-1.1708609375" z="1.06183217889">
+        <neutronic p="-162.938" r="4.72474" t="56.2503"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14819" x="-2.2008947604" y="-1.13267890625" z="1.06183217889">
+        <neutronic p="-163.605" r="4.72521" t="56.1576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14820" x="-2.2008947604" y="-1.094496875" z="1.06183217889">
+        <neutronic p="-164.277" r="4.72566" t="56.0682"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14821" x="-2.2008947604" y="-1.05631484375" z="1.06183217889">
+        <neutronic p="-164.952" r="4.72608" t="55.9821"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14822" x="-2.2008947604" y="-1.0181328125" z="1.06183217889">
+        <neutronic p="-165.631" r="4.72647" t="55.8994"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14823" x="-2.2008947604" y="-0.97995078125" z="1.06183217889">
+        <neutronic p="-166.314" r="4.72684" t="55.8201"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14824" x="-2.2008947604" y="-0.94176875" z="1.06183217889">
+        <neutronic p="-167.0" r="4.72717" t="55.7444"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14825" x="-2.2008947604" y="-0.90358671875" z="1.06183217889">
+        <neutronic p="-167.69" r="4.72748" t="55.6723"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14826" x="-2.2008947604" y="-0.8654046875" z="1.06183217889">
+        <neutronic p="-168.384" r="4.72776" t="55.6038"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14827" x="-2.2008947604" y="-0.82722265625" z="1.06183217889">
+        <neutronic p="-169.08" r="4.72801" t="55.5392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14828" x="-2.2008947604" y="-0.789040625" z="1.06183217889">
+        <neutronic p="-169.779" r="4.72824" t="55.4783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14829" x="-2.2008947604" y="-0.75085859375" z="1.06183217889">
+        <neutronic p="-170.481" r="4.72843" t="55.4212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14830" x="-2.2008947604" y="-0.7126765625" z="1.06183217889">
+        <neutronic p="-171.185" r="4.7286" t="55.3681"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14831" x="-2.2008947604" y="-0.67449453125" z="1.06183217889">
+        <neutronic p="-171.891" r="4.72874" t="55.319"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14832" x="-2.2008947604" y="-0.6363125" z="1.06183217889">
+        <neutronic p="-172.6" r="4.72885" t="55.2738"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14833" x="-2.2008947604" y="-0.59813046875" z="1.06183217889">
+        <neutronic p="-173.31" r="4.72893" t="55.2327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14834" x="-2.2008947604" y="-0.5599484375" z="1.06183217889">
+        <neutronic p="-174.022" r="4.72898" t="55.1957"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14835" x="-2.2008947604" y="-0.52176640625" z="1.06183217889">
+        <neutronic p="-174.735" r="4.72901" t="55.1628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14836" x="-2.2008947604" y="-0.483584375" z="1.06183217889">
+        <neutronic p="-175.449" r="4.729" t="55.134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14837" x="-2.2008947604" y="-0.44540234375" z="1.06183217889">
+        <neutronic p="-176.165" r="4.72897" t="55.1094"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14838" x="-2.2008947604" y="-0.4072203125" z="1.06183217889">
+        <neutronic p="-176.88" r="4.72891" t="55.089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14839" x="-2.2008947604" y="-0.36903828125" z="1.06183217889">
+        <neutronic p="-177.597" r="4.72882" t="55.0728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14840" x="-2.2008947604" y="-0.33085625" z="1.06183217889">
+        <neutronic p="-178.314" r="4.7287" t="55.0607"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14841" x="-2.2008947604" y="-0.29267421875" z="1.06183217889">
+        <neutronic p="-179.03" r="4.72855" t="55.0529"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14842" x="-2.2008947604" y="-0.2544921875" z="1.06183217889">
+        <neutronic p="-179.747" r="4.72838" t="55.0494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14862" x="-2.14897745011" y="-1.9345015625" z="1.16332336064">
+        <neutronic p="-149.8" r="4.70977" t="56.2836"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14863" x="-2.14897745011" y="-1.89631953125" z="1.16332336064">
+        <neutronic p="-150.371" r="4.71076" t="56.1317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14864" x="-2.14897745011" y="-1.8581375" z="1.16332336064">
+        <neutronic p="-150.948" r="4.71172" t="55.9814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14865" x="-2.14897745011" y="-1.81995546875" z="1.16332336064">
+        <neutronic p="-151.532" r="4.71265" t="55.8328"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14866" x="-2.14897745011" y="-1.7817734375" z="1.16332336064">
+        <neutronic p="-152.122" r="4.71356" t="55.6858"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14867" x="-2.14897745011" y="-1.74359140625" z="1.16332336064">
+        <neutronic p="-152.718" r="4.71445" t="55.5407"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14868" x="-2.14897745011" y="-1.705409375" z="1.16332336064">
+        <neutronic p="-153.32" r="4.71532" t="55.3975"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14869" x="-2.14897745011" y="-1.66722734375" z="1.16332336064">
+        <neutronic p="-153.929" r="4.71616" t="55.2563"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14870" x="-2.14897745011" y="-1.6290453125" z="1.16332336064">
+        <neutronic p="-154.543" r="4.71697" t="55.1173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14871" x="-2.14897745011" y="-1.59086328125" z="1.16332336064">
+        <neutronic p="-155.164" r="4.71776" t="54.9805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14872" x="-2.14897745011" y="-1.55268125" z="1.16332336064">
+        <neutronic p="-155.791" r="4.71852" t="54.846"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14873" x="-2.14897745011" y="-1.51449921875" z="1.16332336064">
+        <neutronic p="-156.423" r="4.71926" t="54.7139"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14874" x="-2.14897745011" y="-1.4763171875" z="1.16332336064">
+        <neutronic p="-157.062" r="4.71998" t="54.5844"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14875" x="-2.14897745011" y="-1.43813515625" z="1.16332336064">
+        <neutronic p="-157.706" r="4.72066" t="54.4576"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14876" x="-2.14897745011" y="-1.399953125" z="1.16332336064">
+        <neutronic p="-158.356" r="4.72133" t="54.3335"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14877" x="-2.14897745011" y="-1.36177109375" z="1.16332336064">
+        <neutronic p="-159.011" r="4.72196" t="54.2122"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14878" x="-2.14897745011" y="-1.3235890625" z="1.16332336064">
+        <neutronic p="-159.673" r="4.72257" t="54.0939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14879" x="-2.14897745011" y="-1.28540703125" z="1.16332336064">
+        <neutronic p="-160.339" r="4.72315" t="53.9786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14880" x="-2.14897745011" y="-1.247225" z="1.16332336064">
+        <neutronic p="-161.011" r="4.72371" t="53.8665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14881" x="-2.14897745011" y="-1.20904296875" z="1.16332336064">
+        <neutronic p="-161.687" r="4.72424" t="53.7577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14882" x="-2.14897745011" y="-1.1708609375" z="1.16332336064">
+        <neutronic p="-162.369" r="4.72474" t="53.6522"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14883" x="-2.14897745011" y="-1.13267890625" z="1.16332336064">
+        <neutronic p="-163.056" r="4.72521" t="53.5501"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14884" x="-2.14897745011" y="-1.094496875" z="1.16332336064">
+        <neutronic p="-163.747" r="4.72566" t="53.4516"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14885" x="-2.14897745011" y="-1.05631484375" z="1.16332336064">
+        <neutronic p="-164.443" r="4.72608" t="53.3567"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14886" x="-2.14897745011" y="-1.0181328125" z="1.16332336064">
+        <neutronic p="-165.143" r="4.72647" t="53.2655"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14887" x="-2.14897745011" y="-0.97995078125" z="1.16332336064">
+        <neutronic p="-165.847" r="4.72684" t="53.1782"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14888" x="-2.14897745011" y="-0.94176875" z="1.16332336064">
+        <neutronic p="-166.555" r="4.72717" t="53.0947"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14889" x="-2.14897745011" y="-0.90358671875" z="1.16332336064">
+        <neutronic p="-167.267" r="4.72748" t="53.0152"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14890" x="-2.14897745011" y="-0.8654046875" z="1.16332336064">
+        <neutronic p="-167.983" r="4.72776" t="52.9397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14891" x="-2.14897745011" y="-0.82722265625" z="1.16332336064">
+        <neutronic p="-168.702" r="4.72801" t="52.8683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14892" x="-2.14897745011" y="-0.789040625" z="1.16332336064">
+        <neutronic p="-169.424" r="4.72824" t="52.8011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14893" x="-2.14897745011" y="-0.75085859375" z="1.16332336064">
+        <neutronic p="-170.149" r="4.72843" t="52.7382"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14894" x="-2.14897745011" y="-0.7126765625" z="1.16332336064">
+        <neutronic p="-170.877" r="4.7286" t="52.6796"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14895" x="-2.14897745011" y="-0.67449453125" z="1.16332336064">
+        <neutronic p="-171.607" r="4.72874" t="52.6253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14896" x="-2.14897745011" y="-0.6363125" z="1.16332336064">
+        <neutronic p="-172.34" r="4.72885" t="52.5754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14897" x="-2.14897745011" y="-0.59813046875" z="1.16332336064">
+        <neutronic p="-173.074" r="4.72893" t="52.5301"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14898" x="-2.14897745011" y="-0.5599484375" z="1.16332336064">
+        <neutronic p="-173.811" r="4.72898" t="52.4892"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14899" x="-2.14897745011" y="-0.52176640625" z="1.16332336064">
+        <neutronic p="-174.549" r="4.72901" t="52.4528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14900" x="-2.14897745011" y="-0.483584375" z="1.16332336064">
+        <neutronic p="-175.288" r="4.729" t="52.4211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14901" x="-2.14897745011" y="-0.44540234375" z="1.16332336064">
+        <neutronic p="-176.029" r="4.72897" t="52.3939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14902" x="-2.14897745011" y="-0.4072203125" z="1.16332336064">
+        <neutronic p="-176.77" r="4.72891" t="52.3713"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14903" x="-2.14897745011" y="-0.36903828125" z="1.16332336064">
+        <neutronic p="-177.512" r="4.72882" t="52.3534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14904" x="-2.14897745011" y="-0.33085625" z="1.16332336064">
+        <neutronic p="-178.254" r="4.7287" t="52.3401"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14905" x="-2.14897745011" y="-0.29267421875" z="1.16332336064">
+        <neutronic p="-178.996" r="4.72855" t="52.3315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14906" x="-2.14897745011" y="-0.2544921875" z="1.16332336064">
+        <neutronic p="-179.738" r="4.72838" t="52.3276"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14926" x="-2.09238322873" y="-1.9345015625" z="1.26228275225">
+        <neutronic p="-148.831" r="4.70977" t="53.9426"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14927" x="-2.09238322873" y="-1.89631953125" z="1.26228275225">
+        <neutronic p="-149.413" r="4.71076" t="53.777"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14928" x="-2.09238322873" y="-1.8581375" z="1.26228275225">
+        <neutronic p="-150.002" r="4.71172" t="53.6129"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14929" x="-2.09238322873" y="-1.81995546875" z="1.26228275225">
+        <neutronic p="-150.597" r="4.71265" t="53.4505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14930" x="-2.09238322873" y="-1.7817734375" z="1.26228275225">
+        <neutronic p="-151.199" r="4.71356" t="53.29"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14931" x="-2.09238322873" y="-1.74359140625" z="1.26228275225">
+        <neutronic p="-151.809" r="4.71445" t="53.1315"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14932" x="-2.09238322873" y="-1.705409375" z="1.26228275225">
+        <neutronic p="-152.424" r="4.71532" t="52.9749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14933" x="-2.09238322873" y="-1.66722734375" z="1.26228275225">
+        <neutronic p="-153.047" r="4.71616" t="52.8206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14934" x="-2.09238322873" y="-1.6290453125" z="1.26228275225">
+        <neutronic p="-153.676" r="4.71697" t="52.6685"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14935" x="-2.09238322873" y="-1.59086328125" z="1.26228275225">
+        <neutronic p="-154.312" r="4.71776" t="52.5188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14936" x="-2.09238322873" y="-1.55268125" z="1.26228275225">
+        <neutronic p="-154.954" r="4.71852" t="52.3716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14937" x="-2.09238322873" y="-1.51449921875" z="1.26228275225">
+        <neutronic p="-155.603" r="4.71926" t="52.227"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14938" x="-2.09238322873" y="-1.4763171875" z="1.26228275225">
+        <neutronic p="-156.259" r="4.71998" t="52.0852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14939" x="-2.09238322873" y="-1.43813515625" z="1.26228275225">
+        <neutronic p="-156.921" r="4.72066" t="51.9462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14940" x="-2.09238322873" y="-1.399953125" z="1.26228275225">
+        <neutronic p="-157.589" r="4.72133" t="51.8102"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14941" x="-2.09238322873" y="-1.36177109375" z="1.26228275225">
+        <neutronic p="-158.263" r="4.72196" t="51.6773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14942" x="-2.09238322873" y="-1.3235890625" z="1.26228275225">
+        <neutronic p="-158.943" r="4.72257" t="51.5476"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14943" x="-2.09238322873" y="-1.28540703125" z="1.26228275225">
+        <neutronic p="-159.629" r="4.72315" t="51.4211"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14944" x="-2.09238322873" y="-1.247225" z="1.26228275225">
+        <neutronic p="-160.321" r="4.72371" t="51.2981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14945" x="-2.09238322873" y="-1.20904296875" z="1.26228275225">
+        <neutronic p="-161.019" r="4.72424" t="51.1787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14946" x="-2.09238322873" y="-1.1708609375" z="1.26228275225">
+        <neutronic p="-161.722" r="4.72474" t="51.0628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14947" x="-2.09238322873" y="-1.13267890625" z="1.26228275225">
+        <neutronic p="-162.43" r="4.72521" t="50.9508"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14948" x="-2.09238322873" y="-1.094496875" z="1.26228275225">
+        <neutronic p="-163.144" r="4.72566" t="50.8425"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14949" x="-2.09238322873" y="-1.05631484375" z="1.26228275225">
+        <neutronic p="-163.863" r="4.72608" t="50.7383"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14950" x="-2.09238322873" y="-1.0181328125" z="1.26228275225">
+        <neutronic p="-164.586" r="4.72647" t="50.6381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14951" x="-2.09238322873" y="-0.97995078125" z="1.26228275225">
+        <neutronic p="-165.314" r="4.72684" t="50.542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14952" x="-2.09238322873" y="-0.94176875" z="1.26228275225">
+        <neutronic p="-166.047" r="4.72717" t="50.4502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14953" x="-2.09238322873" y="-0.90358671875" z="1.26228275225">
+        <neutronic p="-166.784" r="4.72748" t="50.3628"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14954" x="-2.09238322873" y="-0.8654046875" z="1.26228275225">
+        <neutronic p="-167.525" r="4.72776" t="50.2797"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14955" x="-2.09238322873" y="-0.82722265625" z="1.26228275225">
+        <neutronic p="-168.27" r="4.72801" t="50.2012"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14956" x="-2.09238322873" y="-0.789040625" z="1.26228275225">
+        <neutronic p="-169.018" r="4.72824" t="50.1273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14957" x="-2.09238322873" y="-0.75085859375" z="1.26228275225">
+        <neutronic p="-169.77" r="4.72843" t="50.058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14958" x="-2.09238322873" y="-0.7126765625" z="1.26228275225">
+        <neutronic p="-170.525" r="4.7286" t="49.9935"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14959" x="-2.09238322873" y="-0.67449453125" z="1.26228275225">
+        <neutronic p="-171.282" r="4.72874" t="49.9337"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14960" x="-2.09238322873" y="-0.6363125" z="1.26228275225">
+        <neutronic p="-172.043" r="4.72885" t="49.8788"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14961" x="-2.09238322873" y="-0.59813046875" z="1.26228275225">
+        <neutronic p="-172.805" r="4.72893" t="49.8289"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14962" x="-2.09238322873" y="-0.5599484375" z="1.26228275225">
+        <neutronic p="-173.57" r="4.72898" t="49.7838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14963" x="-2.09238322873" y="-0.52176640625" z="1.26228275225">
+        <neutronic p="-174.336" r="4.72901" t="49.7438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14964" x="-2.09238322873" y="-0.483584375" z="1.26228275225">
+        <neutronic p="-175.104" r="4.729" t="49.7088"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14965" x="-2.09238322873" y="-0.44540234375" z="1.26228275225">
+        <neutronic p="-175.873" r="4.72897" t="49.6789"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14966" x="-2.09238322873" y="-0.4072203125" z="1.26228275225">
+        <neutronic p="-176.643" r="4.72891" t="49.654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14967" x="-2.09238322873" y="-0.36903828125" z="1.26228275225">
+        <neutronic p="-177.414" r="4.72882" t="49.6343"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14968" x="-2.09238322873" y="-0.33085625" z="1.26228275225">
+        <neutronic p="-178.185" r="4.7287" t="49.6196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14969" x="-2.09238322873" y="-0.29267421875" z="1.26228275225">
+        <neutronic p="-178.956" r="4.72855" t="49.6101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14970" x="-2.09238322873" y="-0.2544921875" z="1.26228275225">
+        <neutronic p="-179.727" r="4.72838" t="49.6058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14990" x="-2.03123526467" y="-1.9345015625" z="1.35849498418">
+        <neutronic p="-147.745" r="4.70977" t="51.627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14991" x="-2.03123526467" y="-1.89631953125" z="1.35849498418">
+        <neutronic p="-148.338" r="4.71076" t="51.4467"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14992" x="-2.03123526467" y="-1.8581375" z="1.35849498418">
+        <neutronic p="-148.938" r="4.71172" t="51.2682"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14993" x="-2.03123526467" y="-1.81995546875" z="1.35849498418">
+        <neutronic p="-149.546" r="4.71265" t="51.0915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14994" x="-2.03123526467" y="-1.7817734375" z="1.35849498418">
+        <neutronic p="-150.162" r="4.71356" t="50.9167"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14995" x="-2.03123526467" y="-1.74359140625" z="1.35849498418">
+        <neutronic p="-150.785" r="4.71445" t="50.7439"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14996" x="-2.03123526467" y="-1.705409375" z="1.35849498418">
+        <neutronic p="-151.415" r="4.71532" t="50.5733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14997" x="-2.03123526467" y="-1.66722734375" z="1.35849498418">
+        <neutronic p="-152.053" r="4.71616" t="50.405"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14998" x="-2.03123526467" y="-1.6290453125" z="1.35849498418">
+        <neutronic p="-152.698" r="4.71697" t="50.2391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="14999" x="-2.03123526467" y="-1.59086328125" z="1.35849498418">
+        <neutronic p="-153.35" r="4.71776" t="50.0758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15000" x="-2.03123526467" y="-1.55268125" z="1.35849498418">
+        <neutronic p="-154.01" r="4.71852" t="49.9151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15001" x="-2.03123526467" y="-1.51449921875" z="1.35849498418">
+        <neutronic p="-154.676" r="4.71926" t="49.7573"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15002" x="-2.03123526467" y="-1.4763171875" z="1.35849498418">
+        <neutronic p="-155.35" r="4.71998" t="49.6023"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15003" x="-2.03123526467" y="-1.43813515625" z="1.35849498418">
+        <neutronic p="-156.031" r="4.72066" t="49.4505"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15004" x="-2.03123526467" y="-1.399953125" z="1.35849498418">
+        <neutronic p="-156.719" r="4.72133" t="49.3018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15005" x="-2.03123526467" y="-1.36177109375" z="1.35849498418">
+        <neutronic p="-157.414" r="4.72196" t="49.1564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15006" x="-2.03123526467" y="-1.3235890625" z="1.35849498418">
+        <neutronic p="-158.115" r="4.72257" t="49.0145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15007" x="-2.03123526467" y="-1.28540703125" z="1.35849498418">
+        <neutronic p="-158.823" r="4.72315" t="48.8761"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15008" x="-2.03123526467" y="-1.247225" z="1.35849498418">
+        <neutronic p="-159.538" r="4.72371" t="48.7415"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15009" x="-2.03123526467" y="-1.20904296875" z="1.35849498418">
+        <neutronic p="-160.258" r="4.72424" t="48.6107"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15010" x="-2.03123526467" y="-1.1708609375" z="1.35849498418">
+        <neutronic p="-160.986" r="4.72474" t="48.4838"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15011" x="-2.03123526467" y="-1.13267890625" z="1.35849498418">
+        <neutronic p="-161.719" r="4.72521" t="48.361"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15012" x="-2.03123526467" y="-1.094496875" z="1.35849498418">
+        <neutronic p="-162.457" r="4.72566" t="48.2423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15013" x="-2.03123526467" y="-1.05631484375" z="1.35849498418">
+        <neutronic p="-163.202" r="4.72608" t="48.128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15014" x="-2.03123526467" y="-1.0181328125" z="1.35849498418">
+        <neutronic p="-163.952" r="4.72647" t="48.0181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15015" x="-2.03123526467" y="-0.97995078125" z="1.35849498418">
+        <neutronic p="-164.707" r="4.72684" t="47.9127"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15016" x="-2.03123526467" y="-0.94176875" z="1.35849498418">
+        <neutronic p="-165.468" r="4.72717" t="47.812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15017" x="-2.03123526467" y="-0.90358671875" z="1.35849498418">
+        <neutronic p="-166.233" r="4.72748" t="47.716"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15018" x="-2.03123526467" y="-0.8654046875" z="1.35849498418">
+        <neutronic p="-167.003" r="4.72776" t="47.6248"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15019" x="-2.03123526467" y="-0.82722265625" z="1.35849498418">
+        <neutronic p="-167.777" r="4.72801" t="47.5386"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15020" x="-2.03123526467" y="-0.789040625" z="1.35849498418">
+        <neutronic p="-168.555" r="4.72824" t="47.4574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15021" x="-2.03123526467" y="-0.75085859375" z="1.35849498418">
+        <neutronic p="-169.337" r="4.72843" t="47.3813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15022" x="-2.03123526467" y="-0.7126765625" z="1.35849498418">
+        <neutronic p="-170.122" r="4.7286" t="47.3104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15023" x="-2.03123526467" y="-0.67449453125" z="1.35849498418">
+        <neutronic p="-170.911" r="4.72874" t="47.2447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15024" x="-2.03123526467" y="-0.6363125" z="1.35849498418">
+        <neutronic p="-171.702" r="4.72885" t="47.1843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15025" x="-2.03123526467" y="-0.59813046875" z="1.35849498418">
+        <neutronic p="-172.497" r="4.72893" t="47.1294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15026" x="-2.03123526467" y="-0.5599484375" z="1.35849498418">
+        <neutronic p="-173.294" r="4.72898" t="47.0799"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15027" x="-2.03123526467" y="-0.52176640625" z="1.35849498418">
+        <neutronic p="-174.092" r="4.72901" t="47.0358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15028" x="-2.03123526467" y="-0.483584375" z="1.35849498418">
+        <neutronic p="-174.893" r="4.729" t="46.9973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15029" x="-2.03123526467" y="-0.44540234375" z="1.35849498418">
+        <neutronic p="-175.695" r="4.72897" t="46.9644"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15030" x="-2.03123526467" y="-0.4072203125" z="1.35849498418">
+        <neutronic p="-176.498" r="4.72891" t="46.9371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15031" x="-2.03123526467" y="-0.36903828125" z="1.35849498418">
+        <neutronic p="-177.302" r="4.72882" t="46.9153"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15032" x="-2.03123526467" y="-0.33085625" z="1.35849498418">
+        <neutronic p="-178.107" r="4.7287" t="46.8993"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15033" x="-2.03123526467" y="-0.29267421875" z="1.35849498418">
+        <neutronic p="-178.911" r="4.72855" t="46.8888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15034" x="-2.03123526467" y="-0.2544921875" z="1.35849498418">
+        <neutronic p="-179.716" r="4.72838" t="46.884"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15054" x="-1.96566663686" y="-1.9345015625" z="1.45175066566">
+        <neutronic p="-146.526" r="4.70977" t="49.3405"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15055" x="-1.96566663686" y="-1.89631953125" z="1.45175066566">
+        <neutronic p="-147.131" r="4.71076" t="49.145"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15056" x="-1.96566663686" y="-1.8581375" z="1.45175066566">
+        <neutronic p="-147.744" r="4.71172" t="48.9512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15057" x="-1.96566663686" y="-1.81995546875" z="1.45175066566">
+        <neutronic p="-148.365" r="4.71265" t="48.7593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15058" x="-1.96566663686" y="-1.7817734375" z="1.45175066566">
+        <neutronic p="-148.995" r="4.71356" t="48.5694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15059" x="-1.96566663686" y="-1.74359140625" z="1.45175066566">
+        <neutronic p="-149.632" r="4.71445" t="48.3816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15060" x="-1.96566663686" y="-1.705409375" z="1.45175066566">
+        <neutronic p="-150.278" r="4.71532" t="48.1961"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15061" x="-1.96566663686" y="-1.66722734375" z="1.45175066566">
+        <neutronic p="-150.931" r="4.71616" t="48.013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15062" x="-1.96566663686" y="-1.6290453125" z="1.45175066566">
+        <neutronic p="-151.593" r="4.71697" t="47.8325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15063" x="-1.96566663686" y="-1.59086328125" z="1.45175066566">
+        <neutronic p="-152.263" r="4.71776" t="47.6546"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15064" x="-1.96566663686" y="-1.55268125" z="1.45175066566">
+        <neutronic p="-152.941" r="4.71852" t="47.4796"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15065" x="-1.96566663686" y="-1.51449921875" z="1.45175066566">
+        <neutronic p="-153.627" r="4.71926" t="47.3076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15066" x="-1.96566663686" y="-1.4763171875" z="1.45175066566">
+        <neutronic p="-154.321" r="4.71998" t="47.1387"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15067" x="-1.96566663686" y="-1.43813515625" z="1.45175066566">
+        <neutronic p="-155.023" r="4.72066" t="46.973"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15068" x="-1.96566663686" y="-1.399953125" z="1.45175066566">
+        <neutronic p="-155.733" r="4.72133" t="46.8108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15069" x="-1.96566663686" y="-1.36177109375" z="1.45175066566">
+        <neutronic p="-156.45" r="4.72196" t="46.6521"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15070" x="-1.96566663686" y="-1.3235890625" z="1.45175066566">
+        <neutronic p="-157.175" r="4.72257" t="46.4971"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15071" x="-1.96566663686" y="-1.28540703125" z="1.45175066566">
+        <neutronic p="-157.907" r="4.72315" t="46.3459"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15072" x="-1.96566663686" y="-1.247225" z="1.45175066566">
+        <neutronic p="-158.646" r="4.72371" t="46.1987"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15073" x="-1.96566663686" y="-1.20904296875" z="1.45175066566">
+        <neutronic p="-159.393" r="4.72424" t="46.0557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15074" x="-1.96566663686" y="-1.1708609375" z="1.45175066566">
+        <neutronic p="-160.147" r="4.72474" t="45.9169"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15075" x="-1.96566663686" y="-1.13267890625" z="1.45175066566">
+        <neutronic p="-160.907" r="4.72521" t="45.7825"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15076" x="-1.96566663686" y="-1.094496875" z="1.45175066566">
+        <neutronic p="-161.674" r="4.72566" t="45.6527"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15077" x="-1.96566663686" y="-1.05631484375" z="1.45175066566">
+        <neutronic p="-162.448" r="4.72608" t="45.5275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15078" x="-1.96566663686" y="-1.0181328125" z="1.45175066566">
+        <neutronic p="-163.228" r="4.72647" t="45.4071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15079" x="-1.96566663686" y="-0.97995078125" z="1.45175066566">
+        <neutronic p="-164.013" r="4.72684" t="45.2916"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15080" x="-1.96566663686" y="-0.94176875" z="1.45175066566">
+        <neutronic p="-164.805" r="4.72717" t="45.1812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15081" x="-1.96566663686" y="-0.90358671875" z="1.45175066566">
+        <neutronic p="-165.602" r="4.72748" t="45.0759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15082" x="-1.96566663686" y="-0.8654046875" z="1.45175066566">
+        <neutronic p="-166.404" r="4.72776" t="44.9759"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15083" x="-1.96566663686" y="-0.82722265625" z="1.45175066566">
+        <neutronic p="-167.211" r="4.72801" t="44.8813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15084" x="-1.96566663686" y="-0.789040625" z="1.45175066566">
+        <neutronic p="-168.023" r="4.72824" t="44.7922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15085" x="-1.96566663686" y="-0.75085859375" z="1.45175066566">
+        <neutronic p="-168.84" r="4.72843" t="44.7086"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15086" x="-1.96566663686" y="-0.7126765625" z="1.45175066566">
+        <neutronic p="-169.66" r="4.7286" t="44.6308"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15087" x="-1.96566663686" y="-0.67449453125" z="1.45175066566">
+        <neutronic p="-170.484" r="4.72874" t="44.5586"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15088" x="-1.96566663686" y="-0.6363125" z="1.45175066566">
+        <neutronic p="-171.312" r="4.72885" t="44.4923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15089" x="-1.96566663686" y="-0.59813046875" z="1.45175066566">
+        <neutronic p="-172.143" r="4.72893" t="44.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15090" x="-1.96566663686" y="-0.5599484375" z="1.45175066566">
+        <neutronic p="-172.976" r="4.72898" t="44.3775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15091" x="-1.96566663686" y="-0.52176640625" z="1.45175066566">
+        <neutronic p="-173.812" r="4.72901" t="44.3291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15092" x="-1.96566663686" y="-0.483584375" z="1.45175066566">
+        <neutronic p="-174.65" r="4.729" t="44.2868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15093" x="-1.96566663686" y="-0.44540234375" z="1.45175066566">
+        <neutronic p="-175.49" r="4.72897" t="44.2506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15094" x="-1.96566663686" y="-0.4072203125" z="1.45175066566">
+        <neutronic p="-176.331" r="4.72891" t="44.2206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15095" x="-1.96566663686" y="-0.36903828125" z="1.45175066566">
+        <neutronic p="-177.173" r="4.72882" t="44.1967"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15096" x="-1.96566663686" y="-0.33085625" z="1.45175066566">
+        <neutronic p="-178.016" r="4.7287" t="44.179"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15097" x="-1.96566663686" y="-0.29267421875" z="1.45175066566">
+        <neutronic p="-178.859" r="4.72855" t="44.1675"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15098" x="-1.96566663686" y="-0.2544921875" z="1.45175066566">
+        <neutronic p="-179.702" r="4.72838" t="44.1622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15118" x="-1.89582004508" y="-1.9345015625" z="1.54184684038">
+        <neutronic p="-145.16" r="4.70977" t="47.0879"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15119" x="-1.89582004508" y="-1.89631953125" z="1.54184684038">
+        <neutronic p="-145.777" r="4.71076" t="46.8762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15120" x="-1.89582004508" y="-1.8581375" z="1.54184684038">
+        <neutronic p="-146.403" r="4.71172" t="46.6663"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15121" x="-1.89582004508" y="-1.81995546875" z="1.54184684038">
+        <neutronic p="-147.037" r="4.71265" t="46.4583"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15122" x="-1.89582004508" y="-1.7817734375" z="1.54184684038">
+        <neutronic p="-147.681" r="4.71356" t="46.2524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15123" x="-1.89582004508" y="-1.74359140625" z="1.54184684038">
+        <neutronic p="-148.334" r="4.71445" t="46.0487"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15124" x="-1.89582004508" y="-1.705409375" z="1.54184684038">
+        <neutronic p="-148.995" r="4.71532" t="45.8473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15125" x="-1.89582004508" y="-1.66722734375" z="1.54184684038">
+        <neutronic p="-149.666" r="4.71616" t="45.6485"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15126" x="-1.89582004508" y="-1.6290453125" z="1.54184684038">
+        <neutronic p="-150.346" r="4.71697" t="45.4524"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15127" x="-1.89582004508" y="-1.59086328125" z="1.54184684038">
+        <neutronic p="-151.035" r="4.71776" t="45.259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15128" x="-1.89582004508" y="-1.55268125" z="1.54184684038">
+        <neutronic p="-151.732" r="4.71852" t="45.0687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15129" x="-1.89582004508" y="-1.51449921875" z="1.54184684038">
+        <neutronic p="-152.439" r="4.71926" t="44.8815"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15130" x="-1.89582004508" y="-1.4763171875" z="1.54184684038">
+        <neutronic p="-153.155" r="4.71998" t="44.6976"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15131" x="-1.89582004508" y="-1.43813515625" z="1.54184684038">
+        <neutronic p="-153.879" r="4.72066" t="44.5171"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15132" x="-1.89582004508" y="-1.399953125" z="1.54184684038">
+        <neutronic p="-154.612" r="4.72133" t="44.3403"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15133" x="-1.89582004508" y="-1.36177109375" z="1.54184684038">
+        <neutronic p="-155.354" r="4.72196" t="44.1673"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15134" x="-1.89582004508" y="-1.3235890625" z="1.54184684038">
+        <neutronic p="-156.105" r="4.72257" t="43.9982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15135" x="-1.89582004508" y="-1.28540703125" z="1.54184684038">
+        <neutronic p="-156.863" r="4.72315" t="43.8332"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15136" x="-1.89582004508" y="-1.247225" z="1.54184684038">
+        <neutronic p="-157.63" r="4.72371" t="43.6725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15137" x="-1.89582004508" y="-1.20904296875" z="1.54184684038">
+        <neutronic p="-158.406" r="4.72424" t="43.5162"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15138" x="-1.89582004508" y="-1.1708609375" z="1.54184684038">
+        <neutronic p="-159.189" r="4.72474" t="43.3645"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15139" x="-1.89582004508" y="-1.13267890625" z="1.54184684038">
+        <neutronic p="-159.98" r="4.72521" t="43.2176"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15140" x="-1.89582004508" y="-1.094496875" z="1.54184684038">
+        <neutronic p="-160.779" r="4.72566" t="43.0755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15141" x="-1.89582004508" y="-1.05631484375" z="1.54184684038">
+        <neutronic p="-161.585" r="4.72608" t="42.9385"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15142" x="-1.89582004508" y="-1.0181328125" z="1.54184684038">
+        <neutronic p="-162.398" r="4.72647" t="42.8067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15143" x="-1.89582004508" y="-0.97995078125" z="1.54184684038">
+        <neutronic p="-163.218" r="4.72684" t="42.6802"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15144" x="-1.89582004508" y="-0.94176875" z="1.54184684038">
+        <neutronic p="-164.044" r="4.72717" t="42.5592"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15145" x="-1.89582004508" y="-0.90358671875" z="1.54184684038">
+        <neutronic p="-164.878" r="4.72748" t="42.4438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15146" x="-1.89582004508" y="-0.8654046875" z="1.54184684038">
+        <neutronic p="-165.717" r="4.72776" t="42.3342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15147" x="-1.89582004508" y="-0.82722265625" z="1.54184684038">
+        <neutronic p="-166.562" r="4.72801" t="42.2304"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15148" x="-1.89582004508" y="-0.789040625" z="1.54184684038">
+        <neutronic p="-167.412" r="4.72824" t="42.1326"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15149" x="-1.89582004508" y="-0.75085859375" z="1.54184684038">
+        <neutronic p="-168.268" r="4.72843" t="42.0409"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15150" x="-1.89582004508" y="-0.7126765625" z="1.54184684038">
+        <neutronic p="-169.128" r="4.7286" t="41.9554"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15151" x="-1.89582004508" y="-0.67449453125" z="1.54184684038">
+        <neutronic p="-169.993" r="4.72874" t="41.8762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15152" x="-1.89582004508" y="-0.6363125" z="1.54184684038">
+        <neutronic p="-170.862" r="4.72885" t="41.8034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15153" x="-1.89582004508" y="-0.59813046875" z="1.54184684038">
+        <neutronic p="-171.735" r="4.72893" t="41.737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15154" x="-1.89582004508" y="-0.5599484375" z="1.54184684038">
+        <neutronic p="-172.61" r="4.72898" t="41.6772"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15155" x="-1.89582004508" y="-0.52176640625" z="1.54184684038">
+        <neutronic p="-173.489" r="4.72901" t="41.624"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15156" x="-1.89582004508" y="-0.483584375" z="1.54184684038">
+        <neutronic p="-174.37" r="4.729" t="41.5775"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15157" x="-1.89582004508" y="-0.44540234375" z="1.54184684038">
+        <neutronic p="-175.254" r="4.72897" t="41.5377"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15158" x="-1.89582004508" y="-0.4072203125" z="1.54184684038">
+        <neutronic p="-176.139" r="4.72891" t="41.5046"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15159" x="-1.89582004508" y="-0.36903828125" z="1.54184684038">
+        <neutronic p="-177.025" r="4.72882" t="41.4783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15160" x="-1.89582004508" y="-0.33085625" z="1.54184684038">
+        <neutronic p="-177.912" r="4.7287" t="41.4589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15161" x="-1.89582004508" y="-0.29267421875" z="1.54184684038">
+        <neutronic p="-178.799" r="4.72855" t="41.4462"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15162" x="-1.89582004508" y="-0.2544921875" z="1.54184684038">
+        <neutronic p="-179.686" r="4.72838" t="41.4404"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15182" x="-1.82184749945" y="-1.9345015625" z="1.62858742819">
+        <neutronic p="-143.629" r="4.70977" t="44.8746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15183" x="-1.82184749945" y="-1.89631953125" z="1.62858742819">
+        <neutronic p="-144.257" r="4.71076" t="44.6458"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15184" x="-1.82184749945" y="-1.8581375" z="1.62858742819">
+        <neutronic p="-144.895" r="4.71172" t="44.4188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15185" x="-1.82184749945" y="-1.81995546875" z="1.62858742819">
+        <neutronic p="-145.544" r="4.71265" t="44.1938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15186" x="-1.82184749945" y="-1.7817734375" z="1.62858742819">
+        <neutronic p="-146.202" r="4.71356" t="43.9709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15187" x="-1.82184749945" y="-1.74359140625" z="1.62858742819">
+        <neutronic p="-146.87" r="4.71445" t="43.7502"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15188" x="-1.82184749945" y="-1.705409375" z="1.62858742819">
+        <neutronic p="-147.548" r="4.71532" t="43.532"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15189" x="-1.82184749945" y="-1.66722734375" z="1.62858742819">
+        <neutronic p="-148.236" r="4.71616" t="43.3164"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15190" x="-1.82184749945" y="-1.6290453125" z="1.62858742819">
+        <neutronic p="-148.935" r="4.71697" t="43.1035"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15191" x="-1.82184749945" y="-1.59086328125" z="1.62858742819">
+        <neutronic p="-149.643" r="4.71776" t="42.8936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15192" x="-1.82184749945" y="-1.55268125" z="1.62858742819">
+        <neutronic p="-150.362" r="4.71852" t="42.6868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15193" x="-1.82184749945" y="-1.51449921875" z="1.62858742819">
+        <neutronic p="-151.091" r="4.71926" t="42.4832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15194" x="-1.82184749945" y="-1.4763171875" z="1.62858742819">
+        <neutronic p="-151.829" r="4.71998" t="42.2832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15195" x="-1.82184749945" y="-1.43813515625" z="1.62858742819">
+        <neutronic p="-152.578" r="4.72066" t="42.0868"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15196" x="-1.82184749945" y="-1.399953125" z="1.62858742819">
+        <neutronic p="-153.337" r="4.72133" t="41.8942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15197" x="-1.82184749945" y="-1.36177109375" z="1.62858742819">
+        <neutronic p="-154.105" r="4.72196" t="41.7057"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15198" x="-1.82184749945" y="-1.3235890625" z="1.62858742819">
+        <neutronic p="-154.883" r="4.72257" t="41.5213"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15199" x="-1.82184749945" y="-1.28540703125" z="1.62858742819">
+        <neutronic p="-155.671" r="4.72315" t="41.3414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15200" x="-1.82184749945" y="-1.247225" z="1.62858742819">
+        <neutronic p="-156.469" r="4.72371" t="41.1659"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15201" x="-1.82184749945" y="-1.20904296875" z="1.62858742819">
+        <neutronic p="-157.275" r="4.72424" t="40.9953"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15202" x="-1.82184749945" y="-1.1708609375" z="1.62858742819">
+        <neutronic p="-158.091" r="4.72474" t="40.8295"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15203" x="-1.82184749945" y="-1.13267890625" z="1.62858742819">
+        <neutronic p="-158.916" r="4.72521" t="40.6688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15204" x="-1.82184749945" y="-1.094496875" z="1.62858742819">
+        <neutronic p="-159.75" r="4.72566" t="40.5134"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15205" x="-1.82184749945" y="-1.05631484375" z="1.62858742819">
+        <neutronic p="-160.592" r="4.72608" t="40.3635"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15206" x="-1.82184749945" y="-1.0181328125" z="1.62858742819">
+        <neutronic p="-161.443" r="4.72647" t="40.2191"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15207" x="-1.82184749945" y="-0.97995078125" z="1.62858742819">
+        <neutronic p="-162.302" r="4.72684" t="40.0806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15208" x="-1.82184749945" y="-0.94176875" z="1.62858742819">
+        <neutronic p="-163.168" r="4.72717" t="39.9479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15209" x="-1.82184749945" y="-0.90358671875" z="1.62858742819">
+        <neutronic p="-164.043" r="4.72748" t="39.8214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15210" x="-1.82184749945" y="-0.8654046875" z="1.62858742819">
+        <neutronic p="-164.924" r="4.72776" t="39.7011"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15211" x="-1.82184749945" y="-0.82722265625" z="1.62858742819">
+        <neutronic p="-165.812" r="4.72801" t="39.5872"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15212" x="-1.82184749945" y="-0.789040625" z="1.62858742819">
+        <neutronic p="-166.706" r="4.72824" t="39.4798"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15213" x="-1.82184749945" y="-0.75085859375" z="1.62858742819">
+        <neutronic p="-167.607" r="4.72843" t="39.3791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15214" x="-1.82184749945" y="-0.7126765625" z="1.62858742819">
+        <neutronic p="-168.513" r="4.7286" t="39.2852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15215" x="-1.82184749945" y="-0.67449453125" z="1.62858742819">
+        <neutronic p="-169.424" r="4.72874" t="39.1981"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15216" x="-1.82184749945" y="-0.6363125" z="1.62858742819">
+        <neutronic p="-170.341" r="4.72885" t="39.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15217" x="-1.82184749945" y="-0.59813046875" z="1.62858742819">
+        <neutronic p="-171.262" r="4.72893" t="39.0451"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15218" x="-1.82184749945" y="-0.5599484375" z="1.62858742819">
+        <neutronic p="-172.186" r="4.72898" t="38.9793"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15219" x="-1.82184749945" y="-0.52176640625" z="1.62858742819">
+        <neutronic p="-173.114" r="4.72901" t="38.9207"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15220" x="-1.82184749945" y="-0.483584375" z="1.62858742819">
+        <neutronic p="-174.046" r="4.729" t="38.8695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15221" x="-1.82184749945" y="-0.44540234375" z="1.62858742819">
+        <neutronic p="-174.979" r="4.72897" t="38.8257"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15222" x="-1.82184749945" y="-0.4072203125" z="1.62858742819">
+        <neutronic p="-175.915" r="4.72891" t="38.7893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15223" x="-1.82184749945" y="-0.36903828125" z="1.62858742819">
+        <neutronic p="-176.852" r="4.72882" t="38.7604"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15224" x="-1.82184749945" y="-0.33085625" z="1.62858742819">
+        <neutronic p="-177.791" r="4.7287" t="38.739"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15225" x="-1.82184749945" y="-0.29267421875" z="1.62858742819">
+        <neutronic p="-178.729" r="4.72855" t="38.7251"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15226" x="-1.82184749945" y="-0.2544921875" z="1.62858742819">
+        <neutronic p="-179.668" r="4.72838" t="38.7187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15246" x="-1.74390998956" y="-1.9345015625" z="1.71178365187">
+        <neutronic p="-141.91" r="4.70977" t="42.7071"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15247" x="-1.74390998956" y="-1.89631953125" z="1.71178365187">
+        <neutronic p="-142.55" r="4.71076" t="42.4602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15248" x="-1.74390998956" y="-1.8581375" z="1.71178365187">
+        <neutronic p="-143.2" r="4.71172" t="42.2151"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15249" x="-1.74390998956" y="-1.81995546875" z="1.71178365187">
+        <neutronic p="-143.861" r="4.71265" t="41.972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15250" x="-1.74390998956" y="-1.7817734375" z="1.71178365187">
+        <neutronic p="-144.534" r="4.71356" t="41.7309"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15251" x="-1.74390998956" y="-1.74359140625" z="1.71178365187">
+        <neutronic p="-145.217" r="4.71445" t="41.4922"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15252" x="-1.74390998956" y="-1.705409375" z="1.71178365187">
+        <neutronic p="-145.912" r="4.71532" t="41.2559"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15253" x="-1.74390998956" y="-1.66722734375" z="1.71178365187">
+        <neutronic p="-146.618" r="4.71616" t="41.0223"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15254" x="-1.74390998956" y="-1.6290453125" z="1.71178365187">
+        <neutronic p="-147.336" r="4.71697" t="40.7915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15255" x="-1.74390998956" y="-1.59086328125" z="1.71178365187">
+        <neutronic p="-148.065" r="4.71776" t="40.5638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15256" x="-1.74390998956" y="-1.55268125" z="1.71178365187">
+        <neutronic p="-148.805" r="4.71852" t="40.3392"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15257" x="-1.74390998956" y="-1.51449921875" z="1.71178365187">
+        <neutronic p="-149.556" r="4.71926" t="40.1181"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15258" x="-1.74390998956" y="-1.4763171875" z="1.71178365187">
+        <neutronic p="-150.319" r="4.71998" t="39.9006"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15259" x="-1.74390998956" y="-1.43813515625" z="1.71178365187">
+        <neutronic p="-151.094" r="4.72066" t="39.687"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15260" x="-1.74390998956" y="-1.399953125" z="1.71178365187">
+        <neutronic p="-151.88" r="4.72133" t="39.4773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15261" x="-1.74390998956" y="-1.36177109375" z="1.71178365187">
+        <neutronic p="-152.677" r="4.72196" t="39.2719"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15262" x="-1.74390998956" y="-1.3235890625" z="1.71178365187">
+        <neutronic p="-153.485" r="4.72257" t="39.0709"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15263" x="-1.74390998956" y="-1.28540703125" z="1.71178365187">
+        <neutronic p="-154.305" r="4.72315" t="38.8745"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15264" x="-1.74390998956" y="-1.247225" z="1.71178365187">
+        <neutronic p="-155.135" r="4.72371" t="38.683"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15265" x="-1.74390998956" y="-1.20904296875" z="1.71178365187">
+        <neutronic p="-155.977" r="4.72424" t="38.4966"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15266" x="-1.74390998956" y="-1.1708609375" z="1.71178365187">
+        <neutronic p="-156.829" r="4.72474" t="38.3154"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15267" x="-1.74390998956" y="-1.13267890625" z="1.71178365187">
+        <neutronic p="-157.691" r="4.72521" t="38.1396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15268" x="-1.74390998956" y="-1.094496875" z="1.71178365187">
+        <neutronic p="-158.564" r="4.72566" t="37.9695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15269" x="-1.74390998956" y="-1.05631484375" z="1.71178365187">
+        <neutronic p="-159.447" r="4.72608" t="37.8053"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15270" x="-1.74390998956" y="-1.0181328125" z="1.71178365187">
+        <neutronic p="-160.34" r="4.72647" t="37.6471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15271" x="-1.74390998956" y="-0.97995078125" z="1.71178365187">
+        <neutronic p="-161.242" r="4.72684" t="37.4952"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15272" x="-1.74390998956" y="-0.94176875" z="1.71178365187">
+        <neutronic p="-162.154" r="4.72717" t="37.3497"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15273" x="-1.74390998956" y="-0.90358671875" z="1.71178365187">
+        <neutronic p="-163.074" r="4.72748" t="37.2108"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15274" x="-1.74390998956" y="-0.8654046875" z="1.71178365187">
+        <neutronic p="-164.003" r="4.72776" t="37.0786"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15275" x="-1.74390998956" y="-0.82722265625" z="1.71178365187">
+        <neutronic p="-164.94" r="4.72801" t="36.9535"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15276" x="-1.74390998956" y="-0.789040625" z="1.71178365187">
+        <neutronic p="-165.885" r="4.72824" t="36.8354"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15277" x="-1.74390998956" y="-0.75085859375" z="1.71178365187">
+        <neutronic p="-166.837" r="4.72843" t="36.7246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15278" x="-1.74390998956" y="-0.7126765625" z="1.71178365187">
+        <neutronic p="-167.796" r="4.7286" t="36.6212"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15279" x="-1.74390998956" y="-0.67449453125" z="1.71178365187">
+        <neutronic p="-168.762" r="4.72874" t="36.5254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15280" x="-1.74390998956" y="-0.6363125" z="1.71178365187">
+        <neutronic p="-169.733" r="4.72885" t="36.4372"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15281" x="-1.74390998956" y="-0.59813046875" z="1.71178365187">
+        <neutronic p="-170.71" r="4.72893" t="36.3568"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15282" x="-1.74390998956" y="-0.5599484375" z="1.71178365187">
+        <neutronic p="-171.691" r="4.72898" t="36.2843"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15283" x="-1.74390998956" y="-0.52176640625" z="1.71178365187">
+        <neutronic p="-172.677" r="4.72901" t="36.2198"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15284" x="-1.74390998956" y="-0.483584375" z="1.71178365187">
+        <neutronic p="-173.666" r="4.729" t="36.1633"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15285" x="-1.74390998956" y="-0.44540234375" z="1.71178365187">
+        <neutronic p="-174.659" r="4.72897" t="36.115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15286" x="-1.74390998956" y="-0.4072203125" z="1.71178365187">
+        <neutronic p="-175.654" r="4.72891" t="36.0749"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15287" x="-1.74390998956" y="-0.36903828125" z="1.71178365187">
+        <neutronic p="-176.651" r="4.72882" t="36.043"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15288" x="-1.74390998956" y="-0.33085625" z="1.71178365187">
+        <neutronic p="-177.649" r="4.7287" t="36.0193"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15289" x="-1.74390998956" y="-0.29267421875" z="1.71178365187">
+        <neutronic p="-178.648" r="4.72855" t="36.004"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15290" x="-1.74390998956" y="-0.2544921875" z="1.71178365187">
+        <neutronic p="-179.647" r="4.72838" t="35.9969"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15310" x="-1.66217713414" y="-1.9345015625" z="1.79125444793">
+        <neutronic p="-139.982" r="4.70977" t="40.593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15311" x="-1.66217713414" y="-1.89631953125" z="1.79125444793">
+        <neutronic p="-140.631" r="4.71076" t="40.327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15312" x="-1.66217713414" y="-1.8581375" z="1.79125444793">
+        <neutronic p="-141.292" r="4.71172" t="40.0627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15313" x="-1.66217713414" y="-1.81995546875" z="1.79125444793">
+        <neutronic p="-141.965" r="4.71265" t="39.8003"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15314" x="-1.66217713414" y="-1.7817734375" z="1.79125444793">
+        <neutronic p="-142.651" r="4.71356" t="39.5399"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15315" x="-1.66217713414" y="-1.74359140625" z="1.79125444793">
+        <neutronic p="-143.349" r="4.71445" t="39.2819"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15316" x="-1.66217713414" y="-1.705409375" z="1.79125444793">
+        <neutronic p="-144.06" r="4.71532" t="39.0263"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15317" x="-1.66217713414" y="-1.66722734375" z="1.79125444793">
+        <neutronic p="-144.783" r="4.71616" t="38.7734"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15318" x="-1.66217713414" y="-1.6290453125" z="1.79125444793">
+        <neutronic p="-145.52" r="4.71697" t="38.5233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15319" x="-1.66217713414" y="-1.59086328125" z="1.79125444793">
+        <neutronic p="-146.269" r="4.71776" t="38.2763"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15320" x="-1.66217713414" y="-1.55268125" z="1.79125444793">
+        <neutronic p="-147.031" r="4.71852" t="38.0327"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15321" x="-1.66217713414" y="-1.51449921875" z="1.79125444793">
+        <neutronic p="-147.806" r="4.71926" t="37.7925"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15322" x="-1.66217713414" y="-1.4763171875" z="1.79125444793">
+        <neutronic p="-148.594" r="4.71998" t="37.5561"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15323" x="-1.66217713414" y="-1.43813515625" z="1.79125444793">
+        <neutronic p="-149.396" r="4.72066" t="37.3236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15324" x="-1.66217713414" y="-1.399953125" z="1.79125444793">
+        <neutronic p="-150.21" r="4.72133" t="37.0954"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15325" x="-1.66217713414" y="-1.36177109375" z="1.79125444793">
+        <neutronic p="-151.038" r="4.72196" t="36.8715"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15326" x="-1.66217713414" y="-1.3235890625" z="1.79125444793">
+        <neutronic p="-151.878" r="4.72257" t="36.6523"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15327" x="-1.66217713414" y="-1.28540703125" z="1.79125444793">
+        <neutronic p="-152.732" r="4.72315" t="36.438"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15328" x="-1.66217713414" y="-1.247225" z="1.79125444793">
+        <neutronic p="-153.598" r="4.72371" t="36.2288"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15329" x="-1.66217713414" y="-1.20904296875" z="1.79125444793">
+        <neutronic p="-154.477" r="4.72424" t="36.0249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15330" x="-1.66217713414" y="-1.1708609375" z="1.79125444793">
+        <neutronic p="-155.369" r="4.72474" t="35.8267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15331" x="-1.66217713414" y="-1.13267890625" z="1.79125444793">
+        <neutronic p="-156.273" r="4.72521" t="35.6342"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15332" x="-1.66217713414" y="-1.094496875" z="1.79125444793">
+        <neutronic p="-157.189" r="4.72566" t="35.4479"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15333" x="-1.66217713414" y="-1.05631484375" z="1.79125444793">
+        <neutronic p="-158.118" r="4.72608" t="35.2677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15334" x="-1.66217713414" y="-1.0181328125" z="1.79125444793">
+        <neutronic p="-159.058" r="4.72647" t="35.0942"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15335" x="-1.66217713414" y="-0.97995078125" z="1.79125444793">
+        <neutronic p="-160.009" r="4.72684" t="34.9273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15336" x="-1.66217713414" y="-0.94176875" z="1.79125444793">
+        <neutronic p="-160.971" r="4.72717" t="34.7674"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15337" x="-1.66217713414" y="-0.90358671875" z="1.79125444793">
+        <neutronic p="-161.945" r="4.72748" t="34.6146"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15338" x="-1.66217713414" y="-0.8654046875" z="1.79125444793">
+        <neutronic p="-162.928" r="4.72776" t="34.4692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15339" x="-1.66217713414" y="-0.82722265625" z="1.79125444793">
+        <neutronic p="-163.921" r="4.72801" t="34.3314"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15340" x="-1.66217713414" y="-0.789040625" z="1.79125444793">
+        <neutronic p="-164.924" r="4.72824" t="34.2013"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15341" x="-1.66217713414" y="-0.75085859375" z="1.79125444793">
+        <neutronic p="-165.936" r="4.72843" t="34.0792"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15342" x="-1.66217713414" y="-0.7126765625" z="1.79125444793">
+        <neutronic p="-166.956" r="4.7286" t="33.9651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15343" x="-1.66217713414" y="-0.67449453125" z="1.79125444793">
+        <neutronic p="-167.984" r="4.72874" t="33.8593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15344" x="-1.66217713414" y="-0.6363125" z="1.79125444793">
+        <neutronic p="-169.019" r="4.72885" t="33.762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15345" x="-1.66217713414" y="-0.59813046875" z="1.79125444793">
+        <neutronic p="-170.061" r="4.72893" t="33.6732"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15346" x="-1.66217713414" y="-0.5599484375" z="1.79125444793">
+        <neutronic p="-171.108" r="4.72898" t="33.5931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15347" x="-1.66217713414" y="-0.52176640625" z="1.79125444793">
+        <neutronic p="-172.161" r="4.72901" t="33.5217"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15348" x="-1.66217713414" y="-0.483584375" z="1.79125444793">
+        <neutronic p="-173.219" r="4.729" t="33.4593"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15349" x="-1.66217713414" y="-0.44540234375" z="1.79125444793">
+        <neutronic p="-174.281" r="4.72897" t="33.4058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15350" x="-1.66217713414" y="-0.4072203125" z="1.79125444793">
+        <neutronic p="-175.345" r="4.72891" t="33.3614"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15351" x="-1.66217713414" y="-0.36903828125" z="1.79125444793">
+        <neutronic p="-176.413" r="4.72882" t="33.3261"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15352" x="-1.66217713414" y="-0.33085625" z="1.79125444793">
+        <neutronic p="-177.482" r="4.7287" t="33.2999"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15353" x="-1.66217713414" y="-0.29267421875" z="1.79125444793">
+        <neutronic p="-178.551" r="4.72855" t="33.2829"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15354" x="-1.66217713414" y="-0.2544921875" z="1.79125444793">
+        <neutronic p="-179.622" r="4.72838" t="33.2751"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15374" x="-1.57682681188" y="-1.9345015625" z="1.8668268607">
+        <neutronic p="-137.816" r="4.70977" t="38.5414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15375" x="-1.57682681188" y="-1.89631953125" z="1.8668268607">
+        <neutronic p="-138.472" r="4.71076" t="38.2552"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15376" x="-1.57682681188" y="-1.8581375" z="1.8668268607">
+        <neutronic p="-139.142" r="4.71172" t="37.9705"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15377" x="-1.57682681188" y="-1.81995546875" z="1.8668268607">
+        <neutronic p="-139.825" r="4.71265" t="37.6876"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15378" x="-1.57682681188" y="-1.7817734375" z="1.8668268607">
+        <neutronic p="-140.522" r="4.71356" t="37.4067"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15379" x="-1.57682681188" y="-1.74359140625" z="1.8668268607">
+        <neutronic p="-141.233" r="4.71445" t="37.1281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15380" x="-1.57682681188" y="-1.705409375" z="1.8668268607">
+        <neutronic p="-141.959" r="4.71532" t="36.8518"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15381" x="-1.57682681188" y="-1.66722734375" z="1.8668268607">
+        <neutronic p="-142.698" r="4.71616" t="36.5781"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15382" x="-1.57682681188" y="-1.6290453125" z="1.8668268607">
+        <neutronic p="-143.452" r="4.71697" t="36.3073"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15383" x="-1.57682681188" y="-1.59086328125" z="1.8668268607">
+        <neutronic p="-144.221" r="4.71776" t="36.0396"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15384" x="-1.57682681188" y="-1.55268125" z="1.8668268607">
+        <neutronic p="-145.005" r="4.71852" t="35.7752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15385" x="-1.57682681188" y="-1.51449921875" z="1.8668268607">
+        <neutronic p="-145.803" r="4.71926" t="35.5144"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15386" x="-1.57682681188" y="-1.4763171875" z="1.8668268607">
+        <neutronic p="-146.616" r="4.71998" t="35.2574"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15387" x="-1.57682681188" y="-1.43813515625" z="1.8668268607">
+        <neutronic p="-147.445" r="4.72066" t="35.0044"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15388" x="-1.57682681188" y="-1.399953125" z="1.8668268607">
+        <neutronic p="-148.289" r="4.72133" t="34.7558"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15389" x="-1.57682681188" y="-1.36177109375" z="1.8668268607">
+        <neutronic p="-149.148" r="4.72196" t="34.5117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15390" x="-1.57682681188" y="-1.3235890625" z="1.8668268607">
+        <neutronic p="-150.022" r="4.72257" t="34.2725"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15391" x="-1.57682681188" y="-1.28540703125" z="1.8668268607">
+        <neutronic p="-150.912" r="4.72315" t="34.0383"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15392" x="-1.57682681188" y="-1.247225" z="1.8668268607">
+        <neutronic p="-151.816" r="4.72371" t="33.8096"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15393" x="-1.57682681188" y="-1.20904296875" z="1.8668268607">
+        <neutronic p="-152.736" r="4.72424" t="33.5865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15394" x="-1.57682681188" y="-1.1708609375" z="1.8668268607">
+        <neutronic p="-153.671" r="4.72474" t="33.3692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15395" x="-1.57682681188" y="-1.13267890625" z="1.8668268607">
+        <neutronic p="-154.62" r="4.72521" t="33.1582"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15396" x="-1.57682681188" y="-1.094496875" z="1.8668268607">
+        <neutronic p="-155.585" r="4.72566" t="32.9536"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15397" x="-1.57682681188" y="-1.05631484375" z="1.8668268607">
+        <neutronic p="-156.563" r="4.72608" t="32.7557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15398" x="-1.57682681188" y="-1.0181328125" z="1.8668268607">
+        <neutronic p="-157.556" r="4.72647" t="32.5648"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15399" x="-1.57682681188" y="-0.97995078125" z="1.8668268607">
+        <neutronic p="-158.563" r="4.72684" t="32.3812"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15400" x="-1.57682681188" y="-0.94176875" z="1.8668268607">
+        <neutronic p="-159.583" r="4.72717" t="32.205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15401" x="-1.57682681188" y="-0.90358671875" z="1.8668268607">
+        <neutronic p="-160.616" r="4.72748" t="32.0366"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15402" x="-1.57682681188" y="-0.8654046875" z="1.8668268607">
+        <neutronic p="-161.662" r="4.72776" t="31.8761"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15403" x="-1.57682681188" y="-0.82722265625" z="1.8668268607">
+        <neutronic p="-162.72" r="4.72801" t="31.7239"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15404" x="-1.57682681188" y="-0.789040625" z="1.8668268607">
+        <neutronic p="-163.789" r="4.72824" t="31.5801"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15405" x="-1.57682681188" y="-0.75085859375" z="1.8668268607">
+        <neutronic p="-164.87" r="4.72843" t="31.4451"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15406" x="-1.57682681188" y="-0.7126765625" z="1.8668268607">
+        <neutronic p="-165.961" r="4.7286" t="31.3188"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15407" x="-1.57682681188" y="-0.67449453125" z="1.8668268607">
+        <neutronic p="-167.062" r="4.72874" t="31.2017"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15408" x="-1.57682681188" y="-0.6363125" z="1.8668268607">
+        <neutronic p="-168.172" r="4.72885" t="31.0938"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15409" x="-1.57682681188" y="-0.59813046875" z="1.8668268607">
+        <neutronic p="-169.29" r="4.72893" t="30.9954"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15410" x="-1.57682681188" y="-0.5599484375" z="1.8668268607">
+        <neutronic p="-170.416" r="4.72898" t="30.9065"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15411" x="-1.57682681188" y="-0.52176640625" z="1.8668268607">
+        <neutronic p="-171.548" r="4.72901" t="30.8273"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15412" x="-1.57682681188" y="-0.483584375" z="1.8668268607">
+        <neutronic p="-172.687" r="4.729" t="30.758"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15413" x="-1.57682681188" y="-0.44540234375" z="1.8668268607">
+        <neutronic p="-173.83" r="4.72897" t="30.6986"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15414" x="-1.57682681188" y="-0.4072203125" z="1.8668268607">
+        <neutronic p="-174.978" r="4.72891" t="30.6493"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15415" x="-1.57682681188" y="-0.36903828125" z="1.8668268607">
+        <neutronic p="-176.129" r="4.72882" t="30.6101"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15416" x="-1.57682681188" y="-0.33085625" z="1.8668268607">
+        <neutronic p="-177.282" r="4.7287" t="30.581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15417" x="-1.57682681188" y="-0.29267421875" z="1.8668268607">
+        <neutronic p="-178.437" r="4.72855" t="30.5621"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15418" x="-1.57682681188" y="-0.2544921875" z="1.8668268607">
+        <neutronic p="-179.592" r="4.72838" t="30.5534"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15438" x="-1.48804477432" y="-1.9345015625" z="1.93833641872">
+        <neutronic p="-135.383" r="4.70977" t="36.5632"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15439" x="-1.48804477432" y="-1.89631953125" z="1.93833641872">
+        <neutronic p="-136.043" r="4.71076" t="36.2556"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15440" x="-1.48804477432" y="-1.8581375" z="1.93833641872">
+        <neutronic p="-136.718" r="4.71172" t="35.9494"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15441" x="-1.48804477432" y="-1.81995546875" z="1.93833641872">
+        <neutronic p="-137.408" r="4.71265" t="35.6448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15442" x="-1.48804477432" y="-1.7817734375" z="1.93833641872">
+        <neutronic p="-138.113" r="4.71356" t="35.3421"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15443" x="-1.48804477432" y="-1.74359140625" z="1.93833641872">
+        <neutronic p="-138.834" r="4.71445" t="35.0414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15444" x="-1.48804477432" y="-1.705409375" z="1.93833641872">
+        <neutronic p="-139.571" r="4.71532" t="34.743"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15445" x="-1.48804477432" y="-1.66722734375" z="1.93833641872">
+        <neutronic p="-140.324" r="4.71616" t="34.4471"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15446" x="-1.48804477432" y="-1.6290453125" z="1.93833641872">
+        <neutronic p="-141.093" r="4.71697" t="34.1539"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15447" x="-1.48804477432" y="-1.59086328125" z="1.93833641872">
+        <neutronic p="-141.88" r="4.71776" t="33.8638"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15448" x="-1.48804477432" y="-1.55268125" z="1.93833641872">
+        <neutronic p="-142.683" r="4.71852" t="33.577"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15449" x="-1.48804477432" y="-1.51449921875" z="1.93833641872">
+        <neutronic p="-143.503" r="4.71926" t="33.2937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15450" x="-1.48804477432" y="-1.4763171875" z="1.93833641872">
+        <neutronic p="-144.341" r="4.71998" t="33.0143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15451" x="-1.48804477432" y="-1.43813515625" z="1.93833641872">
+        <neutronic p="-145.196" r="4.72066" t="32.7389"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15452" x="-1.48804477432" y="-1.399953125" z="1.93833641872">
+        <neutronic p="-146.069" r="4.72133" t="32.4679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15453" x="-1.48804477432" y="-1.36177109375" z="1.93833641872">
+        <neutronic p="-146.96" r="4.72196" t="32.2016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15454" x="-1.48804477432" y="-1.3235890625" z="1.93833641872">
+        <neutronic p="-147.868" r="4.72257" t="31.9402"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15455" x="-1.48804477432" y="-1.28540703125" z="1.93833641872">
+        <neutronic p="-148.795" r="4.72315" t="31.6842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15456" x="-1.48804477432" y="-1.247225" z="1.93833641872">
+        <neutronic p="-149.74" r="4.72371" t="31.4337"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15457" x="-1.48804477432" y="-1.20904296875" z="1.93833641872">
+        <neutronic p="-150.703" r="4.72424" t="31.189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15458" x="-1.48804477432" y="-1.1708609375" z="1.93833641872">
+        <neutronic p="-151.683" r="4.72474" t="30.9506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15459" x="-1.48804477432" y="-1.13267890625" z="1.93833641872">
+        <neutronic p="-152.682" r="4.72521" t="30.7187"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15460" x="-1.48804477432" y="-1.094496875" z="1.93833641872">
+        <neutronic p="-153.699" r="4.72566" t="30.4936"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15461" x="-1.48804477432" y="-1.05631484375" z="1.93833641872">
+        <neutronic p="-154.732" r="4.72608" t="30.2757"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15462" x="-1.48804477432" y="-1.0181328125" z="1.93833641872">
+        <neutronic p="-155.784" r="4.72647" t="30.0652"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15463" x="-1.48804477432" y="-0.97995078125" z="1.93833641872">
+        <neutronic p="-156.852" r="4.72684" t="29.8624"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15464" x="-1.48804477432" y="-0.94176875" z="1.93833641872">
+        <neutronic p="-157.937" r="4.72717" t="29.6677"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15465" x="-1.48804477432" y="-0.90358671875" z="1.93833641872">
+        <neutronic p="-159.038" r="4.72748" t="29.4814"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15466" x="-1.48804477432" y="-0.8654046875" z="1.93833641872">
+        <neutronic p="-160.155" r="4.72776" t="29.3037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15467" x="-1.48804477432" y="-0.82722265625" z="1.93833641872">
+        <neutronic p="-161.288" r="4.72801" t="29.135"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15468" x="-1.48804477432" y="-0.789040625" z="1.93833641872">
+        <neutronic p="-162.434" r="4.72824" t="28.9755"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15469" x="-1.48804477432" y="-0.75085859375" z="1.93833641872">
+        <neutronic p="-163.595" r="4.72843" t="28.8254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15470" x="-1.48804477432" y="-0.7126765625" z="1.93833641872">
+        <neutronic p="-164.77" r="4.7286" t="28.6852"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15471" x="-1.48804477432" y="-0.67449453125" z="1.93833641872">
+        <neutronic p="-165.956" r="4.72874" t="28.5548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15472" x="-1.48804477432" y="-0.6363125" z="1.93833641872">
+        <neutronic p="-167.154" r="4.72885" t="28.4347"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15473" x="-1.48804477432" y="-0.59813046875" z="1.93833641872">
+        <neutronic p="-168.364" r="4.72893" t="28.325"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15474" x="-1.48804477432" y="-0.5599484375" z="1.93833641872">
+        <neutronic p="-169.582" r="4.72898" t="28.2259"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15475" x="-1.48804477432" y="-0.52176640625" z="1.93833641872">
+        <neutronic p="-170.81" r="4.72901" t="28.1376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15476" x="-1.48804477432" y="-0.483584375" z="1.93833641872">
+        <neutronic p="-172.045" r="4.729" t="28.0603"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15477" x="-1.48804477432" y="-0.44540234375" z="1.93833641872">
+        <neutronic p="-173.287" r="4.72897" t="27.994"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15478" x="-1.48804477432" y="-0.4072203125" z="1.93833641872">
+        <neutronic p="-174.534" r="4.72891" t="27.9388"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15479" x="-1.48804477432" y="-0.36903828125" z="1.93833641872">
+        <neutronic p="-175.786" r="4.72882" t="27.895"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15480" x="-1.48804477432" y="-0.33085625" z="1.93833641872">
+        <neutronic p="-177.041" r="4.7287" t="27.8625"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15481" x="-1.48804477432" y="-0.29267421875" z="1.93833641872">
+        <neutronic p="-178.298" r="4.72855" t="27.8414"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15482" x="-1.48804477432" y="-0.2544921875" z="1.93833641872">
+        <neutronic p="-179.555" r="4.72838" t="27.8316"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15502" x="-1.39602424158" y="-1.9345015625" z="2.00562749269">
+        <neutronic p="-132.649" r="4.70977" t="34.6712"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15503" x="-1.39602424158" y="-1.89631953125" z="2.00562749269">
+        <neutronic p="-133.308" r="4.71076" t="34.3412"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15504" x="-1.39602424158" y="-1.8581375" z="2.00562749269">
+        <neutronic p="-133.983" r="4.71172" t="34.0123"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15505" x="-1.39602424158" y="-1.81995546875" z="2.00562749269">
+        <neutronic p="-134.675" r="4.71265" t="33.6848"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15506" x="-1.39602424158" y="-1.7817734375" z="2.00562749269">
+        <neutronic p="-135.383" r="4.71356" t="33.3589"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15507" x="-1.39602424158" y="-1.74359140625" z="2.00562749269">
+        <neutronic p="-136.109" r="4.71445" t="33.0348"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15508" x="-1.39602424158" y="-1.705409375" z="2.00562749269">
+        <neutronic p="-136.853" r="4.71532" t="32.7128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15509" x="-1.39602424158" y="-1.66722734375" z="2.00562749269">
+        <neutronic p="-137.615" r="4.71616" t="32.3931"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15510" x="-1.39602424158" y="-1.6290453125" z="2.00562749269">
+        <neutronic p="-138.396" r="4.71697" t="32.076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15511" x="-1.39602424158" y="-1.59086328125" z="2.00562749269">
+        <neutronic p="-139.196" r="4.71776" t="31.7617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15512" x="-1.39602424158" y="-1.55268125" z="2.00562749269">
+        <neutronic p="-140.015" r="4.71852" t="31.4506"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15513" x="-1.39602424158" y="-1.51449921875" z="2.00562749269">
+        <neutronic p="-140.854" r="4.71926" t="31.143"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15514" x="-1.39602424158" y="-1.4763171875" z="2.00562749269">
+        <neutronic p="-141.713" r="4.71998" t="30.839"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15515" x="-1.39602424158" y="-1.43813515625" z="2.00562749269">
+        <neutronic p="-142.592" r="4.72066" t="30.5391"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15516" x="-1.39602424158" y="-1.399953125" z="2.00562749269">
+        <neutronic p="-143.492" r="4.72133" t="30.2436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15517" x="-1.39602424158" y="-1.36177109375" z="2.00562749269">
+        <neutronic p="-144.413" r="4.72196" t="29.9528"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15518" x="-1.39602424158" y="-1.3235890625" z="2.00562749269">
+        <neutronic p="-145.355" r="4.72257" t="29.6669"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15519" x="-1.39602424158" y="-1.28540703125" z="2.00562749269">
+        <neutronic p="-146.319" r="4.72315" t="29.3865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15520" x="-1.39602424158" y="-1.247225" z="2.00562749269">
+        <neutronic p="-147.304" r="4.72371" t="29.1117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15521" x="-1.39602424158" y="-1.20904296875" z="2.00562749269">
+        <neutronic p="-148.311" r="4.72424" t="28.8431"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15522" x="-1.39602424158" y="-1.1708609375" z="2.00562749269">
+        <neutronic p="-149.34" r="4.72474" t="28.5808"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15523" x="-1.39602424158" y="-1.13267890625" z="2.00562749269">
+        <neutronic p="-150.391" r="4.72521" t="28.3253"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15524" x="-1.39602424158" y="-1.094496875" z="2.00562749269">
+        <neutronic p="-151.463" r="4.72566" t="28.077"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15525" x="-1.39602424158" y="-1.05631484375" z="2.00562749269">
+        <neutronic p="-152.557" r="4.72608" t="27.8362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15526" x="-1.39602424158" y="-1.0181328125" z="2.00562749269">
+        <neutronic p="-153.673" r="4.72647" t="27.6034"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15527" x="-1.39602424158" y="-0.97995078125" z="2.00562749269">
+        <neutronic p="-154.809" r="4.72684" t="27.3787"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15528" x="-1.39602424158" y="-0.94176875" z="2.00562749269">
+        <neutronic p="-155.967" r="4.72717" t="27.1627"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15529" x="-1.39602424158" y="-0.90358671875" z="2.00562749269">
+        <neutronic p="-157.145" r="4.72748" t="26.9557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15530" x="-1.39602424158" y="-0.8654046875" z="2.00562749269">
+        <neutronic p="-158.344" r="4.72776" t="26.7581"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15531" x="-1.39602424158" y="-0.82722265625" z="2.00562749269">
+        <neutronic p="-159.561" r="4.72801" t="26.5702"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15532" x="-1.39602424158" y="-0.789040625" z="2.00562749269">
+        <neutronic p="-160.798" r="4.72824" t="26.3923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15533" x="-1.39602424158" y="-0.75085859375" z="2.00562749269">
+        <neutronic p="-162.053" r="4.72843" t="26.2247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15534" x="-1.39602424158" y="-0.7126765625" z="2.00562749269">
+        <neutronic p="-163.325" r="4.7286" t="26.0679"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15535" x="-1.39602424158" y="-0.67449453125" z="2.00562749269">
+        <neutronic p="-164.613" r="4.72874" t="25.9221"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15536" x="-1.39602424158" y="-0.6363125" z="2.00562749269">
+        <neutronic p="-165.916" r="4.72885" t="25.7875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15537" x="-1.39602424158" y="-0.59813046875" z="2.00562749269">
+        <neutronic p="-167.234" r="4.72893" t="25.6645"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15538" x="-1.39602424158" y="-0.5599484375" z="2.00562749269">
+        <neutronic p="-168.565" r="4.72898" t="25.5533"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15539" x="-1.39602424158" y="-0.52176640625" z="2.00562749269">
+        <neutronic p="-169.907" r="4.72901" t="25.4542"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15540" x="-1.39602424158" y="-0.483584375" z="2.00562749269">
+        <neutronic p="-171.26" r="4.729" t="25.3672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15541" x="-1.39602424158" y="-0.44540234375" z="2.00562749269">
+        <neutronic p="-172.621" r="4.72897" t="25.2926"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15542" x="-1.39602424158" y="-0.4072203125" z="2.00562749269">
+        <neutronic p="-173.991" r="4.72891" t="25.2306"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15543" x="-1.39602424158" y="-0.36903828125" z="2.00562749269">
+        <neutronic p="-175.366" r="4.72882" t="25.1813"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15544" x="-1.39602424158" y="-0.33085625" z="2.00562749269">
+        <neutronic p="-176.745" r="4.7287" t="25.1447"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15545" x="-1.39602424158" y="-0.29267421875" z="2.00562749269">
+        <neutronic p="-178.127" r="4.72855" t="25.1209"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15546" x="-1.39602424158" y="-0.2544921875" z="2.00562749269">
+        <neutronic p="-179.511" r="4.72838" t="25.1099"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15566" x="-1.30096548187" y="-1.9345015625" z="2.06855363418">
+        <neutronic p="-129.583" r="4.70977" t="32.8806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15567" x="-1.30096548187" y="-1.89631953125" z="2.06855363418">
+        <neutronic p="-130.233" r="4.71076" t="32.5272"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15568" x="-1.30096548187" y="-1.8581375" z="2.06855363418">
+        <neutronic p="-130.9" r="4.71172" t="32.1747"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15569" x="-1.30096548187" y="-1.81995546875" z="2.06855363418">
+        <neutronic p="-131.586" r="4.71265" t="31.8231"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15570" x="-1.30096548187" y="-1.7817734375" z="2.06855363418">
+        <neutronic p="-132.291" r="4.71356" t="31.4729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15571" x="-1.30096548187" y="-1.74359140625" z="2.06855363418">
+        <neutronic p="-133.014" r="4.71445" t="31.1241"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15572" x="-1.30096548187" y="-1.705409375" z="2.06855363418">
+        <neutronic p="-133.758" r="4.71532" t="30.777"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15573" x="-1.30096548187" y="-1.66722734375" z="2.06855363418">
+        <neutronic p="-134.522" r="4.71616" t="30.432"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15574" x="-1.30096548187" y="-1.6290453125" z="2.06855363418">
+        <neutronic p="-135.307" r="4.71697" t="30.0893"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15575" x="-1.30096548187" y="-1.59086328125" z="2.06855363418">
+        <neutronic p="-136.114" r="4.71776" t="29.7491"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15576" x="-1.30096548187" y="-1.55268125" z="2.06855363418">
+        <neutronic p="-136.942" r="4.71852" t="29.4119"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15577" x="-1.30096548187" y="-1.51449921875" z="2.06855363418">
+        <neutronic p="-137.794" r="4.71926" t="29.0778"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15578" x="-1.30096548187" y="-1.4763171875" z="2.06855363418">
+        <neutronic p="-138.668" r="4.71998" t="28.7473"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15579" x="-1.30096548187" y="-1.43813515625" z="2.06855363418">
+        <neutronic p="-139.566" r="4.72066" t="28.4206"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15580" x="-1.30096548187" y="-1.399953125" z="2.06855363418">
+        <neutronic p="-140.489" r="4.72133" t="28.0982"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15581" x="-1.30096548187" y="-1.36177109375" z="2.06855363418">
+        <neutronic p="-141.436" r="4.72196" t="27.7803"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15582" x="-1.30096548187" y="-1.3235890625" z="2.06855363418">
+        <neutronic p="-142.408" r="4.72257" t="27.4674"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15583" x="-1.30096548187" y="-1.28540703125" z="2.06855363418">
+        <neutronic p="-143.406" r="4.72315" t="27.1598"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15584" x="-1.30096548187" y="-1.247225" z="2.06855363418">
+        <neutronic p="-144.429" r="4.72371" t="26.8579"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15585" x="-1.30096548187" y="-1.20904296875" z="2.06855363418">
+        <neutronic p="-145.479" r="4.72424" t="26.5622"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15586" x="-1.30096548187" y="-1.1708609375" z="2.06855363418">
+        <neutronic p="-146.556" r="4.72474" t="26.2731"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15587" x="-1.30096548187" y="-1.13267890625" z="2.06855363418">
+        <neutronic p="-147.659" r="4.72521" t="25.9909"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15588" x="-1.30096548187" y="-1.094496875" z="2.06855363418">
+        <neutronic p="-148.79" r="4.72566" t="25.7161"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15589" x="-1.30096548187" y="-1.05631484375" z="2.06855363418">
+        <neutronic p="-149.947" r="4.72608" t="25.4492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15590" x="-1.30096548187" y="-1.0181328125" z="2.06855363418">
+        <neutronic p="-151.131" r="4.72647" t="25.1905"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15591" x="-1.30096548187" y="-0.97995078125" z="2.06855363418">
+        <neutronic p="-152.343" r="4.72684" t="24.9406"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15592" x="-1.30096548187" y="-0.94176875" z="2.06855363418">
+        <neutronic p="-153.581" r="4.72717" t="24.6999"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15593" x="-1.30096548187" y="-0.90358671875" z="2.06855363418">
+        <neutronic p="-154.845" r="4.72748" t="24.4688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15594" x="-1.30096548187" y="-0.8654046875" z="2.06855363418">
+        <neutronic p="-156.136" r="4.72776" t="24.2477"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15595" x="-1.30096548187" y="-0.82722265625" z="2.06855363418">
+        <neutronic p="-157.451" r="4.72801" t="24.0371"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15596" x="-1.30096548187" y="-0.789040625" z="2.06855363418">
+        <neutronic p="-158.792" r="4.72824" t="23.8375"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15597" x="-1.30096548187" y="-0.75085859375" z="2.06855363418">
+        <neutronic p="-160.157" r="4.72843" t="23.6492"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15598" x="-1.30096548187" y="-0.7126765625" z="2.06855363418">
+        <neutronic p="-161.544" r="4.7286" t="23.4727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15599" x="-1.30096548187" y="-0.67449453125" z="2.06855363418">
+        <neutronic p="-162.953" r="4.72874" t="23.3082"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15600" x="-1.30096548187" y="-0.6363125" z="2.06855363418">
+        <neutronic p="-164.383" r="4.72885" t="23.1564"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15601" x="-1.30096548187" y="-0.59813046875" z="2.06855363418">
+        <neutronic p="-165.833" r="4.72893" t="23.0173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15602" x="-1.30096548187" y="-0.5599484375" z="2.06855363418">
+        <neutronic p="-167.3" r="4.72898" t="22.8915"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15603" x="-1.30096548187" y="-0.52176640625" z="2.06855363418">
+        <neutronic p="-168.783" r="4.72901" t="22.7791"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15604" x="-1.30096548187" y="-0.483584375" z="2.06855363418">
+        <neutronic p="-170.28" r="4.729" t="22.6805"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15605" x="-1.30096548187" y="-0.44540234375" z="2.06855363418">
+        <neutronic p="-171.79" r="4.72897" t="22.5959"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15606" x="-1.30096548187" y="-0.4072203125" z="2.06855363418">
+        <neutronic p="-173.311" r="4.72891" t="22.5254"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15607" x="-1.30096548187" y="-0.36903828125" z="2.06855363418">
+        <neutronic p="-174.839" r="4.72882" t="22.4693"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15608" x="-1.30096548187" y="-0.33085625" z="2.06855363418">
+        <neutronic p="-176.375" r="4.7287" t="22.4277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15609" x="-1.30096548187" y="-0.29267421875" z="2.06855363418">
+        <neutronic p="-177.914" r="4.72855" t="22.4007"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15610" x="-1.30096548187" y="-0.2544921875" z="2.06855363418">
+        <neutronic p="-179.455" r="4.72838" t="22.3882"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15630" x="-1.20307537561" y="-1.9345015625" z="2.12697789436">
+        <neutronic p="-126.149" r="4.70977" t="31.2089"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15631" x="-1.20307537561" y="-1.89631953125" z="2.12697789436">
+        <neutronic p="-126.78" r="4.71076" t="30.8317"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15632" x="-1.20307537561" y="-1.8581375" z="2.12697789436">
+        <neutronic p="-127.43" r="4.71172" t="30.4547"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15633" x="-1.20307537561" y="-1.81995546875" z="2.12697789436">
+        <neutronic p="-128.1" r="4.71265" t="30.0783"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15634" x="-1.20307537561" y="-1.7817734375" z="2.12697789436">
+        <neutronic p="-128.79" r="4.71356" t="29.7027"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15635" x="-1.20307537561" y="-1.74359140625" z="2.12697789436">
+        <neutronic p="-129.501" r="4.71445" t="29.3281"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15636" x="-1.20307537561" y="-1.705409375" z="2.12697789436">
+        <neutronic p="-130.234" r="4.71532" t="28.9549"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15637" x="-1.20307537561" y="-1.66722734375" z="2.12697789436">
+        <neutronic p="-130.99" r="4.71616" t="28.5832"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15638" x="-1.20307537561" y="-1.6290453125" z="2.12697789436">
+        <neutronic p="-131.769" r="4.71697" t="28.2133"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15639" x="-1.20307537561" y="-1.59086328125" z="2.12697789436">
+        <neutronic p="-132.571" r="4.71776" t="27.8456"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15640" x="-1.20307537561" y="-1.55268125" z="2.12697789436">
+        <neutronic p="-133.399" r="4.71852" t="27.4804"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15641" x="-1.20307537561" y="-1.51449921875" z="2.12697789436">
+        <neutronic p="-134.253" r="4.71926" t="27.118"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15642" x="-1.20307537561" y="-1.4763171875" z="2.12697789436">
+        <neutronic p="-135.133" r="4.71998" t="26.7588"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15643" x="-1.20307537561" y="-1.43813515625" z="2.12697789436">
+        <neutronic p="-136.04" r="4.72066" t="26.4031"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15644" x="-1.20307537561" y="-1.399953125" z="2.12697789436">
+        <neutronic p="-136.975" r="4.72133" t="26.0512"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15645" x="-1.20307537561" y="-1.36177109375" z="2.12697789436">
+        <neutronic p="-137.94" r="4.72196" t="25.7037"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15646" x="-1.20307537561" y="-1.3235890625" z="2.12697789436">
+        <neutronic p="-138.934" r="4.72257" t="25.3609"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15647" x="-1.20307537561" y="-1.28540703125" z="2.12697789436">
+        <neutronic p="-139.958" r="4.72315" t="25.0232"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15648" x="-1.20307537561" y="-1.247225" z="2.12697789436">
+        <neutronic p="-141.014" r="4.72371" t="24.6911"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15649" x="-1.20307537561" y="-1.20904296875" z="2.12697789436">
+        <neutronic p="-142.102" r="4.72424" t="24.365"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15650" x="-1.20307537561" y="-1.1708609375" z="2.12697789436">
+        <neutronic p="-143.222" r="4.72474" t="24.0454"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15651" x="-1.20307537561" y="-1.13267890625" z="2.12697789436">
+        <neutronic p="-144.375" r="4.72521" t="23.7329"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15652" x="-1.20307537561" y="-1.094496875" z="2.12697789436">
+        <neutronic p="-145.562" r="4.72566" t="23.4278"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15653" x="-1.20307537561" y="-1.05631484375" z="2.12697789436">
+        <neutronic p="-146.783" r="4.72608" t="23.1308"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15654" x="-1.20307537561" y="-1.0181328125" z="2.12697789436">
+        <neutronic p="-148.038" r="4.72647" t="22.8423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15655" x="-1.20307537561" y="-0.97995078125" z="2.12697789436">
+        <neutronic p="-149.328" r="4.72684" t="22.5629"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15656" x="-1.20307537561" y="-0.94176875" z="2.12697789436">
+        <neutronic p="-150.652" r="4.72717" t="22.2932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15657" x="-1.20307537561" y="-0.90358671875" z="2.12697789436">
+        <neutronic p="-152.011" r="4.72748" t="22.0336"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15658" x="-1.20307537561" y="-0.8654046875" z="2.12697789436">
+        <neutronic p="-153.404" r="4.72776" t="21.7847"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15659" x="-1.20307537561" y="-0.82722265625" z="2.12697789436">
+        <neutronic p="-154.831" r="4.72801" t="21.5472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15660" x="-1.20307537561" y="-0.789040625" z="2.12697789436">
+        <neutronic p="-156.291" r="4.72824" t="21.3214"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15661" x="-1.20307537561" y="-0.75085859375" z="2.12697789436">
+        <neutronic p="-157.784" r="4.72843" t="21.1081"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15662" x="-1.20307537561" y="-0.7126765625" z="2.12697789436">
+        <neutronic p="-159.308" r="4.7286" t="20.9076"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15663" x="-1.20307537561" y="-0.67449453125" z="2.12697789436">
+        <neutronic p="-160.862" r="4.72874" t="20.7205"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15664" x="-1.20307537561" y="-0.6363125" z="2.12697789436">
+        <neutronic p="-162.445" r="4.72885" t="20.5474"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15665" x="-1.20307537561" y="-0.59813046875" z="2.12697789436">
+        <neutronic p="-164.056" r="4.72893" t="20.3886"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15666" x="-1.20307537561" y="-0.5599484375" z="2.12697789436">
+        <neutronic p="-165.691" r="4.72898" t="20.2446"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15667" x="-1.20307537561" y="-0.52176640625" z="2.12697789436">
+        <neutronic p="-167.35" r="4.72901" t="20.1159"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15668" x="-1.20307537561" y="-0.483584375" z="2.12697789436">
+        <neutronic p="-169.029" r="4.729" t="20.0028"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15669" x="-1.20307537561" y="-0.44540234375" z="2.12697789436">
+        <neutronic p="-170.726" r="4.72897" t="19.9056"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15670" x="-1.20307537561" y="-0.4072203125" z="2.12697789436">
+        <neutronic p="-172.439" r="4.72891" t="19.8246"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15671" x="-1.20307537561" y="-0.36903828125" z="2.12697789436">
+        <neutronic p="-174.164" r="4.72882" t="19.76"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15672" x="-1.20307537561" y="-0.33085625" z="2.12697789436">
+        <neutronic p="-175.898" r="4.7287" t="19.7121"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15673" x="-1.20307537561" y="-0.29267421875" z="2.12697789436">
+        <neutronic p="-177.639" r="4.72855" t="19.6809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15674" x="-1.20307537561" y="-0.2544921875" z="2.12697789436">
+        <neutronic p="-179.383" r="4.72838" t="19.6665"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15694" x="-1.1025669652" y="-1.9345015625" z="2.18077312202">
+        <neutronic p="-122.318" r="4.70977" t="29.6767"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15695" x="-1.1025669652" y="-1.89631953125" z="2.18077312202">
+        <neutronic p="-122.918" r="4.71076" t="29.2753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15696" x="-1.1025669652" y="-1.8581375" z="2.18077312202">
+        <neutronic p="-123.537" r="4.71172" t="28.8737"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15697" x="-1.1025669652" y="-1.81995546875" z="2.18077312202">
+        <neutronic p="-124.178" r="4.71265" t="28.472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15698" x="-1.1025669652" y="-1.7817734375" z="2.18077312202">
+        <neutronic p="-124.839" r="4.71356" t="28.0706"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15699" x="-1.1025669652" y="-1.74359140625" z="2.18077312202">
+        <neutronic p="-125.523" r="4.71445" t="27.6695"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15700" x="-1.1025669652" y="-1.705409375" z="2.18077312202">
+        <neutronic p="-126.231" r="4.71532" t="27.2692"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15701" x="-1.1025669652" y="-1.66722734375" z="2.18077312202">
+        <neutronic p="-126.962" r="4.71616" t="26.8699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15702" x="-1.1025669652" y="-1.6290453125" z="2.18077312202">
+        <neutronic p="-127.72" r="4.71697" t="26.4718"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15703" x="-1.1025669652" y="-1.59086328125" z="2.18077312202">
+        <neutronic p="-128.503" r="4.71776" t="26.0753"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15704" x="-1.1025669652" y="-1.55268125" z="2.18077312202">
+        <neutronic p="-129.314" r="4.71852" t="25.6807"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15705" x="-1.1025669652" y="-1.51449921875" z="2.18077312202">
+        <neutronic p="-130.154" r="4.71926" t="25.2883"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15706" x="-1.1025669652" y="-1.4763171875" z="2.18077312202">
+        <neutronic p="-131.024" r="4.71998" t="24.8984"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15707" x="-1.1025669652" y="-1.43813515625" z="2.18077312202">
+        <neutronic p="-131.924" r="4.72066" t="24.5115"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15708" x="-1.1025669652" y="-1.399953125" z="2.18077312202">
+        <neutronic p="-132.857" r="4.72133" t="24.128"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15709" x="-1.1025669652" y="-1.36177109375" z="2.18077312202">
+        <neutronic p="-133.824" r="4.72196" t="23.7483"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15710" x="-1.1025669652" y="-1.3235890625" z="2.18077312202">
+        <neutronic p="-134.824" r="4.72257" t="23.3727"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15711" x="-1.1025669652" y="-1.28540703125" z="2.18077312202">
+        <neutronic p="-135.861" r="4.72315" t="23.0019"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15712" x="-1.1025669652" y="-1.247225" z="2.18077312202">
+        <neutronic p="-136.936" r="4.72371" t="22.6362"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15713" x="-1.1025669652" y="-1.20904296875" z="2.18077312202">
+        <neutronic p="-138.048" r="4.72424" t="22.2762"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15714" x="-1.1025669652" y="-1.1708609375" z="2.18077312202">
+        <neutronic p="-139.2" r="4.72474" t="21.9224"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15715" x="-1.1025669652" y="-1.13267890625" z="2.18077312202">
+        <neutronic p="-140.393" r="4.72521" t="21.5754"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15716" x="-1.1025669652" y="-1.094496875" z="2.18077312202">
+        <neutronic p="-141.628" r="4.72566" t="21.2358"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15717" x="-1.1025669652" y="-1.05631484375" z="2.18077312202">
+        <neutronic p="-142.906" r="4.72608" t="20.9041"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15718" x="-1.1025669652" y="-1.0181328125" z="2.18077312202">
+        <neutronic p="-144.227" r="4.72647" t="20.5809"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15719" x="-1.1025669652" y="-0.97995078125" z="2.18077312202">
+        <neutronic p="-145.593" r="4.72684" t="20.267"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15720" x="-1.1025669652" y="-0.94176875" z="2.18077312202">
+        <neutronic p="-147.005" r="4.72717" t="19.963"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15721" x="-1.1025669652" y="-0.90358671875" z="2.18077312202">
+        <neutronic p="-148.462" r="4.72748" t="19.6696"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15722" x="-1.1025669652" y="-0.8654046875" z="2.18077312202">
+        <neutronic p="-149.965" r="4.72776" t="19.3874"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15723" x="-1.1025669652" y="-0.82722265625" z="2.18077312202">
+        <neutronic p="-151.515" r="4.72801" t="19.1172"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15724" x="-1.1025669652" y="-0.789040625" z="2.18077312202">
+        <neutronic p="-153.11" r="4.72824" t="18.8596"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15725" x="-1.1025669652" y="-0.75085859375" z="2.18077312202">
+        <neutronic p="-154.75" r="4.72843" t="18.6155"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15726" x="-1.1025669652" y="-0.7126765625" z="2.18077312202">
+        <neutronic p="-156.435" r="4.7286" t="18.3854"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15727" x="-1.1025669652" y="-0.67449453125" z="2.18077312202">
+        <neutronic p="-158.163" r="4.72874" t="18.1701"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15728" x="-1.1025669652" y="-0.6363125" z="2.18077312202">
+        <neutronic p="-159.933" r="4.72885" t="17.9703"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15729" x="-1.1025669652" y="-0.59813046875" z="2.18077312202">
+        <neutronic p="-161.742" r="4.72893" t="17.7865"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15730" x="-1.1025669652" y="-0.5599484375" z="2.18077312202">
+        <neutronic p="-163.589" r="4.72898" t="17.6196"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15731" x="-1.1025669652" y="-0.52176640625" z="2.18077312202">
+        <neutronic p="-165.47" r="4.72901" t="17.4699"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15732" x="-1.1025669652" y="-0.483584375" z="2.18077312202">
+        <neutronic p="-167.382" r="4.729" t="17.3381"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15733" x="-1.1025669652" y="-0.44540234375" z="2.18077312202">
+        <neutronic p="-169.322" r="4.72897" t="17.2247"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15734" x="-1.1025669652" y="-0.4072203125" z="2.18077312202">
+        <neutronic p="-171.286" r="4.72891" t="17.13"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15735" x="-1.1025669652" y="-0.36903828125" z="2.18077312202">
+        <neutronic p="-173.269" r="4.72882" t="17.0544"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15736" x="-1.1025669652" y="-0.33085625" z="2.18077312202">
+        <neutronic p="-175.266" r="4.7287" t="16.9983"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15737" x="-1.1025669652" y="-0.29267421875" z="2.18077312202">
+        <neutronic p="-177.274" r="4.72855" t="16.9617"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15738" x="-1.1025669652" y="-0.2544921875" z="2.18077312202">
+        <neutronic p="-179.288" r="4.72838" t="16.9449"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15758" x="-0.999658991385" y="-1.9345015625" z="2.22982224032">
+        <neutronic p="-118.071" r="4.70977" t="28.3066"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15759" x="-0.999658991385" y="-1.89631953125" z="2.22982224032">
+        <neutronic p="-118.623" r="4.71076" t="27.8816"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15760" x="-0.999658991385" y="-1.8581375" z="2.22982224032">
+        <neutronic p="-119.195" r="4.71172" t="27.4557"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15761" x="-0.999658991385" y="-1.81995546875" z="2.22982224032">
+        <neutronic p="-119.788" r="4.71265" t="27.0291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15762" x="-0.999658991385" y="-1.7817734375" z="2.22982224032">
+        <neutronic p="-120.403" r="4.71356" t="26.602"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15763" x="-0.999658991385" y="-1.74359140625" z="2.22982224032">
+        <neutronic p="-121.04" r="4.71445" t="26.1746"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15764" x="-0.999658991385" y="-1.705409375" z="2.22982224032">
+        <neutronic p="-121.703" r="4.71532" t="25.7472"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15765" x="-0.999658991385" y="-1.66722734375" z="2.22982224032">
+        <neutronic p="-122.39" r="4.71616" t="25.3199"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15766" x="-0.999658991385" y="-1.6290453125" z="2.22982224032">
+        <neutronic p="-123.105" r="4.71697" t="24.8932"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15767" x="-0.999658991385" y="-1.59086328125" z="2.22982224032">
+        <neutronic p="-123.847" r="4.71776" t="24.4672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15768" x="-0.999658991385" y="-1.55268125" z="2.22982224032">
+        <neutronic p="-124.619" r="4.71852" t="24.0423"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15769" x="-0.999658991385" y="-1.51449921875" z="2.22982224032">
+        <neutronic p="-125.422" r="4.71926" t="23.6189"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15770" x="-0.999658991385" y="-1.4763171875" z="2.22982224032">
+        <neutronic p="-126.257" r="4.71998" t="23.1972"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15771" x="-0.999658991385" y="-1.43813515625" z="2.22982224032">
+        <neutronic p="-127.127" r="4.72066" t="22.7776"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15772" x="-0.999658991385" y="-1.399953125" z="2.22982224032">
+        <neutronic p="-128.032" r="4.72133" t="22.3606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15773" x="-0.999658991385" y="-1.36177109375" z="2.22982224032">
+        <neutronic p="-128.975" r="4.72196" t="21.9465"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15774" x="-0.999658991385" y="-1.3235890625" z="2.22982224032">
+        <neutronic p="-129.958" r="4.72257" t="21.5359"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15775" x="-0.999658991385" y="-1.28540703125" z="2.22982224032">
+        <neutronic p="-130.982" r="4.72315" t="21.1291"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15776" x="-0.999658991385" y="-1.247225" z="2.22982224032">
+        <neutronic p="-132.05" r="4.72371" t="20.7268"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15777" x="-0.999658991385" y="-1.20904296875" z="2.22982224032">
+        <neutronic p="-133.162" r="4.72424" t="20.3294"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15778" x="-0.999658991385" y="-1.1708609375" z="2.22982224032">
+        <neutronic p="-134.323" r="4.72474" t="19.9376"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15779" x="-0.999658991385" y="-1.13267890625" z="2.22982224032">
+        <neutronic p="-135.533" r="4.72521" t="19.5519"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15780" x="-0.999658991385" y="-1.094496875" z="2.22982224032">
+        <neutronic p="-136.794" r="4.72566" t="19.173"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15781" x="-0.999658991385" y="-1.05631484375" z="2.22982224032">
+        <neutronic p="-138.109" r="4.72608" t="18.8016"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15782" x="-0.999658991385" y="-1.0181328125" z="2.22982224032">
+        <neutronic p="-139.48" r="4.72647" t="18.4384"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15783" x="-0.999658991385" y="-0.97995078125" z="2.22982224032">
+        <neutronic p="-140.908" r="4.72684" t="18.0842"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15784" x="-0.999658991385" y="-0.94176875" z="2.22982224032">
+        <neutronic p="-142.396" r="4.72717" t="17.7397"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15785" x="-0.999658991385" y="-0.90358671875" z="2.22982224032">
+        <neutronic p="-143.945" r="4.72748" t="17.4058"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15786" x="-0.999658991385" y="-0.8654046875" z="2.22982224032">
+        <neutronic p="-145.556" r="4.72776" t="17.0834"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15787" x="-0.999658991385" y="-0.82722265625" z="2.22982224032">
+        <neutronic p="-147.231" r="4.72801" t="16.7733"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15788" x="-0.999658991385" y="-0.789040625" z="2.22982224032">
+        <neutronic p="-148.971" r="4.72824" t="16.4765"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15789" x="-0.999658991385" y="-0.75085859375" z="2.22982224032">
+        <neutronic p="-150.775" r="4.72843" t="16.1939"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15790" x="-0.999658991385" y="-0.7126765625" z="2.22982224032">
+        <neutronic p="-152.643" r="4.7286" t="15.9265"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15791" x="-0.999658991385" y="-0.67449453125" z="2.22982224032">
+        <neutronic p="-154.576" r="4.72874" t="15.6752"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15792" x="-0.999658991385" y="-0.6363125" z="2.22982224032">
+        <neutronic p="-156.572" r="4.72885" t="15.441"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15793" x="-0.999658991385" y="-0.59813046875" z="2.22982224032">
+        <neutronic p="-158.628" r="4.72893" t="15.2249"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15794" x="-0.999658991385" y="-0.5599484375" z="2.22982224032">
+        <neutronic p="-160.742" r="4.72898" t="15.0277"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15795" x="-0.999658991385" y="-0.52176640625" z="2.22982224032">
+        <neutronic p="-162.91" r="4.72901" t="14.8504"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15796" x="-0.999658991385" y="-0.483584375" z="2.22982224032">
+        <neutronic p="-165.129" r="4.729" t="14.6937"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15797" x="-0.999658991385" y="-0.44540234375" z="2.22982224032">
+        <neutronic p="-167.392" r="4.72897" t="14.5585"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15798" x="-0.999658991385" y="-0.4072203125" z="2.22982224032">
+        <neutronic p="-169.695" r="4.72891" t="14.4453"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15799" x="-0.999658991385" y="-0.36903828125" z="2.22982224032">
+        <neutronic p="-172.03" r="4.72882" t="14.3548"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15800" x="-0.999658991385" y="-0.33085625" z="2.22982224032">
+        <neutronic p="-174.39" r="4.7287" t="14.2875"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15801" x="-0.999658991385" y="-0.29267421875" z="2.22982224032">
+        <neutronic p="-176.768" r="4.72855" t="14.2436"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15802" x="-0.999658991385" y="-0.2544921875" z="2.22982224032">
+        <neutronic p="-179.155" r="4.72838" t="14.2233"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15822" x="-0.894575417156" y="-1.9345015625" z="2.27401850158">
+        <neutronic p="-113.402" r="4.70977" t="27.1236"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08228"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15823" x="-0.894575417156" y="-1.89631953125" z="2.27401850158">
+        <neutronic p="-113.887" r="4.71076" t="26.6764"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08229"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15824" x="-0.894575417156" y="-1.8581375" z="2.27401850158">
+        <neutronic p="-114.391" r="4.71172" t="26.2275"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08231"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15825" x="-0.894575417156" y="-1.81995546875" z="2.27401850158">
+        <neutronic p="-114.916" r="4.71265" t="25.7772"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08233"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15826" x="-0.894575417156" y="-1.7817734375" z="2.27401850158">
+        <neutronic p="-115.462" r="4.71356" t="25.3256"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08235"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15827" x="-0.894575417156" y="-1.74359140625" z="2.27401850158">
+        <neutronic p="-116.03" r="4.71445" t="24.8729"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08236"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15828" x="-0.894575417156" y="-1.705409375" z="2.27401850158">
+        <neutronic p="-116.622" r="4.71532" t="24.4194"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08238"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15829" x="-0.894575417156" y="-1.66722734375" z="2.27401850158">
+        <neutronic p="-117.24" r="4.71616" t="23.9651"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0824"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15830" x="-0.894575417156" y="-1.6290453125" z="2.27401850158">
+        <neutronic p="-117.884" r="4.71697" t="23.5104"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08241"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15831" x="-0.894575417156" y="-1.59086328125" z="2.27401850158">
+        <neutronic p="-118.556" r="4.71776" t="23.0555"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08243"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15832" x="-0.894575417156" y="-1.55268125" z="2.27401850158">
+        <neutronic p="-119.258" r="4.71852" t="22.6007"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08245"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15833" x="-0.894575417156" y="-1.51449921875" z="2.27401850158">
+        <neutronic p="-119.992" r="4.71926" t="22.1463"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08246"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15834" x="-0.894575417156" y="-1.4763171875" z="2.27401850158">
+        <neutronic p="-120.76" r="4.71998" t="21.6926"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08248"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15835" x="-0.894575417156" y="-1.43813515625" z="2.27401850158">
+        <neutronic p="-121.564" r="4.72066" t="21.24"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08249"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15836" x="-0.894575417156" y="-1.399953125" z="2.27401850158">
+        <neutronic p="-122.405" r="4.72133" t="20.7888"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08251"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15837" x="-0.894575417156" y="-1.36177109375" z="2.27401850158">
+        <neutronic p="-123.288" r="4.72196" t="20.3394"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08252"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15838" x="-0.894575417156" y="-1.3235890625" z="2.27401850158">
+        <neutronic p="-124.213" r="4.72257" t="19.8923"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08254"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15839" x="-0.894575417156" y="-1.28540703125" z="2.27401850158">
+        <neutronic p="-125.183" r="4.72315" t="19.448"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08255"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15840" x="-0.894575417156" y="-1.247225" z="2.27401850158">
+        <neutronic p="-126.202" r="4.72371" t="19.0068"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08256"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15841" x="-0.894575417156" y="-1.20904296875" z="2.27401850158">
+        <neutronic p="-127.273" r="4.72424" t="18.5694"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08258"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15842" x="-0.894575417156" y="-1.1708609375" z="2.27401850158">
+        <neutronic p="-128.398" r="4.72474" t="18.1364"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08259"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15843" x="-0.894575417156" y="-1.13267890625" z="2.27401850158">
+        <neutronic p="-129.582" r="4.72521" t="17.7084"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0826"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15844" x="-0.894575417156" y="-1.094496875" z="2.27401850158">
+        <neutronic p="-130.827" r="4.72566" t="17.286"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08261"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15845" x="-0.894575417156" y="-1.05631484375" z="2.27401850158">
+        <neutronic p="-132.137" r="4.72608" t="16.8701"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08262"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15846" x="-0.894575417156" y="-1.0181328125" z="2.27401850158">
+        <neutronic p="-133.516" r="4.72647" t="16.4613"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08264"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15847" x="-0.894575417156" y="-0.97995078125" z="2.27401850158">
+        <neutronic p="-134.967" r="4.72684" t="16.0606"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08265"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15848" x="-0.894575417156" y="-0.94176875" z="2.27401850158">
+        <neutronic p="-136.496" r="4.72717" t="15.6688"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08266"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15849" x="-0.894575417156" y="-0.90358671875" z="2.27401850158">
+        <neutronic p="-138.105" r="4.72748" t="15.2869"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15850" x="-0.894575417156" y="-0.8654046875" z="2.27401850158">
+        <neutronic p="-139.798" r="4.72776" t="14.916"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08267"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15851" x="-0.894575417156" y="-0.82722265625" z="2.27401850158">
+        <neutronic p="-141.579" r="4.72801" t="14.5572"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08268"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15852" x="-0.894575417156" y="-0.789040625" z="2.27401850158">
+        <neutronic p="-143.451" r="4.72824" t="14.2117"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08269"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15853" x="-0.894575417156" y="-0.75085859375" z="2.27401850158">
+        <neutronic p="-145.417" r="4.72843" t="13.8806"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.0827"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15854" x="-0.894575417156" y="-0.7126765625" z="2.27401850158">
+        <neutronic p="-147.48" r="4.7286" t="13.5654"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15855" x="-0.894575417156" y="-0.67449453125" z="2.27401850158">
+        <neutronic p="-149.64" r="4.72874" t="13.2672"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08271"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15856" x="-0.894575417156" y="-0.6363125" z="2.27401850158">
+        <neutronic p="-151.899" r="4.72885" t="12.9877"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08272"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15857" x="-0.894575417156" y="-0.59813046875" z="2.27401850158">
+        <neutronic p="-154.255" r="4.72893" t="12.728"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15858" x="-0.894575417156" y="-0.5599484375" z="2.27401850158">
+        <neutronic p="-156.706" r="4.72898" t="12.4898"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15859" x="-0.894575417156" y="-0.52176640625" z="2.27401850158">
+        <neutronic p="-159.25" r="4.72901" t="12.2742"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08273"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15860" x="-0.894575417156" y="-0.483584375" z="2.27401850158">
+        <neutronic p="-161.881" r="4.729" t="12.0828"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15861" x="-0.894575417156" y="-0.44540234375" z="2.27401850158">
+        <neutronic p="-164.59" r="4.72897" t="11.9168"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15862" x="-0.894575417156" y="-0.4072203125" z="2.27401850158">
+        <neutronic p="-167.371" r="4.72891" t="11.7773"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08274"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15863" x="-0.894575417156" y="-0.36903828125" z="2.27401850158">
+        <neutronic p="-170.211" r="4.72882" t="11.6653"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15864" x="-0.894575417156" y="-0.33085625" z="2.27401850158">
+        <neutronic p="-173.098" r="4.7287" t="11.5817"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15865" x="-0.894575417156" y="-0.29267421875" z="2.27401850158">
+        <neutronic p="-176.019" r="4.72855" t="11.5271"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+    <component type="pixel">
+      <location name="15866" x="-0.894575417156" y="-0.2544921875" z="2.27401850158">
+        <neutronic p="-178.959" r="4.72838" t="11.5018"/>
+      </location>
+      <parameter name="Efixed">
+        <value val="2.08275"/>
+      </parameter>
+    </component>
+  </type>
+  <idlist idname="bank4">
+    <id val="12302"/>
+    <id val="12303"/>
+    <id val="12304"/>
+    <id val="12305"/>
+    <id val="12306"/>
+    <id val="12307"/>
+    <id val="12308"/>
+    <id val="12309"/>
+    <id val="12310"/>
+    <id val="12311"/>
+    <id val="12312"/>
+    <id val="12313"/>
+    <id val="12314"/>
+    <id val="12315"/>
+    <id val="12316"/>
+    <id val="12317"/>
+    <id val="12318"/>
+    <id val="12319"/>
+    <id val="12320"/>
+    <id val="12321"/>
+    <id val="12322"/>
+    <id val="12323"/>
+    <id val="12324"/>
+    <id val="12325"/>
+    <id val="12326"/>
+    <id val="12327"/>
+    <id val="12328"/>
+    <id val="12329"/>
+    <id val="12330"/>
+    <id val="12331"/>
+    <id val="12332"/>
+    <id val="12333"/>
+    <id val="12334"/>
+    <id val="12335"/>
+    <id val="12336"/>
+    <id val="12337"/>
+    <id val="12338"/>
+    <id val="12339"/>
+    <id val="12340"/>
+    <id val="12341"/>
+    <id val="12342"/>
+    <id val="12343"/>
+    <id val="12344"/>
+    <id val="12345"/>
+    <id val="12346"/>
+    <id val="12366"/>
+    <id val="12367"/>
+    <id val="12368"/>
+    <id val="12369"/>
+    <id val="12370"/>
+    <id val="12371"/>
+    <id val="12372"/>
+    <id val="12373"/>
+    <id val="12374"/>
+    <id val="12375"/>
+    <id val="12376"/>
+    <id val="12377"/>
+    <id val="12378"/>
+    <id val="12379"/>
+    <id val="12380"/>
+    <id val="12381"/>
+    <id val="12382"/>
+    <id val="12383"/>
+    <id val="12384"/>
+    <id val="12385"/>
+    <id val="12386"/>
+    <id val="12387"/>
+    <id val="12388"/>
+    <id val="12389"/>
+    <id val="12390"/>
+    <id val="12391"/>
+    <id val="12392"/>
+    <id val="12393"/>
+    <id val="12394"/>
+    <id val="12395"/>
+    <id val="12396"/>
+    <id val="12397"/>
+    <id val="12398"/>
+    <id val="12399"/>
+    <id val="12400"/>
+    <id val="12401"/>
+    <id val="12402"/>
+    <id val="12403"/>
+    <id val="12404"/>
+    <id val="12405"/>
+    <id val="12406"/>
+    <id val="12407"/>
+    <id val="12408"/>
+    <id val="12409"/>
+    <id val="12410"/>
+    <id val="12430"/>
+    <id val="12431"/>
+    <id val="12432"/>
+    <id val="12433"/>
+    <id val="12434"/>
+    <id val="12435"/>
+    <id val="12436"/>
+    <id val="12437"/>
+    <id val="12438"/>
+    <id val="12439"/>
+    <id val="12440"/>
+    <id val="12441"/>
+    <id val="12442"/>
+    <id val="12443"/>
+    <id val="12444"/>
+    <id val="12445"/>
+    <id val="12446"/>
+    <id val="12447"/>
+    <id val="12448"/>
+    <id val="12449"/>
+    <id val="12450"/>
+    <id val="12451"/>
+    <id val="12452"/>
+    <id val="12453"/>
+    <id val="12454"/>
+    <id val="12455"/>
+    <id val="12456"/>
+    <id val="12457"/>
+    <id val="12458"/>
+    <id val="12459"/>
+    <id val="12460"/>
+    <id val="12461"/>
+    <id val="12462"/>
+    <id val="12463"/>
+    <id val="12464"/>
+    <id val="12465"/>
+    <id val="12466"/>
+    <id val="12467"/>
+    <id val="12468"/>
+    <id val="12469"/>
+    <id val="12470"/>
+    <id val="12471"/>
+    <id val="12472"/>
+    <id val="12473"/>
+    <id val="12474"/>
+    <id val="12494"/>
+    <id val="12495"/>
+    <id val="12496"/>
+    <id val="12497"/>
+    <id val="12498"/>
+    <id val="12499"/>
+    <id val="12500"/>
+    <id val="12501"/>
+    <id val="12502"/>
+    <id val="12503"/>
+    <id val="12504"/>
+    <id val="12505"/>
+    <id val="12506"/>
+    <id val="12507"/>
+    <id val="12508"/>
+    <id val="12509"/>
+    <id val="12510"/>
+    <id val="12511"/>
+    <id val="12512"/>
+    <id val="12513"/>
+    <id val="12514"/>
+    <id val="12515"/>
+    <id val="12516"/>
+    <id val="12517"/>
+    <id val="12518"/>
+    <id val="12519"/>
+    <id val="12520"/>
+    <id val="12521"/>
+    <id val="12522"/>
+    <id val="12523"/>
+    <id val="12524"/>
+    <id val="12525"/>
+    <id val="12526"/>
+    <id val="12527"/>
+    <id val="12528"/>
+    <id val="12529"/>
+    <id val="12530"/>
+    <id val="12531"/>
+    <id val="12532"/>
+    <id val="12533"/>
+    <id val="12534"/>
+    <id val="12535"/>
+    <id val="12536"/>
+    <id val="12537"/>
+    <id val="12538"/>
+    <id val="12558"/>
+    <id val="12559"/>
+    <id val="12560"/>
+    <id val="12561"/>
+    <id val="12562"/>
+    <id val="12563"/>
+    <id val="12564"/>
+    <id val="12565"/>
+    <id val="12566"/>
+    <id val="12567"/>
+    <id val="12568"/>
+    <id val="12569"/>
+    <id val="12570"/>
+    <id val="12571"/>
+    <id val="12572"/>
+    <id val="12573"/>
+    <id val="12574"/>
+    <id val="12575"/>
+    <id val="12576"/>
+    <id val="12577"/>
+    <id val="12578"/>
+    <id val="12579"/>
+    <id val="12580"/>
+    <id val="12581"/>
+    <id val="12582"/>
+    <id val="12583"/>
+    <id val="12584"/>
+    <id val="12585"/>
+    <id val="12586"/>
+    <id val="12587"/>
+    <id val="12588"/>
+    <id val="12589"/>
+    <id val="12590"/>
+    <id val="12591"/>
+    <id val="12592"/>
+    <id val="12593"/>
+    <id val="12594"/>
+    <id val="12595"/>
+    <id val="12596"/>
+    <id val="12597"/>
+    <id val="12598"/>
+    <id val="12599"/>
+    <id val="12600"/>
+    <id val="12601"/>
+    <id val="12602"/>
+    <id val="12622"/>
+    <id val="12623"/>
+    <id val="12624"/>
+    <id val="12625"/>
+    <id val="12626"/>
+    <id val="12627"/>
+    <id val="12628"/>
+    <id val="12629"/>
+    <id val="12630"/>
+    <id val="12631"/>
+    <id val="12632"/>
+    <id val="12633"/>
+    <id val="12634"/>
+    <id val="12635"/>
+    <id val="12636"/>
+    <id val="12637"/>
+    <id val="12638"/>
+    <id val="12639"/>
+    <id val="12640"/>
+    <id val="12641"/>
+    <id val="12642"/>
+    <id val="12643"/>
+    <id val="12644"/>
+    <id val="12645"/>
+    <id val="12646"/>
+    <id val="12647"/>
+    <id val="12648"/>
+    <id val="12649"/>
+    <id val="12650"/>
+    <id val="12651"/>
+    <id val="12652"/>
+    <id val="12653"/>
+    <id val="12654"/>
+    <id val="12655"/>
+    <id val="12656"/>
+    <id val="12657"/>
+    <id val="12658"/>
+    <id val="12659"/>
+    <id val="12660"/>
+    <id val="12661"/>
+    <id val="12662"/>
+    <id val="12663"/>
+    <id val="12664"/>
+    <id val="12665"/>
+    <id val="12666"/>
+    <id val="12686"/>
+    <id val="12687"/>
+    <id val="12688"/>
+    <id val="12689"/>
+    <id val="12690"/>
+    <id val="12691"/>
+    <id val="12692"/>
+    <id val="12693"/>
+    <id val="12694"/>
+    <id val="12695"/>
+    <id val="12696"/>
+    <id val="12697"/>
+    <id val="12698"/>
+    <id val="12699"/>
+    <id val="12700"/>
+    <id val="12701"/>
+    <id val="12702"/>
+    <id val="12703"/>
+    <id val="12704"/>
+    <id val="12705"/>
+    <id val="12706"/>
+    <id val="12707"/>
+    <id val="12708"/>
+    <id val="12709"/>
+    <id val="12710"/>
+    <id val="12711"/>
+    <id val="12712"/>
+    <id val="12713"/>
+    <id val="12714"/>
+    <id val="12715"/>
+    <id val="12716"/>
+    <id val="12717"/>
+    <id val="12718"/>
+    <id val="12719"/>
+    <id val="12720"/>
+    <id val="12721"/>
+    <id val="12722"/>
+    <id val="12723"/>
+    <id val="12724"/>
+    <id val="12725"/>
+    <id val="12726"/>
+    <id val="12727"/>
+    <id val="12728"/>
+    <id val="12729"/>
+    <id val="12730"/>
+    <id val="12750"/>
+    <id val="12751"/>
+    <id val="12752"/>
+    <id val="12753"/>
+    <id val="12754"/>
+    <id val="12755"/>
+    <id val="12756"/>
+    <id val="12757"/>
+    <id val="12758"/>
+    <id val="12759"/>
+    <id val="12760"/>
+    <id val="12761"/>
+    <id val="12762"/>
+    <id val="12763"/>
+    <id val="12764"/>
+    <id val="12765"/>
+    <id val="12766"/>
+    <id val="12767"/>
+    <id val="12768"/>
+    <id val="12769"/>
+    <id val="12770"/>
+    <id val="12771"/>
+    <id val="12772"/>
+    <id val="12773"/>
+    <id val="12774"/>
+    <id val="12775"/>
+    <id val="12776"/>
+    <id val="12777"/>
+    <id val="12778"/>
+    <id val="12779"/>
+    <id val="12780"/>
+    <id val="12781"/>
+    <id val="12782"/>
+    <id val="12783"/>
+    <id val="12784"/>
+    <id val="12785"/>
+    <id val="12786"/>
+    <id val="12787"/>
+    <id val="12788"/>
+    <id val="12789"/>
+    <id val="12790"/>
+    <id val="12791"/>
+    <id val="12792"/>
+    <id val="12793"/>
+    <id val="12794"/>
+    <id val="12814"/>
+    <id val="12815"/>
+    <id val="12816"/>
+    <id val="12817"/>
+    <id val="12818"/>
+    <id val="12819"/>
+    <id val="12820"/>
+    <id val="12821"/>
+    <id val="12822"/>
+    <id val="12823"/>
+    <id val="12824"/>
+    <id val="12825"/>
+    <id val="12826"/>
+    <id val="12827"/>
+    <id val="12828"/>
+    <id val="12829"/>
+    <id val="12830"/>
+    <id val="12831"/>
+    <id val="12832"/>
+    <id val="12833"/>
+    <id val="12834"/>
+    <id val="12835"/>
+    <id val="12836"/>
+    <id val="12837"/>
+    <id val="12838"/>
+    <id val="12839"/>
+    <id val="12840"/>
+    <id val="12841"/>
+    <id val="12842"/>
+    <id val="12843"/>
+    <id val="12844"/>
+    <id val="12845"/>
+    <id val="12846"/>
+    <id val="12847"/>
+    <id val="12848"/>
+    <id val="12849"/>
+    <id val="12850"/>
+    <id val="12851"/>
+    <id val="12852"/>
+    <id val="12853"/>
+    <id val="12854"/>
+    <id val="12855"/>
+    <id val="12856"/>
+    <id val="12857"/>
+    <id val="12858"/>
+    <id val="12878"/>
+    <id val="12879"/>
+    <id val="12880"/>
+    <id val="12881"/>
+    <id val="12882"/>
+    <id val="12883"/>
+    <id val="12884"/>
+    <id val="12885"/>
+    <id val="12886"/>
+    <id val="12887"/>
+    <id val="12888"/>
+    <id val="12889"/>
+    <id val="12890"/>
+    <id val="12891"/>
+    <id val="12892"/>
+    <id val="12893"/>
+    <id val="12894"/>
+    <id val="12895"/>
+    <id val="12896"/>
+    <id val="12897"/>
+    <id val="12898"/>
+    <id val="12899"/>
+    <id val="12900"/>
+    <id val="12901"/>
+    <id val="12902"/>
+    <id val="12903"/>
+    <id val="12904"/>
+    <id val="12905"/>
+    <id val="12906"/>
+    <id val="12907"/>
+    <id val="12908"/>
+    <id val="12909"/>
+    <id val="12910"/>
+    <id val="12911"/>
+    <id val="12912"/>
+    <id val="12913"/>
+    <id val="12914"/>
+    <id val="12915"/>
+    <id val="12916"/>
+    <id val="12917"/>
+    <id val="12918"/>
+    <id val="12919"/>
+    <id val="12920"/>
+    <id val="12921"/>
+    <id val="12922"/>
+    <id val="12942"/>
+    <id val="12943"/>
+    <id val="12944"/>
+    <id val="12945"/>
+    <id val="12946"/>
+    <id val="12947"/>
+    <id val="12948"/>
+    <id val="12949"/>
+    <id val="12950"/>
+    <id val="12951"/>
+    <id val="12952"/>
+    <id val="12953"/>
+    <id val="12954"/>
+    <id val="12955"/>
+    <id val="12956"/>
+    <id val="12957"/>
+    <id val="12958"/>
+    <id val="12959"/>
+    <id val="12960"/>
+    <id val="12961"/>
+    <id val="12962"/>
+    <id val="12963"/>
+    <id val="12964"/>
+    <id val="12965"/>
+    <id val="12966"/>
+    <id val="12967"/>
+    <id val="12968"/>
+    <id val="12969"/>
+    <id val="12970"/>
+    <id val="12971"/>
+    <id val="12972"/>
+    <id val="12973"/>
+    <id val="12974"/>
+    <id val="12975"/>
+    <id val="12976"/>
+    <id val="12977"/>
+    <id val="12978"/>
+    <id val="12979"/>
+    <id val="12980"/>
+    <id val="12981"/>
+    <id val="12982"/>
+    <id val="12983"/>
+    <id val="12984"/>
+    <id val="12985"/>
+    <id val="12986"/>
+    <id val="13006"/>
+    <id val="13007"/>
+    <id val="13008"/>
+    <id val="13009"/>
+    <id val="13010"/>
+    <id val="13011"/>
+    <id val="13012"/>
+    <id val="13013"/>
+    <id val="13014"/>
+    <id val="13015"/>
+    <id val="13016"/>
+    <id val="13017"/>
+    <id val="13018"/>
+    <id val="13019"/>
+    <id val="13020"/>
+    <id val="13021"/>
+    <id val="13022"/>
+    <id val="13023"/>
+    <id val="13024"/>
+    <id val="13025"/>
+    <id val="13026"/>
+    <id val="13027"/>
+    <id val="13028"/>
+    <id val="13029"/>
+    <id val="13030"/>
+    <id val="13031"/>
+    <id val="13032"/>
+    <id val="13033"/>
+    <id val="13034"/>
+    <id val="13035"/>
+    <id val="13036"/>
+    <id val="13037"/>
+    <id val="13038"/>
+    <id val="13039"/>
+    <id val="13040"/>
+    <id val="13041"/>
+    <id val="13042"/>
+    <id val="13043"/>
+    <id val="13044"/>
+    <id val="13045"/>
+    <id val="13046"/>
+    <id val="13047"/>
+    <id val="13048"/>
+    <id val="13049"/>
+    <id val="13050"/>
+    <id val="13070"/>
+    <id val="13071"/>
+    <id val="13072"/>
+    <id val="13073"/>
+    <id val="13074"/>
+    <id val="13075"/>
+    <id val="13076"/>
+    <id val="13077"/>
+    <id val="13078"/>
+    <id val="13079"/>
+    <id val="13080"/>
+    <id val="13081"/>
+    <id val="13082"/>
+    <id val="13083"/>
+    <id val="13084"/>
+    <id val="13085"/>
+    <id val="13086"/>
+    <id val="13087"/>
+    <id val="13088"/>
+    <id val="13089"/>
+    <id val="13090"/>
+    <id val="13091"/>
+    <id val="13092"/>
+    <id val="13093"/>
+    <id val="13094"/>
+    <id val="13095"/>
+    <id val="13096"/>
+    <id val="13097"/>
+    <id val="13098"/>
+    <id val="13099"/>
+    <id val="13100"/>
+    <id val="13101"/>
+    <id val="13102"/>
+    <id val="13103"/>
+    <id val="13104"/>
+    <id val="13105"/>
+    <id val="13106"/>
+    <id val="13107"/>
+    <id val="13108"/>
+    <id val="13109"/>
+    <id val="13110"/>
+    <id val="13111"/>
+    <id val="13112"/>
+    <id val="13113"/>
+    <id val="13114"/>
+    <id val="13134"/>
+    <id val="13135"/>
+    <id val="13136"/>
+    <id val="13137"/>
+    <id val="13138"/>
+    <id val="13139"/>
+    <id val="13140"/>
+    <id val="13141"/>
+    <id val="13142"/>
+    <id val="13143"/>
+    <id val="13144"/>
+    <id val="13145"/>
+    <id val="13146"/>
+    <id val="13147"/>
+    <id val="13148"/>
+    <id val="13149"/>
+    <id val="13150"/>
+    <id val="13151"/>
+    <id val="13152"/>
+    <id val="13153"/>
+    <id val="13154"/>
+    <id val="13155"/>
+    <id val="13156"/>
+    <id val="13157"/>
+    <id val="13158"/>
+    <id val="13159"/>
+    <id val="13160"/>
+    <id val="13161"/>
+    <id val="13162"/>
+    <id val="13163"/>
+    <id val="13164"/>
+    <id val="13165"/>
+    <id val="13166"/>
+    <id val="13167"/>
+    <id val="13168"/>
+    <id val="13169"/>
+    <id val="13170"/>
+    <id val="13171"/>
+    <id val="13172"/>
+    <id val="13173"/>
+    <id val="13174"/>
+    <id val="13175"/>
+    <id val="13176"/>
+    <id val="13177"/>
+    <id val="13178"/>
+    <id val="13198"/>
+    <id val="13199"/>
+    <id val="13200"/>
+    <id val="13201"/>
+    <id val="13202"/>
+    <id val="13203"/>
+    <id val="13204"/>
+    <id val="13205"/>
+    <id val="13206"/>
+    <id val="13207"/>
+    <id val="13208"/>
+    <id val="13209"/>
+    <id val="13210"/>
+    <id val="13211"/>
+    <id val="13212"/>
+    <id val="13213"/>
+    <id val="13214"/>
+    <id val="13215"/>
+    <id val="13216"/>
+    <id val="13217"/>
+    <id val="13218"/>
+    <id val="13219"/>
+    <id val="13220"/>
+    <id val="13221"/>
+    <id val="13222"/>
+    <id val="13223"/>
+    <id val="13224"/>
+    <id val="13225"/>
+    <id val="13226"/>
+    <id val="13227"/>
+    <id val="13228"/>
+    <id val="13229"/>
+    <id val="13230"/>
+    <id val="13231"/>
+    <id val="13232"/>
+    <id val="13233"/>
+    <id val="13234"/>
+    <id val="13235"/>
+    <id val="13236"/>
+    <id val="13237"/>
+    <id val="13238"/>
+    <id val="13239"/>
+    <id val="13240"/>
+    <id val="13241"/>
+    <id val="13242"/>
+    <id val="13262"/>
+    <id val="13263"/>
+    <id val="13264"/>
+    <id val="13265"/>
+    <id val="13266"/>
+    <id val="13267"/>
+    <id val="13268"/>
+    <id val="13269"/>
+    <id val="13270"/>
+    <id val="13271"/>
+    <id val="13272"/>
+    <id val="13273"/>
+    <id val="13274"/>
+    <id val="13275"/>
+    <id val="13276"/>
+    <id val="13277"/>
+    <id val="13278"/>
+    <id val="13279"/>
+    <id val="13280"/>
+    <id val="13281"/>
+    <id val="13282"/>
+    <id val="13283"/>
+    <id val="13284"/>
+    <id val="13285"/>
+    <id val="13286"/>
+    <id val="13287"/>
+    <id val="13288"/>
+    <id val="13289"/>
+    <id val="13290"/>
+    <id val="13291"/>
+    <id val="13292"/>
+    <id val="13293"/>
+    <id val="13294"/>
+    <id val="13295"/>
+    <id val="13296"/>
+    <id val="13297"/>
+    <id val="13298"/>
+    <id val="13299"/>
+    <id val="13300"/>
+    <id val="13301"/>
+    <id val="13302"/>
+    <id val="13303"/>
+    <id val="13304"/>
+    <id val="13305"/>
+    <id val="13306"/>
+    <id val="13326"/>
+    <id val="13327"/>
+    <id val="13328"/>
+    <id val="13329"/>
+    <id val="13330"/>
+    <id val="13331"/>
+    <id val="13332"/>
+    <id val="13333"/>
+    <id val="13334"/>
+    <id val="13335"/>
+    <id val="13336"/>
+    <id val="13337"/>
+    <id val="13338"/>
+    <id val="13339"/>
+    <id val="13340"/>
+    <id val="13341"/>
+    <id val="13342"/>
+    <id val="13343"/>
+    <id val="13344"/>
+    <id val="13345"/>
+    <id val="13346"/>
+    <id val="13347"/>
+    <id val="13348"/>
+    <id val="13349"/>
+    <id val="13350"/>
+    <id val="13351"/>
+    <id val="13352"/>
+    <id val="13353"/>
+    <id val="13354"/>
+    <id val="13355"/>
+    <id val="13356"/>
+    <id val="13357"/>
+    <id val="13358"/>
+    <id val="13359"/>
+    <id val="13360"/>
+    <id val="13361"/>
+    <id val="13362"/>
+    <id val="13363"/>
+    <id val="13364"/>
+    <id val="13365"/>
+    <id val="13366"/>
+    <id val="13367"/>
+    <id val="13368"/>
+    <id val="13369"/>
+    <id val="13370"/>
+    <id val="13390"/>
+    <id val="13391"/>
+    <id val="13392"/>
+    <id val="13393"/>
+    <id val="13394"/>
+    <id val="13395"/>
+    <id val="13396"/>
+    <id val="13397"/>
+    <id val="13398"/>
+    <id val="13399"/>
+    <id val="13400"/>
+    <id val="13401"/>
+    <id val="13402"/>
+    <id val="13403"/>
+    <id val="13404"/>
+    <id val="13405"/>
+    <id val="13406"/>
+    <id val="13407"/>
+    <id val="13408"/>
+    <id val="13409"/>
+    <id val="13410"/>
+    <id val="13411"/>
+    <id val="13412"/>
+    <id val="13413"/>
+    <id val="13414"/>
+    <id val="13415"/>
+    <id val="13416"/>
+    <id val="13417"/>
+    <id val="13418"/>
+    <id val="13419"/>
+    <id val="13420"/>
+    <id val="13421"/>
+    <id val="13422"/>
+    <id val="13423"/>
+    <id val="13424"/>
+    <id val="13425"/>
+    <id val="13426"/>
+    <id val="13427"/>
+    <id val="13428"/>
+    <id val="13429"/>
+    <id val="13430"/>
+    <id val="13431"/>
+    <id val="13432"/>
+    <id val="13433"/>
+    <id val="13434"/>
+    <id val="13454"/>
+    <id val="13455"/>
+    <id val="13456"/>
+    <id val="13457"/>
+    <id val="13458"/>
+    <id val="13459"/>
+    <id val="13460"/>
+    <id val="13461"/>
+    <id val="13462"/>
+    <id val="13463"/>
+    <id val="13464"/>
+    <id val="13465"/>
+    <id val="13466"/>
+    <id val="13467"/>
+    <id val="13468"/>
+    <id val="13469"/>
+    <id val="13470"/>
+    <id val="13471"/>
+    <id val="13472"/>
+    <id val="13473"/>
+    <id val="13474"/>
+    <id val="13475"/>
+    <id val="13476"/>
+    <id val="13477"/>
+    <id val="13478"/>
+    <id val="13479"/>
+    <id val="13480"/>
+    <id val="13481"/>
+    <id val="13482"/>
+    <id val="13483"/>
+    <id val="13484"/>
+    <id val="13485"/>
+    <id val="13486"/>
+    <id val="13487"/>
+    <id val="13488"/>
+    <id val="13489"/>
+    <id val="13490"/>
+    <id val="13491"/>
+    <id val="13492"/>
+    <id val="13493"/>
+    <id val="13494"/>
+    <id val="13495"/>
+    <id val="13496"/>
+    <id val="13497"/>
+    <id val="13498"/>
+    <id val="13518"/>
+    <id val="13519"/>
+    <id val="13520"/>
+    <id val="13521"/>
+    <id val="13522"/>
+    <id val="13523"/>
+    <id val="13524"/>
+    <id val="13525"/>
+    <id val="13526"/>
+    <id val="13527"/>
+    <id val="13528"/>
+    <id val="13529"/>
+    <id val="13530"/>
+    <id val="13531"/>
+    <id val="13532"/>
+    <id val="13533"/>
+    <id val="13534"/>
+    <id val="13535"/>
+    <id val="13536"/>
+    <id val="13537"/>
+    <id val="13538"/>
+    <id val="13539"/>
+    <id val="13540"/>
+    <id val="13541"/>
+    <id val="13542"/>
+    <id val="13543"/>
+    <id val="13544"/>
+    <id val="13545"/>
+    <id val="13546"/>
+    <id val="13547"/>
+    <id val="13548"/>
+    <id val="13549"/>
+    <id val="13550"/>
+    <id val="13551"/>
+    <id val="13552"/>
+    <id val="13553"/>
+    <id val="13554"/>
+    <id val="13555"/>
+    <id val="13556"/>
+    <id val="13557"/>
+    <id val="13558"/>
+    <id val="13559"/>
+    <id val="13560"/>
+    <id val="13561"/>
+    <id val="13562"/>
+    <id val="13582"/>
+    <id val="13583"/>
+    <id val="13584"/>
+    <id val="13585"/>
+    <id val="13586"/>
+    <id val="13587"/>
+    <id val="13588"/>
+    <id val="13589"/>
+    <id val="13590"/>
+    <id val="13591"/>
+    <id val="13592"/>
+    <id val="13593"/>
+    <id val="13594"/>
+    <id val="13595"/>
+    <id val="13596"/>
+    <id val="13597"/>
+    <id val="13598"/>
+    <id val="13599"/>
+    <id val="13600"/>
+    <id val="13601"/>
+    <id val="13602"/>
+    <id val="13603"/>
+    <id val="13604"/>
+    <id val="13605"/>
+    <id val="13606"/>
+    <id val="13607"/>
+    <id val="13608"/>
+    <id val="13609"/>
+    <id val="13610"/>
+    <id val="13611"/>
+    <id val="13612"/>
+    <id val="13613"/>
+    <id val="13614"/>
+    <id val="13615"/>
+    <id val="13616"/>
+    <id val="13617"/>
+    <id val="13618"/>
+    <id val="13619"/>
+    <id val="13620"/>
+    <id val="13621"/>
+    <id val="13622"/>
+    <id val="13623"/>
+    <id val="13624"/>
+    <id val="13625"/>
+    <id val="13626"/>
+    <id val="13646"/>
+    <id val="13647"/>
+    <id val="13648"/>
+    <id val="13649"/>
+    <id val="13650"/>
+    <id val="13651"/>
+    <id val="13652"/>
+    <id val="13653"/>
+    <id val="13654"/>
+    <id val="13655"/>
+    <id val="13656"/>
+    <id val="13657"/>
+    <id val="13658"/>
+    <id val="13659"/>
+    <id val="13660"/>
+    <id val="13661"/>
+    <id val="13662"/>
+    <id val="13663"/>
+    <id val="13664"/>
+    <id val="13665"/>
+    <id val="13666"/>
+    <id val="13667"/>
+    <id val="13668"/>
+    <id val="13669"/>
+    <id val="13670"/>
+    <id val="13671"/>
+    <id val="13672"/>
+    <id val="13673"/>
+    <id val="13674"/>
+    <id val="13675"/>
+    <id val="13676"/>
+    <id val="13677"/>
+    <id val="13678"/>
+    <id val="13679"/>
+    <id val="13680"/>
+    <id val="13681"/>
+    <id val="13682"/>
+    <id val="13683"/>
+    <id val="13684"/>
+    <id val="13685"/>
+    <id val="13686"/>
+    <id val="13687"/>
+    <id val="13688"/>
+    <id val="13689"/>
+    <id val="13690"/>
+    <id val="13710"/>
+    <id val="13711"/>
+    <id val="13712"/>
+    <id val="13713"/>
+    <id val="13714"/>
+    <id val="13715"/>
+    <id val="13716"/>
+    <id val="13717"/>
+    <id val="13718"/>
+    <id val="13719"/>
+    <id val="13720"/>
+    <id val="13721"/>
+    <id val="13722"/>
+    <id val="13723"/>
+    <id val="13724"/>
+    <id val="13725"/>
+    <id val="13726"/>
+    <id val="13727"/>
+    <id val="13728"/>
+    <id val="13729"/>
+    <id val="13730"/>
+    <id val="13731"/>
+    <id val="13732"/>
+    <id val="13733"/>
+    <id val="13734"/>
+    <id val="13735"/>
+    <id val="13736"/>
+    <id val="13737"/>
+    <id val="13738"/>
+    <id val="13739"/>
+    <id val="13740"/>
+    <id val="13741"/>
+    <id val="13742"/>
+    <id val="13743"/>
+    <id val="13744"/>
+    <id val="13745"/>
+    <id val="13746"/>
+    <id val="13747"/>
+    <id val="13748"/>
+    <id val="13749"/>
+    <id val="13750"/>
+    <id val="13751"/>
+    <id val="13752"/>
+    <id val="13753"/>
+    <id val="13754"/>
+    <id val="13774"/>
+    <id val="13775"/>
+    <id val="13776"/>
+    <id val="13777"/>
+    <id val="13778"/>
+    <id val="13779"/>
+    <id val="13780"/>
+    <id val="13781"/>
+    <id val="13782"/>
+    <id val="13783"/>
+    <id val="13784"/>
+    <id val="13785"/>
+    <id val="13786"/>
+    <id val="13787"/>
+    <id val="13788"/>
+    <id val="13789"/>
+    <id val="13790"/>
+    <id val="13791"/>
+    <id val="13792"/>
+    <id val="13793"/>
+    <id val="13794"/>
+    <id val="13795"/>
+    <id val="13796"/>
+    <id val="13797"/>
+    <id val="13798"/>
+    <id val="13799"/>
+    <id val="13800"/>
+    <id val="13801"/>
+    <id val="13802"/>
+    <id val="13803"/>
+    <id val="13804"/>
+    <id val="13805"/>
+    <id val="13806"/>
+    <id val="13807"/>
+    <id val="13808"/>
+    <id val="13809"/>
+    <id val="13810"/>
+    <id val="13811"/>
+    <id val="13812"/>
+    <id val="13813"/>
+    <id val="13814"/>
+    <id val="13815"/>
+    <id val="13816"/>
+    <id val="13817"/>
+    <id val="13818"/>
+    <id val="13838"/>
+    <id val="13839"/>
+    <id val="13840"/>
+    <id val="13841"/>
+    <id val="13842"/>
+    <id val="13843"/>
+    <id val="13844"/>
+    <id val="13845"/>
+    <id val="13846"/>
+    <id val="13847"/>
+    <id val="13848"/>
+    <id val="13849"/>
+    <id val="13850"/>
+    <id val="13851"/>
+    <id val="13852"/>
+    <id val="13853"/>
+    <id val="13854"/>
+    <id val="13855"/>
+    <id val="13856"/>
+    <id val="13857"/>
+    <id val="13858"/>
+    <id val="13859"/>
+    <id val="13860"/>
+    <id val="13861"/>
+    <id val="13862"/>
+    <id val="13863"/>
+    <id val="13864"/>
+    <id val="13865"/>
+    <id val="13866"/>
+    <id val="13867"/>
+    <id val="13868"/>
+    <id val="13869"/>
+    <id val="13870"/>
+    <id val="13871"/>
+    <id val="13872"/>
+    <id val="13873"/>
+    <id val="13874"/>
+    <id val="13875"/>
+    <id val="13876"/>
+    <id val="13877"/>
+    <id val="13878"/>
+    <id val="13879"/>
+    <id val="13880"/>
+    <id val="13881"/>
+    <id val="13882"/>
+    <id val="13902"/>
+    <id val="13903"/>
+    <id val="13904"/>
+    <id val="13905"/>
+    <id val="13906"/>
+    <id val="13907"/>
+    <id val="13908"/>
+    <id val="13909"/>
+    <id val="13910"/>
+    <id val="13911"/>
+    <id val="13912"/>
+    <id val="13913"/>
+    <id val="13914"/>
+    <id val="13915"/>
+    <id val="13916"/>
+    <id val="13917"/>
+    <id val="13918"/>
+    <id val="13919"/>
+    <id val="13920"/>
+    <id val="13921"/>
+    <id val="13922"/>
+    <id val="13923"/>
+    <id val="13924"/>
+    <id val="13925"/>
+    <id val="13926"/>
+    <id val="13927"/>
+    <id val="13928"/>
+    <id val="13929"/>
+    <id val="13930"/>
+    <id val="13931"/>
+    <id val="13932"/>
+    <id val="13933"/>
+    <id val="13934"/>
+    <id val="13935"/>
+    <id val="13936"/>
+    <id val="13937"/>
+    <id val="13938"/>
+    <id val="13939"/>
+    <id val="13940"/>
+    <id val="13941"/>
+    <id val="13942"/>
+    <id val="13943"/>
+    <id val="13944"/>
+    <id val="13945"/>
+    <id val="13946"/>
+    <id val="13966"/>
+    <id val="13967"/>
+    <id val="13968"/>
+    <id val="13969"/>
+    <id val="13970"/>
+    <id val="13971"/>
+    <id val="13972"/>
+    <id val="13973"/>
+    <id val="13974"/>
+    <id val="13975"/>
+    <id val="13976"/>
+    <id val="13977"/>
+    <id val="13978"/>
+    <id val="13979"/>
+    <id val="13980"/>
+    <id val="13981"/>
+    <id val="13982"/>
+    <id val="13983"/>
+    <id val="13984"/>
+    <id val="13985"/>
+    <id val="13986"/>
+    <id val="13987"/>
+    <id val="13988"/>
+    <id val="13989"/>
+    <id val="13990"/>
+    <id val="13991"/>
+    <id val="13992"/>
+    <id val="13993"/>
+    <id val="13994"/>
+    <id val="13995"/>
+    <id val="13996"/>
+    <id val="13997"/>
+    <id val="13998"/>
+    <id val="13999"/>
+    <id val="14000"/>
+    <id val="14001"/>
+    <id val="14002"/>
+    <id val="14003"/>
+    <id val="14004"/>
+    <id val="14005"/>
+    <id val="14006"/>
+    <id val="14007"/>
+    <id val="14008"/>
+    <id val="14009"/>
+    <id val="14010"/>
+    <id val="14030"/>
+    <id val="14031"/>
+    <id val="14032"/>
+    <id val="14033"/>
+    <id val="14034"/>
+    <id val="14035"/>
+    <id val="14036"/>
+    <id val="14037"/>
+    <id val="14038"/>
+    <id val="14039"/>
+    <id val="14040"/>
+    <id val="14041"/>
+    <id val="14042"/>
+    <id val="14043"/>
+    <id val="14044"/>
+    <id val="14045"/>
+    <id val="14046"/>
+    <id val="14047"/>
+    <id val="14048"/>
+    <id val="14049"/>
+    <id val="14050"/>
+    <id val="14051"/>
+    <id val="14052"/>
+    <id val="14053"/>
+    <id val="14054"/>
+    <id val="14055"/>
+    <id val="14056"/>
+    <id val="14057"/>
+    <id val="14058"/>
+    <id val="14059"/>
+    <id val="14060"/>
+    <id val="14061"/>
+    <id val="14062"/>
+    <id val="14063"/>
+    <id val="14064"/>
+    <id val="14065"/>
+    <id val="14066"/>
+    <id val="14067"/>
+    <id val="14068"/>
+    <id val="14069"/>
+    <id val="14070"/>
+    <id val="14071"/>
+    <id val="14072"/>
+    <id val="14073"/>
+    <id val="14074"/>
+    <id val="14094"/>
+    <id val="14095"/>
+    <id val="14096"/>
+    <id val="14097"/>
+    <id val="14098"/>
+    <id val="14099"/>
+    <id val="14100"/>
+    <id val="14101"/>
+    <id val="14102"/>
+    <id val="14103"/>
+    <id val="14104"/>
+    <id val="14105"/>
+    <id val="14106"/>
+    <id val="14107"/>
+    <id val="14108"/>
+    <id val="14109"/>
+    <id val="14110"/>
+    <id val="14111"/>
+    <id val="14112"/>
+    <id val="14113"/>
+    <id val="14114"/>
+    <id val="14115"/>
+    <id val="14116"/>
+    <id val="14117"/>
+    <id val="14118"/>
+    <id val="14119"/>
+    <id val="14120"/>
+    <id val="14121"/>
+    <id val="14122"/>
+    <id val="14123"/>
+    <id val="14124"/>
+    <id val="14125"/>
+    <id val="14126"/>
+    <id val="14127"/>
+    <id val="14128"/>
+    <id val="14129"/>
+    <id val="14130"/>
+    <id val="14131"/>
+    <id val="14132"/>
+    <id val="14133"/>
+    <id val="14134"/>
+    <id val="14135"/>
+    <id val="14136"/>
+    <id val="14137"/>
+    <id val="14138"/>
+    <id val="14158"/>
+    <id val="14159"/>
+    <id val="14160"/>
+    <id val="14161"/>
+    <id val="14162"/>
+    <id val="14163"/>
+    <id val="14164"/>
+    <id val="14165"/>
+    <id val="14166"/>
+    <id val="14167"/>
+    <id val="14168"/>
+    <id val="14169"/>
+    <id val="14170"/>
+    <id val="14171"/>
+    <id val="14172"/>
+    <id val="14173"/>
+    <id val="14174"/>
+    <id val="14175"/>
+    <id val="14176"/>
+    <id val="14177"/>
+    <id val="14178"/>
+    <id val="14179"/>
+    <id val="14180"/>
+    <id val="14181"/>
+    <id val="14182"/>
+    <id val="14183"/>
+    <id val="14184"/>
+    <id val="14185"/>
+    <id val="14186"/>
+    <id val="14187"/>
+    <id val="14188"/>
+    <id val="14189"/>
+    <id val="14190"/>
+    <id val="14191"/>
+    <id val="14192"/>
+    <id val="14193"/>
+    <id val="14194"/>
+    <id val="14195"/>
+    <id val="14196"/>
+    <id val="14197"/>
+    <id val="14198"/>
+    <id val="14199"/>
+    <id val="14200"/>
+    <id val="14201"/>
+    <id val="14202"/>
+    <id val="14222"/>
+    <id val="14223"/>
+    <id val="14224"/>
+    <id val="14225"/>
+    <id val="14226"/>
+    <id val="14227"/>
+    <id val="14228"/>
+    <id val="14229"/>
+    <id val="14230"/>
+    <id val="14231"/>
+    <id val="14232"/>
+    <id val="14233"/>
+    <id val="14234"/>
+    <id val="14235"/>
+    <id val="14236"/>
+    <id val="14237"/>
+    <id val="14238"/>
+    <id val="14239"/>
+    <id val="14240"/>
+    <id val="14241"/>
+    <id val="14242"/>
+    <id val="14243"/>
+    <id val="14244"/>
+    <id val="14245"/>
+    <id val="14246"/>
+    <id val="14247"/>
+    <id val="14248"/>
+    <id val="14249"/>
+    <id val="14250"/>
+    <id val="14251"/>
+    <id val="14252"/>
+    <id val="14253"/>
+    <id val="14254"/>
+    <id val="14255"/>
+    <id val="14256"/>
+    <id val="14257"/>
+    <id val="14258"/>
+    <id val="14259"/>
+    <id val="14260"/>
+    <id val="14261"/>
+    <id val="14262"/>
+    <id val="14263"/>
+    <id val="14264"/>
+    <id val="14265"/>
+    <id val="14266"/>
+    <id val="14286"/>
+    <id val="14287"/>
+    <id val="14288"/>
+    <id val="14289"/>
+    <id val="14290"/>
+    <id val="14291"/>
+    <id val="14292"/>
+    <id val="14293"/>
+    <id val="14294"/>
+    <id val="14295"/>
+    <id val="14296"/>
+    <id val="14297"/>
+    <id val="14298"/>
+    <id val="14299"/>
+    <id val="14300"/>
+    <id val="14301"/>
+    <id val="14302"/>
+    <id val="14303"/>
+    <id val="14304"/>
+    <id val="14305"/>
+    <id val="14306"/>
+    <id val="14307"/>
+    <id val="14308"/>
+    <id val="14309"/>
+    <id val="14310"/>
+    <id val="14311"/>
+    <id val="14312"/>
+    <id val="14313"/>
+    <id val="14314"/>
+    <id val="14315"/>
+    <id val="14316"/>
+    <id val="14317"/>
+    <id val="14318"/>
+    <id val="14319"/>
+    <id val="14320"/>
+    <id val="14321"/>
+    <id val="14322"/>
+    <id val="14323"/>
+    <id val="14324"/>
+    <id val="14325"/>
+    <id val="14326"/>
+    <id val="14327"/>
+    <id val="14328"/>
+    <id val="14329"/>
+    <id val="14330"/>
+    <id val="14350"/>
+    <id val="14351"/>
+    <id val="14352"/>
+    <id val="14353"/>
+    <id val="14354"/>
+    <id val="14355"/>
+    <id val="14356"/>
+    <id val="14357"/>
+    <id val="14358"/>
+    <id val="14359"/>
+    <id val="14360"/>
+    <id val="14361"/>
+    <id val="14362"/>
+    <id val="14363"/>
+    <id val="14364"/>
+    <id val="14365"/>
+    <id val="14366"/>
+    <id val="14367"/>
+    <id val="14368"/>
+    <id val="14369"/>
+    <id val="14370"/>
+    <id val="14371"/>
+    <id val="14372"/>
+    <id val="14373"/>
+    <id val="14374"/>
+    <id val="14375"/>
+    <id val="14376"/>
+    <id val="14377"/>
+    <id val="14378"/>
+    <id val="14379"/>
+    <id val="14380"/>
+    <id val="14381"/>
+    <id val="14382"/>
+    <id val="14383"/>
+    <id val="14384"/>
+    <id val="14385"/>
+    <id val="14386"/>
+    <id val="14387"/>
+    <id val="14388"/>
+    <id val="14389"/>
+    <id val="14390"/>
+    <id val="14391"/>
+    <id val="14392"/>
+    <id val="14393"/>
+    <id val="14394"/>
+    <id val="14414"/>
+    <id val="14415"/>
+    <id val="14416"/>
+    <id val="14417"/>
+    <id val="14418"/>
+    <id val="14419"/>
+    <id val="14420"/>
+    <id val="14421"/>
+    <id val="14422"/>
+    <id val="14423"/>
+    <id val="14424"/>
+    <id val="14425"/>
+    <id val="14426"/>
+    <id val="14427"/>
+    <id val="14428"/>
+    <id val="14429"/>
+    <id val="14430"/>
+    <id val="14431"/>
+    <id val="14432"/>
+    <id val="14433"/>
+    <id val="14434"/>
+    <id val="14435"/>
+    <id val="14436"/>
+    <id val="14437"/>
+    <id val="14438"/>
+    <id val="14439"/>
+    <id val="14440"/>
+    <id val="14441"/>
+    <id val="14442"/>
+    <id val="14443"/>
+    <id val="14444"/>
+    <id val="14445"/>
+    <id val="14446"/>
+    <id val="14447"/>
+    <id val="14448"/>
+    <id val="14449"/>
+    <id val="14450"/>
+    <id val="14451"/>
+    <id val="14452"/>
+    <id val="14453"/>
+    <id val="14454"/>
+    <id val="14455"/>
+    <id val="14456"/>
+    <id val="14457"/>
+    <id val="14458"/>
+    <id val="14478"/>
+    <id val="14479"/>
+    <id val="14480"/>
+    <id val="14481"/>
+    <id val="14482"/>
+    <id val="14483"/>
+    <id val="14484"/>
+    <id val="14485"/>
+    <id val="14486"/>
+    <id val="14487"/>
+    <id val="14488"/>
+    <id val="14489"/>
+    <id val="14490"/>
+    <id val="14491"/>
+    <id val="14492"/>
+    <id val="14493"/>
+    <id val="14494"/>
+    <id val="14495"/>
+    <id val="14496"/>
+    <id val="14497"/>
+    <id val="14498"/>
+    <id val="14499"/>
+    <id val="14500"/>
+    <id val="14501"/>
+    <id val="14502"/>
+    <id val="14503"/>
+    <id val="14504"/>
+    <id val="14505"/>
+    <id val="14506"/>
+    <id val="14507"/>
+    <id val="14508"/>
+    <id val="14509"/>
+    <id val="14510"/>
+    <id val="14511"/>
+    <id val="14512"/>
+    <id val="14513"/>
+    <id val="14514"/>
+    <id val="14515"/>
+    <id val="14516"/>
+    <id val="14517"/>
+    <id val="14518"/>
+    <id val="14519"/>
+    <id val="14520"/>
+    <id val="14521"/>
+    <id val="14522"/>
+    <id val="14542"/>
+    <id val="14543"/>
+    <id val="14544"/>
+    <id val="14545"/>
+    <id val="14546"/>
+    <id val="14547"/>
+    <id val="14548"/>
+    <id val="14549"/>
+    <id val="14550"/>
+    <id val="14551"/>
+    <id val="14552"/>
+    <id val="14553"/>
+    <id val="14554"/>
+    <id val="14555"/>
+    <id val="14556"/>
+    <id val="14557"/>
+    <id val="14558"/>
+    <id val="14559"/>
+    <id val="14560"/>
+    <id val="14561"/>
+    <id val="14562"/>
+    <id val="14563"/>
+    <id val="14564"/>
+    <id val="14565"/>
+    <id val="14566"/>
+    <id val="14567"/>
+    <id val="14568"/>
+    <id val="14569"/>
+    <id val="14570"/>
+    <id val="14571"/>
+    <id val="14572"/>
+    <id val="14573"/>
+    <id val="14574"/>
+    <id val="14575"/>
+    <id val="14576"/>
+    <id val="14577"/>
+    <id val="14578"/>
+    <id val="14579"/>
+    <id val="14580"/>
+    <id val="14581"/>
+    <id val="14582"/>
+    <id val="14583"/>
+    <id val="14584"/>
+    <id val="14585"/>
+    <id val="14586"/>
+    <id val="14606"/>
+    <id val="14607"/>
+    <id val="14608"/>
+    <id val="14609"/>
+    <id val="14610"/>
+    <id val="14611"/>
+    <id val="14612"/>
+    <id val="14613"/>
+    <id val="14614"/>
+    <id val="14615"/>
+    <id val="14616"/>
+    <id val="14617"/>
+    <id val="14618"/>
+    <id val="14619"/>
+    <id val="14620"/>
+    <id val="14621"/>
+    <id val="14622"/>
+    <id val="14623"/>
+    <id val="14624"/>
+    <id val="14625"/>
+    <id val="14626"/>
+    <id val="14627"/>
+    <id val="14628"/>
+    <id val="14629"/>
+    <id val="14630"/>
+    <id val="14631"/>
+    <id val="14632"/>
+    <id val="14633"/>
+    <id val="14634"/>
+    <id val="14635"/>
+    <id val="14636"/>
+    <id val="14637"/>
+    <id val="14638"/>
+    <id val="14639"/>
+    <id val="14640"/>
+    <id val="14641"/>
+    <id val="14642"/>
+    <id val="14643"/>
+    <id val="14644"/>
+    <id val="14645"/>
+    <id val="14646"/>
+    <id val="14647"/>
+    <id val="14648"/>
+    <id val="14649"/>
+    <id val="14650"/>
+    <id val="14670"/>
+    <id val="14671"/>
+    <id val="14672"/>
+    <id val="14673"/>
+    <id val="14674"/>
+    <id val="14675"/>
+    <id val="14676"/>
+    <id val="14677"/>
+    <id val="14678"/>
+    <id val="14679"/>
+    <id val="14680"/>
+    <id val="14681"/>
+    <id val="14682"/>
+    <id val="14683"/>
+    <id val="14684"/>
+    <id val="14685"/>
+    <id val="14686"/>
+    <id val="14687"/>
+    <id val="14688"/>
+    <id val="14689"/>
+    <id val="14690"/>
+    <id val="14691"/>
+    <id val="14692"/>
+    <id val="14693"/>
+    <id val="14694"/>
+    <id val="14695"/>
+    <id val="14696"/>
+    <id val="14697"/>
+    <id val="14698"/>
+    <id val="14699"/>
+    <id val="14700"/>
+    <id val="14701"/>
+    <id val="14702"/>
+    <id val="14703"/>
+    <id val="14704"/>
+    <id val="14705"/>
+    <id val="14706"/>
+    <id val="14707"/>
+    <id val="14708"/>
+    <id val="14709"/>
+    <id val="14710"/>
+    <id val="14711"/>
+    <id val="14712"/>
+    <id val="14713"/>
+    <id val="14714"/>
+    <id val="14734"/>
+    <id val="14735"/>
+    <id val="14736"/>
+    <id val="14737"/>
+    <id val="14738"/>
+    <id val="14739"/>
+    <id val="14740"/>
+    <id val="14741"/>
+    <id val="14742"/>
+    <id val="14743"/>
+    <id val="14744"/>
+    <id val="14745"/>
+    <id val="14746"/>
+    <id val="14747"/>
+    <id val="14748"/>
+    <id val="14749"/>
+    <id val="14750"/>
+    <id val="14751"/>
+    <id val="14752"/>
+    <id val="14753"/>
+    <id val="14754"/>
+    <id val="14755"/>
+    <id val="14756"/>
+    <id val="14757"/>
+    <id val="14758"/>
+    <id val="14759"/>
+    <id val="14760"/>
+    <id val="14761"/>
+    <id val="14762"/>
+    <id val="14763"/>
+    <id val="14764"/>
+    <id val="14765"/>
+    <id val="14766"/>
+    <id val="14767"/>
+    <id val="14768"/>
+    <id val="14769"/>
+    <id val="14770"/>
+    <id val="14771"/>
+    <id val="14772"/>
+    <id val="14773"/>
+    <id val="14774"/>
+    <id val="14775"/>
+    <id val="14776"/>
+    <id val="14777"/>
+    <id val="14778"/>
+    <id val="14798"/>
+    <id val="14799"/>
+    <id val="14800"/>
+    <id val="14801"/>
+    <id val="14802"/>
+    <id val="14803"/>
+    <id val="14804"/>
+    <id val="14805"/>
+    <id val="14806"/>
+    <id val="14807"/>
+    <id val="14808"/>
+    <id val="14809"/>
+    <id val="14810"/>
+    <id val="14811"/>
+    <id val="14812"/>
+    <id val="14813"/>
+    <id val="14814"/>
+    <id val="14815"/>
+    <id val="14816"/>
+    <id val="14817"/>
+    <id val="14818"/>
+    <id val="14819"/>
+    <id val="14820"/>
+    <id val="14821"/>
+    <id val="14822"/>
+    <id val="14823"/>
+    <id val="14824"/>
+    <id val="14825"/>
+    <id val="14826"/>
+    <id val="14827"/>
+    <id val="14828"/>
+    <id val="14829"/>
+    <id val="14830"/>
+    <id val="14831"/>
+    <id val="14832"/>
+    <id val="14833"/>
+    <id val="14834"/>
+    <id val="14835"/>
+    <id val="14836"/>
+    <id val="14837"/>
+    <id val="14838"/>
+    <id val="14839"/>
+    <id val="14840"/>
+    <id val="14841"/>
+    <id val="14842"/>
+    <id val="14862"/>
+    <id val="14863"/>
+    <id val="14864"/>
+    <id val="14865"/>
+    <id val="14866"/>
+    <id val="14867"/>
+    <id val="14868"/>
+    <id val="14869"/>
+    <id val="14870"/>
+    <id val="14871"/>
+    <id val="14872"/>
+    <id val="14873"/>
+    <id val="14874"/>
+    <id val="14875"/>
+    <id val="14876"/>
+    <id val="14877"/>
+    <id val="14878"/>
+    <id val="14879"/>
+    <id val="14880"/>
+    <id val="14881"/>
+    <id val="14882"/>
+    <id val="14883"/>
+    <id val="14884"/>
+    <id val="14885"/>
+    <id val="14886"/>
+    <id val="14887"/>
+    <id val="14888"/>
+    <id val="14889"/>
+    <id val="14890"/>
+    <id val="14891"/>
+    <id val="14892"/>
+    <id val="14893"/>
+    <id val="14894"/>
+    <id val="14895"/>
+    <id val="14896"/>
+    <id val="14897"/>
+    <id val="14898"/>
+    <id val="14899"/>
+    <id val="14900"/>
+    <id val="14901"/>
+    <id val="14902"/>
+    <id val="14903"/>
+    <id val="14904"/>
+    <id val="14905"/>
+    <id val="14906"/>
+    <id val="14926"/>
+    <id val="14927"/>
+    <id val="14928"/>
+    <id val="14929"/>
+    <id val="14930"/>
+    <id val="14931"/>
+    <id val="14932"/>
+    <id val="14933"/>
+    <id val="14934"/>
+    <id val="14935"/>
+    <id val="14936"/>
+    <id val="14937"/>
+    <id val="14938"/>
+    <id val="14939"/>
+    <id val="14940"/>
+    <id val="14941"/>
+    <id val="14942"/>
+    <id val="14943"/>
+    <id val="14944"/>
+    <id val="14945"/>
+    <id val="14946"/>
+    <id val="14947"/>
+    <id val="14948"/>
+    <id val="14949"/>
+    <id val="14950"/>
+    <id val="14951"/>
+    <id val="14952"/>
+    <id val="14953"/>
+    <id val="14954"/>
+    <id val="14955"/>
+    <id val="14956"/>
+    <id val="14957"/>
+    <id val="14958"/>
+    <id val="14959"/>
+    <id val="14960"/>
+    <id val="14961"/>
+    <id val="14962"/>
+    <id val="14963"/>
+    <id val="14964"/>
+    <id val="14965"/>
+    <id val="14966"/>
+    <id val="14967"/>
+    <id val="14968"/>
+    <id val="14969"/>
+    <id val="14970"/>
+    <id val="14990"/>
+    <id val="14991"/>
+    <id val="14992"/>
+    <id val="14993"/>
+    <id val="14994"/>
+    <id val="14995"/>
+    <id val="14996"/>
+    <id val="14997"/>
+    <id val="14998"/>
+    <id val="14999"/>
+    <id val="15000"/>
+    <id val="15001"/>
+    <id val="15002"/>
+    <id val="15003"/>
+    <id val="15004"/>
+    <id val="15005"/>
+    <id val="15006"/>
+    <id val="15007"/>
+    <id val="15008"/>
+    <id val="15009"/>
+    <id val="15010"/>
+    <id val="15011"/>
+    <id val="15012"/>
+    <id val="15013"/>
+    <id val="15014"/>
+    <id val="15015"/>
+    <id val="15016"/>
+    <id val="15017"/>
+    <id val="15018"/>
+    <id val="15019"/>
+    <id val="15020"/>
+    <id val="15021"/>
+    <id val="15022"/>
+    <id val="15023"/>
+    <id val="15024"/>
+    <id val="15025"/>
+    <id val="15026"/>
+    <id val="15027"/>
+    <id val="15028"/>
+    <id val="15029"/>
+    <id val="15030"/>
+    <id val="15031"/>
+    <id val="15032"/>
+    <id val="15033"/>
+    <id val="15034"/>
+    <id val="15054"/>
+    <id val="15055"/>
+    <id val="15056"/>
+    <id val="15057"/>
+    <id val="15058"/>
+    <id val="15059"/>
+    <id val="15060"/>
+    <id val="15061"/>
+    <id val="15062"/>
+    <id val="15063"/>
+    <id val="15064"/>
+    <id val="15065"/>
+    <id val="15066"/>
+    <id val="15067"/>
+    <id val="15068"/>
+    <id val="15069"/>
+    <id val="15070"/>
+    <id val="15071"/>
+    <id val="15072"/>
+    <id val="15073"/>
+    <id val="15074"/>
+    <id val="15075"/>
+    <id val="15076"/>
+    <id val="15077"/>
+    <id val="15078"/>
+    <id val="15079"/>
+    <id val="15080"/>
+    <id val="15081"/>
+    <id val="15082"/>
+    <id val="15083"/>
+    <id val="15084"/>
+    <id val="15085"/>
+    <id val="15086"/>
+    <id val="15087"/>
+    <id val="15088"/>
+    <id val="15089"/>
+    <id val="15090"/>
+    <id val="15091"/>
+    <id val="15092"/>
+    <id val="15093"/>
+    <id val="15094"/>
+    <id val="15095"/>
+    <id val="15096"/>
+    <id val="15097"/>
+    <id val="15098"/>
+    <id val="15118"/>
+    <id val="15119"/>
+    <id val="15120"/>
+    <id val="15121"/>
+    <id val="15122"/>
+    <id val="15123"/>
+    <id val="15124"/>
+    <id val="15125"/>
+    <id val="15126"/>
+    <id val="15127"/>
+    <id val="15128"/>
+    <id val="15129"/>
+    <id val="15130"/>
+    <id val="15131"/>
+    <id val="15132"/>
+    <id val="15133"/>
+    <id val="15134"/>
+    <id val="15135"/>
+    <id val="15136"/>
+    <id val="15137"/>
+    <id val="15138"/>
+    <id val="15139"/>
+    <id val="15140"/>
+    <id val="15141"/>
+    <id val="15142"/>
+    <id val="15143"/>
+    <id val="15144"/>
+    <id val="15145"/>
+    <id val="15146"/>
+    <id val="15147"/>
+    <id val="15148"/>
+    <id val="15149"/>
+    <id val="15150"/>
+    <id val="15151"/>
+    <id val="15152"/>
+    <id val="15153"/>
+    <id val="15154"/>
+    <id val="15155"/>
+    <id val="15156"/>
+    <id val="15157"/>
+    <id val="15158"/>
+    <id val="15159"/>
+    <id val="15160"/>
+    <id val="15161"/>
+    <id val="15162"/>
+    <id val="15182"/>
+    <id val="15183"/>
+    <id val="15184"/>
+    <id val="15185"/>
+    <id val="15186"/>
+    <id val="15187"/>
+    <id val="15188"/>
+    <id val="15189"/>
+    <id val="15190"/>
+    <id val="15191"/>
+    <id val="15192"/>
+    <id val="15193"/>
+    <id val="15194"/>
+    <id val="15195"/>
+    <id val="15196"/>
+    <id val="15197"/>
+    <id val="15198"/>
+    <id val="15199"/>
+    <id val="15200"/>
+    <id val="15201"/>
+    <id val="15202"/>
+    <id val="15203"/>
+    <id val="15204"/>
+    <id val="15205"/>
+    <id val="15206"/>
+    <id val="15207"/>
+    <id val="15208"/>
+    <id val="15209"/>
+    <id val="15210"/>
+    <id val="15211"/>
+    <id val="15212"/>
+    <id val="15213"/>
+    <id val="15214"/>
+    <id val="15215"/>
+    <id val="15216"/>
+    <id val="15217"/>
+    <id val="15218"/>
+    <id val="15219"/>
+    <id val="15220"/>
+    <id val="15221"/>
+    <id val="15222"/>
+    <id val="15223"/>
+    <id val="15224"/>
+    <id val="15225"/>
+    <id val="15226"/>
+    <id val="15246"/>
+    <id val="15247"/>
+    <id val="15248"/>
+    <id val="15249"/>
+    <id val="15250"/>
+    <id val="15251"/>
+    <id val="15252"/>
+    <id val="15253"/>
+    <id val="15254"/>
+    <id val="15255"/>
+    <id val="15256"/>
+    <id val="15257"/>
+    <id val="15258"/>
+    <id val="15259"/>
+    <id val="15260"/>
+    <id val="15261"/>
+    <id val="15262"/>
+    <id val="15263"/>
+    <id val="15264"/>
+    <id val="15265"/>
+    <id val="15266"/>
+    <id val="15267"/>
+    <id val="15268"/>
+    <id val="15269"/>
+    <id val="15270"/>
+    <id val="15271"/>
+    <id val="15272"/>
+    <id val="15273"/>
+    <id val="15274"/>
+    <id val="15275"/>
+    <id val="15276"/>
+    <id val="15277"/>
+    <id val="15278"/>
+    <id val="15279"/>
+    <id val="15280"/>
+    <id val="15281"/>
+    <id val="15282"/>
+    <id val="15283"/>
+    <id val="15284"/>
+    <id val="15285"/>
+    <id val="15286"/>
+    <id val="15287"/>
+    <id val="15288"/>
+    <id val="15289"/>
+    <id val="15290"/>
+    <id val="15310"/>
+    <id val="15311"/>
+    <id val="15312"/>
+    <id val="15313"/>
+    <id val="15314"/>
+    <id val="15315"/>
+    <id val="15316"/>
+    <id val="15317"/>
+    <id val="15318"/>
+    <id val="15319"/>
+    <id val="15320"/>
+    <id val="15321"/>
+    <id val="15322"/>
+    <id val="15323"/>
+    <id val="15324"/>
+    <id val="15325"/>
+    <id val="15326"/>
+    <id val="15327"/>
+    <id val="15328"/>
+    <id val="15329"/>
+    <id val="15330"/>
+    <id val="15331"/>
+    <id val="15332"/>
+    <id val="15333"/>
+    <id val="15334"/>
+    <id val="15335"/>
+    <id val="15336"/>
+    <id val="15337"/>
+    <id val="15338"/>
+    <id val="15339"/>
+    <id val="15340"/>
+    <id val="15341"/>
+    <id val="15342"/>
+    <id val="15343"/>
+    <id val="15344"/>
+    <id val="15345"/>
+    <id val="15346"/>
+    <id val="15347"/>
+    <id val="15348"/>
+    <id val="15349"/>
+    <id val="15350"/>
+    <id val="15351"/>
+    <id val="15352"/>
+    <id val="15353"/>
+    <id val="15354"/>
+    <id val="15374"/>
+    <id val="15375"/>
+    <id val="15376"/>
+    <id val="15377"/>
+    <id val="15378"/>
+    <id val="15379"/>
+    <id val="15380"/>
+    <id val="15381"/>
+    <id val="15382"/>
+    <id val="15383"/>
+    <id val="15384"/>
+    <id val="15385"/>
+    <id val="15386"/>
+    <id val="15387"/>
+    <id val="15388"/>
+    <id val="15389"/>
+    <id val="15390"/>
+    <id val="15391"/>
+    <id val="15392"/>
+    <id val="15393"/>
+    <id val="15394"/>
+    <id val="15395"/>
+    <id val="15396"/>
+    <id val="15397"/>
+    <id val="15398"/>
+    <id val="15399"/>
+    <id val="15400"/>
+    <id val="15401"/>
+    <id val="15402"/>
+    <id val="15403"/>
+    <id val="15404"/>
+    <id val="15405"/>
+    <id val="15406"/>
+    <id val="15407"/>
+    <id val="15408"/>
+    <id val="15409"/>
+    <id val="15410"/>
+    <id val="15411"/>
+    <id val="15412"/>
+    <id val="15413"/>
+    <id val="15414"/>
+    <id val="15415"/>
+    <id val="15416"/>
+    <id val="15417"/>
+    <id val="15418"/>
+    <id val="15438"/>
+    <id val="15439"/>
+    <id val="15440"/>
+    <id val="15441"/>
+    <id val="15442"/>
+    <id val="15443"/>
+    <id val="15444"/>
+    <id val="15445"/>
+    <id val="15446"/>
+    <id val="15447"/>
+    <id val="15448"/>
+    <id val="15449"/>
+    <id val="15450"/>
+    <id val="15451"/>
+    <id val="15452"/>
+    <id val="15453"/>
+    <id val="15454"/>
+    <id val="15455"/>
+    <id val="15456"/>
+    <id val="15457"/>
+    <id val="15458"/>
+    <id val="15459"/>
+    <id val="15460"/>
+    <id val="15461"/>
+    <id val="15462"/>
+    <id val="15463"/>
+    <id val="15464"/>
+    <id val="15465"/>
+    <id val="15466"/>
+    <id val="15467"/>
+    <id val="15468"/>
+    <id val="15469"/>
+    <id val="15470"/>
+    <id val="15471"/>
+    <id val="15472"/>
+    <id val="15473"/>
+    <id val="15474"/>
+    <id val="15475"/>
+    <id val="15476"/>
+    <id val="15477"/>
+    <id val="15478"/>
+    <id val="15479"/>
+    <id val="15480"/>
+    <id val="15481"/>
+    <id val="15482"/>
+    <id val="15502"/>
+    <id val="15503"/>
+    <id val="15504"/>
+    <id val="15505"/>
+    <id val="15506"/>
+    <id val="15507"/>
+    <id val="15508"/>
+    <id val="15509"/>
+    <id val="15510"/>
+    <id val="15511"/>
+    <id val="15512"/>
+    <id val="15513"/>
+    <id val="15514"/>
+    <id val="15515"/>
+    <id val="15516"/>
+    <id val="15517"/>
+    <id val="15518"/>
+    <id val="15519"/>
+    <id val="15520"/>
+    <id val="15521"/>
+    <id val="15522"/>
+    <id val="15523"/>
+    <id val="15524"/>
+    <id val="15525"/>
+    <id val="15526"/>
+    <id val="15527"/>
+    <id val="15528"/>
+    <id val="15529"/>
+    <id val="15530"/>
+    <id val="15531"/>
+    <id val="15532"/>
+    <id val="15533"/>
+    <id val="15534"/>
+    <id val="15535"/>
+    <id val="15536"/>
+    <id val="15537"/>
+    <id val="15538"/>
+    <id val="15539"/>
+    <id val="15540"/>
+    <id val="15541"/>
+    <id val="15542"/>
+    <id val="15543"/>
+    <id val="15544"/>
+    <id val="15545"/>
+    <id val="15546"/>
+    <id val="15566"/>
+    <id val="15567"/>
+    <id val="15568"/>
+    <id val="15569"/>
+    <id val="15570"/>
+    <id val="15571"/>
+    <id val="15572"/>
+    <id val="15573"/>
+    <id val="15574"/>
+    <id val="15575"/>
+    <id val="15576"/>
+    <id val="15577"/>
+    <id val="15578"/>
+    <id val="15579"/>
+    <id val="15580"/>
+    <id val="15581"/>
+    <id val="15582"/>
+    <id val="15583"/>
+    <id val="15584"/>
+    <id val="15585"/>
+    <id val="15586"/>
+    <id val="15587"/>
+    <id val="15588"/>
+    <id val="15589"/>
+    <id val="15590"/>
+    <id val="15591"/>
+    <id val="15592"/>
+    <id val="15593"/>
+    <id val="15594"/>
+    <id val="15595"/>
+    <id val="15596"/>
+    <id val="15597"/>
+    <id val="15598"/>
+    <id val="15599"/>
+    <id val="15600"/>
+    <id val="15601"/>
+    <id val="15602"/>
+    <id val="15603"/>
+    <id val="15604"/>
+    <id val="15605"/>
+    <id val="15606"/>
+    <id val="15607"/>
+    <id val="15608"/>
+    <id val="15609"/>
+    <id val="15610"/>
+    <id val="15630"/>
+    <id val="15631"/>
+    <id val="15632"/>
+    <id val="15633"/>
+    <id val="15634"/>
+    <id val="15635"/>
+    <id val="15636"/>
+    <id val="15637"/>
+    <id val="15638"/>
+    <id val="15639"/>
+    <id val="15640"/>
+    <id val="15641"/>
+    <id val="15642"/>
+    <id val="15643"/>
+    <id val="15644"/>
+    <id val="15645"/>
+    <id val="15646"/>
+    <id val="15647"/>
+    <id val="15648"/>
+    <id val="15649"/>
+    <id val="15650"/>
+    <id val="15651"/>
+    <id val="15652"/>
+    <id val="15653"/>
+    <id val="15654"/>
+    <id val="15655"/>
+    <id val="15656"/>
+    <id val="15657"/>
+    <id val="15658"/>
+    <id val="15659"/>
+    <id val="15660"/>
+    <id val="15661"/>
+    <id val="15662"/>
+    <id val="15663"/>
+    <id val="15664"/>
+    <id val="15665"/>
+    <id val="15666"/>
+    <id val="15667"/>
+    <id val="15668"/>
+    <id val="15669"/>
+    <id val="15670"/>
+    <id val="15671"/>
+    <id val="15672"/>
+    <id val="15673"/>
+    <id val="15674"/>
+    <id val="15694"/>
+    <id val="15695"/>
+    <id val="15696"/>
+    <id val="15697"/>
+    <id val="15698"/>
+    <id val="15699"/>
+    <id val="15700"/>
+    <id val="15701"/>
+    <id val="15702"/>
+    <id val="15703"/>
+    <id val="15704"/>
+    <id val="15705"/>
+    <id val="15706"/>
+    <id val="15707"/>
+    <id val="15708"/>
+    <id val="15709"/>
+    <id val="15710"/>
+    <id val="15711"/>
+    <id val="15712"/>
+    <id val="15713"/>
+    <id val="15714"/>
+    <id val="15715"/>
+    <id val="15716"/>
+    <id val="15717"/>
+    <id val="15718"/>
+    <id val="15719"/>
+    <id val="15720"/>
+    <id val="15721"/>
+    <id val="15722"/>
+    <id val="15723"/>
+    <id val="15724"/>
+    <id val="15725"/>
+    <id val="15726"/>
+    <id val="15727"/>
+    <id val="15728"/>
+    <id val="15729"/>
+    <id val="15730"/>
+    <id val="15731"/>
+    <id val="15732"/>
+    <id val="15733"/>
+    <id val="15734"/>
+    <id val="15735"/>
+    <id val="15736"/>
+    <id val="15737"/>
+    <id val="15738"/>
+    <id val="15758"/>
+    <id val="15759"/>
+    <id val="15760"/>
+    <id val="15761"/>
+    <id val="15762"/>
+    <id val="15763"/>
+    <id val="15764"/>
+    <id val="15765"/>
+    <id val="15766"/>
+    <id val="15767"/>
+    <id val="15768"/>
+    <id val="15769"/>
+    <id val="15770"/>
+    <id val="15771"/>
+    <id val="15772"/>
+    <id val="15773"/>
+    <id val="15774"/>
+    <id val="15775"/>
+    <id val="15776"/>
+    <id val="15777"/>
+    <id val="15778"/>
+    <id val="15779"/>
+    <id val="15780"/>
+    <id val="15781"/>
+    <id val="15782"/>
+    <id val="15783"/>
+    <id val="15784"/>
+    <id val="15785"/>
+    <id val="15786"/>
+    <id val="15787"/>
+    <id val="15788"/>
+    <id val="15789"/>
+    <id val="15790"/>
+    <id val="15791"/>
+    <id val="15792"/>
+    <id val="15793"/>
+    <id val="15794"/>
+    <id val="15795"/>
+    <id val="15796"/>
+    <id val="15797"/>
+    <id val="15798"/>
+    <id val="15799"/>
+    <id val="15800"/>
+    <id val="15801"/>
+    <id val="15802"/>
+    <id val="15822"/>
+    <id val="15823"/>
+    <id val="15824"/>
+    <id val="15825"/>
+    <id val="15826"/>
+    <id val="15827"/>
+    <id val="15828"/>
+    <id val="15829"/>
+    <id val="15830"/>
+    <id val="15831"/>
+    <id val="15832"/>
+    <id val="15833"/>
+    <id val="15834"/>
+    <id val="15835"/>
+    <id val="15836"/>
+    <id val="15837"/>
+    <id val="15838"/>
+    <id val="15839"/>
+    <id val="15840"/>
+    <id val="15841"/>
+    <id val="15842"/>
+    <id val="15843"/>
+    <id val="15844"/>
+    <id val="15845"/>
+    <id val="15846"/>
+    <id val="15847"/>
+    <id val="15848"/>
+    <id val="15849"/>
+    <id val="15850"/>
+    <id val="15851"/>
+    <id val="15852"/>
+    <id val="15853"/>
+    <id val="15854"/>
+    <id val="15855"/>
+    <id val="15856"/>
+    <id val="15857"/>
+    <id val="15858"/>
+    <id val="15859"/>
+    <id val="15860"/>
+    <id val="15861"/>
+    <id val="15862"/>
+    <id val="15863"/>
+    <id val="15864"/>
+    <id val="15865"/>
+    <id val="15866"/>
+  </idlist>
+  <component idlist="elastic" type="elastic">
+    <location/>
+  </component>
+  <type name="elastic">
+    <component type="bank5">
+      <location/>
+    </component>
+    <component type="bank6">
+      <location/>
+    </component>
+    <component type="bank7">
+      <location/>
+    </component>
+    <component type="bank8">
+      <location/>
+    </component>
+    <component type="bank9">
+      <location/>
+    </component>
+    <component type="bank10">
+      <location/>
+    </component>
+    <component type="bank11">
+      <location/>
+    </component>
+    <component type="bank12">
+      <location/>
+    </component>
+    <component type="bank13">
+      <location/>
+    </component>
+  </type>
+  <type name="bank5">
+    <component type="tube-elastic">
+      <location x="1.1649855" y="-0.001807" z="-2.1474825">
+        <rot axis-x="0" axis-y="1" axis-z="0" val="0.0">
+          <rot axis-x="1" axis-y="0" axis-z="0" val="0.0">
+            <rot axis-x="0" axis-y="0" axis-z="1" val="90.0"/>
+          </rot>
+        </rot>
+        <facing x="0.0" y="0.0" z="0.0"/>
+      </location>
+    </component>
+  </type>
+  <type name="bank6">
+    <component type="tube-elastic">
+      <location x="1.7484015" y="-0.001801" z="-1.704594">
+        <rot axis-x="0" axis-y="1" axis-z="0" val="0.0">
+          <rot axis-x="1" axis-y="0" axis-z="0" val="0.0">
+            <rot axis-x="0" axis-y="0" axis-z="1" val="90.0"/>
+          </rot>
+        </rot>
+        <facing x="0.0" y="0.0" z="0.0"/>
+      </location>
+    </component>
+  </type>
+  <type name="bank7">
+    <component type="tube-elastic">
+      <location x="2.175541" y="-0.0011845" z="-1.108373">
+        <rot axis-x="0" axis-y="1" axis-z="0" val="0.0">
+          <rot axis-x="1" axis-y="0" axis-z="0" val="0.0">
+            <rot axis-x="0" axis-y="0" axis-z="1" val="90.0"/>
+          </rot>
+        </rot>
+        <facing x="0.0" y="0.0" z="0.0"/>
+      </location>
+    </component>
+  </type>
+  <type name="bank8">
+    <component type="tube-elastic">
+      <location x="2.408594" y="-0.0006885" z="-0.4135165">
+        <rot axis-x="0" axis-y="1" axis-z="0" val="0.0">
+          <rot axis-x="1" axis-y="0" axis-z="0" val="0.0">
+            <rot axis-x="0" axis-y="0" axis-z="1" val="90.0"/>
+          </rot>
+        </rot>
+        <facing x="0.0" y="0.0" z="0.0"/>
+      </location>
+    </component>
+  </type>
+  <type name="bank9">
+    <component type="tube-elastic">
+      <location x="2.422933" y="-0.0013145" z="0.3181">
+        <rot axis-x="0" axis-y="1" axis-z="0" val="0.0">
+          <rot axis-x="1" axis-y="0" axis-z="0" val="0.0">
+            <rot axis-x="0" axis-y="0" axis-z="1" val="90.0"/>
+          </rot>
+        </rot>
+        <facing x="0.0" y="0.0" z="0.0"/>
+      </location>
+    </component>
+  </type>
+  <type name="bank10">
+    <component type="tube-elastic">
+      <location x="2.216378" y="-0.001626" z="1.0218315">
+        <rot axis-x="0" axis-y="1" axis-z="0" val="0.0">
+          <rot axis-x="1" axis-y="0" axis-z="0" val="0.0">
+            <rot axis-x="0" axis-y="0" axis-z="1" val="90.0"/>
+          </rot>
+        </rot>
+        <facing x="0.0" y="0.0" z="0.0"/>
+      </location>
+    </component>
+  </type>
+  <type name="bank11">
+    <component type="tube-elastic">
+      <location x="1.8142005" y="-0.001397" z="1.6330115">
+        <rot axis-x="0" axis-y="1" axis-z="0" val="0.0">
+          <rot axis-x="1" axis-y="0" axis-z="0" val="0.0">
+            <rot axis-x="0" axis-y="0" axis-z="1" val="90.0"/>
+          </rot>
+        </rot>
+        <facing x="0.0" y="0.0" z="0.0"/>
+      </location>
+    </component>
+  </type>
+  <type name="bank12">
+    <component type="tube-elastic">
+      <location x="1.247867" y="0.0003465" z="2.0993535">
+        <rot axis-x="0" axis-y="1" axis-z="0" val="0.0">
+          <rot axis-x="1" axis-y="0" axis-z="0" val="0.0">
+            <rot axis-x="0" axis-y="0" axis-z="1" val="90.0"/>
+          </rot>
+        </rot>
+        <facing x="0.0" y="0.0" z="0.0"/>
+      </location>
+    </component>
+  </type>
+  <type name="bank13">
+    <component type="tube-elastic">
+      <location x="0.5687435" y="-0.0001125" z="2.376999">
+        <rot axis-x="0" axis-y="1" axis-z="0" val="0.0">
+          <rot axis-x="1" axis-y="0" axis-z="0" val="0.0">
+            <rot axis-x="0" axis-y="0" axis-z="1" val="90.0"/>
+          </rot>
+        </rot>
+        <facing x="0.0" y="0.0" z="0.0"/>
+      </location>
+    </component>
+  </type>
+  <!--ELASTIC TUBE (90 degrees)-->
+  <type name="tube-elastic" outline="yes">
+    <properties/>
+    <component type="pixel-elastic-tube">
+      <location name="pixel1" y="-0.31804371875">
+        <neutronic y="-0.31804371875"/>
+      </location>
+      <location name="pixel2" y="-0.31303515625">
+        <neutronic y="-0.31303515625"/>
+      </location>
+      <location name="pixel3" y="-0.30802659375">
+        <neutronic y="-0.30802659375"/>
+      </location>
+      <location name="pixel4" y="-0.30301803125">
+        <neutronic y="-0.30301803125"/>
+      </location>
+      <location name="pixel5" y="-0.29800946875">
+        <neutronic y="-0.29800946875"/>
+      </location>
+      <location name="pixel6" y="-0.29300090625">
+        <neutronic y="-0.29300090625"/>
+      </location>
+      <location name="pixel7" y="-0.28799234375">
+        <neutronic y="-0.28799234375"/>
+      </location>
+      <location name="pixel8" y="-0.28298378125">
+        <neutronic y="-0.28298378125"/>
+      </location>
+      <location name="pixel9" y="-0.27797521875">
+        <neutronic y="-0.27797521875"/>
+      </location>
+      <location name="pixel10" y="-0.27296665625">
+        <neutronic y="-0.27296665625"/>
+      </location>
+      <location name="pixel11" y="-0.26795809375">
+        <neutronic y="-0.26795809375"/>
+      </location>
+      <location name="pixel12" y="-0.26294953125">
+        <neutronic y="-0.26294953125"/>
+      </location>
+      <location name="pixel13" y="-0.25794096875">
+        <neutronic y="-0.25794096875"/>
+      </location>
+      <location name="pixel14" y="-0.25293240625">
+        <neutronic y="-0.25293240625"/>
+      </location>
+      <location name="pixel15" y="-0.24792384375">
+        <neutronic y="-0.24792384375"/>
+      </location>
+      <location name="pixel16" y="-0.24291528125">
+        <neutronic y="-0.24291528125"/>
+      </location>
+      <location name="pixel17" y="-0.23790671875">
+        <neutronic y="-0.23790671875"/>
+      </location>
+      <location name="pixel18" y="-0.23289815625">
+        <neutronic y="-0.23289815625"/>
+      </location>
+      <location name="pixel19" y="-0.22788959375">
+        <neutronic y="-0.22788959375"/>
+      </location>
+      <location name="pixel20" y="-0.22288103125">
+        <neutronic y="-0.22288103125"/>
+      </location>
+      <location name="pixel21" y="-0.21787246875">
+        <neutronic y="-0.21787246875"/>
+      </location>
+      <location name="pixel22" y="-0.21286390625">
+        <neutronic y="-0.21286390625"/>
+      </location>
+      <location name="pixel23" y="-0.20785534375">
+        <neutronic y="-0.20785534375"/>
+      </location>
+      <location name="pixel24" y="-0.20284678125">
+        <neutronic y="-0.20284678125"/>
+      </location>
+      <location name="pixel25" y="-0.19783821875">
+        <neutronic y="-0.19783821875"/>
+      </location>
+      <location name="pixel26" y="-0.19282965625">
+        <neutronic y="-0.19282965625"/>
+      </location>
+      <location name="pixel27" y="-0.18782109375">
+        <neutronic y="-0.18782109375"/>
+      </location>
+      <location name="pixel28" y="-0.18281253125">
+        <neutronic y="-0.18281253125"/>
+      </location>
+      <location name="pixel29" y="-0.17780396875">
+        <neutronic y="-0.17780396875"/>
+      </location>
+      <location name="pixel30" y="-0.17279540625">
+        <neutronic y="-0.17279540625"/>
+      </location>
+      <location name="pixel31" y="-0.16778684375">
+        <neutronic y="-0.16778684375"/>
+      </location>
+      <location name="pixel32" y="-0.16277828125">
+        <neutronic y="-0.16277828125"/>
+      </location>
+      <location name="pixel33" y="-0.15776971875">
+        <neutronic y="-0.15776971875"/>
+      </location>
+      <location name="pixel34" y="-0.15276115625">
+        <neutronic y="-0.15276115625"/>
+      </location>
+      <location name="pixel35" y="-0.14775259375">
+        <neutronic y="-0.14775259375"/>
+      </location>
+      <location name="pixel36" y="-0.14274403125">
+        <neutronic y="-0.14274403125"/>
+      </location>
+      <location name="pixel37" y="-0.13773546875">
+        <neutronic y="-0.13773546875"/>
+      </location>
+      <location name="pixel38" y="-0.13272690625">
+        <neutronic y="-0.13272690625"/>
+      </location>
+      <location name="pixel39" y="-0.12771834375">
+        <neutronic y="-0.12771834375"/>
+      </location>
+      <location name="pixel40" y="-0.12270978125">
+        <neutronic y="-0.12270978125"/>
+      </location>
+      <location name="pixel41" y="-0.11770121875">
+        <neutronic y="-0.11770121875"/>
+      </location>
+      <location name="pixel42" y="-0.11269265625">
+        <neutronic y="-0.11269265625"/>
+      </location>
+      <location name="pixel43" y="-0.10768409375">
+        <neutronic y="-0.10768409375"/>
+      </location>
+      <location name="pixel44" y="-0.10267553125">
+        <neutronic y="-0.10267553125"/>
+      </location>
+      <location name="pixel45" y="-0.09766696875">
+        <neutronic y="-0.09766696875"/>
+      </location>
+      <location name="pixel46" y="-0.09265840625">
+        <neutronic y="-0.09265840625"/>
+      </location>
+      <location name="pixel47" y="-0.08764984375">
+        <neutronic y="-0.08764984375"/>
+      </location>
+      <location name="pixel48" y="-0.08264128125">
+        <neutronic y="-0.08264128125"/>
+      </location>
+      <location name="pixel49" y="-0.07763271875">
+        <neutronic y="-0.07763271875"/>
+      </location>
+      <location name="pixel50" y="-0.07262415625">
+        <neutronic y="-0.07262415625"/>
+      </location>
+      <location name="pixel51" y="-0.06761559375">
+        <neutronic y="-0.06761559375"/>
+      </location>
+      <location name="pixel52" y="-0.06260703125">
+        <neutronic y="-0.06260703125"/>
+      </location>
+      <location name="pixel53" y="-0.05759846875">
+        <neutronic y="-0.05759846875"/>
+      </location>
+      <location name="pixel54" y="-0.05258990625">
+        <neutronic y="-0.05258990625"/>
+      </location>
+      <location name="pixel55" y="-0.04758134375">
+        <neutronic y="-0.04758134375"/>
+      </location>
+      <location name="pixel56" y="-0.04257278125">
+        <neutronic y="-0.04257278125"/>
+      </location>
+      <location name="pixel57" y="-0.03756421875">
+        <neutronic y="-0.03756421875"/>
+      </location>
+      <location name="pixel58" y="-0.03255565625">
+        <neutronic y="-0.03255565625"/>
+      </location>
+      <location name="pixel59" y="-0.02754709375">
+        <neutronic y="-0.02754709375"/>
+      </location>
+      <location name="pixel60" y="-0.02253853125">
+        <neutronic y="-0.02253853125"/>
+      </location>
+      <location name="pixel61" y="-0.01752996875">
+        <neutronic y="-0.01752996875"/>
+      </location>
+      <location name="pixel62" y="-0.01252140625">
+        <neutronic y="-0.01252140625"/>
+      </location>
+      <location name="pixel63" y="-0.00751284375">
+        <neutronic y="-0.00751284375"/>
+      </location>
+      <location name="pixel64" y="-0.00250428125">
+        <neutronic y="-0.00250428125"/>
+      </location>
+      <location name="pixel65" y="0.00250428125">
+        <neutronic y="0.00250428125"/>
+      </location>
+      <location name="pixel66" y="0.00751284375">
+        <neutronic y="0.00751284375"/>
+      </location>
+      <location name="pixel67" y="0.01252140625">
+        <neutronic y="0.01252140625"/>
+      </location>
+      <location name="pixel68" y="0.01752996875">
+        <neutronic y="0.01752996875"/>
+      </location>
+      <location name="pixel69" y="0.02253853125">
+        <neutronic y="0.02253853125"/>
+      </location>
+      <location name="pixel70" y="0.02754709375">
+        <neutronic y="0.02754709375"/>
+      </location>
+      <location name="pixel71" y="0.03255565625">
+        <neutronic y="0.03255565625"/>
+      </location>
+      <location name="pixel72" y="0.03756421875">
+        <neutronic y="0.03756421875"/>
+      </location>
+      <location name="pixel73" y="0.04257278125">
+        <neutronic y="0.04257278125"/>
+      </location>
+      <location name="pixel74" y="0.04758134375">
+        <neutronic y="0.04758134375"/>
+      </location>
+      <location name="pixel75" y="0.05258990625">
+        <neutronic y="0.05258990625"/>
+      </location>
+      <location name="pixel76" y="0.05759846875">
+        <neutronic y="0.05759846875"/>
+      </location>
+      <location name="pixel77" y="0.06260703125">
+        <neutronic y="0.06260703125"/>
+      </location>
+      <location name="pixel78" y="0.06761559375">
+        <neutronic y="0.06761559375"/>
+      </location>
+      <location name="pixel79" y="0.07262415625">
+        <neutronic y="0.07262415625"/>
+      </location>
+      <location name="pixel80" y="0.07763271875">
+        <neutronic y="0.07763271875"/>
+      </location>
+      <location name="pixel81" y="0.08264128125">
+        <neutronic y="0.08264128125"/>
+      </location>
+      <location name="pixel82" y="0.08764984375">
+        <neutronic y="0.08764984375"/>
+      </location>
+      <location name="pixel83" y="0.09265840625">
+        <neutronic y="0.09265840625"/>
+      </location>
+      <location name="pixel84" y="0.09766696875">
+        <neutronic y="0.09766696875"/>
+      </location>
+      <location name="pixel85" y="0.10267553125">
+        <neutronic y="0.10267553125"/>
+      </location>
+      <location name="pixel86" y="0.10768409375">
+        <neutronic y="0.10768409375"/>
+      </location>
+      <location name="pixel87" y="0.11269265625">
+        <neutronic y="0.11269265625"/>
+      </location>
+      <location name="pixel88" y="0.11770121875">
+        <neutronic y="0.11770121875"/>
+      </location>
+      <location name="pixel89" y="0.12270978125">
+        <neutronic y="0.12270978125"/>
+      </location>
+      <location name="pixel90" y="0.12771834375">
+        <neutronic y="0.12771834375"/>
+      </location>
+      <location name="pixel91" y="0.13272690625">
+        <neutronic y="0.13272690625"/>
+      </location>
+      <location name="pixel92" y="0.13773546875">
+        <neutronic y="0.13773546875"/>
+      </location>
+      <location name="pixel93" y="0.14274403125">
+        <neutronic y="0.14274403125"/>
+      </location>
+      <location name="pixel94" y="0.14775259375">
+        <neutronic y="0.14775259375"/>
+      </location>
+      <location name="pixel95" y="0.15276115625">
+        <neutronic y="0.15276115625"/>
+      </location>
+      <location name="pixel96" y="0.15776971875">
+        <neutronic y="0.15776971875"/>
+      </location>
+      <location name="pixel97" y="0.16277828125">
+        <neutronic y="0.16277828125"/>
+      </location>
+      <location name="pixel98" y="0.16778684375">
+        <neutronic y="0.16778684375"/>
+      </location>
+      <location name="pixel99" y="0.17279540625">
+        <neutronic y="0.17279540625"/>
+      </location>
+      <location name="pixel100" y="0.17780396875">
+        <neutronic y="0.17780396875"/>
+      </location>
+      <location name="pixel101" y="0.18281253125">
+        <neutronic y="0.18281253125"/>
+      </location>
+      <location name="pixel102" y="0.18782109375">
+        <neutronic y="0.18782109375"/>
+      </location>
+      <location name="pixel103" y="0.19282965625">
+        <neutronic y="0.19282965625"/>
+      </location>
+      <location name="pixel104" y="0.19783821875">
+        <neutronic y="0.19783821875"/>
+      </location>
+      <location name="pixel105" y="0.20284678125">
+        <neutronic y="0.20284678125"/>
+      </location>
+      <location name="pixel106" y="0.20785534375">
+        <neutronic y="0.20785534375"/>
+      </location>
+      <location name="pixel107" y="0.21286390625">
+        <neutronic y="0.21286390625"/>
+      </location>
+      <location name="pixel108" y="0.21787246875">
+        <neutronic y="0.21787246875"/>
+      </location>
+      <location name="pixel109" y="0.22288103125">
+        <neutronic y="0.22288103125"/>
+      </location>
+      <location name="pixel110" y="0.22788959375">
+        <neutronic y="0.22788959375"/>
+      </location>
+      <location name="pixel111" y="0.23289815625">
+        <neutronic y="0.23289815625"/>
+      </location>
+      <location name="pixel112" y="0.23790671875">
+        <neutronic y="0.23790671875"/>
+      </location>
+      <location name="pixel113" y="0.24291528125">
+        <neutronic y="0.24291528125"/>
+      </location>
+      <location name="pixel114" y="0.24792384375">
+        <neutronic y="0.24792384375"/>
+      </location>
+      <location name="pixel115" y="0.25293240625">
+        <neutronic y="0.25293240625"/>
+      </location>
+      <location name="pixel116" y="0.25794096875">
+        <neutronic y="0.25794096875"/>
+      </location>
+      <location name="pixel117" y="0.26294953125">
+        <neutronic y="0.26294953125"/>
+      </location>
+      <location name="pixel118" y="0.26795809375">
+        <neutronic y="0.26795809375"/>
+      </location>
+      <location name="pixel119" y="0.27296665625">
+        <neutronic y="0.27296665625"/>
+      </location>
+      <location name="pixel120" y="0.27797521875">
+        <neutronic y="0.27797521875"/>
+      </location>
+      <location name="pixel121" y="0.28298378125">
+        <neutronic y="0.28298378125"/>
+      </location>
+      <location name="pixel122" y="0.28799234375">
+        <neutronic y="0.28799234375"/>
+      </location>
+      <location name="pixel123" y="0.29300090625">
+        <neutronic y="0.29300090625"/>
+      </location>
+      <location name="pixel124" y="0.29800946875">
+        <neutronic y="0.29800946875"/>
+      </location>
+      <location name="pixel125" y="0.30301803125">
+        <neutronic y="0.30301803125"/>
+      </location>
+      <location name="pixel126" y="0.30802659375">
+        <neutronic y="0.30802659375"/>
+      </location>
+      <location name="pixel127" y="0.31303515625">
+        <neutronic y="0.31303515625"/>
+      </location>
+      <location name="pixel128" y="0.31804371875">
+        <neutronic y="0.31804371875"/>
+      </location>
+    </component>
+  </type>
+  <idlist idname="elastic">
+    <id end="16511" start="16384"/>
+    <id end="16639" start="16512"/>
+    <id end="16767" start="16640"/>
+    <id end="16895" start="16768"/>
+    <id end="17023" start="16896"/>
+    <id end="17151" start="17024"/>
+    <id end="17279" start="17152"/>
+    <id end="17407" start="17280"/>
+    <id end="17535" start="17408"/>
+  </idlist>
+  <!--PIXEL FOR DIFFRACTION TUBES-->
+  <type is="detector" name="pixel-elastic-tube">
+    <cylinder id="cyl-approx">
+      <centre-of-bottom-base p="0.0" r="0.0" t="0.0"/>
+      <axis x="0.0" y="1.0" z="0.0"/>
+      <radius val="0.00635"/>
+      <height val="0.0050085625"/>
+    </cylinder>
+    <algebra val="cyl-approx"/>
+  </type>
+  <!--PIXEL FOR INELASTIC TUBES-->
+  <type is="detector" name="pixel">
+    <cylinder id="cyl-approx">
+      <centre-of-bottom-base p="0.0" r="0.0" t="0.0"/>
+      <axis x="0.0" y="1.0" z="0.0"/>
+      <radius val="0.0513043907079"/>
+      <height val="0.034363828125"/>
+    </cylinder>
+    <algebra val="cyl-approx"/>
+  </type>
+  <!--MONITOR SHAPE-->
+  <!--FIXME: Do something real here.-->
+  <type is="monitor" name="monitor">
+    <cylinder id="cyl-approx">
+      <centre-of-bottom-base p="0.0" r="0.0" t="0.0"/>
+      <axis x="0.0" y="0.0" z="1.0"/>
+      <radius val="0.01"/>
+      <height val="0.03"/>
+    </cylinder>
+    <algebra val="cyl-approx"/>
+  </type>
+  <!--MONITOR IDs-->
+  <idlist idname="monitors">
+    <id val="-1"/>
+  </idlist>
+</instrument>
diff --git a/Code/Mantid/instrument/CORELLI_Definition.xml b/Code/Mantid/instrument/CORELLI_Definition.xml
index 83b539b45c5dc71ceee131047c26be505368aa87..486ad624aa4c28e928701968615be816e6a26332 100644
--- a/Code/Mantid/instrument/CORELLI_Definition.xml
+++ b/Code/Mantid/instrument/CORELLI_Definition.xml
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='ASCII'?>
-<instrument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mantidproject.org/IDF/1.0" last-modified="2014-04-03 15:21:50.935979" name="CORELLI" valid-from="2014-02-25 00:00:00" valid-to="2100-01-31 23:59:59" xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 http://schema.mantidproject.org/IDF/1.0/IDFSchema.xsd">
+<instrument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mantidproject.org/IDF/1.0" last-modified="2015-07-06 17:02:46.748632" name="CORELLI" valid-from="2014-02-25 00:00:00" valid-to="2100-01-31 23:59:59" xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 http://schema.mantidproject.org/IDF/1.0/IDFSchema.xsd">
   <!--Created by Ross Whitfield-->
   <defaults>
     <length unit="metre"/>
@@ -50,15 +50,24 @@
       <height val="0.02"/>
     </cylinder>
     <cuboid id="hole">
-      <left-front-bottom-point x="0.02" y="-0.02" z="0.0"/>
-      <left-front-top-point x="0.02" y="-0.02" z="0.02"/>
-      <left-back-bottom-point x="-0.02" y="-0.02" z="0.0"/>
-      <right-front-bottom-point x="0.02" y="0.02" z="0.0"/>
+      <left-front-bottom-point x="0.04" y="-0.02" z="0.0"/>
+      <left-front-top-point x="0.04" y="-0.02" z="0.02"/>
+      <left-back-bottom-point x="-0.04" y="-0.02" z="0.0"/>
+      <right-front-bottom-point x="0.04" y="0.02" z="0.0"/>
     </cuboid>
     <algebra val="body (# hole)"/>
   </type>
   <component type="double-disk-chopper">
     <location z="-11.79995"/>
+    <parameter name="Speed (Hz)">
+      <logfile id="BL9:Chop:Skf2:MotorSpeed"/>
+    </parameter>
+    <parameter name="Bandwidth (A)">
+      <logfile id="BL9:Chop:Skf23:Bandwidth"/>
+    </parameter>
+    <parameter name="Center (A)">
+      <logfile id="BL9:Chop:Skf23:CenterWavelength"/>
+    </parameter>
   </component>
   <type is="chopper" name="double-disk-chopper">
     <cylinder id="body1">
@@ -67,11 +76,11 @@
       <radius val="0.2"/>
       <height val="0.02"/>
     </cylinder>
-    <cuboid id="hole1">
-      <left-front-bottom-point x="0.03" y="-0.015" z="0.0"/>
-      <left-front-top-point x="0.03" y="-0.015" z="0.02"/>
-      <left-back-bottom-point x="-0.03" y="-0.015" z="0.0"/>
-      <right-front-bottom-point x="0.03" y="0.015" z="0.0"/>
+    <cuboid id="hole">
+      <left-front-bottom-point x="0.04" y="-0.02" z="0.0"/>
+      <left-front-top-point x="0.04" y="-0.02" z="0.055"/>
+      <left-back-bottom-point x="-0.04" y="-0.02" z="0.0"/>
+      <right-front-bottom-point x="0.04" y="0.02" z="0.0"/>
     </cuboid>
     <cylinder id="body2">
       <centre-of-bottom-base x="-0.17" y="-0.0" z="0.035"/>
@@ -79,665 +88,670 @@
       <radius val="0.2"/>
       <height val="0.02"/>
     </cylinder>
-    <cuboid id="hole2">
-      <left-front-bottom-point x="0.03" y="-0.015" z="0.035"/>
-      <left-front-top-point x="0.03" y="-0.015" z="0.055"/>
-      <left-back-bottom-point x="-0.03" y="-0.015" z="0.035"/>
-      <right-front-bottom-point x="0.03" y="0.015" z="0.035"/>
-    </cuboid>
-    <algebra val="body1 (# hole1) : body2 (# hole2)"/>
+    <algebra val="(body1 : body2) (#hole)"/>
   </type>
   <component type="correlation-chopper">
     <location z="-2.000653"/>
+    <parameter name="Speed (Hz)">
+      <logfile id="BL9:Chop:Skf4:MotorSpeed"/>
+    </parameter>
   </component>
   <type is="chopper" name="correlation-chopper">
     <cylinder id="body">
       <centre-of-bottom-base x="-0.28" y="0.0" z="0.0"/>
       <axis x="0.0" y="0.0" z="1.0"/>
-      <radius val="0.3"/>
+      <radius val="0.255"/>
       <height val="0.02"/>
     </cylinder>
     <hexahedron id="hole0">
-      <left-back-bottom-point x="-0.296408053377" y="0.329591832096" z="0.0"/>
-      <left-front-bottom-point x="-0.296408053377" y="0.329591832096" z="0.02"/>
-      <right-front-bottom-point x="-0.28" y="0.33" z="0.02"/>
-      <right-back-bottom-point x="-0.28" y="0.33" z="0.0"/>
-      <left-back-top-point x="-0.293126442701" y="0.263673465677" z="0.0"/>
-      <left-front-top-point x="-0.293126442701" y="0.263673465677" z="0.02"/>
-      <right-front-top-point x="-0.28" y="0.264" z="0.02"/>
-      <right-back-top-point x="-0.28" y="0.264" z="0.0"/>
+      <left-back-bottom-point x="-0.28" y="0.3" z="0.0"/>
+      <left-front-bottom-point x="-0.28" y="0.3" z="0.02"/>
+      <right-front-bottom-point x="-0.25810687051" y="0.299200085029" z="0.02"/>
+      <right-back-bottom-point x="-0.25810687051" y="0.299200085029" z="0.0"/>
+      <left-back-top-point x="-0.28" y="0.24" z="0.0"/>
+      <left-front-top-point x="-0.28" y="0.24" z="0.02"/>
+      <right-front-top-point x="-0.262485496408" y="0.239360068023" z="0.02"/>
+      <right-back-top-point x="-0.262485496408" y="0.239360068023" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole1">
-      <left-back-bottom-point x="-0.255917557561" y="0.329120093531" z="0.0"/>
-      <left-front-bottom-point x="-0.255917557561" y="0.329120093531" z="0.02"/>
-      <right-front-bottom-point x="-0.239737383825" y="0.327534611513" z="0.02"/>
-      <right-back-bottom-point x="-0.239737383825" y="0.327534611513" z="0.0"/>
-      <left-back-top-point x="-0.260734046048" y="0.263296074825" z="0.0"/>
-      <left-front-top-point x="-0.260734046048" y="0.263296074825" z="0.02"/>
-      <right-front-top-point x="-0.24778990706" y="0.26202768921" z="0.02"/>
-      <right-back-top-point x="-0.24778990706" y="0.26202768921" z="0.0"/>
+      <left-back-bottom-point x="-0.243397621659" y="0.297758737739" z="0.0"/>
+      <left-front-bottom-point x="-0.243397621659" y="0.297758737739" z="0.02"/>
+      <right-front-bottom-point x="-0.221344524478" y="0.294210018849" z="0.02"/>
+      <right-back-bottom-point x="-0.221344524478" y="0.294210018849" z="0.0"/>
+      <left-back-top-point x="-0.250718097327" y="0.238206990191" z="0.0"/>
+      <left-front-top-point x="-0.250718097327" y="0.238206990191" z="0.02"/>
+      <right-front-top-point x="-0.233075619582" y="0.235368015079" z="0.02"/>
+      <right-back-top-point x="-0.233075619582" y="0.235368015079" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole2">
-      <left-back-bottom-point x="-0.215478976925" y="0.323631020734" z="0.0"/>
-      <left-front-bottom-point x="-0.215478976925" y="0.323631020734" z="0.02"/>
-      <right-front-bottom-point x="-0.191683690405" y="0.31796262274" z="0.02"/>
-      <right-back-bottom-point x="-0.191683690405" y="0.31796262274" z="0.0"/>
-      <left-back-top-point x="-0.22838318154" y="0.258904816587" z="0.0"/>
-      <left-front-top-point x="-0.22838318154" y="0.258904816587" z="0.02"/>
-      <right-front-top-point x="-0.209346952324" y="0.254370098192" z="0.02"/>
-      <right-back-top-point x="-0.209346952324" y="0.254370098192" z="0.0"/>
+      <left-back-bottom-point x="-0.199712445822" y="0.289056929763" z="0.0"/>
+      <left-front-bottom-point x="-0.199712445822" y="0.289056929763" z="0.02"/>
+      <right-front-bottom-point x="-0.18560840902" y="0.284763458948" z="0.02"/>
+      <right-back-bottom-point x="-0.18560840902" y="0.284763458948" z="0.0"/>
+      <left-back-top-point x="-0.215769956658" y="0.231245543811" z="0.0"/>
+      <left-front-top-point x="-0.215769956658" y="0.231245543811" z="0.02"/>
+      <right-front-top-point x="-0.204486727216" y="0.227810767159" z="0.02"/>
+      <right-back-top-point x="-0.204486727216" y="0.227810767159" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole3">
-      <left-back-bottom-point x="-0.176169249922" y="0.313239804843" z="0.0"/>
-      <left-front-bottom-point x="-0.176169249922" y="0.313239804843" z="0.02"/>
-      <right-front-bottom-point x="-0.160943170562" y="0.307775033692" z="0.02"/>
-      <right-back-bottom-point x="-0.160943170562" y="0.307775033692" z="0.0"/>
-      <left-back-top-point x="-0.196935399937" y="0.250591843875" z="0.0"/>
-      <left-front-top-point x="-0.196935399937" y="0.250591843875" z="0.02"/>
-      <right-front-top-point x="-0.18475453645" y="0.246220026954" z="0.02"/>
-      <right-back-top-point x="-0.18475453645" y="0.246220026954" z="0.0"/>
+      <left-back-bottom-point x="-0.171766518693" y="0.279795485175" z="0.0"/>
+      <left-front-bottom-point x="-0.171766518693" y="0.279795485175" z="0.02"/>
+      <right-front-bottom-point x="-0.165020845774" y="0.277091670921" z="0.02"/>
+      <right-back-bottom-point x="-0.165020845774" y="0.277091670921" z="0.0"/>
+      <left-back-top-point x="-0.193413214954" y="0.22383638814" z="0.0"/>
+      <left-front-top-point x="-0.193413214954" y="0.22383638814" z="0.02"/>
+      <right-front-top-point x="-0.18801667662" y="0.221673336736" z="0.02"/>
+      <right-back-top-point x="-0.18801667662" y="0.221673336736" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole4">
-      <left-back-bottom-point x="-0.153522930352" y="0.304800838013" z="0.0"/>
-      <left-front-bottom-point x="-0.153522930352" y="0.304800838013" z="0.02"/>
-      <right-front-bottom-point x="-0.116753855032" y="0.286793821679" z="0.02"/>
-      <right-back-bottom-point x="-0.116753855032" y="0.286793821679" z="0.0"/>
-      <left-back-top-point x="-0.178818344281" y="0.24384067041" z="0.0"/>
-      <left-front-top-point x="-0.178818344281" y="0.24384067041" z="0.02"/>
-      <right-front-top-point x="-0.149403084026" y="0.229435057343" z="0.02"/>
-      <right-back-top-point x="-0.149403084026" y="0.229435057343" z="0.0"/>
+      <left-back-bottom-point x="-0.131594413666" y="0.260721656072" z="0.0"/>
+      <left-front-bottom-point x="-0.131594413666" y="0.260721656072" z="0.02"/>
+      <right-front-bottom-point x="-0.125241802292" y="0.257001751438" z="0.02"/>
+      <right-back-bottom-point x="-0.125241802292" y="0.257001751438" z="0.0"/>
+      <left-back-top-point x="-0.161275530933" y="0.208577324857" z="0.0"/>
+      <left-front-top-point x="-0.161275530933" y="0.208577324857" z="0.02"/>
+      <right-front-top-point x="-0.156193441833" y="0.20560140115" z="0.02"/>
+      <right-back-top-point x="-0.156193441833" y="0.20560140115" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole5">
-      <left-back-bottom-point x="-0.109765982521" y="0.282701926581" z="0.0"/>
-      <left-front-bottom-point x="-0.109765982521" y="0.282701926581" z="0.02"/>
-      <right-front-bottom-point x="-0.102861177827" y="0.278427437009" z="0.02"/>
-      <right-back-bottom-point x="-0.102861177827" y="0.278427437009" z="0.0"/>
-      <left-back-top-point x="-0.143812786017" y="0.226161541265" z="0.0"/>
-      <left-front-top-point x="-0.143812786017" y="0.226161541265" z="0.02"/>
-      <right-front-top-point x="-0.138288942262" y="0.222741949607" z="0.02"/>
-      <right-back-top-point x="-0.138288942262" y="0.222741949607" z="0.0"/>
+      <left-back-bottom-point x="-0.118964707116" y="0.253115851826" z="0.0"/>
+      <left-front-bottom-point x="-0.118964707116" y="0.253115851826" z="0.02"/>
+      <right-front-bottom-point x="-0.106723914657" y="0.244898751014" z="0.02"/>
+      <right-back-bottom-point x="-0.106723914657" y="0.244898751014" z="0.0"/>
+      <left-back-top-point x="-0.151171765693" y="0.202492681461" z="0.0"/>
+      <left-front-top-point x="-0.151171765693" y="0.202492681461" z="0.02"/>
+      <right-front-top-point x="-0.141379131726" y="0.195919000811" z="0.02"/>
+      <right-back-top-point x="-0.141379131726" y="0.195919000811" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole6">
-      <left-back-bottom-point x="-0.0893963061231" y="0.269388626116" z="0.0"/>
-      <left-front-bottom-point x="-0.0893963061231" y="0.269388626116" z="0.02"/>
-      <right-front-bottom-point x="-0.0699520044197" y="0.254518839288" z="0.02"/>
-      <right-back-bottom-point x="-0.0699520044197" y="0.254518839288" z="0.0"/>
-      <left-back-top-point x="-0.127517044899" y="0.215510900893" z="0.0"/>
-      <left-front-top-point x="-0.127517044899" y="0.215510900893" z="0.02"/>
-      <right-front-top-point x="-0.111961603536" y="0.203615071431" z="0.02"/>
-      <right-back-top-point x="-0.111961603536" y="0.203615071431" z="0.0"/>
+      <left-back-bottom-point x="-0.0890472767451" y="0.231380762989" z="0.0"/>
+      <left-front-bottom-point x="-0.0890472767451" y="0.231380762989" z="0.02"/>
+      <right-front-bottom-point x="-0.0834392751587" y="0.226636010929" z="0.02"/>
+      <right-back-bottom-point x="-0.0834392751587" y="0.226636010929" z="0.0"/>
+      <left-back-top-point x="-0.127237821396" y="0.185104610392" z="0.0"/>
+      <left-front-top-point x="-0.127237821396" y="0.185104610392" z="0.02"/>
+      <right-front-top-point x="-0.122751420127" y="0.181308808743" z="0.02"/>
+      <right-back-top-point x="-0.122751420127" y="0.181308808743" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole7">
-      <left-back-bottom-point x="-0.0637832026745" y="0.249299612022" z="0.0"/>
-      <left-front-bottom-point x="-0.0637832026745" y="0.249299612022" z="0.02"/>
-      <right-front-bottom-point x="-0.0459268991048" y="0.232615097183" z="0.02"/>
-      <right-back-bottom-point x="-0.0459268991048" y="0.232615097183" z="0.0"/>
-      <left-back-top-point x="-0.10702656214" y="0.199439689618" z="0.0"/>
-      <left-front-top-point x="-0.10702656214" y="0.199439689618" z="0.02"/>
-      <right-front-top-point x="-0.0927415192839" y="0.186092077746" z="0.02"/>
-      <right-back-top-point x="-0.0927415192839" y="0.186092077746" z="0.0"/>
+      <left-back-bottom-point x="-0.0672062719135" y="0.211468270166" z="0.0"/>
+      <left-front-bottom-point x="-0.0672062719135" y="0.211468270166" z="0.02"/>
+      <right-front-bottom-point x="-0.0474339430799" y="0.189507332757" z="0.02"/>
+      <right-back-bottom-point x="-0.0474339430799" y="0.189507332757" z="0.0"/>
+      <left-back-top-point x="-0.109765017531" y="0.169174616133" z="0.0"/>
+      <left-front-top-point x="-0.109765017531" y="0.169174616133" z="0.02"/>
+      <right-front-top-point x="-0.0939471544639" y="0.151605866206" z="0.02"/>
+      <right-back-top-point x="-0.0939471544639" y="0.151605866206" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole8">
-      <left-back-bottom-point x="-0.0241773373879" y="0.208458066033" z="0.0"/>
-      <left-front-bottom-point x="-0.0241773373879" y="0.208458066033" z="0.02"/>
-      <right-front-bottom-point x="-0.0190548110661" y="0.202008931417" z="0.02"/>
-      <right-back-bottom-point x="-0.0190548110661" y="0.202008931417" z="0.0"/>
-      <left-back-top-point x="-0.0753418699103" y="0.166766452826" z="0.0"/>
-      <left-front-top-point x="-0.0753418699103" y="0.166766452826" z="0.02"/>
-      <right-front-top-point x="-0.0712438488529" y="0.161607145134" z="0.02"/>
-      <right-back-top-point x="-0.0712438488529" y="0.161607145134" z="0.0"/>
+      <left-back-bottom-point x="-0.0427771009692" y="0.183644483106" z="0.0"/>
+      <left-front-bottom-point x="-0.0427771009692" y="0.183644483106" z="0.02"/>
+      <right-front-bottom-point x="-0.0385070060749" y="0.177991948933" z="0.02"/>
+      <right-back-bottom-point x="-0.0385070060749" y="0.177991948933" z="0.0"/>
+      <left-back-top-point x="-0.0902216807753" y="0.146915586485" z="0.0"/>
+      <left-front-top-point x="-0.0902216807753" y="0.146915586485" z="0.02"/>
+      <right-front-top-point x="-0.0868056048599" y="0.142393559147" z="0.02"/>
+      <right-back-top-point x="-0.0868056048599" y="0.142393559147" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole9">
-      <left-back-bottom-point x="-0.0143577066824" y="0.195791143827" z="0.0"/>
-      <left-front-bottom-point x="-0.0143577066824" y="0.195791143827" z="0.02"/>
-      <right-front-bottom-point x="-0.00957415353061" y="0.189129219216" z="0.02"/>
-      <right-back-bottom-point x="-0.00957415353061" y="0.189129219216" z="0.0"/>
-      <left-back-top-point x="-0.0674861653459" y="0.156632915061" z="0.0"/>
-      <left-front-top-point x="-0.0674861653459" y="0.156632915061" z="0.02"/>
-      <right-front-top-point x="-0.0636593228245" y="0.151303375373" z="0.02"/>
-      <right-back-top-point x="-0.0636593228245" y="0.151303375373" z="0.0"/>
+      <left-back-bottom-point x="-0.0341583213915" y="0.171935653833" z="0.0"/>
+      <left-front-bottom-point x="-0.0341583213915" y="0.171935653833" z="0.02"/>
+      <right-front-bottom-point x="-0.0299470188015" y="0.165751339644" z="0.02"/>
+      <right-back-bottom-point x="-0.0299470188015" y="0.165751339644" z="0.0"/>
+      <left-back-top-point x="-0.0833266571132" y="0.137548523066" z="0.0"/>
+      <left-front-top-point x="-0.0833266571132" y="0.137548523066" z="0.02"/>
+      <right-front-top-point x="-0.0799576150412" y="0.132601071715" z="0.02"/>
+      <right-back-top-point x="-0.0799576150412" y="0.132601071715" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole10">
-      <left-back-bottom-point x="-0.00494172068167" y="0.182326473608" z="0.0"/>
-      <left-front-bottom-point x="-0.00494172068167" y="0.182326473608" z="0.02"/>
-      <right-front-bottom-point x="-0.000510995695856" y="0.175459101996" z="0.02"/>
-      <right-back-bottom-point x="-0.000510995695856" y="0.175459101996" z="0.0"/>
-      <left-back-top-point x="-0.0599533765453" y="0.145861178887" z="0.0"/>
-      <left-front-top-point x="-0.0599533765453" y="0.145861178887" z="0.02"/>
-      <right-front-top-point x="-0.0564087965567" y="0.140367281596" z="0.02"/>
-      <right-back-top-point x="-0.0564087965567" y="0.140367281596" z="0.0"/>
+      <left-back-bottom-point x="-0.0259190869962" y="0.159508274541" z="0.0"/>
+      <left-front-bottom-point x="-0.0259190869962" y="0.159508274541" z="0.02"/>
+      <right-front-bottom-point x="-0.0220951234362" y="0.153248408294" z="0.02"/>
+      <right-back-bottom-point x="-0.0220951234362" y="0.153248408294" z="0.0"/>
+      <left-back-top-point x="-0.076735269597" y="0.127606619633" z="0.0"/>
+      <left-front-top-point x="-0.076735269597" y="0.127606619633" z="0.02"/>
+      <right-front-top-point x="-0.0736760987489" y="0.122598726635" z="0.02"/>
+      <right-back-top-point x="-0.0736760987489" y="0.122598726635" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole11">
-      <left-back-bottom-point x="0.00369536422021" y="0.168573249123" z="0.0"/>
-      <left-front-bottom-point x="0.00369536422021" y="0.168573249123" z="0.02"/>
-      <right-front-bottom-point x="0.0115995252423" y="0.154498274678" z="0.02"/>
-      <right-back-bottom-point x="0.0115995252423" y="0.154498274678" z="0.0"/>
-      <left-back-top-point x="-0.0530437086238" y="0.134858599299" z="0.0"/>
-      <left-front-top-point x="-0.0530437086238" y="0.134858599299" z="0.02"/>
-      <right-front-top-point x="-0.0467203798062" y="0.123598619742" z="0.02"/>
-      <right-back-top-point x="-0.0467203798062" y="0.123598619742" z="0.0"/>
+      <left-back-bottom-point x="-0.014909522507" y="0.14045297698" z="0.0"/>
+      <left-front-bottom-point x="-0.014909522507" y="0.14045297698" z="0.02"/>
+      <right-front-bottom-point x="-0.0114986682551" y="0.133817169493" z="0.02"/>
+      <right-back-bottom-point x="-0.0114986682551" y="0.133817169493" z="0.0"/>
+      <left-back-top-point x="-0.0679276180056" y="0.112362381584" z="0.0"/>
+      <left-front-top-point x="-0.0679276180056" y="0.112362381584" z="0.02"/>
+      <right-front-top-point x="-0.0651989346041" y="0.107053735595" z="0.02"/>
+      <right-back-top-point x="-0.0651989346041" y="0.107053735595" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole12">
-      <left-back-bottom-point x="0.0153514649193" y="0.147198886443" z="0.0"/>
-      <left-front-bottom-point x="0.0153514649193" y="0.147198886443" z="0.02"/>
-      <right-front-bottom-point x="0.0222380659683" y="0.132484532983" z="0.02"/>
-      <right-back-bottom-point x="0.0222380659683" y="0.132484532983" z="0.0"/>
-      <left-back-top-point x="-0.0437188280645" y="0.117759109154" z="0.0"/>
-      <left-front-top-point x="-0.0437188280645" y="0.117759109154" z="0.02"/>
-      <right-front-top-point x="-0.0382095472254" y="0.105987626386" z="0.02"/>
-      <right-back-top-point x="-0.0382095472254" y="0.105987626386" z="0.0"/>
+      <left-back-bottom-point x="-0.00523812184702" y="0.12044048453" z="0.0"/>
+      <left-front-bottom-point x="-0.00523812184702" y="0.12044048453" z="0.02"/>
+      <right-front-bottom-point x="0.00295288109308" y="0.0996878482119" z="0.02"/>
+      <right-back-bottom-point x="0.00295288109308" y="0.0996878482119" z="0.0"/>
+      <left-back-top-point x="-0.0601904974776" y="0.0963523876241" z="0.0"/>
+      <left-front-top-point x="-0.0601904974776" y="0.0963523876241" z="0.02"/>
+      <right-front-top-point x="-0.0536376951255" y="0.0797502785696" z="0.02"/>
+      <right-back-top-point x="-0.0536376951255" y="0.0797502785696" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole13">
-      <left-back-bottom-point x="0.0312481692024" y="0.109656633033" z="0.0"/>
-      <left-front-bottom-point x="0.0312481692024" y="0.109656633033" z="0.02"/>
-      <right-front-bottom-point x="0.0338094714196" y="0.102096109854" z="0.02"/>
-      <right-back-bottom-point x="0.0338094714196" y="0.102096109854" z="0.0"/>
-      <left-back-top-point x="-0.0310014646381" y="0.0877253064265" z="0.0"/>
-      <left-front-top-point x="-0.0310014646381" y="0.0877253064265" z="0.02"/>
-      <right-front-top-point x="-0.0289524228643" y="0.0816768878832" z="0.02"/>
-      <right-back-top-point x="-0.0289524228643" y="0.0816768878832" z="0.0"/>
+      <left-back-bottom-point x="0.00528133765422" y="0.0928146453219" z="0.0"/>
+      <left-front-bottom-point x="0.00528133765422" y="0.0928146453219" z="0.02"/>
+      <right-front-bottom-point x="0.0145638255313" y="0.0568520244877" z="0.02"/>
+      <right-back-bottom-point x="0.0145638255313" y="0.0568520244877" z="0.0"/>
+      <left-back-top-point x="-0.0517749298766" y="0.0742517162575" z="0.0"/>
+      <left-front-top-point x="-0.0517749298766" y="0.0742517162575" z="0.02"/>
+      <right-front-top-point x="-0.0443489395749" y="0.0454816195901" z="0.02"/>
+      <right-back-top-point x="-0.0443489395749" y="0.0454816195901" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole14">
-      <left-back-bottom-point x="0.0440202080845" y="0.0625372269365" z="0.0"/>
-      <left-front-bottom-point x="0.0440202080845" y="0.0625372269365" z="0.02"/>
-      <right-front-bottom-point x="0.0454542639209" y="0.0545849988156" z="0.02"/>
-      <right-back-bottom-point x="0.0454542639209" y="0.0545849988156" z="0.0"/>
-      <left-back-top-point x="-0.0207838335324" y="0.0500297815492" z="0.0"/>
-      <left-front-top-point x="-0.0207838335324" y="0.0500297815492" z="0.02"/>
-      <right-front-top-point x="-0.0196365888633" y="0.0436679990525" z="0.02"/>
-      <right-back-top-point x="-0.0196365888633" y="0.0436679990525" z="0.0"/>
+      <left-back-bottom-point x="0.0158675126554" y="0.049622726196" z="0.0"/>
+      <left-front-bottom-point x="0.0158675126554" y="0.049622726196" z="0.02"/>
+      <right-front-bottom-point x="0.0187174094554" y="0.027711176234" z="0.02"/>
+      <right-back-bottom-point x="0.0187174094554" y="0.027711176234" z="0.0"/>
+      <left-back-top-point x="-0.0433059898757" y="0.0396981809568" z="0.0"/>
+      <left-front-top-point x="-0.0433059898757" y="0.0396981809568" z="0.02"/>
+      <right-front-top-point x="-0.0410260724357" y="0.0221689409872" z="0.02"/>
+      <right-back-top-point x="-0.0410260724357" y="0.0221689409872" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole15">
-      <left-back-bottom-point x="0.0485891504009" y="0.0304822938574" z="0.0"/>
-      <left-front-bottom-point x="0.0485891504009" y="0.0304822938574" z="0.02"/>
-      <right-front-bottom-point x="0.049943740266" y="0.00609329625687" z="0.02"/>
-      <right-back-bottom-point x="0.049943740266" y="0.00609329625687" z="0.0"/>
-      <left-back-top-point x="-0.0171286796793" y="0.0243858350859" z="0.0"/>
-      <left-front-top-point x="-0.0171286796793" y="0.0243858350859" z="0.02"/>
-      <right-front-top-point x="-0.0160450077872" y="0.0048746370055" z="0.02"/>
-      <right-back-top-point x="-0.0160450077872" y="0.0048746370055" z="0.0"/>
+      <left-back-bottom-point x="0.0199488547873" y="0.00553936023352" z="0.0"/>
+      <left-front-bottom-point x="0.0199488547873" y="0.00553936023352" z="0.02"/>
+      <right-front-bottom-point x="0.0199965695879" y="-0.00143465517683" z="0.02"/>
+      <right-back-bottom-point x="0.0199965695879" y="-0.00143465517683" z="0.0"/>
+      <left-back-top-point x="-0.0400409161702" y="0.00443148818682" z="0.0"/>
+      <left-front-top-point x="-0.0400409161702" y="0.00443148818682" z="0.02"/>
+      <right-front-top-point x="-0.0400027443297" y="-0.00114772414146" z="0.02"/>
+      <right-back-top-point x="-0.0400027443297" y="-0.00114772414146" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole16">
-      <left-back-bottom-point x="0.0499962265467" y="-0.00157812069451" z="0.0"/>
-      <left-front-bottom-point x="0.0499962265467" y="-0.00157812069451" z="0.02"/>
-      <right-front-bottom-point x="0.0495077118905" y="-0.0180185405815" z="0.02"/>
-      <right-back-bottom-point x="0.0495077118905" y="-0.0180185405815" z="0.0"/>
-      <left-back-top-point x="-0.0160030187626" y="-0.00126249655561" z="0.0"/>
-      <left-front-top-point x="-0.0160030187626" y="-0.00126249655561" z="0.02"/>
-      <right-front-top-point x="-0.0163938304876" y="-0.0144148324652" z="0.02"/>
-      <right-back-top-point x="-0.0163938304876" y="-0.0144148324652" z="0.0"/>
+      <left-back-bottom-point x="0.019552465355" y="-0.0163804914378" z="0.0"/>
+      <left-front-bottom-point x="0.019552465355" y="-0.0163804914378" z="0.02"/>
+      <right-front-bottom-point x="0.0175282511001" y="-0.0384309744516" z="0.02"/>
+      <right-back-bottom-point x="0.0175282511001" y="-0.0384309744516" z="0.0"/>
+      <left-back-top-point x="-0.040358027716" y="-0.0131043931502" z="0.0"/>
+      <left-front-top-point x="-0.040358027716" y="-0.0131043931502" z="0.02"/>
+      <right-front-top-point x="-0.0419773991199" y="-0.0307447795612" z="0.02"/>
+      <right-back-top-point x="-0.0419773991199" y="-0.0307447795612" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole17">
-      <left-back-bottom-point x="0.0472810762101" y="-0.0422740718967" z="0.0"/>
-      <left-front-bottom-point x="0.0472810762101" y="-0.0422740718967" z="0.02"/>
-      <right-front-bottom-point x="0.0461180088358" y="-0.0504682505439" z="0.02"/>
-      <right-back-bottom-point x="0.0461180088358" y="-0.0504682505439" z="0.0"/>
-      <left-back-top-point x="-0.0181751390319" y="-0.0338192575174" z="0.0"/>
-      <left-front-top-point x="-0.0181751390319" y="-0.0338192575174" z="0.02"/>
-      <right-front-top-point x="-0.0191055929313" y="-0.0403746004351" z="0.02"/>
-      <right-back-top-point x="-0.0191055929313" y="-0.0403746004351" z="0.0"/>
+      <left-back-bottom-point x="0.0164709171235" y="-0.0458802277672" z="0.0"/>
+      <left-front-bottom-point x="0.0164709171235" y="-0.0458802277672" z="0.02"/>
+      <right-front-bottom-point x="0.0122980577979" y="-0.0675414347461" z="0.02"/>
+      <right-back-bottom-point x="0.0122980577979" y="-0.0675414347461" z="0.0"/>
+      <left-back-top-point x="-0.0428232663012" y="-0.0367041822138" z="0.0"/>
+      <left-front-top-point x="-0.0428232663012" y="-0.0367041822138" z="0.02"/>
+      <right-front-top-point x="-0.0461615537617" y="-0.0540331477969" z="0.02"/>
+      <right-back-top-point x="-0.0461615537617" y="-0.0540331477969" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole18">
-      <left-back-bottom-point x="0.0415278635777" y="-0.0742955782207" z="0.0"/>
-      <left-front-bottom-point x="0.0415278635777" y="-0.0742955782207" z="0.02"/>
-      <right-front-bottom-point x="0.0299703221874" y="-0.113218370254" z="0.02"/>
-      <right-back-bottom-point x="0.0299703221874" y="-0.113218370254" z="0.0"/>
-      <left-back-top-point x="-0.0227777091378" y="-0.0594364625766" z="0.0"/>
-      <left-front-top-point x="-0.0227777091378" y="-0.0594364625766" z="0.02"/>
-      <right-front-top-point x="-0.0320237422501" y="-0.0905746962035" z="0.02"/>
-      <right-back-top-point x="-0.0320237422501" y="-0.0905746962035" z="0.0"/>
+      <left-back-bottom-point x="0.00179120198851" y="-0.10292579114" z="0.0"/>
+      <left-front-bottom-point x="0.00179120198851" y="-0.10292579114" z="0.02"/>
+      <right-front-bottom-point x="-0.000851707776235" y="-0.109891905746" z="0.02"/>
+      <right-back-bottom-point x="-0.000851707776235" y="-0.109891905746" z="0.0"/>
+      <left-back-top-point x="-0.0545670384092" y="-0.0823406329123" z="0.0"/>
+      <left-front-top-point x="-0.0545670384092" y="-0.0823406329123" z="0.02"/>
+      <right-front-top-point x="-0.056681366221" y="-0.087913524597" z="0.02"/>
+      <right-back-top-point x="-0.056681366221" y="-0.087913524597" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole19">
-      <left-back-bottom-point x="0.0270631214461" y="-0.120881096321" z="0.0"/>
-      <left-front-bottom-point x="0.0270631214461" y="-0.120881096321" z="0.02"/>
-      <right-front-bottom-point x="0.0207393751834" y="-0.135852229331" z="0.02"/>
-      <right-back-bottom-point x="0.0207393751834" y="-0.135852229331" z="0.0"/>
-      <left-back-top-point x="-0.0343495028431" y="-0.0967048770568" z="0.0"/>
-      <left-front-top-point x="-0.0343495028431" y="-0.0967048770568" z="0.02"/>
-      <right-front-top-point x="-0.0394084998533" y="-0.108681783465" z="0.02"/>
-      <right-back-top-point x="-0.0394084998533" y="-0.108681783465" z="0.0"/>
+      <left-back-bottom-point x="-0.00660056801513" y="-0.123502026665" z="0.0"/>
+      <left-front-bottom-point x="-0.00660056801513" y="-0.123502026665" z="0.02"/>
+      <right-front-bottom-point x="-0.0130579110046" y="-0.136901136309" z="0.02"/>
+      <right-back-bottom-point x="-0.0130579110046" y="-0.136901136309" z="0.0"/>
+      <left-back-top-point x="-0.0612804544121" y="-0.098801621332" z="0.0"/>
+      <left-front-top-point x="-0.0612804544121" y="-0.098801621332" z="0.02"/>
+      <right-front-top-point x="-0.0664463288037" y="-0.109520909047" z="0.02"/>
+      <right-back-top-point x="-0.0664463288037" y="-0.109520909047" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole20">
-      <left-back-bottom-point x="0.0136362978949" y="-0.15059124994" z="0.0"/>
-      <left-front-bottom-point x="0.0136362978949" y="-0.15059124994" z="0.02"/>
-      <right-front-bottom-point x="0.00992440938204" y="-0.15761927815" z="0.02"/>
-      <right-back-bottom-point x="0.00992440938204" y="-0.15761927815" z="0.0"/>
-      <left-back-top-point x="-0.0450909616841" y="-0.120472999952" z="0.0"/>
-      <left-front-top-point x="-0.0450909616841" y="-0.120472999952" z="0.02"/>
-      <right-front-top-point x="-0.0480604724944" y="-0.12609542252" z="0.02"/>
-      <right-back-top-point x="-0.0480604724944" y="-0.12609542252" z="0.0"/>
+      <left-back-bottom-point x="-0.0164323551072" y="-0.143290252863" z="0.0"/>
+      <left-front-bottom-point x="-0.0164323551072" y="-0.143290252863" z="0.02"/>
+      <right-front-bottom-point x="-0.020142651267" y="-0.149913836284" z="0.02"/>
+      <right-back-bottom-point x="-0.020142651267" y="-0.149913836284" z="0.0"/>
+      <left-back-top-point x="-0.0691458840858" y="-0.114632202291" z="0.0"/>
+      <left-front-top-point x="-0.0691458840858" y="-0.114632202291" z="0.02"/>
+      <right-front-top-point x="-0.0721141210136" y="-0.119931069027" z="0.02"/>
+      <right-back-top-point x="-0.0721141210136" y="-0.119931069027" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole21">
-      <left-back-bottom-point x="0.00584308360628" y="-0.164905219913" z="0.0"/>
-      <left-front-bottom-point x="0.00584308360628" y="-0.164905219913" z="0.02"/>
-      <right-front-bottom-point x="-0.00250075505658" y="-0.178589386739" z="0.02"/>
-      <right-back-bottom-point x="-0.00250075505658" y="-0.178589386739" z="0.0"/>
-      <left-back-top-point x="-0.051325533115" y="-0.13192417593" z="0.0"/>
-      <left-front-top-point x="-0.051325533115" y="-0.13192417593" z="0.02"/>
-      <right-front-top-point x="-0.0580006040453" y="-0.142871509391" z="0.02"/>
-      <right-back-top-point x="-0.0580006040453" y="-0.142871509391" z="0.0"/>
+      <left-back-bottom-point x="-0.0277279591423" y="-0.162353987945" z="0.0"/>
+      <left-front-bottom-point x="-0.0277279591423" y="-0.162353987945" z="0.02"/>
+      <right-front-bottom-point x="-0.0319052621135" y="-0.168668316625" z="0.02"/>
+      <right-back-bottom-point x="-0.0319052621135" y="-0.168668316625" z="0.0"/>
+      <left-back-top-point x="-0.0781823673139" y="-0.129883190356" z="0.0"/>
+      <left-front-top-point x="-0.0781823673139" y="-0.129883190356" z="0.02"/>
+      <right-front-top-point x="-0.0815242096908" y="-0.1349346533" z="0.02"/>
+      <right-back-top-point x="-0.0815242096908" y="-0.1349346533" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole22">
-      <left-back-bottom-point x="-0.00709578832482" y="-0.185535148287" z="0.0"/>
-      <left-front-bottom-point x="-0.00709578832482" y="-0.185535148287" z="0.02"/>
-      <right-front-bottom-point x="-0.0318776738995" y="-0.217566797307" z="0.02"/>
-      <right-back-bottom-point x="-0.0318776738995" y="-0.217566797307" z="0.0"/>
-      <left-back-top-point x="-0.0616766306599" y="-0.14842811863" z="0.0"/>
-      <left-front-top-point x="-0.0616766306599" y="-0.14842811863" z="0.02"/>
-      <right-front-top-point x="-0.0815021391196" y="-0.174053437846" z="0.02"/>
-      <right-back-top-point x="-0.0815021391196" y="-0.174053437846" z="0.0"/>
+      <left-back-bottom-point x="-0.0544342489995" y="-0.197787997552" z="0.0"/>
+      <left-front-bottom-point x="-0.0544342489995" y="-0.197787997552" z="0.02"/>
+      <right-front-bottom-point x="-0.0594368715522" y="-0.203351681501" z="0.02"/>
+      <right-back-bottom-point x="-0.0594368715522" y="-0.203351681501" z="0.0"/>
+      <left-back-top-point x="-0.0995473991996" y="-0.158230398042" z="0.0"/>
+      <left-front-top-point x="-0.0995473991996" y="-0.158230398042" z="0.02"/>
+      <right-front-top-point x="-0.103549497242" y="-0.162681345201" z="0.02"/>
+      <right-back-top-point x="-0.103549497242" y="-0.162681345201" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole23">
-      <left-back-bottom-point x="-0.0373805587075" y="-0.223686849651" z="0.0"/>
-      <left-front-bottom-point x="-0.0373805587075" y="-0.223686849651" z="0.02"/>
-      <right-front-bottom-point x="-0.042854047458" y="-0.229481583559" z="0.02"/>
-      <right-back-bottom-point x="-0.042854047458" y="-0.229481583559" z="0.0"/>
-      <left-back-top-point x="-0.085904446966" y="-0.178949479721" z="0.0"/>
-      <left-front-top-point x="-0.085904446966" y="-0.178949479721" z="0.02"/>
-      <right-front-top-point x="-0.0902832379664" y="-0.183585266848" z="0.02"/>
-      <right-back-top-point x="-0.0902832379664" y="-0.183585266848" z="0.0"/>
+      <left-back-bottom-point x="-0.0644127704164" y="-0.208619621418" z="0.0"/>
+      <left-front-bottom-point x="-0.0644127704164" y="-0.208619621418" z="0.02"/>
+      <right-front-bottom-point x="-0.0697645696187" y="-0.21401183101" z="0.02"/>
+      <right-back-bottom-point x="-0.0697645696187" y="-0.21401183101" z="0.0"/>
+      <left-back-top-point x="-0.107530216333" y="-0.166895697134" z="0.0"/>
+      <left-front-top-point x="-0.107530216333" y="-0.166895697134" z="0.02"/>
+      <right-front-top-point x="-0.111811655695" y="-0.171209464808" z="0.02"/>
+      <right-back-top-point x="-0.111811655695" y="-0.171209464808" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole24">
-      <left-back-bottom-point x="-0.0487410265805" y="-0.235413014111" z="0.0"/>
-      <left-front-bottom-point x="-0.0487410265805" y="-0.235413014111" z="0.02"/>
-      <right-front-bottom-point x="-0.0545154492869" y="-0.240949615874" z="0.02"/>
-      <right-back-bottom-point x="-0.0545154492869" y="-0.240949615874" z="0.0"/>
-      <left-back-top-point x="-0.0949928212644" y="-0.188330411289" z="0.0"/>
-      <left-front-top-point x="-0.0949928212644" y="-0.188330411289" z="0.02"/>
-      <right-front-top-point x="-0.0996123594295" y="-0.192759692699" z="0.02"/>
-      <right-back-top-point x="-0.0996123594295" y="-0.192759692699" z="0.0"/>
+      <left-back-bottom-point x="-0.0750140448062" y="-0.21904510534" z="0.0"/>
+      <left-front-bottom-point x="-0.0750140448062" y="-0.21904510534" z="0.02"/>
+      <right-front-bottom-point x="-0.086146821476" y="-0.228956207988" z="0.02"/>
+      <right-back-bottom-point x="-0.086146821476" y="-0.228956207988" z="0.0"/>
+      <left-back-top-point x="-0.116011235845" y="-0.175236084272" z="0.0"/>
+      <left-front-top-point x="-0.116011235845" y="-0.175236084272" z="0.02"/>
+      <right-front-top-point x="-0.124917457181" y="-0.18316496639" z="0.02"/>
+      <right-back-top-point x="-0.124917457181" y="-0.18316496639" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole25">
-      <left-back-bottom-point x="-0.0667615036236" y="-0.251851828787" z="0.0"/>
-      <left-front-bottom-point x="-0.0667615036236" y="-0.251851828787" z="0.02"/>
-      <right-front-bottom-point x="-0.0924077571426" y="-0.271494291689" z="0.02"/>
-      <right-back-bottom-point x="-0.0924077571426" y="-0.271494291689" z="0.0"/>
-      <left-back-top-point x="-0.109409202899" y="-0.201481463029" z="0.0"/>
-      <left-front-top-point x="-0.109409202899" y="-0.201481463029" z="0.02"/>
-      <right-front-top-point x="-0.129926205714" y="-0.217195433351" z="0.02"/>
-      <right-back-top-point x="-0.129926205714" y="-0.217195433351" z="0.0"/>
+      <left-back-bottom-point x="-0.109461597402" y="-0.246812992445" z="0.0"/>
+      <left-front-bottom-point x="-0.109461597402" y="-0.246812992445" z="0.02"/>
+      <right-front-bottom-point x="-0.115761703192" y="-0.251049361405" z="0.02"/>
+      <right-back-bottom-point x="-0.115761703192" y="-0.251049361405" z="0.0"/>
+      <left-back-top-point x="-0.143569277922" y="-0.197450393956" z="0.0"/>
+      <left-front-top-point x="-0.143569277922" y="-0.197450393956" z="0.02"/>
+      <right-front-top-point x="-0.148609362554" y="-0.200839489124" z="0.02"/>
+      <right-back-top-point x="-0.148609362554" y="-0.200839489124" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole26">
-      <left-back-bottom-point x="-0.0993378735112" y="-0.276154297545" z="0.0"/>
-      <left-front-bottom-point x="-0.0993378735112" y="-0.276154297545" z="0.02"/>
-      <right-front-bottom-point x="-0.106036062251" y="-0.280422089648" z="0.02"/>
-      <right-back-bottom-point x="-0.106036062251" y="-0.280422089648" z="0.0"/>
-      <left-back-top-point x="-0.135470298809" y="-0.220923438036" z="0.0"/>
-      <left-front-top-point x="-0.135470298809" y="-0.220923438036" z="0.02"/>
-      <right-front-top-point x="-0.140828849801" y="-0.224337671719" z="0.02"/>
-      <right-back-top-point x="-0.140828849801" y="-0.224337671719" z="0.0"/>
+      <left-back-bottom-point x="-0.121850965683" y="-0.254929172408" z="0.0"/>
+      <left-front-bottom-point x="-0.121850965683" y="-0.254929172408" z="0.02"/>
+      <right-front-bottom-point x="-0.128207935578" y="-0.258764698478" z="0.02"/>
+      <right-back-bottom-point x="-0.128207935578" y="-0.258764698478" z="0.0"/>
+      <left-back-top-point x="-0.153480772546" y="-0.203943337926" z="0.0"/>
+      <left-front-top-point x="-0.153480772546" y="-0.203943337926" z="0.02"/>
+      <right-front-top-point x="-0.158566348462" y="-0.207011758782" z="0.02"/>
+      <right-back-top-point x="-0.158566348462" y="-0.207011758782" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole27">
-      <left-back-bottom-point x="-0.113028729135" y="-0.284641168326" z="0.0"/>
-      <left-front-bottom-point x="-0.113028729135" y="-0.284641168326" z="0.02"/>
-      <right-front-bottom-point x="-0.120103507274" y="-0.288674750565" z="0.02"/>
-      <right-back-bottom-point x="-0.120103507274" y="-0.288674750565" z="0.0"/>
-      <left-back-top-point x="-0.146422983308" y="-0.227712934661" z="0.0"/>
-      <left-front-top-point x="-0.146422983308" y="-0.227712934661" z="0.02"/>
-      <right-front-top-point x="-0.152082805819" y="-0.230939800452" z="0.02"/>
-      <right-back-top-point x="-0.152082805819" y="-0.230939800452" z="0.0"/>
+      <left-back-bottom-point x="-0.134639552067" y="-0.262431591423" z="0.0"/>
+      <left-front-bottom-point x="-0.134639552067" y="-0.262431591423" z="0.02"/>
+      <right-front-bottom-point x="-0.147943021208" y="-0.269371405966" z="0.02"/>
+      <right-back-bottom-point x="-0.147943021208" y="-0.269371405966" z="0.0"/>
+      <left-back-top-point x="-0.163711641654" y="-0.209945273138" z="0.0"/>
+      <left-front-top-point x="-0.163711641654" y="-0.209945273138" z="0.02"/>
+      <right-front-top-point x="-0.174354416966" y="-0.215497124773" z="0.02"/>
+      <right-back-top-point x="-0.174354416966" y="-0.215497124773" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole28">
-      <left-back-bottom-point x="-0.134737323329" y="-0.296308546563" z="0.0"/>
-      <left-front-bottom-point x="-0.134737323329" y="-0.296308546563" z="0.02"/>
-      <right-front-bottom-point x="-0.141779523293" y="-0.299658305106" z="0.02"/>
-      <right-back-bottom-point x="-0.141779523293" y="-0.299658305106" z="0.0"/>
-      <left-back-top-point x="-0.163789858663" y="-0.23704683725" z="0.0"/>
-      <left-front-top-point x="-0.163789858663" y="-0.23704683725" z="0.02"/>
-      <right-front-top-point x="-0.169423618634" y="-0.239726644085" z="0.02"/>
-      <right-back-top-point x="-0.169423618634" y="-0.239726644085" z="0.0"/>
+      <left-back-bottom-point x="-0.154345021175" y="-0.272416641005" z="0.0"/>
+      <left-front-bottom-point x="-0.154345021175" y="-0.272416641005" z="0.02"/>
+      <right-front-bottom-point x="-0.161216136181" y="-0.27548211139" z="0.02"/>
+      <right-back-bottom-point x="-0.161216136181" y="-0.27548211139" z="0.0"/>
+      <left-back-top-point x="-0.17947601694" y="-0.217933312804" z="0.0"/>
+      <left-front-top-point x="-0.17947601694" y="-0.217933312804" z="0.02"/>
+      <right-front-top-point x="-0.184972908945" y="-0.220385689112" z="0.02"/>
+      <right-back-top-point x="-0.184972908945" y="-0.220385689112" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole29">
-      <left-back-bottom-point x="-0.149337749799" y="-0.30303032253" z="0.0"/>
-      <left-front-bottom-point x="-0.149337749799" y="-0.30303032253" z="0.02"/>
-      <right-front-bottom-point x="-0.172018093337" y="-0.311833141012" z="0.02"/>
-      <right-back-bottom-point x="-0.172018093337" y="-0.311833141012" z="0.0"/>
-      <left-back-top-point x="-0.175470199839" y="-0.242424258024" z="0.0"/>
-      <left-front-top-point x="-0.175470199839" y="-0.242424258024" z="0.02"/>
-      <right-front-top-point x="-0.19361447467" y="-0.24946651281" z="0.02"/>
-      <right-back-top-point x="-0.19361447467" y="-0.24946651281" z="0.0"/>
+      <left-back-bottom-point x="-0.181834630306" y="-0.283484673647" z="0.0"/>
+      <left-front-bottom-point x="-0.181834630306" y="-0.283484673647" z="0.02"/>
+      <right-front-bottom-point x="-0.210185337176" y="-0.291763453597" z="0.02"/>
+      <right-back-bottom-point x="-0.210185337176" y="-0.291763453597" z="0.0"/>
+      <left-back-top-point x="-0.201467704245" y="-0.226787738918" z="0.0"/>
+      <left-front-top-point x="-0.201467704245" y="-0.226787738918" z="0.02"/>
+      <right-front-top-point x="-0.224148269741" y="-0.233410762878" z="0.02"/>
+      <right-back-top-point x="-0.224148269741" y="-0.233410762878" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole30">
-      <left-back-bottom-point x="-0.203203870894" y="-0.320939798957" z="0.0"/>
-      <left-front-bottom-point x="-0.203203870894" y="-0.320939798957" z="0.02"/>
-      <right-front-bottom-point x="-0.218990371039" y="-0.324311309044" z="0.02"/>
-      <right-back-bottom-point x="-0.218990371039" y="-0.324311309044" z="0.0"/>
-      <left-back-top-point x="-0.218563096715" y="-0.256751839165" z="0.0"/>
-      <left-front-top-point x="-0.218563096715" y="-0.256751839165" z="0.02"/>
-      <right-front-top-point x="-0.231192296831" y="-0.259449047235" z="0.02"/>
-      <right-back-top-point x="-0.231192296831" y="-0.259449047235" z="0.0"/>
+      <left-back-bottom-point x="-0.224536700944" y="-0.294828462768" z="0.0"/>
+      <left-front-bottom-point x="-0.224536700944" y="-0.294828462768" z="0.02"/>
+      <right-front-bottom-point x="-0.231983958089" y="-0.296132503652" z="0.02"/>
+      <right-back-bottom-point x="-0.231983958089" y="-0.296132503652" z="0.0"/>
+      <left-back-top-point x="-0.235629360756" y="-0.235862770214" z="0.0"/>
+      <left-front-top-point x="-0.235629360756" y="-0.235862770214" z="0.02"/>
+      <right-front-top-point x="-0.241587166471" y="-0.236906002922" z="0.02"/>
+      <right-back-top-point x="-0.241587166471" y="-0.236906002922" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole31">
-      <left-back-bottom-point x="-0.227182353898" y="-0.325745754017" z="0.0"/>
-      <left-front-bottom-point x="-0.227182353898" y="-0.325745754017" z="0.02"/>
-      <right-front-bottom-point x="-0.235219567401" y="-0.326947568971" z="0.02"/>
-      <right-back-bottom-point x="-0.235219567401" y="-0.326947568971" z="0.0"/>
-      <left-back-top-point x="-0.237745883119" y="-0.260596603214" z="0.0"/>
-      <left-front-top-point x="-0.237745883119" y="-0.260596603214" z="0.02"/>
-      <right-front-top-point x="-0.244175653921" y="-0.261558055177" z="0.02"/>
-      <right-back-top-point x="-0.244175653921" y="-0.261558055177" z="0.0"/>
+      <left-back-bottom-point x="-0.239290515819" y="-0.297225062701" z="0.0"/>
+      <left-front-bottom-point x="-0.239290515819" y="-0.297225062701" z="0.02"/>
+      <right-front-bottom-point x="-0.253874141492" y="-0.298860234085" z="0.02"/>
+      <right-back-bottom-point x="-0.253874141492" y="-0.298860234085" z="0.0"/>
+      <left-back-top-point x="-0.247432412656" y="-0.237780050161" z="0.0"/>
+      <left-front-top-point x="-0.247432412656" y="-0.237780050161" z="0.02"/>
+      <right-front-top-point x="-0.259099313194" y="-0.239088187268" z="0.02"/>
+      <right-back-top-point x="-0.259099313194" y="-0.239088187268" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole32">
-      <left-back-bottom-point x="-0.251261555642" y="-0.328746257493" z="0.0"/>
-      <left-front-bottom-point x="-0.251261555642" y="-0.328746257493" z="0.02"/>
-      <right-front-bottom-point x="-0.3001000271" y="-0.329387293183" z="0.02"/>
-      <right-back-bottom-point x="-0.3001000271" y="-0.329387293183" z="0.0"/>
-      <left-back-top-point x="-0.257009244513" y="-0.262997005995" z="0.0"/>
-      <left-front-top-point x="-0.257009244513" y="-0.262997005995" z="0.02"/>
-      <right-front-top-point x="-0.29608002168" y="-0.263509834547" z="0.02"/>
-      <right-back-top-point x="-0.29608002168" y="-0.263509834547" z="0.0"/>
+      <left-back-bottom-point x="-0.298272751909" y="-0.299442993803" z="0.0"/>
+      <left-front-bottom-point x="-0.298272751909" y="-0.299442993803" z="0.02"/>
+      <right-front-bottom-point x="-0.305479002038" y="-0.29891607594" z="0.02"/>
+      <right-back-bottom-point x="-0.305479002038" y="-0.29891607594" z="0.0"/>
+      <left-back-top-point x="-0.294618201528" y="-0.239554395042" z="0.0"/>
+      <left-front-top-point x="-0.294618201528" y="-0.239554395042" z="0.02"/>
+      <right-front-top-point x="-0.30038320163" y="-0.239132860752" z="0.02"/>
+      <right-back-top-point x="-0.30038320163" y="-0.239132860752" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole33">
-      <left-back-bottom-point x="-0.308026902241" y="-0.328807683534" z="0.0"/>
-      <left-front-bottom-point x="-0.308026902241" y="-0.328807683534" z="0.02"/>
-      <right-front-bottom-point x="-0.340420857564" y="-0.324421515888" z="0.02"/>
-      <right-back-bottom-point x="-0.340420857564" y="-0.324421515888" z="0.0"/>
-      <left-back-top-point x="-0.302421521793" y="-0.263046146827" z="0.0"/>
-      <left-front-top-point x="-0.302421521793" y="-0.263046146827" z="0.02"/>
-      <right-front-top-point x="-0.328336686051" y="-0.259537212711" z="0.02"/>
-      <right-back-top-point x="-0.328336686051" y="-0.259537212711" z="0.0"/>
+      <left-back-bottom-point x="-0.334928052331" y="-0.294928650808" z="0.0"/>
+      <left-front-bottom-point x="-0.334928052331" y="-0.294928650808" z="0.02"/>
+      <right-front-bottom-point x="-0.349463248213" y="-0.291847318212" z="0.02"/>
+      <right-back-bottom-point x="-0.349463248213" y="-0.291847318212" z="0.0"/>
+      <left-back-top-point x="-0.323942441865" y="-0.235942920646" z="0.0"/>
+      <left-front-top-point x="-0.323942441865" y="-0.235942920646" z="0.02"/>
+      <right-front-top-point x="-0.33557059857" y="-0.23347785457" z="0.02"/>
+      <right-back-top-point x="-0.33557059857" y="-0.23347785457" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole34">
-      <left-back-bottom-point x="-0.356409573034" y="-0.321032050034" z="0.0"/>
-      <left-front-bottom-point x="-0.356409573034" y="-0.321032050034" z="0.02"/>
-      <right-front-bottom-point x="-0.364191293929" y="-0.319079654673" z="0.02"/>
-      <right-back-bottom-point x="-0.364191293929" y="-0.319079654673" z="0.0"/>
-      <left-back-top-point x="-0.341127658427" y="-0.256825640027" z="0.0"/>
-      <left-front-top-point x="-0.341127658427" y="-0.256825640027" z="0.02"/>
-      <right-front-top-point x="-0.347353035144" y="-0.255263723739" z="0.02"/>
-      <right-back-top-point x="-0.347353035144" y="-0.255263723739" z="0.0"/>
+      <left-back-bottom-point x="-0.356537539936" y="-0.290072413339" z="0.0"/>
+      <left-front-bottom-point x="-0.356537539936" y="-0.290072413339" z="0.02"/>
+      <right-front-bottom-point x="-0.370805789234" y="-0.28592710372" z="0.02"/>
+      <right-back-bottom-point x="-0.370805789234" y="-0.28592710372" z="0.0"/>
+      <left-back-top-point x="-0.341230031949" y="-0.232057930672" z="0.0"/>
+      <left-front-top-point x="-0.341230031949" y="-0.232057930672" z="0.02"/>
+      <right-front-top-point x="-0.352644631388" y="-0.228741682976" z="0.02"/>
+      <right-back-top-point x="-0.352644631388" y="-0.228741682976" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole35">
-      <left-back-bottom-point x="-0.379886368158" y="-0.314519814092" z="0.0"/>
-      <left-front-bottom-point x="-0.379886368158" y="-0.314519814092" z="0.02"/>
-      <right-front-bottom-point x="-0.387600850118" y="-0.31196483304" z="0.02"/>
-      <right-back-bottom-point x="-0.387600850118" y="-0.31196483304" z="0.0"/>
-      <left-back-top-point x="-0.359909094526" y="-0.251615851273" z="0.0"/>
-      <left-front-top-point x="-0.359909094526" y="-0.251615851273" z="0.02"/>
-      <right-front-top-point x="-0.366080680094" y="-0.249571866432" z="0.02"/>
-      <right-back-top-point x="-0.366080680094" y="-0.249571866432" z="0.0"/>
+      <left-back-bottom-point x="-0.377818954652" y="-0.283604393673" z="0.0"/>
+      <left-front-bottom-point x="-0.377818954652" y="-0.283604393673" z="0.02"/>
+      <right-front-bottom-point x="-0.391667964605" y="-0.278442571603" z="0.02"/>
+      <right-back-bottom-point x="-0.391667964605" y="-0.278442571603" z="0.0"/>
+      <left-back-top-point x="-0.358255163722" y="-0.226883514939" z="0.0"/>
+      <left-front-top-point x="-0.358255163722" y="-0.226883514939" z="0.02"/>
+      <right-front-top-point x="-0.369334371684" y="-0.222754057282" z="0.02"/>
+      <right-back-top-point x="-0.369334371684" y="-0.222754057282" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole36">
-      <left-back-bottom-point x="-0.402834761066" y="-0.306286828763" z="0.0"/>
-      <left-front-bottom-point x="-0.402834761066" y="-0.306286828763" z="0.02"/>
-      <right-front-bottom-point x="-0.425133373854" y="-0.296371901154" z="0.02"/>
-      <right-back-bottom-point x="-0.425133373854" y="-0.296371901154" z="0.0"/>
-      <left-back-top-point x="-0.378267808853" y="-0.245029463011" z="0.0"/>
-      <left-front-top-point x="-0.378267808853" y="-0.245029463011" z="0.02"/>
-      <right-front-top-point x="-0.396106699083" y="-0.237097520923" z="0.02"/>
-      <right-back-top-point x="-0.396106699083" y="-0.237097520923" z="0.0"/>
+      <left-back-bottom-point x="-0.411939430776" y="-0.269429001049" z="0.0"/>
+      <left-front-bottom-point x="-0.411939430776" y="-0.269429001049" z="0.02"/>
+      <right-front-bottom-point x="-0.418385233652" y="-0.266175744776" z="0.02"/>
+      <right-back-bottom-point x="-0.418385233652" y="-0.266175744776" z="0.0"/>
+      <left-back-top-point x="-0.385551544621" y="-0.215543200839" z="0.0"/>
+      <left-front-top-point x="-0.385551544621" y="-0.215543200839" z="0.02"/>
+      <right-front-top-point x="-0.390708186922" y="-0.212940595821" z="0.02"/>
+      <right-back-top-point x="-0.390708186922" y="-0.212940595821" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole37">
-      <left-back-bottom-point x="-0.432223757018" y="-0.292793319253" z="0.0"/>
-      <left-front-bottom-point x="-0.432223757018" y="-0.292793319253" z="0.02"/>
-      <right-front-bottom-point x="-0.446509034035" y="-0.284911813698" z="0.02"/>
-      <right-back-bottom-point x="-0.446509034035" y="-0.284911813698" z="0.0"/>
-      <left-back-top-point x="-0.401779005614" y="-0.234234655403" z="0.0"/>
-      <left-front-top-point x="-0.401779005614" y="-0.234234655403" z="0.02"/>
-      <right-front-top-point x="-0.413207227228" y="-0.227929450959" z="0.02"/>
-      <right-back-top-point x="-0.413207227228" y="-0.227929450959" z="0.0"/>
+      <left-back-bottom-point x="-0.431371849123" y="-0.259010739726" z="0.0"/>
+      <left-front-bottom-point x="-0.431371849123" y="-0.259010739726" z="0.02"/>
+      <right-front-bottom-point x="-0.443935844767" y="-0.251246967744" z="0.02"/>
+      <right-back-bottom-point x="-0.443935844767" y="-0.251246967744" z="0.0"/>
+      <left-back-top-point x="-0.401097479298" y="-0.20720859178" z="0.0"/>
+      <left-front-top-point x="-0.401097479298" y="-0.20720859178" z="0.02"/>
+      <right-front-top-point x="-0.411148675814" y="-0.200997574195" z="0.02"/>
+      <right-back-top-point x="-0.411148675814" y="-0.200997574195" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole38">
-      <left-back-bottom-point x="-0.460329429244" y="-0.276371664518" z="0.0"/>
-      <left-front-bottom-point x="-0.460329429244" y="-0.276371664518" z="0.02"/>
-      <right-front-bottom-point x="-0.467037451215" y="-0.271876795338" z="0.02"/>
-      <right-back-bottom-point x="-0.467037451215" y="-0.271876795338" z="0.0"/>
-      <left-back-top-point x="-0.424263543395" y="-0.221097331615" z="0.0"/>
-      <left-front-top-point x="-0.424263543395" y="-0.221097331615" z="0.02"/>
-      <right-front-top-point x="-0.429629960972" y="-0.21750143627" z="0.02"/>
-      <right-back-top-point x="-0.429629960972" y="-0.21750143627" z="0.0"/>
+      <left-back-bottom-point x="-0.450034046559" y="-0.247160723034" z="0.0"/>
+      <left-front-bottom-point x="-0.450034046559" y="-0.247160723034" z="0.02"/>
+      <right-front-bottom-point x="-0.456119469703" y="-0.242861961599" z="0.02"/>
+      <right-back-bottom-point x="-0.456119469703" y="-0.242861961599" z="0.0"/>
+      <left-back-top-point x="-0.416027237247" y="-0.197728578427" z="0.0"/>
+      <left-front-top-point x="-0.416027237247" y="-0.197728578427" z="0.02"/>
+      <right-front-top-point x="-0.420895575763" y="-0.194289569279" z="0.02"/>
+      <right-back-top-point x="-0.420895575763" y="-0.194289569279" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole39">
-      <left-back-bottom-point x="-0.473731416673" y="-0.267148157758" z="0.0"/>
-      <left-front-bottom-point x="-0.473731416673" y="-0.267148157758" z="0.02"/>
-      <right-front-bottom-point x="-0.480200597249" y="-0.262335130817" z="0.02"/>
-      <right-back-bottom-point x="-0.480200597249" y="-0.262335130817" z="0.0"/>
-      <left-back-top-point x="-0.434985133339" y="-0.213718526207" z="0.0"/>
-      <left-front-top-point x="-0.434985133339" y="-0.213718526207" z="0.02"/>
-      <right-front-top-point x="-0.4401604778" y="-0.209868104654" z="0.02"/>
-      <right-back-top-point x="-0.4401604778" y="-0.209868104654" z="0.0"/>
+      <left-back-bottom-point x="-0.462000542954" y="-0.238486482561" z="0.0"/>
+      <left-front-bottom-point x="-0.462000542954" y="-0.238486482561" z="0.02"/>
+      <right-front-bottom-point x="-0.467858699526" y="-0.233899784122" z="0.02"/>
+      <right-back-bottom-point x="-0.467858699526" y="-0.233899784122" z="0.0"/>
+      <left-back-top-point x="-0.425600434363" y="-0.190789186049" z="0.0"/>
+      <left-front-top-point x="-0.425600434363" y="-0.190789186049" z="0.02"/>
+      <right-front-top-point x="-0.43028695962" y="-0.187119827298" z="0.02"/>
+      <right-back-top-point x="-0.43028695962" y="-0.187119827298" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole40">
-      <left-back-bottom-point x="-0.486644569478" y="-0.257289762535" z="0.0"/>
-      <left-front-bottom-point x="-0.486644569478" y="-0.257289762535" z="0.02"/>
-      <right-front-bottom-point x="-0.492921841751" y="-0.252119593259" z="0.02"/>
-      <right-back-bottom-point x="-0.492921841751" y="-0.252119593259" z="0.0"/>
-      <left-back-top-point x="-0.445315655583" y="-0.205831810028" z="0.0"/>
-      <left-front-top-point x="-0.445315655583" y="-0.205831810028" z="0.02"/>
-      <right-front-top-point x="-0.450337473401" y="-0.201695674607" z="0.02"/>
-      <right-back-top-point x="-0.450337473401" y="-0.201695674607" z="0.0"/>
+      <left-back-bottom-point x="-0.473565310683" y="-0.229199630236" z="0.0"/>
+      <left-front-bottom-point x="-0.473565310683" y="-0.229199630236" z="0.02"/>
+      <right-front-bottom-point x="-0.50521674349" y="-0.198185313411" z="0.02"/>
+      <right-back-bottom-point x="-0.50521674349" y="-0.198185313411" z="0.0"/>
+      <left-back-top-point x="-0.434852248546" y="-0.183359704189" z="0.0"/>
+      <left-front-top-point x="-0.434852248546" y="-0.183359704189" z="0.02"/>
+      <right-front-top-point x="-0.460173394792" y="-0.158548250729" z="0.02"/>
+      <right-back-top-point x="-0.460173394792" y="-0.158548250729" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole41">
-      <left-back-bottom-point x="-0.527738417839" y="-0.218003844752" z="0.0"/>
-      <left-front-bottom-point x="-0.527738417839" y="-0.218003844752" z="0.02"/>
-      <right-front-bottom-point x="-0.533046237112" y="-0.211819739127" z="0.02"/>
-      <right-back-bottom-point x="-0.533046237112" y="-0.211819739127" z="0.0"/>
-      <left-back-top-point x="-0.478190734271" y="-0.174403075802" z="0.0"/>
-      <left-front-top-point x="-0.478190734271" y="-0.174403075802" z="0.02"/>
-      <right-front-top-point x="-0.482436989689" y="-0.169455791301" z="0.02"/>
-      <right-back-top-point x="-0.482436989689" y="-0.169455791301" z="0.0"/>
+      <left-back-bottom-point x="-0.510042033738" y="-0.192563399206" z="0.0"/>
+      <left-front-bottom-point x="-0.510042033738" y="-0.192563399206" z="0.02"/>
+      <right-front-bottom-point x="-0.519379365813" y="-0.180824553706" z="0.02"/>
+      <right-back-bottom-point x="-0.519379365813" y="-0.180824553706" z="0.0"/>
+      <left-back-top-point x="-0.46403362699" y="-0.154050719365" z="0.0"/>
+      <left-front-top-point x="-0.46403362699" y="-0.154050719365" z="0.02"/>
+      <right-front-top-point x="-0.47150349265" y="-0.144659642965" z="0.02"/>
+      <right-back-top-point x="-0.47150349265" y="-0.144659642965" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole42">
-      <left-back-bottom-point x="-0.543317302394" y="-0.198907009077" z="0.0"/>
-      <left-front-bottom-point x="-0.543317302394" y="-0.198907009077" z="0.02"/>
-      <right-front-bottom-point x="-0.54807827993" y="-0.192442292206" z="0.02"/>
-      <right-back-bottom-point x="-0.54807827993" y="-0.192442292206" z="0.0"/>
-      <left-back-top-point x="-0.490653841915" y="-0.159125607262" z="0.0"/>
-      <left-front-top-point x="-0.490653841915" y="-0.159125607262" z="0.02"/>
-      <right-front-top-point x="-0.494462623944" y="-0.153953833765" z="0.02"/>
-      <right-back-top-point x="-0.494462623944" y="-0.153953833765" z="0.0"/>
+      <left-back-bottom-point x="-0.523707527209" y="-0.174947538369" z="0.0"/>
+      <left-front-bottom-point x="-0.523707527209" y="-0.174947538369" z="0.02"/>
+      <right-front-bottom-point x="-0.531976929823" y="-0.162811629919" z="0.02"/>
+      <right-back-bottom-point x="-0.531976929823" y="-0.162811629919" z="0.0"/>
+      <left-back-top-point x="-0.474966021767" y="-0.139958030696" z="0.0"/>
+      <left-front-top-point x="-0.474966021767" y="-0.139958030696" z="0.02"/>
+      <right-front-top-point x="-0.481581543858" y="-0.130249303935" z="0.02"/>
+      <right-back-top-point x="-0.481581543858" y="-0.130249303935" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole43">
-      <left-back-bottom-point x="-0.557174622805" y="-0.179092792911" z="0.0"/>
-      <left-front-bottom-point x="-0.557174622805" y="-0.179092792911" z="0.02"/>
-      <right-front-bottom-point x="-0.565678888258" y="-0.165189505731" z="0.02"/>
-      <right-back-bottom-point x="-0.565678888258" y="-0.165189505731" z="0.0"/>
-      <left-back-top-point x="-0.501739698244" y="-0.143274234329" z="0.0"/>
-      <left-front-top-point x="-0.501739698244" y="-0.143274234329" z="0.02"/>
-      <right-front-top-point x="-0.508543110607" y="-0.132151604584" z="0.02"/>
-      <right-back-top-point x="-0.508543110607" y="-0.132151604584" z="0.0"/>
+      <left-back-bottom-point x="-0.539708080235" y="-0.150172277937" z="0.0"/>
+      <left-front-bottom-point x="-0.539708080235" y="-0.150172277937" z="0.02"/>
+      <right-front-bottom-point x="-0.550027228458" y="-0.130710733649" z="0.02"/>
+      <right-back-bottom-point x="-0.550027228458" y="-0.130710733649" z="0.0"/>
+      <left-back-top-point x="-0.487766464188" y="-0.12013782235" z="0.0"/>
+      <left-front-top-point x="-0.487766464188" y="-0.12013782235" z="0.02"/>
+      <right-front-top-point x="-0.496021782767" y="-0.104568586919" z="0.02"/>
+      <right-back-top-point x="-0.496021782767" y="-0.104568586919" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole44">
-      <left-back-bottom-point x="-0.577029951304" y="-0.143781807014" z="0.0"/>
-      <left-front-bottom-point x="-0.577029951304" y="-0.143781807014" z="0.02"/>
-      <right-front-bottom-point x="-0.583813840679" y="-0.128829927469" z="0.02"/>
-      <right-back-bottom-point x="-0.583813840679" y="-0.128829927469" z="0.0"/>
-      <left-back-top-point x="-0.517623961043" y="-0.115025445611" z="0.0"/>
-      <left-front-top-point x="-0.517623961043" y="-0.115025445611" z="0.02"/>
-      <right-front-top-point x="-0.523051072544" y="-0.103063941975" z="0.02"/>
-      <right-back-top-point x="-0.523051072544" y="-0.103063941975" z="0.0"/>
+      <left-back-bottom-point x="-0.556194400618" y="-0.117118115881" z="0.0"/>
+      <left-front-bottom-point x="-0.556194400618" y="-0.117118115881" z="0.02"/>
+      <right-front-bottom-point x="-0.558940655069" y="-0.110417892343" z="0.02"/>
+      <right-back-bottom-point x="-0.558940655069" y="-0.110417892343" z="0.0"/>
+      <left-back-top-point x="-0.500955520494" y="-0.0936944927045" z="0.0"/>
+      <left-front-top-point x="-0.500955520494" y="-0.0936944927045" z="0.02"/>
+      <right-front-top-point x="-0.503152524055" y="-0.0883343138745" z="0.02"/>
+      <right-back-top-point x="-0.503152524055" y="-0.0883343138745" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole45">
-      <left-back-bottom-point x="-0.586834720576" y="-0.121459681577" z="0.0"/>
-      <left-front-bottom-point x="-0.586834720576" y="-0.121459681577" z="0.02"/>
-      <right-front-bottom-point x="-0.592501750555" y="-0.106031391108" z="0.02"/>
-      <right-back-bottom-point x="-0.592501750555" y="-0.106031391108" z="0.0"/>
-      <left-back-top-point x="-0.525467776461" y="-0.0971677452619" z="0.0"/>
-      <left-front-top-point x="-0.525467776461" y="-0.0971677452619" z="0.02"/>
-      <right-front-top-point x="-0.530001400444" y="-0.0848251128864" z="0.02"/>
-      <right-back-top-point x="-0.530001400444" y="-0.0848251128864" z="0.0"/>
+      <left-back-bottom-point x="-0.564092500504" y="-0.0963921737346" z="0.0"/>
+      <left-front-bottom-point x="-0.564092500504" y="-0.0963921737346" z="0.02"/>
+      <right-front-bottom-point x="-0.566204689663" y="-0.0899270571911" z="0.02"/>
+      <right-back-bottom-point x="-0.566204689663" y="-0.0899270571911" z="0.0"/>
+      <left-back-top-point x="-0.507274000403" y="-0.0771137389877" z="0.0"/>
+      <left-front-top-point x="-0.507274000403" y="-0.0771137389877" z="0.02"/>
+      <right-front-top-point x="-0.50896375173" y="-0.0719416457529" z="0.02"/>
+      <right-back-top-point x="-0.50896375173" y="-0.0719416457529" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole46">
-      <left-back-bottom-point x="-0.594825158629" y="-0.0989197629102" z="0.0"/>
-      <left-front-bottom-point x="-0.594825158629" y="-0.0989197629102" z="0.02"/>
-      <right-front-bottom-point x="-0.597396713162" y="-0.0903289902183" z="0.02"/>
-      <right-back-bottom-point x="-0.597396713162" y="-0.0903289902183" z="0.0"/>
-      <left-back-top-point x="-0.531860126903" y="-0.0791358103282" z="0.0"/>
-      <left-front-top-point x="-0.531860126903" y="-0.0791358103282" z="0.02"/>
-      <right-front-top-point x="-0.53391737053" y="-0.0722631921746" z="0.02"/>
-      <right-back-top-point x="-0.53391737053" y="-0.0722631921746" z="0.0"/>
+      <left-back-bottom-point x="-0.568542466511" y="-0.0821172638348" z="0.0"/>
+      <left-front-bottom-point x="-0.568542466511" y="-0.0821172638348" z="0.02"/>
+      <right-front-bottom-point x="-0.573713641745" y="-0.0610925253421" z="0.02"/>
+      <right-back-bottom-point x="-0.573713641745" y="-0.0610925253421" z="0.0"/>
+      <left-back-top-point x="-0.510833973209" y="-0.0656938110679" z="0.0"/>
+      <left-front-top-point x="-0.510833973209" y="-0.0656938110679" z="0.02"/>
+      <right-front-top-point x="-0.514970913396" y="-0.0488740202736" z="0.02"/>
+      <right-back-top-point x="-0.514970913396" y="-0.0488740202736" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole47">
-      <left-back-bottom-point x="-0.60308500592" y="-0.0672017778763" z="0.0"/>
-      <left-front-bottom-point x="-0.60308500592" y="-0.0672017778763" z="0.02"/>
-      <right-front-bottom-point x="-0.608157138961" y="-0.0348266011728" z="0.02"/>
-      <right-back-bottom-point x="-0.608157138961" y="-0.0348266011728" z="0.0"/>
-      <left-back-top-point x="-0.538468004736" y="-0.053761422301" z="0.0"/>
-      <left-front-top-point x="-0.538468004736" y="-0.053761422301" z="0.02"/>
-      <right-front-top-point x="-0.542525711168" y="-0.0278612809383" z="0.02"/>
-      <right-back-top-point x="-0.542525711168" y="-0.0278612809383" z="0.0"/>
+      <left-back-bottom-point x="-0.578324671782" y="-0.0316605465207" z="0.0"/>
+      <left-front-bottom-point x="-0.578324671782" y="-0.0316605465207" z="0.02"/>
+      <right-front-bottom-point x="-0.579844474643" y="-0.00965872797791" z="0.02"/>
+      <right-back-bottom-point x="-0.579844474643" y="-0.00965872797791" z="0.0"/>
+      <left-back-top-point x="-0.518659737426" y="-0.0253284372166" z="0.0"/>
+      <left-front-top-point x="-0.518659737426" y="-0.0253284372166" z="0.02"/>
+      <right-front-top-point x="-0.519875579714" y="-0.00772698238233" z="0.02"/>
+      <right-back-top-point x="-0.519875579714" y="-0.00772698238233" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole48">
-      <left-back-bottom-point x="-0.609828922107" y="-0.0106246007757" z="0.0"/>
-      <left-front-bottom-point x="-0.609828922107" y="-0.0106246007757" z="0.02"/>
-      <right-front-bottom-point x="-0.609991633243" y="-0.00234989144512" z="0.02"/>
-      <right-back-bottom-point x="-0.609991633243" y="-0.00234989144512" z="0.0"/>
-      <left-back-top-point x="-0.543863137686" y="-0.00849968062056" z="0.0"/>
-      <left-front-top-point x="-0.543863137686" y="-0.00849968062056" z="0.02"/>
-      <right-front-top-point x="-0.543993306594" y="-0.00187991315609" z="0.02"/>
-      <right-back-top-point x="-0.543993306594" y="-0.00187991315609" z="0.0"/>
+      <left-back-bottom-point x="-0.579992393857" y="-0.00213626495011" z="0.0"/>
+      <left-front-bottom-point x="-0.579992393857" y="-0.00213626495011" z="0.02"/>
+      <right-front-bottom-point x="-0.579959884196" y="0.00490590184433" z="0.02"/>
+      <right-back-bottom-point x="-0.579959884196" y="0.00490590184433" z="0.0"/>
+      <left-back-top-point x="-0.519993915086" y="-0.00170901196008" z="0.0"/>
+      <left-front-top-point x="-0.519993915086" y="-0.00170901196008" z="0.02"/>
+      <right-front-top-point x="-0.519967907357" y="0.00392472147547" z="0.02"/>
+      <right-back-top-point x="-0.519967907357" y="0.00392472147547" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole49">
-      <left-back-bottom-point x="-0.609955872616" y="0.00539649202876" z="0.0"/>
-      <left-front-bottom-point x="-0.609955872616" y="0.00539649202876" z="0.02"/>
-      <right-front-bottom-point x="-0.609272956893" y="0.0218933747743" z="0.02"/>
-      <right-back-bottom-point x="-0.609272956893" y="0.0218933747743" z="0.0"/>
-      <left-back-top-point x="-0.543964698093" y="0.00431719362301" z="0.0"/>
-      <left-front-top-point x="-0.543964698093" y="0.00431719362301" z="0.02"/>
-      <right-front-top-point x="-0.543418365514" y="0.0175146998194" z="0.02"/>
-      <right-back-top-point x="-0.543418365514" y="0.0175146998194" z="0.0"/>
+      <left-back-bottom-point x="-0.579339051721" y="0.0199030679766" z="0.0"/>
+      <left-front-bottom-point x="-0.579339051721" y="0.0199030679766" z="0.02"/>
+      <right-front-bottom-point x="-0.577990710746" y="0.0346631837704" z="0.02"/>
+      <right-back-bottom-point x="-0.577990710746" y="0.0346631837704" z="0.0"/>
+      <left-back-top-point x="-0.519471241377" y="0.0159224543813" z="0.0"/>
+      <left-front-top-point x="-0.519471241377" y="0.0159224543813" z="0.02"/>
+      <right-front-top-point x="-0.518392568597" y="0.0277305470163" z="0.02"/>
+      <right-back-top-point x="-0.518392568597" y="0.0277305470163" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole50">
-      <left-back-bottom-point x="-0.607789781821" y="0.0381295021475" z="0.0"/>
-      <left-front-bottom-point x="-0.607789781821" y="0.0381295021475" z="0.02"/>
-      <right-front-bottom-point x="-0.606739381139" y="0.0462750128348" z="0.02"/>
-      <right-back-bottom-point x="-0.606739381139" y="0.0462750128348" z="0.0"/>
-      <left-back-top-point x="-0.542231825456" y="0.030503601718" z="0.0"/>
-      <left-front-top-point x="-0.542231825456" y="0.030503601718" z="0.02"/>
-      <right-front-top-point x="-0.541391504911" y="0.0370200102679" z="0.02"/>
-      <right-back-top-point x="-0.541391504911" y="0.0370200102679" z="0.0"/>
+      <left-back-bottom-point x="-0.577035801036" y="0.0420681934862" z="0.0"/>
+      <left-front-bottom-point x="-0.577035801036" y="0.0420681934862" z="0.02"/>
+      <right-front-bottom-point x="-0.56541871697" y="0.0923913199569" z="0.02"/>
+      <right-back-bottom-point x="-0.56541871697" y="0.0923913199569" z="0.0"/>
+      <left-back-top-point x="-0.517628640828" y="0.033654554789" z="0.0"/>
+      <left-front-top-point x="-0.517628640828" y="0.033654554789" z="0.02"/>
+      <right-front-top-point x="-0.508334973576" y="0.0739130559656" z="0.02"/>
+      <right-back-top-point x="-0.508334973576" y="0.0739130559656" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole51">
-      <left-back-bottom-point x="-0.593960588667" y="0.101630451953" z="0.0"/>
-      <left-front-bottom-point x="-0.593960588667" y="0.101630451953" z="0.02"/>
-      <right-front-bottom-point x="-0.585465427492" y="0.124863415807" z="0.02"/>
-      <right-back-bottom-point x="-0.585465427492" y="0.124863415807" z="0.0"/>
-      <left-back-top-point x="-0.531168470933" y="0.0813043615621" z="0.0"/>
-      <left-front-top-point x="-0.531168470933" y="0.0813043615621" z="0.02"/>
-      <right-front-top-point x="-0.524372341994" y="0.0998907326456" z="0.02"/>
-      <right-back-top-point x="-0.524372341994" y="0.0998907326456" z="0.0"/>
+      <left-back-bottom-point x="-0.557695843175" y="0.113512196188" z="0.0"/>
+      <left-front-bottom-point x="-0.557695843175" y="0.113512196188" z="0.02"/>
+      <right-front-bottom-point x="-0.554864779729" y="0.120205461042" z="0.02"/>
+      <right-back-bottom-point x="-0.554864779729" y="0.120205461042" z="0.0"/>
+      <left-back-top-point x="-0.50215667454" y="0.0908097569505" z="0.0"/>
+      <left-front-top-point x="-0.50215667454" y="0.0908097569505" z="0.02"/>
+      <right-front-top-point x="-0.499891823783" y="0.0961643688338" z="0.02"/>
+      <right-back-top-point x="-0.499891823783" y="0.0961643688338" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole52">
-      <left-back-bottom-point x="-0.582351257702" y="0.132226007147" z="0.0"/>
-      <left-front-bottom-point x="-0.582351257702" y="0.132226007147" z="0.02"/>
-      <right-front-bottom-point x="-0.57904991864" y="0.13953188224" z="0.02"/>
-      <right-back-bottom-point x="-0.57904991864" y="0.13953188224" z="0.0"/>
-      <left-back-top-point x="-0.521881006162" y="0.105780805717" z="0.0"/>
-      <left-front-top-point x="-0.521881006162" y="0.105780805717" z="0.02"/>
-      <right-front-top-point x="-0.519239934912" y="0.111625505792" z="0.02"/>
-      <right-back-top-point x="-0.519239934912" y="0.111625505792" z="0.0"/>
+      <left-back-bottom-point x="-0.5518635624" y="0.126847165672" z="0.0"/>
+      <left-front-bottom-point x="-0.5518635624" y="0.126847165672" z="0.02"/>
+      <right-front-bottom-point x="-0.548594688313" y="0.133629687607" z="0.02"/>
+      <right-back-bottom-point x="-0.548594688313" y="0.133629687607" z="0.0"/>
+      <left-back-top-point x="-0.49749084992" y="0.101477732538" z="0.0"/>
+      <left-front-top-point x="-0.49749084992" y="0.101477732538" z="0.02"/>
+      <right-front-top-point x="-0.494875750651" y="0.106903750085" z="0.02"/>
+      <right-back-top-point x="-0.494875750651" y="0.106903750085" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole53">
-      <left-back-bottom-point x="-0.575454157145" y="0.146992656368" z="0.0"/>
-      <left-front-bottom-point x="-0.575454157145" y="0.146992656368" z="0.02"/>
-      <right-front-bottom-point x="-0.571839162168" y="0.154045134376" z="0.02"/>
-      <right-back-bottom-point x="-0.571839162168" y="0.154045134376" z="0.0"/>
-      <left-back-top-point x="-0.516363325716" y="0.117594125094" z="0.0"/>
-      <left-front-top-point x="-0.516363325716" y="0.117594125094" z="0.02"/>
-      <right-front-top-point x="-0.513471329734" y="0.123236107501" z="0.02"/>
-      <right-back-top-point x="-0.513471329734" y="0.123236107501" z="0.0"/>
+      <left-back-bottom-point x="-0.545308329244" y="0.140041031251" z="0.0"/>
+      <left-front-bottom-point x="-0.545308329244" y="0.140041031251" z="0.02"/>
+      <right-front-bottom-point x="-0.538062546467" y="0.152982751025" z="0.02"/>
+      <right-back-bottom-point x="-0.538062546467" y="0.152982751025" z="0.0"/>
+      <left-back-top-point x="-0.492246663395" y="0.112032825001" z="0.0"/>
+      <left-front-top-point x="-0.492246663395" y="0.112032825001" z="0.02"/>
+      <right-front-top-point x="-0.486450037173" y="0.12238620082" z="0.02"/>
+      <right-back-top-point x="-0.486450037173" y="0.12238620082" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole54">
-      <left-back-bottom-point x="-0.563868801114" y="0.168281026127" z="0.0"/>
-      <left-front-bottom-point x="-0.563868801114" y="0.168281026127" z="0.02"/>
-      <right-front-bottom-point x="-0.559626723345" y="0.175239537751" z="0.02"/>
-      <right-back-bottom-point x="-0.559626723345" y="0.175239537751" z="0.0"/>
-      <left-back-top-point x="-0.507095040891" y="0.134624820902" z="0.0"/>
-      <left-front-top-point x="-0.507095040891" y="0.134624820902" z="0.02"/>
-      <right-front-top-point x="-0.503701378676" y="0.140191630201" z="0.02"/>
-      <right-back-top-point x="-0.503701378676" y="0.140191630201" z="0.0"/>
+      <left-back-bottom-point x="-0.534206112132" y="0.159308670683" z="0.0"/>
+      <left-front-bottom-point x="-0.534206112132" y="0.159308670683" z="0.02"/>
+      <right-front-bottom-point x="-0.530180195344" y="0.165559263883" z="0.02"/>
+      <right-back-bottom-point x="-0.530180195344" y="0.165559263883" z="0.0"/>
+      <left-back-top-point x="-0.483364889705" y="0.127446936546" z="0.0"/>
+      <left-front-top-point x="-0.483364889705" y="0.127446936546" z="0.02"/>
+      <right-front-top-point x="-0.480144156275" y="0.132447411107" z="0.02"/>
+      <right-back-top-point x="-0.480144156275" y="0.132447411107" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole55">
-      <left-back-bottom-point x="-0.555198214878" y="0.182115190272" z="0.0"/>
-      <left-front-bottom-point x="-0.555198214878" y="0.182115190272" z="0.02"/>
-      <right-front-bottom-point x="-0.550630345612" y="0.188836479616" z="0.02"/>
-      <right-back-bottom-point x="-0.550630345612" y="0.188836479616" z="0.0"/>
-      <left-back-top-point x="-0.500158571903" y="0.145692152217" z="0.0"/>
-      <left-front-top-point x="-0.500158571903" y="0.145692152217" z="0.02"/>
-      <right-front-top-point x="-0.49650427649" y="0.151069183693" z="0.02"/>
-      <right-back-top-point x="-0.49650427649" y="0.151069183693" z="0.0"/>
+      <left-back-bottom-point x="-0.52602758692" y="0.171669526924" z="0.0"/>
+      <left-front-bottom-point x="-0.52602758692" y="0.171669526924" z="0.02"/>
+      <right-front-bottom-point x="-0.521623403944" y="0.177814877517" z="0.02"/>
+      <right-back-bottom-point x="-0.521623403944" y="0.177814877517" z="0.0"/>
+      <left-back-top-point x="-0.476822069536" y="0.137335621539" z="0.0"/>
+      <left-front-top-point x="-0.476822069536" y="0.137335621539" z="0.02"/>
+      <right-front-top-point x="-0.473298723155" y="0.142251902014" z="0.02"/>
+      <right-back-top-point x="-0.473298723155" y="0.142251902014" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole56">
-      <left-back-bottom-point x="-0.545785744338" y="0.195596365269" z="0.0"/>
-      <left-front-bottom-point x="-0.545785744338" y="0.195596365269" z="0.02"/>
-      <right-front-bottom-point x="-0.535953590172" y="0.208297286776" z="0.02"/>
-      <right-back-bottom-point x="-0.535953590172" y="0.208297286776" z="0.0"/>
-      <left-back-top-point x="-0.492628595471" y="0.156477092215" z="0.0"/>
-      <left-front-top-point x="-0.492628595471" y="0.156477092215" z="0.02"/>
-      <right-front-top-point x="-0.484762872138" y="0.166637829421" z="0.02"/>
-      <right-back-top-point x="-0.484762872138" y="0.166637829421" z="0.0"/>
+      <left-back-bottom-point x="-0.512685081974" y="0.189361169796" z="0.0"/>
+      <left-front-bottom-point x="-0.512685081974" y="0.189361169796" z="0.02"/>
+      <right-front-bottom-point x="-0.502946951169" y="0.20073529078" z="0.02"/>
+      <right-back-bottom-point x="-0.502946951169" y="0.20073529078" z="0.0"/>
+      <left-back-top-point x="-0.46614806558" y="0.151488935837" z="0.0"/>
+      <left-front-top-point x="-0.46614806558" y="0.151488935837" z="0.02"/>
+      <right-front-top-point x="-0.458357560935" y="0.160588232624" z="0.02"/>
+      <right-back-top-point x="-0.458357560935" y="0.160588232624" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole57">
-      <left-back-bottom-point x="-0.525241646286" y="0.220808819858" z="0.0"/>
-      <left-front-bottom-point x="-0.525241646286" y="0.220808819858" z="0.02"/>
-      <right-front-bottom-point x="-0.502558063934" y="0.243655306074" z="0.02"/>
-      <right-back-bottom-point x="-0.502558063934" y="0.243655306074" z="0.0"/>
-      <left-back-top-point x="-0.476193317029" y="0.176647055886" z="0.0"/>
-      <left-front-top-point x="-0.476193317029" y="0.176647055886" z="0.02"/>
-      <right-front-top-point x="-0.458046451147" y="0.194924244859" z="0.02"/>
-      <right-back-top-point x="-0.458046451147" y="0.194924244859" z="0.0"/>
+      <left-back-bottom-point x="-0.482325512667" y="0.221504823703" z="0.0"/>
+      <left-front-bottom-point x="-0.482325512667" y="0.221504823703" z="0.02"/>
+      <right-front-bottom-point x="-0.453528176512" y="0.24472019115" z="0.02"/>
+      <right-back-bottom-point x="-0.453528176512" y="0.24472019115" z="0.0"/>
+      <left-back-top-point x="-0.441860410134" y="0.177203858963" z="0.0"/>
+      <left-front-top-point x="-0.441860410134" y="0.177203858963" z="0.02"/>
+      <right-front-top-point x="-0.41882254121" y="0.19577615292" z="0.02"/>
+      <right-back-top-point x="-0.41882254121" y="0.19577615292" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole58">
-      <left-back-bottom-point x="-0.470880994163" y="0.269192210265" z="0.0"/>
-      <left-front-bottom-point x="-0.470880994163" y="0.269192210265" z="0.02"/>
-      <right-front-bottom-point x="-0.45713396267" y="0.278430528622" z="0.02"/>
-      <right-back-bottom-point x="-0.45713396267" y="0.278430528622" z="0.0"/>
-      <left-back-top-point x="-0.432704795331" y="0.215353768212" z="0.0"/>
-      <left-front-top-point x="-0.432704795331" y="0.215353768212" z="0.02"/>
-      <right-front-top-point x="-0.421707170136" y="0.222744422898" z="0.02"/>
-      <right-back-top-point x="-0.421707170136" y="0.222744422898" z="0.0"/>
+      <left-back-bottom-point x="-0.441030875155" y="0.253118662384" z="0.0"/>
+      <left-front-bottom-point x="-0.441030875155" y="0.253118662384" z="0.02"/>
+      <right-front-bottom-point x="-0.395496422759" y="0.276876464023" z="0.02"/>
+      <right-back-bottom-point x="-0.395496422759" y="0.276876464023" z="0.0"/>
+      <left-back-top-point x="-0.408824700124" y="0.202494929907" z="0.0"/>
+      <left-front-top-point x="-0.408824700124" y="0.202494929907" z="0.02"/>
+      <right-front-top-point x="-0.372397138207" y="0.221501171218" z="0.02"/>
+      <right-back-top-point x="-0.372397138207" y="0.221501171218" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole59">
-      <left-back-bottom-point x="-0.407046065035" y="0.304564110425" z="0.0"/>
-      <left-front-bottom-point x="-0.407046065035" y="0.304564110425" z="0.02"/>
-      <right-front-bottom-point x="-0.399475710625" y="0.307612669717" z="0.02"/>
-      <right-back-bottom-point x="-0.399475710625" y="0.307612669717" z="0.0"/>
-      <left-back-top-point x="-0.381636852028" y="0.24365128834" z="0.0"/>
-      <left-front-top-point x="-0.381636852028" y="0.24365128834" z="0.02"/>
-      <right-front-top-point x="-0.3755805685" y="0.246090135774" z="0.02"/>
-      <right-back-top-point x="-0.3755805685" y="0.246090135774" z="0.0"/>
+      <left-back-bottom-point x="-0.388614282387" y="0.279647881561" z="0.0"/>
+      <left-front-bottom-point x="-0.388614282387" y="0.279647881561" z="0.02"/>
+      <right-front-bottom-point x="-0.381508059765" y="0.282305001378" z="0.02"/>
+      <right-back-bottom-point x="-0.381508059765" y="0.282305001378" z="0.0"/>
+      <left-back-top-point x="-0.366891425909" y="0.223718305249" z="0.0"/>
+      <left-front-top-point x="-0.366891425909" y="0.223718305249" z="0.02"/>
+      <right-front-top-point x="-0.361206447812" y="0.225844001102" z="0.02"/>
+      <right-back-top-point x="-0.361206447812" y="0.225844001102" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole60">
-      <left-back-bottom-point x="-0.391658865741" y="0.310535501515" z="0.0"/>
-      <left-front-bottom-point x="-0.391658865741" y="0.310535501515" z="0.02"/>
-      <right-front-bottom-point x="-0.384016612028" y="0.313178135288" z="0.02"/>
-      <right-back-bottom-point x="-0.384016612028" y="0.313178135288" z="0.0"/>
-      <left-back-top-point x="-0.369327092593" y="0.248428401212" z="0.0"/>
-      <left-front-top-point x="-0.369327092593" y="0.248428401212" z="0.02"/>
-      <right-front-top-point x="-0.363213289622" y="0.25054250823" z="0.02"/>
-      <right-back-top-point x="-0.363213289622" y="0.25054250823" z="0.0"/>
+      <left-back-bottom-point x="-0.374560556389" y="0.284707395716" z="0.0"/>
+      <left-front-bottom-point x="-0.374560556389" y="0.284707395716" z="0.02"/>
+      <right-front-bottom-point x="-0.367526226741" y="0.286948008588" z="0.02"/>
+      <right-back-bottom-point x="-0.367526226741" y="0.286948008588" z="0.0"/>
+      <left-back-top-point x="-0.355648445111" y="0.227765916573" z="0.0"/>
+      <left-front-top-point x="-0.355648445111" y="0.227765916573" z="0.02"/>
+      <right-front-top-point x="-0.350020981393" y="0.22955840687" z="0.02"/>
+      <right-back-top-point x="-0.350020981393" y="0.22955840687" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole61">
-      <left-back-bottom-point x="-0.376278849415" y="0.315642809446" z="0.0"/>
-      <left-front-bottom-point x="-0.376278849415" y="0.315642809446" z="0.02"/>
-      <right-front-bottom-point x="-0.368366253958" y="0.317948746123" z="0.02"/>
-      <right-back-bottom-point x="-0.368366253958" y="0.317948746123" z="0.0"/>
-      <left-back-top-point x="-0.357023079532" y="0.252514247557" z="0.0"/>
-      <left-front-top-point x="-0.357023079532" y="0.252514247557" z="0.02"/>
-      <right-front-top-point x="-0.350693003166" y="0.254358996899" z="0.02"/>
-      <right-back-top-point x="-0.350693003166" y="0.254358996899" z="0.0"/>
+      <left-back-bottom-point x="-0.360332958143" y="0.289044314658" z="0.0"/>
+      <left-front-bottom-point x="-0.360332958143" y="0.289044314658" z="0.02"/>
+      <right-front-bottom-point x="-0.353216530194" y="0.290928409933" z="0.02"/>
+      <right-back-bottom-point x="-0.353216530194" y="0.290928409933" z="0.0"/>
+      <left-back-top-point x="-0.344266366515" y="0.231235451726" z="0.0"/>
+      <left-front-top-point x="-0.344266366515" y="0.231235451726" z="0.02"/>
+      <right-front-top-point x="-0.338573224155" y="0.232742727947" z="0.02"/>
+      <right-back-top-point x="-0.338573224155" y="0.232742727947" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole62">
-      <left-back-bottom-point x="-0.360538183214" y="0.320021250927" z="0.0"/>
-      <left-front-bottom-point x="-0.360538183214" y="0.320021250927" z="0.02"/>
-      <right-front-bottom-point x="-0.328685962613" y="0.326388843321" z="0.02"/>
-      <right-back-bottom-point x="-0.328685962613" y="0.326388843321" z="0.0"/>
-      <left-back-top-point x="-0.344430546571" y="0.256017000741" z="0.0"/>
-      <left-front-top-point x="-0.344430546571" y="0.256017000741" z="0.02"/>
-      <right-front-top-point x="-0.31894877009" y="0.261111074657" z="0.02"/>
-      <right-back-top-point x="-0.31894877009" y="0.261111074657" z="0.0"/>
+      <left-back-bottom-point x="-0.324259966012" y="0.296717130292" z="0.0"/>
+      <left-front-bottom-point x="-0.324259966012" y="0.296717130292" z="0.02"/>
+      <right-front-bottom-point x="-0.316940151288" y="0.297717022058" z="0.02"/>
+      <right-back-bottom-point x="-0.316940151288" y="0.297717022058" z="0.0"/>
+      <left-back-top-point x="-0.315407972809" y="0.237373704233" z="0.0"/>
+      <left-front-top-point x="-0.315407972809" y="0.237373704233" z="0.02"/>
+      <right-front-top-point x="-0.30955212103" y="0.238173617646" z="0.02"/>
+      <right-back-top-point x="-0.30955212103" y="0.238173617646" z="0.0"/>
     </hexahedron>
     <hexahedron id="hole63">
-      <left-back-bottom-point x="-0.320634166416" y="0.327488724263" z="0.0"/>
-      <left-front-bottom-point x="-0.320634166416" y="0.327488724263" z="0.02"/>
-      <right-front-bottom-point x="-0.304484520415" y="0.329090425658" z="0.02"/>
-      <right-back-bottom-point x="-0.304484520415" y="0.329090425658" z="0.0"/>
-      <left-back-top-point x="-0.312507333133" y="0.261990979411" z="0.0"/>
-      <left-front-top-point x="-0.312507333133" y="0.261990979411" z="0.02"/>
-      <right-front-top-point x="-0.299587616332" y="0.263272340527" z="0.02"/>
-      <right-back-top-point x="-0.299587616332" y="0.263272340527" z="0.0"/>
-    </hexahedron>
-    <algebra val="body  (# hole0) (# hole1) (# hole2) (# hole3) (# hole4) (# hole5) (# hole6) (# hole7) (# hole8) (# hole9) (# hole10) (# hole11) (# hole12) (# hole13) (# hole14) (# hole15) (# hole16) (# hole17) (# hole18) (# hole19) (# hole20) (# hole21) (# hole22) (# hole23) (# hole24) (# hole25) (# hole26) (# hole27) (# hole28) (# hole29) (# hole30) (# hole31) (# hole32) (# hole33) (# hole34) (# hole35) (# hole36) (# hole37) (# hole38) (# hole39) (# hole40) (# hole41) (# hole42) (# hole43) (# hole44) (# hole45) (# hole46) (# hole47) (# hole48) (# hole49) (# hole50) (# hole51) (# hole52) (# hole53) (# hole54) (# hole55) (# hole56) (# hole57) (# hole58) (# hole59) (# hole60) (# hole61) (# hole62) (# hole63)"/>
+      <left-back-bottom-point x="-0.302258654923" y="0.299173114235" z="0.0"/>
+      <left-front-bottom-point x="-0.302258654923" y="0.299173114235" z="0.02"/>
+      <right-front-bottom-point x="-0.294916412161" y="0.299628938269" z="0.02"/>
+      <right-back-bottom-point x="-0.294916412161" y="0.299628938269" z="0.0"/>
+      <left-back-top-point x="-0.297806923938" y="0.239338491388" z="0.0"/>
+      <left-front-top-point x="-0.297806923938" y="0.239338491388" z="0.02"/>
+      <right-front-top-point x="-0.291933129728" y="0.239703150615" z="0.02"/>
+      <right-back-top-point x="-0.291933129728" y="0.239703150615" z="0.0"/>
+    </hexahedron>
+    <algebra val="body : hole0 : hole1 : hole2 : hole3 : hole4 : hole5 : hole6 : hole7 : hole8 : hole9 : hole10 : hole11 : hole12 : hole13 : hole14 : hole15 : hole16 : hole17 : hole18 : hole19 : hole20 : hole21 : hole22 : hole23 : hole24 : hole25 : hole26 : hole27 : hole28 : hole29 : hole30 : hole31 : hole32 : hole33 : hole34 : hole35 : hole36 : hole37 : hole38 : hole39 : hole40 : hole41 : hole42 : hole43 : hole44 : hole45 : hole46 : hole47 : hole48 : hole49 : hole50 : hole51 : hole52 : hole53 : hole54 : hole55 : hole56 : hole57 : hole58 : hole59 : hole60 : hole61 : hole62 : hole63"/>
+    <bounding-box>
+      <x-min val="-0.58"/>
+      <x-max val="0.02"/>
+      <y-min val="-0.3"/>
+      <y-max val="0.3"/>
+      <z-min val="0.0"/>
+      <z-max val="0.02"/>
+    </bounding-box>
   </type>
   <component-link name="correlation-chopper">
     <parameter name="sequence" type="string">
@@ -748,95 +762,95 @@
     <location/>
   </component>
   <type name="A row">
-    <component type="A1">
+    <component type="bank1">
       <location/>
     </component>
-    <component type="A2">
+    <component type="bank2">
       <location/>
     </component>
-    <component type="A3">
+    <component type="bank3">
       <location/>
     </component>
-    <component type="A4">
+    <component type="bank4">
       <location/>
     </component>
-    <component type="A5">
+    <component type="bank5">
       <location/>
     </component>
-    <component type="A6">
+    <component type="bank6">
       <location/>
     </component>
-    <component type="A7">
+    <component type="bank7">
       <location/>
     </component>
-    <component type="A8">
+    <component type="bank8">
       <location/>
     </component>
-    <component type="A9">
+    <component type="bank9">
       <location/>
     </component>
-    <component type="A10">
+    <component type="bank10">
       <location/>
     </component>
-    <component type="A11">
+    <component type="bank11">
       <location/>
     </component>
-    <component type="A12">
+    <component type="bank12">
       <location/>
     </component>
-    <component type="A13">
+    <component type="bank13">
       <location/>
     </component>
-    <component type="A14">
+    <component type="bank14">
       <location/>
     </component>
-    <component type="A15">
+    <component type="bank15">
       <location/>
     </component>
-    <component type="A16">
+    <component type="bank16">
       <location/>
     </component>
-    <component type="A17">
+    <component type="bank17">
       <location/>
     </component>
-    <component type="A18">
+    <component type="bank18">
       <location/>
     </component>
-    <component type="A19">
+    <component type="bank19">
       <location/>
     </component>
-    <component type="A20">
+    <component type="bank20">
       <location/>
     </component>
-    <component type="A21">
+    <component type="bank21">
       <location/>
     </component>
-    <component type="A22">
+    <component type="bank22">
       <location/>
     </component>
-    <component type="A23">
+    <component type="bank23">
       <location/>
     </component>
-    <component type="A24">
+    <component type="bank24">
       <location/>
     </component>
-    <component type="A25">
+    <component type="bank25">
       <location/>
     </component>
-    <component type="A26">
+    <component type="bank26">
       <location/>
     </component>
-    <component type="A27">
+    <component type="bank27">
       <location/>
     </component>
-    <component type="A28">
+    <component type="bank28">
       <location/>
     </component>
-    <component type="A29">
+    <component type="bank29">
       <location/>
     </component>
   </type>
-  <type name="A1">
+  <type name="bank1">
     <component type="sixteenpack">
       <location x="1.274295027" y="-0.804864486" z="-2.054426768">
         <rot axis-x="0" axis-y="1" axis-z="0" val="328.19">
@@ -847,7 +861,7 @@
       </location>
     </component>
   </type>
-  <type name="A2">
+  <type name="bank2">
     <component type="sixteenpack">
       <location x="1.462650296" y="-0.804864486" z="-1.924876949">
         <rot axis-x="0" axis-y="1" axis-z="0" val="322.77">
@@ -858,7 +872,7 @@
       </location>
     </component>
   </type>
-  <type name="A3">
+  <type name="bank3">
     <component type="sixteenpack">
       <location x="1.637926704" y="-0.804864486" z="-1.778115089">
         <rot axis-x="0" axis-y="1" axis-z="0" val="317.35">
@@ -869,7 +883,7 @@
       </location>
     </component>
   </type>
-  <type name="A4">
+  <type name="bank4">
     <component type="sixteenpack">
       <location x="1.798556949" y="-0.804864486" z="-1.615453515">
         <rot axis-x="0" axis-y="1" axis-z="0" val="311.93">
@@ -880,7 +894,7 @@
       </location>
     </component>
   </type>
-  <type name="A5">
+  <type name="bank5">
     <component type="sixteenpack">
       <location x="1.943104691" y="-0.804864486" z="-1.438346731">
         <rot axis-x="0" axis-y="1" axis-z="0" val="306.51">
@@ -891,7 +905,7 @@
       </location>
     </component>
   </type>
-  <type name="A6">
+  <type name="bank6">
     <component type="sixteenpack">
       <location x="2.070277401" y="-0.804864486" z="-1.248378405">
         <rot axis-x="0" axis-y="1" axis-z="0" val="301.09">
@@ -902,7 +916,7 @@
       </location>
     </component>
   </type>
-  <type name="A7">
+  <type name="bank7">
     <component type="sixteenpack">
       <location x="2.246370655" y="-0.804864486" z="-0.893485333">
         <rot axis-x="0" axis-y="1" axis-z="0" val="291.69">
@@ -913,7 +927,7 @@
       </location>
     </component>
   </type>
-  <type name="A8">
+  <type name="bank8">
     <component type="sixteenpack">
       <location x="2.320722146" y="-0.804864486" z="-0.677307816">
         <rot axis-x="0" axis-y="1" axis-z="0" val="286.27">
@@ -924,7 +938,7 @@
       </location>
     </component>
   </type>
-  <type name="A9">
+  <type name="bank9">
     <component type="sixteenpack">
       <location x="2.374321991" y="-0.804864486" z="-0.455073886">
         <rot axis-x="0" axis-y="1" axis-z="0" val="280.85">
@@ -935,7 +949,7 @@
       </location>
     </component>
   </type>
-  <type name="A10">
+  <type name="bank10">
     <component type="sixteenpack">
       <location x="2.406690904" y="-0.804864486" z="-0.228770735">
         <rot axis-x="0" axis-y="1" axis-z="0" val="275.43">
@@ -946,7 +960,7 @@
       </location>
     </component>
   </type>
-  <type name="A11">
+  <type name="bank11">
     <component type="sixteenpack">
       <location x="2.417539448" y="-0.804864486" z="-0.00042194">
         <rot axis-x="0" axis-y="1" axis-z="0" val="270.01">
@@ -957,7 +971,7 @@
       </location>
     </component>
   </type>
-  <type name="A12">
+  <type name="bank12">
     <component type="sixteenpack">
       <location x="2.385146032" y="-0.804864486" z="0.394430682">
         <rot axis-x="0" axis-y="1" axis-z="0" val="260.61">
@@ -968,7 +982,7 @@
       </location>
     </component>
   </type>
-  <type name="A13">
+  <type name="bank13">
     <component type="sixteenpack">
       <location x="2.337225898" y="-0.804864486" z="0.617958138">
         <rot axis-x="0" axis-y="1" axis-z="0" val="255.19">
@@ -979,7 +993,7 @@
       </location>
     </component>
   </type>
-  <type name="A14">
+  <type name="bank14">
     <component type="sixteenpack">
       <location x="2.268406542" y="-0.804864486" z="0.835959879">
         <rot axis-x="0" axis-y="1" axis-z="0" val="249.77">
@@ -990,7 +1004,7 @@
       </location>
     </component>
   </type>
-  <type name="A15">
+  <type name="bank15">
     <component type="sixteenpack">
       <location x="2.179303339" y="-0.804864486" z="1.046486558">
         <rot axis-x="0" axis-y="1" axis-z="0" val="244.35">
@@ -1001,7 +1015,7 @@
       </location>
     </component>
   </type>
-  <type name="A16">
+  <type name="bank16">
     <component type="sixteenpack">
       <location x="2.070713041" y="-0.804864486" z="1.247655666">
         <rot axis-x="0" axis-y="1" axis-z="0" val="238.93">
@@ -1012,7 +1026,7 @@
       </location>
     </component>
   </type>
-  <type name="A17">
+  <type name="bank17">
     <component type="sixteenpack">
       <location x="1.839133279" y="-0.804864486" z="1.569103547">
         <rot axis-x="0" axis-y="1" axis-z="0" val="229.53">
@@ -1023,7 +1037,7 @@
       </location>
     </component>
   </type>
-  <type name="A18">
+  <type name="bank18">
     <component type="sixteenpack">
       <location x="1.682699644" y="-0.804864486" z="1.73580502">
         <rot axis-x="0" axis-y="1" axis-z="0" val="224.11">
@@ -1034,7 +1048,7 @@
       </location>
     </component>
   </type>
-  <type name="A19">
+  <type name="bank19">
     <component type="sixteenpack">
       <location x="1.511219491" y="-0.804864486" z="1.886985111">
         <rot axis-x="0" axis-y="1" axis-z="0" val="218.69">
@@ -1045,7 +1059,7 @@
       </location>
     </component>
   </type>
-  <type name="A20">
+  <type name="bank20">
     <component type="sixteenpack">
       <location x="1.326226176" y="-0.804864486" z="2.021291985">
         <rot axis-x="0" axis-y="1" axis-z="0" val="213.27">
@@ -1056,7 +1070,7 @@
       </location>
     </component>
   </type>
-  <type name="A21">
+  <type name="bank21">
     <component type="sixteenpack">
       <location x="1.12937389" y="-0.804864486" z="2.137524684">
         <rot axis-x="0" axis-y="1" axis-z="0" val="207.85">
@@ -1067,7 +1081,7 @@
       </location>
     </component>
   </type>
-  <type name="A22">
+  <type name="bank22">
     <component type="sixteenpack">
       <location x="0.765095564" y="-0.804864486" z="2.293278425">
         <rot axis-x="0" axis-y="1" axis-z="0" val="198.45">
@@ -1078,7 +1092,7 @@
       </location>
     </component>
   </type>
-  <type name="A23">
+  <type name="bank23">
     <component type="sixteenpack">
       <location x="0.545061359" y="-0.804864486" z="2.355293033">
         <rot axis-x="0" axis-y="1" axis-z="0" val="193.03">
@@ -1089,7 +1103,7 @@
       </location>
     </component>
   </type>
-  <type name="A24">
+  <type name="bank24">
     <component type="sixteenpack">
       <location x="0.320153274" y="-0.804864486" z="2.396246865">
         <rot axis-x="0" axis-y="1" axis-z="0" val="187.61">
@@ -1100,7 +1114,7 @@
       </location>
     </component>
   </type>
-  <type name="A25">
+  <type name="bank25">
     <component type="sixteenpack">
       <location x="0.092382414" y="-0.804864486" z="2.415773716">
         <rot axis-x="0" axis-y="1" axis-z="0" val="182.19">
@@ -1111,7 +1125,7 @@
       </location>
     </component>
   </type>
-  <type name="A26">
+  <type name="bank26">
     <component type="sixteenpack">
       <location x="-0.136214521" y="-0.804864486" z="2.413698979">
         <rot axis-x="0" axis-y="1" axis-z="0" val="176.77">
@@ -1122,7 +1136,7 @@
       </location>
     </component>
   </type>
-  <type name="A27">
+  <type name="bank27">
     <component type="sixteenpack">
       <location x="-0.46128828" y="-0.804864486" z="2.373122475">
         <rot axis-x="0" axis-y="1" axis-z="0" val="169">
@@ -1133,7 +1147,7 @@
       </location>
     </component>
   </type>
-  <type name="A28">
+  <type name="bank28">
     <component type="sixteenpack">
       <location x="-0.683381125" y="-0.804864486" z="2.318941008">
         <rot axis-x="0" axis-y="1" axis-z="0" val="163.58">
@@ -1144,7 +1158,7 @@
       </location>
     </component>
   </type>
-  <type name="A29">
+  <type name="bank29">
     <component type="sixteenpack">
       <location x="-0.899363249" y="-0.804864486" z="2.24402382">
         <rot axis-x="0" axis-y="1" axis-z="0" val="158.16">
@@ -1159,107 +1173,107 @@
     <location/>
   </component>
   <type name="B row">
-    <component type="B1">
+    <component type="bank30">
       <location/>
     </component>
-    <component type="B2">
+    <component type="bank31">
       <location/>
     </component>
-    <component type="B3">
+    <component type="bank32">
       <location/>
     </component>
-    <component type="B4">
+    <component type="bank33">
       <location/>
     </component>
-    <component type="B5">
+    <component type="bank34">
       <location/>
     </component>
-    <component type="B6">
+    <component type="bank35">
       <location/>
     </component>
-    <component type="B7">
+    <component type="bank36">
       <location/>
     </component>
-    <component type="B8">
+    <component type="bank37">
       <location/>
     </component>
-    <component type="B9">
+    <component type="bank38">
       <location/>
     </component>
-    <component type="B10">
+    <component type="bank39">
       <location/>
     </component>
-    <component type="B11">
+    <component type="bank40">
       <location/>
     </component>
-    <component type="B12">
+    <component type="bank41">
       <location/>
     </component>
-    <component type="B13">
+    <component type="bank42">
       <location/>
     </component>
-    <component type="B14">
+    <component type="bank43">
       <location/>
     </component>
-    <component type="B15">
+    <component type="bank44">
       <location/>
     </component>
-    <component type="B16">
+    <component type="bank45">
       <location/>
     </component>
-    <component type="B17">
+    <component type="bank46">
       <location/>
     </component>
-    <component type="B18">
+    <component type="bank47">
       <location/>
     </component>
-    <component type="B19">
+    <component type="bank48">
       <location/>
     </component>
-    <component type="B20">
+    <component type="bank49">
       <location/>
     </component>
-    <component type="B21">
+    <component type="bank50">
       <location/>
     </component>
-    <component type="B22">
+    <component type="bank51">
       <location/>
     </component>
-    <component type="B23">
+    <component type="bank52">
       <location/>
     </component>
-    <component type="B24">
+    <component type="bank53">
       <location/>
     </component>
-    <component type="B25">
+    <component type="bank54">
       <location/>
     </component>
-    <component type="B26">
+    <component type="bank55">
       <location/>
     </component>
-    <component type="B27">
+    <component type="bank56">
       <location/>
     </component>
-    <component type="B28">
+    <component type="bank57">
       <location/>
     </component>
-    <component type="B29">
+    <component type="bank58">
       <location/>
     </component>
-    <component type="B30">
+    <component type="bank59">
       <location/>
     </component>
-    <component type="B31">
+    <component type="bank60">
       <location/>
     </component>
-    <component type="B32">
+    <component type="bank61">
       <location/>
     </component>
-    <component type="B33">
+    <component type="bank62">
       <location/>
     </component>
   </type>
-  <type name="B1">
+  <type name="bank30">
     <component type="sixteenpack">
       <location x="1.304201117" y="0.082562778" z="-2.229192417">
         <rot axis-x="0" axis-y="1" axis-z="0" val="329.67">
@@ -1270,7 +1284,7 @@
       </location>
     </component>
   </type>
-  <type name="B2">
+  <type name="bank31">
     <component type="sixteenpack">
       <location x="1.49609828" y="0.082562778" z="-2.105214793">
         <rot axis-x="0" axis-y="1" axis-z="0" val="324.6">
@@ -1281,7 +1295,7 @@
       </location>
     </component>
   </type>
-  <type name="B3">
+  <type name="bank32">
     <component type="sixteenpack">
       <location x="1.676288396" y="0.082562778" z="-1.964763752">
         <rot axis-x="0" axis-y="1" axis-z="0" val="319.53">
@@ -1292,7 +1306,7 @@
       </location>
     </component>
   </type>
-  <type name="B4">
+  <type name="bank33">
     <component type="sixteenpack">
       <location x="1.843361467" y="0.082562778" z="-1.808938333">
         <rot axis-x="0" axis-y="1" axis-z="0" val="314.46">
@@ -1303,7 +1317,7 @@
       </location>
     </component>
   </type>
-  <type name="B5">
+  <type name="bank34">
     <component type="sixteenpack">
       <location x="1.996010138" y="0.082562778" z="-1.638957876">
         <rot axis-x="0" axis-y="1" axis-z="0" val="309.39">
@@ -1314,7 +1328,7 @@
       </location>
     </component>
   </type>
-  <type name="B6">
+  <type name="bank35">
     <component type="sixteenpack">
       <location x="2.133039925" y="0.082562778" z="-1.456152488">
         <rot axis-x="0" axis-y="1" axis-z="0" val="304.32">
@@ -1325,7 +1339,7 @@
       </location>
     </component>
   </type>
-  <type name="B7">
+  <type name="bank36">
     <component type="sixteenpack">
       <location x="2.253378563" y="0.082562778" z="-1.26195263">
         <rot axis-x="0" axis-y="1" axis-z="0" val="299.25">
@@ -1336,7 +1350,7 @@
       </location>
     </component>
   </type>
-  <type name="B8">
+  <type name="bank37">
     <component type="sixteenpack">
       <location x="2.368113691" y="0.082562778" z="-1.030668199">
         <rot axis-x="0" axis-y="1" axis-z="0" val="293.52">
@@ -1347,7 +1361,7 @@
       </location>
     </component>
   </type>
-  <type name="B9">
+  <type name="bank38">
     <component type="sixteenpack">
       <location x="2.449931376" y="0.082562778" z="-0.817358942">
         <rot axis-x="0" axis-y="1" axis-z="0" val="288.45">
@@ -1358,7 +1372,7 @@
       </location>
     </component>
   </type>
-  <type name="B10">
+  <type name="bank39">
     <component type="sixteenpack">
       <location x="2.51257822" y="0.082562778" z="-0.597653809">
         <rot axis-x="0" axis-y="1" axis-z="0" val="283.38">
@@ -1369,7 +1383,7 @@
       </location>
     </component>
   </type>
-  <type name="B11">
+  <type name="bank40">
     <component type="sixteenpack">
       <location x="2.555564008" y="0.082562778" z="-0.373272004">
         <rot axis-x="0" axis-y="1" axis-z="0" val="278.31">
@@ -1380,7 +1394,7 @@
       </location>
     </component>
   </type>
-  <type name="B12">
+  <type name="bank41">
     <component type="sixteenpack">
       <location x="2.578552374" y="0.082562778" z="-0.145969326">
         <rot axis-x="0" axis-y="1" axis-z="0" val="273.24">
@@ -1391,7 +1405,7 @@
       </location>
     </component>
   </type>
-  <type name="B13">
+  <type name="bank42">
     <component type="sixteenpack">
       <location x="2.581363432" y="0.082562778" z="0.08247557">
         <rot axis-x="0" axis-y="1" axis-z="0" val="268.17">
@@ -1402,7 +1416,7 @@
       </location>
     </component>
   </type>
-  <type name="B14">
+  <type name="bank43">
     <component type="sixteenpack">
       <location x="2.560231046" y="0.082562778" z="0.339788726">
         <rot axis-x="0" axis-y="1" axis-z="0" val="262.44">
@@ -1413,7 +1427,7 @@
       </location>
     </component>
   </type>
-  <type name="B15">
+  <type name="bank44">
     <component type="sixteenpack">
       <location x="2.520186008" y="0.082562778" z="0.564713974">
         <rot axis-x="0" axis-y="1" axis-z="0" val="257.37">
@@ -1424,7 +1438,7 @@
       </location>
     </component>
   </type>
-  <type name="B16">
+  <type name="bank45">
     <component type="sixteenpack">
       <location x="2.460420382" y="0.082562778" z="0.785220306">
         <rot axis-x="0" axis-y="1" axis-z="0" val="252.3">
@@ -1435,7 +1449,7 @@
       </location>
     </component>
   </type>
-  <type name="B17">
+  <type name="bank46">
     <component type="sixteenpack">
       <location x="2.381401839" y="0.082562778" z="0.999582248">
         <rot axis-x="0" axis-y="1" axis-z="0" val="247.23">
@@ -1446,7 +1460,7 @@
       </location>
     </component>
   </type>
-  <type name="B18">
+  <type name="bank47">
     <component type="sixteenpack">
       <location x="2.283748701" y="0.082562778" z="1.206122407">
         <rot axis-x="0" axis-y="1" axis-z="0" val="242.16">
@@ -1457,7 +1471,7 @@
       </location>
     </component>
   </type>
-  <type name="B19">
+  <type name="bank48">
     <component type="sixteenpack">
       <location x="2.168225109" y="0.082562778" z="1.403224595">
         <rot axis-x="0" axis-y="1" axis-z="0" val="237.09">
@@ -1468,7 +1482,7 @@
       </location>
     </component>
   </type>
-  <type name="B20">
+  <type name="bank49">
     <component type="sixteenpack">
       <location x="2.01729243" y="0.082562778" z="1.612690497">
         <rot axis-x="0" axis-y="1" axis-z="0" val="231.36">
@@ -1479,7 +1493,7 @@
       </location>
     </component>
   </type>
-  <type name="B21">
+  <type name="bank50">
     <component type="sixteenpack">
       <location x="1.866881812" y="0.082562778" z="1.7846545">
         <rot axis-x="0" axis-y="1" axis-z="0" val="226.29">
@@ -1490,7 +1504,7 @@
       </location>
     </component>
   </type>
-  <type name="B22">
+  <type name="bank51">
     <component type="sixteenpack">
       <location x="1.701862747" y="0.082562778" z="1.942653489">
         <rot axis-x="0" axis-y="1" axis-z="0" val="221.22">
@@ -1501,7 +1515,7 @@
       </location>
     </component>
   </type>
-  <type name="B23">
+  <type name="bank52">
     <component type="sixteenpack">
       <location x="1.523526516" y="0.082562778" z="2.085451113">
         <rot axis-x="0" axis-y="1" axis-z="0" val="216.15">
@@ -1512,7 +1526,7 @@
       </location>
     </component>
   </type>
-  <type name="B24">
+  <type name="bank53">
     <component type="sixteenpack">
       <location x="1.33326861" y="0.082562778" z="2.211929972">
         <rot axis-x="0" axis-y="1" axis-z="0" val="211.08">
@@ -1523,7 +1537,7 @@
       </location>
     </component>
   </type>
-  <type name="B25">
+  <type name="bank54">
     <component type="sixteenpack">
       <location x="1.132577808" y="0.082562778" z="2.321100363">
         <rot axis-x="0" axis-y="1" axis-z="0" val="206.01">
@@ -1534,7 +1548,7 @@
       </location>
     </component>
   </type>
-  <type name="B26">
+  <type name="bank55">
     <component type="sixteenpack">
       <location x="0.895178412" y="0.082562778" z="2.422580236">
         <rot axis-x="0" axis-y="1" axis-z="0" val="200.28">
@@ -1545,7 +1559,7 @@
       </location>
     </component>
   </type>
-  <type name="B27">
+  <type name="bank56">
     <component type="sixteenpack">
       <location x="0.677585904" y="0.082562778" z="2.492211213">
         <rot axis-x="0" axis-y="1" axis-z="0" val="195.21">
@@ -1556,7 +1570,7 @@
       </location>
     </component>
   </type>
-  <type name="B28">
+  <type name="bank57">
     <component type="sixteenpack">
       <location x="0.454691251" y="0.082562778" z="2.542340507">
         <rot axis-x="0" axis-y="1" axis-z="0" val="190.14">
@@ -1567,7 +1581,7 @@
       </location>
     </component>
   </type>
-  <type name="B29">
+  <type name="bank58">
     <component type="sixteenpack">
       <location x="0.228238615" y="0.082562778" z="2.572575854">
         <rot axis-x="0" axis-y="1" axis-z="0" val="185.07">
@@ -1578,7 +1592,7 @@
       </location>
     </component>
   </type>
-  <type name="B30">
+  <type name="bank59">
     <component type="sixteenpack">
       <location x="-0.228238615" y="0.082562778" z="2.572575854">
         <rot axis-x="0" axis-y="1" axis-z="0" val="174.93">
@@ -1589,7 +1603,7 @@
       </location>
     </component>
   </type>
-  <type name="B31">
+  <type name="bank60">
     <component type="sixteenpack">
       <location x="-0.483946097" y="0.082562778" z="2.536934284">
         <rot axis-x="0" axis-y="1" axis-z="0" val="169.2">
@@ -1600,7 +1614,7 @@
       </location>
     </component>
   </type>
-  <type name="B32">
+  <type name="bank61">
     <component type="sixteenpack">
       <location x="-0.706248527" y="0.082562778" z="2.484240811">
         <rot axis-x="0" axis-y="1" axis-z="0" val="164.13">
@@ -1611,7 +1625,7 @@
       </location>
     </component>
   </type>
-  <type name="B33">
+  <type name="bank62">
     <component type="sixteenpack">
       <location x="-0.923024525" y="0.082562778" z="2.412108023">
         <rot axis-x="0" axis-y="1" axis-z="0" val="159.06">
@@ -1626,95 +1640,95 @@
     <location/>
   </component>
   <type name="C row">
-    <component type="C1">
+    <component type="bank63">
       <location/>
     </component>
-    <component type="C2">
+    <component type="bank64">
       <location/>
     </component>
-    <component type="C3">
+    <component type="bank65">
       <location/>
     </component>
-    <component type="C4">
+    <component type="bank66">
       <location/>
     </component>
-    <component type="C5">
+    <component type="bank67">
       <location/>
     </component>
-    <component type="C6">
+    <component type="bank68">
       <location/>
     </component>
-    <component type="C7">
+    <component type="bank69">
       <location/>
     </component>
-    <component type="C8">
+    <component type="bank70">
       <location/>
     </component>
-    <component type="C9">
+    <component type="bank71">
       <location/>
     </component>
-    <component type="C10">
+    <component type="bank72">
       <location/>
     </component>
-    <component type="C11">
+    <component type="bank73">
       <location/>
     </component>
-    <component type="C12">
+    <component type="bank74">
       <location/>
     </component>
-    <component type="C13">
+    <component type="bank75">
       <location/>
     </component>
-    <component type="C14">
+    <component type="bank76">
       <location/>
     </component>
-    <component type="C15">
+    <component type="bank77">
       <location/>
     </component>
-    <component type="C16">
+    <component type="bank78">
       <location/>
     </component>
-    <component type="C17">
+    <component type="bank79">
       <location/>
     </component>
-    <component type="C18">
+    <component type="bank80">
       <location/>
     </component>
-    <component type="C19">
+    <component type="bank81">
       <location/>
     </component>
-    <component type="C20">
+    <component type="bank82">
       <location/>
     </component>
-    <component type="C21">
+    <component type="bank83">
       <location/>
     </component>
-    <component type="C22">
+    <component type="bank84">
       <location/>
     </component>
-    <component type="C23">
+    <component type="bank85">
       <location/>
     </component>
-    <component type="C24">
+    <component type="bank86">
       <location/>
     </component>
-    <component type="C25">
+    <component type="bank87">
       <location/>
     </component>
-    <component type="C26">
+    <component type="bank88">
       <location/>
     </component>
-    <component type="C27">
+    <component type="bank89">
       <location/>
     </component>
-    <component type="C28">
+    <component type="bank90">
       <location/>
     </component>
-    <component type="C29">
+    <component type="bank91">
       <location/>
     </component>
   </type>
-  <type name="C1">
+  <type name="bank63">
     <component type="sixteenpack">
       <location x="1.274473643" y="0.966788649" z="-2.054714734">
         <rot axis-x="0" axis-y="1" axis-z="0" val="328.19">
@@ -1725,7 +1739,7 @@
       </location>
     </component>
   </type>
-  <type name="C2">
+  <type name="bank64">
     <component type="sixteenpack">
       <location x="1.462855314" y="0.966788649" z="-1.925146757">
         <rot axis-x="0" axis-y="1" axis-z="0" val="322.77">
@@ -1736,7 +1750,7 @@
       </location>
     </component>
   </type>
-  <type name="C3">
+  <type name="bank65">
     <component type="sixteenpack">
       <location x="1.638156291" y="0.966788649" z="-1.778364325">
         <rot axis-x="0" axis-y="1" axis-z="0" val="317.35">
@@ -1747,7 +1761,7 @@
       </location>
     </component>
   </type>
-  <type name="C4">
+  <type name="bank66">
     <component type="sixteenpack">
       <location x="1.798809051" y="0.966788649" z="-1.615679952">
         <rot axis-x="0" axis-y="1" axis-z="0" val="311.93">
@@ -1758,7 +1772,7 @@
       </location>
     </component>
   </type>
-  <type name="C5">
+  <type name="bank67">
     <component type="sixteenpack">
       <location x="1.943377054" y="0.966788649" z="-1.438548342">
         <rot axis-x="0" axis-y="1" axis-z="0" val="306.51">
@@ -1769,7 +1783,7 @@
       </location>
     </component>
   </type>
-  <type name="C6">
+  <type name="bank68">
     <component type="sixteenpack">
       <location x="2.070567589" y="0.966788649" z="-1.248553389">
         <rot axis-x="0" axis-y="1" axis-z="0" val="301.09">
@@ -1780,7 +1794,7 @@
       </location>
     </component>
   </type>
-  <type name="C7">
+  <type name="bank69">
     <component type="sixteenpack">
       <location x="2.246685526" y="0.966788649" z="-0.893610572">
         <rot axis-x="0" axis-y="1" axis-z="0" val="291.69">
@@ -1791,7 +1805,7 @@
       </location>
     </component>
   </type>
-  <type name="C8">
+  <type name="bank70">
     <component type="sixteenpack">
       <location x="2.321047439" y="0.966788649" z="-0.677402754">
         <rot axis-x="0" axis-y="1" axis-z="0" val="286.27">
@@ -1802,7 +1816,7 @@
       </location>
     </component>
   </type>
-  <type name="C9">
+  <type name="bank71">
     <component type="sixteenpack">
       <location x="2.374654797" y="0.966788649" z="-0.455137674">
         <rot axis-x="0" axis-y="1" axis-z="0" val="280.85">
@@ -1813,7 +1827,7 @@
       </location>
     </component>
   </type>
-  <type name="C10">
+  <type name="bank72">
     <component type="sixteenpack">
       <location x="2.407028248" y="0.966788649" z="-0.228802802">
         <rot axis-x="0" axis-y="1" axis-z="0" val="275.43">
@@ -1824,7 +1838,7 @@
       </location>
     </component>
   </type>
-  <type name="C11">
+  <type name="bank73">
     <component type="sixteenpack">
       <location x="2.417878311" y="0.966788649" z="-0.000421999">
         <rot axis-x="0" axis-y="1" axis-z="0" val="270.01">
@@ -1835,7 +1849,7 @@
       </location>
     </component>
   </type>
-  <type name="C12">
+  <type name="bank74">
     <component type="sixteenpack">
       <location x="2.385480356" y="0.966788649" z="0.394485969">
         <rot axis-x="0" axis-y="1" axis-z="0" val="260.61">
@@ -1846,7 +1860,7 @@
       </location>
     </component>
   </type>
-  <type name="C13">
+  <type name="bank75">
     <component type="sixteenpack">
       <location x="2.337553504" y="0.966788649" z="0.618044757">
         <rot axis-x="0" axis-y="1" axis-z="0" val="255.19">
@@ -1857,7 +1871,7 @@
       </location>
     </component>
   </type>
-  <type name="C14">
+  <type name="bank76">
     <component type="sixteenpack">
       <location x="2.268724502" y="0.966788649" z="0.836077055">
         <rot axis-x="0" axis-y="1" axis-z="0" val="249.77">
@@ -1868,7 +1882,7 @@
       </location>
     </component>
   </type>
-  <type name="C15">
+  <type name="bank77">
     <component type="sixteenpack">
       <location x="2.17960881" y="0.966788649" z="1.046633242">
         <rot axis-x="0" axis-y="1" axis-z="0" val="244.35">
@@ -1879,7 +1893,7 @@
       </location>
     </component>
   </type>
-  <type name="C16">
+  <type name="bank78">
     <component type="sixteenpack">
       <location x="2.071003291" y="0.966788649" z="1.247830548">
         <rot axis-x="0" axis-y="1" axis-z="0" val="238.93">
@@ -1890,7 +1904,7 @@
       </location>
     </component>
   </type>
-  <type name="C17">
+  <type name="bank79">
     <component type="sixteenpack">
       <location x="1.839391068" y="0.966788649" z="1.569323487">
         <rot axis-x="0" axis-y="1" axis-z="0" val="229.53">
@@ -1901,7 +1915,7 @@
       </location>
     </component>
   </type>
-  <type name="C18">
+  <type name="bank80">
     <component type="sixteenpack">
       <location x="1.682935506" y="0.966788649" z="1.736048326">
         <rot axis-x="0" axis-y="1" axis-z="0" val="224.11">
@@ -1912,7 +1926,7 @@
       </location>
     </component>
   </type>
-  <type name="C19">
+  <type name="bank81">
     <component type="sixteenpack">
       <location x="1.511431317" y="0.966788649" z="1.887249608">
         <rot axis-x="0" axis-y="1" axis-z="0" val="218.69">
@@ -1923,7 +1937,7 @@
       </location>
     </component>
   </type>
-  <type name="C20">
+  <type name="bank82">
     <component type="sixteenpack">
       <location x="1.326412072" y="0.966788649" z="2.021575307">
         <rot axis-x="0" axis-y="1" axis-z="0" val="213.27">
@@ -1934,7 +1948,7 @@
       </location>
     </component>
   </type>
-  <type name="C21">
+  <type name="bank83">
     <component type="sixteenpack">
       <location x="1.129532193" y="0.966788649" z="2.137824299">
         <rot axis-x="0" axis-y="1" axis-z="0" val="207.85">
@@ -1945,7 +1959,7 @@
       </location>
     </component>
   </type>
-  <type name="C22">
+  <type name="bank84">
     <component type="sixteenpack">
       <location x="0.765202807" y="0.966788649" z="2.293599872">
         <rot axis-x="0" axis-y="1" axis-z="0" val="198.45">
@@ -1956,7 +1970,7 @@
       </location>
     </component>
   </type>
-  <type name="C23">
+  <type name="bank85">
     <component type="sixteenpack">
       <location x="0.54513776" y="0.966788649" z="2.355623172">
         <rot axis-x="0" axis-y="1" axis-z="0" val="193.03">
@@ -1967,7 +1981,7 @@
       </location>
     </component>
   </type>
-  <type name="C24">
+  <type name="bank86">
     <component type="sixteenpack">
       <location x="0.32019815" y="0.966788649" z="2.396582745">
         <rot axis-x="0" axis-y="1" axis-z="0" val="187.61">
@@ -1978,7 +1992,7 @@
       </location>
     </component>
   </type>
-  <type name="C25">
+  <type name="bank87">
     <component type="sixteenpack">
       <location x="0.092395363" y="0.966788649" z="2.416112333">
         <rot axis-x="0" axis-y="1" axis-z="0" val="182.19">
@@ -1989,7 +2003,7 @@
       </location>
     </component>
   </type>
-  <type name="C26">
+  <type name="bank88">
     <component type="sixteenpack">
       <location x="-0.136233614" y="0.966788649" z="2.414037305">
         <rot axis-x="0" axis-y="1" axis-z="0" val="176.77">
@@ -2000,7 +2014,7 @@
       </location>
     </component>
   </type>
-  <type name="C27">
+  <type name="bank89">
     <component type="sixteenpack">
       <location x="-0.461352939" y="0.966788649" z="2.373455113">
         <rot axis-x="0" axis-y="1" axis-z="0" val="169">
@@ -2011,7 +2025,7 @@
       </location>
     </component>
   </type>
-  <type name="C28">
+  <type name="bank90">
     <component type="sixteenpack">
       <location x="-0.683476914" y="0.966788649" z="2.319266051">
         <rot axis-x="0" axis-y="1" axis-z="0" val="163.58">
@@ -2022,7 +2036,7 @@
       </location>
     </component>
   </type>
-  <type name="C29">
+  <type name="bank91">
     <component type="sixteenpack">
       <location x="-0.899489312" y="0.966788649" z="2.244338363">
         <rot axis-x="0" axis-y="1" axis-z="0" val="158.16">
diff --git a/Code/Mantid/instrument/Facilities.xml b/Code/Mantid/instrument/Facilities.xml
index 7c55d1c2f73aeed1f6b7fa592bd58b97b708c455..b9559d1881ac6ae422c23016d07d84404c0578d1 100644
--- a/Code/Mantid/instrument/Facilities.xml
+++ b/Code/Mantid/instrument/Facilities.xml
@@ -5,7 +5,7 @@
   <archive>
     <archiveSearch plugin="ISISDataSearch" />
   </archive>
-  
+
   <computeResource name="SCARF@STFC" jobmanagertype="SCARFLSFJobManager">
     <baseURL>https://portal.scarf.rl.ac.uk</baseURL>
   </computeResource>
@@ -20,13 +20,13 @@
       <mac replacement="/archive"></mac>
     </filelocation>
   </catalog>
-  
-  <instrument name="ALF">  
+
+  <instrument name="ALF">
     <technique>Single Crystal Diffraction</technique>
     <livedata address="NDXALF:6789" />
   </instrument>
 
-  <instrument name="CRISP" shortname="CSP">  
+  <instrument name="CRISP" shortname="CSP">
     <technique>Reflectometry</technique>
     <livedata address="NDXCRISP:6789" />
   </instrument>
@@ -53,18 +53,23 @@
     <technique>TOF Direct Geometry Spectroscopy</technique>
     <livedata address="NDXHET:6789" />
   </instrument>
-  
-  <instrument name="HRPD" shortname="HRP">  
+
+  <instrument name="HRPD" shortname="HRP">
     <technique>Powder Diffraction</technique>
     <technique>Neutron Diffraction</technique>
     <livedata address="NDXHRPD:6789" />
   </instrument>
 
+  <instrument name="IMAT">
+    <technique>Neutron Imaging</technique>
+    <livedata address="NDXIMAT:6789" />
+  </instrument>
+
   <instrument name="INES" shortname="INS" beamline="N8">
     <technique>Neutron Diffraction</technique>
     <livedata address="NDXINES:6789" />
   </instrument>
-  
+
   <instrument name="INTER">
     <technique>Reflectometry</technique>
     <zeropadding size="8"/>
@@ -122,7 +127,7 @@
   </instrument>
 
   <instrument name="PEARL" shortname="PRL">
-    <zeropadding size="5" startRunNumber="1" prefix="PRL"/> 
+    <zeropadding size="5" startRunNumber="1" prefix="PRL"/>
     <zeropadding size="8" startRunNumber="71010" prefix="PEARL"/>
     <technique>Neutron Diffraction</technique>
     <livedata address="NDXPEARL:6789" />
@@ -138,9 +143,9 @@
     <technique>Neutron Diffraction with isotopic substitution</technique>
     <livedata address="NDXSANDALS:6789" />
   </instrument>
-  
+
   <instrument name="SURF" shortname="SRF">
-    <zeropadding size="5" startRunNumber="1" prefix="SRF"/> 
+    <zeropadding size="5" startRunNumber="1" prefix="SRF"/>
     <zeropadding size="6" startRunNumber="100000" prefix="SRF"/>
     <zeropadding size="8" startRunNumber="104604" prefix="SURF"/>
     <technique>Reflectometry</technique>
@@ -169,7 +174,7 @@
     <technique>TOF Indirect Geometry Diffraction</technique>
     <livedata address="NDXVESUVIO:6789" />
   </instrument>
-  
+
   <instrument name="LET">
     <zeropadding size="8"/>
     <technique>Neutron Spectroscopy</technique>
@@ -214,7 +219,7 @@
     <technique>Small Angle Scattering</technique>
     <livedata address="NDXSANS2D:6789" />
   </instrument>
-  
+
   <instrument name="SANS2D_EVENT" shortname="SANS2D">
     <zeropadding size="8"/>
     <technique>Small Angle Scattering</technique>
@@ -228,7 +233,7 @@
     <technique>Single Crystal Diffraction</technique>
     <livedata address="NDXWISH:6789" />
   </instrument>
-  
+
   <instrument name="HIFI">
     <zeropadding size="8"/>
     <technique>Muon level crossing resonance</technique>
@@ -236,93 +241,94 @@
     <technique>Radio frequency muSR</technique>
     <livedata address="NDXHIFI:6789" />
   </instrument>
-  
+
   <instrument name="MUSR">
     <zeropadding size="8"/>
     <technique>Muon spectroscopy</technique>
     <technique>Radio frequency muSR</technique>
     <livedata address="NDXMUSR:6789" />
   </instrument>
-  
+
   <instrument name="MUT">
     <zeropadding size="8"/>
     <technique>Muon spectroscopy</technique>
     <technique>Radio frequency muSR</technique>
-  </instrument>  
-  
+  </instrument>
+
   <instrument name="EMU">
     <zeropadding size="8"/>
     <technique>Muon spectroscopy</technique>
     <technique>Radio frequency muSR</technique>
     <livedata address="NDXEMU:6789" />
-  </instrument>  
- 
+  </instrument>
+
   <instrument name="ARGUS">
-    <zeropadding size="7"/>
+    <zeropadding size="7" startRunNumber="1"/>
+    <zeropadding size="8" startRunNumber="57942"/>
     <technique>Muon spectroscopy</technique>
     <technique>Radio frequency muSR</technique>
     <livedata address="NDXARGUS:6789" />
-  </instrument> 
-  
+  </instrument>
+
   <instrument name="CHRONUS">
-    <zeropadding size="7"/>
+    <zeropadding size="8"/>
     <technique>Muon spectroscopy</technique>
     <technique>Radio frequency muSR</technique>
     <livedata address="NDXCHRONUS:6789" />
-  </instrument>  
-  
+  </instrument>
+
   <livedata listener="ISISHistoDataListener"/>
 
 </facility>
 
 <facility name="HFIR" FileExtensions=".nxs,.dat,.xml">
-   
-   <instrument name="HB1"> 
+
+   <instrument name="HB1">
       <technique>Triple Axis Spectroscopy</technique>
-   </instrument> 
-   
-   <instrument name="HB1A"> 
+   </instrument>
+
+   <instrument name="HB1A">
       <technique>Triple Axis Spectroscopy</technique>
-   </instrument> 
-   
-   <instrument name="HB2A"> 
+   </instrument>
+
+   <instrument name="HB2A">
       <technique>technique</technique>
-   </instrument> 
-   
-   <instrument name="HB2B"> 
+   </instrument>
+
+   <instrument name="HB2B">
       <technique>technique</technique>
-   </instrument> 
-   
-   <instrument name="WAND"> 
+   </instrument>
+
+   <instrument name="WAND">
       <technique>technique</technique>
-   </instrument> 
-   
-   <instrument name="HB2D"> 
+   </instrument>
+
+   <instrument name="HB2D">
       <technique>technique</technique>
-   </instrument> 
-   
-   <instrument name="HB3"> 
+   </instrument>
+
+   <instrument name="HB3">
       <technique>Triple Axis Spectroscopy</technique>
-   </instrument> 
-   
-   <instrument name="HB3A"> 
+   </instrument>
+
+   <instrument name="HB3A">
       <technique>technique</technique>
-   </instrument> 
-   
-   
-   <instrument name="GPSANS"> 
+   </instrument>
+
+
+   <instrument name="GPSANS">
       <technique>Small Angle Scattering</technique>
-   </instrument> 
-   
-   <instrument name="HIRESSANS"> 
+   </instrument>
+
+   <instrument name="HIRESSANS">
       <technique>Small Angle Scattering</technique>
-   </instrument> 
-   
-   <instrument name="BIOSANS"> 
+   </instrument>
+
+   <instrument name="BIOSANS">
       <technique>Small Angle Scattering</technique>
-   </instrument> 
-   
-</facility> 
+   </instrument>
+
+</facility>
 
 <facility name="SNS" delimiter="_" FileExtensions=".nxs.h5,_event.nxs,.nxs,.dat,_runinfo.xml,_histo.nxs">
 
@@ -344,86 +350,86 @@
        <mac replacement=""></mac>
      </filelocation>
    </catalog>
-  
-   <instrument name="DAS"> 
+
+   <instrument name="DAS">
       <technique>technique</technique>
-   </instrument> 
-   
-   <instrument name="TOF-USANS" beamline="1A"> 
+   </instrument>
+
+   <instrument name="TOF-USANS" beamline="1A">
       <technique>Small Angle Scattering</technique>
-   </instrument> 
-   
+   </instrument>
+
    <instrument name="NOMAD" shortname="NOM" beamline="1B">
    	<technique>Neutron Diffraction</technique>
    	<technique>Neutron Amorphous</technique>
    </instrument>
-   
-   <instrument name="BASIS" shortname="BSS" beamline="2"> 
+
+   <instrument name="BASIS" shortname="BSS" beamline="2">
     <technique>Neutron Spectroscopy</technique>
     <technique>TOF Indirect Geometry Spectroscopy</technique>
     <technique>Neutron Diffraction</technique>
-   </instrument> 
-   
-   <instrument name="SNAP" beamline="3">  
+   </instrument>
+
+   <instrument name="SNAP" beamline="3">
 	<technique>Neutron Diffraction</technique>
-   </instrument> 
-   
-   <instrument name="REF_M" beamline="4A"> 
+   </instrument>
+
+   <instrument name="REF_M" beamline="4A">
       <technique>Reflectometry</technique>
-   </instrument> 
-   
-   <instrument name="REF_L" beamline="4B"> 
+   </instrument>
+
+   <instrument name="REF_L" beamline="4B">
       <technique>Reflectometry</technique>
-   </instrument> 
-   
-   <instrument name="CNCS" beamline="5"> 
+   </instrument>
+
+   <instrument name="CNCS" beamline="5">
     <technique>Neutron Spectroscopy</technique>
     <technique>TOF Direct Geometry Spectroscopy</technique>
     <technique>Neutron Diffraction</technique>
-   </instrument> 
-   
-   <instrument name="EQ-SANS" shortname="EQSANS" beamline="6"> 
+   </instrument>
+
+   <instrument name="EQ-SANS" shortname="EQSANS" beamline="6">
       <technique>Small Angle Scattering</technique>
-   </instrument> 
-   
-   <instrument name="USANS" shortname="USANS" beamline="1A"> 
+   </instrument>
+
+   <instrument name="USANS" shortname="USANS" beamline="1A">
       <technique>Small Angle Scattering</technique>
       <livedata address="usans-daq1.sns.gov:31415" />
-   </instrument> 
-   
-   <instrument name="VULCAN" beamline="7"> 
+   </instrument>
+
+   <instrument name="VULCAN" beamline="7">
 	<technique>Neutron Diffraction</technique>
-   </instrument> 
+   </instrument>
 
-   <instrument name="CORELLI" beamline="9"> 
+   <instrument name="CORELLI" beamline="9">
 	<technique>Neutron Diffraction</technique>
 	<technique>Diffuse Scattering</technique>
 	<livedata address="corelli-daq1.sns.gov:31415" />
-   </instrument> 
-      
-   <instrument name="POWGEN" shortname="PG3" beamline="11A"> 
+   </instrument>
+
+   <instrument name="POWGEN" shortname="PG3" beamline="11A">
 	<technique>Neutron Diffraction</technique>
-   </instrument> 
-   
-   <instrument name="MANDI" beamline="11B"> 
+   </instrument>
+
+   <instrument name="MANDI" beamline="11B">
 	<technique>Neutron Diffraction</technique>
 	<technique>Single Crystal Diffraction</technique>
 	<technique>Protein Crystallography</technique>
-   </instrument> 
-   
-   <instrument name="TOPAZ" beamline="12"> 
+   </instrument>
+
+   <instrument name="TOPAZ" beamline="12">
 	<technique>Neutron Diffraction</technique>
     <technique>Single Crystal Diffraction</technique>
     <livedata listener="TOPAZLiveEventDataListener" address="128.219.164.132:9000" />
     <!-- Act like we're ISawEV talking to event_catcher -->
-   </instrument> 
-  
-  <instrument name="HYSPEC" shortname="HYS" beamline="14B"> 
+   </instrument>
+
+  <instrument name="HYSPEC" shortname="HYS" beamline="14B">
     <technique>Neutron Spectroscopy</technique>
     <technique>TOF Direct Geometry Spectroscopy</technique>
-    <livedata address="hyspec-sms1.sns.gov:31415" />
-  </instrument> 
-  
+    <livedata address="bl14b-daq1.sns.gov:31415" />
+  </instrument>
+
   <instrument name="VISION" shortname="VIS" beamline="16B">
     <technique>Neutron Spectroscopy</technique>
     <technique>TOF Indirect Geometry Spectroscopy</technique>
@@ -431,57 +437,57 @@
     <livedata address="vision-daq1.sns.gov:31415" />
   </instrument>
 
-   <instrument name="SEQUOIA" shortname="SEQ" beamline="17"> 
+   <instrument name="SEQUOIA" shortname="SEQ" beamline="17">
     <technique>Neutron Spectroscopy</technique>
     <technique>TOF Direct Geometry Spectroscopy</technique>
     <technique>Neutron Diffraction</technique>
     <livedata address="sequoia-sms.sns.gov:31415" />
-   </instrument> 
-   
-   <instrument name="ARCS" beamline="18"> 
+   </instrument>
+
+   <instrument name="ARCS" beamline="18">
     <technique>Neutron Spectroscopy</technique>
     <technique>TOF Direct Geometry Spectroscopy</technique>
     <technique>Neutron Diffraction</technique>
-   </instrument> 
-   
-   <instrument name="VENUS"> 
+   </instrument>
+
+   <instrument name="VENUS">
       <technique>Imaging</technique>
       <technique>Tomography</technique>
-   </instrument> 
-   
+   </instrument>
+
    <livedata listener="SNSLiveEventDataListener"/>
 
 </facility>
 
 <facility name="NCNR" FileExtensions=".dat,.xml">
-   <instrument name="NGSANS"> 
+   <instrument name="NGSANS">
       <technique>Small Angle Scattering</technique>
-   </instrument> 
+   </instrument>
 </facility>
 
 <facility name="LENS" FileExtensions=".nxs,.dat,.xml">
-   <instrument name="SANS"> 
+   <instrument name="SANS">
       <technique>Small Angle Scattering</technique>
-   </instrument> 
+   </instrument>
 
 </facility>
 
 <facility name="ILL" zeropadding="6" FileExtensions=".nxs,.hdf,.inx,.asc">
 
   <instrument name="IN4">
-    <technique>Neutron Spectroscopy</technique> 
+    <technique>Neutron Spectroscopy</technique>
     <technique>Reactor Direct Geometry Spectroscopy</technique>
     <technique>Disk chopper time-of-flight spectrometer IN5</technique>
   </instrument>
 
   <instrument name="IN5">
-    <technique>Neutron Spectroscopy</technique> 
+    <technique>Neutron Spectroscopy</technique>
     <technique>Reactor Direct Geometry Spectroscopy</technique>
     <technique>Disk chopper time-of-flight spectrometer IN5</technique>
   </instrument>
 
   <instrument name="IN6">
-    <technique>Neutron Spectroscopy</technique> 
+    <technique>Neutron Spectroscopy</technique>
     <technique>Reactor Direct Geometry Spectroscopy</technique>
     <technique>Cold neutron time-focussing time-of-flight spectrometer</technique>
   </instrument>
@@ -505,18 +511,18 @@
     <technique>Neutron Spectroscopy</technique>
     <technique>Reactor Indirect Geometry Spectroscopy</technique>
   </instrument>
-    
+
   <instrument name="D33">
-    <technique>SANS</technique> 
+    <technique>SANS</technique>
   </instrument>
-  
+
   <instrument name="D2B">
-    <technique>Powder diffraction</technique> 
+    <technique>Powder diffraction</technique>
   </instrument>
-  
+
 
   <instrument name="D17">
-    <technique>Reflectometry</technique> 
+    <technique>Reflectometry</technique>
   </instrument>
 
 </facility>
@@ -546,7 +552,7 @@
   <instrument name="SANS-I">
     <technique>Small Angle Scattering</technique>
   </instrument>
-  
+
   <instrument name="SANS-II">
     <technique>Small Angle Scattering</technique>
   </instrument>
@@ -566,7 +572,7 @@
   <instrument name="FOCUS">
     <technique>Neutron Spectroscopy</technique>
     <technique>TOF Direct Geometry Spectroscopy</technique>
-  </instrument> 
+  </instrument>
 
   <instrument name="Rita-II">
     <technique>Triple Axis Spectroscopy</technique>
@@ -606,13 +612,13 @@
     <zeropadding size="3"/>
     <technique>Muon spectroscopy</technique>
   </instrument>
-  
+
 </facility>
 
 <!--  Reactor Orphee (France) -->
 <facility name="LLB" FileExtensions=".nxs,.hdf">
   <instrument name="MIBEMOL">
-    <technique>Neutron Spectroscopy</technique> 
+    <technique>Neutron Spectroscopy</technique>
     <technique>Reactor Direct Geometry Spectroscopy</technique>
   </instrument>
 </facility>
@@ -620,7 +626,7 @@
 <!--  Facility MLZ (FRMII) (Germany) -->
 <facility name="MLZ" FileExtensions=".nxs,.d_dat">
   <instrument name="DNS">
-    <technique>Neutron Spectroscopy</technique> 
+    <technique>Neutron Spectroscopy</technique>
     <technique>Reactor Direct Geometry Spectroscopy</technique>
     <technique>TOF Direct Geometry Spectroscopy</technique>
     <technique>Neutron Diffraction</technique>
@@ -630,7 +636,7 @@
   <instrument name="TOFTOF">
     <technique>Neutron Spectroscopy</technique>
     <technique>Reactor Direct Geometry Spectroscopy</technique>
-    <technique>Time-of-flight Spectroscopy</technique>
+    <technique>TOF Direct Geometry Spectroscopy</technique>
   </instrument>
 </facility>
 
@@ -645,7 +651,7 @@
     <technique>Test Listener</technique>
     <livedata address="localhost:59876" listener="ISISLiveEventDataListener" />
   </instrument>
-  
+
   <instrument name="ADARA_FileReader">
     <technique>Test Listener</technique>
     <livedata listener="FileEventDataListener" address="127.0.0.1:0" />
diff --git a/Code/Mantid/instrument/IMAT_Definition.xml b/Code/Mantid/instrument/IMAT_Definition.xml
index c150ddcb1a8af69c05109da7924793441492e1b3..eac24ea88fbac2f28315f7ac6f3cfb31ff02de68 100644
--- a/Code/Mantid/instrument/IMAT_Definition.xml
+++ b/Code/Mantid/instrument/IMAT_Definition.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!-- For help on the notation used to specify an Instrument Definition File
 see http://www.mantidproject.org/IDF -->
 <instrument xmlns="http://www.mantidproject.org/IDF/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 Schema/IDFSchema.xsd"
 name="IMAT" valid-from ="1900-01-31 23:59:59"
-valid-to ="2014-08-12 23:59:59"
-last-modified="2014-08-12 00:00:00">
+valid-to ="2015-07-31 23:59:59"
+last-modified="2015-07-31 12:49:00">
   <defaults>
     <length unit="meter"/>
     <angle unit="degree"/>
     <reference-frame>
       <!-- The z-axis is set parallel to and in the direction of the beam. the
-y-axis points up and the coordinate system is right handed. -->
+           y-axis points up and the coordinate system is right handed. -->
       <along-beam axis="z"/>
       <pointing-up axis="y"/>
       <handedness val="right"/>
@@ -18,36 +18,28 @@ y-axis points up and the coordinate system is right handed. -->
     <default-view axis-view="z"/>
   </defaults>
   <!-- BRIEF DESCRIPTION OF IMAT INSTRUMENT:
-
+       IMAT (Imaging and Materials Science & Engineering)
   -->
+
   <!-- LIST OF PHYSICAL COMPONENTS (which the instrument consists of) -->
+
   <!-- source and sample-position components -->
+
   <component type="source">
     <location />
   </component>
   <type name="source" is="Source" />
+
   <component type="some-sample-holder">
     <location z="19.281"/>
   </component>
   <type name="some-sample-holder" is="SamplePos" />
+
   <!-- detector components (including monitors) -->
   <component type="monitors" idlist="monitors">
     <location />
   </component>
-  <type name="monitors">
-    <component type="monitor-tbd">
-      <location z="7.217" name="monitor1"/>
-      <location z="17.937" name="monitor2"/>
-    </component>   
-  </type>
-  <type name="monitor-tbd" is="monitor">
-    <cylinder id="some-shape">
-      <centre-of-bottom-base r="0.0" t="0.0" p="0.0" />
-      <axis x="0.0" y="0.0" z="1.0" />
-      <radius val="0.01" />
-      <height val="0.03" />
-    </cylinder>
-  </type>
+
   <component type="detector-bank" idstart="0" idfillbyfirst="y" idstep="1000" idstepbyrow="1">
     <location z="23.281" x="-0.7" name="detector"/>
   </component>
@@ -64,8 +56,49 @@ y-axis points up and the coordinate system is right handed. -->
     </cuboid>
     <algebra val="shape" />
   </type>
+
+  <!-- DEFINITION OF TYPES -->
+
+  <type name="monitors">
+    <component type="monitor-cylinder">
+      <!-- the original theoretical positions of the 4 monitors to the center,
+           in mm were:
+           M1: 11653.4, M2: 19814.4, M3: 20894.4, M4: 46177.4
+           which were " taken the CAD dimensions from a datum plane running
+           through the EPB axis – datum 4"
+      -->
+      <location z="11.6534" name="monitor1"/>
+      <location z="19.8144" name="monitor2"/>
+      <location z="20.8944" name="monitor3"/>
+      <location z="46.1774" name="monitor4"/>
+    </component>
+  </type>
+
+  <!-- shape for monitors, borrowed from GEM -->
+  <type name="monitor-cylinder" is="monitor">
+    <properties>
+      Copied from monitor.dat:
+
+      name:: box
+      rank:: 2
+      dimensions:: 2 4
+      values:: -45.00  -2.00
+      45.00  -2.00
+      135.00  -2.00
+      225.00  -2.00
+    </properties>
+
+    <cylinder id="cylinder-shape">
+      <centre-of-bottom-base r="0.0" t="0.0" p="0.0" />
+      <axis x="0.0" y="0.0" z="1.0" />
+      <radius val="0.01" />
+      <height val="0.03" />
+    </cylinder>
+  </type>
+
   <!-- DETECTOR and MONITOR ID LISTS -->
   <idlist idname="monitors">
-    <id start="1" end="2" />
+    <id start="1" end="4" />
   </idlist>
-</instrument>
\ No newline at end of file
+
+</instrument>
diff --git a/Code/Mantid/instrument/LET_Parameters_dr2to12.xml b/Code/Mantid/instrument/LET_Parameters_dr2to12.xml
index 0404c64a28b719a95c9017711d82d3399a5573ba..b62d6e084fc26095a97c8cc882e57fa2742b4675 100644
--- a/Code/Mantid/instrument/LET_Parameters_dr2to12.xml
+++ b/Code/Mantid/instrument/LET_Parameters_dr2to12.xml
@@ -84,7 +84,7 @@
 </parameter>
 
 <!-- Relative energy range (wrt. to the incident energy) in which monitor 2 signal is present and the integration to 
-     caluclate monitor-2 current occurs   -->
+     calculate monitor-2 current occurs   -->
 <parameter name="mon2_norm_energy_range" type = "string">
     <value val="0.8,1.2"/>
 </parameter>
@@ -92,43 +92,57 @@
 <!-- Usually one wants to avoid loading monitors together with data except in special cases. One of this cases is 
      MARI which monitors numbers are in the beginning of the spectra. If one loads them separately, 
      spectra numbers change and ISIS hard masks (msk) prepared for workspace with monitors become invalid. 
-     This parameter is actual until Mantid Masking change
+     This parameter is actual until Mantid Masking change.
   -->
 <parameter name="load_monitors_with_workspace"  type="bool">
 <value val="False"/>
 </parameter>
 
-
-<!-- First spectra number (monitor number) to use when measuring incident energy
-    Should be spectra with well defined energy peak -->
-<parameter name="ei-mon1-spec"  type="int">
+<!-- -->
+<parameter name="ei-mon1-spec"  type="string">
   <value val="90118"/>
-</parameter>
-<!-- Second spectra number (monitor number) to use when measuring incident energy
-     Should be spectra with well defined energy peak -->
-<parameter name="ei-mon2-spec"  type="int">
-  <value val="13698"/>
-</parameter>
-
+  <description is="First spectra number (monitor's spectra number) to use when measuring incident energy,
+     or comma separated list of such numbers.
+     Should be spectra with well defined energy peak or monitor's spectra.
+     If list of numbers is provided, the final spectrum is the sum of the spectra with the numbers provided.
+     It is important to have the detectors for these spectra to be located at the same distance from the source,
+     as the position of the combined detector will be defined by the position of the first spectra's detector."/>
+</parameter>
+<!-- -->
+<parameter name="ei-mon2-spec"  type="string">
+  <value val="13696,13693,13694,13695,13697,13698,13699,13948,13949,13950,13951,13952,13953,13954,13955,14207,14208,14209,14210"/>
+  <description is="Second spectra number (monitor's spectra number) to use when measuring incident energy,
+     or comma separated list of such numbers.
+     Should be spectra with well defined energy peak or monitor's spectra.
+     If list of numbers is provided, the final spectrum is the sum of the spectra with the numbers provided.
+     It is important to have the detectors for these spectra to be located at the same distance from the source,
+     as the position of the combined detector will be defined by the position of the first spectra's detector."/>
+</parameter>
+<!-- -->
 <parameter name="ei_mon_spectra"  type="string">
   <value val="ei-mon1-spec:ei-mon2-spec"/>
+  <description is="List of spectra, used to calculate incident energy of beam in inelastic experiments by GetEi algorithm.
+  It is complex property, dependent on two other properties, namely ei-mon1-spec and ei-mon2-spec, which define spectrum or
+  spectra lists for each of two monitors, used in GetEi calculations"/>
 </parameter>
- 
-<!--if you use some detectors as monitors and work in event mode, one needs to specify the comma separated list of these detectors here 
-    to copy detectors spectra to monitors spectra collected in histogram mode. If no such monitors are used "None" 
-    (with brackets) has to be specified as the value. This is also necessary in Histogram mode if you want to use detectors as monitors and 
-    load_monitors_with_workspace is set to False (or monitors are measured with different time channels)
--->
+
+<!-- -->
 <parameter name="spectra_to_monitors_list"  type="string">
-  <value val="13698"/>
+  <value val="13696,13693,13694,13695,13697,13698,13699,13948,13949,13950,13951,13952,13953,13954,13955,14207,14208,14209,14210"/>
+  <description is="If you use some detectors as monitors and work in event mode,
+    one needs to specify the comma separated list of these detectors as the value of this property
+    to copy detectors spectra to monitors spectra collected in histogram mode.
+    If no such monitors are used, None (or text string 'None' in IDF) has to be specified as the value.
+    This is also necessary in Histogram mode if you want to use some detectors as monitors and 
+    load_monitors_with_workspace is set to False necessary if monitors are measured with different time channels"/>
 </parameter>
 
-
-<!-- List of two spectra corresponding to the detectors which are closest and furtherest from the sample.
-     These detectors locations are used to identify TOF range, contributing into each energy range 
-     in multirep mode  -->
+<!-- -->
 <parameter name="multirep_tof_specta_list"  type="string">
     <value val="1,128"/>
+    <description is="List of two spectra corresponding to the detectors which are closest and furthest from the sample.
+    These detectors locations are used to identify TOF range, contributing into each energy range
+    in multirep mode"/>
 </parameter>
 
 
@@ -327,7 +341,7 @@
 </parameter>
 <!-- Vanaduim mass used in absolute units normalization and is usually instrument specific (changes rarely) -->
 <parameter name="vanadium-mass">
-  <value val="20.79"/>
+  <value val="8.47"/>
 </parameter>
 <!-- if this value set to true, modo-vanadium run is not analyzed and masks obtained for arbitrary units are used for mono-vanadium -->
 <parameter name="use_sam_msk_on_monovan" type = "bool">
@@ -414,6 +428,7 @@
        fix_ei=fixei;
        sum_runs=sum;
        wb_integr_range=detector_van_range;
+       motor_log_names = motor_name;       
        van_mass=vanadium-mass;
        check_background = background;
        mon1_norm_spec=norm-mon1-spec;
diff --git a/Code/Mantid/instrument/LET_Parameters_dr3to11.xml b/Code/Mantid/instrument/LET_Parameters_dr3to11.xml
index 4a3eb7968118cb80ff6bcb7f764f9aae78ad4121..8a47df421017227fcb81f73338436cffd55637c6 100644
--- a/Code/Mantid/instrument/LET_Parameters_dr3to11.xml
+++ b/Code/Mantid/instrument/LET_Parameters_dr3to11.xml
@@ -84,7 +84,7 @@
 </parameter>
 
 <!-- Relative energy range (wrt. to the incident energy) in which monitor 2 signal is present and the integration to 
-     caluclate monitor-2 current occurs   -->
+     calculate monitor-2 current occurs   -->
 <parameter name="mon2_norm_energy_range" type = "string">
     <value val="0.8,1.2"/>
 </parameter>
@@ -92,43 +92,57 @@
 <!-- Usually one wants to avoid loading monitors together with data except in special cases. One of this cases is 
      MARI which monitors numbers are in the beginning of the spectra. If one loads them separately, 
      spectra numbers change and ISIS hard masks (msk) prepared for workspace with monitors become invalid. 
-     This parameter is actual until Mantid Masking change
+     This parameter is actual until Mantid Masking change.
   -->
 <parameter name="load_monitors_with_workspace"  type="bool">
 <value val="False"/>
 </parameter>
 
-
-<!-- First spectra number (monitor number) to use when measuring incident energy
-    Should be spectra with well defined energy peak -->
-<parameter name="ei-mon1-spec"  type="int">
+<!-- -->
+<parameter name="ei-mon1-spec"  type="string">
   <value val="73734"/>
-</parameter>
-<!-- Second spectra number (monitor number) to use when measuring incident energy
-     Should be spectra with well defined energy peak -->
-<parameter name="ei-mon2-spec"  type="int">
+  <description is="First spectra number (monitor's spectra number) to use when measuring incident energy,
+     or comma separated list of such numbers.
+     Should be spectra with well defined energy peak or monitor's spectra.
+     If list of numbers is provided, the final spectrum is the sum of the spectra with the numbers provided.
+     It is important to have the detectors for these spectra to be located at the same distance from the source,
+     as the position of the combined detector will be defined by the position of the first spectra's detector."/>
+</parameter>
+<!-- -->
+<parameter name="ei-mon2-spec"  type="string">
   <value val="5506"/>
-</parameter>
-
+  <description is="Second spectra number (monitor's spectra number) to use when measuring incident energy,
+     or comma separated list of such numbers.
+     Should be spectra with well defined energy peak or monitor's spectra.
+     If list of numbers is provided, the final spectrum is the sum of the spectra with the numbers provided.
+     It is important to have the detectors for these spectra to be located at the same distance from the source,
+     as the position of the combined detector will be defined by the position of the first spectra's detector."/>
+</parameter>
+<!-- -->
 <parameter name="ei_mon_spectra"  type="string">
   <value val="ei-mon1-spec:ei-mon2-spec"/>
+  <description is="List of spectra, used to calculate incident energy of beam in inelastic experiments by GetEi algorithm.
+  It is complex property, dependent on two other properties, namely ei-mon1-spec and ei-mon2-spec, which define spectrum or
+  spectra lists for each of two monitors, used in GetEi calculations"/>
 </parameter>
- 
-<!--if you use some detectors as monitors and work in event mode, one needs to specify the comma separated list of these detectors here 
-    to copy detectors spectra to monitors spectra collected in histogram mode. If no such monitors are used "None" 
-    (with brackets) has to be specified as the value. This is also necessary in Histogram mode if you want to use detectors as monitors and 
-    load_monitors_with_workspace is set to False (or monitors are measured with different time channels)
--->
+
+<!-- -->
 <parameter name="spectra_to_monitors_list"  type="string">
   <value val="5506"/>
+  <description is="If you use some detectors as monitors and work in event mode,
+    one needs to specify the comma separated list of these detectors as the values of this property
+    to copy detectors spectra to monitors spectra collected in histogram mode.
+    If no such monitors are used, None (or text string 'None' in IDF) has to be specified as the value.
+    This is also necessary in Histogram mode if you want to use some detectors as monitors and 
+    load_monitors_with_workspace is set to False necessary if monitors are measured with different time channels"/>
 </parameter>
 
-
-<!-- List of two spectra corresponding to the detectors which are closest and furtherest from the sample.
-     These detectors locations are used to identify TOF range, contributing into each energy range 
-     in multirep mode  -->
+<!-- -->
 <parameter name="multirep_tof_specta_list"  type="string">
     <value val="12416,21761"/>
+    <description is="List of two spectra corresponding to the detectors which are closest and furthest from the sample.
+    These detectors locations are used to identify TOF range, contributing into each energy range
+     in multirep mode"/>
 </parameter>
 
 
diff --git a/Code/Mantid/instrument/MERLIN_Parameters_after2013_4.xml b/Code/Mantid/instrument/MERLIN_Parameters_after2013_4.xml
index 173e7d7a37e5777c09f95288843dd2037f59d720..253524e465a608aa0068c78e0e858b8f192a7585 100644
--- a/Code/Mantid/instrument/MERLIN_Parameters_after2013_4.xml
+++ b/Code/Mantid/instrument/MERLIN_Parameters_after2013_4.xml
@@ -20,7 +20,7 @@
    <value val="one2one_125.map"/>
 </parameter>
 
-<!-- Prefered extension of the data files obtained from DAE, e.g. what to prefer if two 
+<!-- Preferred extension of the data files obtained from DAE, e.g. what to prefer if two 
      files with the same name and different extension are found
  -->
 <parameter name="data_file_ext" type="string">
@@ -81,7 +81,7 @@
     <value val="69634"/>
 </parameter>
 <!-- Relative energy range (wrt. to the incident energy) in which monitor 2 signal is present and the integration to 
-     caluclate monitor-2 current occurs   -->
+     calculate monitor-2 current occurs   -->
 <parameter name="mon2_norm_energy_range" type = "string">
     <value val="0.8,1.2"/>
 </parameter>
@@ -89,41 +89,57 @@
 <!-- Usually one wants to avoid loading monitors together with data except in special cases. One of this cases is 
      MARI which monitors numbers are in the beginning of the spectra. If one loads them separately, 
      spectra numbers change and ISIS hard masks (msk) prepared for workspace with monitors become invalid. 
-     This parameter is actual until Mantid Masking change
+     This parameter is actual until Mantid Masking change.
   -->
 <parameter name="load_monitors_with_workspace"  type="bool">
 <value val="False"/>
 </parameter>
 
-
-<!-- First spectra number (monitor number) to use when measuring incident energy
-    Should be spectra with well defined energy peak -->
-<parameter name="ei-mon1-spec"  type="int">
-  <value val="69634"/>
-</parameter>
-<!-- Second spectra number (monitor number) to use when measuring incident energy
-     Should be spectra with well defined energy peak -->
-<parameter name="ei-mon2-spec"  type="int">
-  <value val="69638"/>
-</parameter>
+<!-- -->
+<parameter name="ei-mon1-spec"  type="string">
+  <value val="69634,69635,69636,69637"/>
+  <description is="First spectra number (monitor's spectra number) to use when measuring incident energy,
+     or comma separated list of such numbers.
+     Should be spectra with well defined energy peak or monitor's spectra.
+     If list of numbers is provided, the final spectrum is the sum of the spectra with the numbers provided.
+     It is important to have the detectors for these spectra to be located at the same distance from the source,
+     as the position of the combined detector will be defined by the position of the first spectra's detector."/>
+</parameter>
+<!-- -->
+<parameter name="ei-mon2-spec"  type="string">
+  <value val="69638,69639,69640,69641"/>
+  <description is="Second spectra number (monitor's spectra number) to use when measuring incident energy,
+     or comma separated list of such numbers.
+     Should be spectra with well defined energy peak or monitor's spectra.
+     If list of numbers is provided, the final spectrum is the sum of the spectra with the numbers provided.
+     It is important to have the detectors for these spectra to be located at the same distance from the source,
+     as the position of the combined detector will be defined by the position of the first spectra's detector."/>
+</parameter>
+<!-- -->
 <parameter name="ei_mon_spectra"  type="string">
   <value val="ei-mon1-spec:ei-mon2-spec"/>
+  <description is="List of spectra, used to calculate incident energy of beam in inelastic experiments by GetEi algorithm.
+  It is complex property, dependent on two other properties, namely ei-mon1-spec and ei-mon2-spec, which define spectrum or
+  spectra lists for each of two monitors, used in GetEi calculations"/>
 </parameter>
-  
-<!--if you use some detectors as monitors and work in event mode, one needs to specify the comma separated list of these detectors here 
-    to copy detectors spectra to monitors spectra collected in histogram mode. If no such monitors are used "None" 
-    (with brackets) has to be specified as the value. This is also necessary in Histogram mode if you want to use detectors as monitors and 
-    load_monitors_with_workspace is set to False (or monitors are measured with different time channels)
--->
+
+<!-- -->
 <parameter name="spectra_to_monitors_list"  type="string">
-    <value val="None"/>
+  <value val="None"/>
+  <description is="If you use some detectors as monitors and work in event mode,
+    one needs to specify the comma separated list of these detectors as the value of this property
+    to copy detectors spectra to monitors spectra collected in histogram mode.
+    If no such monitors are used, None (or text string 'None' in IDF) has to be specified as the value.
+    This is also necessary in Histogram mode if you want to use some detectors as monitors and 
+    load_monitors_with_workspace is set to False necessary if monitors are measured with different time channels"/>
 </parameter>
 
-<!-- List of two spectra corresponding to the detectors which are closest and furtherest from the sample.
-     These detectors locations are used to identify TOF range, contributing into each energy range 
-     in multirep mode  -->
+<!-- -->
 <parameter name="multirep_tof_specta_list"  type="string">
     <value val="382,68353"/>
+    <description is="List of two spectra corresponding to the detectors which are closest and furthest from the sample.
+    These detectors locations are used to identify TOF range, contributing into each energy range
+     in multirep mode"/>
 </parameter>
 
 
@@ -161,7 +177,6 @@
 </parameter>
 
 
-
 <!-- integration range for background tests  (in TOF) - composite property 
   Used in test to reject high backgound (FlatBackground) and in High Background tests integration in Diagnostics
   if diag_background_test_range is not set -->
@@ -330,7 +345,7 @@
   <value val="False"/>
 </parameter>
 
-<!-- if this value is provided (nont None) it is string reperesentation of the number used instead of calculating mono-vanadium based normalization factor 
+<!-- if this value is provided (not None) it is string reperesentation of the number used instead of calculating mono-vanadium based normalization factor 
    one does not need to provide mono-vanadium run if this value is provided as it will be used instead
   -->
 <parameter name="mono_correction_factor" type="string">
@@ -355,7 +370,7 @@
 </parameter>
 
 <!-- If one wants to sum runs. By default no, as in addition to the key word one has to provide list of input run-numbers
-     but presence of this key here allows to propagate this key word for to the reducer   -->  
+     but presence of this key here allows to propagate this key-word to the reducer   -->
 <parameter name="sum_runs"  type="bool">
    <value val="False"/>
 </parameter>
@@ -379,6 +394,7 @@
     <value val="True"/>
 </parameter>
 
+
 <!-- If this parameter is set to true, dgreduce will try to load mask from the mask file
      correspondent to the run if finds it and uses this mask as hard mask only (does not run diagnostics). 
      If such file has not been found, it will run diagnostics and save the masks into mask file for reuse 
@@ -438,7 +454,7 @@
        bleed_maxrate = diag_bleed_maxrate;
        bleed_pixels  = diag_bleed_pixels;
        deltaE_mode =  deltaE-mode;
-       ei-mon1-spec=ei_mon1_spec;       
+       ei-mon1-spec=ei_mon1_spec;
        ei-mon2-spec = test_ei2_mon_spectra=ei_mon2_spec;
        ei_mon_spectra=test_mon_spectra_composite"
     />
diff --git a/Code/Mantid/instrument/POLDI_Definition_2014b.xml b/Code/Mantid/instrument/POLDI_Definition_2014b.xml
index c79f61504ea828c30f95bbb6ab0a4eb04290c7ba..afb2c023e06a0b1e60e1693f93acae157f05e7f0 100644
--- a/Code/Mantid/instrument/POLDI_Definition_2014b.xml
+++ b/Code/Mantid/instrument/POLDI_Definition_2014b.xml
@@ -3,8 +3,8 @@
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 Schema/IDFSchema.xsd"
             name="POLDI"
-            valid-from="2014-08-05 00:00:00"
-            last-modified="2014-09-10 00:00:00">
+            valid-from="2014-01-01 00:00:00"
+            last-modified="2015-06-19 11:30:00">
     
     <type name="source" is="Source" />
     
diff --git a/Code/Mantid/instrument/POLDI_Definition_2014c.xml b/Code/Mantid/instrument/POLDI_Definition_2014c.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9942d7bbc6dcdfd8145acd51bf11832261fce4c8
--- /dev/null
+++ b/Code/Mantid/instrument/POLDI_Definition_2014c.xml
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<instrument xmlns="http://www.mantidproject.org/IDF/1.0"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 Schema/IDFSchema.xsd"
+            name="POLDI"
+            valid-from="2014-08-06 12:30:00"
+            last-modified="2015-06-19 11:30:00">
+    
+    <type name="source" is="Source" />
+    
+    <type name="chopper" is="ChopperPos">
+        <component type="chopperSlit">
+            <location x="0.000000" name="slit0" />
+            <location x="0.162156" name="slit1" />
+            <location x="0.250867" name="slit2" />
+            <location x="0.3704" name="slit3" />
+            <location x="0.439811" name="slit4" />
+            <location x="0.588455" name="slit5" />
+            <location x="0.761389" name="slit6" />
+            <location x="0.895667" name="slit7" />
+        </component>
+    </type>
+    
+    <type name="chopperSlit" />
+    
+    <type name="detector">
+        <component type="element" idlist="detector-elements-idlist">
+            <locations r="2.0000" t="75.0" t-end="103.0" p="0" n-elements="400" name="element" />
+        </component>
+    </type>
+    
+    <type name="element" is="Detector" />
+    
+    <idlist idname="detector-elements-idlist">
+        <id start="0" end="399" />
+    </idlist>
+    
+    <type name="sample" is="SamplePos" />
+    
+    <component type="source" name="source">
+        <location z="-12.0000" />
+        <parameter name="PoldiSpectrum:WavelengthDistribution" type="fitting">
+            <!--
+                This is the POLDI neutron wavelength distribution. The intensities
+                are given such that Mean(I) = 1.0.
+            -->
+            <lookuptable x-unit="Wavelength">
+                <point x="0.986430049" y="0.0379200461685" />
+                <point x="1.01097" y="0.0647900877564" />
+                <point x="1.03552008" y="0.158472779233" />
+                <point x="1.06007004" y="0.519912166374" />
+                <point x="1.08460999" y="1.61236820184" />
+                <point x="1.10916007" y="2.92556206166" />
+                <point x="1.13371003" y="3.01527151822" />
+                <point x="1.15825999" y="3.08617045167" />
+                <point x="1.18280005" y="3.3797870393" />
+                <point x="1.20735002" y="3.54669731732" />
+                <point x="1.23189998" y="3.6408488786" />
+                <point x="1.25644004" y="3.61670774172" />
+                <point x="1.28099" y="3.74104456034" />
+                <point x="1.30553997" y="3.85943944836" />
+                <point x="1.33009005" y="3.75758537926" />
+                <point x="1.35462999" y="3.72106056606" />
+                <point x="1.37918007" y="3.73501609979" />
+                <point x="1.40373003" y="3.80737158413" />
+                <point x="1.42826998" y="3.74757696126" />
+                <point x="1.45282006" y="3.79171629046" />
+                <point x="1.47737002" y="3.70519039935" />
+                <point x="1.50190997" y="3.64835854136" />
+                <point x="1.52646005" y="3.58509014427" />
+                <point x="1.55101001" y="3.52528432718" />
+                <point x="1.57554996" y="3.58574587753" />
+                <point x="1.60010004" y="3.52296612136" />
+                <point x="1.62465" y="3.48146692706" />
+                <point x="1.64919996" y="3.29247486904" />
+                <point x="1.67374003" y="3.18613505977" />
+                <point x="1.69828999" y="3.11493402243" />
+                <point x="1.72284007" y="3.019974154" />
+                <point x="1.74738002" y="2.95223419475" />
+                <point x="1.77192998" y="2.87013941439" />
+                <point x="1.79648006" y="2.8518896839" />
+                <point x="1.82102001" y="2.81334596521" />
+                <point x="1.84556997" y="2.79063867035" />
+                <point x="1.87012005" y="2.73278925933" />
+                <point x="1.89467001" y="2.70067519099" />
+                <point x="1.91921008" y="2.6032279618" />
+                <point x="1.94376004" y="2.49786056822" />
+                <point x="1.96831" y="2.3271600338" />
+                <point x="1.99285007" y="2.34552390934" />
+                <point x="2.01740003" y="2.22035491325" />
+                <point x="2.04194999" y="2.29464387452" />
+                <point x="2.06648993" y="2.20015866926" />
+                <point x="2.09104013" y="2.1126010471" />
+                <point x="2.1155901" y="2.03543605117" />
+                <point x="2.14014006" y="2.03696461356" />
+                <point x="2.16468" y="2.02314915783" />
+                <point x="2.18922997" y="1.92865797498" />
+                <point x="2.21377993" y="1.76339003593" />
+                <point x="2.23832011" y="1.70948140257" />
+                <point x="2.26287007" y="1.70655034399" />
+                <point x="2.28742003" y="1.63185257524" />
+                <point x="2.31195998" y="1.6101119067" />
+                <point x="2.33650994" y="1.52402877822" />
+                <point x="2.3610599" y="1.41765223428" />
+                <point x="2.3856101" y="1.41372656581" />
+                <point x="2.41015005" y="1.37861914774" />
+                <point x="2.43470001" y="1.39547907016" />
+                <point x="2.45924997" y="1.32522954793" />
+                <point x="2.48378992" y="1.3747536237" />
+                <point x="2.50834012" y="1.26342285426" />
+                <point x="2.53289008" y="1.1961405706" />
+                <point x="2.55743003" y="1.15607902115" />
+                <point x="2.58197999" y="1.09374471504" />
+                <point x="2.60652995" y="1.08882219384" />
+                <point x="2.63107991" y="1.08884830502" />
+                <point x="2.6556201" y="1.05670290487" />
+                <point x="2.68017006" y="1.02406197103" />
+                <point x="2.70472002" y="0.989440668677" />
+                <point x="2.72925997" y="1.00035277903" />
+                <point x="2.75380993" y="0.95038734642" />
+                <point x="2.77836013" y="0.869240260323" />
+                <point x="2.80291009" y="0.836101367713" />
+                <point x="2.82745004" y="0.832658084227" />
+                <point x="2.852" y="0.784670032334" />
+                <point x="2.87654996" y="0.789144670394" />
+                <point x="2.90108991" y="0.725317653441" />
+                <point x="2.92564011" y="0.737710213048" />
+                <point x="2.95019007" y="0.742183265093" />
+                <point x="2.97473001" y="0.692213030379" />
+                <point x="2.99927998" y="0.653130845445" />
+                <point x="3.02382994" y="0.658097474694" />
+                <point x="3.04837012" y="0.629903015127" />
+                <point x="3.07292008" y="0.620515648311" />
+                <point x="3.09747005" y="0.59182542276" />
+                <point x="3.12202001" y="0.596295491013" />
+                <point x="3.14655995" y="0.553251221336" />
+                <point x="3.17110991" y="0.561185043087" />
+                <point x="3.19566011" y="0.509726198752" />
+                <point x="3.22020006" y="0.497861766253" />
+                <point x="3.24475002" y="0.500350162334" />
+                <point x="3.26929998" y="0.462253499734" />
+                <point x="3.29383993" y="0.448903255167" />
+                <point x="3.31839013" y="0.442976704117" />
+                <point x="3.34293699" y="0.410906557596" />
+                <point x="3.36748409" y="0.400728656223" />
+                <point x="3.39203095" y="0.390802883239" />
+                <point x="3.41657805" y="0.381123104847" />
+                <point x="3.44112492" y="0.371682888874" />
+                <point x="3.46567202" y="0.362476568119" />
+                <point x="3.49021912" y="0.35349822306" />
+                <point x="3.51476598" y="0.34474241879" />
+                <point x="3.53931308" y="0.336203424027" />
+                <point x="3.56385994" y="0.327875851925" />
+                <point x="3.58840704" y="0.319754644057" />
+                <point x="3.61295295" y="0.311834601816" />
+                <point x="3.637501" y="0.304110594682" />
+                <point x="3.66204691" y="0.296578008794" />
+                <point x="3.68659401" y="0.289232018017" />
+                <point x="3.71114111" y="0.282067934396" />
+                <point x="3.73568797" y="0.275081354334" />
+                <point x="3.76023507" y="0.268267710027" />
+                <point x="3.78478193" y="0.261622986372" />
+                <point x="3.80932903" y="0.255142781777" />
+                <point x="3.83387613" y="0.248823039086" />
+                <point x="3.85842299" y="0.242659933438" />
+                <point x="3.88297009" y="0.236649455739" />
+                <point x="3.90751696" y="0.230787759101" />
+                <point x="3.93206406" y="0.225071303024" />
+                <point x="3.95661092" y="0.219496468911" />
+                <point x="3.98115826" y="0.214059716263" />
+                <point x="4.0057044" y="0.208757618724" />
+                <point x="4.03025055" y="0.203586864087" />
+                <point x="4.0547986" y="0.198544166977" />
+                <point x="4.0793457" y="0.193626378592" />
+                <point x="4.10389137" y="0.188830387379" />
+                <point x="4.12843847" y="0.184153209345" />
+                <point x="4.15298653" y="0.179591790409" />
+                <point x="4.17753267" y="0.17514353127" />
+                <point x="4.20207977" y="0.170805354615" />
+                <point x="4.2266264" y="0.166574544595" />
+                <point x="4.2511735" y="0.162448630069" />
+                <point x="4.2757206" y="0.158424976688" />
+                <point x="4.3002677" y="0.154500833359" />
+                <point x="4.32481432" y="0.150673962236" />
+                <point x="4.34936142" y="0.146941962269" />
+                <point x="4.37390852" y="0.143302256984" />
+                <point x="4.39845562" y="0.139752771944" />
+                <point x="4.42300272" y="0.136291257291" />
+                <point x="4.44754934" y="0.132915370247" />
+                <point x="4.47209644" y="0.129623152325" />
+                <point x="4.49664354" y="0.126412482228" />
+                <point x="4.52119064" y="0.123281343393" />
+                <point x="4.54573774" y="0.120227765918" />
+                <point x="4.57028341" y="0.11724980313" />
+                <point x="4.59483051" y="0.114345613286" />
+                <point x="4.61937857" y="0.111513366463" />
+                <point x="4.64392471" y="0.108751267379" />
+                <point x="4.66847134" y="0.106057579427" />
+                <point x="4.69301844" y="0.103430600844" />
+                <point x="4.71756554" y="0.100868711172" />
+                <point x="4.74211264" y="0.0983702671227" />
+                <point x="4.76665974" y="0.0959336772731" />
+                <point x="4.79120636" y="0.093557508202" />
+                <point x="4.81575346" y="0.0912401628801" />
+                <point x="4.84030056" y="0.0889801784484" />
+                <point x="4.86484766" y="0.0867762492478" />
+                <point x="4.88939476" y="0.084626860153" />
+                <point x="4.91394138" y="0.0825306822753" />
+                <point x="4.93848753" y="0.0804864976671" />
+                <point x="4.96303558" y="0.0784929071503" />
+                <point x="4.98758268" y="0.0765486581333" />
+                <point x="5.01212931" y="0.0746526079641" />
+                <point x="5.03667545" y="0.0728035212728" />
+                <point x="5.06122255" y="0.0710002323781" />
+                <point x="5.08577061" y="0.0692416164508" />
+                <point x="5.11031771" y="0.0675265194243" />
+                <point x="5.13486338" y="0.0658539680618" />
+                <point x="5.15941048" y="0.0642228143046" />
+                <point x="5.18395853" y="0.0626320322489" />
+                <point x="5.20850468" y="0.0610807125393" />
+                <point x="5.23305178" y="0.0595677948282" />
+                <point x="5.2575984" y="0.0580923114862" />
+                <point x="5.2821455" y="0.0566534406688" />
+                <point x="5.3066926" y="0.0552501801025" />
+                <point x="5.3312397" y="0.0538816494685" />
+                <point x="5.35578632" y="0.0525470679748" />
+                <point x="5.38033342" y="0.0512454914214" />
+                <point x="5.40488052" y="0.049976179668" />
+                <point x="5.42942762" y="0.0487383282922" />
+                <point x="5.45397472" y="0.0475310954243" />
+                <point x="5.47852135" y="0.0463537841787" />
+                <point x="5.50306749" y="0.0452056576189" />
+                <point x="5.52761555" y="0.044085928745" />
+                <point x="5.55216265" y="0.0429939565424" />
+                <point x="5.60125542" y="0.0408904789888" />
+                <point x="5.62580252" y="0.0398776505566" />
+                <point x="5.65034962" y="0.0388899122071" />
+                <point x="5.69944334" y="0.0369872268062" />
+                <point x="5.72399044" y="0.0360710788288" />
+                <point x="5.77308464" y="0.0343063026735" />
+                <point x="5.79763174" y="0.0334565608805" />
+                <point x="5.82217836" y="0.0326278676345" />
+                <point x="5.87127256" y="0.0310315517468" />
+                <point x="5.89581966" y="0.0302629090089" />
+                <point x="5.94491243" y="0.0287823115682" />
+                <point x="5.96946049" y="0.0280693832282" />
+                <point x="5.99400759" y="0.0273741231399" />
+            </lookuptable>
+        </parameter>
+    </component>
+
+    <component type="chopper" name="chopper">
+        <location />
+        <parameter name="z">
+            <value val="-11.8000" />
+        </parameter>
+        <parameter name="rotation_speed">
+            <logfile id="chopperspeed" extract-single-value-as="first_value" />
+        </parameter>
+    </component>
+    
+    <component type="sample" name="sample">
+        <location x="0.0" y="0.0" z="0.0" />
+    </component>
+    
+    <component type="detector" name="detector">
+        <location />
+        <parameter name="radius">
+            <value val="3.0000" />
+        </parameter>
+        <parameter name="element_separation">
+            <value val="0.0025" />
+        </parameter>
+        <parameter name="efficiency">
+            <value val="0.88" />
+        </parameter>
+    </component>
+</instrument>
diff --git a/Code/Mantid/instrument/POLDI_Definition_2014d.xml b/Code/Mantid/instrument/POLDI_Definition_2014d.xml
index 8229972d9ce22d72aebd893f2ee7ce77b6c7974c..81d9fddd91d81e25c7fdc1aca37e49729ca08e5a 100644
--- a/Code/Mantid/instrument/POLDI_Definition_2014d.xml
+++ b/Code/Mantid/instrument/POLDI_Definition_2014d.xml
@@ -3,8 +3,8 @@
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 Schema/IDFSchema.xsd"
             name="POLDI"
-            valid-from="2014-09-07 00:00:00"
-            last-modified="2014-09-10 00:00:00">
+            valid-from="2014-09-10 11:15:00"
+            last-modified="2015-06-19 11:30:00">
     
     <type name="source" is="Source" />
     
diff --git a/Code/Mantid/instrument/POLDI_Definition_2014e.xml b/Code/Mantid/instrument/POLDI_Definition_2014e.xml
index 10878c58b5bf052986cd33227371c50cf8f98909..0e2ad5b495fb87c2e94ba420836c473d261dbf7e 100644
--- a/Code/Mantid/instrument/POLDI_Definition_2014e.xml
+++ b/Code/Mantid/instrument/POLDI_Definition_2014e.xml
@@ -3,8 +3,8 @@
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 Schema/IDFSchema.xsd"
             name="POLDI"
-            valid-from="2014-09-08 18:00:00"
-            last-modified="2014-09-10 00:00:00">
+            valid-from="2014-09-05 09:26:00"
+            last-modified="2015-06-19 11:30:00">
     
     <type name="source" is="Source" />
     
diff --git a/Code/Mantid/instrument/POLDI_Definition_2014f.xml b/Code/Mantid/instrument/POLDI_Definition_2014f.xml
index 1f9e54b73abcb7c91286ec80e5779784ff36089a..d762f41dcf4cb10dbc3e1f58b2c9141b192585f9 100644
--- a/Code/Mantid/instrument/POLDI_Definition_2014f.xml
+++ b/Code/Mantid/instrument/POLDI_Definition_2014f.xml
@@ -3,7 +3,7 @@
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 Schema/IDFSchema.xsd"
             name="POLDI"
-            valid-from="2014-10-13 07:41:00"
+            valid-from="2014-10-13 07:45:00"
             last-modified="2014-09-10 00:00:00">
     
     <type name="source" is="Source" />
diff --git a/Code/Mantid/instrument/POLDI_Parameters_2014b.xml b/Code/Mantid/instrument/POLDI_Parameters_2014b.xml
index e7c318fa2fec41be006d7b9b9e5e1365a4f41bdf..13f2934197bf489714cdb292185adb45f413c5fa 100644
--- a/Code/Mantid/instrument/POLDI_Parameters_2014b.xml
+++ b/Code/Mantid/instrument/POLDI_Parameters_2014b.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<parameter-file instrument="POLDI" valid-from="2014-08-05 00:00:00">
+<parameter-file instrument="POLDI" valid-from="2014-01-01 00:00:00">
     
     <component-link name="chopper">
         <parameter name="t0" type="number">
diff --git a/Code/Mantid/instrument/POLDI_Parameters_2014c.xml b/Code/Mantid/instrument/POLDI_Parameters_2014c.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c5b1c0258761b29eeed0dfe70f918c2ec8092f1b
--- /dev/null
+++ b/Code/Mantid/instrument/POLDI_Parameters_2014c.xml
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<parameter-file instrument="POLDI" valid-from="2014-08-06 12:30:00">
+    
+    <component-link name="chopper">
+        <parameter name="t0" type="number">
+            <value val="-0.0069" />
+        </parameter>
+        <parameter name="t0_const" type="number">
+            <value val="-6.9" />
+        </parameter>
+    </component-link>
+    
+    <component-link name="detector">
+        <parameter name="two_theta" type="number">
+            <value val="91.12" />
+        </parameter>
+        <parameter name="x">
+            <value val="-0.8322" />
+        </parameter>
+        <parameter name="y">
+            <value val="-0.910" />
+        </parameter>
+    </component-link>
+    
+    <!-- dead wires !-->    
+    <!-- dead wires !-->    
+    <component-link name="detector/element399">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element398">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element397">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element396">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element395">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element394">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element376">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element373">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element371">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element357">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element355">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element341">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element339">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element335">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element325">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element323">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element291">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element275">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element259">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element243">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element235">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element227">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element225">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element211">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element209">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element195">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element193">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element185">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element183">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element179">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element163">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element161">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element131">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element115">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element99">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element83">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element55">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element51">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element35">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element19">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element5">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element4">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element3">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element2">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element1">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+    <component-link name="detector/element0">
+        <parameter name="masked" type="bool">
+            <value val="true" />
+        </parameter>
+    </component-link>
+
+</parameter-file>
\ No newline at end of file
diff --git a/Code/Mantid/instrument/POLDI_Parameters_2014d.xml b/Code/Mantid/instrument/POLDI_Parameters_2014d.xml
index 099322c11b5c8868ab471306bb98c9869cf4b466..2f879024553bd31f82430a23ba3c19391c2574c2 100644
--- a/Code/Mantid/instrument/POLDI_Parameters_2014d.xml
+++ b/Code/Mantid/instrument/POLDI_Parameters_2014d.xml
@@ -1,12 +1,13 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<parameter-file instrument="POLDI" valid-from="2014-09-07 00:00:00">
+<parameter-file instrument="POLDI" valid-from="2014-09-10 11:15:00"
+>
     
     <component-link name="chopper">
         <parameter name="t0" type="number">
             <value val="-0.0079" />
         </parameter>
         <parameter name="t0_const" type="number">
-            <value val="-17.74" />
+            <value val="-22.00" />
         </parameter>
     </component-link>
     
@@ -15,7 +16,7 @@
             <value val="91.12" />
         </parameter>
         <parameter name="x">
-            <value val="-0.8352" />
+            <value val="-0.8322" />
         </parameter>
         <parameter name="y">
             <value val="-0.91" />
diff --git a/Code/Mantid/instrument/POLDI_Parameters_2014f.xml b/Code/Mantid/instrument/POLDI_Parameters_2014f.xml
index fcd68cb1e5c1d49348a97c79023c95f619384c53..41f426cd1de2183351e2a752ecf3fda99d89722a 100644
--- a/Code/Mantid/instrument/POLDI_Parameters_2014f.xml
+++ b/Code/Mantid/instrument/POLDI_Parameters_2014f.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<parameter-file instrument="POLDI" valid-from="2014-10-13 07:41:00">
+<parameter-file instrument="POLDI" valid-from="2014-10-13 07:45:00">
     
     <component-link name="chopper">
         <parameter name="t0" type="number">
-            <value val="-0.009" />
+            <value val="-0.008" />
         </parameter>
         <parameter name="t0_const" type="number">
             <value val="-18.4" />
@@ -18,7 +18,7 @@
             <value val="-0.89675" />
         </parameter>
         <parameter name="y">
-            <value val="-0.8905" />
+            <value val="-0.8915" />
         </parameter>
     </component-link>
     
diff --git a/Code/Mantid/instrument/TOFTOF_Definition.xml b/Code/Mantid/instrument/TOFTOF_Definition.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9b5966d46c2228c61f5b9b455f130a0716567b02
--- /dev/null
+++ b/Code/Mantid/instrument/TOFTOF_Definition.xml
@@ -0,0 +1,34431 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- For help on the notation used to specify an Instrument Definition File 
+     see http://www.mantidproject.org/IDF -->
+<instrument xmlns="http://www.mantidproject.org/IDF/1.0" 
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
+            xsi:schemaLocation="http://www.mantidproject.org/IDF/1.0 http://schema.mantidproject.org/IDF/1.0/IDFSchema.xsd" 
+ name="TOFTOF" valid-from="1900-01-31 23:59:59" 
+               valid-to="2100-01-31 23:59:59" 
+               last-modified="2015-06-12 14:37:17">
+  <defaults>
+    <length unit="meter" />
+    <angle unit="degree" />
+    <reference-frame>
+      <!-- The z-axis is set parallel to and in the direction of the beam. the 
+             y-axis points up and the coordinate system is right handed. -->
+      <along-beam axis="z" />
+      <pointing-up axis="y" />
+      <handedness val="right" />
+    </reference-frame>
+  </defaults>
+  <!-- Moderator -->
+  <component type="moderator">
+    <location z="-1.4" />
+  </component>
+  <type name="moderator" is="Source"></type>
+  <!-- Sample position -->
+  <component type="sample-position">
+    <location y="0.0" x="0.0" z="0.0" />
+  </component>
+  <type name="sample-position" is="SamplePos" />
+  <!-- DETECTORS -->
+  <component type="bank_1" idlist="bank_1">
+    <location />
+  </component>
+  <component type="bank_2" idlist="bank_2">
+    <location />
+  </component>
+  <component type="bank_3" idlist="bank_3">
+    <location />
+  </component>
+  <component type="bank_4" idlist="bank_4">
+    <location />
+  </component>
+  <!-- Detector Banks -->
+  <type name="bank_1">
+    <component type="bank_1 rack_1">
+      <location />
+    </component>
+    <component type="bank_1 rack_2">
+      <location />
+    </component>
+    <component type="bank_1 rack_3">
+      <location />
+    </component>
+    <component type="bank_1 rack_4">
+      <location />
+    </component>
+    <component type="bank_1 rack_5">
+      <location />
+    </component>
+    <component type="bank_1 rack_6">
+      <location />
+    </component>
+    <component type="bank_1 rack_7">
+      <location />
+    </component>
+    <component type="bank_1 rack_8">
+      <location />
+    </component>
+  </type>
+  <type name="bank_2">
+    <component type="bank_2 rack_1">
+      <location />
+    </component>
+    <component type="bank_2 rack_2">
+      <location />
+    </component>
+    <component type="bank_2 rack_3">
+      <location />
+    </component>
+    <component type="bank_2 rack_4">
+      <location />
+    </component>
+    <component type="bank_2 rack_5">
+      <location />
+    </component>
+    <component type="bank_2 rack_6">
+      <location />
+    </component>
+    <component type="bank_2 rack_7">
+      <location />
+    </component>
+    <component type="bank_2 rack_8">
+      <location />
+    </component>
+  </type>
+  <type name="bank_3">
+    <component type="bank_3 rack_1">
+      <location />
+    </component>
+    <component type="bank_3 rack_2">
+      <location />
+    </component>
+    <component type="bank_3 rack_3">
+      <location />
+    </component>
+    <component type="bank_3 rack_4">
+      <location />
+    </component>
+    <component type="bank_3 rack_5">
+      <location />
+    </component>
+    <component type="bank_3 rack_6">
+      <location />
+    </component>
+    <component type="bank_3 rack_7">
+      <location />
+    </component>
+    <component type="bank_3 rack_8">
+      <location />
+    </component>
+  </type>
+  <type name="bank_4">
+    <component type="bank_4 rack_2">
+      <location />
+    </component>
+    <component type="bank_4 rack_3">
+      <location />
+    </component>
+    <component type="bank_4 rack_4">
+      <location />
+    </component>
+    <component type="bank_4 rack_5">
+      <location />
+    </component>
+    <component type="bank_4 rack_6">
+      <location />
+    </component>
+    <component type="bank_4 rack_7">
+      <location />
+    </component>
+    <component type="bank_4 rack_8">
+      <location />
+    </component>
+  </type>
+  <!-- Definition of every bank -->
+  <type name="bank_1 rack_1">
+    <component type="He3 detector">
+      <location r="4.000" t="-13.138" p="-0.000" name="det7"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 108" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="17" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-13.137700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-8.600" p="-0.000" name="det22"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 120" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="8" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-8.599900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-8.096" p="-0.000" name="det23"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 121" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="7" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-8.095700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="16" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-7.591" p="-0.000" name="det24"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 122" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="6" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-7.591500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-10.113" p="-0.000" name="det17"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 117" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="11" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-10.112500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-10.617" p="-0.000" name="det16"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 116" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="12" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-10.616700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-11.121" p="-0.000" name="det13"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 115" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="13" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-11.120900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="9" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-11.625" p="-0.000" name="det12"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 114" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="14" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-11.625100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-12.129" p="-0.000" name="det11"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 113" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="15" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-12.129300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-12.633" p="-0.000" name="det8"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 109" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="16" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-12.633500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-13.642" p="-0.000" name="det4"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 107" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="18" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-13.641800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="3" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-9.104" p="-0.000" name="det19"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 119" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="9" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-9.104100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-14.146" p="-0.000" name="det3"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 106" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="19" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-14.146000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="2" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-14.650" p="-0.000" name="det0"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 105" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="20" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-14.650200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-9.608" p="-0.000" name="det18"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 118" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="10" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-9.608300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="13" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="1" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_1 rack_2">
+    <component type="He3 detector">
+      <location r="4.000" t="16.667" p="0.000" name="det58"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 145" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="73" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="16.667000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="37" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="17.675" p="0.000" name="det62"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 147" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="75" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="17.675400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="22.213" p="0.000" name="det85"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 156" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="84" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="22.213100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="18.180" p="0.000" name="det66"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 148" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="76" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="18.179600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="40" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="18.684" p="0.000" name="det67"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 149" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="77" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="18.683800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="19.188" p="0.000" name="det69"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 150" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="78" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="19.188000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="19.692" p="0.000" name="det72"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 151" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="79" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="19.692200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="43" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="20.196" p="0.000" name="det73"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 152" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="80" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="20.196300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="20.701" p="0.000" name="det77"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 153" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="81" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="20.700500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="23.221" p="0.000" name="det91"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 158" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="86" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="23.221500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="22.717" p="0.000" name="det88"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 157" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="85" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="22.717300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="49" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="21.205" p="0.000" name="det80"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 154" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="82" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="21.204700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="46" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="21.709" p="0.000" name="det83"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 155" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="83" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="21.708900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="8.096" p="0.000" name="det26"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 128" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="56" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="8.095700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="12.129" p="0.000" name="det38"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 136" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="64" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="12.129300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="28" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="7.591" p="0.000" name="det25"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 127" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="55" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="7.591500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="19" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="23.726" p="0.000" name="det96"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 163" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="87" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="23.725700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="55" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="6" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="8.600" p="0.000" name="det27"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 129" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="57" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="8.599900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="9.104" p="0.000" name="det30"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 130" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="58" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="9.104100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="22" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="9.608" p="0.000" name="det31"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 131" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="59" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="9.608300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="10.617" p="0.000" name="det33"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 133" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="61" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="10.616700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="25" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="11.121" p="0.000" name="det36"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 134" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="62" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="11.120900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="11.625" p="0.000" name="det37"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 135" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="63" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="11.625100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="10.113" p="0.000" name="det32"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 132" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="60" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="10.112500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="17.171" p="0.000" name="det59"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 146" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="74" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="17.171200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="13.138" p="0.000" name="det42"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 138" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="66" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="13.137700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="13.642" p="0.000" name="det45"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 139" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="67" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="13.641800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="31" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="14.146" p="0.000" name="det46"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 140" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="68" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="14.146000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="14.650" p="0.000" name="det49"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 141" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="69" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="14.650200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="15.154" p="0.000" name="det52"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 142" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="70" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="15.154400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="34" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="15.659" p="0.000" name="det53"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 143" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="71" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="15.658600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="16.163" p="0.000" name="det54"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 144" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="72" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="16.162800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="5" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="12.633" p="0.000" name="det41"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 137" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="65" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="12.633500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="4" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_1 rack_3">
+    <component type="He3 detector">
+      <location r="4.000" t="36.331" p="0.000" name="det193"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 201" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="199" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="36.330500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="96" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="129" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="25.238" p="0.000" name="det108"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 178" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="177" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="25.238300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="74" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="103" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="24.734" p="0.000" name="det102"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 177" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="176" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="24.734100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="73" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="102" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="43.389" p="0.000" name="det247"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 216" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="213" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="43.389200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="39" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="110" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="143" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="13" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="42.885" p="0.000" name="det243"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 214" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="212" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="42.885000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="109" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="142" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="13" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="42.381" p="0.000" name="det240"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 213" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="211" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="42.380800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="108" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="141" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="13" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="41.877" p="0.000" name="det235"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 212" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="210" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="41.876600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="107" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="140" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="13" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="41.372" p="0.000" name="det233"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 211" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="209" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="41.372400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="106" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="139" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="13" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="40.364" p="0.000" name="det224"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 209" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="207" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="40.364000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="104" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="137" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="13" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="39.860" p="0.000" name="det220"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 208" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="206" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="39.859900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="103" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="136" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="39.356" p="0.000" name="det217"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 207" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="205" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="39.355700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="102" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="135" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="38.852" p="0.000" name="det211"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 206" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="204" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="38.851500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="101" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="134" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="38.347" p="0.000" name="det207"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 205" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="203" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="38.347300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="100" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="133" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="37.843" p="0.000" name="det203"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 204" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="202" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="37.843100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="99" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="132" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="37.339" p="0.000" name="det200"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 203" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="201" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="37.338900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="98" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="131" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="25.742" p="0.000" name="det109"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 179" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="178" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="25.742500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="75" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="104" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="24.230" p="0.000" name="det100"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 176" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="175" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="24.229900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="72" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="101" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="40.868" p="0.000" name="det228"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 210" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="208" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="40.868200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="105" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="138" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="13" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="30.280" p="0.000" name="det143"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 188" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="187" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="30.280200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="84" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="113" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="31.289" p="0.000" name="det152"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 190" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="189" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="31.288600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="86" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="115" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="35.826" p="0.000" name="det186"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 200" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="198" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="35.826300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="95" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="124" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="34.818" p="0.000" name="det180"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 198" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="196" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="34.817900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="93" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="122" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="36.835" p="0.000" name="det195"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 202" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="200" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="36.834700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="97" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="130" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="33.809" p="0.000" name="det171"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 196" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="194" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="33.809500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="91" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="120" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="33.305" p="0.000" name="det169"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 194" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="193" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="33.305400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="90" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="119" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="32.801" p="0.000" name="det164"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 193" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="192" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="32.801200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="89" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="118" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="32.297" p="0.000" name="det161"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 192" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="191" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="32.297000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="88" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="117" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="31.793" p="0.000" name="det154"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 191" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="190" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="31.792800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="87" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="116" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="35.322" p="0.000" name="det184"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 199" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="197" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="35.322100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="94" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="123" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="30.784" p="0.000" name="det148"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 189" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="188" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="30.784400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="85" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="114" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="34.314" p="0.000" name="det176"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 197" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="195" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="34.313700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="92" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="121" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="29.272" p="0.000" name="det137"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 186" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="185" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="29.271800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="82" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="111" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="28.768" p="0.000" name="det131"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 185" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="184" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="28.767600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="81" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="110" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="28.263" p="0.000" name="det127"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 184" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="183" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="28.263400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="80" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="109" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="27.759" p="0.000" name="det123"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 183" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="182" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="27.759200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="79" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="108" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="27.255" p="0.000" name="det119"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 182" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="181" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="27.255000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="78" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="107" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="26.751" p="0.000" name="det116"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 181" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="180" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="26.750900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="77" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="106" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="26.247" p="0.000" name="det112"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 180" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="179" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="26.246700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="76" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="105" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="29.776" p="0.000" name="det138"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 187" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="186" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="29.776000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="83" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="112" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="11" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_1 rack_4">
+    <component type="He3 detector">
+      <location r="4.000" t="57.002" p="0.000" name="det357"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 110" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="354" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="57.002400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="102" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="277" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="57.507" p="0.000" name="det358"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 111" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="355" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="57.506600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="103" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="278" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="58.011" p="0.000" name="det365"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 112" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="356" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="58.010800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="104" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="279" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="58.515" p="0.000" name="det367"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 113" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="357" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="58.515000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="105" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="280" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="49.440" p="0.000" name="det297"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 306" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="339" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="49.439500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="87" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="262" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="48.431" p="0.000" name="det287"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 304" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="337" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="48.431100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="85" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="260" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="59.523" p="0.000" name="det377"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 115" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="359" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="59.523400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="107" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="282" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="47.927" p="0.000" name="det284"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 303" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="336" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="47.926900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="84" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="259" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="45.910" p="0.000" name="det266"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 299" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="332" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="45.910200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="80" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="251" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="44.902" p="0.000" name="det261"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 297" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="330" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="44.901800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="78" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="249" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="45.406" p="0.000" name="det265"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 298" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="331" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="45.406000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="79" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="250" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="46.414" p="0.000" name="det272"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 300" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="333" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="46.414400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="81" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="252" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="46.919" p="0.000" name="det274"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 301" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="334" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="46.918500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="82" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="257" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="47.423" p="0.000" name="det279"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 302" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="335" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="47.422700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="83" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="258" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="60.028" p="0.000" name="det379"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 116" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="360" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="60.027600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="108" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="283" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="25" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="59.019" p="0.000" name="det373"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 114" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="358" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="59.019200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="106" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="281" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="60.532" p="0.000" name="det384"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 117" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="361" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="60.531800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="109" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="284" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="25" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="43.893" p="0.000" name="det251"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 295" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="328" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="43.893400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="76" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="247" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="56.498" p="0.000" name="det352"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 109" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="353" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="56.498200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="101" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="276" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="44.398" p="0.000" name="det254"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 296" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="329" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="44.397600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="77" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="248" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="61.540" p="0.000" name="det390"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 119" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="363" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="61.540100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="111" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="286" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="25" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="53.977" p="0.000" name="det333"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 103" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="348" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="53.977300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="96" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="271" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="49.944" p="0.000" name="det298"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 307" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="340" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="49.943700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="88" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="263" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="50.448" p="0.000" name="det304"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 308" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="341" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="50.447900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="89" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="264" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="50.952" p="0.000" name="det306"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 309" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="342" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="50.952100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="90" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="265" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="51.456" p="0.000" name="det311"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 310" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="343" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="51.456300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="91" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="266" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="51.961" p="0.000" name="det314"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 311" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="344" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="51.960500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="92" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="267" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="61.036" p="0.000" name="det388"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 118" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="362" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="61.035900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="110" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="285" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="25" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="52.969" p="0.000" name="det323"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 101" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="346" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="52.968900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="94" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="269" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="52.465" p="0.000" name="det319"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 312" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="345" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="52.464700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="93" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="268" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="54.481" p="0.000" name="det336"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 104" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="349" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="54.481400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="97" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="272" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="48.935" p="0.000" name="det291"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 305" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="338" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="48.935300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="86" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="261" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="23" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="54.986" p="0.000" name="det338"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 105" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="350" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="54.985600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="98" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="273" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="55.490" p="0.000" name="det345"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 107" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="351" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="55.489800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="99" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="274" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="55.994" p="0.000" name="det349"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 108" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="352" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="55.994000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="100" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="275" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="62.548" p="0.000" name="det401"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 121" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="365" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="62.548500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="113" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="382" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="25" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="62.044" p="0.000" name="det395"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 120" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="364" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="62.044300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="112" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="381" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="25" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="53.473" p="0.000" name="det329"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 102" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="347" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="53.473100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="95" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="270" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="24" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_1 rack_5">
+    <component type="He3 detector">
+      <location r="4.000" t="68.599" p="0.000" name="det447"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 210" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="492" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="68.598800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="89" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="414" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="63.053" p="0.000" name="det402"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 199" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="481" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="63.052700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="78" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="403" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="72.632" p="0.000" name="det478"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 218" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="500" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="72.632400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="97" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="422" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="74.145" p="0.000" name="det491"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 221" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="503" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="74.145000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="100" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="425" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="71.624" p="0.000" name="det471"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 216" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="498" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="71.624000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="95" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="420" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="64.565" p="0.000" name="det417"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 202" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="484" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="64.565300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="81" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="406" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="64.061" p="0.000" name="det413"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 201" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="483" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="64.061100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="80" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="405" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="73.137" p="0.000" name="det484"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 219" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="501" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="73.136600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="98" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="423" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="80.195" p="0.000" name="det538"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 233" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="515" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="80.195300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="112" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="437" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="37" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="82.212" p="0.000" name="det555"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 237" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="519" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="82.212000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="39" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="116" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="441" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="37" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="81.708" p="0.000" name="det553"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 236" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="518" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="81.707800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="115" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="440" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="37" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="81.204" p="0.000" name="det546"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 235" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="517" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="81.203700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="114" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="439" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="37" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="80.699" p="0.000" name="det544"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 234" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="516" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="80.699400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="113" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="438" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="37" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="79.691" p="0.000" name="det535"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 232" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="514" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="79.691100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="111" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="436" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="37" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="65.070" p="0.000" name="det421"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 203" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="485" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="65.069500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="82" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="407" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="75.153" p="0.000" name="det501"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 223" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="505" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="75.153300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="102" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="427" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="78.683" p="0.000" name="det528"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 230" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="512" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="78.682700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="109" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="434" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="78.178" p="0.000" name="det525"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 229" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="511" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="78.178500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="108" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="433" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="77.674" p="0.000" name="det520"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 228" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="510" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="77.674300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="107" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="432" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="77.170" p="0.000" name="det516"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 227" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="509" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="77.170100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="106" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="431" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="76.666" p="0.000" name="det512"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 226" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="508" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="76.665900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="105" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="430" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="76.162" p="0.000" name="det507"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 225" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="507" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="76.161700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="104" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="429" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="75.657" p="0.000" name="det503"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 224" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="506" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="75.657500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="103" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="428" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="63.557" p="0.000" name="det407"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 200" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="482" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="63.556900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="79" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="404" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="72.128" p="0.000" name="det477"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 217" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="499" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="72.128200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="96" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="421" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="79.187" p="0.000" name="det532"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 231" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="513" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="79.186900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="110" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="435" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="37" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="65.574" p="0.000" name="det422"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 204" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="486" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="65.573700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="83" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="408" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="74.649" p="0.000" name="det497"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 222" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="504" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="74.649100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="101" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="426" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="69.103" p="0.000" name="det452"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 211" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="493" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="69.103000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="90" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="415" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="69.607" p="0.000" name="det456"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 212" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="494" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="69.607200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="91" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="416" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="66.078" p="0.000" name="det426"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 205" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="487" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="66.077900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="84" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="409" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="68.095" p="0.000" name="det443"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 209" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="491" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="68.094600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="88" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="413" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="73.641" p="0.000" name="det488"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 220" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="502" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="73.640800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="99" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="424" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="67.590" p="0.000" name="det438"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 208" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="490" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="67.590400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="87" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="412" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="67.086" p="0.000" name="det434"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 207" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="489" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="67.086300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="86" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="411" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="66.582" p="0.000" name="det432"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 206" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="488" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="66.582100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="85" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="410" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="70.111" p="0.000" name="det460"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 213" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="495" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="70.111400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="92" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="417" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="70.616" p="0.000" name="det465"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 214" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="496" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="70.615600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="93" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="418" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="35" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="71.120" p="0.000" name="det468"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 215" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="497" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="71.119800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="94" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="419" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="36" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_1 rack_6">
+    <component type="He3 detector">
+      <location r="4.000" t="95.321" p="0.000" name="det661"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 303" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="659" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="95.321000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="101" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="584" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="95.825" p="0.000" name="det663"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 304" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="660" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="95.825200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="102" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="585" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="96.329" p="0.000" name="det669"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 305" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="661" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="96.329400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="103" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="586" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="99.355" p="0.000" name="det691"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 311" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="667" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="99.354600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="109" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="592" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="49" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="96.834" p="0.000" name="det670"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 306" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="662" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="96.833600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="104" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="587" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="97.338" p="0.000" name="det677"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 307" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="663" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="97.337800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="105" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="588" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="100.867" p="0.000" name="det702"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 314" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="670" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="100.867000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="112" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="701" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="49" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="98.346" p="0.000" name="det683"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 309" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="665" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="98.346200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="107" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="590" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="94.817" p="0.000" name="det656"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 302" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="658" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="94.816800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="100" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="583" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="93.808" p="0.000" name="det649"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 300" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="656" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="93.808400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="98" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="581" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="92.800" p="0.000" name="det638"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 298" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="654" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="92.800100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="96" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="579" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="101.371" p="0.000" name="det707"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 315" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="671" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="101.371000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="113" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="702" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="49" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="100.363" p="0.000" name="det698"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 313" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="669" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="100.363000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="111" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="594" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="49" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="99.859" p="0.000" name="det694"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 312" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="668" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="99.858800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="110" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="593" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="49" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="98.850" p="0.000" name="det686"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 310" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="666" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="98.850400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="108" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="591" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="49" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="89.775" p="0.000" name="det617"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 292" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="648" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="89.774900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="90" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="569" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="90.279" p="0.000" name="det621"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 293" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="649" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="90.279100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="91" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="570" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="94.313" p="0.000" name="det652"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 301" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="657" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="94.312700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="99" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="582" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="90.783" p="0.000" name="det624"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 294" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="650" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="90.783300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="92" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="571" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="91.287" p="0.000" name="det629"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 295" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="651" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="91.287500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="93" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="572" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="91.792" p="0.000" name="det633"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 296" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="652" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="91.791700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="94" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="577" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="92.296" p="0.000" name="det636"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 297" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="653" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="92.295900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="95" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="578" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="93.304" p="0.000" name="det644"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 299" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="655" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="93.304300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="97" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="580" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="89.271" p="0.000" name="det613"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 291" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="647" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="89.270700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="89" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="568" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="97.842" p="0.000" name="det679"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 308" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="664" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="97.842000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="106" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="589" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="48" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="83.725" p="0.000" name="det567"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 280" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="636" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="83.724600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="78" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="557" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="84.229" p="0.000" name="det572"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 281" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="637" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="84.228800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="79" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="558" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="84.733" p="0.000" name="det574"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 282" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="638" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="84.733000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="80" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="559" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="85.237" p="0.000" name="det579"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 283" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="639" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="85.237200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="81" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="560" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="85.741" p="0.000" name="det585"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 284" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="640" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="85.741400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="82" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="561" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="86.246" p="0.000" name="det589"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 285" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="641" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="86.245600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="83" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="562" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="86.750" p="0.000" name="det593"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 286" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="642" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="86.749800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="84" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="563" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="87.254" p="0.000" name="det596"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 287" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="643" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="87.254000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="85" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="564" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="83.220" p="0.000" name="det563"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 279" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="635" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="83.220400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="77" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="556" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="87.758" p="0.000" name="det598"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 288" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="644" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="87.758100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="86" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="565" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="88.766" p="0.000" name="det606"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 290" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="646" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="88.766500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="88" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="567" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="88.262" p="0.000" name="det605"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 289" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="645" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="88.262300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="87" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="566" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="82.716" p="0.000" name="det560"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 278" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="634" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="82.716200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="76" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="555" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="47" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_1 rack_7">
+    <component type="He3 detector">
+      <location r="4.000" t="120.531" p="0.000" name="det859"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 392" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="820" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="120.531000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="111" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="749" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="61" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="117.506" p="0.000" name="det835"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 385" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="814" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="117.506000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="105" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="742" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="117.001" p="0.000" name="det833"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 384" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="813" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="117.001000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="104" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="741" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="116.497" p="0.000" name="det829"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 383" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="812" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="116.497000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="103" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="740" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="115.993" p="0.000" name="det824"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 382" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="811" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="115.993000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="102" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="739" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="114.480" p="0.000" name="det812"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 379" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="808" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="114.480000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="99" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="736" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="114.985" p="0.000" name="det817"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 380" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="809" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="114.985000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="100" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="737" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="115.489" p="0.000" name="det820"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 381" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="810" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="115.489000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="101" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="738" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="118.514" p="0.000" name="det842"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 387" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="816" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="118.514000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="107" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="744" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="61" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="119.522" p="0.000" name="det853"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 390" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="818" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="119.522000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="109" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="747" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="61" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="105.405" p="0.000" name="det740"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 361" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="790" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="105.405000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="81" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="718" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="120.026" p="0.000" name="det854"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 391" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="819" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="120.026000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="110" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="748" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="61" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="109.438" p="0.000" name="det772"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 369" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="798" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="109.438000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="89" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="726" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="108.934" p="0.000" name="det767"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 368" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="797" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="108.934000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="88" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="725" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="121.035" p="0.000" name="det862"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 393" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="821" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="121.035000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="39" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="112" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="750" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="61" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="108.430" p="0.000" name="det762"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 367" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="796" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="108.430000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="87" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="724" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="107.422" p="0.000" name="det756"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 365" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="794" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="107.422000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="85" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="722" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="106.917" p="0.000" name="det751"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 364" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="793" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="106.917000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="84" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="721" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="106.413" p="0.000" name="det747"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 363" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="792" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="106.413000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="83" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="720" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="105.909" p="0.000" name="det743"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 362" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="791" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="105.909000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="82" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="719" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="104.901" p="0.000" name="det737"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 360" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="789" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="104.901000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="80" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="717" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="109.943" p="0.000" name="det774"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 370" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="799" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="109.943000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="90" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="727" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="104.397" p="0.000" name="det730"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 359" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="788" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="104.397000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="79" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="716" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="103.892" p="0.000" name="det727"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 358" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="787" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="103.892000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="78" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="715" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="103.388" p="0.000" name="det722"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 357" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="786" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="103.388000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="77" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="714" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="102.884" p="0.000" name="det718"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 356" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="785" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="102.884000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="76" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="713" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="102.380" p="0.000" name="det716"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 355" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="784" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="102.380000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="75" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="712" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="101.876" p="0.000" name="det710"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 354" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="783" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="101.876000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="74" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="711" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="118.010" p="0.000" name="det841"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 386" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="815" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="118.010000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="106" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="743" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="61" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="107.926" p="0.000" name="det758"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 366" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="795" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="107.926000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="86" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="723" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="110.447" p="0.000" name="det780"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 371" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="800" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="110.447000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="91" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="728" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="111.455" p="0.000" name="det789"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 373" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="802" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="111.455000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="93" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="730" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="119.018" p="0.000" name="det849"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 388" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="817" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="119.018000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="108" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="745" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="61" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="113.472" p="0.000" name="det805"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 377" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="806" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="113.472000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="97" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="734" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="110.951" p="0.000" name="det782"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 372" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="801" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="110.951000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="92" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="729" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="111.959" p="0.000" name="det791"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 374" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="803" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="111.959000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="94" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="731" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="113.976" p="0.000" name="det808"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 378" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="807" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="113.976000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="98" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="735" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="112.968" p="0.000" name="det801"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 376" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="805" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="112.968000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="96" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="733" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="112.464" p="0.000" name="det794"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 375" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="804" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="112.464000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="95" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="732" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_1 rack_8">
+    <component type="He3 detector">
+      <location r="4.000" t="124.564" p="0.000" name="det891"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 437" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="937" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="124.564000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="79" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="875" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="125.068" p="0.000" name="det894"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 438" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="938" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="125.068000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="80" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="876" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="125.573" p="0.000" name="det900"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 439" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="939" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="125.573000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="81" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="877" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="126.077" p="0.000" name="det905"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 440" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="940" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="126.077000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="82" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="878" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="130.110" p="0.000" name="det934"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 448" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="948" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="130.110000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="90" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="886" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="129.606" p="0.000" name="det931"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 447" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="947" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="129.606000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="89" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="885" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="129.102" p="0.000" name="det929"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 446" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="946" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="129.102000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="88" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="884" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="128.094" p="0.000" name="det920"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 444" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="944" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="128.094000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="86" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="882" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="122.043" p="0.000" name="det870"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 432" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="932" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="122.043000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="74" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="870" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="124.060" p="0.000" name="det888"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 436" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="936" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="124.060000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="78" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="874" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="127.589" p="0.000" name="det917"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 443" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="943" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="127.589000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="85" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="881" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="135.656" p="0.000" name="det979"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 459" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="959" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="135.656000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="101" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="901" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="136.161" p="0.000" name="det983"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 460" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="960" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="136.161000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="102" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="902" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="136.665" p="0.000" name="det986"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 461" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="961" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="136.665000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="103" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="903" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="137.169" p="0.000" name="det991"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 462" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="962" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="137.169000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="104" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="904" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="128.598" p="0.000" name="det925"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 445" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="945" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="128.598000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="87" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="883" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="123.556" p="0.000" name="det882"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 435" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="935" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="123.556000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="77" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="873" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="140.194" p="0.000" name="det1005"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 468" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="968" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="140.194000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="110" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="830" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="73" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="139.690" p="0.000" name="det1004"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 467" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="967" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="139.690000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="109" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="829" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="73" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="137.673" p="0.000" name="det995"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 463" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="963" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="137.673000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="105" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="905" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="73" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="138.177" p="0.000" name="det998"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 464" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="964" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="138.177000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="106" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="906" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="73" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="138.682" p="0.000" name="det1000"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 465" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="965" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="138.682000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="107" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="907" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="73" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="139.186" p="0.000" name="det1002"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 466" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="966" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="139.186000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="108" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="908" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="73" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="127.085" p="0.000" name="det912"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 442" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="942" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="127.085000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="84" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="880" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="131.623" p="0.000" name="det946"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 451" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="951" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="131.623000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="93" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="889" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="135.152" p="0.000" name="det975"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 458" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="958" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="135.152000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="100" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="900" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="134.648" p="0.000" name="det973"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 457" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="957" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="134.648000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="99" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="899" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="134.144" p="0.000" name="det966"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 456" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="956" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="134.144000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="98" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="898" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="133.640" p="0.000" name="det963"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 455" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="955" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="133.640000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="97" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="897" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="133.135" p="0.000" name="det960"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 454" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="954" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="133.135000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="96" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="892" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="132.631" p="0.000" name="det956"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 453" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="953" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="132.631000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="95" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="891" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="132.127" p="0.000" name="det950"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 452" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="952" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="132.127000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="94" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="890" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="131.119" p="0.000" name="det942"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 450" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="950" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="131.119000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="92" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="888" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="126.581" p="0.000" name="det908"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 441" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="941" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="126.581000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="83" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="879" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="130.615" p="0.000" name="det941"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 449" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="949" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="130.615000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="91" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="887" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="121.539" p="0.000" name="det867"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 431" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="931" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="121.539000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="73" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="869" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="123.052" p="0.000" name="det878"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 434" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="934" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="123.052000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="76" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="872" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="122.547" p="0.000" name="det876"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 433" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="933" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="122.547000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="75" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="871" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_2 rack_1">
+    <component type="He3 detector">
+      <location r="4.000" t="-14.150" p="34.632" name="det1"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="25" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-14.150000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="6" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="2" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-13.140" p="37.831" name="det5"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="24" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-13.140000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="61" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="2" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-12.130" p="40.585" name="det10"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="23" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-12.130000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="2" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-11.120" p="46.347" name="det15"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="22" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-11.120000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="2" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-9.100" p="64.450" name="det21"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="21" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-9.100000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="64" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="2" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_2 rack_2">
+    <component type="He3 detector">
+      <location r="4.000" t="19.188" p="-25.032" name="det68"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 111" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="97" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="19.188000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="72" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="70" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="9.100" p="-64.450" name="det29"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 130" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="88" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="9.100000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="12.130" p="-40.585" name="det39"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 144" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="90" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="12.130000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="65" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="13.140" p="-37.831" name="det44"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 147" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="91" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="13.140000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="66" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="14.150" p="-34.632" name="det48"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 116" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="92" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="14.150000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="67" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="15.154" p="-32.164" name="det50"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 115" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="93" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="15.154400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="68" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="11.120" p="-46.347" name="det34"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 141" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="89" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="11.120000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="52" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="17.171" p="-28.099" name="det60"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 113" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="95" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="17.171200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="70" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="18.180" p="-26.479" name="det65"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 112" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="96" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="18.179600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="71" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="20.196" p="-23.732" name="det75"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 110" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="98" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="20.196300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="73" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="71" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="21.205" p="-22.562" name="det79"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 109" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="99" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="21.204700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="74" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="72" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="23.726" p="-19.738" name="det97"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="103" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="23.725700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="78" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="76" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="16.163" p="-30.002" name="det55"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 114" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="94" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="16.162800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="69" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="67" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="22.213" p="-21.503" name="det84"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 108" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="100" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="22.213100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="75" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="73" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="22.717" p="-20.580" name="det89"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 107" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="101" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="22.717300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="76" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="23.221" p="-20.168" name="det92"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="102" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="23.221500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="77" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="7" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_2 rack_3">
+    <component type="He3 detector">
+      <location r="4.000" t="38.852" p="-12.506" name="det210"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 246" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="243" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="38.851500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="140" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="173" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="39.356" p="-12.373" name="det215"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 247" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="244" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="39.355700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="141" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="174" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="39.860" p="-12.244" name="det219"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 248" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="245" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="39.859900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="142" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="175" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="42.381" p="-11.628" name="det239"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 253" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="250" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="42.380800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="147" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="180" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="16" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="40.868" p="-11.985" name="det227"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 250" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="247" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="40.868200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="144" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="177" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="16" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="41.372" p="-11.866" name="det230"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 251" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="248" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="41.372400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="145" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="178" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="16" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="41.877" p="-11.740" name="det234"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 252" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="249" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="41.876600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="146" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="179" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="16" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="36.835" p="-13.104" name="det196"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 242" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="239" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="36.834700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="136" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="169" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="38.347" p="-12.655" name="det208"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 245" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="242" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="38.347300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="139" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="172" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="43.389" p="-11.403" name="det249"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 256" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="252" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="43.389200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="39" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="149" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="182" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="16" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="37.843" p="-12.796" name="det204"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 244" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="241" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="37.843100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="138" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="171" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="32.801" p="-14.530" name="det163"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 234" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="231" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="32.801200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="128" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="161" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="40.364" p="-12.107" name="det222"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 249" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="246" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="40.364000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="143" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="176" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="16" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="37.339" p="-12.941" name="det199"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 243" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="240" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="37.338900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="137" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="170" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="31.289" p="-15.164" name="det153"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 231" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="228" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="31.288600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="125" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="158" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="31.793" p="-14.952" name="det156"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 232" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="229" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="31.792800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="126" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="159" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="32.297" p="-14.728" name="det160"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 233" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="230" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="32.297000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="127" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="160" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="34.818" p="-13.764" name="det179"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 238" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="235" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="34.817900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="132" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="165" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="33.305" p="-14.337" name="det166"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 235" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="232" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="33.305400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="129" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="162" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="33.809" p="-14.135" name="det170"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 236" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="233" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="33.809500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="130" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="163" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="34.314" p="-13.955" name="det174"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 237" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="234" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="34.313700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="131" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="164" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="29.776" p="-15.888" name="det141"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 228" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="225" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="29.776000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="122" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="155" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="35.322" p="-13.595" name="det183"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 239" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="236" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="35.322100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="133" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="166" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="30.280" p="-15.631" name="det144"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 229" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="226" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="30.280200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="123" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="156" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="28.263" p="-16.671" name="det128"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 225" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="222" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="28.263400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="119" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="152" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="29.272" p="-16.132" name="det135"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 227" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="224" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="29.271800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="121" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="154" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="28.768" p="-16.408" name="det132"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 226" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="223" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="28.767600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="120" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="153" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="30.784" p="-15.403" name="det149"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 230" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="227" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="30.784400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="124" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="157" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="27.759" p="-16.969" name="det124"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 224" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="221" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="27.759200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="118" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="151" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="35.826" p="-13.432" name="det188"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 240" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="237" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="35.826300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="134" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="167" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="25.238" p="-18.588" name="det105"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 219" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="216" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="25.238300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="113" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="146" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="24.230" p="-19.327" name="det98"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 217" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="214" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="24.229900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="111" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="144" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="24.734" p="-18.966" name="det103"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 218" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="215" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="24.734100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="112" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="145" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="25.742" p="-18.226" name="det111"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 220" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="217" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="25.742500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="114" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="147" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="36.331" p="-13.258" name="det191"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 241" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="238" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="36.330500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="135" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="168" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="15" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="26.247" p="-17.907" name="det115"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 221" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="218" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="26.246700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="115" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="148" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="26.751" p="-17.573" name="det117"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 222" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="219" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="26.750900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="116" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="149" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="27.255" p="-17.278" name="det122"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 223" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="220" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="27.255000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="117" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="150" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="14" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="42.885" p="-11.519" name="det242"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 255" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="251" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="42.885000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="148" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="181" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="16" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_2 rack_4">
+    <component type="He3 detector">
+      <location r="4.000" t="54.481" p="-9.605" name="det334"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 143" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="387" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="54.481400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="135" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="306" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="52.969" p="-9.799" name="det324"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 140" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="384" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="52.968900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="132" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="303" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="47.927" p="-10.543" name="det285"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 130" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="374" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="47.926900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="122" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="293" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="55.490" p="-9.488" name="det342"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 145" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="389" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="55.489800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="137" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="308" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="53.977" p="-9.666" name="det331"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 142" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="386" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="53.977300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="134" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="305" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="53.473" p="-9.729" name="det327"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 141" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="385" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="53.473100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="133" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="304" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="54.986" p="-9.546" name="det340"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 144" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="388" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="54.985600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="136" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="307" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="50.952" p="-10.072" name="det308"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 136" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="380" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="50.952100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="128" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="299" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="51.961" p="-9.932" name="det316"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 138" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="382" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="51.960500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="130" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="301" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="51.456" p="-10.001" name="det310"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 137" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="381" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="51.456300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="129" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="300" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="50.448" p="-10.144" name="det305"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 135" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="379" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="50.447900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="127" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="298" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="49.944" p="-10.225" name="det300"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 134" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="378" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="49.943700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="126" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="297" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="49.440" p="-10.302" name="det296"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 133" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="377" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="49.439500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="125" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="296" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="48.935" p="-10.380" name="det290"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 132" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="376" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="48.935300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="124" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="295" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="48.431" p="-10.460" name="det288"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 131" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="375" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="48.431100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="123" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="294" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="45.910" p="-10.902" name="det267"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 126" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="370" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="45.910200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="118" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="289" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="52.465" p="-9.864" name="det318"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 139" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="383" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="52.464700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="131" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="302" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="57.002" p="-9.317" name="det355"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 148" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="392" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="57.002400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="140" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="311" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="56.498" p="-9.376" name="det350"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 147" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="391" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="56.498200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="139" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="310" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="58.011" p="-9.214" name="det363"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 150" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="394" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="58.010800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="142" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="313" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="45.406" p="-10.996" name="det262"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 125" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="369" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="45.406000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="117" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="288" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="44.902" p="-11.100" name="det258"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 124" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="368" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="44.901800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="116" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="287" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="57.507" p="-9.265" name="det360"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 149" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="393" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="57.506600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="141" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="312" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="44.398" p="-11.198" name="det256"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 123" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="367" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="44.397600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="115" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="384" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="43.893" p="-11.299" name="det252"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 122" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="366" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="43.893400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="114" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="383" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="46.414" p="-10.811" name="det271"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 127" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="371" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="46.414400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="119" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="290" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="46.919" p="-10.722" name="det277"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 128" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="372" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="46.918500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="120" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="291" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="47.423" p="-10.635" name="det280"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 129" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="373" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="47.422700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="121" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="292" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="26" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="60.532" p="-8.972" name="det382"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 155" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="399" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="60.531800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="147" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="322" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="28" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="62.548" p="-8.803" name="det400"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 159" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="403" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="62.548500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="151" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="326" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="28" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="62.044" p="-8.844" name="det394"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 158" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="402" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="62.044300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="150" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="325" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="28" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="61.540" p="-8.885" name="det392"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 157" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="401" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="61.540100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="149" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="324" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="28" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="61.036" p="-8.928" name="det387"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 156" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="400" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="61.035900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="148" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="323" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="28" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="60.028" p="-9.021" name="det380"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 154" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="398" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="60.027600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="146" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="321" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="28" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="59.523" p="-9.068" name="det375"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 153" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="397" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="59.523400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="145" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="316" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="59.019" p="-9.115" name="det370"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 152" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="396" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="59.019200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="144" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="315" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="58.515" p="-9.164" name="det366"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 151" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="395" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="58.515000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="143" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="314" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="55.994" p="-9.431" name="det346"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 146" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="390" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="55.994000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="138" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="309" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="27" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_2 rack_5">
+    <component type="He3 detector">
+      <location r="4.000" t="77.170" p="-8.004" name="det517"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 267" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="548" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="77.170100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="145" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="474" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="82.212" p="-7.874" name="det557"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 277" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="558" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="82.212000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="39" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="155" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="484" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="40" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="81.708" p="-7.885" name="det550"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 276" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="557" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="81.707800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="154" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="483" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="40" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="81.204" p="-7.895" name="det547"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 275" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="556" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="81.203700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="153" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="482" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="40" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="80.699" p="-7.906" name="det545"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 274" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="555" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="80.699400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="152" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="481" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="40" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="78.178" p="-7.972" name="det523"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 269" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="550" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="78.178500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="147" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="476" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="79.691" p="-7.931" name="det537"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 272" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="553" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="79.691100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="150" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="479" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="40" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="79.187" p="-7.944" name="det533"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 271" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="552" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="79.186900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="149" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="478" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="40" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="78.683" p="-7.957" name="det526"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 270" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="551" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="78.682700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="148" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="477" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="77.674" p="-7.987" name="det519"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 268" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="549" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="77.674300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="146" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="475" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="76.666" p="-8.020" name="det513"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 266" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="547" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="76.665900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="144" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="473" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="80.195" p="-7.918" name="det540"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 273" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="554" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="80.195300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="151" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="480" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="40" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="76.162" p="-8.037" name="det509"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 265" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="546" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="76.161700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="143" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="472" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="69.607" p="-8.328" name="det454"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 251" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="533" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="69.607200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="130" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="459" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="65.070" p="-8.611" name="det420"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 242" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="524" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="65.069500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="121" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="450" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="63.053" p="-8.763" name="det404"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 238" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="520" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="63.052700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="117" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="442" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="67.590" p="-8.447" name="det441"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 247" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="529" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="67.590400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="126" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="455" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="63.557" p="-8.724" name="det406"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 239" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="521" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="63.556900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="118" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="443" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="64.061" p="-8.687" name="det411"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 240" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="522" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="64.061100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="119" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="444" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="64.565" p="-8.647" name="det416"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 241" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="523" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="64.565300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="120" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="449" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="66.078" p="-8.543" name="det427"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 244" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="526" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="66.077900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="123" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="452" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="66.582" p="-8.510" name="det430"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 245" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="527" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="66.582100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="124" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="453" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="67.086" p="-8.478" name="det436"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 246" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="528" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="67.086300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="125" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="454" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="65.574" p="-8.576" name="det423"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 243" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="525" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="65.573700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="122" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="451" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="75.153" p="-8.074" name="det500"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 263" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="544" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="75.153300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="141" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="470" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="68.599" p="-8.384" name="det446"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 249" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="531" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="68.598800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="128" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="457" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="68.095" p="-8.416" name="det444"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 248" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="530" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="68.094600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="127" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="456" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="71.624" p="-8.226" name="det472"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 256" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="537" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="71.624000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="134" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="463" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="74.649" p="-8.093" name="det496"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 262" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="543" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="74.649100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="140" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="469" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="74.145" p="-8.113" name="det490"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 261" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="542" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="74.145000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="139" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="468" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="73.641" p="-8.134" name="det486"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 260" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="541" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="73.640800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="138" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="467" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="70.111" p="-8.301" name="det458"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 253" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="534" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="70.111400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="131" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="460" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="73.137" p="-8.155" name="det483"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 259" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="540" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="73.136600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="137" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="466" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="72.632" p="-8.177" name="det479"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 258" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="539" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="72.632400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="136" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="465" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="75.657" p="-8.055" name="det505"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 264" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="545" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="75.657500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="142" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="471" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="72.128" p="-8.202" name="det474"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 257" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="538" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="72.128200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="135" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="464" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="69.103" p="-8.356" name="det453"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 250" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="532" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="69.103000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="129" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="458" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="71.120" p="-8.250" name="det469"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 255" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="536" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="71.119800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="133" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="462" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="39" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="70.616" p="-8.275" name="det462"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 254" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="535" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="70.615600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="132" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="461" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="38" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_2 rack_6">
+    <component type="He3 detector">
+      <location r="4.000" t="100.867" p="-7.941" name="det703"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 352" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="708" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="100.867000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="150" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="629" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="52" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="101.371" p="-7.956" name="det708"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 353" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="709" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="101.371000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="151" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="630" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="52" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="82.716" p="-7.865" name="det559"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 316" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="672" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="82.716200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="114" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="703" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="83.220" p="-7.856" name="det565"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 317" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="673" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="83.220400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="115" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="704" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="100.363" p="-7.928" name="det700"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 351" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="707" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="100.363000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="149" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="628" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="52" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="84.229" p="-7.841" name="det573"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 319" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="675" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="84.228800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="117" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="596" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="93.304" p="-7.813" name="det642"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 337" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="693" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="93.304300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="135" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="614" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="99.859" p="-7.916" name="det696"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 350" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="706" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="99.858800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="148" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="627" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="52" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="93.808" p="-7.817" name="det647"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 338" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="694" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="93.808400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="136" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="615" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="98.850" p="-7.893" name="det687"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 348" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="704" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="98.850400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="146" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="625" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="52" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="98.346" p="-7.883" name="det684"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 347" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="703" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="98.346200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="145" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="624" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="97.842" p="-7.873" name="det680"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 346" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="702" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="97.842000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="144" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="623" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="97.338" p="-7.864" name="det674"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 345" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="701" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="97.337800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="143" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="622" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="96.834" p="-7.855" name="det671"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 344" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="700" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="96.833600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="142" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="621" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="96.329" p="-7.847" name="det666"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 343" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="699" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="96.329400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="141" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="620" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="92.800" p="-7.809" name="det641"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 336" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="692" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="92.800100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="134" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="613" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="95.825" p="-7.840" name="det662"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 342" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="698" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="95.825200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="140" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="619" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="95.321" p="-7.833" name="det659"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 341" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="697" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="95.321000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="139" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="618" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="99.355" p="-7.904" name="det690"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 349" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="705" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="99.354600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="147" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="626" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="52" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="92.296" p="-7.806" name="det634"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 335" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="691" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="92.295900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="133" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="612" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="87.254" p="-7.809" name="det595"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 325" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="681" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="87.254000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="123" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="602" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="91.287" p="-7.802" name="det626"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 333" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="689" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="91.287500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="131" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="610" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="83.725" p="-7.848" name="det569"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 318" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="674" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="83.724600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="116" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="595" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="84.733" p="-7.834" name="det577"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 320" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="676" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="84.733000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="118" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="597" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="85.237" p="-7.828" name="det580"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 321" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="677" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="85.237200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="119" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="598" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="85.741" p="-7.823" name="det583"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 322" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="678" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="85.741400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="120" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="599" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="86.246" p="-7.818" name="det587"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 323" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="679" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="86.245600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="121" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="600" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="86.750" p="-7.813" name="det592"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 324" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="680" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="86.749800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="122" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="601" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="94.817" p="-7.827" name="det657"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 340" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="696" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="94.816800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="138" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="617" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="91.792" p="-7.804" name="det631"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 334" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="690" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="91.791700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="132" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="611" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="87.758" p="-7.806" name="det599"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 326" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="682" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="87.758100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="124" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="603" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="88.766" p="-7.802" name="det607"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 328" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="684" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="88.766500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="126" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="605" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="89.271" p="-7.801" name="det610"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 329" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="685" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="89.270700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="127" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="606" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="89.775" p="-7.800" name="det615"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 330" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="686" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="89.774900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="128" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="607" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="90.279" p="-7.800" name="det619"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 331" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="687" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="90.279100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="129" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="608" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="90.783" p="-7.801" name="det622"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 332" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="688" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="90.783300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="130" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="609" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="88.262" p="-7.804" name="det603"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 327" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="683" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="88.262300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="125" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="604" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="50" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="94.313" p="-7.822" name="det651"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 339" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="695" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="94.312700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="137" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="616" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="51" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_2 rack_7">
+    <component type="He3 detector">
+      <location r="4.000" t="112.968" p="-8.472" name="det799"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 416" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="844" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="112.968000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="135" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="778" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="102.884" p="-8.001" name="det721"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 395" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="824" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="102.884000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="115" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="754" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="103.388" p="-8.017" name="det723"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 396" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="825" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="103.388000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="116" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="755" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="101.876" p="-7.970" name="det711"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 389" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="822" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="101.876000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="113" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="746" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="102.380" p="-7.985" name="det715"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 394" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="823" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="102.380000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="114" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="753" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="112.464" p="-8.441" name="det796"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 415" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="843" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="112.464000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="134" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="777" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="119.522" p="-8.968" name="det850"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 429" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="857" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="119.522000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="148" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="791" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="64" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="118.010" p="-8.836" name="det840"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 426" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="854" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="118.010000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="145" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="788" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="64" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="113.472" p="-8.504" name="det802"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 417" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="845" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="113.472000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="136" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="779" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="104.901" p="-8.070" name="det734"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 399" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="828" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="104.901000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="119" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="758" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="105.405" p="-8.089" name="det741"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 400" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="829" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="105.405000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="120" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="759" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="105.909" p="-8.109" name="det745"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 401" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="830" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="105.909000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="121" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="760" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="117.506" p="-8.795" name="det834"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 425" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="853" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="117.506000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="144" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="787" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="106.917" p="-8.153" name="det753"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 403" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="832" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="106.917000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="123" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="762" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="107.422" p="-8.175" name="det754"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 404" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="833" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="107.422000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="124" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="763" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="107.926" p="-8.198" name="det761"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 406" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="834" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="107.926000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="125" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="764" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="108.430" p="-8.221" name="det765"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 407" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="835" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="108.430000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="126" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="769" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="108.934" p="-8.246" name="det768"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 408" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="836" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="108.934000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="127" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="770" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="109.438" p="-8.271" name="det771"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 409" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="837" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="109.438000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="128" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="771" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="109.943" p="-8.296" name="det777"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 410" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="838" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="109.943000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="129" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="772" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="110.447" p="-8.326" name="det779"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 411" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="839" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="110.447000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="130" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="773" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="110.951" p="-8.353" name="det785"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 412" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="840" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="110.951000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="131" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="774" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="111.455" p="-8.382" name="det786"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 413" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="841" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="111.455000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="132" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="775" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="111.959" p="-8.411" name="det790"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 414" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="842" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="111.959000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="133" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="776" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="120.026" p="-9.013" name="det855"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 430" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="858" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="120.026000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="149" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="792" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="64" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="103.892" p="-8.034" name="det726"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 397" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="826" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="103.892000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="117" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="756" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="118.514" p="-8.881" name="det844"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 427" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="855" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="118.514000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="146" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="789" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="64" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="104.397" p="-8.052" name="det732"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 398" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="827" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="104.397000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="118" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="757" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="117.001" p="-8.756" name="det832"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 424" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="852" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="117.001000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="143" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="786" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="115.993" p="-8.680" name="det822"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 422" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="850" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="115.993000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="141" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="784" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="115.489" p="-8.643" name="det818"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 421" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="849" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="115.489000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="140" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="783" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="114.985" p="-8.608" name="det814"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 420" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="848" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="114.985000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="139" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="782" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="116.497" p="-8.717" name="det828"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 423" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="851" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="116.497000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="142" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="785" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="113.976" p="-8.536" name="det809"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 418" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="846" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="113.976000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="137" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="780" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="106.413" p="-8.132" name="det746"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 402" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="831" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="106.413000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="122" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="761" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="62" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="114.480" p="-8.570" name="det811"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 419" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="847" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="114.480000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="138" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="781" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="63" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="119.018" p="-8.924" name="det848"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 428" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="856" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="119.018000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="147" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="790" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="64" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_2 rack_8">
+    <component type="He3 detector">
+      <location r="4.000" t="139.186" p="-11.971" name="det1003"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 507" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="1006" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="139.186000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="148" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="944" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="76" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="137.673" p="-11.612" name="det993"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 194" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="1003" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="137.673000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="145" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="941" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="76" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="137.169" p="-11.503" name="det992"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 193" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="1002" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="137.169000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="144" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="940" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="76" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="136.665" p="-11.396" name="det989"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 501" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="1001" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="136.665000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="143" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="939" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="76" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="128.598" p="-9.994" name="det924"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 485" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="985" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="128.598000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="127" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="923" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="128.094" p="-9.919" name="det918"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 484" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="984" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="128.094000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="126" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="922" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="120.531" p="-9.059" name="det861"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 469" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="969" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="120.531000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="111" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="831" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="121.035" p="-9.106" name="det864"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 470" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="970" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="121.035000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="112" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="832" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="121.539" p="-9.155" name="det866"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 471" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="971" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="121.539000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="113" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="909" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="122.043" p="-9.209" name="det872"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 472" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="972" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="122.043000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="114" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="910" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="122.547" p="-9.260" name="det875"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 473" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="973" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="122.547000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="115" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="911" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="123.052" p="-9.312" name="det880"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 474" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="974" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="123.052000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="116" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="912" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="138.177" p="-11.725" name="det996"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 505" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="1004" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="138.177000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="146" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="942" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="76" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="123.556" p="-9.366" name="det884"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 475" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="975" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="123.556000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="117" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="913" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="131.119" p="-10.365" name="det944"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 490" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="990" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="131.119000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="132" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="928" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="125.068" p="-9.535" name="det895"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 478" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="978" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="125.068000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="120" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="916" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="131.623" p="-10.452" name="det947"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 491" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="991" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="131.623000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="133" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="929" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="132.127" p="-10.535" name="det953"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 492" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="992" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="132.127000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="134" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="930" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="132.631" p="-10.619" name="det957"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 493" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="993" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="132.631000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="135" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="931" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="133.135" p="-10.705" name="det961"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 494" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="994" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="133.135000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="136" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="932" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="133.640" p="-10.794" name="det964"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 495" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="995" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="133.640000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="137" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="933" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="134.144" p="-10.893" name="det969"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 496" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="996" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="134.144000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="138" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="934" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="134.648" p="-10.987" name="det972"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 497" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="997" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="134.648000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="139" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="935" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="135.152" p="-11.083" name="det976"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 498" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="998" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="135.152000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="140" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="936" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="135.656" p="-11.181" name="det978"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 499" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="999" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="135.656000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="141" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="937" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="130.615" p="-10.287" name="det940"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 489" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="989" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="130.615000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="131" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="927" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="138.682" p="-11.851" name="det999"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 506" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="1005" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="138.682000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="147" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="943" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="76" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="130.110" p="-10.211" name="det937"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 488" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="988" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="130.110000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="130" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="926" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="129.606" p="-10.137" name="det932"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 487" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="987" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="129.606000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="129" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="925" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="129.102" p="-10.065" name="det927"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 486" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="986" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="129.102000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="128" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="924" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="124.060" p="-9.421" name="det886"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 476" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="976" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="124.060000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="118" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="914" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="127.589" p="-9.852" name="det916"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 483" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="983" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="127.589000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="125" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="921" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="127.085" p="-9.786" name="det911"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 482" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="982" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="127.085000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="124" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="920" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="126.581" p="-9.723" name="det909"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 481" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="981" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="126.581000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="123" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="919" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="126.077" p="-9.660" name="det902"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 480" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="980" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="126.077000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="122" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="918" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="125.573" p="-9.599" name="det899"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 479" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="979" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="125.573000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="121" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="917" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="136.161" p="-11.282" name="det984"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 500" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="1000" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="136.161000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="142" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="938" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="75" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="124.564" p="-9.477" name="det893"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 477" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="977" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="124.564000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="119" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="915" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="74" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_3 rack_1">
+    <component type="He3 detector">
+      <location r="4.000" t="-11.120" p="-46.347" name="det14"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="2" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-11.120000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="127" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="3" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-12.130" p="-41.008" name="det9"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="3" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-12.130000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="126" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="3" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-13.140" p="-37.831" name="det6"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="4" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-13.140000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="125" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="3" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-14.150" p="-34.738" name="det2"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="5" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-14.150000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="12" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="3" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="-9.100" p="-64.450" name="det20"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="1" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="-9.100000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="128" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="3" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_3 rack_2">
+    <component type="He3 detector">
+      <location r="4.000" t="24.230" p="19.330" name="det101"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="54" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="24.229900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="89" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="9" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="17.171" p="28.171" name="det61"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="B 108" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="44" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="17.171200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="79" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="18.180" p="26.479" name="det64"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="B 107" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="45" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="18.179600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="19.188" p="25.032" name="det71"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 127" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="46" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="19.188000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="20.196" p="23.732" name="det76"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="B 104" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="47" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="20.196300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="82" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="22.213" p="21.093" name="det87"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 140" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="50" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="22.213100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="85" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="21.709" p="21.545" name="det82"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="B 102" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="49" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="21.708900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="84" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="16.163" p="30.002" name="det56"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="B 109" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="43" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="16.162800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="22.717" p="20.622" name="det90"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="B 100" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="51" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="22.717300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="86" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="23.221" p="20.172" name="det94"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="52" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="23.221500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="87" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="23.726" p="19.741" name="det95"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="53" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="23.725700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="88" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="9" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="21.205" p="22.562" name="det78"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="B 103" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="48" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="21.204700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="83" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="14.150" p="34.738" name="det47"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="B 111" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="41" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="14.150000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="60" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="15.154" p="32.164" name="det51"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="B 110" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="42" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="15.154400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="12.130" p="41.008" name="det40"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 103" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="39" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="12.130000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="58" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="11.120" p="46.347" name="det35"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 449" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="38" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="11.120000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="9.100" p="64.450" name="det28"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 104" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="37" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="9.100000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="13.140" p="37.831" name="det43"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 105" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="40" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="13.140000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="59" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="8" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_3 rack_3">
+    <component type="He3 detector">
+      <location r="4.000" t="30.280" p="15.633" name="det142"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 268" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="148" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="30.280200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="198" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="30.784" p="15.405" name="det147"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 269" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="149" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="30.784400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="199" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="31.289" p="15.165" name="det151"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 270" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="150" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="31.288600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="200" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="32.297" p="14.729" name="det158"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 272" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="152" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="32.297000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="202" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="39.860" p="12.245" name="det221"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 287" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="167" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="39.859900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="217" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="34.818" p="13.766" name="det178"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 277" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="157" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="34.817900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="207" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="35.322" p="13.597" name="det185"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 278" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="158" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="35.322100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="208" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="32.801" p="14.531" name="det162"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 273" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="153" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="32.801200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="203" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="36.331" p="13.259" name="det192"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 280" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="160" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="36.330500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="210" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="36.835" p="13.105" name="det194"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 281" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="161" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="36.834700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="211" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="37.339" p="12.942" name="det198"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 282" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="162" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="37.338900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="212" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="37.843" p="12.797" name="det205"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 283" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="163" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="37.843100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="213" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="38.347" p="12.656" name="det206"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 284" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="164" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="38.347300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="214" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="39.356" p="12.374" name="det216"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 286" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="166" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="39.355700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="216" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="38.852" p="12.507" name="det212"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 285" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="165" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="38.851500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="215" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="35.826" p="13.433" name="det189"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 279" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="159" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="35.826300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="209" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="29.776" p="15.890" name="det140"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 267" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="147" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="29.776000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="197" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="34.314" p="13.956" name="det175"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 276" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="156" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="34.313700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="206" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="28.768" p="16.410" name="det133"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 265" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="145" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="28.767600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="195" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="43.389" p="11.403" name="det248"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 294" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="174" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="43.389200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="71" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="190" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="19" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="42.885" p="11.520" name="det245"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 293" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="173" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="42.885000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="70" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="189" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="19" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="42.381" p="11.629" name="det238"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 292" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="172" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="42.380800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="69" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="222" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="19" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="41.877" p="11.741" name="det237"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 291" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="171" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="41.876600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="68" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="221" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="19" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="41.372" p="11.867" name="det232"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 290" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="170" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="41.372400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="67" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="220" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="19" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="29.272" p="16.134" name="det136"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 266" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="146" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="29.271800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="196" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="40.364" p="12.108" name="det225"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 288" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="168" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="40.364000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="65" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="218" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="31.793" p="14.953" name="det157"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 271" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="151" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="31.792800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="201" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="40.868" p="11.986" name="det229"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 289" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="169" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="40.868200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="66" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="219" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="19" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="25.238" p="18.591" name="det106"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 258" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="138" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="25.238300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="184" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="25.742" p="18.229" name="det110"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 259" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="139" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="25.742500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="185" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="26.247" p="17.910" name="det114"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 260" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="140" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="26.246700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="186" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="33.305" p="14.339" name="det168"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 274" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="154" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="33.305400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="204" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="26.751" p="17.575" name="det118"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 261" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="141" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="26.750900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="187" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="27.255" p="17.280" name="det121"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 262" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="142" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="27.255000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="188" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="27.759" p="16.971" name="det125"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 263" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="143" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="27.759200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="193" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="28.263" p="16.673" name="det126"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 264" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="144" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="28.263400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="194" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="24.734" p="18.969" name="det104"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 257" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="137" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="24.734100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="183" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="17" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="33.809" p="14.136" name="det172"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 275" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="155" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="33.809500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="205" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="18" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_3 rack_4">
+    <component type="He3 detector">
+      <location r="4.000" t="47.927" p="10.543" name="det283"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 168" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="298" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="47.926900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="335" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="46.919" p="10.722" name="det276"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 166" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="296" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="46.918500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="333" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="47.423" p="10.635" name="det278"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 167" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="297" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="47.422700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="334" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="52.465" p="9.864" name="det321"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 177" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="307" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="52.464700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="344" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="48.431" p="10.460" name="det289"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 169" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="299" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="48.431100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="336" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="52.969" p="9.799" name="det325"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 178" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="308" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="52.968900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="345" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="45.406" p="10.996" name="det263"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 163" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="293" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="45.406000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="330" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="51.456" p="10.001" name="det313"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 175" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="305" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="51.456300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="342" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="55.994" p="9.431" name="det347"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 184" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="314" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="55.994000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="351" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="55.490" p="9.488" name="det343"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 183" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="313" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="55.489800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="350" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="54.986" p="9.546" name="det339"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 182" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="312" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="54.985600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="349" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="54.481" p="9.605" name="det335"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 181" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="311" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="54.481400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="348" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="46.414" p="10.811" name="det270"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 165" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="295" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="46.414400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="332" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="50.952" p="10.072" name="det307"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 174" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="304" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="50.952100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="341" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="53.977" p="9.666" name="det330"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 180" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="310" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="53.977300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="347" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="49.440" p="10.302" name="det295"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 171" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="301" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="49.439500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="338" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="48.935" p="10.380" name="det292"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 170" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="300" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="48.935300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="337" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="44.902" p="11.101" name="det259"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 162" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="292" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="44.901800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="329" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="44.398" p="11.199" name="det255"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 161" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="291" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="44.397600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="328" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="43.893" p="11.300" name="det253"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 160" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="290" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="43.893400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="327" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="53.473" p="9.729" name="det326"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 179" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="309" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="53.473100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="346" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="45.910" p="10.902" name="det268"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 164" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="294" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="45.910200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="331" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="50.448" p="10.144" name="det302"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 173" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="303" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="50.447900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="340" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="51.961" p="9.932" name="det317"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 176" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="306" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="51.960500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="343" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="59.523" p="9.068" name="det376"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 192" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="321" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="59.523400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="69" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="358" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="60.028" p="9.021" name="det378"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 193" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="322" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="60.027600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="70" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="359" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="31" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="49.944" p="10.225" name="det299"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 172" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="302" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="49.943700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="339" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="29" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="61.036" p="8.928" name="det386"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 195" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="324" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="61.035900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="72" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="361" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="31" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="59.019" p="9.115" name="det372"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 190" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="320" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="59.019200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="68" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="357" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="58.515" p="9.164" name="det368"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 189" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="319" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="58.515000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="67" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="356" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="58.011" p="9.214" name="det364"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 188" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="318" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="58.010800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="66" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="355" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="57.507" p="9.265" name="det361"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 187" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="317" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="57.506600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="65" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="354" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="56.498" p="9.376" name="det351"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 185" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="315" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="56.498200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="352" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="62.548" p="8.803" name="det399"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 198" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="327" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="62.548500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="75" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="446" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="31" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="61.540" p="8.885" name="det391"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 196" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="325" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="61.540100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="73" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="362" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="31" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="62.044" p="8.843" name="det397"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 197" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="326" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="62.044300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="74" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="445" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="31" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="57.002" p="9.317" name="det356"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 186" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="316" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="57.002400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="353" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="30" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="60.532" p="8.972" name="det383"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHU 194" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="323" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="60.531800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="71" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="360" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="31" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_3 rack_5">
+    <component type="He3 detector">
+      <location r="4.000" t="72.128" p="8.202" name="det475"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 124" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="460" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="72.128200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="503" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="63.557" p="8.724" name="det408"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 160" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="443" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="63.556900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="486" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="71.624" p="8.226" name="det473"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 123" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="459" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="71.624000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="502" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="74.649" p="8.093" name="det495"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 414" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="465" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="74.649100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="508" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="73.137" p="8.155" name="det482"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 126" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="462" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="73.136600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="505" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="63.053" p="8.763" name="det405"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 159" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="442" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="63.052700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="485" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="73.641" p="8.134" name="det489"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 412" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="463" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="73.640800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="506" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="71.120" p="8.250" name="det466"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 112" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="458" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="71.119800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="501" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="75.657" p="8.055" name="det504"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 416" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="467" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="75.657500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="514" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="75.153" p="8.074" name="det498"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 415" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="466" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="75.153300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="513" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="74.145" p="8.113" name="det492"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 413" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="464" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="74.145000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="507" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="72.632" p="8.177" name="det481"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 125" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="461" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="72.632400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="504" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="70.616" p="8.275" name="det463"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 175" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="457" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="70.615600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="500" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="66.078" p="8.543" name="det429"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 166" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="448" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="66.077900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="491" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="69.607" p="8.328" name="det457"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 173" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="455" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="69.607200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="498" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="65.574" p="8.576" name="det424"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 165" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="447" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="65.573700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="490" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="67.590" p="8.447" name="det439"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 169" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="451" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="67.590400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="494" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="64.565" p="8.647" name="det415"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 162" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="445" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="64.565300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="488" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="65.070" p="8.611" name="det418"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 164" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="446" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="65.069500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="489" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="82.212" p="7.874" name="det556"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 435" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="480" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="82.212000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="39" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="77" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="511" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="43" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="76.162" p="8.037" name="det508"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 417" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="468" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="76.161700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="65" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="515" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="70.111" p="8.301" name="det459"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 174" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="456" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="70.111400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="499" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="81.708" p="7.885" name="det551"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 433" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="479" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="81.707800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="76" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="510" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="43" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="66.582" p="8.510" name="det431"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 167" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="449" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="66.582100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="492" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="67.086" p="8.478" name="det437"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 168" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="450" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="67.086300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="493" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="68.095" p="8.416" name="det442"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 170" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="452" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="68.094600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="495" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="64.061" p="8.687" name="det410"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 161" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="444" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="64.061100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="487" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="68.599" p="8.384" name="det448"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 171" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="453" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="68.598800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="496" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="69.103" p="8.356" name="det451"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="GHT 172" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="454" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="69.103000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="497" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="41" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="81.204" p="7.895" name="det549"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 432" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="478" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="81.203700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="75" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="509" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="43" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="76.666" p="8.020" name="det510"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 421" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="469" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="76.665900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="66" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="516" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="80.195" p="7.918" name="det541"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 429" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="476" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="80.195300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="73" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="523" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="43" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="77.674" p="7.987" name="det521"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 423" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="471" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="77.674300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="68" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="518" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="80.699" p="7.906" name="det543"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 431" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="477" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="80.699400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="74" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="524" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="43" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="79.691" p="7.931" name="det534"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 430" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="475" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="79.691100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="72" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="522" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="43" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="77.170" p="8.004" name="det514"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 422" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="470" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="77.170100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="67" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="517" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="78.683" p="7.957" name="det527"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 426" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="473" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="78.682700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="70" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="520" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="78.178" p="7.972" name="det524"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 425" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="472" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="78.178500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="69" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="519" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="42" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="79.187" p="7.944" name="det530"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 427" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="474" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="79.186900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="71" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="521" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="43" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_3 rack_6">
+    <component type="He3 detector">
+      <location r="4.000" t="95.321" p="7.833" name="det660"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 354" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="621" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="95.321000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="660" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="93.304" p="7.813" name="det645"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 350" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="617" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="93.304300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="656" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="92.800" p="7.809" name="det639"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 349" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="616" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="92.800100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="655" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="101.371" p="7.955" name="det706"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 368" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="633" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="101.371000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="75" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="766" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="55" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="100.867" p="7.941" name="det705"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 366" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="632" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="100.867000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="74" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="765" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="55" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="100.363" p="7.928" name="det701"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 365" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="631" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="100.363000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="73" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="670" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="55" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="99.859" p="7.916" name="det697"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 364" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="630" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="99.858800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="72" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="669" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="55" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="94.817" p="7.827" name="det654"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 353" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="620" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="94.816800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="659" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="99.355" p="7.904" name="det693"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 363" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="629" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="99.354600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="71" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="668" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="55" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="91.792" p="7.804" name="det630"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 347" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="614" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="91.791700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="653" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="97.842" p="7.873" name="det681"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 359" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="626" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="97.842000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="68" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="665" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="97.338" p="7.864" name="det675"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 358" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="625" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="97.337800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="67" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="664" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="96.834" p="7.855" name="det672"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 357" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="624" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="96.833600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="66" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="663" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="96.329" p="7.847" name="det667"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 356" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="623" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="96.329400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="65" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="662" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="95.825" p="7.840" name="det665"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 355" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="622" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="95.825200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="661" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="98.850" p="7.893" name="det688"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 361" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="628" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="98.850400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="70" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="667" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="55" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="98.346" p="7.883" name="det685"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 360" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="627" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="98.346200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="69" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="666" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="82.716" p="7.865" name="det558"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 328" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="596" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="82.716200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="631" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="94.313" p="7.822" name="det653"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 352" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="619" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="94.312700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="658" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="91.287" p="7.802" name="det627"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 346" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="613" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="91.287500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="652" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="90.783" p="7.801" name="det625"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 345" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="612" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="90.783300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="651" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="90.279" p="7.800" name="det618"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 344" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="611" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="90.279100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="650" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="89.775" p="7.800" name="det614"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 343" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="610" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="89.774900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="649" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="89.271" p="7.801" name="det612"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 342" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="609" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="89.270700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="648" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="88.766" p="7.802" name="det608"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 341" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="608" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="88.766500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="647" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="88.262" p="7.804" name="det604"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 340" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="607" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="88.262300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="646" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="87.758" p="7.806" name="det600"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 339" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="606" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="87.758100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="645" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="87.254" p="7.809" name="det597"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 338" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="605" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="87.254000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="644" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="86.750" p="7.813" name="det591"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 337" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="604" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="86.749800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="643" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="86.246" p="7.818" name="det586"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 336" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="603" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="86.245600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="642" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="85.741" p="7.823" name="det582"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 335" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="602" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="85.741400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="641" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="85.237" p="7.828" name="det581"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 334" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="601" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="85.237200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="636" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="84.733" p="7.834" name="det576"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 332" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="600" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="84.733000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="635" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="84.229" p="7.841" name="det571"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 331" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="599" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="84.228800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="634" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="83.220" p="7.856" name="det562"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 329" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="597" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="83.220400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="632" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="83.725" p="7.848" name="det566"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 330" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="598" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="83.724600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="633" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="53" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="93.808" p="7.817" name="det648"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 351" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="618" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="93.808400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="657" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="92.296" p="7.806" name="det637"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 348" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="615" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="92.295900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="654" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="54" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_3 rack_7">
+    <component type="He3 detector">
+      <location r="4.000" t="102.884" p="8.001" name="det719"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 235" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="748" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="102.884000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="794" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="102.380" p="7.985" name="det717"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 234" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="747" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="102.380000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="793" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="101.876" p="7.970" name="det712"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 233" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="746" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="101.876000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="751" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="105.909" p="8.109" name="det742"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 241" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="754" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="105.909000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="800" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="106.917" p="8.153" name="det752"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 243" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="756" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="106.917000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="802" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="107.422" p="8.175" name="det757"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 244" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="757" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="107.422000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="803" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="107.926" p="8.198" name="det759"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 246" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="758" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="107.926000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="804" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="108.430" p="8.221" name="det763"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 247" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="759" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="108.430000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="805" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="108.934" p="8.246" name="det769"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 248" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="760" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="108.934000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="806" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="109.438" p="8.271" name="det770"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 249" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="761" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="109.438000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="807" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="109.943" p="8.296" name="det776"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 251" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="762" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="109.943000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="808" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="110.447" p="8.326" name="det781"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 252" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="763" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="110.447000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="809" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="104.901" p="8.070" name="det735"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 239" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="752" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="104.901000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="798" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="104.397" p="8.052" name="det733"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 238" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="751" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="104.397000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="797" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="103.892" p="8.034" name="det729"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 237" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="750" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="103.892000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="796" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="111.959" p="8.411" name="det792"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 256" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="766" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="111.959000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="812" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="111.455" p="8.382" name="det788"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 255" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="765" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="111.455000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="811" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="103.388" p="8.017" name="det724"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 236" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="749" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="103.388000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="795" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="110.951" p="8.353" name="det783"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 253" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="764" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="110.951000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="810" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="112.968" p="8.472" name="det798"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 258" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="768" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="112.968000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="814" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="118.514" p="8.881" name="det843"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 274" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="779" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="118.514000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="70" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="825" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="67" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="115.993" p="8.680" name="det823"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 267" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="774" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="115.993000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="65" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="820" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="116.497" p="8.717" name="det827"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 269" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="775" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="116.497000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="66" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="821" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="117.001" p="8.756" name="det830"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 270" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="776" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="117.001000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="67" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="822" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="117.506" p="8.795" name="det837"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 271" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="777" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="117.506000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="68" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="823" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="118.010" p="8.836" name="det839"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 273" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="778" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="118.010000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="69" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="824" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="67" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="119.018" p="8.924" name="det847"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 275" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="780" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="119.018000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="71" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="826" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="67" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="106.413" p="8.132" name="det749"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 242" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="755" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="106.413000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="801" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="119.522" p="8.968" name="det852"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 276" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="781" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="119.522000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="72" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="827" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="67" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="112.464" p="8.441" name="det795"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 257" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="767" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="112.464000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="813" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="120.026" p="9.013" name="det857"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 277" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="782" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="120.026000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="73" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="828" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="67" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="114.985" p="8.608" name="det816"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 265" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="772" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="114.985000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="818" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="105.405" p="8.089" name="det738"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 240" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="753" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="105.405000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="799" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="65" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="114.480" p="8.570" name="det813"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 264" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="771" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="114.480000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="817" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="113.976" p="8.536" name="det807"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 262" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="770" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="113.976000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="816" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="113.472" p="8.504" name="det804"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 259" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="769" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="113.472000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="815" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="115.489" p="8.643" name="det819"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 266" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="773" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="115.489000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="819" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="66" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_3 rack_8">
+    <component type="He3 detector">
+      <location r="4.000" t="137.673" p="11.612" name="det994"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 190" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="928" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="137.673000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="70" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="983" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="79" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="136.161" p="11.282" name="det982"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 187" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="925" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="136.161000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="67" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="980" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="120.531" p="9.059" name="det858"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 153" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="894" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="120.531000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="945" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="138.177" p="11.725" name="det997"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 191" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="929" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="138.177000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="71" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="984" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="79" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="137.169" p="11.503" name="det990"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 189" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="927" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="137.169000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="69" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="982" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="79" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="136.665" p="11.396" name="det988"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 188" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="926" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="136.665000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="68" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="981" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="79" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="130.110" p="10.211" name="det935"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 173" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="913" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="130.110000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="968" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="135.656" p="11.181" name="det980"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 186" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="924" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="135.656000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="66" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="979" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="129.606" p="10.137" name="det933"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 171" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="912" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="129.606000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="967" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="128.598" p="9.994" name="det923"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 169" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="910" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="128.598000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="965" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="128.094" p="9.919" name="det921"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 168" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="909" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="128.094000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="964" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="127.589" p="9.852" name="det915"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 167" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="908" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="127.589000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="963" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="127.085" p="9.786" name="det910"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 166" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="907" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="127.085000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="962" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="126.581" p="9.723" name="det906"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 165" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="906" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="126.581000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="961" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="126.077" p="9.660" name="det903"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 164" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="905" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="126.077000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="956" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="125.573" p="9.599" name="det901"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 163" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="904" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="125.573000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="955" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="125.068" p="9.535" name="det896"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 162" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="903" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="125.068000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="954" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="124.564" p="9.477" name="det890"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 161" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="902" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="124.564000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="953" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="124.060" p="9.421" name="det887"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 160" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="901" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="124.060000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="952" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="123.556" p="9.366" name="det883"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 159" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="900" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="123.556000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="951" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="123.052" p="9.312" name="det879"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 158" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="899" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="123.052000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="950" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="131.119" p="10.365" name="det945"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 175" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="915" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="131.119000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="970" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="131.623" p="10.452" name="det949"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 176" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="916" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="131.623000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="971" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="121.035" p="9.106" name="det865"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 154" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="895" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="121.035000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="946" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="121.539" p="9.155" name="det868"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 155" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="896" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="121.539000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="947" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="122.043" p="9.209" name="det871"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 156" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="897" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="122.043000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="948" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="134.144" p="10.893" name="det968"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 182" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="921" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="134.144000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="976" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="129.102" p="10.065" name="det928"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 170" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="911" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="129.102000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="966" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="135.152" p="11.083" name="det977"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 184" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="923" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="135.152000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="65" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="978" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="132.127" p="10.535" name="det951"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 177" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="917" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="132.127000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="972" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="132.631" p="10.619" name="det955"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 178" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="918" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="132.631000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="973" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="133.135" p="10.705" name="det959"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 179" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="919" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="133.135000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="974" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="133.640" p="10.794" name="det965"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 180" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="920" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="133.640000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="975" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="134.648" p="10.987" name="det970"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 183" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="922" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="134.648000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="977" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="130.615" p="10.287" name="det938"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 174" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="914" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="130.615000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="969" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="78" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="122.547" p="9.260" name="det874"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 157" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="898" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="122.547000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="949" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="77" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="138.682" p="11.851" name="det1001"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 192" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="930" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="138.682000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="72" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="985" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="79" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_4 rack_2">
+    <component type="He3 detector">
+      <location r="4.000" t="26.247" p="38.155" name="det113"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="35" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="26.246700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="99" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="19.188" p="56.679" name="det70"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="28" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="19.188000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="92" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="23.221" p="43.942" name="det93"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="32" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="23.221500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="96" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="22.213" p="46.310" name="det86"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="31" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="22.213100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="95" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="21.205" p="49.171" name="det81"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="30" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="21.204700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="94" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="20.196" p="51.923" name="det74"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="29" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="20.196300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="93" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="17.675" p="64.917" name="det63"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="27" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="17.675400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="91" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="16.163" p="76.801" name="det57"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="26" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="16.162800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="90" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="24.230" p="41.777" name="det99"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="33" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="24.229900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="97" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="25.238" p="39.922" name="det107"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="34" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="25.238300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="98" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="27.255" p="36.639" name="det120"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="36" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="27.255000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="100" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="10" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_4 rack_3">
+    <component type="He3 detector">
+      <location r="4.000" t="31.793" p="30.721" name="det155"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 493" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="111" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="31.792800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="229" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="31.289" p="31.218" name="det150"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 492" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="110" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="31.288600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="228" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="30.784" p="31.733" name="det146"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 491" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="109" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="30.784400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="227" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="30.280" p="32.265" name="det145"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 490" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="108" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="30.280200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="226" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="28.768" p="33.980" name="det130"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 486" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="105" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="28.767600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="223" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="29.272" p="33.388" name="det134"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 487" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="106" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="29.271800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="224" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="32.297" p="30.241" name="det159"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 495" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="112" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="32.297000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="230" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="28.263" p="35.235" name="det129"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 485" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="104" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="28.263400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="191" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="37.843" p="26.039" name="det202"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="123" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="37.843100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="241" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="29.776" p="32.817" name="det139"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 489" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="107" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="29.776000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="225" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="33.305" p="29.362" name="det167"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 499" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="114" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="33.305400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="232" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="43.893" p="22.850" name="det250"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 148" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="135" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="43.893400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="319" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="34.314" p="28.538" name="det177"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 519" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="116" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="34.313700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="234" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="34.818" p="28.129" name="det181"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 518" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="117" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="34.817900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="235" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="41.372" p="24.032" name="det231"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 510" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="130" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="41.372400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="254" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="44.398" p="22.632" name="det257"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="C 145" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="136" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="44.397600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="320" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="22" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="40.364" p="24.552" name="det223"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 504" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="128" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="40.364000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="246" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="35.322" p="27.764" name="det182"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 522" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="118" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="35.322100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="236" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="40.868" p="24.289" name="det226"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 509" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="129" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="40.868200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="253" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="43.389" p="23.074" name="det246"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 515" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="134" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="43.389200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="318" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="41.877" p="23.783" name="det236"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 511" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="131" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="41.876600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="255" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="42.885" p="23.303" name="det244"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 514" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="133" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="42.885000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="317" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="42.381" p="23.540" name="det241"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 512" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="132" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="42.380800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="256" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="33.809" p="28.927" name="det173"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 516" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="115" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="33.809500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="233" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="37.339" p="26.353" name="det201"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="122" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="37.338900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="240" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="39.356" p="25.126" name="det214"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 502" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="126" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="39.355700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="244" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="36.331" p="27.037" name="det190"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 525" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="120" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="36.330500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="238" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="36.835" p="26.676" name="det197"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 526" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="121" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="36.834700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="239" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="38.852" p="25.413" name="det213"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 501" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="125" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="38.851500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="243" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="38.347" p="25.709" name="det209"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="None" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="124" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="38.347300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="242" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="32.801" p="29.812" name="det165"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 498" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="113" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="32.801200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="231" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="39.860" p="24.846" name="det218"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 503" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="127" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="39.859900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="245" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="21" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="35.826" p="27.380" name="det187"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 524" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="119" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="35.826300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="237" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="20" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_4 rack_4">
+    <component type="He3 detector">
+      <location r="4.000" t="58.515" p="18.392" name="det369"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 471" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="280" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="58.515000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="393" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="54.986" p="19.188" name="det341"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 462" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="273" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="54.985600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="386" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="54.481" p="19.305" name="det337"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 461" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="272" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="54.481400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="385" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="53.977" p="19.437" name="det332"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 460" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="271" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="53.977300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="380" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="49.440" p="20.754" name="det294"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 450" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="262" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="49.439500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="371" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="49.944" p="20.590" name="det301"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 451" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="263" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="49.943700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="372" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="50.448" p="20.430" name="det303"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 453" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="264" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="50.447900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="373" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="50.952" p="20.274" name="det309"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 454" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="265" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="50.952100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="374" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="51.456" p="20.122" name="det312"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 455" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="266" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="51.456300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="375" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="59.523" p="18.193" name="det374"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 473" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="282" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="59.523400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="395" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="60.028" p="18.101" name="det381"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 476" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="283" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="60.027600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="396" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="60.532" p="18.003" name="det385"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 477" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="284" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="60.531800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="397" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="61.540" p="17.823" name="det393"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 480" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="286" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="61.540100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="399" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="34" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="59.019" p="18.295" name="det371"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 472" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="281" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="59.019200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="394" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="62.548" p="17.652" name="det398"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 483" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="288" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="62.548500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="401" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="34" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="63.053" p="17.567" name="det403"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 484" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="289" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="63.052700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="402" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="34" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="55.490" p="19.062" name="det344"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 463" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="274" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="55.489800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="387" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="55.994" p="18.940" name="det348"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 465" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="275" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="55.994000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="388" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="62.044" p="17.733" name="det396"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 481" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="287" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="62.044300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="400" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="34" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="57.002" p="18.714" name="det354"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 467" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="277" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="57.002400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="390" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="61.036" p="17.908" name="det389"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 479" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="285" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="61.035900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="398" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="34" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="56.498" p="18.831" name="det353"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 466" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="276" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="56.498200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="389" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="53.473" p="19.572" name="det328"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 459" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="270" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="53.473100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="379" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="52.969" p="19.699" name="det322"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 458" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="269" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="52.968900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="378" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="52.465" p="19.841" name="det320"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 457" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="268" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="52.464700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="377" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="51.961" p="19.987" name="det315"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 456" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="267" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="51.960500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="376" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="44.902" p="22.419" name="det260"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 436" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="253" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="44.901800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="447" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="45.406" p="22.213" name="det264"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 438" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="254" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="45.406000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="363" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="47.927" p="21.257" name="det282"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 447" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="259" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="47.926900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="368" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="46.414" p="21.815" name="det273"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 441" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="256" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="46.414400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="365" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="46.919" p="21.624" name="det275"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 443" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="257" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="46.918500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="366" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="47.423" p="21.438" name="det281"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 444" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="258" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="47.422700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="367" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="45.910" p="22.011" name="det269"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 439" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="255" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="45.910200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="364" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="48.431" p="21.080" name="det286"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 445" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="260" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="48.431100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="369" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="48.935" p="20.922" name="det293"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 446" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="261" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="48.935300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="370" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="32" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="57.507" p="18.610" name="det359"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 468" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="278" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="57.506600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="391" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="58.011" p="18.500" name="det362"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 470" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="279" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="58.010800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="392" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="33" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_4 rack_5">
+    <component type="He3 detector">
+      <location r="4.000" t="73.137" p="16.324" name="det485"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 388" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="423" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="73.136600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="544" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="73.641" p="16.282" name="det487"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 389" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="424" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="73.640800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="545" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="78.178" p="15.951" name="det522"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 399" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="433" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="78.178500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="554" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="78.683" p="15.920" name="det529"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 403" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="434" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="78.682700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="573" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="79.187" p="15.893" name="det531"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 400" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="435" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="79.186900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="574" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="80.195" p="15.840" name="det539"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 402" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="437" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="80.195300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="576" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="46" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="72.632" p="16.372" name="det480"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 387" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="422" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="72.632400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="543" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="80.699" p="15.817" name="det542"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 406" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="438" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="80.699400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="61" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="637" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="46" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="81.204" p="15.793" name="det548"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 408" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="439" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="81.203700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="62" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="638" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="46" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="81.708" p="15.772" name="det552"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 410" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="440" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="81.707800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="639" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="46" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="82.212" p="15.751" name="det554"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 411" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="441" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="82.212000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="38" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="64" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="640" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="46" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="76.666" p="16.048" name="det511"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 395" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="430" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="76.665900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="551" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="76.162" p="16.085" name="det506"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 394" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="429" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="76.161700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="550" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="79.691" p="15.867" name="det536"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 401" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="436" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="79.691100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="575" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="46" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="72.128" p="16.418" name="det476"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 386" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="421" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="72.128200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="542" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="65.574" p="17.190" name="det425"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 373" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="408" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="65.573700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="529" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="64.565" p="17.336" name="det414"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 371" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="406" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="64.565300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="527" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="77.170" p="16.015" name="det515"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 397" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="431" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="77.170100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="552" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="75.657" p="16.120" name="det502"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 393" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="428" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="75.657500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="549" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="68.095" p="16.856" name="det445"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 378" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="413" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="68.094600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="534" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="71.624" p="16.469" name="det470"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 385" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="420" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="71.624000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="541" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="71.120" p="16.517" name="det467"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 384" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="419" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="71.119800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="540" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="70.616" p="16.572" name="det464"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 383" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="418" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="70.615600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="539" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="64.061" p="17.409" name="det412"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 370" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="405" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="64.061100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="526" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="70.111" p="16.623" name="det461"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 382" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="417" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="70.111400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="538" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="69.103" p="16.736" name="det450"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 380" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="415" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="69.103000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="536" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="68.599" p="16.798" name="det449"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 379" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="414" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="68.598800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="535" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="67.086" p="16.983" name="det435"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 376" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="411" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="67.086300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="532" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="66.582" p="17.052" name="det433"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 375" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="410" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="66.582100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="531" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="66.078" p="17.117" name="det428"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 374" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="409" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="66.077900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="530" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="65.070" p="17.259" name="det419"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 372" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="407" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="65.069500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="528" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="69.607" p="16.681" name="det455"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 381" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="416" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="69.607200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="537" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="67.590" p="16.921" name="det440"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 377" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="412" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="67.590400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="533" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="74.649" p="16.198" name="det494"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 391" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="426" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="74.649100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="547" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="74.145" p="16.237" name="det493"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 390" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="425" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="74.145000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="546" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="63.557" p="17.490" name="det409"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 369" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="404" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="63.556900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="525" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="44" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="77.674" p="15.981" name="det518"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 398" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="432" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="77.674300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="553" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="75.153" p="16.160" name="det499"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 392" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="427" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="75.153300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="548" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="45" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_4 rack_6">
+    <component type="He3 detector">
+      <location r="4.000" t="91.792" p="15.607" name="det632"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 300" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="577" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="91.791700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="688" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="84.229" p="15.684" name="det570"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 281" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="562" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="84.228800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="673" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="84.733" p="15.669" name="det575"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 282" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="563" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="84.733000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="674" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="85.237" p="15.657" name="det578"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 283" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="564" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="85.237200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="675" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="85.741" p="15.645" name="det584"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 286" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="565" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="85.741400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="676" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="86.246" p="15.636" name="det588"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 287" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="566" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="86.245600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="677" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="86.750" p="15.627" name="det590"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 288" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="567" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="86.749800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="678" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="87.758" p="15.613" name="det601"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 290" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="569" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="87.758100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="680" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="83.725" p="15.698" name="det568"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 280" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="561" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="83.724600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="672" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="88.262" p="15.608" name="det602"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 292" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="570" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="88.262300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="681" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="88.766" p="15.604" name="det609"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 293" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="571" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="88.766500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="682" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="89.271" p="15.601" name="det611"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 294" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="572" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="89.270700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="683" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="89.775" p="15.600" name="det616"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 295" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="573" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="89.774900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="684" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="90.279" p="15.600" name="det620"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 296" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="574" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="90.279100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="685" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="91.287" p="15.604" name="det628"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 298" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="576" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="91.287500" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="687" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="87.254" p="15.619" name="det594"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 289" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="568" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="87.254000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="679" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="92.296" p="15.612" name="det635"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 301" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="578" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="92.295900" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="689" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="90.783" p="15.601" name="det623"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 297" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="575" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="90.783300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="686" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="100.867" p="15.888" name="det704"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 327" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="595" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="100.867000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="37" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="710" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="58" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="82.716" p="15.733" name="det561"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 278" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="559" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="82.716200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="63" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="767" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="93.808" p="15.634" name="det646"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 305" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="581" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="93.808400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="692" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="93.304" p="15.626" name="det643"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 303" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="580" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="93.304300" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="691" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="92.800" p="15.618" name="det640"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 302" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="579" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="92.800100" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="690" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="94.313" p="15.644" name="det650"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 307" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="582" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="94.312700" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="693" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="94.817" p="15.655" name="det655"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 308" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="583" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="94.816800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="694" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="95.321" p="15.668" name="det658"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 309" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="584" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="95.321000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="695" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="95.825" p="15.681" name="det664"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 311" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="585" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="95.825200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="696" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="83.220" p="15.716" name="det564"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 279" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="560" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="83.220400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="671" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="56" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="96.834" p="15.712" name="det673"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 314" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="587" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="96.833600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="698" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="97.338" p="15.729" name="det676"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 315" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="588" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="97.337800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="699" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="97.842" p="15.749" name="det678"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 316" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="589" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="97.842000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="700" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="98.346" p="15.768" name="det682"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 319" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="590" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="98.346200" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="705" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="100.363" p="15.862" name="det699"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 325" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="594" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="100.363000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="709" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="58" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="98.850" p="15.791" name="det689"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 321" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="591" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="98.850400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="706" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="58" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="96.329" p="15.695" name="det668"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 312" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="586" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="96.329400" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="697" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="57" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="99.859" p="15.836" name="det695"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 323" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="593" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="99.858800" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="708" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="58" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="99.355" p="15.813" name="det692"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 322" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="592" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="99.354600" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="707" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="58" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_4 rack_7">
+    <component type="He3 detector">
+      <location r="4.000" t="119.018" p="17.900" name="det846"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 232" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="745" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="119.018000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="36" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="868" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="70" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="118.514" p="17.808" name="det845"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 231" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="744" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="118.514000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="867" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="70" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="103.892" p="16.078" name="det728"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 201" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="715" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="103.892000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="838" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="118.010" p="17.725" name="det838"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 230" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="743" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="118.010000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="866" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="70" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="117.001" p="17.559" name="det831"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 228" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="741" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="117.001000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="864" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="116.497" p="17.476" name="det826"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 227" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="740" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="116.497000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="863" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="114.985" p="17.252" name="det815"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 224" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="737" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="114.985000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="860" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="114.480" p="17.177" name="det810"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 223" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="736" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="114.480000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="859" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="113.976" p="17.105" name="det806"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 222" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="735" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="113.976000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="858" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="117.506" p="17.637" name="det836"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 229" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="742" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="117.506000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="865" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="70" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="103.388" p="16.044" name="det725"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 200" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="714" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="103.388000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="837" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="101.876" p="15.946" name="det713"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 197" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="711" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="101.876000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="834" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="101.371" p="15.917" name="det709"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 195" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="710" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="101.371000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="833" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="102.884" p="16.009" name="det720"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 199" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="713" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="102.884000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="836" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="115.489" p="17.323" name="det821"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 225" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="738" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="115.489000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="861" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="102.380" p="15.978" name="det714"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 198" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="712" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="102.380000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="835" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="115.993" p="17.402" name="det825"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 226" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="739" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="115.993000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="862" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="105.909" p="16.233" name="det744"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 205" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="719" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="105.909000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="842" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="110.447" p="16.671" name="det778"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 214" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="728" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="110.447000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="851" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="110.951" p="16.731" name="det784"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 215" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="729" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="110.951000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="852" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="113.472" p="17.040" name="det803"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 221" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="734" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="113.472000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="857" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="111.455" p="16.787" name="det787"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 217" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="730" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="111.455000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="853" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="109.438" p="16.562" name="det773"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 212" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="726" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="109.438000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="849" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="108.934" p="16.512" name="det766"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 211" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="725" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="108.934000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="848" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="108.430" p="16.460" name="det764"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 210" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="724" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="108.430000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="847" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="107.926" p="16.413" name="det760"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 209" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="723" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="107.926000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="846" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="107.422" p="16.364" name="det755"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 208" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="722" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="107.422000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="845" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="109.943" p="16.618" name="det775"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 213" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="727" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="109.943000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="850" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="106.413" p="16.274" name="det748"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 206" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="720" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="106.413000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="843" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="105.405" p="16.191" name="det739"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 204" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="718" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="105.405000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="841" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="104.901" p="16.153" name="det736"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 203" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="717" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="104.901000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="840" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="104.397" p="16.113" name="det731"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 202" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="716" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="104.397000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="839" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="112.968" p="16.971" name="det800"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 220" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="733" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="112.968000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="856" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="112.464" p="16.910" name="det797"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 219" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="732" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="112.464000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="855" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="106.917" p="16.320" name="det750"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 207" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="721" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="106.917000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="844" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="68" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="111.959" p="16.845" name="det793"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 218" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="731" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="111.959000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="854" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="69" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+  </type>
+  <type name="bank_4 rack_8">
+    <component type="He3 detector">
+      <location r="4.000" t="127.589" p="19.816" name="det914"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 131" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="875" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="127.589000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="17" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="17" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="42" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1002" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="133.640" p="21.797" name="det962"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 145" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="887" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="133.640000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="29" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="54" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1014" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="133.135" p="21.605" name="det958"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 144" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="886" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="133.135000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="28" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="53" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1013" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="132.631" p="21.418" name="det954"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 143" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="885" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="132.631000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="27" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="52" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1012" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="132.127" p="21.236" name="det952"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 142" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="884" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="132.127000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="26" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="51" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1011" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="131.119" p="20.900" name="det943"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 140" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="882" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="131.119000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="24" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="24" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="49" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1009" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="130.615" p="20.731" name="det939"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 139" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="881" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="130.615000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="23" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="23" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="48" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1008" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="130.110" p="20.566" name="det936"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 138" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="880" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="130.110000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="22" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="22" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="47" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1007" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="129.606" p="20.406" name="det930"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 136" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="879" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="129.606000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="21" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="21" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="46" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1006" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="129.102" p="20.263" name="det926"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 134" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="878" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="129.102000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="20" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="20" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="45" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1005" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="128.598" p="20.110" name="det922"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 133" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="877" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="128.598000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="19" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="19" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="44" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1004" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="134.144" p="21.994" name="det967"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 146" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="888" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="134.144000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="30" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="55" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1015" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="128.094" p="19.961" name="det919"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 132" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="876" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="128.094000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="18" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="18" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="43" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1003" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="131.623" p="21.058" name="det948"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 141" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="883" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="131.623000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="25" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="25" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="50" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1010" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="134.648" p="22.179" name="det971"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 147" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="889" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="134.648000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="31" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="56" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1016" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="125.068" p="19.166" name="det897"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 123" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="870" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="125.068000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="12" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="12" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="37" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="997" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="12" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="135.656" p="22.599" name="det981"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 149" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="891" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="135.656000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="33" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="58" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1018" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="82" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="124.564" p="19.041" name="det892"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 122" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="869" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="124.564000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="11" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="11" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="36" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="996" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="11" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="124.060" p="18.929" name="det889"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 121" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="868" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="124.060000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="10" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="10" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="995" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="10" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="123.556" p="18.810" name="det885"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 119" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="867" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="123.556000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="9" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="9" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="994" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="9" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="123.052" p="18.704" name="det881"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 117" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="866" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="123.052000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="8" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="8" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="33" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="993" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="8" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="122.547" p="18.591" name="det877"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 115" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="865" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="122.547000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="7" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="7" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="992" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="7" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="122.043" p="18.481" name="det873"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 114" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="864" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="122.043000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="6" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="6" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="31" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="991" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="6" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="121.539" p="18.382" name="det869"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 113" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="863" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="121.539000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="5" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="5" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="30" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="990" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="5" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="135.152" p="22.386" name="det974"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 148" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="890" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="135.152000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="32" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="32" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="57" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1017" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="81" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="121.035" p="18.277" name="det863"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 112" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="862" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="121.035000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="4" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="4" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="29" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="989" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="4" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="120.026" p="18.084" name="det856"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 102" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="860" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="120.026000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="2" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="2" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="27" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="987" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="119.522" p="17.987" name="det851"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 101" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="859" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="119.522000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="1" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="1" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="26" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="986" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="1" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="126.077" p="19.414" name="det904"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 127" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="872" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="126.077000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="14" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="14" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="39" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="999" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="14" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="126.581" p="19.549" name="det907"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 128" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="873" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="126.581000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="15" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="15" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="40" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1000" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="15" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="127.085" p="19.687" name="det913"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 129" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="874" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="127.085000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="16" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="41" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1001" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="16" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="136.665" p="23.043" name="det987"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 152" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="893" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="136.665000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="35" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="35" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="60" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1020" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="82" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="136.161" p="22.818" name="det985"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 151" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="892" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="136.161000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="34" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="34" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="59" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="1019" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="82" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="2" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="120.531" p="18.184" name="det860"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 111" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="861" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="120.531000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="3" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="3" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="28" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="988" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="3" />
+      </parameter>
+    </component>
+    <component type="He3 detector">
+      <location r="4.000" t="125.573" p="19.294" name="det898"></location>
+      <parameter name="Detector Name" type="string">
+        <value val="Z 126" />
+      </parameter>
+      <parameter name="Detector Number" type="int">
+        <value val="871" />
+      </parameter>
+      <parameter name="TwoTheta" type="double">
+        <value val="125.573000" />
+      </parameter>
+      <parameter name="Position" type="double">
+        <value val="13" />
+      </parameter>
+      <parameter name="RPos" type="string">
+        <value val="13" />
+      </parameter>
+      <parameter name="Electronics Card">
+        <value val="16" />
+      </parameter>
+      <parameter name="Electronics Channel">
+        <value val="38" />
+      </parameter>
+      <parameter name="Electronics Total">
+        <value val="998" />
+      </parameter>
+      <parameter name="Box Number">
+        <value val="80" />
+      </parameter>
+      <parameter name="Box Channel">
+        <value val="13" />
+      </parameter>
+    </component>
+  </type>
+  <!-- Detector ID lists -->
+  <idlist idname="bank_1">
+    <id val="7" />
+    <id val="22" />
+    <id val="23" />
+    <id val="24" />
+    <id val="17" />
+    <id val="16" />
+    <id val="13" />
+    <id val="12" />
+    <id val="11" />
+    <id val="8" />
+    <id val="4" />
+    <id val="19" />
+    <id val="3" />
+    <id val="0" />
+    <id val="18" />
+    <id val="58" />
+    <id val="62" />
+    <id val="85" />
+    <id val="66" />
+    <id val="67" />
+    <id val="69" />
+    <id val="72" />
+    <id val="73" />
+    <id val="77" />
+    <id val="91" />
+    <id val="88" />
+    <id val="80" />
+    <id val="83" />
+    <id val="26" />
+    <id val="38" />
+    <id val="25" />
+    <id val="96" />
+    <id val="27" />
+    <id val="30" />
+    <id val="31" />
+    <id val="33" />
+    <id val="36" />
+    <id val="37" />
+    <id val="32" />
+    <id val="59" />
+    <id val="42" />
+    <id val="45" />
+    <id val="46" />
+    <id val="49" />
+    <id val="52" />
+    <id val="53" />
+    <id val="54" />
+    <id val="41" />
+    <id val="193" />
+    <id val="108" />
+    <id val="102" />
+    <id val="247" />
+    <id val="243" />
+    <id val="240" />
+    <id val="235" />
+    <id val="233" />
+    <id val="224" />
+    <id val="220" />
+    <id val="217" />
+    <id val="211" />
+    <id val="207" />
+    <id val="203" />
+    <id val="200" />
+    <id val="109" />
+    <id val="100" />
+    <id val="228" />
+    <id val="143" />
+    <id val="152" />
+    <id val="186" />
+    <id val="180" />
+    <id val="195" />
+    <id val="171" />
+    <id val="169" />
+    <id val="164" />
+    <id val="161" />
+    <id val="154" />
+    <id val="184" />
+    <id val="148" />
+    <id val="176" />
+    <id val="137" />
+    <id val="131" />
+    <id val="127" />
+    <id val="123" />
+    <id val="119" />
+    <id val="116" />
+    <id val="112" />
+    <id val="138" />
+    <id val="357" />
+    <id val="358" />
+    <id val="365" />
+    <id val="367" />
+    <id val="297" />
+    <id val="287" />
+    <id val="377" />
+    <id val="284" />
+    <id val="266" />
+    <id val="261" />
+    <id val="265" />
+    <id val="272" />
+    <id val="274" />
+    <id val="279" />
+    <id val="379" />
+    <id val="373" />
+    <id val="384" />
+    <id val="251" />
+    <id val="352" />
+    <id val="254" />
+    <id val="390" />
+    <id val="333" />
+    <id val="298" />
+    <id val="304" />
+    <id val="306" />
+    <id val="311" />
+    <id val="314" />
+    <id val="388" />
+    <id val="323" />
+    <id val="319" />
+    <id val="336" />
+    <id val="291" />
+    <id val="338" />
+    <id val="345" />
+    <id val="349" />
+    <id val="401" />
+    <id val="395" />
+    <id val="329" />
+    <id val="447" />
+    <id val="402" />
+    <id val="478" />
+    <id val="491" />
+    <id val="471" />
+    <id val="417" />
+    <id val="413" />
+    <id val="484" />
+    <id val="538" />
+    <id val="555" />
+    <id val="553" />
+    <id val="546" />
+    <id val="544" />
+    <id val="535" />
+    <id val="421" />
+    <id val="501" />
+    <id val="528" />
+    <id val="525" />
+    <id val="520" />
+    <id val="516" />
+    <id val="512" />
+    <id val="507" />
+    <id val="503" />
+    <id val="407" />
+    <id val="477" />
+    <id val="532" />
+    <id val="422" />
+    <id val="497" />
+    <id val="452" />
+    <id val="456" />
+    <id val="426" />
+    <id val="443" />
+    <id val="488" />
+    <id val="438" />
+    <id val="434" />
+    <id val="432" />
+    <id val="460" />
+    <id val="465" />
+    <id val="468" />
+    <id val="661" />
+    <id val="663" />
+    <id val="669" />
+    <id val="691" />
+    <id val="670" />
+    <id val="677" />
+    <id val="702" />
+    <id val="683" />
+    <id val="656" />
+    <id val="649" />
+    <id val="638" />
+    <id val="707" />
+    <id val="698" />
+    <id val="694" />
+    <id val="686" />
+    <id val="617" />
+    <id val="621" />
+    <id val="652" />
+    <id val="624" />
+    <id val="629" />
+    <id val="633" />
+    <id val="636" />
+    <id val="644" />
+    <id val="613" />
+    <id val="679" />
+    <id val="567" />
+    <id val="572" />
+    <id val="574" />
+    <id val="579" />
+    <id val="585" />
+    <id val="589" />
+    <id val="593" />
+    <id val="596" />
+    <id val="563" />
+    <id val="598" />
+    <id val="606" />
+    <id val="605" />
+    <id val="560" />
+    <id val="859" />
+    <id val="835" />
+    <id val="833" />
+    <id val="829" />
+    <id val="824" />
+    <id val="812" />
+    <id val="817" />
+    <id val="820" />
+    <id val="842" />
+    <id val="853" />
+    <id val="740" />
+    <id val="854" />
+    <id val="772" />
+    <id val="767" />
+    <id val="862" />
+    <id val="762" />
+    <id val="756" />
+    <id val="751" />
+    <id val="747" />
+    <id val="743" />
+    <id val="737" />
+    <id val="774" />
+    <id val="730" />
+    <id val="727" />
+    <id val="722" />
+    <id val="718" />
+    <id val="716" />
+    <id val="710" />
+    <id val="841" />
+    <id val="758" />
+    <id val="780" />
+    <id val="789" />
+    <id val="849" />
+    <id val="805" />
+    <id val="782" />
+    <id val="791" />
+    <id val="808" />
+    <id val="801" />
+    <id val="794" />
+    <id val="891" />
+    <id val="894" />
+    <id val="900" />
+    <id val="905" />
+    <id val="934" />
+    <id val="931" />
+    <id val="929" />
+    <id val="920" />
+    <id val="870" />
+    <id val="888" />
+    <id val="917" />
+    <id val="979" />
+    <id val="983" />
+    <id val="986" />
+    <id val="991" />
+    <id val="925" />
+    <id val="882" />
+    <id val="1005" />
+    <id val="1004" />
+    <id val="995" />
+    <id val="998" />
+    <id val="1000" />
+    <id val="1002" />
+    <id val="912" />
+    <id val="946" />
+    <id val="975" />
+    <id val="973" />
+    <id val="966" />
+    <id val="963" />
+    <id val="960" />
+    <id val="956" />
+    <id val="950" />
+    <id val="942" />
+    <id val="908" />
+    <id val="941" />
+    <id val="867" />
+    <id val="878" />
+    <id val="876" />
+  </idlist>
+  <idlist idname="bank_2">
+    <id val="1" />
+    <id val="5" />
+    <id val="10" />
+    <id val="15" />
+    <id val="21" />
+    <id val="68" />
+    <id val="29" />
+    <id val="39" />
+    <id val="44" />
+    <id val="48" />
+    <id val="50" />
+    <id val="34" />
+    <id val="60" />
+    <id val="65" />
+    <id val="75" />
+    <id val="79" />
+    <id val="97" />
+    <id val="55" />
+    <id val="84" />
+    <id val="89" />
+    <id val="92" />
+    <id val="210" />
+    <id val="215" />
+    <id val="219" />
+    <id val="239" />
+    <id val="227" />
+    <id val="230" />
+    <id val="234" />
+    <id val="196" />
+    <id val="208" />
+    <id val="249" />
+    <id val="204" />
+    <id val="163" />
+    <id val="222" />
+    <id val="199" />
+    <id val="153" />
+    <id val="156" />
+    <id val="160" />
+    <id val="179" />
+    <id val="166" />
+    <id val="170" />
+    <id val="174" />
+    <id val="141" />
+    <id val="183" />
+    <id val="144" />
+    <id val="128" />
+    <id val="135" />
+    <id val="132" />
+    <id val="149" />
+    <id val="124" />
+    <id val="188" />
+    <id val="105" />
+    <id val="98" />
+    <id val="103" />
+    <id val="111" />
+    <id val="191" />
+    <id val="115" />
+    <id val="117" />
+    <id val="122" />
+    <id val="242" />
+    <id val="334" />
+    <id val="324" />
+    <id val="285" />
+    <id val="342" />
+    <id val="331" />
+    <id val="327" />
+    <id val="340" />
+    <id val="308" />
+    <id val="316" />
+    <id val="310" />
+    <id val="305" />
+    <id val="300" />
+    <id val="296" />
+    <id val="290" />
+    <id val="288" />
+    <id val="267" />
+    <id val="318" />
+    <id val="355" />
+    <id val="350" />
+    <id val="363" />
+    <id val="262" />
+    <id val="258" />
+    <id val="360" />
+    <id val="256" />
+    <id val="252" />
+    <id val="271" />
+    <id val="277" />
+    <id val="280" />
+    <id val="382" />
+    <id val="400" />
+    <id val="394" />
+    <id val="392" />
+    <id val="387" />
+    <id val="380" />
+    <id val="375" />
+    <id val="370" />
+    <id val="366" />
+    <id val="346" />
+    <id val="517" />
+    <id val="557" />
+    <id val="550" />
+    <id val="547" />
+    <id val="545" />
+    <id val="523" />
+    <id val="537" />
+    <id val="533" />
+    <id val="526" />
+    <id val="519" />
+    <id val="513" />
+    <id val="540" />
+    <id val="509" />
+    <id val="454" />
+    <id val="420" />
+    <id val="404" />
+    <id val="441" />
+    <id val="406" />
+    <id val="411" />
+    <id val="416" />
+    <id val="427" />
+    <id val="430" />
+    <id val="436" />
+    <id val="423" />
+    <id val="500" />
+    <id val="446" />
+    <id val="444" />
+    <id val="472" />
+    <id val="496" />
+    <id val="490" />
+    <id val="486" />
+    <id val="458" />
+    <id val="483" />
+    <id val="479" />
+    <id val="505" />
+    <id val="474" />
+    <id val="453" />
+    <id val="469" />
+    <id val="462" />
+    <id val="703" />
+    <id val="708" />
+    <id val="559" />
+    <id val="565" />
+    <id val="700" />
+    <id val="573" />
+    <id val="642" />
+    <id val="696" />
+    <id val="647" />
+    <id val="687" />
+    <id val="684" />
+    <id val="680" />
+    <id val="674" />
+    <id val="671" />
+    <id val="666" />
+    <id val="641" />
+    <id val="662" />
+    <id val="659" />
+    <id val="690" />
+    <id val="634" />
+    <id val="595" />
+    <id val="626" />
+    <id val="569" />
+    <id val="577" />
+    <id val="580" />
+    <id val="583" />
+    <id val="587" />
+    <id val="592" />
+    <id val="657" />
+    <id val="631" />
+    <id val="599" />
+    <id val="607" />
+    <id val="610" />
+    <id val="615" />
+    <id val="619" />
+    <id val="622" />
+    <id val="603" />
+    <id val="651" />
+    <id val="799" />
+    <id val="721" />
+    <id val="723" />
+    <id val="711" />
+    <id val="715" />
+    <id val="796" />
+    <id val="850" />
+    <id val="840" />
+    <id val="802" />
+    <id val="734" />
+    <id val="741" />
+    <id val="745" />
+    <id val="834" />
+    <id val="753" />
+    <id val="754" />
+    <id val="761" />
+    <id val="765" />
+    <id val="768" />
+    <id val="771" />
+    <id val="777" />
+    <id val="779" />
+    <id val="785" />
+    <id val="786" />
+    <id val="790" />
+    <id val="855" />
+    <id val="726" />
+    <id val="844" />
+    <id val="732" />
+    <id val="832" />
+    <id val="822" />
+    <id val="818" />
+    <id val="814" />
+    <id val="828" />
+    <id val="809" />
+    <id val="746" />
+    <id val="811" />
+    <id val="848" />
+    <id val="1003" />
+    <id val="993" />
+    <id val="992" />
+    <id val="989" />
+    <id val="924" />
+    <id val="918" />
+    <id val="861" />
+    <id val="864" />
+    <id val="866" />
+    <id val="872" />
+    <id val="875" />
+    <id val="880" />
+    <id val="996" />
+    <id val="884" />
+    <id val="944" />
+    <id val="895" />
+    <id val="947" />
+    <id val="953" />
+    <id val="957" />
+    <id val="961" />
+    <id val="964" />
+    <id val="969" />
+    <id val="972" />
+    <id val="976" />
+    <id val="978" />
+    <id val="940" />
+    <id val="999" />
+    <id val="937" />
+    <id val="932" />
+    <id val="927" />
+    <id val="886" />
+    <id val="916" />
+    <id val="911" />
+    <id val="909" />
+    <id val="902" />
+    <id val="899" />
+    <id val="984" />
+    <id val="893" />
+  </idlist>
+  <idlist idname="bank_3">
+    <id val="14" />
+    <id val="9" />
+    <id val="6" />
+    <id val="2" />
+    <id val="20" />
+    <id val="101" />
+    <id val="61" />
+    <id val="64" />
+    <id val="71" />
+    <id val="76" />
+    <id val="87" />
+    <id val="82" />
+    <id val="56" />
+    <id val="90" />
+    <id val="94" />
+    <id val="95" />
+    <id val="78" />
+    <id val="47" />
+    <id val="51" />
+    <id val="40" />
+    <id val="35" />
+    <id val="28" />
+    <id val="43" />
+    <id val="142" />
+    <id val="147" />
+    <id val="151" />
+    <id val="158" />
+    <id val="221" />
+    <id val="178" />
+    <id val="185" />
+    <id val="162" />
+    <id val="192" />
+    <id val="194" />
+    <id val="198" />
+    <id val="205" />
+    <id val="206" />
+    <id val="216" />
+    <id val="212" />
+    <id val="189" />
+    <id val="140" />
+    <id val="175" />
+    <id val="133" />
+    <id val="248" />
+    <id val="245" />
+    <id val="238" />
+    <id val="237" />
+    <id val="232" />
+    <id val="136" />
+    <id val="225" />
+    <id val="157" />
+    <id val="229" />
+    <id val="106" />
+    <id val="110" />
+    <id val="114" />
+    <id val="168" />
+    <id val="118" />
+    <id val="121" />
+    <id val="125" />
+    <id val="126" />
+    <id val="104" />
+    <id val="172" />
+    <id val="283" />
+    <id val="276" />
+    <id val="278" />
+    <id val="321" />
+    <id val="289" />
+    <id val="325" />
+    <id val="263" />
+    <id val="313" />
+    <id val="347" />
+    <id val="343" />
+    <id val="339" />
+    <id val="335" />
+    <id val="270" />
+    <id val="307" />
+    <id val="330" />
+    <id val="295" />
+    <id val="292" />
+    <id val="259" />
+    <id val="255" />
+    <id val="253" />
+    <id val="326" />
+    <id val="268" />
+    <id val="302" />
+    <id val="317" />
+    <id val="376" />
+    <id val="378" />
+    <id val="299" />
+    <id val="386" />
+    <id val="372" />
+    <id val="368" />
+    <id val="364" />
+    <id val="361" />
+    <id val="351" />
+    <id val="399" />
+    <id val="391" />
+    <id val="397" />
+    <id val="356" />
+    <id val="383" />
+    <id val="475" />
+    <id val="408" />
+    <id val="473" />
+    <id val="495" />
+    <id val="482" />
+    <id val="405" />
+    <id val="489" />
+    <id val="466" />
+    <id val="504" />
+    <id val="498" />
+    <id val="492" />
+    <id val="481" />
+    <id val="463" />
+    <id val="429" />
+    <id val="457" />
+    <id val="424" />
+    <id val="439" />
+    <id val="415" />
+    <id val="418" />
+    <id val="556" />
+    <id val="508" />
+    <id val="459" />
+    <id val="551" />
+    <id val="431" />
+    <id val="437" />
+    <id val="442" />
+    <id val="410" />
+    <id val="448" />
+    <id val="451" />
+    <id val="549" />
+    <id val="510" />
+    <id val="541" />
+    <id val="521" />
+    <id val="543" />
+    <id val="534" />
+    <id val="514" />
+    <id val="527" />
+    <id val="524" />
+    <id val="530" />
+    <id val="660" />
+    <id val="645" />
+    <id val="639" />
+    <id val="706" />
+    <id val="705" />
+    <id val="701" />
+    <id val="697" />
+    <id val="654" />
+    <id val="693" />
+    <id val="630" />
+    <id val="681" />
+    <id val="675" />
+    <id val="672" />
+    <id val="667" />
+    <id val="665" />
+    <id val="688" />
+    <id val="685" />
+    <id val="558" />
+    <id val="653" />
+    <id val="627" />
+    <id val="625" />
+    <id val="618" />
+    <id val="614" />
+    <id val="612" />
+    <id val="608" />
+    <id val="604" />
+    <id val="600" />
+    <id val="597" />
+    <id val="591" />
+    <id val="586" />
+    <id val="582" />
+    <id val="581" />
+    <id val="576" />
+    <id val="571" />
+    <id val="562" />
+    <id val="566" />
+    <id val="648" />
+    <id val="637" />
+    <id val="719" />
+    <id val="717" />
+    <id val="712" />
+    <id val="742" />
+    <id val="752" />
+    <id val="757" />
+    <id val="759" />
+    <id val="763" />
+    <id val="769" />
+    <id val="770" />
+    <id val="776" />
+    <id val="781" />
+    <id val="735" />
+    <id val="733" />
+    <id val="729" />
+    <id val="792" />
+    <id val="788" />
+    <id val="724" />
+    <id val="783" />
+    <id val="798" />
+    <id val="843" />
+    <id val="823" />
+    <id val="827" />
+    <id val="830" />
+    <id val="837" />
+    <id val="839" />
+    <id val="847" />
+    <id val="749" />
+    <id val="852" />
+    <id val="795" />
+    <id val="857" />
+    <id val="816" />
+    <id val="738" />
+    <id val="813" />
+    <id val="807" />
+    <id val="804" />
+    <id val="819" />
+    <id val="994" />
+    <id val="982" />
+    <id val="858" />
+    <id val="997" />
+    <id val="990" />
+    <id val="988" />
+    <id val="935" />
+    <id val="980" />
+    <id val="933" />
+    <id val="923" />
+    <id val="921" />
+    <id val="915" />
+    <id val="910" />
+    <id val="906" />
+    <id val="903" />
+    <id val="901" />
+    <id val="896" />
+    <id val="890" />
+    <id val="887" />
+    <id val="883" />
+    <id val="879" />
+    <id val="945" />
+    <id val="949" />
+    <id val="865" />
+    <id val="868" />
+    <id val="871" />
+    <id val="968" />
+    <id val="928" />
+    <id val="977" />
+    <id val="951" />
+    <id val="955" />
+    <id val="959" />
+    <id val="965" />
+    <id val="970" />
+    <id val="938" />
+    <id val="874" />
+    <id val="1001" />
+  </idlist>
+  <idlist idname="bank_4">
+    <id val="113" />
+    <id val="70" />
+    <id val="93" />
+    <id val="86" />
+    <id val="81" />
+    <id val="74" />
+    <id val="63" />
+    <id val="57" />
+    <id val="99" />
+    <id val="107" />
+    <id val="120" />
+    <id val="155" />
+    <id val="150" />
+    <id val="146" />
+    <id val="145" />
+    <id val="130" />
+    <id val="134" />
+    <id val="159" />
+    <id val="129" />
+    <id val="202" />
+    <id val="139" />
+    <id val="167" />
+    <id val="250" />
+    <id val="177" />
+    <id val="181" />
+    <id val="231" />
+    <id val="257" />
+    <id val="223" />
+    <id val="182" />
+    <id val="226" />
+    <id val="246" />
+    <id val="236" />
+    <id val="244" />
+    <id val="241" />
+    <id val="173" />
+    <id val="201" />
+    <id val="214" />
+    <id val="190" />
+    <id val="197" />
+    <id val="213" />
+    <id val="209" />
+    <id val="165" />
+    <id val="218" />
+    <id val="187" />
+    <id val="369" />
+    <id val="341" />
+    <id val="337" />
+    <id val="332" />
+    <id val="294" />
+    <id val="301" />
+    <id val="303" />
+    <id val="309" />
+    <id val="312" />
+    <id val="374" />
+    <id val="381" />
+    <id val="385" />
+    <id val="393" />
+    <id val="371" />
+    <id val="398" />
+    <id val="403" />
+    <id val="344" />
+    <id val="348" />
+    <id val="396" />
+    <id val="354" />
+    <id val="389" />
+    <id val="353" />
+    <id val="328" />
+    <id val="322" />
+    <id val="320" />
+    <id val="315" />
+    <id val="260" />
+    <id val="264" />
+    <id val="282" />
+    <id val="273" />
+    <id val="275" />
+    <id val="281" />
+    <id val="269" />
+    <id val="286" />
+    <id val="293" />
+    <id val="359" />
+    <id val="362" />
+    <id val="485" />
+    <id val="487" />
+    <id val="522" />
+    <id val="529" />
+    <id val="531" />
+    <id val="539" />
+    <id val="480" />
+    <id val="542" />
+    <id val="548" />
+    <id val="552" />
+    <id val="554" />
+    <id val="511" />
+    <id val="506" />
+    <id val="536" />
+    <id val="476" />
+    <id val="425" />
+    <id val="414" />
+    <id val="515" />
+    <id val="502" />
+    <id val="445" />
+    <id val="470" />
+    <id val="467" />
+    <id val="464" />
+    <id val="412" />
+    <id val="461" />
+    <id val="450" />
+    <id val="449" />
+    <id val="435" />
+    <id val="433" />
+    <id val="428" />
+    <id val="419" />
+    <id val="455" />
+    <id val="440" />
+    <id val="494" />
+    <id val="493" />
+    <id val="409" />
+    <id val="518" />
+    <id val="499" />
+    <id val="632" />
+    <id val="570" />
+    <id val="575" />
+    <id val="578" />
+    <id val="584" />
+    <id val="588" />
+    <id val="590" />
+    <id val="601" />
+    <id val="568" />
+    <id val="602" />
+    <id val="609" />
+    <id val="611" />
+    <id val="616" />
+    <id val="620" />
+    <id val="628" />
+    <id val="594" />
+    <id val="635" />
+    <id val="623" />
+    <id val="704" />
+    <id val="561" />
+    <id val="646" />
+    <id val="643" />
+    <id val="640" />
+    <id val="650" />
+    <id val="655" />
+    <id val="658" />
+    <id val="664" />
+    <id val="564" />
+    <id val="673" />
+    <id val="676" />
+    <id val="678" />
+    <id val="682" />
+    <id val="699" />
+    <id val="689" />
+    <id val="668" />
+    <id val="695" />
+    <id val="692" />
+    <id val="846" />
+    <id val="845" />
+    <id val="728" />
+    <id val="838" />
+    <id val="831" />
+    <id val="826" />
+    <id val="815" />
+    <id val="810" />
+    <id val="806" />
+    <id val="836" />
+    <id val="725" />
+    <id val="713" />
+    <id val="709" />
+    <id val="720" />
+    <id val="821" />
+    <id val="714" />
+    <id val="825" />
+    <id val="744" />
+    <id val="778" />
+    <id val="784" />
+    <id val="803" />
+    <id val="787" />
+    <id val="773" />
+    <id val="766" />
+    <id val="764" />
+    <id val="760" />
+    <id val="755" />
+    <id val="775" />
+    <id val="748" />
+    <id val="739" />
+    <id val="736" />
+    <id val="731" />
+    <id val="800" />
+    <id val="797" />
+    <id val="750" />
+    <id val="793" />
+    <id val="914" />
+    <id val="962" />
+    <id val="958" />
+    <id val="954" />
+    <id val="952" />
+    <id val="943" />
+    <id val="939" />
+    <id val="936" />
+    <id val="930" />
+    <id val="926" />
+    <id val="922" />
+    <id val="967" />
+    <id val="919" />
+    <id val="948" />
+    <id val="971" />
+    <id val="897" />
+    <id val="981" />
+    <id val="892" />
+    <id val="889" />
+    <id val="885" />
+    <id val="881" />
+    <id val="877" />
+    <id val="873" />
+    <id val="869" />
+    <id val="974" />
+    <id val="863" />
+    <id val="856" />
+    <id val="851" />
+    <id val="904" />
+    <id val="907" />
+    <id val="913" />
+    <id val="987" />
+    <id val="985" />
+    <id val="860" />
+    <id val="898" />
+  </idlist>
+  <type name="He3 detector" is="detector">
+    <cuboid id="shape">
+      <left-front-bottom-point z="0.0" y="-0.2" x="0.015" />
+      <left-front-top-point z="0.0" y="0.2" x="0.015" />
+      <left-back-bottom-point z="0.0145" y="-0.2" x="0.015" />
+      <right-front-bottom-point z="0.0" y="-0.2" x="-0.015" />
+    </cuboid>
+    <algebra val="shape" />
+  </type>
+</instrument>
diff --git a/Code/Mantid/instrument/TOFTOF_Parameters.xml b/Code/Mantid/instrument/TOFTOF_Parameters.xml
new file mode 100644
index 0000000000000000000000000000000000000000..30cff14808fe35ade33e9b9445fd6ecf0515b28b
--- /dev/null
+++ b/Code/Mantid/instrument/TOFTOF_Parameters.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<parameter-file instrument="TOFTOF" valid-from="2012-10-01T00:00:00">
+
+	<component-link name="TOFTOF">
+
+		<parameter name="deltaE-mode" type="string">
+			<value val="direct" />
+		</parameter>
+
+		<!-- Distance between sample and equatorial line of the detector. Mandatory 
+			if you want to correct the flight paths. -->
+		<parameter name="l2" type="string">
+			<value val="4.0" />
+		</parameter>
+
+		<!-- formula for Detector efficiency calculation. Algorithm: DetectorEfficiencyCorUser 
+			See http://muparser.sourceforge.net/mup_features.html#idDef2 for available 
+			operators -->
+		<parameter name="formula_eff" type="string">
+			<value val="exp(-0.31/sqrt(e))*(1.0-exp(-9.3518/sqrt(e)))" />
+		</parameter>
+
+                <!-- formula for Monitor efficiency calculation. Algorithm: MonitorEfficiencyCorUser  -->
+		<parameter name="formula_mon_eff" type="string">
+			<value val="sqrt(e/25.3)" />
+		</parameter>
+
+          
+	</component-link>
+
+</parameter-file>
diff --git a/Code/Mantid/instrument/embedded_instrument_corrections/TEST1_Parameter_Corrections.xml b/Code/Mantid/instrument/embedded_instrument_corrections/TEST1_Parameter_Corrections.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bdf08de0f3095da5030fecd9bafc0b00c1aced7c
--- /dev/null
+++ b/Code/Mantid/instrument/embedded_instrument_corrections/TEST1_Parameter_Corrections.xml
@@ -0,0 +1 @@
+test file
\ No newline at end of file
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank15.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank15.dic
new file mode 100644
index 0000000000000000000000000000000000000000..af7865226f384c2b6083dda969ddb873c253cf23
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank15.dic
@@ -0,0 +1,7 @@
+data=/entry/bank15/data
+x-axis=/entry/bank15/time_of_flight
+y-axis=/entry/bank15/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank16.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank16.dic
new file mode 100644
index 0000000000000000000000000000000000000000..58b793328684fca395af93687b0c397f1a2f45cd
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank16.dic
@@ -0,0 +1,7 @@
+data=/entry/bank16/data
+x-axis=/entry/bank16/time_of_flight
+y-axis=/entry/bank16/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank17.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank17.dic
new file mode 100644
index 0000000000000000000000000000000000000000..37547a6b1c92a269d6722f7ba0e11bb5be9a4d76
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank17.dic
@@ -0,0 +1,7 @@
+data=/entry/bank17/data
+x-axis=/entry/bank17/time_of_flight
+y-axis=/entry/bank17/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank18.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank18.dic
new file mode 100644
index 0000000000000000000000000000000000000000..74302742e036265ba3b8e64aac045ab64878f85f
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank18.dic
@@ -0,0 +1,7 @@
+data=/entry/bank18/data
+x-axis=/entry/bank18/time_of_flight
+y-axis=/entry/bank18/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank19.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank19.dic
new file mode 100644
index 0000000000000000000000000000000000000000..8593ea113394037b659231bd89d67f56055924de
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank19.dic
@@ -0,0 +1,7 @@
+data=/entry/bank19/data
+x-axis=/entry/bank19/time_of_flight
+y-axis=/entry/bank19/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank20.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank20.dic
new file mode 100644
index 0000000000000000000000000000000000000000..81412e173a4640c2d6bfb57bf2fab0fbe00c1c7e
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank20.dic
@@ -0,0 +1,7 @@
+data=/entry/bank20/data
+x-axis=/entry/bank20/time_of_flight
+y-axis=/entry/bank20/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank21.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank21.dic
new file mode 100644
index 0000000000000000000000000000000000000000..712d8afdb209d0e9dea145d24af86d263caad660
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank21.dic
@@ -0,0 +1,7 @@
+data=/entry/bank21/data
+x-axis=/entry/bank21/time_of_flight
+y-axis=/entry/bank21/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank22.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank22.dic
new file mode 100644
index 0000000000000000000000000000000000000000..e78984ee8f4dabfa61991a5dc0802b90f01cee67
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank22.dic
@@ -0,0 +1,7 @@
+data=/entry/bank22/data
+x-axis=/entry/bank22/time_of_flight
+y-axis=/entry/bank22/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank23.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank23.dic
new file mode 100644
index 0000000000000000000000000000000000000000..faf5c95bf55664b08f6f13a5cd5fa5bcf3a1248e
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank23.dic
@@ -0,0 +1,7 @@
+data=/entry/bank23/data
+x-axis=/entry/bank23/time_of_flight
+y-axis=/entry/bank23/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank24.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank24.dic
new file mode 100644
index 0000000000000000000000000000000000000000..3534e3dd454e38043a70f034ebcdc47cbad0fd93
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank24.dic
@@ -0,0 +1,7 @@
+data=/entry/bank24/data
+x-axis=/entry/bank24/time_of_flight
+y-axis=/entry/bank24/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank25.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank25.dic
new file mode 100644
index 0000000000000000000000000000000000000000..0b812d4faba2ad9bc692596c4b1f8e0455fe0fc2
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank25.dic
@@ -0,0 +1,7 @@
+data=/entry/bank25/data
+x-axis=/entry/bank25/time_of_flight
+y-axis=/entry/bank25/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank26.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank26.dic
new file mode 100644
index 0000000000000000000000000000000000000000..d8c772d9d4f2f7d225ee5de9d2ce1e2e14931c96
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank26.dic
@@ -0,0 +1,7 @@
+data=/entry/bank26/data
+x-axis=/entry/bank26/time_of_flight
+y-axis=/entry/bank26/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank27.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank27.dic
new file mode 100644
index 0000000000000000000000000000000000000000..ad6b66f7c2f75d11f2dca8fd125ff86af3fbc558
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank27.dic
@@ -0,0 +1,7 @@
+data=/entry/bank27/data
+x-axis=/entry/bank27/time_of_flight
+y-axis=/entry/bank27/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank28.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank28.dic
new file mode 100644
index 0000000000000000000000000000000000000000..6b75e2acb81eaea95dd9a9b2f7a57d141344546b
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank28.dic
@@ -0,0 +1,7 @@
+data=/entry/bank28/data
+x-axis=/entry/bank28/time_of_flight
+y-axis=/entry/bank28/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank29.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank29.dic
new file mode 100644
index 0000000000000000000000000000000000000000..2d49a5165b0285442511d565d3bb07e2a51fe6c0
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank29.dic
@@ -0,0 +1,7 @@
+data=/entry/bank29/data
+x-axis=/entry/bank29/time_of_flight
+y-axis=/entry/bank29/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/instrument/nexusdictionaries/vision-bank30.dic b/Code/Mantid/instrument/nexusdictionaries/vision-bank30.dic
new file mode 100644
index 0000000000000000000000000000000000000000..dd95f213b2bd0879730476715c5d85a8d8a5aa29
--- /dev/null
+++ b/Code/Mantid/instrument/nexusdictionaries/vision-bank30.dic
@@ -0,0 +1,7 @@
+data=/entry/bank30/data
+x-axis=/entry/bank30/time_of_flight
+y-axis=/entry/bank30/pixel_id
+x-axis-name=TOF
+title=/entry/title
+sample=/entry/sample/name
+InstrumentName=/entry/instrument/name
diff --git a/Code/Mantid/scripts/CMakeLists.txt b/Code/Mantid/scripts/CMakeLists.txt
index 687727c857daa05626a75595aa2c5a2033e210c9..476844cc55317cdb49146e20ed593a3f8ad830f3 100644
--- a/Code/Mantid/scripts/CMakeLists.txt
+++ b/Code/Mantid/scripts/CMakeLists.txt
@@ -8,29 +8,32 @@ add_subdirectory(PyChop)
 add_subdirectory(TofConverter)
 
 # Chain all required interface custom targets into CompilePyUI
-add_custom_target(CompilePyUI DEPENDS 
-  CompileUIFilterEvents 
-  CompileUIHFIRPowderReduction 
-  CompileUIPyChop 
+add_custom_target(CompilePyUI DEPENDS
+  CompileUIFilterEvents
+  CompileUIHFIRPowderReduction
+  CompileUIPyChop
   CompileUITofConverter
   CompileUIUI
-  CompileUILib1To2 
+  CompileUILib1To2
 )
 
-set ( TEST_PY_FILES 
+set ( TEST_PY_FILES
       test/ConvertToWavelengthTest.py
-      test/DirectReductionHelpersTest.py 
-      test/DirectPropertyManagerTest.py     
+      test/DirectReductionHelpersTest.py
+      test/DirectPropertyManagerTest.py
       test/DirectEnergyConversionTest.py
       test/ISISDirecInelasticConfigTest.py
-      test/IndirectApplyCorrectionsTest.py
       test/IndirectCommonTests.py
-      test/ReductionWrapperTest.py      
-      test/ReflectometryQuickAuxiliaryTest.py 
+      test/ReductionWrapperTest.py
+      test/ReflectometryQuickAuxiliaryTest.py
       test/RunDescriptorTest.py
       test/SansIsisGuiSettings.py
-      test/SANSUtilitytests.py
-      test/SettingsTest.py      
+      test/SANSBatchModeTest.py
+      test/SANSUtilityTest.py
+      test/SANSIsisInstrumentTest.py
+      test/SANSCommandInterfaceTest.py
+      test/SANSReductionStepsUserFileTest.py
+      test/SettingsTest.py
       test/ReductionSettingsTest.py
       )
 
@@ -38,7 +41,7 @@ set ( TEST_PY_FILES
 # python unit tests
 if (PYUNITTEST_FOUND)
   pyunittest_add_test ( ${CMAKE_CURRENT_SOURCE_DIR}/test PythonScriptsTest ${TEST_PY_FILES} )
-  # Trying to add tested modules to python system path 
+  # Trying to add tested modules to python system path
   #set (ENV{PYTHONPATH}  "ENV{PYTHONPATH} ${CMAKE_CURRENT_SOURCE_DIR}/Inelastic" )
 endif ()
 
diff --git a/Code/Mantid/scripts/DGSPlanner/DGSPlannerGUI.py b/Code/Mantid/scripts/DGSPlanner/DGSPlannerGUI.py
index 8c5d0a5cc2d2a9628c52824ccec5c68e41ec16d2..9670bc6b353387ccd130a680fc33a65898d44888 100644
--- a/Code/Mantid/scripts/DGSPlanner/DGSPlannerGUI.py
+++ b/Code/Mantid/scripts/DGSPlanner/DGSPlannerGUI.py
@@ -208,21 +208,20 @@ class DGSPlannerGUI(QtGui.QWidget):
                                                      Dimension4=dimensions[self.masterDict['dimIndex'][3]],
                                                      Dimension4Min=float2Input(self.masterDict['dimMin'][3]),
                                                      Dimension4Max=float2Input(self.masterDict['dimMax'][3]))
-        intensity=__mdws[0].getSignalArray()*1. #to make it writeable
+        intensity=__mdws[0].getSignalArray()[:,:,0,0]*1. #to make it writeable
         if self.colorButton.isChecked():
             for i in range(__mdws.getNumberOfEntries())[1:]:
-                tempintensity=  __mdws[i].getSignalArray()
+                tempintensity=  __mdws[i].getSignalArray()[:,:,0,0]
                 intensity[numpy.where( tempintensity>0)]=i+1.
         else:
             for i in range(__mdws.getNumberOfEntries())[1:]:
-                tempintensity=  __mdws[i].getSignalArray()
+                tempintensity=  __mdws[i].getSignalArray()[:,:,0,0]
                 intensity[numpy.where( tempintensity>0)]=1.
-        Z = numpy.transpose(intensity)
         x = numpy.linspace(__mdws[0].getDimension(0).getMinimum(), __mdws[0].getDimension(0).getMaximum(),intensity.shape[1] )
         y = numpy.linspace(__mdws[0].getDimension(1).getMinimum(), __mdws[0].getDimension(1).getMaximum(),intensity.shape[0] )
         Y,X = numpy.meshgrid(y,x)
         xx, yy = self.tr(X, Y)
-        Z=numpy.ma.masked_array(Z,Z==0)
+        Z=numpy.ma.masked_array(intensity,intensity==0)
         Z = Z[:-1, :-1]
         #plotting
         if self.sender() is self.plotButton or self.needToClear:
diff --git a/Code/Mantid/scripts/Engineering/EnggUtils.py b/Code/Mantid/scripts/Engineering/EnggUtils.py
new file mode 100644
index 0000000000000000000000000000000000000000..ae1a64ddfe2982b00845c558ad07be055f581427
--- /dev/null
+++ b/Code/Mantid/scripts/Engineering/EnggUtils.py
@@ -0,0 +1,708 @@
+#pylint: disable=invalid-name
+#pylint: disable=too-many-arguments
+# R0913: Too many arguments - strictly for write_GSAS_iparam_file()
+from mantid.api import *
+import mantid.simpleapi as sapi
+
+# numpy needed only for Vanadium calculations, at the moment
+import numpy as np
+
+ENGINX_BANKS = ['', 'North', 'South', '1', '2']
+# banks (or groups) to which the pixel-by-pixel correction should be applied
+ENGINX_BANKS_FOR_PIXBYPIX_CORR = [1,2]
+
+def readInExpectedPeaks(filename, expectedGiven):
+    """
+    Reads in expected peaks from the .csv file if requested. Otherwise fall back to the list of
+    peaks given (and check that it is not empty).
+
+    @param :: filename name of the csv file to read from. If empty, we take the peaks given in an option.
+    This is passed to Engg algorithms in the (optional) input property 'ExpectedPeaksFromFile'
+
+    @param :: expectedGiven list of expected peaks given as an input property to an Engg algorithm
+    (ExpectedPeaks)
+
+    @returns the expected peaks either from a file or input list, sorted in ascending order
+    """
+
+    expectedPeaksD = None
+
+    if filename != "":
+        exPeakArray = []
+        readInArray = []
+        try:
+            with open(filename) as f:
+                for line in f:
+                    readInArray.append([float(x) for x in line.split(',')])
+            for a in readInArray:
+                for b in a:
+                    exPeakArray.append(b)
+        except RuntimeError, ex:
+            raise RuntimeError("Error while reading file of expected peaks '%s': %s" % (filename, ex))
+
+        if not exPeakArray:
+            # "File could not be read. Defaults in alternative option used."
+            if [] == expectedGiven:
+                raise ValueError("Could not read any peaks from the file given in 'ExpectedPeaksFromFile: '" +
+                                 filename + "', and no expected peaks were given in the property "
+                                 "'ExpectedPeaks' either. Cannot continue without a list of expected peaks.")
+            expectedPeaksD = sorted(expectedGiven)
+
+        else:
+            expectedPeaksD = sorted(exPeakArray)
+
+    else:
+        if [] == expectedGiven:
+            raise ValueError("No expected peaks were given in the property 'ExpectedPeaks', "
+                             "could not get default expected peaks, and 'ExpectedPeaksFromFile' "
+                             "was not given either. Cannot continout without a list of expected peaks.")
+        expectedPeaksD = sorted(expectedGiven)
+
+    return expectedPeaksD
+
+def getWsIndicesFromInProperties(ws, bank, detIndices):
+    """
+    Get the detector indices that the user requests, either through the input property 'Bank' or
+    'DetectorIndices'
+
+    @param workspace :: input workspace (with instrument)
+    @param bank :: value passed in the input property 'Bank' to an Engg algorithm
+    @param detIndices :: value passed in the 'Det
+
+    @returns list of workspace indices that can be used in mantid algorithms such as CropWorkspace.
+    """
+
+    indices = None
+    if bank and detIndices:
+        raise ValueError("It is not possible to use at the same time the input properties 'Bank' and "
+                         "'DetectorIndices', as they overlap. Please use either of them. Got Bank: '%s', "
+                         "and DetectorIndices: '%s'"%(bank, detIndices))
+    elif bank:
+        bankAliases = {'North': '1', 'South': '2'}
+        bank = bankAliases.get(bank, bank)
+        indices = getWsIndicesForBank(ws, bank)
+        if not indices:
+            raise RuntimeError("Unable to find a meaningful list of workspace indices for the "
+                               "bank passed: %s. Please check the inputs." % bank)
+        return indices
+    elif detIndices:
+        indices = parseSpectrumIndices(ws, detIndices)
+        if not indices:
+            raise RuntimeError("Unable to find a meaningful list of workspace indices for the "
+                               "range(s) of detectors passed: %s. Please check the inputs." % detIndices)
+        return indices
+    else:
+        raise ValueError("You have not given any value for the properties 'Bank' and 'DetectorIndices' "
+                         "One of them is required")
+
+
+def parseSpectrumIndices(ws, specNumbers):
+    """
+    Get a usable list of workspace indices from a user provided list of spectra that can look like:
+    '8-10, 20-40, 100-110'. For that example this method will produce: [7,8,9,19, 20,... , 109]
+
+    @param workspace :: input workspace (with instrument)
+    @param specNumbers :: range of spectrum numbers (or list of ranges) as given to an algorithm
+
+    @return list of workspace indices, ready to be used in mantid algorithms such as CropWorkspace
+    """
+    segments = [ s.split("-") for s in specNumbers.split(",") ]
+    indices = [ idx for s in segments for idx in range(int(s[0]), int(s[-1])+1) ]
+    # remove duplicates and sort
+    indices = list(set(indices))
+    indices.sort()
+    maxIdx = ws.getNumberHistograms()
+    if indices[-1] >= maxIdx:
+        raise ValueError("A workspace index equal or bigger than the number of histograms available in the "
+                         "workspace '" + ws.getName() +"' (" + str(ws.getNumberHistograms()) +
+                         ") has been given. Please check the list of indices.")
+    # and finally traslate from 'spectrum numbers' to 'workspace indices'
+    return [ws.getIndexFromSpectrumNumber(sn) for sn in indices]
+
+def getWsIndicesForBank(ws, bank):
+    """
+    Finds the workspace indices of all the pixels/detectors/spectra corresponding to a bank.
+
+    ws :: workspace with instrument definition
+    bank :: bank number as it appears in the instrument definition
+
+    @returns :: list of workspace indices for the bank
+    """
+    detIDs = getDetIDsForBank(bank)
+
+    def isIndexInBank(index):
+        try:
+            det = ws.getDetector(index)
+            return det.getID() in detIDs
+        except RuntimeError:
+            return False
+
+    return [i for i in range(0, ws.getNumberHistograms()) if isIndexInBank(i)]
+
+def getDetIDsForBank(bank):
+    """
+    Find the detector IDs for an instrument bank. Note this is at this point specific to
+    the ENGINX instrument.
+
+    @param bank :: name/number as a string
+
+    @returns list of detector IDs corresponding to the specified Engg bank number
+    """
+    import os
+    groupingFilePath = os.path.join(sapi.config.getInstrumentDirectory(),
+                                    'Grouping', 'ENGINX_Grouping.xml')
+
+    alg = AlgorithmManager.create('LoadDetectorsGroupingFile')
+    alg.setProperty('InputFile', groupingFilePath)
+    alg.setProperty('OutputWorkspace', '__EnginXGrouping')
+    alg.execute()
+
+    grouping = mtd['__EnginXGrouping']
+
+    detIDs = set()
+
+    for i in range(grouping.getNumberHistograms()):
+        if grouping.readY(i)[0] == int(bank):
+            detIDs.add(grouping.getDetector(i).getID())
+
+    sapi.DeleteWorkspace(grouping)
+
+    if len(detIDs) == 0:
+        raise ValueError('Could not find any detector for this bank: ' + bank +
+                         '. This looks like an unknown bank')
+
+    return detIDs
+
+def  generateOutputParTable(name, difc, zero):
+    """
+    Produces a table workspace with the two fitted calibration parameters
+
+    @param name :: the name to use for the table workspace that is created here
+    @param difc :: difc calibration parameter
+    @param zero :: zero calibration parameter
+    """
+    tbl = sapi.CreateEmptyTableWorkspace(OutputWorkspace=name)
+    tbl.addColumn('double', 'difc')
+    tbl.addColumn('double', 'zero')
+    tbl.addRow([float(difc), float(zero)])
+
+def convertToDSpacing(parent, ws):
+    """
+    Converts a workspace to dSpacing using 'ConvertUnits' as a child algorithm.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: workspace (normally in ToF units) to convert (not modified)
+
+    @returns workspace converted to d-spacing units
+    """
+    # A check to catch possible errors in an understandable way
+    expectedDim = 'Time-of-flight'
+    dimType = ws.getXDimension().getName()
+    if expectedDim != dimType:
+        raise ValueError("This function expects a workspace with %s X dimension, but "
+                         "the X dimension of the input workspace is: '%s'. This is an internal logic "
+                         "error. "% (expectedDim, dimType))
+
+    alg = parent.createChildAlgorithm('ConvertUnits')
+    alg.setProperty('InputWorkspace', ws)
+    alg.setProperty('Target', 'dSpacing')
+    alg.setProperty('AlignBins', True)
+    alg.execute()
+    return alg.getProperty('OutputWorkspace').value
+
+def convertToToF(parent, ws):
+    """
+    Converts workspace to Time-of-Flight using 'ConvertUnits' as a child algorithm.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: workspace (normally in d-spacing units) to convert to ToF
+
+    @returns workspace with data converted to ToF units
+    """
+    alg = parent.createChildAlgorithm('ConvertUnits')
+    alg.setProperty('InputWorkspace', ws)
+    alg.setProperty('Target', 'TOF')
+    alg.execute()
+    return alg.getProperty('OutputWorkspace').value
+
+def cropData(parent, ws, indices):
+    """
+    Produces a cropped workspace from the input workspace so that only
+    data for the specified bank (given as a list of indices) is left.
+
+    NB: This assumes spectra for a bank are consequent.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: workspace to crop (not modified in-place)
+    @param indices :: workspace indices to keep in the workpace returned
+
+    @returns cropped workspace, with only the spectra corresponding to the indices requested
+    """
+    # Leave only spectra between min and max
+    alg = parent.createChildAlgorithm('CropWorkspace')
+    alg.setProperty('InputWorkspace', ws)
+    alg.setProperty('StartWorkspaceIndex', min(indices))
+    alg.setProperty('EndWorkspaceIndex', max(indices))
+    alg.execute()
+
+    return alg.getProperty('OutputWorkspace').value
+
+def sumSpectra(parent, ws):
+    """
+    Focuses/sums up all the spectra into a single one (calls the SumSpectra algorithm)
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: workspace to sum up
+
+    @return single-spectrum workspace resulting from the sum
+    """
+    alg = parent.createChildAlgorithm('SumSpectra')
+    alg.setProperty('InputWorkspace', ws)
+    alg.execute()
+
+    return alg.getProperty('OutputWorkspace').value
+
+def write_ENGINX_GSAS_iparam_file(output_file, difc, zero, ceria_run=241391,
+                                  vanadium_run=236516, template_file=None):
+    """
+    Produces and writes an ENGIN-X instrument parameter file for GSAS
+    (in the GSAS iparam format, as partially described in the GSAS
+    manual). It simply uses a template (found in template_path) where
+    some values are replaced with the values (difc, zero) passed to
+    this function.
+
+    Possible extensions for the file are .par (used here as default),
+    .prm, .ipar, etc.
+
+    @param output_file :: name of the file where to write the output
+    @param difc :: list of DIFC values, one per bank, to pass on to GSAS
+                   (as produced by EnggCalibrate)
+    @param zero :: list of TZERO values, one per bank, to pass on to GSAS
+                   (also from EnggCalibrate)
+    @param ceria_run :: number of the ceria (CeO2) run used for this calibration.
+                        this number goes in the file and should also be used to
+                        name the file
+    @param vanadium_run :: number of the vanadium (VNb) run used for this
+                           calibration. This number goes in the file and should
+                           also be used to name the file.
+    @param template_file :: file to use as template (with relative or full path)
+
+    @returns
+
+    """
+    if not isinstance(difc, list) or not isinstance(zero, list):
+        raise ValueError("The parameters difc and zero must be lists, with as many elements as "
+                         "banks")
+
+    if len(difc) != len(zero):
+        raise ValueError("The lengths of the difc and zero lists must be the same")
+
+    if not template_file:
+        import os
+        template_file = os.path.join(os.path.dirname(__file__),
+                                     'template_ENGINX_241391_236516_North_and_South_banks.par')
+
+    temp_lines = []
+    with open(template_file) as tf:
+        temp_lines = tf.readlines()
+
+
+    def replace_patterns(line, patterns, replacements):
+        """
+        If line starts with any of the strings passed in the list 'pattern', return the
+        corresponding 'replacement'
+        """
+        for idx, pat in enumerate(patterns):
+            if line[0:len(pat)] == pat:
+                return replacements[idx]
+
+        return line
+
+    # need to replace two types of lines/patterns:
+    # - instrument constants/parameters (ICONS)
+    # - instrument calibration comment with run numbers (CALIB)
+    output_lines = []
+    for bank_idx in range(0, len(difc)):
+        patterns = ["INS  %d ICONS"%bank_idx,
+                    "INS    CALIB"]
+        difa = 0.0
+        # the ljust(80) ensure a length of 80 characters for the lines (GSAS rules...)
+        replacements = [ ("INS  %d ICONS  %.2f    %.2f    %.2f" %
+                          (bank_idx, difc[bank_idx], difa, zero[bank_idx])).ljust(80) + '\r\n',
+                         ("INS    CALIB   %d   %d ceo2" %
+                          (ceria_run, vanadium_run)).ljust(80) + '\r\n']
+
+        output_lines = [ replace_patterns(line, patterns, replacements) for line in temp_lines]
+
+    with open(output_file, 'w') as of:
+        of.writelines(output_lines)
+
+# ----------------------------------------------------------------------------------------
+# Functions for Vanadium corrections follow. These could be converted into an algorithm
+# that would be used as a child from EnginXFocus and EnginXCalibrate
+# ----------------------------------------------------------------------------------------
+
+def applyVanadiumCorrection(parent, ws, vanWS, precalcInteg=None):
+    """
+    Vanadium correction as done for the EnginX instrument. This is in principle meant to be used
+    in EnginXFocus and EnginXCalibrateFull. The process consists of two steps:
+    1. sensitivity correction
+    2. pixel-by-pixel correction
+
+    1. is performed for very pixel/detector/spectrum: scale every spectrum/curve by a
+    scale factor proportional to the number of neutrons in that spectrum
+
+    2. Correct every pixel by dividing by a curve (spline) fitted on the summed spectra
+    (summing banks separately).
+
+    The sums and fits are done in d-spacing.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: workspace to work on, must be a Vanadium (V-Nb) run (in/out)
+    @param vanWS :: workspace with Vanadium data
+    @param precalcIntegration :: pre-calculated integral of every spectrum for the vanadium data
+
+    @param curvesWS :: workspace with the fitting workspace(s) corresponding to the bank(s)
+    processed (3 spectra workspace for every bank). If several banks have been processed there
+    will be 3 spectra for each bank.
+    """
+    if vanadiumWorkspaceIsPrecalculated(vanWS):
+        if not precalcInteg:
+            raise ValueError('A pre-calcuated vanadium curves workspace was passed instead of raw '
+                             'Vanadium run data, but no spectra integration results were provided.')
+
+        rows = precalcInteg.rowCount()
+        spectra = ws.getNumberHistograms()
+        if rows < spectra:
+            raise ValueError("The number of histograms in the input data workspace (%d) is bigger "
+                             "than the number of rows (spectra) in the integration workspace (%d)"%
+                             (rows, spectra))
+
+    applySensitivityCorrection(parent, ws, vanWS, precalcInteg)
+
+    # apply this to both Engin-X banks, each with separate calculations
+    curvesDict = applyPixByPixCorrection(parent, ws, vanWS, ENGINX_BANKS_FOR_PIXBYPIX_CORR)
+    curvesWS = prepareCurvesWS(parent, curvesDict)
+    return curvesWS
+
+def applySensitivityCorrection(parent, ws, vanWS, precalcInteg):
+    """
+    Applies the first step of the Vanadium corrections on the given workspace.
+    Operations are done in ToF
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: workspace (in/out)
+    @param vanWS :: workspace with Vanadium data
+    @param precalcIntegration :: pre-calculated integral of every spectrum for the vanadium data
+    """
+    if not vanadiumWorkspaceIsPrecalculated(vanWS):
+        applySensitivityCorrectionFromRawData(parent, ws, vanWS)
+    else:
+        for i in range(0, ws.getNumberHistograms()):
+            scaleFactor = precalcInteg.cell(i,0)/vanWS.blocksize()
+            ws.setY(i, np.divide(ws.dataY(i), scaleFactor))
+
+
+def applySensitivityCorrectionFromRawData(parent, ws, vanWS):
+    """
+    This does the real calculations behind applySensitivityCorrection() for when we are given raw
+    data from a Vanadium run.
+    """
+    expectedDim = 'Time-of-flight'
+    dimType = vanWS.getXDimension().getName()
+    if expectedDim != dimType:
+        raise ValueError("This algorithm expects a workspace with %s X dimension, but "
+                         "the X dimension of the input workspace is: '%s'" % (expectedDim, dimType))
+
+    integWS = integrateSpectra(parent, vanWS)
+    if  1 != integWS.blocksize() or integWS.getNumberHistograms() < ws.getNumberHistograms():
+        raise RuntimeError("Error while integrating vanadium workspace, the Integration algorithm "
+                           "produced a workspace with %d bins and %d spectra. The workspace "
+                           "being integrated has %d spectra."%
+                           (integWS.blocksize(), integWS.getNumberHistograms(),
+                            vanWS.getNumberHistograms()))
+
+    for i in range(0, ws.getNumberHistograms()):
+        scaleFactor = integWS.readY(i)[0] / vanWS.blocksize()
+        ws.setY(i, np.divide(ws.dataY(i), scaleFactor)) # DivideSpec(ws, scaleFactor)
+
+def applyPixByPixCorrection(parent, ws, vanWS, banks):
+    """
+    Applies the second step of the Vanadium correction on the given workspace: pixel by pixel
+    divides by a curve fitted to the sum of the set of spectra of the corresponding bank.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: workspace to work on / correct
+    @param banks :: list of banks to correct - normally would expect all banks: [1,2]
+    @param vanWS :: workspace with Vanadium data
+
+    @param curves :: a dictionary with bank id's (numbers) as keys and fitting output workspace
+    as values
+    """
+    if vanadiumWorkspaceIsPrecalculated(vanWS):
+        # No instrument -> precalculated curve(s)
+        curves = _precalcWStoDict(parent, vanWS)
+    else:
+        # Have to calculate curves. get one curve per bank, in d-spacing
+        curves = fitCurvesPerBank(parent, vanWS, banks)
+
+    # divide the spectra by their corresponding bank curve
+    divideByCurves(parent, ws, curves)
+
+    return curves
+
+def divideByCurves(parent, ws, curves):
+    """
+    Expects a workspace in ToF units. All operations are done in-place (the workspace is
+    input/output). For every bank-curve pair, divides the corresponding spectra in the
+    workspace by the (simulated) fitted curve. The division is done in d-spacing (the
+    input workspace is converted to d-spacing inside this method, but results are converted
+    back to ToF before returning from this method). The curves workspace is expected in
+    d-spacing units (since it comes from fitting a sum of spectra for a bank or group of
+    detectors).
+
+    This method is capable of dealing with workspaces with range and bin size different from
+    the range and bin size of the curves. It will rebin the curves workspace to match the
+    input 'ws' workspace (using the algorithm RebinToWorkspace).
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: workspace with (sample) spectra to divide by curves fitted to Vanadium spectra
+    @param curves :: dictionary of fitting workspaces (in d-spacing), one per bank. The keys are
+    the bank identifier and the values are their fitting workspaces. The fitting workspaces are
+    expected as returned by the algorithm 'Fit': 3 spectra: original data, simulated data with fit,
+    difference between original and simulated data.
+    """
+    # Note that this division could use the algorithm 'Divide'
+    # This is simple and more efficient than using divide workspace, which requires
+    # cropping separate workspaces, dividing them separately, then appending them
+    # with AppendSpectra, etc.
+    ws = convertToDSpacing(parent, ws)
+    for b in curves:
+        # process all the spectra (indices) in one bank
+        fittedCurve = curves[b]
+        idxs = getWsIndicesForBank(ws, b)
+
+        if not idxs:
+            pass
+
+        # This RebinToWorkspace is required here: normal runs will have narrower range of X values,
+        # and possibly different bin size, as compared to (long) Vanadium runs. Same applies to short
+        # Ceria runs (for Calibrate -non-full) and even long Ceria runs (for Calibrate-Full).
+        rebinnedFitCurve = rebinToMatchWS(parent, fittedCurve, ws)
+
+        for i in idxs:
+            # take values of the second spectrum of the workspace (fit simulation - fitted curve)
+            ws.setY(i, np.divide(ws.dataY(i), rebinnedFitCurve.readY(1)))
+
+    # finally, convert back to ToF
+    ws = convertToToF(parent, ws)
+
+def fitCurvesPerBank(parent, vanWS, banks):
+    """
+    Fits one curve to every bank (where for every bank the data fitted is the result of
+    summing up all the spectra of the bank). The fitting is done in d-spacing.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param vanWS :: Vanadium run workspace to fit, expected in TOF units as they are archived
+    @param banks :: list of banks to consider which is normally all the banks of the instrument
+
+    @returns dictionary of fit workspaces, with one per bank given in the inputs. These workspaces are
+    in d-spacing units. The bank identifiers are the keys, and the workspaces are the values.
+    """
+    curves = {}
+    for b in banks:
+        indices = getWsIndicesForBank(vanWS, b)
+        if not indices:
+            # no indices at all for this bank, not interested in it, don't add it to the dictionary
+            # (as when doing Calibrate (not-full)) which does CropData() the original workspace
+            continue
+
+        wsToFit = cropData(parent, vanWS, indices)
+        wsToFit = convertToDSpacing(parent, wsToFit)
+        wsToFit = sumSpectra(parent, wsToFit)
+
+        fitWS = fitBankCurve(parent, wsToFit, b)
+        curves.update({b: fitWS})
+
+    return curves
+
+def fitBankCurve(parent, vanWS, bank):
+    """
+    Fits a spline to a single-spectrum workspace (in d-spacing)
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param vanWS :: Vanadium workspace to fit (normally this contains spectra for a single bank)
+    @param bank :: instrument bank this is fitting is done for
+
+    @returns fit workspace (MatrixWorkspace), with the same number of bins as the input
+    workspace, and the Y values simulated from the fitted curve
+    """
+    expectedDim = 'd-Spacing'
+    dimType = vanWS.getXDimension().getName()
+    if expectedDim != dimType:
+        raise ValueError("This algorithm expects a workspace with %s X dimension, but "
+                         "the X dimension of the input workspace is: '%s'" % (expectedDim, dimType))
+
+    if 1 != vanWS.getNumberHistograms():
+        raise ValueError("The workspace does not have exactly one histogram. Inconsistency found.")
+
+    # without these min/max parameters 'BSpline' would completely misbehave
+    xvec = vanWS.readX(0)
+    startX = min(xvec)
+    endX = max(xvec)
+    functionDesc = 'name=BSpline, Order=3, StartX=' + str(startX) +', EndX=' + str(endX) + ', NBreak=12'
+    fitAlg = parent.createChildAlgorithm('Fit')
+    fitAlg.setProperty('Function', functionDesc)
+    fitAlg.setProperty('InputWorkspace', vanWS)
+    # WorkspaceIndex is left to default '0' for 1D function fits
+    # StartX, EndX could in principle be left to default start/end of the spectrum, but apparently
+    # not safe for 'BSpline'
+    fitAlg.setProperty('CreateOutput', True)
+    fitAlg.execute()
+
+    success = fitAlg.getProperty('OutputStatus').value
+    parent.log().information("Fitting Vanadium curve for bank %s, using function '%s', result: %s" %
+                             (bank, functionDesc, success))
+
+    detailMsg = ("It seems that this algorithm failed to to fit a function to the summed "
+                 "spectra of a bank. The function definiton was: '%s'") % functionDesc
+
+    outParsPropName = 'OutputParameters'
+    try:
+        fitAlg.getProperty(outParsPropName).value
+    except RuntimeError:
+        raise RuntimeError("Could not find the parameters workspace expected in the output property " +
+                           OutParsPropName + " from the algorithm Fit. It seems that this algorithm failed." +
+                           detailMsg)
+
+    outWSPropName = 'OutputWorkspace'
+    fitWS = None
+    try:
+        fitWS = fitAlg.getProperty(outWSPropName).value
+    except RuntimeError:
+        raise RuntimeError("Could not find the data workspace expected in the output property " +
+                           outWSPropName + ". " + detailMsg)
+
+    mtd['engg_van_ws_dsp'] = vanWS
+    mtd['engg_fit_ws_dsp'] = fitWS
+
+    return fitWS
+
+def prepareCurvesWS(parent, curvesDict):
+    """
+    Simply concantenates or appends fitting output workspaces as produced by the algorithm Fit (with 3
+    spectra each). The groups of 3 spectra are added sorted by the bank ID (number). This could also
+    produce a workspace group with the individual workspaces in it, but the AppendSpectra solution
+    seems simpler.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param curvesDict :: dictionary with fitting workspaces produced by 'Fit'
+
+    @returns a workspace where all the input workspaces have been concatenated, with 3 spectra per
+    workspace / bank
+    """
+    if 0 == len(curvesDict):
+        raise RuntimeError("Expecting a dictionary with fitting workspaces from 'Fit' but got an "
+                           "empty dictionary")
+    if 1 == len(curvesDict):
+        return curvesDict.values()[0]
+
+    keys = sorted(curvesDict)
+    ws = curvesDict[keys[0]]
+    for idx in range(1, len(keys)):
+        nextWS = curvesDict[keys[idx]]
+        ws = appendSpec(parent, ws, nextWS)
+
+    return ws
+
+def vanadiumWorkspaceIsPrecalculated(ws):
+    """
+    Is the workspace precalculated curve(s)? If not, it must be raw data from a Vanadium run
+
+    @param ws :: workspace passed in an Engg algorithm property
+
+    @returns True if the workspace seems to contain precalculated bank curves for Vanadium data
+    """
+    inst = ws.getInstrument()
+    return not inst or not inst.getName()
+
+def _precalcWStoDict(parent, ws):
+    """
+    Turn a workspace with one or more fitting results (3 spectra per curve fitted), that comes
+    with all the spectra appended, into a dictionary of individual fitting results.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws workspace with fitting results (3 spectra per curve fitted) as provided by Fit
+
+    @returns dictionary with every individual fitting result (3 spectra)
+
+    """
+    curves = {}
+
+    if 0 != (ws.getNumberHistograms() % 3):
+        raise RuntimeError("A workspace without instrument definition has ben passed, so it is "
+                           "expected to have fitting results, but it does not have a number of "
+                           "histograms multiple of 3. Number of hsitograms found: %d"%
+                           ws.getNumberHistograms())
+
+    for wi in range(0, ws.getNumberHistograms()/3):
+        indiv = cropData(parent, ws, [wi, wi+2])
+        curves.update({wi: indiv})
+
+    return curves
+
+def appendSpec(parent, ws1, ws2):
+    """
+    Uses the algorithm 'AppendSpectra' to append the spectra of ws1 and ws2
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws1 :: first workspace
+    @param ws2 :: second workspace
+
+    @returns workspace with the concatenation of the spectra ws1+ws2
+    """
+    alg = parent.createChildAlgorithm('AppendSpectra')
+    alg.setProperty('InputWorkspace1', ws1)
+    alg.setProperty('InputWorkspace2', ws2)
+    alg.execute()
+
+    result = alg.getProperty('OutputWorkspace').value
+    return result
+
+def integrateSpectra(parent, ws):
+    """
+    Integrates all the spectra or a workspace, and return the result.
+    Simply uses 'Integration' as a child algorithm.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: workspace (MatrixWorkspace) with the spectra to integrate
+
+    @returns integrated workspace, or result of integrating every spectra in the input workspace
+    """
+    intAlg = parent.createChildAlgorithm('Integration')
+    intAlg.setProperty('InputWorkspace', ws)
+    intAlg.execute()
+    ws = intAlg.getProperty('OutputWorkspace').value
+
+    return ws
+
+def rebinToMatchWS(parent, ws, targetWS):
+    """
+    Rebins a workspace so that its bins match those of a 'target' workspace. This simply uses the
+    algorithm RebinToWorkspace as a child. In principle this method does not care about the units
+    of the input workspaces, as long as they are in the same units.
+
+    @param parent :: parent (Mantid) algorithm that wants to run this
+    @param ws :: input workspace (MatrixWorkspace) to rebin (all spectra will be rebinnded)
+    @param targetWS :: workspace to match against, this fixes the data range, and number and width of the
+    bins for the workspace returned
+
+    @returns ws rebinned to resemble targetWS
+    """
+    reAlg = parent.createChildAlgorithm('RebinToWorkspace')
+    reAlg.setProperty('WorkspaceToRebin', ws)
+    reAlg.setProperty('WorkspaceToMatch', targetWS)
+    reAlg.execute()
+    reWS = reAlg.getProperty('OutputWorkspace').value
+
+    return reWS
diff --git a/Code/Mantid/scripts/Engineering/EnginXUtils.py b/Code/Mantid/scripts/Engineering/EnginXUtils.py
deleted file mode 100644
index f6be50505f27912f7870b8eb1e36ba9bd55040f8..0000000000000000000000000000000000000000
--- a/Code/Mantid/scripts/Engineering/EnginXUtils.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#pylint: disable=invalid-name
-import os
-
-from mantid.api import *
-from mantid.simpleapi import *
-
-def getDetIDsForBank(bank):
-    """ Returns detector IDs corresponding to the specified EnginX bank number
-    """
-    groupingFilePath = os.path.join(config.getInstrumentDirectory(), 'Grouping', 'ENGINX_Grouping.xml')
-
-    alg = AlgorithmManager.create('LoadDetectorsGroupingFile')
-    alg.setProperty('InputFile', groupingFilePath)
-    alg.setProperty('OutputWorkspace', '__EnginXGrouping')
-    alg.execute()
-
-    grouping = mtd['__EnginXGrouping']
-
-    detIDs = set()
-
-    for i in range(grouping.getNumberHistograms()):
-        if grouping.readY(i)[0] == bank:
-            detIDs.add(grouping.getDetector(i).getID())
-
-    DeleteWorkspace(grouping)
-
-    if len(detIDs) == 0:
-        raise Exception('Unknown bank')
-
-    return detIDs
-
-def getWsIndicesForBank(bank, ws):
-    """ Get a list of workspace indices which correspond to the specified bank
-    """
-    detIDs = getDetIDsForBank(bank)
-
-    def isIndexInBank(index):
-        try:
-            det = ws.getDetector(index)
-            return det.getID() in detIDs
-        except RuntimeError:
-            return False
-
-    return [i for i in range(0, ws.getNumberHistograms()) if isIndexInBank(i)]
diff --git a/Code/Mantid/scripts/Engineering/template_ENGINX_241391_236516_North_and_South_banks.par b/Code/Mantid/scripts/Engineering/template_ENGINX_241391_236516_North_and_South_banks.par
new file mode 100644
index 0000000000000000000000000000000000000000..7070e7a9e4c920517e1651eeb90580db0befc958
--- /dev/null
+++ b/Code/Mantid/scripts/Engineering/template_ENGINX_241391_236516_North_and_South_banks.par
@@ -0,0 +1,35 @@
+ID    ENGIN-X CALIBRATION WITH CeO2 and V-Nb                                    
+INS   BANK     2                                                                
+INS   HTYPE   PNTR                                                              
+INS     NAME  North_bank and South_bank                                         
+INS     NDET 1200    5  240    1                                                
+INS     TYPE    1                                                               
+INS   TOFLIM     10.00     80.00    0.0004                                      
+INS   MONITR 2402   16.0000   43.0000                                           
+INS   DEADTI 0.00                                                               
+INS    OGPK1   0.183305E+05  -0.387262E+02                                      
+INS    OGPK2   0.839000E+00   0.700000E+00   0.320000E+02   0.149000E+01        
+INS    OGPK3  -0.686285E+01   0.220000E+01   0.108719E+01                       
+INS    CALIB   241391   236516 ceo2                                             
+INS    INCBM  ob+mon_236516_North_and_South_banks.his                           
+INS   FCSTBL  det_pars_93875_93874_North_and_South_banks.hdf                    
+INS  1I ITYP    0    1.0000   80.0000         0                                 
+INS  1BNKPAR     1.502    89.341     0.720     0.000     0.000    0    0        
+INS  1 ICONS  18306.98      2.99     14.44                                      
+INS  1PRCF1     3   21   0.00050                                                
+INS  1PRCF11   0.274872E+00   0.179289E-01   0.379667E-01   0.388241E+03        
+INS  1PRCF12   0.768656E+02   0.432991E+02   0.000000E+00   0.514723E+01        
+INS  1PRCF13   0.000000E+00   0.000000E+00   0.000000E+00   0.000000E+00        
+INS  1PRCF14   0.000000E+00   0.000000E+00   0.000000E+00   0.000000E+00        
+INS  1PRCF15   0.000000E+00   0.000000E+00   0.000000E+00   0.000000E+00        
+INS  1PRCF16   0.000000E+00                                                     
+INS  2I ITYP    0    1.0000   80.0000         0                                 
+INS  2BNKPAR     1.479   -90.157    -0.216     0.000     0.000    0    0        
+INS  2 ICONS  18497.75    -29.68    -26.50                                      
+INS  2PRCF1     3   21   0.00050                                                
+INS  2PRCF11   0.804794E+00   0.336823E-02   0.460981E+00   0.000000E+00        
+INS  2PRCF12   0.107075E+04   0.432991E+02   0.000000E+00   0.652544E+01        
+INS  2PRCF13   0.000000E+00   0.000000E+00   0.000000E+00   0.000000E+00        
+INS  2PRCF14   0.000000E+00   0.000000E+00   0.000000E+00   0.000000E+00        
+INS  2PRCF15   0.000000E+00   0.000000E+00   0.000000E+00   0.000000E+00        
+INS  2PRCF16   0.000000E+00                                                     
diff --git a/Code/Mantid/scripts/FilterEvents/MainWindow.ui b/Code/Mantid/scripts/FilterEvents/MainWindow.ui
index 14ea64d0a3ed868b57eb05e7c253d3fe908df509..9ca23e97f14df047496de79e7bd5eb06462b8f1e 100644
--- a/Code/Mantid/scripts/FilterEvents/MainWindow.ui
+++ b/Code/Mantid/scripts/FilterEvents/MainWindow.ui
@@ -240,14 +240,7 @@
       <item>
        <layout class="QHBoxLayout" name="horizontalLayout_4">
         <item>
-         <widget class="QGraphicsView" name="graphicsView">
-          <property name="minimumSize">
-           <size>
-            <width>160</width>
-            <height>160</height>
-           </size>
-          </property>
-         </widget>
+         <widget class="MplFigureCanvas" name="graphicsView"/>
         </item>
         <item>
          <spacer name="horizontalSpacer_9">
@@ -1356,6 +1349,13 @@
   </widget>
   <widget class="QStatusBar" name="statusbar"/>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>MplFigureCanvas</class>
+   <extends>QGraphicsView</extends>
+   <header>MplFigureCanvas.h</header>
+  </customwidget>
+ </customwidgets>
  <resources/>
  <connections/>
 </ui>
diff --git a/Code/Mantid/scripts/FilterEvents/MplFigureCanvas.py b/Code/Mantid/scripts/FilterEvents/MplFigureCanvas.py
index 509e7462fbeaadc1035c8145c3a89e19d1ed54f1..200bee591e1cfe6c50d4656cdcb17d5c6a98e5de 100644
--- a/Code/Mantid/scripts/FilterEvents/MplFigureCanvas.py
+++ b/Code/Mantid/scripts/FilterEvents/MplFigureCanvas.py
@@ -6,7 +6,7 @@ from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
 from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
 from matplotlib.figure import Figure
 
-class Qt4MplCanvas(FigureCanvas):
+class MplFigureCanvas(FigureCanvas):
     """  A customized Qt widget for matplotlib figure.
     It can be used to replace GraphicsView of QtGui
     """
diff --git a/Code/Mantid/scripts/FilterEvents/eventFilterGUI.py b/Code/Mantid/scripts/FilterEvents/eventFilterGUI.py
index 1809d413017723e9ff416727e7b4a271bf5e87c5..8e3e041c53879c90cd90492303423a067646503a 100644
--- a/Code/Mantid/scripts/FilterEvents/eventFilterGUI.py
+++ b/Code/Mantid/scripts/FilterEvents/eventFilterGUI.py
@@ -123,8 +123,10 @@ class MainWindow(QtGui.QMainWindow):
         self.centralwidget = QtGui.QWidget(self)
 
         # UI Window (from Qt Designer)
-        self.ui = ui_MainWindow()
+        self.ui = Ui_MainWindow()
         self.ui.setupUi(self)
+        self.ui.mainplot = self.ui.graphicsView.getPlot()
+
 
         # Do initialize plotting
         vecx, vecy, xlim, ylim = self.computeMock()
diff --git a/Code/Mantid/scripts/HFIRPowderReduction/MainWindow.ui b/Code/Mantid/scripts/HFIRPowderReduction/MainWindow.ui
index 84346fb974e7155c58d87fe1026086516ddca4ef..c9bcd27cc2c4bb8a5071c70f51b3a3e023bce219 100644
--- a/Code/Mantid/scripts/HFIRPowderReduction/MainWindow.ui
+++ b/Code/Mantid/scripts/HFIRPowderReduction/MainWindow.ui
@@ -334,7 +334,7 @@
            <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
           </property>
           <property name="currentIndex">
-           <number>2</number>
+           <number>0</number>
           </property>
           <widget class="QWidget" name="tab_3">
            <attribute name="title">
@@ -392,7 +392,7 @@
               <item>
                <layout class="QHBoxLayout" name="horizontalLayout_14">
                 <item>
-                 <widget class="QGraphicsView" name="graphicsView_Raw">
+                 <widget class="MplFigureCanvas" name="graphicsView_Raw">
                   <property name="sizePolicy">
                    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
                     <horstretch>0</horstretch>
@@ -547,7 +547,7 @@
                   <item>
                    <layout class="QVBoxLayout" name="verticalLayout_13">
                     <item>
-                     <widget class="QGraphicsView" name="graphicsView_indvDet">
+                     <widget class="MplFigureCanvas" name="graphicsView_indvDet">
                       <property name="sizePolicy">
                        <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
                         <horstretch>0</horstretch>
@@ -810,7 +810,7 @@
                 <item>
                  <layout class="QGridLayout" name="gridLayout_reductionView">
                   <item row="0" column="0">
-                   <widget class="QGraphicsView" name="graphicsView_reducedData">
+                   <widget class="MplFigureCanvas" name="graphicsView_reducedData">
                     <property name="sizePolicy">
                      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
                       <horstretch>0</horstretch>
@@ -1297,7 +1297,7 @@
                 <item>
                  <layout class="QVBoxLayout" name="verticalLayout_mergeView">
                   <item>
-                   <widget class="QGraphicsView" name="graphicsView_mergeRun"/>
+                   <widget class="MplFigureCanvas" name="graphicsView_mergeRun"/>
                   </item>
                  </layout>
                 </item>
@@ -1496,7 +1496,7 @@
               <item>
                <layout class="QHBoxLayout" name="horizontalLayout_11">
                 <item>
-                 <widget class="QGraphicsView" name="graphicsView_vanPeaks">
+                 <widget class="MplFigureCanvas" name="graphicsView_vanPeaks">
                   <property name="sizePolicy">
                    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
                     <horstretch>0</horstretch>
@@ -2140,6 +2140,13 @@
    </property>
   </action>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>MplFigureCanvas</class>
+   <extends>QGraphicsView</extends>
+   <header>MplFigureCanvas.h</header>
+  </customwidget>
+ </customwidgets>
  <resources/>
  <connections/>
 </ui>
diff --git a/Code/Mantid/scripts/HFIRPowderReduction/MplFigureCanvas.py b/Code/Mantid/scripts/HFIRPowderReduction/MplFigureCanvas.py
index cec7d4282d3e0150c94d6d4033770370b0193712..7fae16be58e3ec50bc1beecb8c61116e7c0782a3 100644
--- a/Code/Mantid/scripts/HFIRPowderReduction/MplFigureCanvas.py
+++ b/Code/Mantid/scripts/HFIRPowderReduction/MplFigureCanvas.py
@@ -45,7 +45,7 @@ MplBasicColors = [
         "white"]
 
 
-class Qt4MplPlotView(QtGui.QWidget):
+class MplFigureCanvas(QtGui.QWidget):
     """ A combined graphics view including matplotlib canvas and
     a navigation tool bar
     """
diff --git a/Code/Mantid/scripts/Inelastic/Direct/DirectEnergyConversion.py b/Code/Mantid/scripts/Inelastic/Direct/DirectEnergyConversion.py
index b37d0d1485dfbddf86ca6e1bb40d9b1d384aee04..56043ad5aeed4096c76b402026bf270c95982230 100644
--- a/Code/Mantid/scripts/Inelastic/Direct/DirectEnergyConversion.py
+++ b/Code/Mantid/scripts/Inelastic/Direct/DirectEnergyConversion.py
@@ -8,6 +8,7 @@ import copy
 import math
 import time
 import numpy as np
+import collections
 
 import Direct.CommonFunctions  as common
 import Direct.diagnostics      as diagnostics
@@ -16,6 +17,7 @@ from Direct.RunDescriptor    import RunDescriptor
 from Direct.ReductionHelpers import extract_non_system_names
 
 
+
 def setup_reducer(inst_name,reload_instrument=False):
     """
     Given an instrument name or prefix this sets up a converter
@@ -507,7 +509,8 @@ class DirectEnergyConversion(object):
                 else:
                     if results_name != out_ws_name:
                         RenameWorkspace(InputWorkspace=results_name,OutputWorkspace=out_ws_name)
-                        result = mtd[out_ws_name]
+                        results_name = out_ws_name
+                        result = mtd[results_name]
                     else:
                         result = deltaE_ws_sample
             else: # delete workspace if no output is requested
@@ -667,6 +670,69 @@ class DirectEnergyConversion(object):
         mono_run.clear_monitors()
         return mono_s
 
+#-------------------------------------------------------------------------------
+    def sum_monitors_spectra(self,monitor_ws,ei_mon_spectra):
+        """Sum monitors spectra for all spectra, specified in the spectra list(s)
+           and create monitor workspace containing only the spectra summed and organized
+           according to ei_mon_spectra tuple.
+
+           Returns tuple of two spectra numbers, containing in the
+           new summed monitors workspace and pointer to the new workspace itself.
+        """
+        spectra_list1=ei_mon_spectra[0]
+        spectra_list2=ei_mon_spectra[1]
+        if not isinstance(spectra_list1,list):
+            spectra_list1 = [spectra_list1]
+        spec_num1 = self._process_spectra_list(monitor_ws,spectra_list1,'spectr_ws1')
+
+        if not isinstance(spectra_list2,list):
+            spectra_list2 = [spectra_list2]
+        spec_num2 = self._process_spectra_list(monitor_ws,spectra_list2,'spectr_ws2')
+        monitor_ws_name = monitor_ws.name()
+        DeleteWorkspace(monitor_ws_name)
+        AppendSpectra(InputWorkspace1='spectr_ws1',InputWorkspace2='spectr_ws2',OutputWorkspace=monitor_ws_name)
+        if 'spectr_ws1' in mtd:
+            DeleteWorkspace('spectr_ws1')
+        if 'spectr_ws2' in mtd:
+            DeleteWorkspace('spectr_ws2')
+        monitor_ws = mtd[monitor_ws_name]
+        # Weird operation. It looks like the spectra numbers obtained from
+        # AppendSpectra operation depend on instrument.
+        # Looks like a bug in AppendSpectra
+        spec_num1 = monitor_ws.getSpectrum(0).getSpectrumNo()
+        spec_num2 = monitor_ws.getSpectrum(1).getSpectrumNo()
+
+        return (spec_num1,spec_num2),monitor_ws
+
+    def _process_spectra_list(self,workspace,spectra_list,target_ws_name='SpectraWS'):
+        """Method moves all detectors of the spectra list into the same position and
+           sums the specified spectra in the workspace"""
+        detPos=None
+        wsIDs=list()
+        for spec_num in spectra_list:
+            specID = workspace.getIndexFromSpectrumNumber(spec_num)
+            if detPos is None:
+                first_detector = workspace.getDetector(specID)
+                detPos = first_detector.getPos()
+            else:
+                psp = workspace.getSpectrum(specID)
+                detIDs = psp.getDetectorIDs()
+                for detID in detIDs:
+                    MoveInstrumentComponent(Workspace=workspace,ComponentName= 'Detector',
+                                DetectorID=detID,X=detPos.getX(),Y=detPos.getY(),
+                                Z=detPos.getZ(),RelativePosition=False)
+            wsIDs.append(specID)
+
+        if len(spectra_list) == 1:
+            ExtractSingleSpectrum(InputWorkspace=workspace,OutputWorkspace=target_ws_name,
+            WorkspaceIndex=wsIDs[0])
+        else:
+            SumSpectra(InputWorkspace=workspace,OutputWorkspace=target_ws_name,
+            ListOfWorkspaceIndices=wsIDs)
+        ws = mtd[target_ws_name]
+        sp = ws.getSpectrum(0)
+        spectrum_num = sp.getSpectrumNo()
+        return spectrum_num
 #-------------------------------------------------------------------------------
     def get_ei(self, data_run, ei_guess):
         """ Calculate incident energy of neutrons and the time of the of the
@@ -690,12 +756,15 @@ class DirectEnergyConversion(object):
                  format(data_ws.name(),data_ws.getRunNumber()))
         separate_monitors = data_run.is_monws_separate()
         data_run.set_action_suffix('_shifted')
+        # sum monitor spectra if this is requested
+        if PropertyManager.ei_mon_spectra.need_to_sum_monitors(self.prop_man):
+            ei_mon_spectra,monitor_ws = self.sum_monitors_spectra(monitor_ws,ei_mon_spectra)
 
 
         # Calculate the incident energy
         ei,mon1_peak,mon1_index,tzero = \
-            GetEi(InputWorkspace=monitor_ws, Monitor1Spec=int(ei_mon_spectra[0]),
-                  Monitor2Spec=int(ei_mon_spectra[1]),
+            GetEi(InputWorkspace=monitor_ws, Monitor1Spec=ei_mon_spectra[0],
+                  Monitor2Spec=ei_mon_spectra[1],
                   EnergyEstimate=ei_guess,FixEi=fix_ei)
 
         # Store found incident energy in the class itself
@@ -720,7 +789,7 @@ class DirectEnergyConversion(object):
                InstrumentParameter="DelayTime",Combine=True)
 
         # shift to monitor used to calculate energy transfer
-        spec_num = monitor_ws.getIndexFromSpectrumNumber(int(ei_mon_spectra[0]))
+        spec_num = monitor_ws.getIndexFromSpectrumNumber(ei_mon_spectra[0])
         mon1_det = monitor_ws.getDetector(spec_num)
         mon1_pos = mon1_det.getPos()
         src_name = data_ws.getInstrument().getSource().getName()
@@ -772,11 +841,11 @@ class DirectEnergyConversion(object):
                 method,old_ws_name = self._normalize_to_monitor2(run,old_ws_name, range_offset,external_monitors_ws)
                 break
             if case('current'):
-                out_ws=NormaliseByCurrent(InputWorkspace=old_ws_name,OutputWorkspace=old_ws_name)
+                NormaliseByCurrent(InputWorkspace=old_ws_name,OutputWorkspace=old_ws_name)
                 # NormalizationFactor log has been added by the algorithm themselves.
                 break
             if case(): # default
-                raise RuntimeError("""Normalization method {0} not found. 
+                raise RuntimeError("""Normalization method {0} not found.
                                    It must be one of monitor-1, monitor-2, current, or None""".\
                                    format(method))
         #endCase
@@ -813,7 +882,7 @@ class DirectEnergyConversion(object):
                    .format(ws.name(),run.run_number()))
 
 
-        range = self.norm_mon_integration_range
+        int_range = self.norm_mon_integration_range
         if self._debug_mode:
             kwargs = {'NormFactorWS':'NormMon1_WS' + data_ws.getName()}
         else:
@@ -823,12 +892,12 @@ class DirectEnergyConversion(object):
         if separate_monitors:
             kwargs['MonitorWorkspace'] = mon_ws
             kwargs['MonitorWorkspaceIndex'] = int(mon_ws.getIndexFromSpectrumNumber(int(mon_spect)))
-            range_min = float(range[0])
-            range_max = float(range[1])
+            range_min = float(int_range[0])
+            range_max = float(int_range[1])
         else:
             kwargs['MonitorSpectrum'] = int(mon_spect) # shame TODO: change c++ algorithm, which need float monitor ID
-            range_min = float(range[0] + range_offset)
-            range_max = float(range[1] + range_offset)
+            range_min = float(int_range[0] + range_offset)
+            range_max = float(int_range[1] + range_offset)
         kwargs['NormFactorWS'] = 'Monitor1_norm_ws'
 
         # Normalize to monitor 1
@@ -880,9 +949,9 @@ class DirectEnergyConversion(object):
 
         #Find TOF range, correspondent to incident energy monitor peak
         if self._mon2_norm_time_range: # range has been found during ei-calculations
-            range = self._mon2_norm_time_range
-            range_min = range[0] + range_offset
-            range_max = range[1] + range_offset
+            norm_range = self._mon2_norm_time_range
+            range_min = norm_range[0] + range_offset
+            range_max = norm_range[1] + range_offset
             self._mon2_norm_time_range = None
         else:
             mon_ws_name = mon_ws.name() #monitor's workspace and detector's workspace are e
@@ -984,12 +1053,22 @@ class DirectEnergyConversion(object):
                 src_name = None
                 mon1_peak = 0
             else:
-                mon_2_spec_ID = int(ei_mon_spectra[0])
+                mon_1_spec_ID = ei_mon_spectra[0]
+                if isinstance(mon_1_spec_ID,collections.Iterable):
+                    fix_ei = True # This could be a HACK
+                    mon_1_spec_ID = mon_1_spec_ID[0]
+                #-----------
+                mon_2_spec_ID = ei_mon_spectra[1]
+                if isinstance(mon_2_spec_ID,collections.Iterable):
+                    fix_ei = True # This could be a HACK
+                    mon_2_spec_ID = mon_2_spec_ID[1]
+                #-----------
+
                 # Calculate the incident energy and TOF when the particles access Monitor1
                 try:
                     ei,mon1_peak,mon1_index,tzero = \
-                    GetEi(InputWorkspace=monitor_ws, Monitor1Spec=mon_2_spec_ID,
-                        Monitor2Spec=int(ei_mon_spectra[1]),
+                    GetEi(InputWorkspace=monitor_ws, Monitor1Spec=mon_1_spec_ID,
+                        Monitor2Spec=mon_2_spec_ID,
                         EnergyEstimate=ei_guess,FixEi=fix_ei)
                     mon1_det = monitor_ws.getDetector(mon1_index)
                     mon1_pos = mon1_det.getPos()
@@ -1461,14 +1540,13 @@ class DirectEnergyConversion(object):
 # -------------------------------------------------------------------------------------------
 #         This actually does the conversion for the mono-sample and
 #         mono-vanadium runs
-#
 # -------------------------------------------------------------------------------------------
     def _do_mono_SNS(self, data_ws, result_name, ei_guess,\
                  white_run=None, map_file=None, spectra_masks=None, Tzero=None):
-        # does not work -- retrieve from repo and fix
+        # does not work -- retrieve from repo and fix if this functionality is needed.
         raise NotImplementedError("Non currently implemented. Retrieve from repository"
                                   " if necessary and fix")
-        return
+        #return
 #-------------------------------------------------------------------------------
     def _do_mono_ISIS(self, data_run, ei_guess,\
                  white_run=None, map_file=None, spectra_masks=None, Tzero=None):
@@ -1705,7 +1783,7 @@ def get_failed_spectra_list_from_masks(masked_wksp,prop_man):
     if masked_wksp is None:
         return (failed_spectra,0)
     try:
-        name = masked_wksp.name()
+        masked_wksp.name()
     except Exeption as ex:
         prop_man.log("***WARNING: cached mask workspace invalidated. Incorrect masking reported")
         return (failed_spectra,0)
diff --git a/Code/Mantid/scripts/Inelastic/Direct/ISISDirecInelasticConfig.py b/Code/Mantid/scripts/Inelastic/Direct/ISISDirecInelasticConfig.py
index 2ac4f3b5b7dba1905605bd7df21690cef1138dc0..acc33996bbde30fd2a7311e6e873dd2db1f44184 100644
--- a/Code/Mantid/scripts/Inelastic/Direct/ISISDirecInelasticConfig.py
+++ b/Code/Mantid/scripts/Inelastic/Direct/ISISDirecInelasticConfig.py
@@ -138,6 +138,10 @@ class MantidConfigDirectInelastic(object):
         self._sample_reduction_file = lambda InstrName : '{0}Reduction_Sample.py'.format(InstrName)
         # File name, used as target for copying to user folder for user to deploy as the base for his reduction script
         self._target_reduction_file = lambda InstrName,cycleID : '{0}Reduction_{1}_{2}.py'.format(InstrName,cycleID[0],cycleID[1])
+        # Relative to a particular user path to place links, important to user
+        self._user_specific_link_path='Desktop'
+        # Relative to a particular user name of folders with link to instrument files
+        self._map_mask_link_name = 'instrument_files'
 
         # Static contents of the Mantid Config file
         self._header = ("# This file can be used to override any properties for this installation.\n"
@@ -250,7 +254,7 @@ class MantidConfigDirectInelastic(object):
 
         if platform.system() != 'Windows':
             os.system('chown '+self._fedid+':'+self._fedid+' '+full_target)
-        # Set up the file  creation and modification dates to the users start date
+        # Set up the file creation and modification dates to the users start date
         start_date = self._user.get_start_date()
         file_time = time.mktime(start_date.timetuple())
         os.utime(full_target,(file_time,file_time))
@@ -262,8 +266,10 @@ class MantidConfigDirectInelastic(object):
            The agreement on the naming as currently in ISIS:
            e.g: /archive/NDXMERLIN/Instrument/data/cycle_08_1
         """
+        # cycle folder have short form without leading numbers
+        cycle_fold_n =int(cycle_ID[0])-2000
         folder = os.path.join(self._root_data_folder,'NDX'+instr.upper(),\
-                              'Instrument/data/cycle_'+str(cycle_ID[0])+'_'+str(cycle_ID[1]))
+                              "Instrument/data/cycle_{0:02}_{1}".format(cycle_fold_n,str(cycle_ID[1])))
         return folder
 
     def is_inelastic(self,instr_name):
@@ -381,8 +387,8 @@ class MantidConfigDirectInelastic(object):
         """Save generated Mantid configuration file into user's home folder
            and copy other files, necessary for Mantid to work properly
         """
-
-        config_path = os.path.join(self._home_path,self._fedid,'.mantid')
+        user_path = os.path.join(self._home_path,self._fedid)
+        config_path = os.path.join(user_path,'.mantid')
         if not os.path.exists(config_path):
             err = os.makedirs(config_path)
             if err: 
@@ -400,6 +406,32 @@ class MantidConfigDirectInelastic(object):
         cycleID   = self._user.get_last_cycleID()
         rb_folder = self._user.get_last_rbdir()
         self.copy_reduction_sample(InstrName,cycleID,rb_folder)
+        #
+        self.make_map_mask_links(user_path)
+    #
+    def make_map_mask_links(self,user_path):
+        """The method generates references to map files and places these references
+           to the user's desktop.
+        """
+        # the path where to set up links, important to user
+        links_path = os.path.join(user_path,self._user_specific_link_path)
+        if not os.path.exists(links_path):
+            os.makedirs(links_path)
+            # the path have to belong to user
+            if platform.system() != 'Windows':
+                os.system('chown -R {0}:{0} {1}'.format(self._fedid,links_path))
+
+        map_mask_folder_link = os.path.join(links_path,self._map_mask_link_name)
+        if os.path.exists(map_mask_folder_link):
+            return
+        # create link to map mask folder
+        if platform.system() == 'Windows':
+            # the script is not intended to run on Windows, so this is just for testing
+            mmfl = map_mask_folder_link.replace('/','\\')
+            mmf  = self._map_mask_folder.replace('/','\\')
+            os.system("mklink /J {0} {1}".format(mmfl,mmf))
+        else:
+            os.system('ln -s {0} {1}'.format(self._map_mask_folder,map_mask_folder_link))
 
     def _write_user_config_file(self,config_file_name):
         """Write existing dynamic configuration from memory to
diff --git a/Code/Mantid/scripts/Inelastic/Direct/PropertiesDescriptors.py b/Code/Mantid/scripts/Inelastic/Direct/PropertiesDescriptors.py
index d6af8b666a5452f0830fea49879050662ce8866a..f05779e6e22cb3be785e93284470526939658be8 100644
--- a/Code/Mantid/scripts/Inelastic/Direct/PropertiesDescriptors.py
+++ b/Code/Mantid/scripts/Inelastic/Direct/PropertiesDescriptors.py
@@ -11,6 +11,7 @@ import numpy as np
 
 import Direct.ReductionHelpers as prop_helpers
 import Direct.CommonFunctions as common
+from collections import Iterable
 
 #-----------------------------------------------------------------------------------------
 # Descriptors, providing overloads for complex properties in NonIDF_Properties
@@ -187,10 +188,12 @@ class IncidentEnergy(PropDescriptor):
         if isinstance(inc_en,list):
             for ind,en in enumerate(inc_en):
                 if en <= 0:
-                    return (False,2,"Incident energy have to be positive number or list of positive numbers.\n" + "For input argument {0} got negative energy {1}".format(ind,en))
+                    return (False,2,"Incident energy have to be positive number or list of positive numbers.\n"
+                            "For input argument {0} got negative energy {1}".format(ind,en))
         else:
             if inc_en <= 0:
-                return (False,2,"Incident energy have to be positive number or list of positive numbers.\n" + "Got single negative incident energy {0} ".format(inc_en))
+                return (False,2,"Incident energy have to be positive number or list of positive numbers.\n"
+                        "Got single negative incident energy {0} ".format(inc_en))
         return (True,0,'')
 # end IncidentEnergy
 #-----------------------------------------------------------------------------------------
@@ -445,13 +448,14 @@ class mon2NormalizationEnergyRange(PropDescriptor):
 
     def validate(self,instance,owner=None):
         """ function verifies if the energy range is consistent with incident energies """
-        range = self._relative_range
-        if len(range) != 2:
-            return(False,2,'mon2_normalization_energy_range can be initialized by list of two values only. Got {0} values'.format(len(range)))
+        en_range = self._relative_range
+        if len(en_range) != 2:
+            return(False,2,'mon2_normalization_energy_range can be initialized by list of two values only.'
+                  ' Got {0} values'.format(len(range)))
 
         result = (True,0,'')
 
-        val1 = float(range[0])
+        val1 = float(en_range[0])
         if val1 < 0.1 or val1 > 0.9:
             message = "Lower mon2_norm_energy_range describes lower limit of energy to integrate neutron signal after the chopper.\n"\
                       "The limit is defined as (this value)*incident_energy. Are you sure you want to set this_value to {0}?\n".format(val1)
@@ -461,7 +465,7 @@ class mon2NormalizationEnergyRange(PropDescriptor):
                 result = (False,1,message)
 
 
-        val2 = float(range[1])
+        val2 = float(en_range[1])
         if val2 < 1.1 or val2 > 1.9:
             message = "Upper mon2_norm_energy_range describes upper limit of energy to integrate neutron signal after the chopper.\n"\
                      "The limit is defined as (this value)*incident_energy. Are you sure you want to set this_value to {0}?\n".format(val2)
@@ -660,7 +664,7 @@ class HardMaskOnly(prop_helpers.ComplexProperty):
     def __init__(self):
         prop_helpers.ComplexProperty.__init__(self,['use_hard_mask_only','run_diagnostics'])
 
-    def __get__(self,instance,type=None):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
 
@@ -726,7 +730,7 @@ class MonovanIntegrationRange(prop_helpers.ComplexProperty):
             self._rel_range = True
             prop_helpers.ComplexProperty.__init__(self,['monovan_lo_frac','monovan_hi_frac'])
 
-    def __get__(self,instance,owner):
+    def __get__(self,instance,owner=None):
 
         if instance is None:
             return self
@@ -742,8 +746,8 @@ class MonovanIntegrationRange(prop_helpers.ComplexProperty):
             if ei is None:
                 raise AttributeError('Attempted to obtain relative to ei monovan integration range, but incident energy has not been set')
             rel_range = prop_helpers.ComplexProperty.__get__(self,tDict)
-            range = [rel_range[0] * ei,rel_range[1] * ei]
-            return range
+            the_range = [rel_range[0] * ei,rel_range[1] * ei]
+            return the_range
         else: # absolute range
             return prop_helpers.ComplexProperty.__get__(self,tDict)
 
@@ -778,16 +782,118 @@ class MonovanIntegrationRange(prop_helpers.ComplexProperty):
         if instance.monovan_run is None:
             return (True,0,'')
 
-        range = sepf.__get__(instance,owner)
+        the_range = sepf.__get__(instance,owner)
         ei = instance.incident_energy
-        if range[0] >= range[1]:
-            return (False,2,'monovan integration range limits = [{0}:{1}] are wrong'.format(range[0],range[1]))
-        if range[0] < -100 * ei or range[0] > 100 * ei:
-            return (False,1,'monovan integration is suspiciously wide: [{0}:{1}]. This may be incorrect'.format(range[0],range[1]))
+        if the_range[0] >= the_range[1]:
+            return (False,2,'monovan integration range limits = [{0}:{1}] are wrong'.format(the_range[0],the_range[1]))
+        if the_range[0] < -100 * ei or the_range[0] > 100 * ei:
+            return (False,1,'monovan integration is suspiciously wide: [{0}:{1}]. This may be incorrect'\
+                            .format(the_range[0],the_range[1]))
         return (True,0,'')
-
 #end MonovanIntegrationRange
 
+class EiMonSpectra(prop_helpers.ComplexProperty):
+    """Property defines list of spectra, used to calculate incident energy.
+       It defines two monitor spectra for GetEi algorithm to work
+       or two spectra lists to sum and obtain workspace with two combined spectra
+       for GetEi algorithm to work.
+    """
+    def __init__(self):
+        """ Ei mon spectra is defined as function of two other complex properties"""
+        prop_helpers.ComplexProperty.__init__(self,['ei-mon1-spec','ei-mon2-spec'])
+
+    def __get__(self,instance,owner=None):
+        if instance is None:
+            return self
+
+        if isinstance(instance,dict):
+            tDict = instance
+        else:
+            tDict = instance.__dict__
+
+        mon_range = prop_helpers.ComplexProperty.__get__(self,tDict)
+
+        # Return monitors range, converted into the standard form.
+        # namely tuple of two monitors or monitors list
+        monitors = [0,0]
+        for index,mon_val in enumerate(mon_range):
+            monitors[index]=self._process_monitors_spectra(mon_val)
+        return (monitors[0],monitors[1])
+
+
+    def __set__(self,instance,value):
+        if value is None: # Do nothing
+            return
+
+        if isinstance(instance,dict):
+            dDict = instance
+        else:
+            tDict = instance.__dict__
+
+        if isinstance(value,str):
+            val =  value.translate(None,'[]').strip()
+            if val.find(':')>-1:
+                val = val.split(':')
+            else:
+                val = val.split(',')
+        else:
+            val = value
+        #end if
+        if len(val) != 2:
+            raise KeyError("ei_mon_spectra may be either tuple defining two spectra "\
+                "lists or string, which can be transformed to such lists. Got {0}"
+                .format(value))
+
+        # Handle self-assignment. Otherwise suppose that the values are meaningful
+        if val[0] == 'ei-mon1-spec':
+            val[0] = tDict['ei-mon1-spec']
+        if val[1] == 'ei-mon2-spec':
+            val[1] = tDict['ei-mon2-spec']
+        #
+        prop_helpers.ComplexProperty.__set__(self,tDict,val)
+
+    def need_to_sum_monitors(self,instance):
+        """Returns True if some monitors are defined as range of spectra to sum
+           False -- if all monitors are related to one spectra each.
+        """
+        tDict = instance.__dict__
+        mon_range = prop_helpers.ComplexProperty.__get__(self,tDict)
+        # Return monitors range, converted into the standard form.
+        need_to_sum =False
+        for mon_val in mon_range:
+            mon_list = self._process_monitors_spectra(mon_val)
+            if isinstance(mon_list,Iterable):
+                need_to_sum  = True
+                break
+        return need_to_sum
+
+    #
+    def _process_monitors_spectra(self,mon_range):
+        """A method to process any form of monitor spectra list
+           representation
+        Called on get rather then on set operation as monitor lists
+        can be set separately through ei-mon1-spec or 'ei-mon2-spec
+        properties and these properties are currently standard properties
+        """
+
+        if isinstance(mon_range,str):
+            mon_val = mon_range.split(',')
+        else:
+            mon_val = mon_range
+        if isinstance(mon_val,list) or isinstance(mon_val,tuple):
+            rez_spectra=[]
+            for mon in mon_val:
+                rez_spectra.append(int(mon))
+            if len(rez_spectra) == 1:
+                rez_spectra = rez_spectra[0]
+        else:
+            rez_spectra = int(mon_range)
+        return rez_spectra
+
+#    def validate(self,instance, owner):
+#        """ """
+#        return (True,0,'')
+
 #-----------------------------------------------------------------------------------------
 class SpectraToMonitorsList(PropDescriptor):
     """Define list of spectra, with detectors used as monitors to estimate incident energy
@@ -803,7 +909,7 @@ class SpectraToMonitorsList(PropDescriptor):
         self._spectra_to_monitors_list = None
 
 
-    def __get__(self,instance,type=None):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
         return self._spectra_to_monitors_list
@@ -853,7 +959,7 @@ class SaveFormat(PropDescriptor):
     def __init__(self):
         self._save_format = set()
 
-    def __get__(self,instance,type=None):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
 
@@ -915,7 +1021,7 @@ class DiagSpectra(PropDescriptor):
     def __init__(self):
         self._diag_spectra = None
 
-    def __get__(self,instance,type=None):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
 
@@ -956,7 +1062,7 @@ class BackbgroundTestRange(PropDescriptor):
     def __init__(self):
         self._background_test_range = None
 
-    def __get__(self,instance,type=None):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
 
@@ -977,15 +1083,15 @@ class BackbgroundTestRange(PropDescriptor):
 
     def validate(self,instance, owner=None):
         """ validate background test range """
-        range = self.__get__(instance,owner)
-        if range is None:
+        test_range = self.__get__(instance,owner)
+        if test_range is None:
             return (True,0,'')
-        if range[0] >= range[1]:
-            return (False,2,' Background test range: [{0}:{1}] is incorrect '.format(range[0],range[1]))
-        if range[0] < 0:
-            return (False,2,' Background test range is TOF range, so it can not be negative={0}'.format(range[0]))
-        if range[1] > 20000:
-            return (False,1,' Background test range is TOF range, its max value looks suspiciously big={0}'.format(range[1]))
+        if test_range[0] >= test_range[1]:
+            return (False,2,' Background test range: [{0}:{1}] is incorrect '.format(test_range[0],test_range[1]))
+        if test_range[0] < 0:
+            return (False,2,' Background test range is TOF range, so it can not be negative={0}'.format(test_range[0]))
+        if test_range[1] > 20000:
+            return (False,1,' Background test range is TOF range, its max value looks suspiciously big={0}'.format(test_range[1]))
         return (True,0,'')
 #end BackbgroundTestRange
 
@@ -1000,7 +1106,7 @@ class MultirepTOFSpectraList(PropDescriptor):
     def __init__(self):
         self._spectra_list = None
 
-    def __get__(self,instance,type=None):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
 
@@ -1044,7 +1150,7 @@ class MonoCorrectionFactor(PropDescriptor):
         self.cashed_values = {}
         self._mono_run_prop = monovan_run_prop
 
-    def __get__(self,instance,type):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
 
@@ -1109,7 +1215,7 @@ class MotorLogName(PropDescriptor):
     def __init__(self):
         self._log_names = []
 
-    def __get__(self,instance,type):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
         return self._log_names
@@ -1133,7 +1239,7 @@ class MotorOffset(PropDescriptor):
     """
     def __init__(self):
         self._offset = None
-    def __get__(self,instance,type):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
         return self._offset
@@ -1169,7 +1275,7 @@ class RotationAngle(PropDescriptor):
         self._log_ws_name = None
 
     #
-    def __get__(self,instance,type):
+    def __get__(self,instance,owner=None):
         if instance is None:
             return self
 
@@ -1233,6 +1339,7 @@ class RotationAngle(PropDescriptor):
         return ['motor_log_names','motor_offset']
 #end RotationAngle
 
+
 #-----------------------------------------------------------------------------------------
 # END Descriptors for PropertyManager itself
 #-----------------------------------------------------------------------------------------
diff --git a/Code/Mantid/scripts/Inelastic/Direct/PropertyManager.py b/Code/Mantid/scripts/Inelastic/Direct/PropertyManager.py
index 50887f347403868ca9da3d2b96cbc7e6605918e1..63aeb894963734879a7071e0196da7d5c661b5a8 100644
--- a/Code/Mantid/scripts/Inelastic/Direct/PropertyManager.py
+++ b/Code/Mantid/scripts/Inelastic/Direct/PropertyManager.py
@@ -1,7 +1,7 @@
 #pylint: disable=invalid-name
 from Direct.NonIDF_Properties import *
 
-from collections import OrderedDict
+from collections import OrderedDict,Iterable
 
 
 class PropertyManager(NonIDF_Properties):
@@ -243,6 +243,8 @@ class PropertyManager(NonIDF_Properties):
     #
     mono_correction_factor = MonoCorrectionFactor(NonIDF_Properties.incident_energy,
                                                   NonIDF_Properties.monovan_run)
+    # list of spectra number used to identify ei
+    ei_mon_spectra = EiMonSpectra()
     # property responsible for summing runs
     sum_runs = SumRuns(NonIDF_Properties.sample_run)
     # properties responsible for rotation angle
@@ -306,9 +308,18 @@ class PropertyManager(NonIDF_Properties):
                 break
             if case(): # default, could also just omit condition or 'if True'
                 pass
-
-        used_mon.add(self.ei_mon1_spec)
-        used_mon.add(self.ei_mon2_spec)
+        #
+        def add_ei_monitors(used_mon,ei_mon_list):
+            if isinstance(ei_mon_list,Iterable) :
+                for mon_sp in ei_mon_list:
+                    used_mon.add(mon_sp )
+            else:
+                used_mon.add(ei_mon_list)
+            return used_mon
+        #
+        ei_monitors = self.ei_mon_spectra
+        used_mon = add_ei_monitors(used_mon,ei_monitors[0])
+        used_mon = add_ei_monitors(used_mon,ei_monitors[1])
 
         return used_mon
     #
@@ -418,6 +429,10 @@ class PropertyManager(NonIDF_Properties):
                 #end
                 if new_val != cur_val:
                     changed_descriptors.add(key)
+                    changed_throug_main = True
+                else: # property may be changed through descriptors
+                    changed_throug_main  = False
+
                 # dependencies removed either properties are equal or not
                 try:
                     dependencies = getattr(PropertyManager,key).dependencies()
@@ -426,7 +441,8 @@ class PropertyManager(NonIDF_Properties):
 
                 for dep_name in dependencies:
                     if dep_name in sorted_param:
-                        del sorted_param[dep_name]
+                        if changed_throug_main or (sorted_param[dep_name] == getattr(self,dep_name)):
+                            del sorted_param[dep_name]
             else: # remove property from old changes list not to reapply it again?
                 pass
         #end loop
diff --git a/Code/Mantid/scripts/Inelastic/Direct/ReductionWrapper.py b/Code/Mantid/scripts/Inelastic/Direct/ReductionWrapper.py
index ef4c40b385650695d83f1f29e75e0da102d959cf..08e6b598c4982e02da80f61f26f318ec979ee72f 100644
--- a/Code/Mantid/scripts/Inelastic/Direct/ReductionWrapper.py
+++ b/Code/Mantid/scripts/Inelastic/Direct/ReductionWrapper.py
@@ -419,6 +419,7 @@ class ReductionWrapper(object):
         self.reducer.prop_man.sum_runs = True
 
         timeToWait = self._wait_for_file
+        self._wait_for_file = 0
         if timeToWait > 0:
             run_files = PropertyManager.sample_run.get_run_list()
             num_files_to_sum = len(PropertyManager.sample_run)
@@ -432,6 +433,9 @@ class ReductionWrapper(object):
                 while n_found > 0:
                     last_found = found[-1]
                     self.reducer.prop_man.sample_run = last_found # request to reduce all up to last found
+                    # Note that here we run convert to energy instead of user (may be) reloaded reduction!
+                    # This would cause problem for user-defined reduction, which pre-process rather than
+                    # post-process resulting workspace
                     ws = self.reducer.convert_to_energy()
                  # reset search to whole file list again
                     self.reducer.prop_man.sample_run = run_files[num_files_to_sum - 1]
@@ -449,10 +453,10 @@ class ReductionWrapper(object):
             if n_found > 0:
             # cash sum can be dropped now if it has not been done before
                 self.reducer.prop_man.cashe_sum_ws = False
-                ws = self.reducer.convert_to_energy()
+                ws = self.reduce()
         else:
-            ws = self.reducer.convert_to_energy()
-
+            ws = self.reduce()
+        self._wait_for_file = timeToWait
         return ws
     #
     def run_reduction(self):
diff --git a/Code/Mantid/scripts/Inelastic/Direct/RunDescriptor.py b/Code/Mantid/scripts/Inelastic/Direct/RunDescriptor.py
index 5153eb01a73841770f8b117a716d7c1f210d5d75..9fda6508d6224a370358ac200b8968be3aeca2c5 100644
--- a/Code/Mantid/scripts/Inelastic/Direct/RunDescriptor.py
+++ b/Code/Mantid/scripts/Inelastic/Direct/RunDescriptor.py
@@ -4,6 +4,7 @@
 from mantid.simpleapi import *
 from Direct.PropertiesDescriptors import *
 import re
+import collections
 
 class RunList(object):
     """Helper class to maintain list of runs used in RunDescriptor for summing
@@ -831,8 +832,16 @@ class RunDescriptor(PropDescriptor):
                 mon_ws = self.copy_spectrum2monitors(data_ws,mon_ws,specID)
 
         if monitors_ID:
-            if isinstance(monitors_ID,list):
-                mon_list = monitors_ID
+            def flatten_list(targ_list,source):
+                if isinstance(source, collections.Iterable):
+                    for item in source:
+                        targ_list = flatten_list(targ_list,item)
+                else:
+                    targ_list.append(source)
+                return targ_list
+            if isinstance(monitors_ID, collections.Iterable):
+                mon_list = []
+                mon_list = flatten_list(mon_list,monitors_ID)
             else:
                 mon_list = [monitors_ID]
         else:
@@ -846,7 +855,7 @@ class RunDescriptor(PropDescriptor):
                     monws_name = mon_ws.name()
                 except:
                     monws_name = 'None'
-                RunDescriptor._logger('*** Monitor workspace {0} does not have monitor with ID {1}. Monitor workspace set to None'.\
+                RunDescriptor._logger('*** Monitor workspace {0} does not have spectra with ID {1}. Monitor workspace set to None'.\
                                           format(monws_name,monID),'warning')
                 mon_ws = None
                 break
diff --git a/Code/Mantid/scripts/Inelastic/Direct/dgreduce.py b/Code/Mantid/scripts/Inelastic/Direct/dgreduce.py
index eac4022db4dd6ce5794d85e88d09c5019d6b9096..386c4b3972f70099e48828680dec48e5932f3b1c 100644
--- a/Code/Mantid/scripts/Inelastic/Direct/dgreduce.py
+++ b/Code/Mantid/scripts/Inelastic/Direct/dgreduce.py
@@ -30,7 +30,7 @@ def setup(instname=None,reload=False):
         instname = config['default.instrument']
 
 
-    if not Reducer is None :
+    if not (Reducer is None or Reducer.prop_man is None):
         old_name=Reducer.prop_man.instr_name
         if  old_name.upper()[0:3] == instname.upper()[0:3] :
             if not reload :
diff --git a/Code/Mantid/scripts/Inelastic/IndirectAbsCor.py b/Code/Mantid/scripts/Inelastic/IndirectAbsCor.py
deleted file mode 100644
index 3f7b40f777eb10a18243316b4de8b0d6d37bb77c..0000000000000000000000000000000000000000
--- a/Code/Mantid/scripts/Inelastic/IndirectAbsCor.py
+++ /dev/null
@@ -1,467 +0,0 @@
-#pylint: disable=invalid-name
-# IDA F2PY Absorption Corrections Wrapper
-## Handle selection of .pyd files for absorption corrections
-import sys
-from IndirectImport import *
-
-from IndirectCommon import *
-from mantid.simpleapi import *
-from mantid import config, logger, mtd
-import math, os.path, numpy as np
-MTD_PLOT = import_mantidplot()
-
-def WaveRange(inWS, efixed):
-# create a list of 10 equi-spaced wavelengths spanning the input data
-    oWS = '__WaveRange'
-    ExtractSingleSpectrum(InputWorkspace=inWS, OutputWorkspace=oWS, WorkspaceIndex=0)
-    if efixed == 0.0:
-        ConvertUnits(InputWorkspace=oWS, OutputWorkspace=oWS, Target='Wavelength',
-                     EMode='Elastic')
-    else:
-        ConvertUnits(InputWorkspace=oWS, OutputWorkspace=oWS, Target='Wavelength',
-                     EMode='Indirect', EFixed=efixed)
-    Xin = mtd[oWS].readX(0)
-    xmin = mtd[oWS].readX(0)[0]
-    xmax = mtd[oWS].readX(0)[len(Xin) - 1]
-    ebin = 0.5
-    nw1 = int(xmin/ebin)
-    nw2 = int(xmax/ebin)+1
-    w1 = nw1*ebin
-    w2 = nw2*ebin
-    wave = []
-    nw = 10
-    ebin = (w2-w1)/(nw-1)
-    for l in range(0,nw):
-        wave.append(w1+l*ebin)
-    DeleteWorkspace(oWS)
-    return wave
-
-def CheckSize(size, geom, ncan):
-    if geom == 'cyl':
-        if (size[1] - size[0]) < 1e-4:
-            raise ValueError('Sample outer radius not > inner radius')
-        else:
-            message = 'Sam : inner radius = ' + str(size[0]) + ' ; outer radius = ' + str(size[1])
-            logger.information(message)
-    if geom == 'flt':
-        if size[0] < 1e-4:
-            raise ValueError('Sample thickness is zero')
-        else:
-            logger.information('Sam : thickness = ' + str(size[0]))
-    if ncan == 2:
-        if geom == 'cyl':
-            if (size[2] - size[1]) < 1e-4:
-                raise ValueError('Can inner radius not > sample outer radius')
-            else:
-                message = 'Can : inner radius = ' + str(size[1]) + ' ; outer radius = ' + str(size[2])
-                logger.information(message)
-        if geom == 'flt':
-            if size[1] < 1e-4:
-                raise ValueError('Can thickness is zero')
-            else:
-                logger.information('Can : thickness = ' + str(size[1]))
-
-def CheckDensity(density, ncan):
-    if density[0] < 1e-5:
-        raise ValueError('Sample density is zero')
-
-    if ncan == 2:
-        if density[1] < 1e-5:
-            raise ValueError('Can density is zero')
-
-def AbsRun(inputWS, geom, beam, ncan, size, density, sigs, siga, avar, Save):
-    workdir = getDefaultWorkingDirectory()
-
-    logger.information('Sample run : ' + inputWS)
-
-    # check that there is data
-    Xin = mtd[inputWS].readX(0)
-    if len(Xin) == 0:
-        raise ValueError('Sample file has no data')
-
-    CheckSize(size, geom, ncan)
-    CheckDensity(density,ncan)
-
-    diffraction_run = checkUnitIs(inputWS, 'dSpacing')
-    logger.information('Is diffraction run: %s' % str(diffraction_run))
-
-    if diffraction_run:
-        det = GetWSangles(inputWS)
-        efixed = 0.0
-    else:
-        det, _ = GetThetaQ(inputWS)
-        efixed = getEfixed(inputWS)
-
-    ndet = len(det)
-    waves = WaveRange(inputWS, efixed) # get wavelengths
-    nw = len(waves)
-
-    if diffraction_run:
-        wavelas = waves[int(nw / 2)]
-    else:
-        wavelas = math.sqrt(81.787/efixed) # elastic wavelength
-
-    run_name = getWSprefix(inputWS)
-
-    message = 'Sam : sigt = ' + str(sigs[0]) + ' ; siga = ' + str(siga[0]) + ' ; rho = ' + str(density[0])
-    logger.information(message)
-
-    if ncan == 2:
-        message = 'Can : sigt = ' + str(sigs[1]) + ' ; siga = ' + str(siga[1]) + ' ; rho = ' + str(density[1])
-        logger.information(message)
-
-    logger.information('Elastic lambda : ' + str(wavelas))
-
-    message = 'Lambda : ' + str(nw) + ' values from ' + str(waves[0]) + ' to ' + str(waves[nw - 1])
-    logger.information(message)
-
-    message = 'Detector angles : ' + str(ndet) + ' from ' + str(det[0]) + ' to ' + str(det[ndet - 1])
-    logger.information(message)
-
-    name = run_name + geom
-    wrk = workdir + run_name
-    wrk.ljust(120,' ')
-
-    dataA1 = []
-    dataA2 = []
-    dataA3 = []
-    dataA4 = []
-
-    #initially set errors to zero
-    eZero = np.zeros(nw)
-
-    # F2Py only needed for cylinder
-    if geom == 'cyl':
-        if is_supported_f2py_platform():
-            cylabs = import_f2py("cylabs")
-        else:
-            unsupported_message()
-            return
-
-    for n in range(ndet):
-        #geometry is flat
-        if geom == 'flt':
-            sample_logs = {'sample_shape': 'flat',
-                           'sample_thickness': size[0],
-                           'sample_angle': avar}
-
-            angles = [avar, det[n]]
-            (A1, A2, A3, A4) = FlatAbs(ncan, size, density, sigs, siga, angles, waves)
-            kill = 0
-
-        #geometry is a cylinder
-        elif geom == 'cyl':
-            sample_logs = {'sample_shape': 'cylinder',
-                           'sample_radius1': size[0],
-                           'sample_radius2': size[1]}
-
-            astep = avar
-            if (astep) < 1e-5:
-                raise ValueError('Step size is zero')
-
-            nstep = int((size[1] - size[0]) / astep)
-            if nstep < 20:
-                raise ValueError('Number of steps ( ' + str(nstep) + ' ) should be >= 20')
-
-            angle = det[n]
-            kill, A1, A2, A3, A4 = cylabs.cylabs(astep, beam, ncan, size,\
-                density, sigs, siga, angle, wavelas, waves, n, wrk, 0)
-
-        if kill == 0:
-            logger.information('Detector ' + str(n) + ' at angle : ' + str(det[n]) + ' * successful')
-
-            dataA1 = np.append(dataA1, A1)
-            dataA2 = np.append(dataA2, A2)
-            dataA3 = np.append(dataA3, A3)
-            dataA4 = np.append(dataA4, A4)
-        else:
-            raise ValueError('Detector ' + str(n) + ' at angle : ' + str(det[n]) + ' *** failed : Error code ' + str(kill))
-
-    dataX = waves * ndet
-
-    if diffraction_run:
-        v_axis_unit = 'dSpacing'
-        v_axis_values = [1.0]
-    else:
-        v_axis_unit = 'MomentumTransfer'
-        v_axis_values = createQaxis(inputWS)
-
-    # Create the output workspaces
-    assWS = name + '_ass'
-    asscWS = name + '_assc'
-    acscWS = name + '_acsc'
-    accWS = name + '_acc'
-    fname = name + '_abs'
-
-    log_names = [item[0] for item in sample_logs]
-    log_values = [item[1] for item in sample_logs]
-
-    CreateWorkspace(OutputWorkspace=assWS, DataX=dataX, DataY=dataA1,
-                    NSpec=ndet, UnitX='Wavelength',
-                    VerticalAxisUnit=v_axis_unit, VerticalAxisValues=v_axis_values)
-    AddSampleLogMultiple(Workspace=assWS, LogNames=log_names, LogValues=log_values)
-
-    CreateWorkspace(OutputWorkspace=asscWS, DataX=dataX, DataY=dataA2,
-                    NSpec=ndet, UnitX='Wavelength',
-                    VerticalAxisUnit=v_axis_unit, VerticalAxisValues=v_axis_values)
-    AddSampleLogMultiple(Workspace=asscWS, LogNames=log_names, LogValues=log_values)
-
-    CreateWorkspace(OutputWorkspace=acscWS, DataX=dataX, DataY=dataA3,
-                    NSpec=ndet, UnitX='Wavelength',
-                    VerticalAxisUnit=v_axis_unit, VerticalAxisValues=v_axis_values)
-    AddSampleLogMultiple(Workspace=acscWS, LogNames=log_names, LogValues=log_values)
-
-    CreateWorkspace(OutputWorkspace=accWS, DataX=dataX, DataY=dataA4,
-                    NSpec=ndet, UnitX='Wavelength',
-                    VerticalAxisUnit=v_axis_unit, VerticalAxisValues=v_axis_values)
-    AddSampleLogMultiple(Workspace=accWS, LogNames=log_names, LogValues=log_values)
-
-    group = assWS + ',' + asscWS + ',' + acscWS + ',' + accWS
-    GroupWorkspaces(InputWorkspaces=group, OutputWorkspace=fname)
-
-    # save output to file if required
-    if Save:
-        opath = os.path.join(workdir, fname + '.nxs')
-        SaveNexusProcessed(InputWorkspace=fname, Filename=opath)
-        logger.information('Output file created : ' + opath)
-
-    if ncan > 1:
-        return [fname, assWS, asscWS, acscWS, accWS]
-    else:
-        return [fname, assWS]
-
-def plotAbs(workspaces, plotOpt):
-    if plotOpt == 'None':
-        return
-
-    if plotOpt == 'Wavelength' or plotOpt == 'Both':
-        graph = MTD_PLOT.plotSpectrum(workspaces, 0)
-
-    if plotOpt == 'Angle' or plotOpt == 'Both':
-        graph = MTD_PLOT.plotTimeBin(workspaces, 0)
-        graph.activeLayer().setAxisTitle(MTD_PLOT.Layer.Bottom, 'Angle')
-
-
-def AbsRunFeeder(input_ws, can_ws, geom, ncan, size, avar, density, beam_width=None, sample_formula=None, can_formula=None, sigs=None, siga=None,
-                 plot_opt='None', save=False):
-    """
-    Handles the feeding of input and plotting of output for the F2PY
-    absorption correction routine.
-
-    @param input_ws - workspace to generate corrections for
-    @param geom - type of geometry used (flat plate or cylinder)
-    @param beam_width - width of the beam used. If None this will be taken from the IPF
-    @param ncan - number of cans used.
-    @param size - sample & can thickness
-    @param sample_formula - optional, chemical formula for the sample
-    @param cam_formula - optional, chemical formula for the can
-    @param density - density of the sample and cans(s)
-    @param sigs - scattering for sample and can(s)
-    @param siga - absorption for sample and can(s)
-    @param avar - sample angle
-    @param plot_opt - whether to plot output
-    @param save - whether to save the output to file
-    @return The result workspace group
-    """
-
-    StartTime('CalculateCorrections')
-    CheckDensity(density, ncan)
-
-    #attempt to find beam width if none given
-    if beam_width is None:
-        beam_width = getInstrumentParameter(input_ws, 'Workflow.beam-width')
-        beam_width = float(beam_width)
-
-    #attempt to find beam height from parameter file
-    try:
-        beam_height = getInstrumentParameter(input_ws, 'Workflow.beam-height')
-        beam_height = float(beam_height)
-    except ValueError:
-        # fall back on default value for beam height
-        beam_height = 3.0
-
-    # beam[0]    height         overall height of sample
-    # beam[1:2]  a,b            beam width parameters (a>b)
-    # beam[3:4]  a1,b1          scattered beam width parameters (a1 > b1)
-    # beam[5:6]  hdown,hup      bottom and top of beam from sample bottom
-    # beam[7:8]  hsdown,hsup    bottom and top of scattered beam from sample b.
-    beam = [beam_height, 0.5 * beam_width, -0.5 * beam_width, (beam_width / 2), -(beam_width / 2), 0.0, beam_height, 0.0, beam_height]
-
-    if sample_formula is None and (sigs is None or siga is None):
-        raise ValueError("Either a formula for the sample or values for the cross sections must be supplied.")
-
-    #set sample material based on input or formula
-    if sample_formula is not None:
-        SetSampleMaterial(InputWorkspace=input_ws, ChemicalFormula=sample_formula,
-                          SampleNumberDensity=density[0])
-
-        sample = mtd[input_ws].sample()
-        sam_mat = sample.getMaterial()
-
-        # total scattering x-section
-        sigs[0] = sam_mat.totalScatterXSection()
-        # absorption x-section
-        siga[0] = sam_mat.absorbXSection()
-
-    if can_formula is not None and ncan == 2:
-        #set can material based on input or formula
-        SetSampleMaterial(InputWorkspace=can_ws, ChemicalFormula=can_formula,
-                          SampleNumberDensity=density[1])
-
-        can_sample = mtd[can_ws].sample()
-        can_mat = can_sample.getMaterial()
-
-        # total scattering x-section for can
-        sigs[1] = can_mat.totalScatterXSection()
-        sigs[2] = can_mat.totalScatterXSection()
-        # absorption x-section for can
-        siga[1] = can_mat.absorbXSection()
-        siga[2] = can_mat.absorbXSection()
-
-    workspaces = AbsRun(input_ws, geom, beam, ncan, size, density,
-                        sigs, siga, avar, save)
-
-    EndTime('CalculateCorrections')
-    plotAbs(workspaces[1:], plot_opt)
-
-    return workspaces[0]
-
-
-def FlatAbs(ncan, thick, density, sigs, siga, angles, waves):
-    """
-    FlatAbs - calculate flat plate absorption factors
-
-    For more information See:
-      - MODES User Guide: http://www.isis.stfc.ac.uk/instruments/iris/data-analysis/modes-v3-user-guide-6962.pdf
-      - C J Carlile, Rutherford Laboratory report, RL-74-103 (1974)
-
-    @param sigs - list of scattering  cross-sections
-    @param siga - list of absorption cross-sections
-    @param density - list of density
-    @param ncan - =0 no can, >1 with can
-    @param thick - list of thicknesses: sample thickness, can thickness1, can thickness2
-    @param angles - list of angles
-    @param waves - list of wavelengths
-    """
-    PICONV = math.pi/180.
-
-    #can angle and detector angle
-    tcan1, theta1 = angles
-    canAngle = tcan1 * PICONV
-    theta = theta1 * PICONV
-
-    # tsec is the angle the scattered beam makes with the normal to the sample surface.
-    tsec = theta1-tcan1
-
-    nlam = len(waves)
-
-    ass = np.ones(nlam)
-    assc = np.ones(nlam)
-    acsc = np.ones(nlam)
-    acc = np.ones(nlam)
-
-    # case where tsec is close to 90 degrees. CALCULATION IS UNRELIABLE
-    if abs(abs(tsec)-90.0) < 1.0:
-        #default to 1 for everything
-        return ass, assc, acsc, acc
-    else:
-        #sample & can scattering x-section
-        sampleScatt, canScatt = sigs[:2]
-        #sample & can absorption x-section
-        sampleAbs, canAbs = siga[:2]
-        #sample & can density
-        sampleDensity, canDensity = density[:2]
-        #thickness of the sample and can
-        samThickness, canThickness1, canThickness2 = thick
-
-        tsec = tsec*PICONV
-
-        sec1 = 1. / math.cos(canAngle)
-        sec2 = 1. / math.cos(tsec)
-
-        #list of wavelengths
-        waves = np.array(waves)
-
-        #sample cross section
-        sampleXSection = (sampleScatt + sampleAbs * waves / 1.8) * sampleDensity
-
-        #vector version of fact
-        vecFact = np.vectorize(Fact)
-        fs = vecFact(sampleXSection, samThickness, sec1, sec2)
-
-        sampleSec1, sampleSec2 = calcThicknessAtSec(sampleXSection, samThickness, [sec1, sec2])
-
-
-        if sec2 < 0.0:
-            ass = fs / samThickness
-        else:
-            ass= np.exp(-sampleSec2) * fs / samThickness
-
-        useCan = (ncan > 1)
-        if useCan:
-            #calculate can cross section
-            canXSection = (canScatt + canAbs * waves / 1.8) * canDensity
-            assc, acsc, acc = calcFlatAbsCan(ass, canXSection, canThickness1, canThickness2,
-                                             sampleSec1, sampleSec2, [sec1, sec2])
-
-    return ass, assc, acsc, acc
-
-def Fact(xSection, thickness, sec1, sec2):
-    S = xSection * thickness * (sec1 - sec2)
-    F = 1.0
-    if S == 0.:
-        F = thickness
-    else:
-        S = (1 - math.exp(-S)) / S
-        F = thickness*S
-    return F
-
-def calcThicknessAtSec(xSection, thickness, sec):
-    sec1, sec2 = sec
-
-    thickSec1 = xSection * thickness * sec1
-    thickSec2 = xSection * thickness * sec2
-
-    return thickSec1, thickSec2
-
-def calcFlatAbsCan(ass, canXSection, canThickness1, canThickness2, sampleSec1, sampleSec2, sec):
-    assc = np.ones(ass.size)
-    acsc = np.ones(ass.size)
-    acc = np.ones(ass.size)
-
-    sec1, sec2 = sec
-
-    #vector version of fact
-    vecFact = np.vectorize(Fact)
-    f1 = vecFact(canXSection,canThickness1,sec1,sec2)
-    f2 = vecFact(canXSection,canThickness2,sec1,sec2)
-
-    canThick1Sec1, canThick1Sec2 = calcThicknessAtSec(canXSection, canThickness1, sec)
-    canThick2Sec2 = calcThicknessAtSec(canXSection, canThickness2, sec)[1]
-
-    if sec2 < 0.0:
-        val = np.exp(-(canThick1Sec1-canThick1Sec2))
-        assc = ass * val
-
-        acc1 = f1
-        acc2 = f2 * val
-
-        acsc1 = acc1
-        acsc2 = acc2 * np.exp(-(sampleSec1 - sampleSec2))
-    else:
-        val = np.exp(-(canThick1Sec1 + canThick2Sec2))
-        assc = ass * val
-
-        acc1 = f1 * np.exp(-(canThick1Sec2 + canThick2Sec2))
-        acc2 = f2 * val
-
-        acsc1 = acc1 * np.exp(-sampleSec2)
-        acsc2 = acc2 * np.exp(-sampleSec1)
-
-    canThickness = canThickness1 + canThickness2
-
-    if canThickness > 0.0:
-        acc = (acc1 + acc2) / canThickness
-        acsc = (acsc1 + acsc2) / canThickness
-
-    return assc, acsc, acc
diff --git a/Code/Mantid/scripts/Inelastic/IndirectCommon.py b/Code/Mantid/scripts/Inelastic/IndirectCommon.py
index 7f9a29fa68eb4efb78234b5acad8c5a903b5d158..7958e1c17730dcc5a9ff66326fd324de84b7ed0a 100644
--- a/Code/Mantid/scripts/Inelastic/IndirectCommon.py
+++ b/Code/Mantid/scripts/Inelastic/IndirectCommon.py
@@ -25,13 +25,17 @@ def EndTime(prog):
     logger.notice('----------')
 
 
-def getInstrRun(ws_name):
+def get_run_number(ws_name):
     """
-    Get the instrument name and run number from a workspace.
+    Gets the run number for a given workspace.
 
-    @param ws_name - name of the workspace
-    @return tuple of form (instrument, run number)
+    Attempts to get from logs and falls back to parsing the workspace name for
+    something that looks like a run number.
+
+    @param ws_name Name of workspace
+    @return Parsed run number
     """
+
     workspace = mtd[ws_name]
     run_number = str(workspace.getRunNumber())
     if run_number == '0':
@@ -42,7 +46,20 @@ def getInstrRun(ws_name):
         else:
             raise RuntimeError("Could not find run number associated with workspace.")
 
-    instrument = workspace.getInstrument().getName()
+    return run_number
+
+
+def getInstrRun(ws_name):
+    """
+    Get the instrument name and run number from a workspace.
+
+    @param ws_name - name of the workspace
+    @return tuple of form (instrument, run number)
+    """
+
+    run_number = get_run_number(ws_name)
+
+    instrument = mtd[ws_name].getInstrument().getName()
     if instrument != '':
         facility = config.getFacility()
         instrument = facility.instrument(instrument).filePrefix(int(run_number))
@@ -326,17 +343,17 @@ def CheckHistSame(in1WS, name1, in2WS, name2):
         raise ValueError(error)
 
 
-def CheckXrange(x_range, type):
+def CheckXrange(x_range, range_type):
     if not ((len(x_range) == 2) or (len(x_range) == 4)):
-        raise ValueError(type + ' - Range must contain either 2 or 4 numbers')
+        raise ValueError(range_type + ' - Range must contain either 2 or 4 numbers')
 
     for lower, upper in zip(x_range[::2], x_range[1::2]):
         if math.fabs(lower) < 1e-5:
-            raise ValueError('%s - input minimum (%f) is zero' % (type, lower))
+            raise ValueError('%s - input minimum (%f) is zero' % (range_type, lower))
         if math.fabs(upper) < 1e-5:
-            raise ValueError('%s - input maximum (%f) is zero' % (type, upper))
+            raise ValueError('%s - input maximum (%f) is zero' % (range_type, upper))
         if upper < lower:
-            raise ValueError('%s - input maximum (%f) < minimum (%f)' % (type, upper, lower))
+            raise ValueError('%s - input maximum (%f) < minimum (%f)' % (range_type, upper, lower))
 
 
 def CheckElimits(erange, Xin):
@@ -380,7 +397,7 @@ def getInstrumentParameter(ws, param_name):
     return param
 
 
-def plotSpectra(ws, y_axis_title, indicies=[]):
+def plotSpectra(ws, y_axis_title, indicies=None):
     """
     Plot a selection of spectra given a list of indicies
 
@@ -388,6 +405,9 @@ def plotSpectra(ws, y_axis_title, indicies=[]):
     @param y_axis_title - label for the y axis
     @param indicies - list of spectrum indicies to plot
     """
+    if indicies is None:
+        indicies = []
+
     if len(indicies) == 0:
         num_spectra = mtd[ws].getNumberHistograms()
         indicies = range(num_spectra)
diff --git a/Code/Mantid/scripts/Inelastic/IndirectDataAnalysis.py b/Code/Mantid/scripts/Inelastic/IndirectDataAnalysis.py
index 63718163ff3c806a3381b53b76c9968954a252a4..4e76318213db1e49c51a742b6510c4ae245754a8 100644
--- a/Code/Mantid/scripts/Inelastic/IndirectDataAnalysis.py
+++ b/Code/Mantid/scripts/Inelastic/IndirectDataAnalysis.py
@@ -124,7 +124,8 @@ def confitSeq(inputWS, func, startX, endX, ftype, bgd,
 
     CopyLogs(InputWorkspace=inputWS, OutputWorkspace=wsname)
 
-    sample_logs = [('convolve_members', convolve),
+    sample_logs = [('sam_workspace', inputWS),
+                   ('convolve_members', convolve),
                    ('fit_program', 'ConvFit'),
                    ('background', bgd),
                    ('delta_function', using_delta_func),
@@ -163,6 +164,8 @@ def confitSeq(inputWS, func, startX, endX, ftype, bgd,
 
     EndTime('ConvFit')
 
+    return wsname
+
 
 ##############################################################################
 # FuryFit
@@ -375,319 +378,3 @@ def furyfitPlotSeq(ws, plot):
 
     plotParameters(ws, *param_names)
 
-
-##############################################################################
-# Corrections
-##############################################################################
-
-def CubicFit(inputWS, spec):
-    '''
-    Uses the Mantid Fit Algorithm to fit a quadratic to the inputWS
-    parameter. Returns a list containing the fitted parameter values.
-    '''
-
-    function = 'name=Quadratic, A0=1, A1=0, A2=0'
-    fit = Fit(Function=function, InputWorkspace=inputWS, WorkspaceIndex=spec,
-              CreateOutput=True, Output='Fit')
-    table = mtd['Fit_Parameters']
-    A0 = table.cell(0, 1)
-    A1 = table.cell(1, 1)
-    A2 = table.cell(2, 1)
-    Abs = [A0, A1, A2]
-    logger.information('Group '+str(spec)+' of '+inputWS+' ; fit coefficients are : '+str(Abs))
-    return Abs
-
-
-def subractCanWorkspace(sample, can, output_name, rebin_can=False):
-    '''
-    Subtract the can workspace from the sample workspace.
-    Optionally rebin the can to match the sample.
-
-    @param sample :: sample workspace to use subract from
-    @param can :: can workspace to subtract
-    @param rebin_can :: whether to rebin the can first.
-    @return corrected sample workspace
-    '''
-
-    if rebin_can:
-        logger.warning("Sample and Can do not match. Rebinning Can to match Sample.")
-        RebinToWorkspace(WorkspaceToRebin=can, WorkspaceToMatch=sample, OutputWorkspace=can)
-
-    try:
-        Minus(LHSWorkspace=sample, RHSWorkspace=can, OutputWorkspace=output_name)
-    except ValueError:
-        raise ValueError("Sample and Can energy ranges do not match. \
-                         Do they have the same binning?")
-
-
-def applyCorrections(inputWS, canWS, corr, rebin_can=False):
-    '''
-    Through the PolynomialCorrection algorithm, makes corrections to the
-    input workspace based on the supplied correction values.
-    '''
-    # Corrections are applied in Lambda (Wavelength)
-
-    diffraction_run = checkUnitIs(inputWS, 'dSpacing')
-
-    if diffraction_run:
-        ConvertUnits(InputWorkspace=inputWS, OutputWorkspace=inputWS, Target='Wavelength')
-    else:
-        efixed = getEfixed(inputWS)                # Get efixed
-        Q = GetThetaQ(inputWS)[1]
-        ConvertUnits(InputWorkspace=inputWS, OutputWorkspace=inputWS, Target='Wavelength',
-                     EMode='Indirect', EFixed=efixed)
-
-    sam_name = getWSprefix(inputWS)
-    corrections = mtd[corr].getNames()
-    if mtd.doesExist(canWS):
-        can_run = getInstrRun(canWS)[1]
-        CorrectedWS = sam_name +'Correct_'+ can_run
-
-        if diffraction_run:
-            ConvertUnits(InputWorkspace=canWS, OutputWorkspace=canWS, Target='Wavelength')
-        else:
-            ConvertUnits(InputWorkspace=canWS, OutputWorkspace=canWS, Target='Wavelength',
-                         EMode='Indirect', EFixed=efixed)
-    else:
-        CorrectedWS = sam_name +'Corrected'
-    nHist = mtd[inputWS].getNumberHistograms()
-    # Check that number of histograms in each corrections workspace matches
-    # that of the input (sample) workspace
-    for workspace in corrections:
-        if mtd[workspace].getNumberHistograms() != nHist:
-            raise ValueError('Mismatch: num of spectra in '+workspace+' and inputWS')
-    # Workspaces that hold intermediate results
-    CorrectedSampleWS = '__csam'
-    CorrectedCanWS = '__ccan'
-    for i in range(0, nHist): # Loop through each spectra in the inputWS
-        ExtractSingleSpectrum(InputWorkspace=inputWS, OutputWorkspace=CorrectedSampleWS,
-                              WorkspaceIndex=i)
-        logger.information(str(i) + str(mtd[CorrectedSampleWS].readX(0)))
-        if len(corrections) == 1:
-            Ass = CubicFit(corrections[0], i)
-            PolynomialCorrection(InputWorkspace=CorrectedSampleWS,
-                                 OutputWorkspace=CorrectedSampleWS,
-                                 Coefficients=Ass, Operation='Divide')
-            if i == 0:
-                CloneWorkspace(InputWorkspace=CorrectedSampleWS, OutputWorkspace=CorrectedWS)
-            else:
-                ConjoinWorkspaces(InputWorkspace1=CorrectedWS, InputWorkspace2=CorrectedSampleWS)
-        else:
-            if mtd.doesExist(canWS):
-                ExtractSingleSpectrum(InputWorkspace=canWS, OutputWorkspace=CorrectedCanWS,
-                                      WorkspaceIndex=i)
-                Acc = CubicFit(corrections[3], i)
-                PolynomialCorrection(InputWorkspace=CorrectedCanWS, OutputWorkspace=CorrectedCanWS,
-                                     Coefficients=Acc, Operation='Divide')
-                Acsc = CubicFit(corrections[2], i)
-                PolynomialCorrection(InputWorkspace=CorrectedCanWS, OutputWorkspace=CorrectedCanWS,
-                                     Coefficients=Acsc, Operation='Multiply')
-
-                subractCanWorkspace(CorrectedSampleWS, CorrectedCanWS,
-                                    CorrectedSampleWS, rebin_can=rebin_can)
-
-            Assc = CubicFit(corrections[1], i)
-            PolynomialCorrection(InputWorkspace=CorrectedSampleWS,
-                                 OutputWorkspace=CorrectedSampleWS,
-                                 Coefficients=Assc, Operation='Divide')
-            if i == 0:
-                CloneWorkspace(InputWorkspace=CorrectedSampleWS, OutputWorkspace=CorrectedWS)
-            else:
-                ConjoinWorkspaces(InputWorkspace1=CorrectedWS, InputWorkspace2=CorrectedSampleWS,
-                                  CheckOverlapping=False)
-
-    if diffraction_run:
-        ConvertUnits(InputWorkspace=inputWS, OutputWorkspace=inputWS, Target='dSpacing')
-        ConvertUnits(InputWorkspace=CorrectedWS, OutputWorkspace=CorrectedWS, Target='dSpacing')
-    else:
-        ConvertUnits(InputWorkspace=inputWS, OutputWorkspace=inputWS, Target='DeltaE',
-                     EMode='Indirect', EFixed=efixed)
-        ConvertUnits(InputWorkspace=CorrectedWS, OutputWorkspace=CorrectedWS, Target='DeltaE',
-                     EMode='Indirect', EFixed=efixed)
-        # Convert the spectrum axis to Q if not already in it
-        sample_v_unit = mtd[CorrectedWS].getAxis(1).getUnit().unitID()
-        logger.debug('COrrected workspace vertical axis is in %s' % sample_v_unit)
-        if sample_v_unit != 'MomentumTransfer':
-            ConvertSpectrumAxis(InputWorkspace=CorrectedWS, OutputWorkspace=CorrectedWS+'_rqw',
-                                Target='ElasticQ', EMode='Indirect', EFixed=efixed)
-        else:
-            CloneWorkspace(InputWorkspace=CorrectedWS, OutputWorkspace=CorrectedWS + '_rqw')
-
-    RenameWorkspace(InputWorkspace=CorrectedWS, OutputWorkspace=CorrectedWS+'_red')
-
-    shape = mtd[corrections[0]].getRun().getLogData('sample_shape').value
-
-    AddSampleLog(Workspace=CorrectedWS+'_red', LogName='corrections_file', LogType='String',
-                 LogText=corrections[0][:-4])
-    AddSampleLog(Workspace=CorrectedWS+'_red', LogName='sample_shape', LogType='String',
-                 LogText=shape)
-
-    if mtd.doesExist(canWS):
-        if diffraction_run:
-            ConvertUnits(InputWorkspace=canWS, OutputWorkspace=canWS, Target='dSpacing')
-        else:
-            ConvertUnits(InputWorkspace=canWS, OutputWorkspace=canWS, Target='DeltaE',
-                         EMode='Indirect', EFixed=efixed)
-
-    DeleteWorkspace('Fit_NormalisedCovarianceMatrix')
-    DeleteWorkspace('Fit_Parameters')
-    DeleteWorkspace('Fit_Workspace')
-    return CorrectedWS
-
-
-def abscorFeeder(sample, container, geom, useCor, corrections, RebinCan=False, ScaleOrNotToScale=False, factor=1, Save=False,\
-        PlotResult='None', PlotContrib=False):
-    '''
-    Load up the necessary files and then passes them into the main
-    applyCorrections routine.
-    '''
-
-    StartTime('ApplyCorrections')
-    workdir = config['defaultsave.directory']
-    s_hist = CheckHistZero(sample)[0]
-
-    CloneWorkspace(sample, OutputWorkspace='__apply_corr_cloned_sample')
-    sample = '__apply_corr_cloned_sample'
-    scaled_container = "__apply_corr_scaled_container"
-
-    diffraction_run = checkUnitIs(sample, 'dSpacing')
-    sam_name = getWSprefix(sample)
-    ext = '_red'
-
-    if not diffraction_run:
-        efixed = getEfixed(sample)
-
-    if container != '':
-        CheckHistSame(sample, 'Sample', container, 'Container')
-
-        if not diffraction_run:
-            CheckAnalysers(sample, container)
-
-        if diffraction_run and not checkUnitIs(container, 'dSpacing'):
-            raise ValueError("Sample and Can must both have the same units.")
-
-        can_run = getInstrRun(container)[1]
-
-        if ScaleOrNotToScale:
-            # Use temp workspace so we don't modify original data
-            Scale(InputWorkspace=container, OutputWorkspace=scaled_container,
-                  Factor=factor, Operation='Multiply')
-            logger.information('Container scaled by %f' % factor)
-
-        else:
-            CloneWorkspace(InputWorkspace=container, OutputWorkspace=scaled_container)
-
-    if useCor:
-        text = 'Correcting sample ' + sample
-        if container != '':
-            text += ' with ' + container
-        logger.information(text)
-
-        cor_result = applyCorrections(sample, scaled_container, corrections, RebinCan)
-        rws = mtd[cor_result + ext]
-        outNm = cor_result + '_Result_'
-
-        if Save:
-            cred_path = os.path.join(workdir,cor_result + ext + '.nxs')
-            SaveNexusProcessed(InputWorkspace=cor_result + ext, Filename=cred_path)
-            logger.information('Output file created : '+cred_path)
-
-        if not diffraction_run:
-            res_plot = cor_result + '_rqw'
-        else:
-            res_plot = cor_result + '_red'
-
-    else:
-        if scaled_container == '':
-            raise RuntimeError('Invalid options - nothing to do!')
-        else:
-            sub_result = sam_name + 'Subtract_' + can_run
-            logger.information('Subtracting ' + container + ' from ' + sample)
-
-            subractCanWorkspace(sample, scaled_container, sub_result, rebin_can=RebinCan)
-
-            if not diffraction_run:
-                ConvertSpectrumAxis(InputWorkspace=sub_result, OutputWorkspace=sub_result+'_rqw',\
-                    Target='ElasticQ', EMode='Indirect', EFixed=efixed)
-
-            red_ws_name = sub_result + '_red'
-            RenameWorkspace(InputWorkspace=sub_result, OutputWorkspace=red_ws_name)
-            CopyLogs(InputWorkspace=sample, OutputWorkspace=red_ws_name)
-
-            rws = mtd[red_ws_name]
-            outNm= sub_result + '_Result_'
-
-            if Save:
-                sred_path = os.path.join(workdir,sub_result + ext + '.nxs')
-                SaveNexusProcessed(InputWorkspace=sub_result + ext, Filename=sred_path)
-                logger.information('Output file created : ' + sred_path)
-
-            if not diffraction_run:
-                res_plot = sub_result + '_rqw'
-            else:
-                res_plot = sub_result + '_red'
-
-    if PlotResult != 'None':
-        plotCorrResult(res_plot, PlotResult)
-
-    if mtd.doesExist(scaled_container):
-        sws = mtd[sample]
-        cws = mtd[scaled_container]
-        names = 'Sample,Can,Calc'
-
-        x_unit = 'DeltaE'
-        if diffraction_run:
-            x_unit = 'dSpacing'
-
-        for i in range(0, s_hist): # Loop through each spectra in the inputWS
-            dataX = np.array(sws.readX(i))
-            dataY = np.array(sws.readY(i))
-            dataE = np.array(sws.readE(i))
-            dataX = np.append(dataX, np.array(cws.readX(i)))
-            dataY = np.append(dataY, np.array(cws.readY(i)))
-            dataE = np.append(dataE, np.array(cws.readE(i)))
-            dataX = np.append(dataX, np.array(rws.readX(i)))
-            dataY = np.append(dataY, np.array(rws.readY(i)))
-            dataE = np.append(dataE, np.array(rws.readE(i)))
-            fout = outNm + str(i)
-
-            CreateWorkspace(OutputWorkspace=fout, DataX=dataX, DataY=dataY, DataE=dataE,
-                            Nspec=3, UnitX=x_unit, VerticalAxisUnit='Text',
-                            VerticalAxisValues=names)
-
-            if i == 0:
-                group = fout
-            else:
-                group += ',' + fout
-
-        CopyLogs(InputWorkspace=sample, OutputWorkspace=fout)
-        GroupWorkspaces(InputWorkspaces=group, OutputWorkspace=outNm[:-1])
-        if PlotContrib:
-            plotCorrContrib(outNm+'0', [0, 1, 2])
-        if Save:
-            res_path = os.path.join(workdir,outNm[:-1] + '.nxs')
-            SaveNexusProcessed(InputWorkspace=outNm[:-1], Filename=res_path)
-            logger.information('Output file created : ' + res_path)
-
-        DeleteWorkspace(cws)
-
-    EndTime('ApplyCorrections')
-    return res_plot
-
-
-def plotCorrResult(inWS, PlotResult):
-    nHist = mtd[inWS].getNumberHistograms()
-    if PlotResult == 'Spectrum' or PlotResult == 'Both':
-        if nHist >= 10:                       #only plot up to 10 hists
-            nHist = 10
-        plot_list = []
-        for i in range(0, nHist):
-            plot_list.append(i)
-        MTD_PLOT.plotSpectrum(inWS, plot_list)
-    if PlotResult == 'Contour' or PlotResult == 'Both':
-        if nHist >= 5:                        #needs at least 5 hists for a contour
-            MTD_PLOT.importMatrixWorkspace(inWS).plotGraph2D()
-
-
-def plotCorrContrib(plot_list, n):
-    MTD_PLOT.plotSpectrum(plot_list, n)
diff --git a/Code/Mantid/scripts/Inelastic/IndirectEnergyConversion.py b/Code/Mantid/scripts/Inelastic/IndirectEnergyConversion.py
deleted file mode 100644
index efee01eca620d8e05acfd20e63e022a20d564b2c..0000000000000000000000000000000000000000
--- a/Code/Mantid/scripts/Inelastic/IndirectEnergyConversion.py
+++ /dev/null
@@ -1,119 +0,0 @@
-#pylint: disable=invalid-name
-from mantid.simpleapi import *
-from IndirectCommon import *
-from IndirectImport import import_mantidplot
-mp = import_mantidplot()
-from mantid import config, logger
-import inelastic_indirect_reducer
-import sys, os.path, numpy as np
-
-def loadData(rawfiles, outWS='RawFile', Sum=False, SpecMin=-1, SpecMax=-1,\
-        Suffix=''):
-    workspaces = []
-    for file in rawfiles:
-        ( dir, filename ) = os.path.split(file)
-        ( name, ext ) = os.path.splitext(filename)
-        try:
-            if ( SpecMin == -1 ) and ( SpecMax == -1 ):
-                Load(Filename=file, OutputWorkspace=name+Suffix, LoadLogFiles=False)
-            else:
-                Load(Filename=file, OutputWorkspace=name+Suffix, SpectrumMin=SpecMin,\
-                    SpectrumMax=SpecMax, LoadLogFiles=False)
-            workspaces.append(name+Suffix)
-        except ValueError, message:
-            logger.notice(message)
-            sys.exit(message)
-    if Sum and ( len(workspaces) > 1 ):
-        MergeRuns(InputWorkspaces=','.join(workspaces), OutputWorkspace=outWS+Suffix)
-        factor = 1.0 / len(workspaces)
-        Scale(InputWorkspace=outWS+Suffix, OutputWorkspace=outWS+Suffix, Factor=factor)
-        for ws in workspaces:
-            DeleteWorkspace(ws)
-        return [outWS+Suffix]
-    else:
-        return workspaces
-
-def createMappingFile(groupFile, ngroup, nspec, first):
-    if ngroup == 1:
-        return 'All'
-    if nspec == 1:
-        return 'Individual'
-    filename = config['defaultsave.directory']
-    filename = os.path.join(filename, groupFile)
-    handle = open(filename, 'w')
-    handle.write(str(ngroup) +  "\n" )
-    for n in range(0, ngroup):
-        n1 = n * nspec + first
-        handle.write(str(n+1) +  '\n' )
-        handle.write(str(nspec) +  '\n')
-        for i in range(1, nspec+1):
-            n3 = n1 + i - 1
-            handle.write(str(n3).center(4) + ' ')
-        handle.write('\n')
-    handle.close()
-    return filename
-
-
-def getInstrumentDetails(instrument):
-    instr_name = '__empty_' + instrument
-    if mtd.doesExist(instr_name):
-        workspace = mtd[instr_name]
-    else:
-        idf_dir = config['instrumentDefinition.directory']
-        idf = idf_dir + instrument + '_Definition.xml'
-        LoadEmptyInstrument(Filename=idf, OutputWorkspace=instr_name)
-        workspace = mtd[instr_name]
-    instrument = workspace.getInstrument()
-    ana_list_param = instrument.getStringParameter('analysers')
-    if len(ana_list_param) != 1:
-        return ""
-    ana_list_split = ana_list_param[0].split(',')
-    reflections = []
-    result = ''
-    for analyser in ana_list_split:
-        list = []
-        name = 'refl-' + analyser
-        list.append( analyser )
-        try:
-            item = instrument.getStringParameter(name)[0]
-        except IndexError:
-            item = ''
-        refl = item.split(',')
-        list.append( refl )
-        reflections.append(list)
-    for i in range(0, len(reflections)):
-        message = reflections[i][0] + '-'
-        for j in range(0,len(reflections[i][1])):
-            message += str(reflections[i][1][j])
-            if j < ( len(reflections[i][1]) -1 ):
-                message += ','
-        result += message
-        if  i < ( len(reflections) - 1) :
-            result += '\n'
-    return result
-
-def getReflectionDetails(inst, analyser, refl):
-    idf_dir = config['instrumentDefinition.directory']
-    ws = '__empty_' + inst
-    if not mtd.doesExist(ws):
-        idf_file = inst + '_Definition.xml'
-        idf = os.path.join(idf_dir, idf_file)
-        LoadEmptyInstrument(Filename=idf, OutputWorkspace=ws)
-    ipf_file = inst + '_' + analyser + '_' + refl + '_Parameters.xml'
-    ipf = os.path.join(idf_dir, ipf_file)
-    LoadParameterFile(Workspace=ws, Filename=ipf)
-    inst = mtd[ws].getInstrument()
-    result = ''
-    try:
-        result += str( inst.getStringParameter('analysis-type')[0] ) + '\n'
-        result += str( int(inst.getNumberParameter('spectra-min')[0]) ) + '\n'
-        result += str( int(inst.getNumberParameter('spectra-max')[0]) ) + '\n'
-        result += str( inst.getNumberParameter('efixed-val')[0] ) + '\n'
-        result += str( int(inst.getNumberParameter('peak-start')[0]) ) + '\n'
-        result += str( int(inst.getNumberParameter('peak-end')[0]) ) + '\n'
-        result += str( int(inst.getNumberParameter('back-start')[0]) ) + '\n'
-        result += str( int(inst.getNumberParameter('back-end')[0]) ) + '\n'
-        result += inst.getStringParameter('rebin-default')[0]
-    except IndexError:
-        pass
-    return result
diff --git a/Code/Mantid/scripts/Inelastic/IndirectImport.py b/Code/Mantid/scripts/Inelastic/IndirectImport.py
index e88d525831ceaa3d20b793d6c499443d904621a0..959339d533f4dd1ddb4b81ac0fc17cf25c5c90fe 100644
--- a/Code/Mantid/scripts/Inelastic/IndirectImport.py
+++ b/Code/Mantid/scripts/Inelastic/IndirectImport.py
@@ -69,7 +69,7 @@ def is_supported_f2py_platform():
     @returns True if we are currently on a platform that supports the F2Py
     libraries, else False.
     """
-    if _os_env().startswith("Windows") and _numpy_ver() == "1.6.2":
+    if _os_env().startswith("Windows") and _numpy_ver() == "1.6.2" and "python_d" not in sys.executable:
         return True
     return False
 
diff --git a/Code/Mantid/scripts/Inelastic/IndirectReductionCommon.py b/Code/Mantid/scripts/Inelastic/IndirectReductionCommon.py
index ddd8cc26d9314561ecd2a462771c420308505043..a0c2e6f6c01e8af0dd69234f3056789f882bf6a5 100644
--- a/Code/Mantid/scripts/Inelastic/IndirectReductionCommon.py
+++ b/Code/Mantid/scripts/Inelastic/IndirectReductionCommon.py
@@ -1,4 +1,4 @@
-#pylint: disable=invalid-name,too-many-branches,too-many-arguments,deprecated-module,no-name-in-module
+#pylint: disable=invalid-name,too-many-branches,too-many-arguments,deprecated-module,no-name-in-module,too-many-locals
 from mantid.api import WorkspaceGroup, AlgorithmManager
 from mantid import mtd, logger, config
 
@@ -7,7 +7,7 @@ import numpy as np
 
 #-------------------------------------------------------------------------------
 
-def load_files(data_files, ipf_filename, spec_min, spec_max, sum_files, load_opts=None):
+def load_files(data_files, ipf_filename, spec_min, spec_max, sum_files=False, load_logs=True, load_opts=None):
     """
     Loads a set of files and extracts just the spectra we care about (i.e. detector range and monitor).
 
@@ -15,7 +15,8 @@ def load_files(data_files, ipf_filename, spec_min, spec_max, sum_files, load_opt
     @param ipf_filename FIle path/name for the instrument parameter file to load
     @param spec_min Minimum spectra ID to load
     @param spec_max Maximum spectra ID to load
-    @param sum Sum loaded files
+    @param sum_files Sum loaded files
+    @param load_logs Load log files when loading runs
     @param load_opts Additional options to be passed to load algorithm
 
     @return List of loaded workspace names and flag indicating chopped data
@@ -43,6 +44,7 @@ def load_files(data_files, ipf_filename, spec_min, spec_max, sum_files, load_opt
         else:
             Load(Filename=filename,
                  OutputWorkspace=ws_name,
+                 LoadLogFiles=load_logs,
                  **load_opts)
 
         # Load the instrument parameters
@@ -84,15 +86,17 @@ def load_files(data_files, ipf_filename, spec_min, spec_max, sum_files, load_opt
                                   WorkspaceIndex=monitor_index)
 
             # Crop to the detectors required
-            CropWorkspace(InputWorkspace=chop_ws_name, OutputWorkspace=chop_ws_name,
-                          StartWorkspaceIndex=int(spec_min) - 1,
-                          EndWorkspaceIndex=int(spec_max) - 1)
+            chop_ws = mtd[chop_ws_name]
+            CropWorkspace(InputWorkspace=chop_ws_name,
+                          OutputWorkspace=chop_ws_name,
+                          StartWorkspaceIndex=chop_ws.getIndexFromSpectrumNumber(int(spec_min)),
+                          EndWorkspaceIndex=chop_ws.getIndexFromSpectrumNumber(int(spec_max)))
 
     logger.information('Loaded workspace names: %s' % (str(workspace_names)))
     logger.information('Chopped data: %s' % (str(chopped_data)))
 
     # Sum files if needed
-    if sum_files:
+    if sum_files and len(data_files) > 1:
         if chopped_data:
             workspace_names = sum_chopped_runs(workspace_names)
         else:
@@ -301,7 +305,8 @@ def unwrap_monitor(workspace_name):
         try:
             FFTSmooth(InputWorkspace=monitor_workspace_name,
                       OutputWorkspace=monitor_workspace_name,
-                      WorkspaceIndex=0)
+                      WorkspaceIndex=0,
+                      IgnoreXBins=True)
         except ValueError:
             raise ValueError('Uneven bin widths are not supported.')
 
diff --git a/Code/Mantid/scripts/SANS/ISISCommandInterface.py b/Code/Mantid/scripts/SANS/ISISCommandInterface.py
index 83382dfb3bc236a24aee7e1fb83600bfbfd598e4..24de1ea3c213c98079038b77e60480256b3092bb 100644
--- a/Code/Mantid/scripts/SANS/ISISCommandInterface.py
+++ b/Code/Mantid/scripts/SANS/ISISCommandInterface.py
@@ -983,10 +983,10 @@ def DisplayMask(mask_worksp=None):
 
             counts_data = '__DisplayMasked_tempory_wksp'
             Integration(InputWorkspace=mask_worksp,OutputWorkspace= counts_data)
-
         else:
-            instrument.load_empty(mask_worksp)
-            instrument.set_up_for_run('emptyInstrument')
+            msg = 'Cannot display the mask without a sample workspace'
+            _printMessage(msg, log = True, no_console=False)
+            return
 
     ReductionSingleton().mask.display(mask_worksp, ReductionSingleton(), counts_data)
     if counts_data:
@@ -1155,6 +1155,204 @@ def FindBeamCentre(rlow, rupp, MaxIter = 10, xstart = None, ystart = None, toler
 
     return XNEW, YNEW
 
+
+###################### Utility functions ####################################################
+def CreateZeroErrorFreeClonedWorkspace(input_workspace_name, output_workspace_name):
+    """
+        Creates a zero-error-free workspace
+        @param input_workspace_name :  name of the workspace which might contain zero-error values
+        @param output_workspace_name : name of the workspace which will have no zero-error values
+        @return: success message
+    """
+    message, complete = su.create_zero_error_free_workspace(input_workspace_name = input_workspace_name,
+                                                            output_workspace_name = output_workspace_name)
+    if not complete:
+        return message
+    else:
+        return ""
+
+
+def DeleteZeroErrorFreeClonedWorkspace(input_workspace_name):
+    """
+        Deletes a zero-error-free workspace
+        @param input_workspace_name :  name of the workspace which might contain zero-error values
+        @return: success message
+    """
+    message, complete = su.delete_zero_error_free_workspace(input_workspace_name = input_workspace_name)
+    if not complete:
+        return message
+    else:
+        return ""
+
+
+def IsValidWsForRemovingZeroErrors(input_workspace_name):
+    """
+        We need to check that the workspace has been reduced, ie that it has had the Q1D or Qxy algorithm
+        applied to it.
+        @param input_workspace_name :  name of the input workspace
+        @return: success message
+    """
+    message, valid = su.is_valid_ws_for_removing_zero_errors(input_workspace_name = input_workspace_name)
+    if not valid:
+        return message
+    else:
+        return ""
+
+################################################################################
+# Input check functions
+
+# Check the input for time shifts when adding event files
+def check_time_shifts_for_added_event_files(number_of_files, time_shifts= ''):
+    # If there are no entries then proceed.
+    if not time_shifts or time_shifts.isspace():
+        return
+
+    time_shift_container = time_shifts.split(',')
+    message = ''
+
+    # Check if the time shift elements can be cast to float
+    for time_shift_element in time_shift_container:
+        try:
+            float(time_shift_element)
+        except ValueError:
+            message = ('Error: Elements of the time shift list cannot be ' +
+                       'converted to a numeric value, e.g ' + time_shift_element)
+            print message
+            return message
+
+    if number_of_files -1 != len(time_shift_container):
+        message = ('Error: Expected N-1 time shifts for N files, but read ' +
+                  str(len(time_shift_container)) + ' time shifts for ' +
+                  str(number_of_files) + ' files.')
+        print message
+        return message
+
+def ConvertToPythonStringList(to_convert):
+    '''
+    Converts a python string list to a format more suitable for GUI representation
+    @param to_convert:: The string list
+    '''
+    return su.convert_to_string_list(to_convert)
+
+def ConvertFromPythonStringList(to_convert):
+    '''
+    Converts a comma-separated string into a Python string list
+    @param to_convert:: The comm-separated string
+    '''
+    return su.convert_from_string_list(to_convert)
+
+###################### Accessor functions for Transmission
+def GetTransmissionMonitorSpectrum():
+    """
+        Gets the transmission monitor spectrum
+        @return: tranmission monitor spectrum
+    """
+    return ReductionSingleton().transmission_calculator.trans_mon
+
+def SetTransmissionMonitorSpectrum(trans_mon):
+    """
+        Sets the transmission monitor spectrum.
+        @param trans_mon :: The spectrum to set.
+    """
+    if su.is_convertible_to_int(trans_mon):
+        ReductionSingleton().transmission_calculator.trans_mon = int(trans_mon)
+    else:
+        sanslog.warning('Warning: Could not convert the transmission monitor spectrum to int.')
+
+def UnsetTransmissionMonitorSpectrum():
+    """
+        Sets the transmission monitor spectrum to None
+    """
+    ReductionSingleton().transmission_calculator.trans_mon = None
+
+def GetTransmissionMonitorSpectrumShift():
+    """
+        Gets the addditional shift for the transmission monitor spectrum.
+        This currently only exists for SANS2D
+        @return: tranmission monitor spectrum
+    """
+    inst =  ReductionSingleton().get_instrument()
+    if inst.name() != "SANS2D" and inst.name() != "SANS2DTUBES":
+        return
+    return inst.monitor_4_offset
+
+def SetTransmissionMonitorSpectrumShift(trans_mon_shift):
+    """
+        Sets the transmission monitor spectrum shfit.
+        @param trans_mon_shift :: The spectrum shift to set.
+    """
+    if su.is_convertible_to_float(trans_mon_shift):
+        inst =  ReductionSingleton().get_instrument()
+        # Note that we are only setting the transmission monitor spectrum shift
+        # if we are dealing with a SANS2D instrument
+        if inst.name() != 'SANS2D' and inst.name() != 'SANS2DTUBES':
+            return
+        inst.monitor_4_offset = float(trans_mon_shift)
+    else:
+        sanslog.warning('Warning: Could not convert transmission monitor spectrum shift to float.')
+
+def GetTransmissionRadiusInMM():
+    """
+        Gets the radius for usage with beam stop as transmission monitor in mm
+        @return: tranmission radius in mm
+    """
+    radius = ReductionSingleton().transmission_calculator.radius
+    if radius is not None:
+        radius = radius*1000.0
+    return radius
+
+def SetTransmissionRadiusInMM(trans_radius):
+    """
+        Sets the transmission monitor spectrum.
+        @param trans_radius :: The radius to set in mm
+    """
+    if su.is_convertible_to_float(trans_radius):
+        ReductionSingleton().transmission_calculator.radius = float(trans_radius)/1000.0
+    else:
+        sanslog.warning('Warning: Could convert transmission radius to float.')
+
+def GetTransmissionROI():
+    """
+        Gets the list of ROI file names
+        @return: list of roi file names or None
+    """
+    roi_files = ReductionSingleton().transmission_calculator.roi_files
+    if len(roi_files) == 0:
+        return
+    else:
+        return roi_files
+
+def SetTransmissionROI(trans_roi_files):
+    """
+        Sets the transmission monitor region of interest.
+        @param trans_roi_files :: A string list of roi files
+    """
+    if su.is_valid_xml_file_list(trans_roi_files):
+        ReductionSingleton().transmission_calculator.roi_files = trans_roi_files
+    else:
+        sanslog.warning('Warning: The roi file list does not seem to be valid.')
+
+def GetTransmissionMask():
+    """
+        Gets the list of transmission maks file names
+        @return: list of transmission mask file names or None
+    """
+    trans_mask_files = ReductionSingleton().transmission_calculator.mask_files
+    if len(trans_mask_files) == 0:
+        return
+    else:
+        return trans_mask_files
+
+def SetTransmissionMask(trans_mask_files):
+    """
+        Sets the transmission masks.
+        @param trans_mask_files :: A string list of mask files
+    """
+    if su.is_valid_xml_file_list(trans_mask_files):
+        ReductionSingleton().transmission_calculator.mask_files = trans_mask_files
+    else:
+        sanslog.warning('Warning: The mask file list does not seem to be valid.')
+
 ###############################################################################
 ######################### Start of Deprecated Code ############################
 ###############################################################################
@@ -1253,7 +1451,7 @@ def ViewCurrentMask():
 
 ###############################################################################
 ########################## End of Deprecated Code #############################
-###############################################################################
+########################################################################g#######
 
 #this is like a #define I'd like to get rid of it because it seems meaningless here
 DefaultTrans = 'True'
diff --git a/Code/Mantid/scripts/SANS/SANSBatchMode.py b/Code/Mantid/scripts/SANS/SANSBatchMode.py
index 58ba1a1287e507d410018803c102c1ee62736f15..3419a9c6cd16d07aede08f6ca2a48e6918fb1d9b 100644
--- a/Code/Mantid/scripts/SANS/SANSBatchMode.py
+++ b/Code/Mantid/scripts/SANS/SANSBatchMode.py
@@ -8,7 +8,8 @@
 # For batch-reduction of LOQ or SANS2D runs in Mantid using a SINGLE set of instrument parameters (Q, wavelength, radius, etc)
 #
 # Reads multi-line input from file of the form:
-# sample_sans   54431   sample_trans    54435   direct_beam 54433   can_sans    54432   can_trans   54434   direct_beam 54433   background_sans     background_trans        direct_beam     output_as   script54435.txt
+# sample_sans   54431   sample_trans    54435   direct_beam 54433   can_sans    54432   can_trans  --> continued below
+# 54434   direct_beam 54433   background_sans     background_trans        direct_beam     output_as   script54435.txt
 #
 # Assumes the following have already been set by either the SANS GUI or directly from python using the AssignSample, LimitsR etc commands
 # instrument
@@ -30,6 +31,7 @@
 
 #Make the reduction module available
 from ISISCommandInterface import *
+import SANSUtility as su
 from mantid.simpleapi import *
 from mantid.api import WorkspaceGroup
 from mantid.kernel import Logger
@@ -38,7 +40,7 @@ import copy
 import sys
 import re
 from reduction_settings import REDUCTION_SETTINGS_OBJ_NAME
-
+from isis_reduction_steps import UserFile
 ################################################################################
 # Avoid a bug with deepcopy in python 2.6, details and workaround here:
 # http://bugs.python.org/issue1515
@@ -49,7 +51,22 @@ if sys.version_info[0] == 2 and sys.version_info[1] == 6:
     copy._deepcopy_dispatch[types.MethodType] = _deepcopy_method
 ################################################################################
 
-ALLOWED_NUM_ENTRIES = set([20,14,8,6,4])
+# The allowed number of entries per row.
+# The minimum is 4:  sample_sans, sample_sans_VALUE,
+#                    output_as, output_as_VALUE
+# The maximum is 22: sample_sans, sample_sans_VALUE,
+#                    sample_trans, sample_trans_VALUE,
+#                    sample_direct_beam, sample_directr_beam_VALUE,
+#                    can_sans, can_sans_VALUE,
+#                    can_trans, can_trans_VALUE,
+#                    can_direct_beam, can_direct_beam_VALUE
+#                    output_as, output_as_VALUE
+#                    user_file, user_file_VALUE
+#                    background_sans, background_sans_VALUE,         # CURRENTLY NOT SUPPORTED
+#                    background_trans, background_trans_VALUE,       # CURRENTLY NOT SUPPORTED
+#                    background_direct_beam, background_trans_VALUE  # CURRENTLY NOT SUPPORTED
+
+ALLOWED_NUM_ENTRIES = set([22,20,16,14,8,6,4])
 
 # Build a dictionary of possible input data  keys
 IN_FORMAT = {}
@@ -64,6 +81,8 @@ IN_FORMAT['can_direct_beam'] = ''
 #    IN_FORMAT['background_trans'] = 0
 #    IN_FORMAT['background_direct_beam'] = 0
 IN_FORMAT['output_as'] = ''
+IN_FORMAT['user_file'] =''
+
 #maps the run types above to the Python interface command to use to load it
 COMMAND = {}
 COMMAND['sample_sans'] = 'AssignSample('
@@ -94,13 +113,16 @@ def addRunToStore(parts, run_store):
         role = parts[i]
         if role in inputdata.keys():
             inputdata[parts[i]] = parts[i+1]
+        else:
+            issueWarning('You seem to have specified an invalid key in the SANSBatch file. The key was ' + str(role))
         if 'background' in role:
             issueWarning('Background runs are not yet implemented in Mantid! Will process Sample & Can only')
 
     run_store.append(inputdata)
     return 0
 
-def BatchReduce(filename, format, plotresults=False, saveAlgs={'SaveRKH':'txt'},verbose=False, centreit=False, reducer=None, combineDet=None):
+def BatchReduce(filename, format, plotresults=False, saveAlgs={'SaveRKH':'txt'},verbose=False,
+                centreit=False, reducer=None, combineDet=None, save_as_zero_error_free=False):
     """
         @param filename: the CSV file with the list of runs to analyse
         @param format: type of file to load, nxs for Nexus, etc.
@@ -110,6 +132,7 @@ def BatchReduce(filename, format, plotresults=False, saveAlgs={'SaveRKH':'txt'},
         @param centreit: do centre finding (default=False)
         @param reducer: if to use the command line (default) or GUI reducer object
         @param combineDet: that will be forward to WavRangeReduction (rear, front, both, merged, None)
+        @param save_as_zero_error_free: Should the reduced workspaces contain zero errors or not
         @return final_setings: A dictionary with some values of the Reduction - Right Now:(scale, shift)
     """
     if not format.startswith('.'):
@@ -119,7 +142,8 @@ def BatchReduce(filename, format, plotresults=False, saveAlgs={'SaveRKH':'txt'},
     file_handle = open(filename, 'r')
     runinfo = []
     for line in file_handle:
-        # See how many pieces of information have been provided; brackets delineate the field seperator (nothing for space-delimited, ',' for comma-seperated)
+        # See how many pieces of information have been provided;
+        # brackets delineate the field seperator (nothing for space-delimited, ',' for comma-seperated)
         parts = line.rstrip().split(',')
         if addRunToStore(parts, runinfo) > 0:
             issueWarning('Incorrect structure detected in input file "' + filename + '" at line \n"' + line + '"\nEntry skipped\n')
@@ -140,8 +164,25 @@ def BatchReduce(filename, format, plotresults=False, saveAlgs={'SaveRKH':'txt'},
     settings = copy.deepcopy(ReductionSingleton().reference())
     prop_man_settings = ReductionSingleton().settings.clone("TEMP_SETTINGS")
 
+    # Make a note of the original user file, as we want to set it
+    original_user_file = ReductionSingleton().user_settings.filename
+    current_user_file = original_user_file
+
     # Now loop over all the lines and do a reduction (hopefully) for each
     for run in runinfo:
+        # Set the user file, if it is required
+        try:
+            current_user_file = setUserFileInBatchMode(new_user_file=run['user_file'],
+                                                       current_user_file=current_user_file,
+                                                       original_user_file=original_user_file,
+                                                       original_settings = settings,
+                                                       original_prop_man_settings = prop_man_settings)
+        except (RunTimeError, ValueError) as e:
+            sanslog.warning("Error in Batchmode user files: Could not reset the specified user file %s. More info: %s" %(str(run['user_file']),str(e)))
+
+        local_settings = copy.deepcopy(ReductionSingleton().reference())
+        local_prop_man_settings = ReductionSingleton().settings.clone("TEMP_SETTINGS")
+
         raw_workspaces = []
         try:
             # Load in the sample runs specified in the csv file
@@ -228,6 +269,11 @@ def BatchReduce(filename, format, plotresults=False, saveAlgs={'SaveRKH':'txt'},
                     save_names.extend(w.getNames())
                 else:
                     save_names.append(n)
+
+            # If we want to remove zero-errors, we map the original workspace to a cleaned workspace clone,
+            # else we map it to itself.
+            save_names_dict = get_mapped_workspaces(save_names, save_as_zero_error_free)
+
             for algor in saveAlgs.keys():
                 for workspace_name in save_names:
                     #add the file extension, important when saving different types of file so they don't over-write each other
@@ -247,21 +293,27 @@ def BatchReduce(filename, format, plotresults=False, saveAlgs={'SaveRKH':'txt'},
                                     extra_param[prop] = _ws.getRun().getLogData(prop).value
                         # Call the SaveCanSAS1D with the Transmission and TransmissionCan if they are
                         # available
-                        SaveCanSAS1D(workspace_name, workspace_name+ext, DetectorNames=detnames,
+                        SaveCanSAS1D(save_names_dict[workspace_name], workspace_name+ext, DetectorNames=detnames,
                                      **extra_param)
                     elif algor == "SaveRKH":
-                        SaveRKH(workspace_name, workspace_name+ext, Append=False)
+                        SaveRKH(save_names_dict[workspace_name], workspace_name+ext, Append=False)
                     else:
-                        exec(algor+'(workspace_name, workspace_name+ext)')
+                        exec(algor+"('" + save_names_dict[workspace_name] + "', workspace_name+ext)")
+            # If we performed a zero-error correction, then we should get rid of the cloned workspaces
+            #if save_as_zero_error_free:
+            #    delete_cloned_workspaces(save_names_dict)
 
         if plotresults == 1:
             for final_name in names:
                 PlotResult(final_name)
 
         #the call to WaveRang... killed the reducer so copy back over the settings
-        ReductionSingleton().replace(copy.deepcopy(settings))
+        ReductionSingleton().replace(copy.deepcopy(local_settings))
+        ReductionSingleton().settings = local_prop_man_settings.clone(REDUCTION_SETTINGS_OBJ_NAME)
 
-        ReductionSingleton().settings = prop_man_settings.clone(REDUCTION_SETTINGS_OBJ_NAME)
+    # Set everything back to the initial state
+    ReductionSingleton().replace(copy.deepcopy(settings))
+    ReductionSingleton().settings = prop_man_settings.clone(REDUCTION_SETTINGS_OBJ_NAME)
 
     #end of reduction of all entries of batch file
     return scale_shift
@@ -359,3 +411,78 @@ def delete_workspaces(workspaces):
             except:
                 #we're only deleting to save memory, if the workspace really won't delete leave it
                 pass
+
+def get_mapped_workspaces(save_names, save_as_zero_error_free):
+    """
+        Get a workspace name map, which maps from the original
+        workspace to a zero-error-free cloned workspace if
+        save_as_zero_error_free is checked otherwise the
+        workspaces are mapped to themselves.
+        @param save_names: a list of workspace names
+        @param save_as_zero_error_free : if the user wants the zero-errors removed
+        @returns a map of workspaces
+    """
+    workspace_dictionary = {}
+    for name in save_names:
+        if save_as_zero_error_free:
+            cloned_name = name + '_cloned_temp'
+            dummy_message, complete = su.create_zero_error_free_workspace(input_workspace_name = name, output_workspace_name = cloned_name)
+            if complete:
+                workspace_dictionary[name] = cloned_name
+            else:
+                workspace_dictionary[name] = name
+        else:
+            workspace_dictionary[name] = name
+    return workspace_dictionary
+
+def delete_cloned_workspaces(save_names_dict):
+    """
+        If there are cloned workspaces in the worksapce map, then they are deleted
+        @param save_names_dict: a workspace name map
+    """
+    to_delete =[]
+    for key in save_names_dict:
+        if key != save_names_dict[key]:
+            to_delete.append(save_names_dict[key])
+    for element in to_delete:
+        su.delete_zero_error_free_workspace(input_workspace_name = element)
+
+def setUserFileInBatchMode(new_user_file, current_user_file, original_user_file, original_settings, original_prop_man_settings):
+    """
+        Loads a specified user file. The file is loaded if
+        new_user_file is different from  current_user_file. Else we just
+        keep the user file loaded. If the new_user_file is empty then we default to
+        original_user_file.
+        @param new_user_file: The new user file. Note that this can be merely the filename (+ extension)
+        @param current_user_file: The currently loaded user file
+        @param original_user_file: The originally loaded user file. This is used as a default
+        @param original_settings: The original reducer
+        @param original_prop_man_settings: Original properties settings
+    """
+    user_file_to_set = ""
+
+    # Try to find the user file in the default paths
+    if not os.path.isfile(new_user_file):
+        user_file = FileFinder.getFullPath(new_user_file)
+        if not os.path.isfile(user_file):
+            user_file_to_set = original_user_file
+        else:
+            user_file_to_set = user_file
+    else:
+        user_file_to_set = new_user_file
+
+    # Set the user file in the reducer and load the user file
+    if user_file_to_set != current_user_file:
+        # Need to setup a clean reducer. If we are dealing with the original user file,
+        # then we should take gui changes into account, ie reset to the original reducer
+        if user_file_to_set == original_user_file:
+            ReductionSingleton().replace(copy.deepcopy(original_settings))
+            ReductionSingleton().settings = original_prop_man_settings.clone(REDUCTION_SETTINGS_OBJ_NAME)
+        else:
+            instrument = copy.deepcopy(ReductionSingleton().get_instrument())
+            ReductionSingleton().clean(isis_reducer.ISISReducer)
+            ReductionSingleton().set_instrument(instrument)
+            ReductionSingleton().user_settings = UserFile(user_file_to_set)
+            ReductionSingleton().user_settings.execute(ReductionSingleton())
+        current_user_file = user_file_to_set
+    return current_user_file
diff --git a/Code/Mantid/scripts/SANS/SANSUtility.py b/Code/Mantid/scripts/SANS/SANSUtility.py
index 141b8e924cb827d49ed0c0036abfbca602213eb9..ae5527a41627d947f96266ef5c0857970ce832eb 100644
--- a/Code/Mantid/scripts/SANS/SANSUtility.py
+++ b/Code/Mantid/scripts/SANS/SANSUtility.py
@@ -5,6 +5,8 @@
 ########################################################
 from mantid.simpleapi import *
 from mantid.api import IEventWorkspace, MatrixWorkspace, WorkspaceGroup
+import mantid
+from mantid.kernel import time_duration
 import inspect
 import math
 import os
@@ -18,6 +20,10 @@ ADDED_EVENT_DATA_TAG = '_added_event_data'
 REG_DATA_NAME = '-add' + ADDED_EVENT_DATA_TAG + '[_1-9]*$'
 REG_DATA_MONITORS_NAME = '-add_monitors' + ADDED_EVENT_DATA_TAG + '[_1-9]*$'
 
+ZERO_ERROR_DEFAULT = 1e6
+
+INCIDENT_MONITOR_TAG = '_incident_monitor'
+
 def deprecated(obj):
     """
     Decorator to apply to functions or classes that we think are not being (or
@@ -69,14 +75,14 @@ def GetInstrumentDetails(instrum):
 
     return det.n_columns, first_spectrum, last_spectrum
 
-def InfinitePlaneXML(id, plane_pt, normal_pt):
-    return '<infinite-plane id="' + str(id) + '">' + \
+def InfinitePlaneXML(id_name, plane_pt, normal_pt):
+    return '<infinite-plane id="' + str(id_name) + '">' + \
         '<point-in-plane x="' + str(plane_pt[0]) + '" y="' + str(plane_pt[1]) + '" z="' + str(plane_pt[2]) + '" />' + \
         '<normal-to-plane x="' + str(normal_pt[0]) + '" y="' + str(normal_pt[1]) + '" z="' + str(normal_pt[2]) + '" />'+ \
         '</infinite-plane>'
 
-def InfiniteCylinderXML(id, centre, radius, axis):
-    return  '<infinite-cylinder id="' + str(id) + '">' + \
+def InfiniteCylinderXML(id_name, centre, radius, axis):
+    return  '<infinite-cylinder id="' + str(id_name) + '">' + \
     '<centre x="' + str(centre[0]) + '" y="' + str(centre[1]) + '" z="' + str(centre[2]) + '" />' + \
     '<axis x="' + str(axis[0]) + '" y="' + str(axis[1]) + '" z="' + str(axis[2]) + '" />' + \
     '<radius val="' + str(radius) + '" />' + \
@@ -93,11 +99,16 @@ def MaskWithCylinder(workspace, radius, xcentre, ycentre, algebra):
 # Mask such that the remainder is that specified by the phi range
 def LimitPhi(workspace, centre, phimin, phimax, use_mirror=True):
     # convert all angles to be between 0 and 360
-    while phimax > 360 : phimax -= 360
-    while phimax < 0 : phimax += 360
-    while phimin > 360 : phimin -= 360
-    while phimin < 0 : phimin += 360
-    while phimax<phimin : phimax += 360
+    while phimax > 360 :
+        phimax -= 360
+    while phimax < 0 :
+        phimax += 360
+    while phimin > 360 :
+        phimin -= 360
+    while phimin < 0 :
+        phimin += 360
+    while phimax<phimin :
+        phimax += 360
 
     #Convert to radians
     phimin = math.pi*phimin/180.0
@@ -143,15 +154,6 @@ def spectrumBlock(base, ylow, xlow, ydim, xdim, det_dimension, orientation):
             for x in range(0, xdim):
                 std_i = start_spec + x + (y*det_dimension)
                 output += str(max_spec - (std_i - base)) + ','
-    elif orientation == Orientation.HorizontalFlipped:
-        start_spec = base + ylow*det_dimension + xlow
-        for y in range(0,ydim):
-            max_row = base + (y+1)*det_dimension - 1
-            min_row = base + (y)*det_dimension
-            for x in range(0,xdim):
-                std_i = start_spec + x + (y*det_dimension)
-                diff_s = std_i - min_row
-                output += str(max_row - diff_s) + ','
 
     return output.rstrip(",")
 
@@ -370,17 +372,20 @@ def sliceParser(str_to_parser):
 
     def _parse_lower(inpstr):
         val = _check_match(inpstr, lowbound, 1)
-        if not val: return val
+        if not val:
+            return val
         return [val[0], MARK]
 
     def _parse_upper(inpstr):
         val = _check_match(inpstr, upbound, 1)
-        if not val: return val
+        if not val:
+            return val
         return [MARK, val[0]]
 
     def _parse_start_step_stop(inpstr):
         val = _check_match(inpstr, sss_pat, 3)
-        if not val: return val
+        if not val:
+            return val
         start = val[0]
         step = val[1]
         stop = val[2]
@@ -447,32 +452,91 @@ def getFileAndName(incomplete_path):
 
     return this_path, basename
 
+def _merge_to_ranges(ints):
+    """
+    Given an integer list, will "merge" adjacent integers into "ranges".
+    Assumes that the given list will already be sorted and that it contains no
+    duplicates.  Best explained with examples:
+
+    Input:  [1, 2, 3, 4]
+    Output: [[1, 4]]
+
+    Input:  [1, 2, 3, 5, 6, 7]
+    Output: [[1, 3], [5, 7]]
+
+    Input:  [1, 2, 3, 5, 7, 8, 9]
+    Output: [[1, 3], [5, 5], [7, 9]]
+
+    Input:  [1, 2, 7, 5, 6, 3, 2, 2]
+    Output: Unknown -- the input contains duplicates and is unsorted.
+
+    @params ints :: the integer list to merge, sorted and without duplicates
+
+    @returns a list of ranges
+    """
+    ranges = []
+    current_range = []
+    for i in ints:
+        if current_range == []:
+            current_range = [i, i]
+        elif current_range[1] + 1 == i:
+            current_range[1] = i
+        else:
+            ranges.append(current_range)
+            current_range = [i, i]
+    if not current_range in ranges:
+        ranges.append(current_range)
+    return ranges
+
+def _yield_masked_det_ids(masking_ws):
+    """
+    For some reason Detector.isMasked() does not work for MaskingWorkspaces.
+    We use masking_ws.readY(ws_index)[0] == 1 instead.
+    """
+    for ws_index in range(masking_ws.getNumberHistograms()):
+        if masking_ws.readY(ws_index)[0] == 1:
+            yield masking_ws.getDetector(ws_index).getID()
+
+def get_masked_det_ids_from_mask_file(mask_file_path, idf_path):
+    """
+    Given a mask file and the (necessary) path to the corresponding IDF, will
+    load in the file and return a list of detector IDs that are masked.
+
+    @param mask_file_path :: the path of the mask file to read in
+    @param idf_path :: the path to the corresponding IDF. Necessary so that we
+                       know exactly which instrument to use, and therefore know
+                       the correct detector IDs.
+
+    @returns the list of detector IDs that were masked in the file
+    """
+    mask_ws_name = "__temp_mask"
+    LoadMask(
+        Instrument=idf_path,
+        InputFile=mask_file_path,
+        OutputWorkspace=mask_ws_name)
+    det_ids = list(_yield_masked_det_ids(mtd[mask_ws_name]))
+    DeleteWorkspace(Workspace=mask_ws_name)
+
+    return det_ids
+
 def mask_detectors_with_masking_ws(ws_name, masking_ws_name):
     """
     Rolling our own MaskDetectors wrapper since masking is broken in a couple
-    of places that affect us here:
-
-    1. Calling MaskDetectors(Workspace=ws_name, MaskedWorkspace=mask_ws_name)
-       is not something we can do because the algorithm masks by ws index
-       rather than detector id, and unfortunately for SANS the detector table
-       is not the same for MaskingWorkspaces as it is for the workspaces
-       containing the data to be masked.  Basically, we get a mirror image of
-       what we expect.  Instead, we have to extract the det IDs and use those
-       via the DetectorList property.
+    of places that affect us here.
 
-    2. For some reason Detector.isMasked() does not work for MaskingWorkspaces.
-       We use masking_ws.readY(ws_index)[0] == 1 instead.
+    Calling MaskDetectors(Workspace=ws_name, MaskedWorkspace=mask_ws_name) is
+    not something we can do because the algorithm masks by ws index rather than
+    detector id, and unfortunately for SANS the detector table is not the same
+    for MaskingWorkspaces as it is for the workspaces containing the data to be
+    masked.  Basically, we get a mirror image of what we expect.  Instead, we
+    have to extract the det IDs and use those via the DetectorList property.
 
     @param ws :: the workspace to be masked.
     @param masking_ws :: the masking workspace that contains masking info.
     """
     ws, masking_ws = mtd[ws_name], mtd[masking_ws_name]
 
-    masked_det_ids = []
-
-    for ws_index in range(masking_ws.getNumberHistograms()):
-        if masking_ws.readY(ws_index)[0] == 1:
-            masked_det_ids.append(masking_ws.getDetector(ws_index).getID())
+    masked_det_ids = list(_yield_masked_det_ids(masking_ws))
 
     MaskDetectors(Workspace=ws, DetectorList=masked_det_ids)
 
@@ -526,8 +590,9 @@ def extract_child_ws_for_added_eventdata(ws_group, appendix):
         ws_handles.append(ws_group.getItem(index))
 
     if len(ws_handles) != 2:
-        raise RuntimeError('Expected two child workspaces when loading added event data.'/
-                           'Please make sure that you have loaded added event data which was generated by the Add tab of the SANS Gui.')
+        raise RuntimeError("Expected two child workspaces when loading added event data."
+                           "Please make sure that you have loaded added event data which was generated by the Add tab of the SANS Gui."
+                          )
 
     # Now ungroup the group
     UnGroupWorkspace(ws_group)
@@ -598,6 +663,350 @@ def get_full_path_for_added_event_data(file_name):
 
     return full_path_name
 
+def extract_spectra(ws, det_ids, output_ws_name):
+    """
+    A more generic version of ExtactSingleSpectrum.  Accepts an arbitrary list
+    of ws indices to keep.  Everything else is ignored.
+    @param ws :: the workspace from which to extract spectra
+    @param det_ids :: the detector IDs corresponding to the spectra to extract
+    @param output_ws_name :: the name of the resulting workspace
+    @returns :: a workspace containing the extracted spectra
+    """
+    ExtractSpectra(InputWorkspace=ws,OutputWorkspace=output_ws_name, DetectorList=det_ids)
+    return mtd[output_ws_name]
+
+def get_masked_det_ids(ws):
+    """
+    Given a workspace, will return a list of all the IDs that correspond to
+    detectors that have been masked.
+
+    @param ws :: the workspace to extract the det IDs from
+
+    @returns a list of IDs for masked detectors
+    """
+    for ws_index in range(ws.getNumberHistograms()):
+        try:
+            det = ws.getDetector(ws_index)
+        except RuntimeError:
+            # Skip the rest after finding the first spectra with no detectors,
+            # which is a big speed increase for SANS2D.
+            break
+        if det.isMasked():
+            yield det.getID()
+def create_zero_error_free_workspace(input_workspace_name, output_workspace_name):
+    '''
+    Creates a cloned workspace where all zero-error values have been replaced with a large value
+    @param input_workspace_name :: The input workspace name
+    @param output_workspace_name :: The output workspace name
+    @returns a message and a completion flag
+    '''
+    # Load the input workspace
+    message = ""
+    complete = False
+    if not input_workspace_name in mtd:
+        message = 'Failed to create a zero error free cloned workspace: The input workspace does not seem to exist.'
+        return message, complete
+
+    # Create a cloned workspace
+    ws_in = mtd[input_workspace_name]
+
+    # Remove all zero errors from the cloned workspace
+    CloneWorkspace(InputWorkspace=ws_in, OutputWorkspace=output_workspace_name)
+    if not output_workspace_name in mtd:
+        message = 'Failed to create a zero error free cloned workspace: A clone could not be created.'
+        return message, complete
+
+    ws_out = mtd[output_workspace_name]
+    try:
+        remove_zero_errors_from_workspace(ws_out)
+        complete = True
+    except ValueError:
+        DeleteWorkspace(Workspace=output_workspace_name)
+        message = 'Failed to create a zero error free cloned workspace: Could not remove the zero errors.'
+
+    return message, complete
+
+def remove_zero_errors_from_workspace(ws):
+    '''
+    Removes the zero errors from a Matrix workspace
+    @param ws :: The input workspace
+    '''
+    # Make sure we are dealing with a MatrixWorkspace
+    if not isinstance(ws, MatrixWorkspace) or isinstance(ws,IEventWorkspace):
+        raise ValueError('Cannot remove zero errors from a workspace which is not of type MatrixWorkspace.')
+    # Iterate over the workspace and replace the zero values with a large default value
+    numSpectra = ws.getNumberHistograms()
+    errors = ws.dataE
+    for index in range(0,numSpectra):
+        spectrum = errors(index)
+        spectrum[spectrum <= 0.0] = ZERO_ERROR_DEFAULT
+
+def delete_zero_error_free_workspace(input_workspace_name):
+    '''
+    Deletes the zero-error free workspace
+    @param ws :: The input workspace
+    '''
+    complete = False
+    message = ""
+    if input_workspace_name in mtd:
+        DeleteWorkspace(Workspace=input_workspace_name)
+        complete = True
+    else:
+        message = 'Failed to delete a zero-error free workspace'
+    return message, complete
+
+def is_valid_ws_for_removing_zero_errors(input_workspace_name):
+    '''
+    Check if a workspace has been created via Q1D or Qxy.
+    @param ws :: The input workspace
+    '''
+    isValid = False
+    message = ""
+
+    ws = mtd[input_workspace_name]
+    workspaceHistory= ws.getHistory()
+    histories = workspaceHistory.getAlgorithmHistories()
+    for history in histories:
+        name = history.name()
+        if name == 'Q1D' or name == 'Qxy':
+            isValid = True
+            break
+
+    if not isValid:
+        message = ("Workspace does not seem valid for zero error removal."
+                   "It must have been reduced with Q1D or Qxy."
+                  )
+
+    return message, isValid
+
+class AddOperation(object):
+    """
+    The AddOperation allows to add two workspaces at a time.
+    """
+    def __init__(self,isOverlay, time_shifts):
+        """
+        The AddOperation requires to know if the workspaces are to
+        be plainly added or to be overlayed. Additional time shifts can be
+        specified
+        @param isOverlay :: true if the operation is an overlay operation
+        @param time_shifts :: a string with comma-separted time shift values
+        """
+        super(AddOperation, self).__init__()
+        factory = CombineWorkspacesFactory()
+        self.adder = factory.create_add_algorithm(isOverlay)
+        self.time_shifter = TimeShifter(time_shifts)
+
+    def add(self, LHS_workspace, RHS_workspace, output_workspace, run_to_add):
+        """
+        Add two workspaces together and place the result into the outputWorkspace.
+        The user needs to specify which run is being added in order to determine
+        the correct time shift
+        @param LHS_workspace :: first workspace, this workspace is a reference workspace
+                                and hence never shifted
+        @param RHS_workspace :: second workspace which can be shifted in time
+        @param run_to_add :: the number of the nth added workspace
+        """
+        current_time_shift = self.time_shifter.get_Nth_time_shift(run_to_add)
+        self.adder.add(LHS_workspace=LHS_workspace,
+                       RHS_workspace= RHS_workspace,
+                       output_workspace= output_workspace,
+                       time_shift = current_time_shift)
+
+class CombineWorkspacesFactory(object):
+    """
+    Factory to determine how to add workspaces
+    """
+    def __init__(self):
+        super(CombineWorkspacesFactory, self).__init__()
+    def create_add_algorithm(self, isOverlay):
+        """
+        @param isOverlay :: if true we provide the OverlayWorkspaces functionality
+        """
+        if isOverlay:
+            return OverlayWorkspaces()
+        else:
+            return PlusWorkspaces()
+
+class PlusWorkspaces(object):
+    """
+    Wrapper for the Plus algorithm
+    """
+    def __init__(self):
+        super(PlusWorkspaces, self).__init__()
+
+    def add(self, LHS_workspace, RHS_workspace, output_workspace, time_shift = 0.0):
+        """
+        @param LHS_workspace :: the first workspace
+        @param RHS_workspace :: the second workspace
+        @param output_workspace :: the output workspace
+        @param time_shift :: unused parameter
+        """
+        dummy_shift = time_shift
+        Plus(LHSWorkspace=LHS_workspace,RHSWorkspace= RHS_workspace,OutputWorkspace= output_workspace)
+
+class OverlayWorkspaces(object):
+    """
+    Overlays (in time) a workspace  on top of another workspace. The two
+    workspaces overlayed such that the first time entry of their proton_charge entry matches.
+    This overlap can be shifted by the specified time_shift in seconds
+    """
+    def __init__(self):
+        super(OverlayWorkspaces, self).__init__()
+
+    def add(self, LHS_workspace, RHS_workspace, output_workspace, time_shift = 0.0):
+        """
+        @param LHS_workspace :: the first workspace
+        @param RHS_workspace :: the second workspace
+        @param output_workspace :: the output workspace
+        @param time_shift :: an additional time shift for the overlay procedure
+        """
+        rhs_ws = self._get_workspace(RHS_workspace)
+        lhs_ws = self._get_workspace(LHS_workspace)
+        # Find the time difference between LHS and RHS workspaces and add optional time shift
+        time_difference = self._extract_time_difference_in_seconds(lhs_ws, rhs_ws)
+        total_time_shift = time_difference + time_shift
+
+        # Create a temporary workspace with shifted time values from RHS, if the shift is necesary
+        temp = rhs_ws
+        temp_ws_name = 'shifted'
+        if total_time_shift != 0.0:
+            temp = ChangeTimeZero(InputWorkspace=rhs_ws, OutputWorkspace=temp_ws_name, RelativeTimeOffset=total_time_shift)
+
+        # Add the LHS and shifted workspace
+        Plus(LHSWorkspace=LHS_workspace,RHSWorkspace= temp ,OutputWorkspace= output_workspace)
+
+        # Remove the shifted workspace
+        if mtd.doesExist(temp_ws_name):
+            mtd.remove(temp_ws_name)
+
+    def _extract_time_difference_in_seconds(self, ws1, ws2):
+        # The times which need to be compared are the first entry in the proton charge log
+        time_1 = self._get_time_from_proton_charge_log(ws1)
+        time_2 = self._get_time_from_proton_charge_log(ws2)
+
+        return time_duration.total_nanoseconds(time_1- time_2)/1e9
+
+    def _get_time_from_proton_charge_log(self, ws):
+        times = ws.getRun().getProperty("proton_charge").times
+        if len(times) == 0:
+            raise ValueError("The proton charge does not have any time entry")
+        return times[0]
+
+    def _get_workspace(self, workspace):
+        if isinstance(workspace, MatrixWorkspace):
+            return workspace
+        elif isinstance(workspace, basestring) and mtd.doesExist(workspace):
+            return mtd[workspace]
+
+class TimeShifter(object):
+    """
+    The time shifter stores all time shifts for all runs which are to be added. If there is
+    a mismatch the time shifts are set to 0.0 seconds.
+    """
+    def __init__(self, time_shifts):
+        super(TimeShifter, self).__init__()
+        self._time_shifts = time_shifts
+    def get_Nth_time_shift(self, n):
+        """
+        Retrieves the specified additional time shift for the nth addition in seconds.
+        @param n :: the nth addition
+        """
+        if len(self._time_shifts) >= (n+1):
+            return self._cast_to_float(self._time_shifts[n])
+        else:
+            return 0.0
+    def _cast_to_float(self, element):
+        float_element = 0.0
+        try:
+            float_element = float(element)
+        except ValueError:
+            pass# Log here
+        return float_element
+
+def load_monitors_for_multiperiod_event_data(workspace, data_file, monitor_appendix):
+    '''
+    Takes a multi-period event workspace and loads the monitors
+    as a group workspace
+    @param workspace: Multi-period event workspace
+    @param data_file: The data file
+    @param monitor_appendix: The appendix for monitor data
+    '''
+    # Load all monitors
+    mon_ws_group_name = "temp_ws_group"
+    LoadNexusMonitors(Filename=data_file, OutputWorkspace=mon_ws_group_name)
+    mon_ws = mtd["temp_ws_group"]
+    # Rename all monitor workspces
+    rename_monitors_for_multiperiod_event_data(monitor_workspace = mon_ws, workspace=workspace, appendix=monitor_appendix)
+
+def rename_monitors_for_multiperiod_event_data(monitor_workspace, workspace, appendix):
+    '''
+    Takes a multi-period event workspace and loads the monitors
+    as a group workspace
+    @param workspace: Multi-period event workspace
+    @param data_file: The data file
+    @param monitor_appendix: The appendix for monitor data
+    '''
+    if len(monitor_workspace) != len(workspace):
+        raise RuntimeError("The workspace and monitor workspace lengths do not match.")
+    for index in range(0,len(monitor_workspace)):
+        monitor_name = workspace[index].name() + appendix
+        RenameWorkspace(InputWorkspace=monitor_workspace[index], OutputWorkspace=monitor_name)
+    # Finally rename the group workspace
+    monitor_group_ws_name = workspace.name() + appendix
+    RenameWorkspace(InputWorkspace=monitor_workspace, OutputWorkspace=monitor_group_ws_name)
+
+def is_convertible_to_int(input_value):
+    '''
+    Check if the input can be converted to int
+    @param input_value :: a general input
+    '''
+    try:
+        dummy_converted = int(input_value)
+    except ValueError:
+        return False
+    return True
+
+def is_convertible_to_float(input_value):
+    '''
+    Check if the input can be converted to float
+    @param input_value :: a general input
+    '''
+    try:
+        dummy_converted = float(input_value)
+    except ValueError:
+        return False
+    return True
+
+def is_valid_xml_file_list(input_value):
+    '''
+    Check if the input is a valid xml file list. We only check
+    the form and not the existence of the file
+    @param input :: a list input
+    '''
+    if not isinstance(input_value, list) or not input or len(input_value) == 0:
+        return False
+    for element in input_value:
+        if not isinstance(element, str) or not element.endswith('.xml'):
+            return False
+    return True
+
+def convert_from_string_list(to_convert):
+    '''
+    Convert a Python string list to a comma-separted string
+    @param to_convert :: a string list input
+    '''
+    return ','.join(element.replace(" ", "") for element in to_convert)
+
+def convert_to_string_list(to_convert):
+    '''
+    Convert a comma-separted string to a Python string list in a string form
+    "file1.xml, file2.xml" -> "['file1.xml','file2.xml']"
+    @param to_convert :: a comma-spearated string
+    '''
+    string_list = to_convert.replace(" ", "").split(",")
+    output_string = "[" + ','.join("'"+element+"'" for element in string_list) + "]"
+    return output_string
+
 ###############################################################################
 ######################### Start of Deprecated Code ############################
 ###############################################################################
@@ -609,8 +1018,8 @@ def parseLogFile(logfile):
         'Front_Det_Rot':0.0}
     if logfile == None:
         return tuple(logkeywords.values())
-    file = open(logfile, 'rU')
-    for line in file:
+    file_log = open(logfile, 'rU')
+    for line in file_log:
         entry = line.split()[1]
         if entry in logkeywords.keys():
             logkeywords[entry] = float(line.split()[2])
@@ -775,8 +1184,6 @@ class Orientation(object):
     Horizontal = 1
     Vertical = 2
     Rotated = 3
-    # This is for the empty instrument
-    HorizontalFlipped = 4
 
 # A small class holds the run number with the workspace name, because the run number is not contained in the workspace at the moment
 @deprecated
diff --git a/Code/Mantid/scripts/SANS/SANSadd2.py b/Code/Mantid/scripts/SANS/SANSadd2.py
index d47d6661852dd2b28b240bfb9c2e73c512f41c76..675129fc2fda4f87682ba3fb7c2d1e985178144f 100644
--- a/Code/Mantid/scripts/SANS/SANSadd2.py
+++ b/Code/Mantid/scripts/SANS/SANSadd2.py
@@ -2,13 +2,13 @@
 import os
 from mantid.simpleapi import *
 from mantid.kernel import Logger
-from SANSUtility import (bundle_added_event_data_as_group)
+from SANSUtility import (bundle_added_event_data_as_group, AddOperation)
 sanslog = Logger("SANS")
 from shutil import copyfile
 
 _NO_INDIVIDUAL_PERIODS = -1
 
-def add_runs(runs, inst='sans2d', defType='.nxs', rawTypes=('.raw', '.s*', 'add','.RAW'), lowMem=False, binning='Monitors', saveAsEvent=False):
+def add_runs(runs, inst='sans2d', defType='.nxs', rawTypes=('.raw', '.s*', 'add','.RAW'), lowMem=False, binning='Monitors', saveAsEvent=False, isOverlay = False, time_shifts = []):
     if inst.upper() == "SANS2DTUBES":
         inst = "SANS2D"
   #check if there is at least one file in the list
@@ -16,6 +16,9 @@ def add_runs(runs, inst='sans2d', defType='.nxs', rawTypes=('.raw', '.s*', 'add'
 
     if not defType.startswith('.') : defType = '.'+defType
 
+    # Create the correct format of adding files
+    adder = AddOperation(isOverlay, time_shifts)
+
   #these input arguments need to be arrays of strings, enforce this
     if type(runs) == str : runs = (runs, )
     if type(rawTypes) == str : rawTypes = (rawTypes, )
@@ -29,6 +32,8 @@ def add_runs(runs, inst='sans2d', defType='.nxs', rawTypes=('.raw', '.s*', 'add'
 
     userEntry = runs[0]
 
+    counter_run = 0
+
     while True:
 
         isFirstDataSetEvent = False
@@ -64,18 +69,22 @@ def add_runs(runs, inst='sans2d', defType='.nxs', rawTypes=('.raw', '.s*', 'add'
                             DeleteWorkspace(workspaceName)
                     return ""
 
-                Plus(LHSWorkspace='AddFilesSumTempory',RHSWorkspace= 'AddFilesNewTempory',OutputWorkspace= 'AddFilesSumTempory')
+                adder.add(LHS_workspace='AddFilesSumTempory',RHS_workspace= 'AddFilesNewTempory',
+                          output_workspace= 'AddFilesSumTempory', run_to_add = counter_run)
                 if isFirstDataSetEvent:
-                    Plus(LHSWorkspace='AddFilesSumTempory_monitors',RHSWorkspace= 'AddFilesNewTempory_monitors',OutputWorkspace= 'AddFilesSumTempory_monitors')
+                    adder.add(LHS_workspace='AddFilesSumTempory_monitors',RHS_workspace= 'AddFilesNewTempory_monitors',
+                              output_workspace= 'AddFilesSumTempory_monitors', run_to_add = counter_run)
                 DeleteWorkspace("AddFilesNewTempory")
                 if isFirstDataSetEvent:
                     DeleteWorkspace("AddFilesNewTempory_monitors")
-
+                # Increment the run number
+                counter_run +=1
         except ValueError as e:
             error = 'Error opening file ' + userEntry+': ' + str(e)
             print error
             logger.notice(error)
-            if 'AddFilesSumTempory' in mtd  : DeleteWorkspace('AddFilesSumTempory')
+            if 'AddFilesSumTempory' in mtd :
+                DeleteWorkspace('AddFilesSumTempory')
             return ""
         except Exception as e:
             error = 'Error finding files: ' + str(e)
@@ -124,7 +133,8 @@ def add_runs(runs, inst='sans2d', defType='.nxs', rawTypes=('.raw', '.s*', 'add'
                 wsOut.setE(i,wsInMonitor.dataE(i))
             ConjoinWorkspaces(wsOut, wsInDetector, CheckOverlapping=True)
 
-            if 'AddFilesSumTempory_Rebin' in mtd : DeleteWorkspace('AddFilesSumTempory_Rebin')
+            if 'AddFilesSumTempory_Rebin' in mtd :
+                DeleteWorkspace('AddFilesSumTempory_Rebin')
 
 
         lastFile = os.path.splitext(lastFile)[0]
diff --git a/Code/Mantid/scripts/SANS/isis_instrument.py b/Code/Mantid/scripts/SANS/isis_instrument.py
index 4560564c06b26a4d5de15f216fefc4650824ff19..b4fc326cd0b2c6f7d8aca7d5fee78e90662b2b05 100644
--- a/Code/Mantid/scripts/SANS/isis_instrument.py
+++ b/Code/Mantid/scripts/SANS/isis_instrument.py
@@ -224,8 +224,9 @@ class DetectorBank(object):
         # hold rescale and shift object _RescaleAndShift
         self.rescaleAndShift = self._RescaleAndShift()
 
-        #in the empty instrument detectors are laid out as below on loading a run the orientation becomes run dependent
-        self._orientation = 'HorizontalFlipped'
+        # The orientation is set by default to Horizontal (Note this used to be HorizontalFlipped,
+        # probably as part of some hack for specific run numbers of SANS2D)
+        self._orientation = 'Horizontal'
 
     def disable_y_and_rot_corrs(self):
         """
@@ -363,14 +364,6 @@ class DetectorBank(object):
                 for x in range(0, xdim):
                     std_i = start_spec + x + (y*det_dimension)
                     output += str(max_spec - (std_i - base)) + ','
-        elif self._orientation == 'HorizontalFlipped':
-            for y in range(ylow,ylow+ydim):
-                max_row = base + (y+1)*det_dimension - 1
-                min_row = base + (y)*det_dimension
-                for x in range(xlow,xlow+xdim):
-                    std_i = base + x + (y*det_dimension)
-                    diff_s = std_i - min_row
-                    output += str(max_row - diff_s) + ','
 
         return output.rstrip(",")
 
@@ -378,8 +371,7 @@ class DetectorBank(object):
     _ORIENTED = {
         'Horizontal' : None,        #most runs have the detectors in this state
         'Vertical' : None,
-        'Rotated' : None,
-        'HorizontalFlipped' : None} # This is for the empty instrument
+        'Rotated' : None}
 
     def set_orien(self, orien):
         """
@@ -509,6 +501,9 @@ class ISISInstrument(BaseInstrument):
         self._back_start = None
         # default end region
         self._back_end = None
+        # the background TOF region for ROI data. Note that either this or a transmission monitor is used.
+        self._back_start_ROI = None
+        self._back_end_ROI = None
         #if the user moves a monitor to this z coordinate (with MON/LENGTH ...) this will be recorded here. These are overridden lines like TRANS/TRANSPEC=4/SHIFT=-100
         self.monitor_zs = {}
         # Used when new calibration required.
@@ -596,13 +591,8 @@ class ISISInstrument(BaseInstrument):
         if self.other_detector().isAlias(detName) :
             self.lowAngDetSet = not self.lowAngDetSet
             return True
-        else:
-            #there are only two detectors, they must have selected the current one so no change is need
-            if self.cur_detector().isAlias(detName):
-                return True
-            else:
-                sanslog.notice("setDetector: Detector not found")
-                sanslog.notice("setDetector: Detector set to " + self.cur_detector().name() + ' in ' + self.name())
+        elif self.cur_detector().isAlias(detName):
+            return True
 
     def setDefaultDetector(self):
         self.lowAngDetSet = True
@@ -668,6 +658,38 @@ class ISISInstrument(BaseInstrument):
             self._back_ground = {}
             self._back_start = None
             self._back_end = None
+            self.reset_TOFs_for_ROI()
+
+    def get_TOFs_for_ROI(self):
+        """
+            Gets the TOFs for the ROI which is required for the Transmission calculation. If it is
+            not available then use the default setting
+            @return: the start time, the end time
+        """
+        if self._back_start_ROI and self._back_end_ROI:
+            return self._back_start_ROI, self._back_end_ROI
+        else:
+            return None, None
+
+    def set_TOFs_for_ROI(self, start, end):
+        """
+            Sets the TOFs for the ROI which is required for the Transmission calculation.
+            @param: start : defines the start of the background region for ROI
+            @param: end : defines the end of the background region for ROI
+        """
+        if start != None:
+            start = float(start)
+        if end != None:
+            end = float(end)
+        self._back_start_ROI = start
+        self._back_end_ROI = end
+
+    def reset_TOFs_for_ROI(self):
+        """
+            Reset background region set by set_TOFs for ROI
+        """
+        self._back_start_ROI = None
+        self._back_end_ROI = None
 
     def move_all_components(self, ws):
         """
@@ -706,7 +728,7 @@ class ISISInstrument(BaseInstrument):
         try:
             run_num = ws_ref.getRun().getLogData('run_number').value
         except:
-            run_num = int(re.findall(r'\d+',str(ws_name))[-1])
+            run_num = int(re.findall(r'\d+',str(ws_name))[0])
 
         if isSample:
             self.set_up_for_run(run_num)
@@ -866,11 +888,7 @@ class SANS2D(ISISInstrument):
             #this is the default case
             first.set_first_spec_num(9)
             first.set_orien('Horizontal')
-            # empty instrument number spectra differently.
-            if base_runno == 'emptyInstrument':
-                second.set_orien('HorizontalFlipped')
-            else:
-                second.set_orien('Horizontal')
+            second.set_orien('Horizontal')
 
         #as spectrum numbers of the first detector have changed we'll move those in the second too
         second.place_after(first)
@@ -1375,7 +1393,7 @@ class LARMOR(ISISInstrument):
         try:
             run_num = ws_ref.getRun().getLogData('run_number').value
         except:
-            run_num = int(re.findall(r'\d+',str(ws_name))[-1])
+            run_num = int(re.findall(r'\d+',str(ws))[0])
 
         # The angle value
         # Note that the x position gets converted from mm to m when read from the user file so we need to reverse this if X is now an angle
@@ -1442,7 +1460,7 @@ class LARMOR(ISISInstrument):
         try:
             run_num = ws_ref.getRun().getLogData('run_number').value
         except:
-            run_num = int(re.findall(r'\d+',str(ws_name))[-1])
+            run_num = int(re.findall(r'\d+',str(ws_name))[0])
         if int(run_num) >= 2217:
             try:
                 #logger.warning("Trying get_detector_log")
diff --git a/Code/Mantid/scripts/SANS/isis_reduction_steps.py b/Code/Mantid/scripts/SANS/isis_reduction_steps.py
index b5e2e3aca57fcce77c3488b11f61a1dbd9562e65..b226e07a039109d557bcbefdca8512c47cfe39d8 100644
--- a/Code/Mantid/scripts/SANS/isis_reduction_steps.py
+++ b/Code/Mantid/scripts/SANS/isis_reduction_steps.py
@@ -17,12 +17,13 @@ from mantid.kernel import Logger
 sanslog = Logger("SANS")
 
 from mantid.simpleapi import *
-from mantid.api import WorkspaceGroup, Workspace, IEventWorkspace
+from mantid.api import WorkspaceGroup, Workspace, IEventWorkspace, FileLoaderRegistry
 from SANSUtility import (GetInstrumentDetails, MaskByBinRange,
                          isEventWorkspace, getFilePathFromWorkspace,
                          getWorkspaceReference, slice2histogram, getFileAndName,
-                         mask_detectors_with_masking_ws, check_child_ws_for_name_and_type_for_added_eventdata,
-                         extract_child_ws_for_added_eventdata)
+                         mask_detectors_with_masking_ws, check_child_ws_for_name_and_type_for_added_eventdata, extract_spectra,
+                         extract_child_ws_for_added_eventdata, load_monitors_for_multiperiod_event_data,
+                          MaskWithCylinder, get_masked_det_ids, get_masked_det_ids_from_mask_file, INCIDENT_MONITOR_TAG)
 import isis_instrument
 import isis_reducer
 from reducer_singleton import ReductionStep
@@ -139,7 +140,8 @@ class LoadRun(object):
         """
         if self._period != self.UNSET_PERIOD:
             workspace = self._get_workspace_name(self._period)
-            extra_options['EntryNumber'] = self._period
+            if not FileLoaderRegistry.canLoad("LoadEventNexus", self._data_file):
+                extra_options['EntryNumber'] = self._period
         else:
             workspace = self._get_workspace_name()
 
@@ -151,11 +153,8 @@ class LoadRun(object):
 
         # We need to check if we are dealing with a group workspace which is made up of added event data. Note that
         # we can also have a group workspace which is associated with period data, which don't want to deal with here.
-
         added_event_data_flag = False
         if isinstance(outWs, WorkspaceGroup) and check_child_ws_for_name_and_type_for_added_eventdata(outWs):
-            if self._period != self.UNSET_PERIOD:
-                raise RuntimeError("Trying to use multiperiod and added eventdata. This is currently not supported.")
             extract_child_ws_for_added_eventdata(outWs, appendix)
             added_event_data_flag = True
             # Reload the outWs, it has changed from a group workspace to an event workspace
@@ -163,6 +162,7 @@ class LoadRun(object):
 
         monitor_ws_name = workspace + appendix
 
+        # Handle simple EventWorkspace data
         if not added_event_data_flag:
             if isinstance(outWs, IEventWorkspace):
                 try:
@@ -175,6 +175,11 @@ class LoadRun(object):
                 if monitor_ws_name in mtd:
                     DeleteWorkspace(monitor_ws_name)
 
+        # Handle Multi-period Event data
+        if not added_event_data_flag:
+            if isinstance(outWs, WorkspaceGroup) and len(outWs)>0 and isinstance(outWs[0], IEventWorkspace):
+                load_monitors_for_multiperiod_event_data(workspace=outWs, data_file=self._data_file, monitor_appendix= appendix)
+
         loader_name = ''
         try:
             last_algorithm = outWs.getHistory().lastAlgorithm()
@@ -186,7 +191,7 @@ class LoadRun(object):
             self._loadSampleDetails(workspace)
 
         if self._period != self.UNSET_PERIOD and isinstance(outWs, WorkspaceGroup):
-            outWs = mtd[self._leaveSinglePeriod(outWs.name(), self._period)]
+            outWs = mtd[self._leaveSinglePeriod(outWs.name(), self._period, appendix)]
 
         self.periods_in_file = self._find_workspace_num_periods(workspace)
 
@@ -312,7 +317,7 @@ class LoadRun(object):
 
         return
 
-    def _leaveSinglePeriod(self, workspace, period):
+    def _leaveSinglePeriod(self, workspace, period, appendix):
         groupW = mtd[workspace]
         if not isinstance(groupW, WorkspaceGroup):
             logger.warning("Invalid request for getting single period in a non group workspace")
@@ -321,14 +326,30 @@ class LoadRun(object):
             raise ValueError('Period number ' + str(period) + ' doesn\'t exist in workspace ' + groupW.getName())
         ws_name = groupW[period].name()
 
+        # If we are dealing with event data, then we also want to extract and rename the according monitor data set
+        monitor_name = ""
+        if isEventWorkspace(groupW[period]):
+            # Check if the monitor ws exists and extract it
+            expected_mon_name = ws_name + appendix
+            expected_mon_group_name = groupW.name() + appendix
+            if mtd.doesExist(expected_mon_name):
+                monitor_name = expected_mon_name
+            if mtd.doesExist(expected_mon_group_name):
+                group_mon_ws = mtd[expected_mon_group_name]
+                group_mon_ws.remove(expected_mon_name)
+                DeleteWorkspace(expected_mon_group_name)
+
         # remove this workspace from the group
         groupW.remove(ws_name)
         # remove the entire group
         DeleteWorkspace(groupW)
 
         new_name = self._get_workspace_name(period)
+        new_mon_name = new_name + appendix
         if new_name != ws_name:
             RenameWorkspace(ws_name, OutputWorkspace=new_name)
+        if monitor_name != "" and new_mon_name != monitor_name:
+            RenameWorkspace(monitor_name, OutputWorkspace=new_mon_name)
         return new_name
 
     def _extract_run_details(self, run_string):
@@ -1163,7 +1184,7 @@ class NormalizeToMonitor(ReductionStep):
 
         sanslog.notice('Normalizing to monitor ' + str(normalization_spectrum))
 
-        self.output_wksp = str(workspace) + '_incident_monitor'
+        self.output_wksp = str(workspace) + INCIDENT_MONITOR_TAG
         mon = reducer.get_sample().get_monitor(normalization_spectrum-1)
         if reducer.event2hist.scale != 1:
             mon *= reducer.event2hist.scale
@@ -1214,6 +1235,9 @@ class TransmissionCalc(ReductionStep):
 
     DEFAULT_FIT = 'LOGARITHMIC'
 
+    # The y unit label for transmission data
+    YUNITLABEL_TRANSMISSION_RATIO = "Transmission"
+
     def __init__(self, loader=None):
         super(TransmissionCalc, self).__init__()
         #set these variables to None, which means they haven't been set and defaults will be set further down
@@ -1221,8 +1245,20 @@ class TransmissionCalc(ReductionStep):
         self.fit_settings = dict()
         for prop in self.fit_props:
             self.fit_settings['both::'+prop] = None
-        # this contains the spectrum number of the monitor that comes after the sample from which the transmission calculation is done
-        self._trans_spec = None
+        
+        # CalculateTransmission can be given either a monitor detetor ID or a set of detector
+        # ID's corresponding to a ROI (region of interest).  The monitor or ROI will specify
+        # the *transmission* (not the incident beam).  A monitor is the standard functionality,
+        # a ROI is needed for the new "beam stop out" functionality.
+        self.trans_mon = None
+        self.trans_roi = []
+
+        # Contributions to the region of interest. Note that radius, roi_files add to the region
+        # of interest, while mask_files are taboo for the region of interest
+        self.radius = None
+        self.roi_files = []
+        self.mask_files =[]
+
         # use InterpolatingRebin
         self.interpolate = None
         # a custom transmission workspace, if we have this there is much less to do
@@ -1302,7 +1338,7 @@ class TransmissionCalc(ReductionStep):
         """ Returns true if the can or sample was given and false if just both was used"""
         return self.fit_settings.has_key('sample::fit_method') or self.fit_settings.has_key('can::fit_method')
 
-    def setup_wksp(self, inputWS, inst, wavbining, pre_monitor, post_monitor):
+    def setup_wksp(self, inputWS, inst, wavbining, trans_det_ids):
         """
             Creates a new workspace removing any background from the monitor spectra, converting units
             and re-bins. If the instrument is LOQ it zeros values between the x-values 19900 and 20500
@@ -1310,30 +1346,55 @@ class TransmissionCalc(ReductionStep):
             @param inputWS: contains the monitor spectra
             @param inst: the selected instrument
             @param wavbinning: the re-bin string to use after convert units
-            @param pre_monitor: DETECTOR ID of the incident monitor
-            @param post_monitor: DETECTOR ID of the transmission monitor
+            @param trans_det_ids: detector IDs corresponding to the incident monitor and either:
+                                  a) the transmission monitor, or
+                                  b) a list of detector that make up a region of interest
+                                  Together these make up all spectra needed to carry out the
+                                  CalculateTransmission algorithm.
             @return the name of the workspace created
         """
         #the workspace is forked, below is its new name
         tmpWS = inputWS + '_tmp'
 
-        #exclude unused spectra because the sometimes empty/sometimes not spectra can cause errors with interpolate
-        spectrum1 = min(pre_monitor, post_monitor)
-        spectrum2 = max(pre_monitor, post_monitor)
-        CropWorkspace(InputWorkspace=inputWS,OutputWorkspace= tmpWS,\
-            StartWorkspaceIndex=self._get_index(spectrum1),\
-            EndWorkspaceIndex=self._get_index(spectrum2))
+        # A previous implementation of this code had a comment which suggested
+        # that we have to exclude unused spectra as the interpolation runs into
+        # problems if we don't.
+        extract_spectra(mtd[inputWS], trans_det_ids, tmpWS)
 
         if inst.name() == 'LOQ':
             RemoveBins(InputWorkspace=tmpWS,OutputWorkspace= tmpWS,XMin= self.loq_removePromptPeakMin,XMax= self.loq_removePromptPeakMax,
                        Interpolation='Linear')
 
-        for spectra_number in [pre_monitor, post_monitor]:
-            back_start, back_end = inst.get_TOFs(spectra_number)
-            if back_start and back_end:
-                index = spectra_number - spectrum1
-                CalculateFlatBackground(InputWorkspace=tmpWS,OutputWorkspace= tmpWS, StartX=back_start, EndX=back_end,\
-                               WorkspaceIndexList=index, Mode='Mean')
+        tmp = mtd[tmpWS]
+
+        # We perform a FlatBackground correction. We do this in two parts.
+        # First we find the workspace indices which correspond to monitors
+        # and perform the correction on these indicies.
+        # Second we perform the correction on all indices which are not 
+        # monitors
+        for ws_index in range(tmp.getNumberHistograms()):
+            if tmp.getDetector(ws_index).isMonitor():
+                spectrum_number = tmp.getSpectrum(ws_index).getSpectrumNo()
+                back_start_mon, back_end_mon = inst.get_TOFs(spectrum_number)
+                if back_start_mon and back_end_mon:
+                    CalculateFlatBackground(
+                        InputWorkspace=tmpWS,
+                        OutputWorkspace= tmpWS,
+                        StartX=back_start_mon,
+                        EndX=back_end_mon,
+                        WorkspaceIndexList=ws_index,
+                        Mode='Mean')
+
+        back_start_roi, back_end_roi = inst.get_TOFs_for_ROI()
+        if back_start_roi and back_end_roi:
+            CalculateFlatBackground(
+                InputWorkspace=tmpWS,
+                OutputWorkspace= tmpWS,
+                StartX=back_start_roi,
+                EndX=back_end_roi,
+                WorkspaceIndexList=ws_index,
+                Mode='Mean',
+                SkipMonitors =True)
 
         ConvertUnits(InputWorkspace=tmpWS,OutputWorkspace= tmpWS,Target="Wavelength")
 
@@ -1353,6 +1414,47 @@ class TransmissionCalc(ReductionStep):
         """
         return number - 1
 
+    def calculate_region_of_interest(self, reducer, workspace):
+        """
+        Calculate the various contributions to the "region of interest", used in the
+        transmission calculation.
+
+        The region of interest can be made up of a circle of detectors (with a given radius)
+        around the beam centre, and/or one or more mask files, and/or the main detector bank.
+        Note that the mask files wont actually be used for masking, we're just piggy-backing
+        on the functionality that they provide. Note that in the case of a radius, we have
+        to ensure that we do not use a workspace which already has masked detectors, since
+        they would contribute to the ROI.
+        """
+        if self.radius:
+            # Mask out a cylinder with the given radius in a copy of the workspace.
+            # The centre position of the Cylinder does not require a shift, as all
+            # components have been shifted already, when the workspaces were loaded
+            CloneWorkspace(InputWorkspace=workspace, OutputWorkspace="__temp")
+            centre_x = 0.0
+            centre_y = 0.0
+            MaskWithCylinder("__temp", self.radius, centre_x, centre_y, "")
+
+            # Extract the masked detector ID's and then clean up.
+            self.trans_roi += get_masked_det_ids(mtd["__temp"])
+            DeleteWorkspace(Workspace="__temp")
+
+        if self.roi_files:
+            idf_path = reducer.instrument.idf_path
+            for roi_file in self.roi_files:
+                self.trans_roi += get_masked_det_ids_from_mask_file(roi_file, idf_path)
+
+        masked_ids =[]
+        if self.mask_files:
+            idf_path = reducer.instrument.idf_path
+            for mask_file in self.mask_files:
+                masked_ids += get_masked_det_ids_from_mask_file(mask_file, idf_path)
+
+        # Detector ids which are not allowed and specified by "masked_ids" need to
+        # be removed from the trans_roi list
+        # Remove duplicates and sort.
+        self.trans_roi = sorted(set(self.trans_roi)-set(masked_ids))
+
     def execute(self, reducer, workspace):
         """
             Reads in the different settings, without affecting self. Calculates
@@ -1360,6 +1462,7 @@ class TransmissionCalc(ReductionStep):
             through the sample
         """
         self.output_wksp = None
+
         #look for run files that contain transmission data
         test1, test2 = self._get_run_wksps(reducer)
         if test1 or test2:
@@ -1392,10 +1495,14 @@ class TransmissionCalc(ReductionStep):
         trans_raw, direct_raw = self._get_run_wksps(reducer)
 
         if not trans_raw:
-            raise RuntimeError('Attempting transmission correction with no specified transmission %s file' % self.CAN_SAMPLE_SUFFIXES[reducer.is_can()])
+            raise RuntimeError('Attempting transmission correction with no specified transmission %s file'
+                               % self.CAN_SAMPLE_SUFFIXES[reducer.is_can()])
         if not direct_raw:
             raise RuntimeError('Attempting transmission correction with no direct file')
 
+        # Calculate the ROI. We use the trans_raw workspace as it does not contain any previous mask.
+        self.calculate_region_of_interest(reducer, trans_raw)
+
         select = 'can::' if reducer.is_can() else 'direct::'
 
         # get variables for this selector
@@ -1403,13 +1510,20 @@ class TransmissionCalc(ReductionStep):
         for prop in self.fit_props:
             sel_settings[prop] = self.fit_settings[select+prop] if self.fit_settings.has_key(select+prop) else self.fit_settings['both::'+prop]
 
-        if self._trans_spec:
-            post_sample = self._trans_spec
-        else:
-            post_sample = reducer.instrument.default_trans_spec
-
         pre_sample = reducer.instrument.incid_mon_4_trans_calc
 
+        # Here we set the det ids. The first entry is the incident monitor. There after we can either have
+        # 1. The transmission monitor or
+        # 2. A ROI (which are not monitors!) or
+        # 3. trans_specs (also monitors)
+        trans_det_ids = [pre_sample]
+        if self.trans_mon:
+            trans_det_ids.append(self.trans_mon)
+        elif self.trans_roi:
+            trans_det_ids += self.trans_roi
+        else:
+            trans_det_ids.append(reducer.instrument.default_trans_spec)
+
         use_instrum_default_range = reducer.full_trans_wav
 
         #there are a number of settings and defaults that determine the wavelength to use, go through each in order of increasing precedence
@@ -1432,9 +1546,21 @@ class TransmissionCalc(ReductionStep):
 
         #set up the input workspaces
         trans_tmp_out = self.setup_wksp(trans_raw, reducer.instrument,\
-            wavbin, pre_sample, post_sample)
+            wavbin, trans_det_ids)
         direct_tmp_out = self.setup_wksp(direct_raw, reducer.instrument,\
-            wavbin, pre_sample, post_sample)
+            wavbin, trans_det_ids)
+
+        # Where a ROI has been specified, it is useful to keep a copy of the
+        # summed ROI spectra around for the scientists to look at, so that they
+        # may inspect it for any dubious looking spikes, etc.
+        if self.trans_roi:
+            EXCLUDE_INIT_BEAM = 1
+            SumSpectra(InputWorkspace=trans_tmp_out,
+                       OutputWorkspace=trans_raw + "_num",
+                       StartWorkspaceIndex=EXCLUDE_INIT_BEAM)
+            SumSpectra(InputWorkspace=direct_tmp_out,
+                       OutputWorkspace=direct_raw + "_den",
+                       StartWorkspaceIndex=EXCLUDE_INIT_BEAM)
 
         fittedtransws, unfittedtransws = self.get_wksp_names(\
                     trans_raw, translambda_min, translambda_max, reducer)
@@ -1448,11 +1574,33 @@ class TransmissionCalc(ReductionStep):
         else:
             options['FitMethod'] = self.TRANS_FIT_OPTIONS[self.DEFAULT_FIT]
 
-        CalculateTransmission(SampleRunWorkspace=trans_tmp_out, DirectRunWorkspace=direct_tmp_out,
-                              OutputWorkspace=fittedtransws, IncidentBeamMonitor=pre_sample,
-                              TransmissionMonitor=post_sample,
-                              RebinParams=reducer.to_wavelen.get_rebin(),
-                              OutputUnfittedData=True, **options) # options FitMethod, PolynomialOrder if present
+        calc_trans_alg = AlgorithmManager.create("CalculateTransmission")
+        calc_trans_alg.initialize()
+        calc_trans_alg.setProperty("SampleRunWorkspace", trans_tmp_out)
+        calc_trans_alg.setProperty("DirectRunWorkspace", direct_tmp_out)
+        calc_trans_alg.setProperty("OutputWorkspace", fittedtransws)
+        calc_trans_alg.setProperty("IncidentBeamMonitor", pre_sample)
+        calc_trans_alg.setProperty("RebinParams", reducer.to_wavelen.get_rebin())
+        calc_trans_alg.setProperty("OutputUnfittedData", True)
+        for name, value in options.items():
+            calc_trans_alg.setProperty(name, value)
+
+        if self.trans_mon:
+            calc_trans_alg.setProperty("TransmissionMonitor", self.trans_mon)
+        elif self.trans_roi:
+            calc_trans_alg.setProperty("TransmissionROI", self.trans_roi)
+        else:
+            calc_trans_alg.setProperty("TransmissionMonitor", reducer.instrument.default_trans_spec)
+
+        calc_trans_alg.execute()
+
+        # Set the y axis label correctly for the transmission ratio data
+        fitted_trans_ws = mtd[fittedtransws]
+        unfitted_trans_ws = mtd[unfittedtransws]
+        if fitted_trans_ws:
+            fitted_trans_ws.setYUnitLabel(self.YUNITLABEL_TRANSMISSION_RATIO)
+        if unfitted_trans_ws:
+            unfitted_trans_ws.setYUnitLabel(self.YUNITLABEL_TRANSMISSION_RATIO)
 
         # Remove temporaries
         files2delete = [trans_tmp_out]
@@ -1470,18 +1618,6 @@ class TransmissionCalc(ReductionStep):
 
         return result
 
-    def get_trans_spec(self):
-        return self._trans_spec
-
-    def set_trans_spec(self, value):
-        """
-            Allows setting the which transmission monitor that is passed the sample
-            if the new value is an integer
-        """
-        self._trans_spec = int(value)
-
-    trans_spec = property(get_trans_spec, set_trans_spec, None, None)
-
     def get_wksp_names(self, raw_name, lambda_min, lambda_max, reducer):
         fitted_name = raw_name.split('_')[0] + '_trans_'
         fitted_name += self.CAN_SAMPLE_SUFFIXES[reducer.is_can()]
@@ -1779,10 +1915,32 @@ class ConvertToQISIS(ReductionStep):
 
         try:
             if self._Q_alg == 'Q1D':
-                Q1D(DetBankWorkspace=workspace,OutputWorkspace= workspace, OutputBinning=self.binning, WavelengthAdj=wave_adj, PixelAdj=pixel_adj, AccountForGravity=self._use_gravity, RadiusCut=self.r_cut*1000.0, WaveCut=self.w_cut, OutputParts=self.outputParts, WavePixelAdj = wavepixeladj, ExtraLength=self._grav_extra_length)
+                Q1D(DetBankWorkspace=workspace,
+                    OutputWorkspace= workspace,
+                    OutputBinning=self.binning,
+                    WavelengthAdj=wave_adj,
+                    PixelAdj=pixel_adj,
+                    AccountForGravity=self._use_gravity,
+                    RadiusCut=self.r_cut*1000.0,
+                    WaveCut=self.w_cut,
+                    OutputParts=self.outputParts,
+                    WavePixelAdj = wavepixeladj,
+                    ExtraLength=self._grav_extra_length)
             elif self._Q_alg == 'Qxy':
-                Qxy(InputWorkspace=workspace,OutputWorkspace= workspace,MaxQxy= reducer.QXY2,DeltaQ= reducer.DQXY, WavelengthAdj=wave_adj, PixelAdj=pixel_adj, AccountForGravity=self._use_gravity, RadiusCut=self.r_cut*1000.0, WaveCut=self.w_cut, OutputParts=self.outputParts, ExtraLength=self._grav_extra_length)
-                ReplaceSpecialValues(InputWorkspace=workspace,OutputWorkspace= workspace, NaNValue="0", InfinityValue="0")
+                Qxy(InputWorkspace=workspace,
+                    OutputWorkspace= workspace,
+                    MaxQxy= reducer.QXY2,
+                    DeltaQ= reducer.DQXY,
+                    WavelengthAdj=wave_adj,
+                    PixelAdj=pixel_adj,
+                    AccountForGravity=self._use_gravity,
+                    RadiusCut=self.r_cut*1000.0,
+                    WaveCut=self.w_cut,
+                    OutputParts=self.outputParts,
+                    ExtraLength=self._grav_extra_length)
+                ReplaceSpecialValues(InputWorkspace=workspace,
+                                     OutputWorkspace= workspace,
+                                     NaNValue="0", InfinityValue="0")
             else:
                 raise NotImplementedError('The type of Q reduction has not been set, e.g. 1D or 2D')
         except:
@@ -2089,9 +2247,14 @@ class UserFile(ReductionStep):
                 self._readDetectorCorrections(upper_line[8:], reducer)
             elif det_specif.startswith('RESCALE') or det_specif.startswith('SHIFT'):
                 self._readFrontRescaleShiftSetup(det_specif, reducer)
-            else:
-                # for /DET/FRONT and /DET/REAR commands
+            elif any(it == det_specif.strip() for it in ['FRONT','REAR','BOTH','MERGE','MERGED']):
+                # for /DET/FRONT, /DET/REAR, /DET/BOTH, /DET/MERGE and /DET/MERGED commands
+                det_specif = det_specif.strip()
+                if det_specif == 'MERGE':
+                    det_specif = 'MERGED'
                 reducer.instrument.setDetector(det_specif)
+            else:
+                _issueWarning('Incorrectly formatted DET line, %s, line ignored' % upper_line)
 
         # There are two entries for Gravity: 1. ON/OFF (TRUE/FALSE)
         #                                    2. LEXTRA=xx.xx
@@ -2462,8 +2625,8 @@ class UserFile(ReductionStep):
             @return any errors encountered or ''
         """
         #a list of the key words this function can read and the functions it calls in response
-        keys = ['MON/TIMES', 'M']
-        funcs = [self._read_default_back_region, self._read_back_region]
+        keys = ['MON/TIMES', 'M', 'TRANS']
+        funcs = [self._read_default_back_region, self._read_back_region, self._read_back_trans_roi]
         self._process(keys, funcs, arguments, reducer)
 
     def _read_back_region(self, arguments, reducer):
@@ -2517,10 +2680,45 @@ class UserFile(ReductionStep):
             reducer.inst.set_TOFs(None, None)
             return 'Only monitor specific backgrounds will be applied, no default is set due to incorrectly formatted background line:'
 
+    def _read_back_trans_roi(self, arguments, reducer):
+        """
+            Parses a line of the form BACK/TRANS to set the background for region of interest (ROI) data
+            @param arguments: the contents of the line after the first keyword
+            @param reducer: the object that contains all the settings
+            @return any errors encountered or ''
+        """
+        try:
+            # Get everything after TRANS. This should be two numbers essentially (start and end time)
+            arguments.strip()
+            times = arguments.split()
+            times = [t.strip() for t in times]
+            if len(times) == 2:
+                reducer.inst.set_TOFs_for_ROI(int(times[0]), int(times[1]))
+                return ''
+            raise ValueError('Expected two times for BACK/TRANS')
+        except Exception, reason:
+            # return a description of any problems and then continue to read the next line
+            return str(reason) + ' on line: '
+
     def _read_trans_line(self, arguments, reducer):
+        try:
+            if arguments.startswith("RADIUS"):
+                # Convert the input (mm) into the correct units (m)
+                reducer.transmission_calculator.radius = float(arguments.split("=")[1])/1000.0
+                return
+            elif arguments.startswith("ROI"):
+                reducer.transmission_calculator.roi_files += [arguments.split("=")[1]]
+                return
+            elif arguments.startswith("MASK"):
+                reducer.transmission_calculator.mask_files += [arguments.split("=")[1]]
+                return
+        except Exception as e:
+            return "Problem parsing TRANS line \"" + arguments + "\":\n" + str(e)
+
         #a list of the key words this function can read and the functions it calls in response
         keys = ['TRANSPEC', 'SAMPLEWS', 'CANWS']
-        funcs = [self._read_transpec, self._read_trans_samplews, self._read_trans_canws]
+        funcs = [
+            self._read_transpec, self._read_trans_samplews, self._read_trans_canws]
         return self._process(keys, funcs, arguments, reducer)
 
     def _process(self, keys, funcs, params, reducer):
@@ -2551,7 +2749,7 @@ class UserFile(ReductionStep):
         if len(arguments) == 1:
             raise RuntimeError('An "=" is required after TRANSPEC')
 
-        reducer.transmission_calculator.trans_spec = int(arguments[1])
+        reducer.transmission_calculator.trans_mon = int(arguments[1])
 
     def _read_trans_samplews(self, arguments, reducer):
         if arguments.find('=') > -1:
diff --git a/Code/Mantid/scripts/TofConverter/converter.ui b/Code/Mantid/scripts/TofConverter/converter.ui
index 0ca0552301ab313a66d5471bba795de27bce9c7e..a3ce143faf75158b0c5699389174e9c76cf37a90 100644
--- a/Code/Mantid/scripts/TofConverter/converter.ui
+++ b/Code/Mantid/scripts/TofConverter/converter.ui
@@ -6,246 +6,405 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>456</width>
-    <height>312</height>
+    <width>410</width>
+    <height>422</height>
    </rect>
   </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>410</width>
+    <height>422</height>
+   </size>
+  </property>
+  <property name="maximumSize">
+   <size>
+    <width>410</width>
+    <height>422</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>TofConverter</string>
   </property>
+  <property name="animated">
+   <bool>true</bool>
+  </property>
+  <property name="documentMode">
+   <bool>true</bool>
+  </property>
   <widget class="QWidget" name="centralwidget">
-   <widget class="QGroupBox" name="groupBox">
-    <property name="geometry">
-     <rect>
-      <x>10</x>
-      <y>10</y>
-      <width>441</width>
-      <height>261</height>
-     </rect>
-    </property>
-    <property name="title">
-     <string>CONVERTER</string>
-    </property>
-    <widget class="QComboBox" name="inputUnits">
-     <property name="geometry">
-      <rect>
-       <x>230</x>
-       <y>20</y>
-       <width>191</width>
-       <height>31</height>
-      </rect>
-     </property>
-     <item>
-      <property name="text">
-       <string>Energy  (meV)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Wavelength (Angstroms)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Nu (THz)</string>
+   <layout class="QGridLayout" name="gridLayout">
+    <item row="0" column="0">
+     <widget class="QGroupBox" name="groupBox">
+      <property name="minimumSize">
+       <size>
+        <width>401</width>
+        <height>422</height>
+       </size>
       </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Velocity (m/s)</string>
+      <property name="maximumSize">
+       <size>
+        <width>401</width>
+        <height>422</height>
+       </size>
       </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Momentum ( k Angstroms^-1)</string>
+      <property name="title">
+       <string/>
       </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Temperature (K)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Energy (cm^-1)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Momentum transfer (Q Angstroms^-1)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>d-Spacing (Angstroms)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Time of flight (microseconds)</string>
-      </property>
-     </item>
-    </widget>
-    <widget class="QGroupBox" name="groupBox_5">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>120</y>
-       <width>211</width>
-       <height>61</height>
-      </rect>
-     </property>
-     <property name="title">
-      <string>Total flight path (meters)</string>
-     </property>
-     <widget class="QLineEdit" name="lineEdit_3">
-      <property name="geometry">
-       <rect>
-        <x>10</x>
-        <y>20</y>
-        <width>191</width>
-        <height>31</height>
-       </rect>
-      </property>
-     </widget>
-    </widget>
-    <widget class="QGroupBox" name="groupBox_4">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>60</y>
-       <width>211</width>
-       <height>61</height>
-      </rect>
-     </property>
-     <property name="title">
-      <string>Scattering Angle (degrees)</string>
-     </property>
-     <widget class="QLineEdit" name="lineEdit_4">
-      <property name="geometry">
-       <rect>
-        <x>10</x>
-        <y>20</y>
-        <width>191</width>
-        <height>31</height>
-       </rect>
-      </property>
-     </widget>
-    </widget>
-    <widget class="QPushButton" name="convert">
-     <property name="geometry">
-      <rect>
-       <x>230</x>
-       <y>60</y>
-       <width>191</width>
-       <height>121</height>
-      </rect>
-     </property>
-     <property name="text">
-      <string>CONVERT</string>
-     </property>
-    </widget>
-    <widget class="QGroupBox" name="groupBox_2">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>190</y>
-       <width>421</width>
-       <height>61</height>
-      </rect>
-     </property>
-     <property name="title">
-      <string>OUTPUT</string>
-     </property>
-     <widget class="QLineEdit" name="lineEdit_2">
-      <property name="geometry">
-       <rect>
-        <x>10</x>
-        <y>20</y>
-        <width>201</width>
-        <height>31</height>
-       </rect>
-      </property>
-     </widget>
-     <widget class="QComboBox" name="outputUnits">
-      <property name="geometry">
-       <rect>
-        <x>220</x>
-        <y>20</y>
-        <width>191</width>
-        <height>31</height>
-       </rect>
-      </property>
-      <item>
+      <widget class="QComboBox" name="inputUnits">
+       <property name="geometry">
+        <rect>
+         <x>200</x>
+         <y>50</y>
+         <width>181</width>
+         <height>21</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>A list of the units for the input value</string>
+       </property>
+       <property name="whatsThis">
+        <string>Drop down menu of the units for the input value</string>
+       </property>
+       <item>
+        <property name="text">
+         <string>Energy (meV)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Wavelength (Angstroms)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Nu (THz)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Velocity (m/s)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Momentum (k Angstroms^-1)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Temperature (K)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Energy (cm^-1)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Momentum transfer (Q Angstroms^-1)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>d-spacing (Angstroms)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Time of flight (microseconds)</string>
+        </property>
+       </item>
+      </widget>
+      <widget class="QLineEdit" name="InputVal">
+       <property name="geometry">
+        <rect>
+         <x>10</x>
+         <y>50</y>
+         <width>141</width>
+         <height>21</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>The value that you wish to convert</string>
+       </property>
+       <property name="whatsThis">
+        <string>An input box for entering the value that you wish to convert</string>
+       </property>
+      </widget>
+      <widget class="QLabel" name="label">
+       <property name="geometry">
+        <rect>
+         <x>10</x>
+         <y>30</y>
+         <width>91</width>
+         <height>20</height>
+        </rect>
+       </property>
+       <property name="text">
+        <string>Input value:</string>
+       </property>
+      </widget>
+      <widget class="QLabel" name="label_2">
+       <property name="geometry">
+        <rect>
+         <x>170</x>
+         <y>50</y>
+         <width>16</width>
+         <height>20</height>
+        </rect>
+       </property>
+       <property name="font">
+        <font>
+         <pointsize>10</pointsize>
+        </font>
+       </property>
        <property name="text">
-        <string>Energy  (meV)</string>
+        <string>in</string>
+       </property>
+      </widget>
+      <widget class="QLabel" name="label_3">
+       <property name="geometry">
+        <rect>
+         <x>200</x>
+         <y>30</y>
+         <width>46</width>
+         <height>13</height>
+        </rect>
        </property>
-      </item>
-      <item>
        <property name="text">
-        <string>Wavelength (Angstroms)</string>
+        <string>Units:</string>
+       </property>
+      </widget>
+      <widget class="QLineEdit" name="scatteringAngleInput">
+       <property name="geometry">
+        <rect>
+         <x>80</x>
+         <y>110</y>
+         <width>201</width>
+         <height>21</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>The angle through which a scattered particle or beam is deflected in degrees</string>
+       </property>
+       <property name="whatsThis">
+        <string>An input box for entering the scattering angle in Degrees (if necessary)</string>
+       </property>
+       <property name="accessibleName">
+        <string/>
        </property>
-      </item>
-      <item>
        <property name="text">
-        <string>Nu (THz)</string>
+        <string/>
+       </property>
+      </widget>
+      <widget class="QComboBox" name="outputUnits">
+       <property name="geometry">
+        <rect>
+         <x>80</x>
+         <y>220</y>
+         <width>201</width>
+         <height>21</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>The units that you wish to convert your input value to.</string>
+       </property>
+       <property name="whatsThis">
+        <string>Drop down menu of the units for the input value to be converted to</string>
+       </property>
+       <item>
+        <property name="text">
+         <string>Energy (meV)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Wavelength (Angstroms)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Nu (Thz)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Velocity (m/s)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Momentum (k Angstroms^-1)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Temperature (K)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Energy (cm^-1)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Momentum transfer (Q Angstroms^-1)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>d-spacing (Angstroms)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Time of flight (microseconds)</string>
+        </property>
+       </item>
+      </widget>
+      <widget class="QLabel" name="label_4">
+       <property name="geometry">
+        <rect>
+         <x>80</x>
+         <y>200</y>
+         <width>71</width>
+         <height>16</height>
+        </rect>
        </property>
-      </item>
-      <item>
        <property name="text">
-        <string>Velocity (m/s)</string>
+        <string>Convert To:</string>
+       </property>
+      </widget>
+      <widget class="QPushButton" name="convert">
+       <property name="geometry">
+        <rect>
+         <x>130</x>
+         <y>260</y>
+         <width>111</width>
+         <height>31</height>
+        </rect>
+       </property>
+       <property name="whatsThis">
+        <string>A button to produce the converted value</string>
        </property>
-      </item>
-      <item>
        <property name="text">
-        <string>Momentum ( k Angstroms^-1)</string>
+        <string>Convert</string>
+       </property>
+      </widget>
+      <widget class="QLineEdit" name="convertedVal">
+       <property name="geometry">
+        <rect>
+         <x>80</x>
+         <y>320</y>
+         <width>201</width>
+         <height>21</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>The converted value produced</string>
+       </property>
+       <property name="whatsThis">
+        <string>A output box for displaying the converted value</string>
+       </property>
+      </widget>
+      <widget class="QLabel" name="label_6">
+       <property name="geometry">
+        <rect>
+         <x>80</x>
+         <y>90</y>
+         <width>201</width>
+         <height>16</height>
+        </rect>
        </property>
-      </item>
-      <item>
        <property name="text">
-        <string>Temperature (K)</string>
+        <string>Scattering Angle (Degrees):</string>
+       </property>
+      </widget>
+      <widget class="QLineEdit" name="totalFlightPathInput">
+       <property name="geometry">
+        <rect>
+         <x>80</x>
+         <y>170</y>
+         <width>201</width>
+         <height>21</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>The distance travelled by the object measured in meters</string>
+       </property>
+       <property name="statusTip">
+        <string/>
+       </property>
+       <property name="whatsThis">
+        <string>An input box for entering the total flight path in meters (if necessary)</string>
        </property>
-      </item>
-      <item>
        <property name="text">
-        <string>Energy (cm^-1)</string>
+        <string/>
+       </property>
+      </widget>
+      <widget class="QLabel" name="label_5">
+       <property name="geometry">
+        <rect>
+         <x>80</x>
+         <y>150</y>
+         <width>201</width>
+         <height>16</height>
+        </rect>
        </property>
-      </item>
-      <item>
        <property name="text">
-        <string>Momentum transfer (Q Angstroms^-1)</string>
+        <string>Total flight path (Meters):</string>
+       </property>
+      </widget>
+      <widget class="QPushButton" name="helpButton">
+       <property name="geometry">
+        <rect>
+         <x>10</x>
+         <y>340</y>
+         <width>31</width>
+         <height>23</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>Help</string>
+       </property>
+       <property name="whatsThis">
+        <string>Help button</string>
        </property>
-      </item>
-      <item>
        <property name="text">
-        <string>d-Spacing (Angstroms)</string>
+        <string>?</string>
+       </property>
+      </widget>
+      <widget class="QLabel" name="label_7">
+       <property name="geometry">
+        <rect>
+         <x>80</x>
+         <y>300</y>
+         <width>201</width>
+         <height>16</height>
+        </rect>
        </property>
-      </item>
-      <item>
        <property name="text">
-        <string>Time of flight (microseconds)</string>
+        <string>Converted value:</string>
        </property>
-      </item>
+      </widget>
      </widget>
-    </widget>
-    <widget class="QLineEdit" name="InputVal">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>19</y>
-       <width>211</width>
-       <height>31</height>
-      </rect>
-     </property>
-    </widget>
-   </widget>
+    </item>
+   </layout>
   </widget>
   <widget class="QMenuBar" name="menubar">
    <property name="geometry">
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>456</width>
+     <width>410</width>
      <height>21</height>
     </rect>
    </property>
diff --git a/Code/Mantid/scripts/TofConverter/converterGUI.py b/Code/Mantid/scripts/TofConverter/converterGUI.py
index f18c78d8e8a39f5b91359ecd4bef1cb2b8cc51fe..bbf29a108099184da048e5e997eab4a5f0c1ff45 100644
--- a/Code/Mantid/scripts/TofConverter/converterGUI.py
+++ b/Code/Mantid/scripts/TofConverter/converterGUI.py
@@ -1,23 +1,23 @@
 #pylint: disable=invalid-name
-from TofConverter.ui_converter import Ui_MainWindow #import line for the UI python class
+from ui_converter import Ui_MainWindow #import line for the UI python class
 from PyQt4 import QtCore, QtGui
 import math
 
 class MainWindow(QtGui.QMainWindow):
-    needsThetaInputList = ['Momentum transfer (Q Angstroms^-1)', 'd-Spacing (Angstroms)']
-    needsThetaOutputList = ['Momentum transfer (Q Angstroms^-1)', 'd-Spacing (Angstroms)']
+    needsThetaInputList = ['Momentum transfer (Q Angstroms^-1)', 'd-spacing (Angstroms)']
+    needsThetaOutputList = ['Momentum transfer (Q Angstroms^-1)', 'd-spacing (Angstroms)']
     needsFlightPathInputList = ['Time of flight (microseconds)']
     needsFlightPathOutputList = ['Time of flight (microseconds)']
 
     def thetaEnable (self, enabled):
-        self.ui.lineEdit_4.setEnabled(enabled)
+        self.ui.scatteringAngleInput.setEnabled(enabled)
         if  enabled == False:
-            self.ui.lineEdit_4.clear()
+            self.ui.scatteringAngleInput.clear()
 
     def flightPathEnable (self, enabled):
-        self.ui.lineEdit_3.setEnabled(enabled)
+        self.ui.totalFlightPathInput.setEnabled(enabled)
         if  enabled == False:
-            self.ui.lineEdit_3.clear()
+            self.ui.totalFlightPathInput.clear()
 
     def setInstrumentInputs (self):
         #disable both
@@ -47,9 +47,10 @@ class MainWindow(QtGui.QMainWindow):
         self.ui = Ui_MainWindow()
         self.ui.setupUi(self)
         self.ui.InputVal.setValidator(QtGui.QDoubleValidator(self.ui.InputVal))
-        self.ui.lineEdit_3.setValidator(QtGui.QDoubleValidator(self.ui.lineEdit_3))
-        self.ui.lineEdit_4.setValidator(QtGui.QDoubleValidator(self.ui.lineEdit_4))
+        self.ui.totalFlightPathInput.setValidator(QtGui.QDoubleValidator(self.ui.totalFlightPathInput))
+        self.ui.scatteringAngleInput.setValidator(QtGui.QDoubleValidator(self.ui.scatteringAngleInput))
         QtCore.QObject.connect(self.ui.convert, QtCore.SIGNAL("clicked()"), self.convert )
+        QtCore.QObject.connect(self.ui.helpButton, QtCore.SIGNAL("clicked()"), self.helpClicked)
         QtCore.QObject.connect(self.ui.inputUnits, QtCore.SIGNAL("currentIndexChanged(QString)"), self.setInstrumentInputs )
         QtCore.QObject.connect(self.ui.outputUnits, QtCore.SIGNAL("currentIndexChanged(QString)"), self.setInstrumentInputs )
         self.setInstrumentInputs()
@@ -60,49 +61,53 @@ class MainWindow(QtGui.QMainWindow):
         self.stage1output = 0.0
         self.stage2output = 0.0
 
+    def helpClicked(self):
+        # Temporary import while method is in the wrong place
+        from pymantidplot.proxies import showCustomInterfaceHelp
+        showCustomInterfaceHelp("TOF_Converter") #need to find a way to import this module
     def convert(self):
         if self.ui.InputVal.text() == "":
             return
         try:
             inOption = self.ui.inputUnits.currentText()
             outOption = self.ui.outputUnits.currentText()
-            if self.ui.lineEdit_3.text() !='':
-                self.flightpath = float(self.ui.lineEdit_3.text())
+            if self.ui.totalFlightPathInput.text() !='':
+                self.flightpath = float(self.ui.totalFlightPathInput.text())
             else:
                 self.flightpath = -1.0
-            if self.ui.lineEdit_4.text() !='':
-                self.Theta = float(self.ui.lineEdit_4.text()) * math.pi / 360.0
+            if self.ui.scatteringAngleInput.text() !='':
+                self.Theta = float(self.ui.scatteringAngleInput.text()) * math.pi / 360.0
             self.stage1output = self.input2energy(float(self.ui.InputVal.text()), inOption)
             self.stage2output = self.energy2output(self.stage1output,outOption)
 
-            self.ui.lineEdit_2.clear()
-            self.ui.lineEdit_2.insert(str(self.stage2output))
-        except Exception, e:
+            self.ui.convertedVal.clear()
+            self.ui.convertedVal.insert(str(self.stage2output))
+        except ArithmeticError, e:
             QtGui.QMessageBox.warning(self, "TofConverter", str(e))
             return
 
     def input2energy(self, inputval, inOption):
-        e2lam = 81.787
-        e2nu = 4.139
-        e2v = 0.0000052276
-        e2k = 2.717
-        e2t = 0.086165
-        e2cm = 0.123975
+        e2lam = 81.787 #using lambda=h/p  p: momentum, h: planck's const, lambda: wavelength
+        e2nu = 4.139 # using h/(m*lambda^2) m: mass of neutron
+        e2v = 0.0000052276 # using v = h/(m*lambda)
+        e2k = 2.717 #using k = 2*pi/(lambda) k:momentum
+        e2t = 0.086165 #using t = (m*v^2)/(2kb) kb: Boltzmann const
+        e2cm = 0.123975 #cm = 8.06554465*E E:energy
         iv2 = inputval ** 2
 
         if inOption == 'Wavelength (Angstroms)':
             Energy = e2lam / iv2
 
-        elif inOption == 'Energy  (meV)':
+        elif inOption == 'Energy (meV)':
             Energy = inputval
 
-        elif inOption == 'Nu (THz)':
+        elif inOption == 'Nu (Thz)':
             Energy = e2nu * inputval
 
         elif inOption == 'Velocity (m/s)':
             Energy = e2v *iv2
 
-        elif inOption == 'Momentum ( k Angstroms^-1)':
+        elif inOption == 'Momentum (k Angstroms^-1)':
             Energy = e2k*iv2
 
         elif inOption == 'Temperature (K)':
@@ -118,7 +123,7 @@ class MainWindow(QtGui.QMainWindow):
             else:
                 raise RuntimeError("Theta > 0 is required for conversion from Q")
 
-        elif inOption == 'd-Spacing (Angstroms)':
+        elif inOption == 'd-spacing (Angstroms)':
             lam = 2 * inputval * math.sin(self.Theta)
             Energy = e2lam / (lam * lam)
 
@@ -132,24 +137,23 @@ class MainWindow(QtGui.QMainWindow):
         return Energy
 
     def energy2output(self, Energy, inOption):
-        e2lam = 81.787
-        e2nu = 4.139
-        e2v = 0.0000052276
-        e2k = 2.0717
-        e2t = 0.086165
-        e2cm = 0.123975
-        iv2 = Energy ** 2
+        e2lam = 81.787 #using lambda=h/p  p: momentum, h: planck's const, lambda: wavelength
+        e2nu = 4.139 # using h/(m*lambda^2) m: mass of neutron
+        e2v = 0.0000052276 # using v = h/(m*lambda)
+        e2k = 2.717 #using k = 2*pi/(lambda) k:momentum
+        e2t = 0.086165 #using t = (m*v^2)/(2kb) kb: Boltzmann const
+        e2cm = 0.123975 #cm = 8.06554465*E E:energy
 
         if inOption == 'Wavelength (Angstroms)':
             OutputVal =  (e2lam/ Energy)**0.5
 
-        elif inOption == 'Nu (THz)':
+        elif inOption == 'Nu (Thz)':
             OutputVal = Energy / e2nu
 
         elif inOption == 'Velocity (m/s)':
             OutputVal = (Energy / e2v)**0.5
 
-        elif inOption == 'Momentum ( k Angstroms^-1)':
+        elif inOption == 'Momentum (k Angstroms^-1)':
             OutputVal = (Energy / e2k)**0.5
 
         elif inOption == 'Temperature (K)':
@@ -165,7 +169,7 @@ class MainWindow(QtGui.QMainWindow):
             else:
                 raise RuntimeError("Theta > 0 is required for conversion to Q")
 
-        elif inOption == 'd-Spacing (Angstroms)':
+        elif inOption == 'd-spacing (Angstroms)':
             if self.Theta >= 0.0:
                 lam = (e2lam / Energy)**0.5
                 OutputVal = lam * 0.5 / math.sin(self.Theta)
@@ -178,7 +182,7 @@ class MainWindow(QtGui.QMainWindow):
             else:
                 raise RuntimeError("Flight path >= 0 is required for conversion to TOF")
 
-        elif inOption == 'Energy  (meV)':
+        elif inOption == 'Energy (meV)':
             OutputVal = Energy
 
         return OutputVal
diff --git a/Code/Mantid/scripts/test/DirectEnergyConversionTest.py b/Code/Mantid/scripts/test/DirectEnergyConversionTest.py
index 30215714ea48a958c9f2503ab07043c47ccaa3c0..adad80b36cf157078ab3e27ff6500bb0c184f93a 100644
--- a/Code/Mantid/scripts/test/DirectEnergyConversionTest.py
+++ b/Code/Mantid/scripts/test/DirectEnergyConversionTest.py
@@ -545,9 +545,80 @@ class DirectEnergyConversionTest(unittest.TestCase):
         rez = CheckWorkspacesMatch(result[1],result2[1])
         self.assertEqual(rez,'Success!')
 
+    def test_sum_monitors(self):
+        # create test workspace
+        monitor_ws=CreateSampleWorkspace(Function='Multiple Peaks', NumBanks=6, BankPixelWidth=1,\
+                                            NumEvents=100000, XUnit='Energy', XMin=3, XMax=200, BinWidth=0.1)
+
+        # Place all detectors into appropriate positions as the distance for all detectors
+        # to sum have to be equal
+        mon1_det = monitor_ws.getDetector(0)
+        mon1_pos = mon1_det.getPos()
+        MoveInstrumentComponent(Workspace=monitor_ws,ComponentName= 'Detector', DetectorID=2,
+                                X=mon1_pos.getX(),Y=mon1_pos.getY(), Z=mon1_pos.getZ(),
+                                 RelativePosition=False)
+        MoveInstrumentComponent(Workspace=monitor_ws,ComponentName= 'Detector', DetectorID=3,
+                                X=mon1_pos.getX(),Y=mon1_pos.getY(), Z=mon1_pos.getZ(),
+                                 RelativePosition=False)
+        mon2_det = monitor_ws.getDetector(3)
+        mon2_pos = mon2_det.getPos()
+        MoveInstrumentComponent(Workspace=monitor_ws,ComponentName= 'Detector', DetectorID=4,
+                                X=mon2_pos.getX(),Y=mon2_pos.getY(), Z=mon2_pos.getZ(),
+                                 RelativePosition=False)
+        MoveInstrumentComponent(Workspace=monitor_ws,ComponentName= 'Detector', DetectorID=5,
+                                X=mon2_pos.getX(),Y=mon2_pos.getY(), Z=mon2_pos.getZ(),
+                                 RelativePosition=False)
+        ConvertUnits(InputWorkspace=monitor_ws, OutputWorkspace='monitor_ws', Target='TOF')
+        # Rebin to "formally" make common bin boundaries as it is not considered as such
+        #any more after converting units (Is this a bug?)
+        xx = monitor_ws.readX(0)
+        x_min = min(xx[0],xx[-1])
+        x_max= max(xx[0],xx[-1])
+        x_step = (x_max-x_min)/(len(xx)-1)
+        monitor_ws = Rebin(monitor_ws,Params=[x_min,x_step,x_max])
+        monitor_ws = mtd['monitor_ws']
+        #
+        # keep this workspace for second test below -- clone and give
+        # special name for RunDescriptor to recognize as monitor workspace for
+        # fake data workspace we will provide.
+        _TMPmonitor_ws_monitors = CloneWorkspace(monitor_ws)
+
+        # Estimate energy from two monitors
+        ei,mon1_peak,mon1_index,tzero = \
+            GetEi(InputWorkspace=monitor_ws, Monitor1Spec=1,Monitor2Spec=4,
+                  EnergyEstimate=62.2,FixEi=False)
+        self.assertAlmostEqual(ei,62.1449,3)
+
+        # Provide instrument parameter, necessary to define
+        # DirectEnergyConversion class properly
+        SetInstrumentParameter(monitor_ws,ParameterName='fix_ei',ParameterType='Number',Value='0')
+        SetInstrumentParameter(monitor_ws,DetectorList=[1,2,3,6],ParameterName='DelayTime',\
+                               ParameterType='Number',Value='0.5') 
+        # initiate test reducer
+        tReducer = DirectEnergyConversion(monitor_ws.getInstrument())
+        tReducer.prop_man.ei_mon_spectra= ([1,2,3],6)
+        tReducer.prop_man.normalise_method = 'current'
+        ei_mon_spectra  = tReducer.prop_man.ei_mon_spectra
+        ei_mon_spectra,monitor_ws  = tReducer.sum_monitors_spectra(monitor_ws,ei_mon_spectra)
+        #
+        # Check GetEi with summed monitors. Try to run separately.
+        ei1,mon1_peak,mon1_index,tzero = \
+            GetEi(InputWorkspace=monitor_ws, Monitor1Spec=1,Monitor2Spec=6,
+                  EnergyEstimate=62.2,FixEi=False)
+        self.assertAlmostEqual(ei1,ei,2)
+
+        # Second test Check get_ei as part of the reduction
+        tReducer.prop_man.ei_mon_spectra= ([1,2,3],[4,5,6])
+        tReducer.prop_man.fix_ei = False
+        # DataWorkspace == monitor_ws data workspace is not used anyway. The only thing we
+        # use it for is to retrieve monitor workspace from Mantid using its name
+        ei2,mon1_peak2=tReducer.get_ei(monitor_ws,62.2)
+        self.assertAlmostEqual(ei2,64.95,2)
+
+
 
 
 if __name__=="__main__":
-        test = DirectEnergyConversionTest('test_abs_multirep_with_bkg_and_bleed')
-        test.test_abs_multirep_with_bkg_and_bleed()
-   #unittest.main()
+   #test = DirectEnergyConversionTest('test_sum_monitors')
+   #test.test_sum_monitors()
+   unittest.main()
diff --git a/Code/Mantid/scripts/test/DirectPropertyManagerTest.py b/Code/Mantid/scripts/test/DirectPropertyManagerTest.py
index d66a64e42218484930968c785bd15b2d8b09f508..6f11d70a4ad47caf77eb3725d1468a78c4d10932 100644
--- a/Code/Mantid/scripts/test/DirectPropertyManagerTest.py
+++ b/Code/Mantid/scripts/test/DirectPropertyManagerTest.py
@@ -153,7 +153,7 @@ class DirectPropertyManagerTest(unittest.TestCase):
         self.assertAlmostEqual(range[0],1000.,7," Default integration min range on MARI should be as described in MARI_Parameters.xml file")
         self.assertAlmostEqual(range[1],2000.,7," Default integration max range on MAPS should be as described in MARI_Parameters.xml file")
 
-        self.assertEqual(propman.ei_mon_spectra,[2,3]," Default ei monitors on MARI should be as described in MARI_Parameters.xml file")
+        self.assertEqual(propman.ei_mon_spectra,(2,3)," Default ei monitors on MARI should be as described in MARI_Parameters.xml file")
 
 
         propman.norm_mon_integration_range = [50,1050]
@@ -162,7 +162,7 @@ class DirectPropertyManagerTest(unittest.TestCase):
         self.assertAlmostEqual(range[1],1050.,7)
         propman.ei_mon1_spec = 10
         mon_spectra = propman.ei_mon_spectra
-        self.assertEqual(mon_spectra,[10,3])
+        self.assertEqual(mon_spectra,(10,3))
         self.assertEqual(propman.ei_mon1_spec,10)
 
 
@@ -176,7 +176,7 @@ class DirectPropertyManagerTest(unittest.TestCase):
     def test_set_non_default_complex_value_synonims(self):
         propman = PropertyManager("MAP")
         propman.test_ei2_mon_spectra = 10000
-        self.assertEqual(propman.ei_mon_spectra,[41474,10000])
+        self.assertEqual(propman.ei_mon_spectra,(41474,10000))
 
         prop_changed = propman.getChangedProperties()
         self.assertEqual(len(prop_changed),1)
@@ -185,20 +185,26 @@ class DirectPropertyManagerTest(unittest.TestCase):
 
 
         propman.test_mon_spectra_composite = [10000,2000]
-        self.assertEqual(propman.ei_mon_spectra,[10000,2000])
+        self.assertEqual(propman.ei_mon_spectra,(10000,2000))
 
         prop_changed = propman.getChangedProperties()
         self.assertEqual(len(prop_changed),2)
 
         self.assertTrue("ei_mon_spectra" in prop_changed,"changing test_mon_spectra_composite should change ei_mon_spectra")
 
-    ## HOW TO MAKE IT WORK?  it fails silently
-        propman.ei_mon_spectra[1] = 100
+        ## weird way to prohibit this assignment
+        # But it works and I was not able to find any other way!
+        try:
+            propman.ei_mon_spectra[1] = 100
+            Success=True
+        except TypeError:
+            Success=False
+        self.assertFalse(Success)
         self.assertEqual(10000,propman.ei_mon_spectra[0])
         self.assertEqual(2000,propman.ei_mon_spectra[1])
 
-
-        propman.ei_mon_spectra = [100,200]
+        # This works as should
+        propman.ei_mon_spectra = (100,200)
         self.assertEqual(100,propman.ei_mon_spectra[0])
         self.assertEqual(200,propman.ei_mon_spectra[1])
 
@@ -524,10 +530,10 @@ class DirectPropertyManagerTest(unittest.TestCase):
 
         ws = mtd['ws']
         changed_prop = propman.update_defaults_from_instrument(ws.getInstrument(),False)
-        self.assertFalse('ei-mon1-spec' in changed_prop)
+        self.assertTrue('ei-mon1-spec' in changed_prop)
         self.assertEqual(propman.ei_mon1_spec,65542)
 
-        self.assertTrue('ei_mon_spectra' in changed_prop)
+        self.assertFalse('ei_mon_spectra' in changed_prop)
         ei_spec = propman.ei_mon_spectra
         self.assertEqual(ei_spec[0],65542)
         self.assertEqual(ei_spec[1],5506)
@@ -1105,6 +1111,52 @@ class DirectPropertyManagerTest(unittest.TestCase):
        # clean up
        PropertyManager.save_file_name.set_custom_print(None)
 
+    def test_ei_mon_spectra(self):
+        propman = self.prop_man
+        # test default property assignment
+        setattr(propman,'ei-mon1-spec',101)
+        setattr(propman,'ei-mon2-spec',2020)
+        spectra = propman.ei_mon_spectra
+        self.assertEqual(spectra[0],101)
+        self.assertEqual(spectra[1],2020)
+
+        propman.ei_mon_spectra = "ei-mon1-spec:ei-mon2-spec"
+
+        spectra = propman.ei_mon_spectra
+        self.assertEqual(spectra[0],101)
+        self.assertEqual(spectra[1],2020)
+
+        setattr(propman,'ei-mon1-spec',[101,102,103])
+        spectra = propman.ei_mon_spectra
+        self.assertEqual(spectra[0],[101,102,103])
+        self.assertEqual(spectra[1],2020)
+        self.assertTrue(PropertyManager.ei_mon_spectra.need_to_sum_monitors(propman))
+
+        propman.ei_mon_spectra=(1,[3,4,5])
+        spectra = propman.ei_mon_spectra
+        self.assertEqual(spectra[0],1)
+        self.assertEqual(spectra[1],[3,4,5])
+        self.assertTrue(PropertyManager.ei_mon_spectra.need_to_sum_monitors(propman))
+
+        propman.ei_mon_spectra="3,4,5:1,2"
+        spectra = propman.ei_mon_spectra
+        self.assertEqual(spectra[0],[3,4,5])
+        self.assertEqual(spectra[1],[1,2])
+        self.assertTrue(PropertyManager.ei_mon_spectra.need_to_sum_monitors(propman))
+
+        propman.ei_mon_spectra="3:10"
+        spectra = propman.ei_mon_spectra
+        self.assertEqual(spectra[0],3)
+        self.assertEqual(spectra[1],10)
+        self.assertFalse(PropertyManager.ei_mon_spectra.need_to_sum_monitors(propman))
+
+        propman.ei_mon_spectra="[4:11]"
+        spectra = propman.ei_mon_spectra
+        self.assertEqual(spectra[0],4)
+        self.assertEqual(spectra[1],11)
+        self.assertFalse(PropertyManager.ei_mon_spectra.need_to_sum_monitors(propman))
+
+
 if __name__ == "__main__":
     unittest.main()
     #tester = DirectPropertyManagerTest('test_set_energy_bins_and_ei')
diff --git a/Code/Mantid/scripts/test/ISISDirecInelasticConfigTest.py b/Code/Mantid/scripts/test/ISISDirecInelasticConfigTest.py
index a05404a48040c8e34c739e3453457da620678052..df7eeead4bfbeab826a9c121a176014ba919c770 100644
--- a/Code/Mantid/scripts/test/ISISDirecInelasticConfigTest.py
+++ b/Code/Mantid/scripts/test/ISISDirecInelasticConfigTest.py
@@ -1,5 +1,5 @@
 import os
-os.environ["PATH"] = r"c:/Mantid/Code/builds/br_master/bin/Release;"+os.environ["PATH"]
+#os.environ["PATH"] = r"c:/Mantid/Code/builds/br_master/bin/Release;"+os.environ["PATH"]
 import unittest
 import shutil
 import datetime
@@ -73,13 +73,13 @@ class ISISDirectInelasticConfigTest(unittest.TestCase):
     def tearDown(self):
         # Clean-up user's folder structure
         if os.path.exists(self.rbdir):
-            shutil.rmtree(self.rbdir)
+            shutil.rmtree(self.rbdir,ignore_errors=True)
         if os.path.exists(self.UserScriptRepoDir):
-            shutil.rmtree(self.UserScriptRepoDir)
+            shutil.rmtree(self.UserScriptRepoDir,ignore_errors=True)
         if os.path.exists(self.MapMaskDir):
-            shutil.rmtree(self.MapMaskDir)
+            shutil.rmtree(self.MapMaskDir,ignore_errors=True)
         if os.path.exists(self.userRootDir):
-            shutil.rmtree(self.userRootDir)
+            shutil.rmtree(self.userRootDir,ignore_errors=True)
 
     def test_UserProperties(self):
         user = UserProperties()
@@ -259,13 +259,13 @@ class ISISDirectInelasticConfigTest(unittest.TestCase):
         #--------------------------------------------------------------------
         # clean up
         if os.path.exists(os.path.join(self.userRootDir,'.mantid')):
-            shutil.rmtree(os.path.join(self.userRootDir,'.mantid'))
+            shutil.rmtree(os.path.join(self.userRootDir,'.mantid'),ignore_errors=True)
         if os.path.exists(rbdir2):
-            shutil.rmtree(rbdir2)
+            shutil.rmtree(rbdir2,ignore_errors=True)
         if os.path.exists(rbdir3):
-            shutil.rmtree(rbdir3)
+            shutil.rmtree(rbdir3,ignore_errors=True)
         if os.path.exists(user1RootDir):
-            shutil.rmtree(user1RootDir)
+            shutil.rmtree(user1RootDir,ignore_errors=True)
 
 
 
diff --git a/Code/Mantid/scripts/test/IndirectApplyCorrectionsTest.py b/Code/Mantid/scripts/test/IndirectApplyCorrectionsTest.py
deleted file mode 100644
index 3d1762cdc58cbfaac4df275337369bb7ab83c269..0000000000000000000000000000000000000000
--- a/Code/Mantid/scripts/test/IndirectApplyCorrectionsTest.py
+++ /dev/null
@@ -1,308 +0,0 @@
-import os
-import unittest
-
-from mantid.simpleapi import *
-from mantid.api import MatrixWorkspace, WorkspaceGroup
-from IndirectDataAnalysis import abscorFeeder
-
-def setup_corrections_test(using_can=False):
-    """ Decorator to setup a test to use a corrections workspace """
-    def _decorator(test_case):
-        def _inner_decorator(self, *args, **kwargs):
-            self._corrections_workspace = self.make_corrections_workspace(using_can)
-            self._reference_corrections = CloneWorkspace(self._corrections_workspace,
-                                                         OutputWorkspace='ref_corrections')
-            self._using_corrections = True
-            return test_case(self, *args, **kwargs)
-        return _inner_decorator
-    return _decorator
-
-def setup_can_test(test_case):
-    """ Decorator to setup a test to use a can workspace """
-    def _decorator(self, *args, **kwargs):
-        self._can_workspace = self.make_can_workspace()
-        self._reference_can = CloneWorkspace(self._can_workspace,
-                                             OutputWorkspace='ref_can')
-        return test_case(self, *args, **kwargs)
-    return _decorator
-
-
-class ApplyCorrectionsTests(unittest.TestCase):
-
-    def setUp(self):
-        self._config_defaults = config
-        config['default.facility'] = 'ISIS'
-
-        self._sample_workspace = self.make_sample_workspace()
-        self._can_workspace = ''
-        self._corrections_workspace = ''
-        self._can_geometry = 'cyl'
-        self._using_corrections = False
-
-        self._kwargs = {'RebinCan':False, 'ScaleOrNotToScale':False,
-                        'factor':1, 'Save':False, 'PlotResult':'None', 'PlotContrib':False}
-
-        self._saved_workspaces = []
-
-        self._reference_sample = CloneWorkspace(self._sample_workspace, OutputWorkspace='ref_sample')
-        self._reference_can = None
-        self._reference_corrections = None
-
-    def tearDown(self):
-        mtd.clear()
-        self.clean_up_saved_workspaces()
-
-        config = self._config_defaults
-
-    @setup_can_test
-    def test_with_can_workspace(self):
-        output_workspaces = self.run_apply_corrections()
-
-        self.assert_workspaces_exist(output_workspaces)
-        self.assert_workspaces_have_correct_types(output_workspaces)
-        self.assert_workspaces_have_correct_units(output_workspaces)
-        self.assert_input_workspaces_not_modified()
-
-    @setup_can_test
-    def test_scale_can_workspace(self):
-        self._kwargs['ScaleOrNotToScale'] = True
-        self._kwargs['factor'] = 2
-
-        output_workspaces = self.run_apply_corrections()
-
-        self.assert_workspaces_exist(output_workspaces)
-        self.assert_workspaces_have_correct_types(output_workspaces)
-        self.assert_workspaces_have_correct_units(output_workspaces)
-        self.assert_input_workspaces_not_modified()
-
-    @setup_can_test
-    def test_rebin_can_workspace(self):
-        self._can_workspace = self.make_can_workspace(bin_width=0.001)
-        ScaleX(self._can_workspace, Factor=0.1, OutputWorkspace=self._can_workspace)
-        self._reference_can = CloneWorkspace(self._can_workspace, OutputWorkspace='ref_can')
-
-        #should fail because the binning of the sample and can don't match
-        self.assertRaises(ValueError, self.run_apply_corrections)
-
-        #try again, but rebin the can before the subraction
-        self._kwargs['RebinCan'] = True
-        try:
-            output_workspaces = self.run_apply_corrections()
-        except ValueError, ex:
-            self.fail("Apply Corrections raised a ValueError when it shouldn't! \
-                      \nException was: %s" % ex)
-
-        self.assert_workspaces_exist(output_workspaces)
-        self.assert_workspaces_have_correct_types(output_workspaces)
-        self.assert_workspaces_have_correct_units(output_workspaces)
-        self.assert_input_workspaces_not_modified()
-
-    @setup_can_test
-    def test_save_apply_corrections_output(self):
-        self._kwargs['Save'] = True
-
-        output_workspaces = self.run_apply_corrections()
-
-        self.assert_workspaces_exist(output_workspaces)
-        self.assert_workspaces_have_correct_types(output_workspaces)
-        self.assert_workspaces_have_correct_units(output_workspaces)
-        self.assert_input_workspaces_not_modified()
-        self.assert_workspace_was_saved(output_workspaces['result_workspace'])
-        self.assert_workspace_was_saved(output_workspaces['reduced_workspace'])
-
-        #append saved workspaces to list for cleanup
-        self._saved_workspaces.append(output_workspaces['result_workspace'])
-        self._saved_workspaces.append(output_workspaces['reduced_workspace'])
-
-    @setup_can_test
-    @setup_corrections_test(using_can=True)
-    def test_with_corrections_workspace(self):
-        output_workspaces = self.run_apply_corrections()
-
-        self.assert_workspaces_exist(output_workspaces)
-        self.assert_workspaces_have_correct_types(output_workspaces)
-        self.assert_workspaces_have_correct_units(output_workspaces)
-        self.assert_input_workspaces_not_modified()
-
-    @setup_corrections_test
-    def test_with_corrections_no_can(self):
-        output_workspaces = self.run_apply_corrections()
-
-        self.assert_workspaces_exist(output_workspaces)
-        self.assert_workspaces_have_correct_types(output_workspaces)
-        self.assert_workspaces_have_correct_units(output_workspaces)
-        self.assert_input_workspaces_not_modified()
-
-    #----------------------------------------------------------------
-    # Custom assertion function defintions
-    #----------------------------------------------------------------
-
-    def assert_workspaces_exist(self, output_workspaces):
-        for ws in output_workspaces.itervalues():
-            self.assertTrue(mtd.doesExist(ws), "%s does not exist in the ADS" % ws)
-
-    def assert_workspaces_have_correct_units(self, output_workspaces):
-        self.assert_units_match(output_workspaces['reduced_workspace'], 'DeltaE')
-        self.assert_units_match(output_workspaces['rqw_workspace'], 'DeltaE')
-
-        self.assert_units_match(output_workspaces['reduced_workspace'], 'Label', axis=1)
-        self.assert_units_match(output_workspaces['rqw_workspace'], 'MomentumTransfer', axis=1)
-
-    def assert_workspaces_have_correct_types(self, output_workspaces):
-        self.assertTrue(isinstance(mtd[output_workspaces['reduced_workspace']], MatrixWorkspace),
-                        "Reduced workspace should be a matrix workspace")
-
-        self.assertTrue(isinstance(mtd[output_workspaces['rqw_workspace']], MatrixWorkspace),
-                        "R(Q,w) workspace should be a matrix workspace")
-
-        if 'result_workspace' in output_workspaces:
-            self.assertTrue(isinstance(mtd[output_workspaces['result_workspace']], WorkspaceGroup),
-                            "Result workspace should be a group workspace")
-            result_workspace = mtd[output_workspaces['result_workspace']]
-            self.assertEquals(1, result_workspace.size())
-
-            for workspace in result_workspace.getNames():
-                self.assertTrue(isinstance(mtd[workspace], MatrixWorkspace),
-                                "%s should be a matrix workspace" % workspace)
-
-    def assert_units_match(self, workspace, unit_id, axis=0):
-        unit = mtd[workspace].getAxis(axis).getUnit()
-        self.assertEquals(unit_id, unit.unitID(),
-                          "The units of axis %d in workspace %s do not match. (%s != %s)"
-                          % (axis, workspace, unit_id, unit.unitID()))
-
-    def assert_workspace_was_saved(self, workspace):
-        working_directory = config['defaultsave.directory']
-        file_name = workspace + '.nxs'
-        file_path = os.path.join(working_directory, file_name)
-
-        self.assertTrue(os.path.exists(file_path),
-                        "%s does not exist in the default save directory." % file_name)
-        self.assertTrue(os.path.isfile(file_path),
-                        "%s should be a file but it is not" % file_name)
-
-    def assert_input_workspaces_not_modified(self):
-
-        result = CheckWorkspacesMatch(self._reference_sample, self._sample_workspace)
-        self.assertEquals("Success!", result)
-
-        if self._can_workspace != '':
-            result = CheckWorkspacesMatch(self._reference_can, self._can_workspace)
-            self.assertEquals("Success!", result)
-
-        if self._corrections_workspace != '':
-            result = CheckWorkspacesMatch(self._reference_corrections, self._corrections_workspace)
-            self.assertEquals("Success!", result)
-
-    #----------------------------------------------------------------
-    # Functions for creating a dummy workspaces that look like
-    # apply corrections input data
-    #----------------------------------------------------------------
-
-    def make_dummy_workspace(self, function, output_name, x_unit='DeltaE', num_spectra=1, bin_width=0.001):
-        """ Create a dummy workspace that looks like IRIS QENS data"""
-        dummy_workspace = CreateSampleWorkspace(Random=True, XMin=0, XMax=1, BinWidth=bin_width, XUnit=x_unit,
-                                                Function="User Defined", UserDefinedFunction=function,
-                                                OutputWorkspace=output_name)
-        ScaleX(dummy_workspace, -0.5, Operation="Add", OutputWorkspace=output_name)
-        dummy_workspace = CropWorkspace(dummy_workspace, StartWorkspaceIndex=0, EndWorkspaceIndex=num_spectra-1,
-                                        OutputWorkspace=output_name)
-
-        idf = os.path.join(config['instrumentDefinition.directory'], "IRIS_Definition.xml")
-        ipf = os.path.join(config['instrumentDefinition.directory'], "IRIS_graphite_002_Parameters.xml")
-        LoadInstrument(Workspace=dummy_workspace, Filename=idf)
-        LoadParameterFile(Workspace=dummy_workspace, Filename=ipf)
-
-        AddSampleLog(dummy_workspace, LogName='run_number', LogType='Number', LogText='00001')
-
-        return dummy_workspace.name()
-
-    def make_sample_workspace(self, **kwargs):
-        """ Create a dummy workspace that looks like a QENS sample run"""
-        function = "name=LinearBackground, A0=0.1;name=Lorentzian, PeakCentre=0.5, Amplitude=2, FWHM=0.1"
-        sample = self.make_dummy_workspace(function, output_name='sample', **kwargs)
-        return sample
-
-    def make_can_workspace(self, **kwargs):
-        """ Create a dummy workspace that looks like a QENS can run"""
-        function = "name=LinearBackground, A0=0.1;name=Lorentzian, PeakCentre=0.5, Amplitude=0.5, FWHM=0.02"
-        can = self.make_dummy_workspace(function, output_name='can', **kwargs)
-        return can
-
-    def make_corrections_workspace(self, using_can=False):
-        """
-        Creates a dummy workspace that looks like a workspace of corrections output from the
-        indirect calculate corrections routine. The naming convention must match and uses the formalism
-        for absoprtion corrections outlined in Paalman and Pings (1962).
-        """
-        workspace_names = []
-        ass_workspace = self.make_dummy_workspace("name=LinearBackground, A0=0.922948, A1=0;",
-                                                  x_unit='Wavelength', output_name='corr_ass')
-        AddSampleLog(ass_workspace, LogName='sample_shape', LogType='String', LogText='cylinder')
-
-        if using_can:
-            workspace_names.append(ass_workspace)
-
-            assc_workspace = self.make_dummy_workspace("name=LinearBackground, A0=0.921233, A1=-0.007078;",
-                                                       x_unit='Wavelength', output_name='corr_assc')
-            AddSampleLog(assc_workspace, LogName='sample_shape', LogType='String', LogText='cylinder')
-            workspace_names.append(assc_workspace)
-
-            acsc_workspace = self.make_dummy_workspace("name=LinearBackground, A0=0.933229, A1=-0.010020;",
-                                                       x_unit='Wavelength', output_name='corr_acsc')
-            AddSampleLog(acsc_workspace, LogName='sample_shape', LogType='String', LogText='cylinder')
-            workspace_names.append(acsc_workspace)
-
-            acc_workspace = self.make_dummy_workspace("name=LinearBackground, A0=0.995029, A1=-0.010694;",
-                                                      x_unit='Wavelength', output_name='corr_acc')
-            AddSampleLog(acc_workspace, LogName='sample_shape', LogType='String', LogText='cylinder')
-            workspace_names.append(acc_workspace)
-
-            workspace_names = ','.join(workspace_names)
-            corrections_workspace = GroupWorkspaces(workspace_names, OutputWorkspace='corrections_workspace')
-
-        return corrections_workspace.name()
-
-    #----------------------------------------------------------------
-    # Misc helper functions
-    #----------------------------------------------------------------
-
-    def run_apply_corrections(self):
-        abscorFeeder(self._sample_workspace, self._can_workspace, self._can_geometry,
-                     self._using_corrections, self._corrections_workspace, **self._kwargs)
-        return self.get_output_workspace_names()
-
-    def get_output_workspace_names(self):
-        """
-        abscorFeeder doesn't return anything, these names should exist in the ADS
-        apply corrections uses the following naming convention:
-        <instrument><sample number>_<analyser><reflection>_<mode>_<can number>
-        """
-        mode = ''
-        if self._corrections_workspace != '' and self._can_workspace != '':
-            mode = 'Correct_1'
-        elif self._corrections_workspace != '':
-            mode = 'Corrected'
-        else:
-            mode = 'Subtract_1'
-
-        workspace_name_stem = 'irs1_graphite002_%s' % mode
-
-        output_workspaces = {
-            'reduced_workspace': workspace_name_stem + '_red',
-            'rqw_workspace': workspace_name_stem + '_rqw',
-        }
-
-        if self._can_workspace != '':
-            output_workspaces['result_workspace'] = workspace_name_stem + '_Result'
-
-        return output_workspaces
-
-    def clean_up_saved_workspaces(self):
-        for name in self._saved_workspaces:
-            file_path = os.path.join(config['defaultsave.directory'], name + '.nxs')
-            if os.path.isfile(file_path):
-                os.remove(file_path)
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/Code/Mantid/scripts/test/SANSBatchModeTest.py b/Code/Mantid/scripts/test/SANSBatchModeTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..3279c62071ad0759f2a9652fb1be272af7cd9411
--- /dev/null
+++ b/Code/Mantid/scripts/test/SANSBatchModeTest.py
@@ -0,0 +1,145 @@
+
+import unittest
+import re
+# Need to import mantid before we import SANSUtility
+import mantid
+from mantid.simpleapi import *
+from mantid.api import mtd, WorkspaceGroup
+from ISISCommandInterface import *
+from isis_reduction_steps import UserFile
+import SANSBatchMode as bm
+import time
+
+
+class TestSettingUserFileInBatchMode(unittest.TestCase):
+    def _create_minimal_user_files(self, amount):
+        temp_save_dir = config['defaultsave.directory']
+        if (temp_save_dir == ''):
+            temp_save_dir = os.getcwd()
+        base_name = 'batch_test_file_'
+        file_names = []
+        minimal_user_file = ("LOQ\n"
+                             "L/QXY 0 0.2 0.0125/lin\n")
+        for element in range(0,amount):
+            file_name = os.path.join(temp_save_dir, base_name + str(element) + '.txt')
+            file_names.append(file_name)
+            with open(file_name, 'w') as ff:
+                ff.write(minimal_user_file)
+        return file_names
+
+    def _delete_minimal_user_files(self, file_names):
+        for file_name in file_names:
+            if os.path.exists(file_name):
+                os.remove(file_name)
+
+    def _prepare_reducer(self, current_user_file, original_user_file):
+        # Set up original reducer in order to store a copy
+        Clean()
+        LOQ()
+        ReductionSingleton().user_settings = UserFile(original_user_file)
+        ReductionSingleton().user_settings.execute(ReductionSingleton())
+        original_settings = copy.deepcopy(ReductionSingleton().reference())
+        original_prop_man_settings = ReductionSingleton().settings.clone("TEMP_SETTINGS")
+
+        # Set up current reducer
+        Clean()
+        LOQ()
+        ReductionSingleton().user_settings = UserFile(current_user_file)
+        ReductionSingleton().user_settings.execute(ReductionSingleton())
+        return original_settings, original_prop_man_settings
+
+    def test_user_file_is_set_to_original_when_new_user_file_does_not_exist(self):
+        #Arrange
+        user_files = self._create_minimal_user_files(3)
+        new_user_file = "" # Create an invalid new user file
+        current_user_file = user_files[1]
+        original_user_file = user_files[2]
+        original_settings, original_prop_man_settings = self._prepare_reducer(current_user_file = current_user_file,
+                                                                              original_user_file = original_user_file)
+        # Act
+        reducer_address= str(ReductionSingleton().reference())
+        bm.setUserFileInBatchMode(new_user_file=new_user_file,
+                                  current_user_file=current_user_file,
+                                  original_user_file=original_user_file,
+                                  original_settings = original_settings,
+                                  original_prop_man_settings = original_prop_man_settings)
+        # Assert
+        self.assertTrue(str(ReductionSingleton().reference()) != reducer_address,
+                         ("The physical reducer should change."))
+        self.assertEqual(ReductionSingleton().user_settings.filename, original_user_file,
+                         ("The reducer should use the original user file,"
+                          "since we don't provide a valid new user file."))
+        # Clean up
+        self._delete_minimal_user_files(user_files)
+
+    def test_user_file_is_set_to_new__user_file_when_it_exists_and_is_different_from_orig_and_current(self):
+        #Arrange
+        user_files = self._create_minimal_user_files(3)
+        new_user_file = user_files[0]
+        current_user_file = user_files[1]
+        original_user_file = user_files[2]
+        original_settings, original_prop_man_settings = self._prepare_reducer(current_user_file = current_user_file,
+                                                                              original_user_file = original_user_file)
+        # Act
+        reducer_address= str(ReductionSingleton().reference())
+        bm.setUserFileInBatchMode(new_user_file=new_user_file,
+                                  current_user_file=current_user_file,
+                                  original_user_file=original_user_file,
+                                  original_settings = original_settings,
+                                  original_prop_man_settings = original_prop_man_settings)
+        # Assert
+        self.assertTrue(str(ReductionSingleton().reference()) != reducer_address,
+                        "The physical reducer should not change.")
+        self.assertEqual(ReductionSingleton().user_settings.filename, new_user_file,
+                         "The reducer should use the new user file.")
+        # Clean up
+        self._delete_minimal_user_files(user_files)
+
+    def test_reducer_is_not_reset_when_new_file_is_the_same_as_the_current_file(self):
+        #Arrange
+        user_files = self._create_minimal_user_files(3)
+        new_user_file = user_files[1]
+        current_user_file = user_files[1]
+        original_user_file = user_files[2]
+        original_settings, original_prop_man_settings = self._prepare_reducer(current_user_file = current_user_file,
+                                                                              original_user_file = original_user_file)
+        # Act
+        reducer_address= str(ReductionSingleton().reference())
+        bm.setUserFileInBatchMode(new_user_file=new_user_file,
+                                  current_user_file=current_user_file,
+                                  original_user_file=original_user_file,
+                                  original_settings = original_settings,
+                                  original_prop_man_settings = original_prop_man_settings)
+        # Assert
+        self.assertTrue(str(ReductionSingleton().reference()) == reducer_address,
+                        "The physical reducer should change.")
+        self.assertEqual(ReductionSingleton().user_settings.filename, current_user_file,
+                         "The reducer should use the current user file.")
+        # Clean up
+        self._delete_minimal_user_files(user_files)
+
+    def test_reducer_is_not_reset_if_file_to_set_is_original_and_current(self):
+        #Arrange
+        user_files = self._create_minimal_user_files(3)
+        new_user_file = user_files[1]
+        current_user_file = user_files[1]
+        original_user_file = user_files[1]
+        original_settings, original_prop_man_settings = self._prepare_reducer(current_user_file = current_user_file,
+                                                                              original_user_file = original_user_file)
+        # Act
+        reducer_address= str(ReductionSingleton().reference())
+        bm.setUserFileInBatchMode(new_user_file=new_user_file,
+                                  current_user_file=current_user_file,
+                                  original_user_file=original_user_file,
+                                  original_settings = original_settings,
+                                  original_prop_man_settings = original_prop_man_settings)
+        # Assert
+        self.assertTrue(str(ReductionSingleton().reference()) == reducer_address,
+                        "The physical reducer should not change.")
+        self.assertEqual(ReductionSingleton().user_settings.filename, current_user_file,
+                         "The reducer should use the current user file.")
+        # Clean up
+        self._delete_minimal_user_files(user_files)
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/Code/Mantid/scripts/test/SANSCommandInterfaceTest.py b/Code/Mantid/scripts/test/SANSCommandInterfaceTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..500266b3e4a929c4eba81ef06cc796dcddc3692c
--- /dev/null
+++ b/Code/Mantid/scripts/test/SANSCommandInterfaceTest.py
@@ -0,0 +1,196 @@
+import unittest
+import mantid
+import isis_instrument as instruments
+import ISISCommandInterface as command_iface
+from reducer_singleton import ReductionSingleton
+import isis_reduction_steps as reduction_steps
+
+
+class SANSCommandInterfaceGetAndSetTransmissionSettings(unittest.TestCase):
+    def test_that_gets_transmission_monitor(self):
+        # Arrange
+        trans_spectrum = 4
+        command_iface.Clean()
+        command_iface.SANS2D()
+        ReductionSingleton().transmission_calculator.trans_mon = trans_spectrum
+        # Act
+        result = command_iface.GetTransmissionMonitorSpectrum()
+        # Assert
+        self.assertEqual(trans_spectrum, result, 'The transmission spectrum should be set to 4.')
+
+    def test_setting_transmission_monitor_to_valid_input(self):
+        # Arrange
+        trans_spectrum = 4
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionMonitorSpectrum(trans_mon = trans_spectrum)
+        # Assert
+        self.assertEqual(trans_spectrum, command_iface.GetTransmissionMonitorSpectrum(), 'The transmission spectrum should be set to 4.')
+
+    def test_setting_transmission_monitor_to_invalid_input_does_not_set(self):
+        # Arrange
+        trans_spectrum = 4
+        trans_spectrum_invalid = '23434_yh'
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionMonitorSpectrum(trans_mon = trans_spectrum)
+        command_iface.SetTransmissionMonitorSpectrum(trans_mon = trans_spectrum_invalid)
+        # Assert
+        self.assertEqual(trans_spectrum, command_iface.GetTransmissionMonitorSpectrum(), 'The transmission spectrum should be set to 4.')
+
+    def test_that_gets_transmission_monitor_shift(self):
+        # Arrange
+        trans_spectrum_shift = -55
+        command_iface.Clean()
+        command_iface.SANS2D()
+        ReductionSingleton().get_instrument().monitor_4_offset = trans_spectrum_shift
+        # Act
+        result = command_iface.GetTransmissionMonitorSpectrumShift()
+        # Assert
+        self.assertEqual(trans_spectrum_shift, result, 'The transmission monitor shift should be set to -55.')
+
+    def test_setting_shift_to_valid_value(self):
+        # Arrange
+        trans_spectrum_shift = -55.0
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionMonitorSpectrumShift(trans_mon_shift = trans_spectrum_shift)
+        # Assert
+        self.assertEqual(trans_spectrum_shift, command_iface.GetTransmissionMonitorSpectrumShift(), 'The transmission monitor shift should be set to -55.')
+
+    def test_setting_shift_with_invalid_input(self):
+        # Arrange
+        trans_spectrum_shift = '-55_thg'
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionMonitorSpectrumShift(trans_mon_shift = trans_spectrum_shift)
+        # Assert
+        self.assertEqual(None, command_iface.GetTransmissionMonitorSpectrumShift(), 'The transmission monitor shift should be None.')
+
+    def test_that_gets_transmission_radius(self):
+        # Arrange
+        trans_radius = 23/1000
+        command_iface.Clean()
+        command_iface.SANS2D()
+        ReductionSingleton().transmission_calculator.radius = trans_radius
+        # Act
+        result = command_iface.GetTransmissionRadiusInMM()
+        # Assert
+        self.assertEqual(trans_radius*1000, result, 'The transmission radius should be set to 23 mm.')
+
+    def test_setting_radius_to_valid_value(self):
+        # Arrange
+        trans_radius = 23
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionRadiusInMM(trans_radius = trans_radius)
+        # Assert
+        self.assertEqual(trans_radius, command_iface.GetTransmissionRadiusInMM(), 'The transmission radius should be set to 23.')
+
+    def test_setting_radius_with_invalid_input(self):
+        # Arrange
+        trans_radius = '23_yh'
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionRadiusInMM(trans_radius = trans_radius)
+        # Assert
+        self.assertEqual(None, command_iface.GetTransmissionRadiusInMM(), 'The transmission radius should be None.')
+
+
+
+    def test_that_gets_non_empty_roi_files(self):
+        # Arrange
+        trans_roi_files = ['roi_file1.xml', 'roi_file2.xml']
+        command_iface.Clean()
+        command_iface.SANS2D()
+        ReductionSingleton().transmission_calculator.roi_files = trans_roi_files
+        # Act
+        result = command_iface.GetTransmissionROI()
+        # Assert
+        self.assertEqual(trans_roi_files, result, 'The transmission roi should have two entries')
+
+    def test_that_gets_None_for_empty_roi_files(self):
+         # Arrange
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        result = command_iface.GetTransmissionROI()
+        # Assert
+        self.assertEqual(None, result, 'The transmission roi should be None')
+
+    def test_setting_roi_file_for_valid_input(self):
+         # Arrange
+        trans_roi_files = ['file1.xml', 'file2.xml']
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionROI(trans_roi_files = trans_roi_files)
+        # Assert
+        result = ReductionSingleton().transmission_calculator.roi_files
+        self.assertEqual(2, len(result), 'The transmission roi list should have two entries')
+        self.assertEqual("file1.xml", result[0], 'The first file should be file1.xml')
+        self.assertEqual("file2.xml", result[1], 'The second file should be file2.xml')
+
+    def test_setting_roi_file_for_invalid_input(self):
+         # Arrange
+        trans_roi_files = ['file1g', 'file2.xml']
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionROI(trans_roi_files = trans_roi_files)
+        # Assert
+        self.assertEqual(0, len(ReductionSingleton().transmission_calculator.roi_files), 'The transmission roi list should be empty.')
+
+
+
+    def test_that_gets_non_empty_mask_files(self):
+        # Arrange
+        trans_mask_files = ['mask_file1.xml', 'mask_file2.xml']
+        command_iface.Clean()
+        command_iface.SANS2D()
+        ReductionSingleton().transmission_calculator.mask_files = trans_mask_files
+        # Act
+        result = command_iface.GetTransmissionMask()
+        # Assert
+        self.assertEqual(trans_mask_files, result, 'The transmission mask should have two entries')
+
+    def test_that_gets_None_for_empty_mask_files(self):
+         # Arrange
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        result = command_iface.GetTransmissionMask()
+        # Assert
+        self.assertEqual(None, result, 'The transmission mask should be None')
+
+    def test_setting_mask_file_for_valid_input(self):
+         # Arrange
+        trans_mask_files = ['file1.xml', 'file2.xml']
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionMask(trans_mask_files = trans_mask_files)
+        # Assert
+        result = ReductionSingleton().transmission_calculator.mask_files
+        self.assertEqual(2, len(result), 'The transmission mask list should have two entries')
+        self.assertEqual("file1.xml", result[0], 'The first file should be file1.xml')
+        self.assertEqual("file2.xml", result[1], 'The second file should be file2.xml')
+
+    def test_setting_mask_file_for_invalid_input(self):
+         # Arrange
+        trans_mask_files = " file1g,  file2.xml "
+        command_iface.Clean()
+        command_iface.SANS2D()
+        # Act
+        command_iface.SetTransmissionMask(trans_mask_files = trans_mask_files)
+        # Assert
+        self.assertEqual(0, len(ReductionSingleton().transmission_calculator.mask_files), 'The transmission mask list should be empty.')
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/Code/Mantid/scripts/test/SANSIsisInstrumentTest.py b/Code/Mantid/scripts/test/SANSIsisInstrumentTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..e3570bbce18d2d06137ffb477c62452152f92507
--- /dev/null
+++ b/Code/Mantid/scripts/test/SANSIsisInstrumentTest.py
@@ -0,0 +1,37 @@
+import unittest
+import mantid
+import isis_instrument as instruments
+
+
+class SANSIsisInstrumentTest(unittest.TestCase):
+    def test_add_TOFs_for_ROI_is_correct(self):
+        # Arrange
+        start = 125
+        end = 10000
+        inst = instruments.LOQ()
+        inst.set_TOFs_for_ROI(start, end)
+
+        # Act
+        start_Tof, end_Tof = inst.get_TOFs_for_ROI()
+
+        # Assert
+        self.assertEqual(start, start_Tof)
+        self.assertEqual(end, end_Tof)
+
+    def test_Tofs_for_ROI_are_reset_to_None(self):
+        # Arrange
+        start = 125
+        end = 10000
+        inst = instruments.LOQ()
+        inst.set_TOFs_for_ROI(start, end)
+        inst.reset_TOFs_for_ROI()
+
+        # Act
+        start_Tof, end_Tof = inst.get_TOFs_for_ROI()
+
+        # Assert
+        self.assertEqual(None, start_Tof)
+        self.assertEqual(None, end_Tof)
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/Code/Mantid/scripts/test/SANSReductionStepsUserFileTest.py b/Code/Mantid/scripts/test/SANSReductionStepsUserFileTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..32fcf7892be0b91dfa1b55c6bf5194f1d760e4f2
--- /dev/null
+++ b/Code/Mantid/scripts/test/SANSReductionStepsUserFileTest.py
@@ -0,0 +1,44 @@
+import unittest
+import mantid
+import isis_instrument as instruments
+import ISISCommandInterface as command_iface
+from reducer_singleton import ReductionSingleton
+import isis_reduction_steps as reduction_steps
+
+
+class SANSReductionStepsUserFileTest(unittest.TestCase):
+    def test_parse_line_for_back_trans(self):
+        # Arrange
+        start = 1000
+        end = 2000
+        line = 'BACK/TRANS'+ str(start) +' ' + str(end)
+        command_iface.Clean()
+        command_iface.LOQ()
+        user_file = reduction_steps.UserFile()
+
+        # Act
+        user_file.read_line(line = line, reducer = ReductionSingleton())
+        start_TOF_ROI, end_TOF_ROI = ReductionSingleton().inst.get_TOFs_for_ROI()
+
+        # Assert
+        self.assertEqual(start, start_TOF_ROI, 'The start time should be 1000 for ROI.')
+        self.assertEqual(end, end_TOF_ROI, 'The end time should be 2000 for ROI.')
+
+    def test_parse_line_for_back_trans_does_not_set_for_single_times(self):
+        # Arrange
+        start = 1000
+        line = 'BACK/TRANS'+ str(start)
+        command_iface.Clean()
+        command_iface.LOQ()
+        user_file = reduction_steps.UserFile()
+
+        # Act
+        user_file.read_line(line = line, reducer = ReductionSingleton())
+        start_TOF_ROI, end_TOF_ROI = ReductionSingleton().inst.get_TOFs_for_ROI()
+
+        # Assert
+        self.assertEqual(None, start_TOF_ROI, 'The start time should not have been set')
+        self.assertEqual(None, end_TOF_ROI, 'The end time should not have been set')
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/Code/Mantid/scripts/test/SANSUtilityTest.py b/Code/Mantid/scripts/test/SANSUtilityTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..daded2b98ed7034a4d946901cc32391c1f2b0b52
--- /dev/null
+++ b/Code/Mantid/scripts/test/SANSUtilityTest.py
@@ -0,0 +1,856 @@
+
+import unittest
+# Need to import mantid before we import SANSUtility
+import mantid
+from mantid.simpleapi import *
+from mantid.api import mtd, WorkspaceGroup
+from mantid.kernel import DateAndTime, time_duration, FloatTimeSeriesProperty,BoolTimeSeriesProperty,StringTimeSeriesProperty,StringPropertyWithValue
+import SANSUtility as su
+import re
+import random
+
+TEST_STRING_DATA = 'SANS2D0003434-add' + su.ADDED_EVENT_DATA_TAG
+TEST_STRING_MON = 'SANS2D0003434-add_monitors' + su.ADDED_EVENT_DATA_TAG
+
+TEST_STRING_DATA1 = TEST_STRING_DATA + '_1'
+TEST_STRING_MON1 = TEST_STRING_MON + '_1'
+
+TEST_STRING_DATA2 = TEST_STRING_DATA + '_2'
+TEST_STRING_MON2 = TEST_STRING_MON + '_2'
+
+TEST_STRING_DATA3 = TEST_STRING_DATA + '_3'
+TEST_STRING_MON3 = TEST_STRING_MON + '_3'
+
+def provide_group_workspace_for_added_event_data(event_ws_name, monitor_ws_name, out_ws_name):
+    CreateWorkspace(DataX = [1,2,3], DataY = [2,3,4], OutputWorkspace = monitor_ws_name)
+    CreateSampleWorkspace(WorkspaceType= 'Event', OutputWorkspace = event_ws_name)
+    GroupWorkspaces(InputWorkspaces = [event_ws_name, monitor_ws_name ], OutputWorkspace = out_ws_name)
+    
+def addSampleLogEntry(log_name, ws, start_time, extra_time_shift):
+    number_of_times = 10
+    for i in range(0, number_of_times):
+
+        val = random.randrange(0, 10, 1)
+        date = DateAndTime(start_time)
+        date +=  int(i*1e9)
+        date += int(extra_time_shift*1e9)
+        AddTimeSeriesLog(ws, Name=log_name, Time=date.__str__().strip(), Value=val)
+
+def provide_event_ws_with_entries(name, start_time,number_events =0, extra_time_shift = 0.0, proton_charge = True, proton_charge_empty = False):
+     # Create the event workspace
+    ws = CreateSampleWorkspace(WorkspaceType= 'Event', NumEvents = number_events, OutputWorkspace = name)
+
+    # Add the proton_charge log entries
+    if proton_charge:
+        if proton_charge_empty:
+            addSampleLogEntry('proton_charge', ws, start_time, extra_time_shift)
+        else:
+            addSampleLogEntry('proton_charge', ws, start_time, extra_time_shift)
+
+    # Add some other time series log entry
+    addSampleLogEntry('time_series_2', ws, start_time, extra_time_shift)
+    return ws
+
+def provide_event_ws_custom(name, start_time, extra_time_shift = 0.0, proton_charge = True, proton_charge_empty = False):
+    return provide_event_ws_with_entries(name=name, start_time=start_time,number_events = 100, extra_time_shift = extra_time_shift, proton_charge=proton_charge, proton_charge_empty=proton_charge_empty)
+
+def provide_event_ws(name, start_time, extra_time_shift):
+    return provide_event_ws_custom(name = name, start_time = start_time, extra_time_shift = extra_time_shift,  proton_charge = True)
+
+def provide_event_ws_wo_proton_charge(name, start_time, extra_time_shift):
+    return provide_event_ws_custom(name = name, start_time = start_time, extra_time_shift = extra_time_shift,  proton_charge = False)
+
+# This test does not pass and was not used before 1/4/2015. SansUtilitytests was disabled.
+
+class SANSUtilityTest(unittest.TestCase):
+
+    #def checkValues(self, list1, list2):
+
+    #    def _check_single_values( v1, v2):
+    #        self.assertAlmostEqual(v1, v2)
+
+    #    self.assertEqual(len(list1), len(list2))
+    #    for v1,v2 in zip(list1, list2):
+    #        start_1,stop_1 = v1
+    #        start_2, stop_2 = v2
+    #        _check_single_values(start_1, start_2)
+    #        _check_single_values(stop_1, stop_2)
+
+    #def test_checkValues(self):
+    #    """sanity check to ensure that the others will work correctly"""
+    #    values = [
+    #        [[1,2],],
+    #        [[None, 3],[4, None]],
+    #    ]
+    #    for singlevalues in values:
+    #        self.checkValues(singlevalues, singlevalues)
+    
+    #def test_parse_strings(self):
+    #    inputs = { '1-2':[[1,2]],         # single period syntax  min < x < max
+    #               '1.3-5.6':[[1.3,5.6]], # float
+    #               '1-2,3-4':[[1,2],[3,4]],# more than one slice
+    #               '>1':[[1, -1]],       # just lower bound
+    #               '<5':[[-1, 5]],      # just upper bound
+    #               '<5,8-9': [[-1, 5], [8,9]],
+    #               '1:2:5': [[1,3], [3,5]] # sintax: start, step, stop                   
+    #        }
+
+    #    for (k, v) in inputs.items(): 
+    #        self.checkValues(su.sliceParser(k),v)
+
+    #def test_accept_spaces(self):
+    #    self.checkValues(su.sliceParser("1 - 2, 3 - 4"), [[1,2],[3,4]])
+        
+    #def test_invalid_values_raise(self):
+    #    invalid_strs = ["5>6", ":3:", "MAX<min"]
+    #    for val in invalid_strs:
+    #        self.assertRaises(SyntaxError, su.sliceParser, val)
+
+    #def test_empty_string_is_valid(self):
+    #    self.checkValues(su.sliceParser(""), [[-1,-1]])
+
+    def test_extract_spectra(self):
+        mtd.clear()
+
+        ws = CreateSampleWorkspace("Histogram", "Multiple Peaks")
+        det_ids = [100, 102, 104]
+
+        result = su.extract_spectra(ws, det_ids, "result")
+
+        # Essentially, do we end up with our original workspace and the resulting
+        # workspace in the ADS, and NOTHING else?
+        self.assertTrue("result" in mtd)
+        self.assertTrue("ws" in mtd)
+        self.assertEquals(2, len(mtd))
+
+        self.assertEquals(result.getNumberHistograms(), len(det_ids))
+        self.assertEquals(result.getDetector(0).getID(), 100)
+        self.assertEquals(result.getDetector(1).getID(), 102)
+        self.assertEquals(result.getDetector(2).getID(), 104)
+
+        ws = CreateSampleWorkspace("Histogram", "Multiple Peaks")
+        det_ids = range(100, 299, 2)
+        result = su.extract_spectra(ws, det_ids, "result")
+
+    def test_get_masked_det_ids(self):
+        ws = CreateSampleWorkspace("Histogram", "Multiple Peaks")
+
+        MaskDetectors(Workspace=ws, DetectorList=[100, 102, 104])
+
+        masked_det_ids = list(su.get_masked_det_ids(ws))
+
+        self.assertTrue(100 in masked_det_ids)
+        self.assertTrue(102 in masked_det_ids)
+        self.assertTrue(104 in masked_det_ids)
+        self.assertEquals(len(masked_det_ids), 3)
+
+    def test_merge_to_ranges(self):
+        self.assertEquals([[1, 4]],                 su._merge_to_ranges([1, 2, 3, 4]))
+        self.assertEquals([[1, 3], [5, 7]],         su._merge_to_ranges([1, 2, 3, 5, 6, 7]))
+        self.assertEquals([[1, 3], [5, 5], [7, 9]], su._merge_to_ranges([1, 2, 3, 5, 7, 8, 9]))
+        self.assertEquals([[1, 1]],                 su._merge_to_ranges([1]))
+
+class TestBundleAddedEventDataFilesToGroupWorkspaceFile(unittest.TestCase):
+    def _prepare_workspaces(self, names):
+        CreateSampleWorkspace(WorkspaceType = 'Event', OutputWorkspace = names[0])
+        CreateWorkspace(DataX = [1,1,1], DataY = [1,1,1], OutputWorkspace = names[1])
+
+        temp_save_dir = config['defaultsave.directory']
+        if (temp_save_dir == ''):
+            temp_save_dir = os.getcwd()
+
+        data_file_name = os.path.join(temp_save_dir, names[0] + '.nxs')
+        monitor_file_name = os.path.join(temp_save_dir, names[1] + '.nxs')
+
+        SaveNexusProcessed(InputWorkspace = names[0], Filename = data_file_name)
+        SaveNexusProcessed(InputWorkspace = names[1], Filename = monitor_file_name)
+
+        file_names = [data_file_name, monitor_file_name]
+
+        return file_names
+
+
+    def _cleanup_workspaces(self, names):
+        for name in names:
+            DeleteWorkspace(name)
+
+
+    def test_load_valid_added_event_data_and_monitor_file_produces_group_ws(self):
+        # Arrange
+        names = ['event_data', 'monitor']
+        file_names = self._prepare_workspaces(names = names)
+        self._cleanup_workspaces(names = names)
+
+        # Act
+        group_ws_name = 'g_ws'
+        output_group_file_name = su.bundle_added_event_data_as_group(file_names[0], file_names[1])
+
+        Load(Filename = output_group_file_name, OutputWorkspace = group_ws_name)
+        group_ws = mtd[group_ws_name]
+
+        # Assert
+        self.assertTrue(isinstance(group_ws, WorkspaceGroup))
+        self.assertEqual(group_ws.size(), 2)
+        self.assertTrue(os.path.exists(file_names[0])) # File for group workspace exists
+        self.assertFalse(os.path.exists(file_names[1]))  # File for monitors is deleted
+
+        # Clean up
+        ws_names_to_delete = []
+        for ws_name in mtd.getObjectNames():
+            if ws_name != group_ws_name:
+                ws_names_to_delete.append(str(ws_name))
+        self._cleanup_workspaces(names = ws_names_to_delete)
+
+        if os.path.exists(file_names[0]):
+            os.remove(file_names[0])
+
+class TestLoadingAddedEventWorkspaceNameParsing(unittest.TestCase):
+
+    def do_test_load_check(self, event_name, monitor_name):
+        out_name = 'out_ws'
+        provide_group_workspace_for_added_event_data(event_ws_name = event_name, monitor_ws_name = monitor_name, out_ws_name = out_name)
+        out_ws = mtd[out_name]
+        self.assertTrue(su.check_child_ws_for_name_and_type_for_added_eventdata(out_ws))
+        DeleteWorkspace(out_ws)
+
+    def test_check_regex_for_data(self):
+        # Check when there is no special ending
+        self.assertNotEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_DATA))
+        # Check when there is a _1 ending
+        self.assertNotEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_DATA1))
+        # Check when there is a _2 ending
+        self.assertNotEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_DATA2))
+        # Check when there is a multiple ending
+        self.assertNotEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_DATA3))
+
+
+    def test_check_regex_for_data_monitors(self):
+        # Check when there is no special ending
+        self.assertNotEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_MON))
+        # Check when there is a _1 ending
+        self.assertNotEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_MON1))
+        # Check when there is a _2 ending
+        self.assertNotEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_MON2))
+        # Check when there is a multiple ending
+        self.assertNotEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_MON3))
+
+    def test_regexes_do_not_clash(self):
+        # Check when there is no special ending
+        self.assertEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_MON)) 
+        self.assertEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_DATA))
+        # Check when there is a _1 ending
+        self.assertEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_MON1)) 
+        self.assertEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_DATA1))
+        # Check when there is a _2 ending
+        self.assertEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_MON2)) 
+        self.assertEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_DATA2))
+        # Check when there is a multiple ending
+        self.assertEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_MON3)) 
+        self.assertEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_DATA3))
+    
+    def test_check_child_file_names_for_valid_names(self):
+        # Check when there is no special ending
+        event_name = TEST_STRING_DATA
+        monitor_name = TEST_STRING_MON
+        self.do_test_load_check(event_name = event_name, monitor_name = monitor_name)
+
+        # Check when there is a _1 ending
+        event_name1 = TEST_STRING_DATA1
+        monitor_name1 = TEST_STRING_MON1
+        self.do_test_load_check(event_name = event_name1, monitor_name = monitor_name1)
+
+        # Check when there is a _2 ending
+        event_name2 = TEST_STRING_DATA2
+        monitor_name2 = TEST_STRING_MON2
+        self.do_test_load_check(event_name = event_name2, monitor_name = monitor_name2)
+
+        # Check when there is a multiple ending
+        event_name3 = TEST_STRING_DATA3
+        monitor_name3 = TEST_STRING_MON3
+        self.do_test_load_check(event_name = event_name3, monitor_name = monitor_name3)
+
+class TestLoadingAddedEventWorkspaceExtraction(unittest.TestCase):
+    _appendix = '_monitors'
+
+    def do_test_extraction(self, event_name, monitor_name):
+        out_ws_name = 'out_group'
+        event_name_expect = out_ws_name
+        monitor_name_expect = out_ws_name + self._appendix
+
+        provide_group_workspace_for_added_event_data(event_ws_name = event_name, monitor_ws_name = monitor_name, out_ws_name = out_ws_name)
+        out_ws_group = mtd[out_ws_name]
+
+        # Act
+        su.extract_child_ws_for_added_eventdata(out_ws_group, self._appendix)
+
+        # Assert
+        self.assertTrue(event_name_expect in mtd)
+        self.assertTrue(monitor_name_expect in mtd)
+
+        DeleteWorkspace(event_name_expect)
+        DeleteWorkspace(monitor_name_expect)
+
+
+    def test_extract_data_and_monitor_child_ws(self):
+        # Check when there is no special ending
+        self.do_test_extraction(TEST_STRING_DATA, TEST_STRING_MON)
+
+
+
+
+
+class AddOperationTest(unittest.TestCase):
+    def compare_added_workspaces(self,ws1, ws2, out_ws, start_time1, start_time2, extra_time_shift, isOverlay):
+        self._compare_added_logs(ws1, ws2, out_ws, start_time1, start_time2, extra_time_shift, isOverlay)
+        # Could compare events here, but trusting add algorithm for now
+
+    def _compare_added_logs(self, ws1, ws2, out_ws,time1, time2, extra_time_shift, isOverlay):
+        run1 = ws1.getRun()
+        run2 = ws2.getRun()
+        out_run = out_ws.getRun()
+        props_out = out_run.getProperties()
+
+        # Check that all times of workspace1 and workspace2 can be found in the outputworkspace
+        for prop in props_out:
+            if isinstance(prop, FloatTimeSeriesProperty) or isinstance(prop, BoolTimeSeriesProperty) or isinstance(prop, StringTimeSeriesProperty):
+                prop1 = run1.getProperty(prop.name)
+                prop2 = run2.getProperty(prop.name)
+                self._compare_time_series(prop, prop1, prop2, time1, time2, extra_time_shift, isOverlay)
+            elif isinstance(prop, StringPropertyWithValue):
+                pass
+
+    def _compare_time_series(self, prop_out, prop_in1, prop_in2, time1, time2, extra_time_shift, isOverlay):
+        times_out = prop_out.times
+        times1 = prop_in1.times
+        times2 = prop_in2.times
+
+        # Total time differnce is TIME1 - (TIME2 + extraShift)
+        shift = 0.0
+        if isOverlay:
+            shift = time_duration.total_nanoseconds(DateAndTime(time1)- DateAndTime(time2))/1e9 - extra_time_shift
+
+        # Check ws1 against output
+        # We shift the second workspace onto the first workspace
+        shift_ws1 = 0
+        self._assert_times(times1, times_out, shift_ws1)
+        # Check ws2 against output
+        self._assert_times(times2, times_out, shift)
+        # Check overlapping times
+        self._compare_overlapping_times(prop_in1, prop_out, times1, times2, times_out, shift)
+
+    def _assert_times(self, times_in, times_out, shift):
+        for time in times_in:
+            # Add the shift in nanaoseconds to the DateAndTime object ( the plus operator is defined
+            # for nanoseconds)
+            converted_time = time + int(shift*1e9)
+            self.assertTrue(converted_time in times_out)
+
+    def _compare_overlapping_times(self, prop_in1, prop_out, times1, times2, times_out, shift):
+        overlap_times= []
+        for time in times1:
+            if time in times2:
+                overlap_times.append(time)
+        # Now go through all those overlap times and check that the value of the 
+        # first workspace is recorded in the output
+        for overlap_time in overlap_times:
+            times1_list = list(times1)
+            timesout_list = list(times_out)
+            index_in1 = times1_list.index(overlap_time)
+            index_out = timesout_list.index(overlap_time)
+            value_in1 = prop_in1.nthValue(index_in1)
+            value_out = prop_out.nthValue(index_out)
+            self.assertTrue(value_in1 == value_out)
+
+    def test_two_files_are_added_correctly_for_overlay_on(self):
+        isOverlay = True
+        names =['ws1', 'ws2']
+        out_ws_name = 'out_ws'
+        # Create event ws1
+        start_time_1 = "2010-01-01T00:00:00"
+        ws1 = provide_event_ws_with_entries(names[0],start_time_1, extra_time_shift = 0.0)
+        # Create event ws2
+        start_time_2 = "2012-01-01T00:10:00"
+        ws2 = provide_event_ws(names[1],start_time_2, extra_time_shift = 0.0)
+        # Create adder
+        adder = su.AddOperation(isOverlay, '')
+        # Act
+        adder.add(ws1, ws2,out_ws_name, 0)
+        out_ws = mtd[out_ws_name]
+        # Assert
+        self.compare_added_workspaces(ws1, ws2, out_ws, start_time_1, start_time_2, extra_time_shift = 0.0, isOverlay = isOverlay)
+
+    def test_two_files_are_added_correctly_for_overlay_on_and_inverted_times(self):
+        isOverlay = True
+        names =['ws1', 'ws2']
+        out_ws_name = 'out_ws'
+        # Create event ws1
+        start_time_1 = "2012-01-01T00:10:00"
+        ws1 = provide_event_ws_with_entries(names[0],start_time_1, extra_time_shift = 0.0)
+        # Create event ws2
+        start_time_2 = "2010-01-01T00:00:00"
+        ws2 = provide_event_ws(names[1],start_time_2, extra_time_shift = 0.0)
+        # Create adder
+        adder = su.AddOperation(isOverlay, '')
+        # Act
+        adder.add(ws1, ws2,out_ws_name, 0)
+        out_ws = mtd[out_ws_name]
+        # Assert
+        self.compare_added_workspaces(ws1, ws2, out_ws, start_time_1, start_time_2, extra_time_shift = 0.0, isOverlay = isOverlay)
+
+    def test_two_files_are_added_correctly_for_overlay_off(self):
+        isOverlay = False
+        names =['ws1', 'ws2']
+        out_ws_name = 'out_ws'
+        # Create event ws1
+        start_time_1 = "2010-01-01T00:00:00"
+        ws1 = provide_event_ws_with_entries(names[0],start_time_1, extra_time_shift = 0.0)
+        # Create event ws2
+        start_time_2 = "2012-01-01T01:00:00"
+        ws2 = provide_event_ws(names[1],start_time_2, extra_time_shift = 0.0)
+        # Create adder
+        adder = su.AddOperation(False, '')
+        # Act
+        adder.add(ws1, ws2,out_ws_name, 0)
+        out_ws = mtd[out_ws_name]
+        # Assert
+        self.compare_added_workspaces(ws1, ws2, out_ws, start_time_1, start_time_2, extra_time_shift = 0.0, isOverlay = isOverlay)
+
+    def test_two_files_are_added_correctly_with_time_shift(self):
+        isOverlay = True
+        names =['ws1', 'ws2']
+        out_ws_name = 'out_ws'
+        time_shift = 100
+        # Create event ws1
+        start_time_1 = "2010-01-01T00:00:00"
+        ws1 = provide_event_ws_with_entries(names[0],start_time_1, extra_time_shift = 0.0)
+        # Create event ws2
+        start_time_2 = "2012-01-01T01:10:00"
+        ws2 = provide_event_ws(names[1],start_time_2, extra_time_shift = time_shift )
+        # Create adder
+        adder = su.AddOperation(True, str(time_shift))
+        # Act
+        adder.add(ws1, ws2,out_ws_name, 0)
+        out_ws = mtd[out_ws_name]
+        # Assert
+        self.compare_added_workspaces(ws1, ws2, out_ws, start_time_1, start_time_2, extra_time_shift = time_shift, isOverlay = isOverlay)
+
+
+    def test_multiple_files_are_overlayed_correctly(self):
+        isOverlay = True
+        names =['ws1', 'ws2', 'ws3']
+        out_ws_name = 'out_ws'
+        out_ws_name2 = 'out_ws2'
+        # Create event ws1
+        start_time_1 = "2010-01-01T00:00:00"
+        ws1 = provide_event_ws_with_entries(names[0],start_time_1, extra_time_shift = 0.0)
+        # Create event ws2
+        start_time_2 = "2012-01-01T00:00:00"
+        ws2 = provide_event_ws(names[1],start_time_2, extra_time_shift = 0.0)
+        # Create event ws3
+        start_time_3 = "2013-01-01T00:00:00"
+        ws3 = provide_event_ws(names[2],start_time_3, extra_time_shift = 0.0)
+        # Create adder
+        adder = su.AddOperation(True, '')
+        # Act
+        adder.add(ws1, ws2,out_ws_name, 0)
+        adder.add(out_ws_name, ws3, out_ws_name2, 0)
+        out_ws2 = mtd[out_ws_name2]
+        out_ws = mtd[out_ws_name]
+        # Assert
+        self.compare_added_workspaces(out_ws, ws2, out_ws2, start_time_1, start_time_2, extra_time_shift = 0.0, isOverlay = isOverlay)
+
+class TestCombineWorkspacesFactory(unittest.TestCase):
+    def test_that_factory_returns_overlay_class(self):
+        factory = su.CombineWorkspacesFactory()
+        alg = factory.create_add_algorithm(True)
+        self.assertTrue(isinstance(alg, su.OverlayWorkspaces))
+
+    def test_that_factory_returns_overlay_class(self):
+        factory = su.CombineWorkspacesFactory()
+        alg = factory.create_add_algorithm(False)
+        self.assertTrue(isinstance(alg, su.PlusWorkspaces))
+
+class TestOverlayWorkspaces(unittest.TestCase):
+    def test_time_from_proton_charge_log_is_recovered(self):
+        # Arrange
+        names =['ws1', 'ws2']
+        out_ws_name = 'out_ws'
+
+        start_time_1 = "2010-01-01T00:00:00"
+        event_ws_1 = provide_event_ws(names[0],start_time_1, extra_time_shift = 0.0)
+
+        start_time_2 = "2012-01-01T00:00:00"
+        event_ws_2 = provide_event_ws(names[1],start_time_2, extra_time_shift = 0.0)
+
+        # Act
+        overlayWorkspaces = su.OverlayWorkspaces()
+        time_difference = overlayWorkspaces._extract_time_difference_in_seconds(event_ws_1, event_ws_2)
+
+        # Assert
+        expected_time_difference = time_duration.total_nanoseconds(DateAndTime(start_time_1)- DateAndTime(start_time_2))/1e9
+        self.assertEqual(time_difference, expected_time_difference)
+
+        # Clean up 
+        self._clean_up(names)
+        self._clean_up(out_ws_name)
+
+    def test_that_time_difference_adds_correct_optional_shift(self):
+         # Arrange
+        names =['ws1', 'ws2']
+        out_ws_name = 'out_ws'
+
+        start_time_1 = "2010-01-01T00:00:00"
+        event_ws_1 = provide_event_ws(names[0],start_time_1, extra_time_shift = 0.0)
+
+        # Extra shift in seconds
+        optional_time_shift = 1000
+        start_time_2 = "2012-01-01T00:00:00"
+        event_ws_2 = provide_event_ws(names[1],start_time_2, extra_time_shift = optional_time_shift)
+
+        # Act
+        overlayWorkspaces = su.OverlayWorkspaces()
+        time_difference = overlayWorkspaces._extract_time_difference_in_seconds(event_ws_1, event_ws_2)
+
+        # Assert
+        expected_time_difference = time_duration.total_nanoseconds(DateAndTime(start_time_1)- DateAndTime(start_time_2))/1e9
+        expected_time_difference -= optional_time_shift # Need to subtract as we add the time shift to the subtrahend
+        self.assertEqual(time_difference, expected_time_difference)
+
+        # Clean up 
+        self._clean_up(names)
+        self._clean_up(out_ws_name)
+
+    def test_error_is_raised_if_proton_charge_is_missing(self):
+        # Arrange
+        names =['ws1', 'ws2']
+        out_ws_name = 'out_ws'
+
+        start_time_1 = "2010-01-01T00:00:00"
+        event_ws_1 = provide_event_ws_custom(name = names[0], start_time = start_time_1, extra_time_shift = 0.0, proton_charge = False)
+
+        # Extra shift in seconds
+        start_time_2 = "2012-01-01T00:00:00"
+        event_ws_2 = provide_event_ws_custom(name = names[1], start_time = start_time_2, extra_time_shift = 0.0,proton_charge = False)
+
+        # Act and Assert
+        overlayWorkspaces = su.OverlayWorkspaces()
+        args=[event_ws_1, event_ws_2]
+        kwargs = {}
+        self.assertRaises(RuntimeError, overlayWorkspaces._extract_time_difference_in_seconds, *args, **kwargs)
+
+        # Clean up 
+        self._clean_up(names)
+        self._clean_up(out_ws_name)
+
+    def test_correct_time_difference_is_extracted(self):
+        pass
+    def test_workspaces_are_normalized_by_proton_charge(self):
+        pass
+
+    def _clean_up(self,names):
+        for name in names:
+            if name in mtd.getObjectNames():
+                DeleteWorkspace(name)
+
+class TestTimeShifter(unittest.TestCase):
+    def test_zero_shift_when_out_of_range(self):
+        # Arrange
+        time_shifts = ['12', '333.6', '-232']
+        time_shifter = su.TimeShifter(time_shifts)
+
+        # Act and Assert
+        self.assertEqual(time_shifter.get_Nth_time_shift(0), 12.0)
+        self.assertEqual(time_shifter.get_Nth_time_shift(1), 333.6)
+        self.assertEqual(time_shifter.get_Nth_time_shift(2), -232.0)
+        self.assertEqual(time_shifter.get_Nth_time_shift(3), 0.0)
+
+    def test_zero_shift_when_bad_cast(self):
+        # Arrange
+        time_shifts = ['12', '33a.6', '-232']
+        time_shifter = su.TimeShifter(time_shifts)
+
+        # Act and Assert
+        self.assertEqual(time_shifter.get_Nth_time_shift(0), 12.0)
+        self.assertEqual(time_shifter.get_Nth_time_shift(1), 0.0)
+        self.assertEqual(time_shifter.get_Nth_time_shift(2), -232.0)
+        self.assertEqual(time_shifter.get_Nth_time_shift(3), 0.0)
+
+class TestZeroErrorFreeWorkspace(unittest.TestCase):
+    def _setup_workspace(self, name, type):
+        ws = CreateSampleWorkspace(OutputWorkspace = name, WorkspaceType=type, Function='One Peak',NumBanks=1,BankPixelWidth=2,NumEvents=0,XMin=0.5,XMax=1,BinWidth=1,PixelSpacing=1,BankDistanceFromSample=1)
+        if type == 'Histogram':
+            errors = ws.dataE
+            # For first and third spectra set to 0.0
+            errors(0)[0] = 0.0
+            errors(2)[0] = 0.0
+
+    def _removeWorkspace(self, name):
+        if name in mtd:
+            mtd.remove(name)
+
+    def test_that_non_existent_ws_creates_error_message(self):
+        # Arrange
+        ws_name = 'original'
+        ws_clone_name = 'clone'
+        # Act
+        message, complete = su.create_zero_error_free_workspace(input_workspace_name = ws_name, output_workspace_name = ws_clone_name)
+        # Assert
+        message.strip()
+        self.assertTrue(message)
+        self.assertTrue(not complete)
+
+    def test_that_bad_zero_error_removal_creates_error_message(self):
+        # Arrange
+        ws_name = 'original'
+        ws_clone_name = 'clone'
+        self._setup_workspace(ws_name, 'Event')
+        # Act
+        message, complete= su.create_zero_error_free_workspace(input_workspace_name = ws_name, output_workspace_name = ws_clone_name)
+        # Assert
+        message.strip()
+        self.assertTrue(message)
+        self.assertTrue(not ws_clone_name in mtd)
+        self.assertTrue(not complete)
+
+        self._removeWorkspace(ws_name)
+        self.assertTrue(not ws_name in mtd)
+
+    def test_that_zeros_are_removed_correctly(self):
+        # Arrange
+        ws_name = 'original'
+        ws_clone_name = 'clone'
+        self._setup_workspace(ws_name, 'Histogram')
+        # Act
+        message, complete = su.create_zero_error_free_workspace(input_workspace_name = ws_name, output_workspace_name = ws_clone_name)
+        # Assert
+        message.strip()
+        print message
+       # self.assertTrue(not message)
+        #self.assertTrue(complete)
+        self.assertTrue(mtd[ws_name] != mtd[ws_clone_name])
+
+        self._removeWorkspace(ws_name)
+        self._removeWorkspace(ws_clone_name)
+        self.assertTrue(not ws_name in mtd)
+        self.assertTrue(not ws_clone_name in mtd)
+
+    def test_throws_for_non_Workspace2D(self):
+        # Arrange
+        ws_name = 'test'
+        type ='Event'
+        self._setup_workspace(ws_name, type)
+        ws = mtd[ws_name]
+
+        # Act and Assert
+        self.assertRaises(ValueError, su.remove_zero_errors_from_workspace, ws)
+
+        self._removeWorkspace(ws_name)
+        self.assertTrue(not ws_name in mtd)
+
+    def test_removes_zero_errors_correctly(self):
+        # Arrange
+        ws_name = 'test'
+        type ='Histogram'
+        self._setup_workspace(ws_name, type)
+        ws = mtd[ws_name]
+
+        # Act and Assert
+        errors = ws.dataE
+        self.assertTrue(errors(0)[0] == 0.0)
+        self.assertTrue(errors(1)[0] != 0.0)
+        self.assertTrue(errors(2)[0] == 0.0)
+        self.assertTrue(errors(3)[0] != 0.0)
+
+        su.remove_zero_errors_from_workspace(ws)
+
+        self.assertTrue(errors(0)[0] == su.ZERO_ERROR_DEFAULT)
+        self.assertTrue(errors(1)[0] != 0.0)
+        self.assertTrue(errors(1)[0] != su.ZERO_ERROR_DEFAULT)
+        self.assertTrue(errors(2)[0] == su.ZERO_ERROR_DEFAULT)
+        self.assertTrue(errors(3)[0] != 0.0)
+        self.assertTrue(errors(3)[0] != su.ZERO_ERROR_DEFAULT)
+
+        self._removeWorkspace(ws_name)
+        self.assertTrue(not ws_name in mtd)
+
+    def test_that_deletion_of_non_existent_ws_creates_error_message(self):
+        # Arrange
+        ws_name = 'ws'
+        # Act
+        message, complete = su.delete_zero_error_free_workspace(input_workspace_name = ws_name)
+        # Assert
+        message.strip()
+        self.assertTrue(message)
+        self.assertTrue(not complete)
+
+    def test_that_deletion_of_extent_ws_is_successful(self):
+        # Arrange
+        ws_name = 'ws'
+        self._setup_workspace(ws_name, 'Histogram')
+        # Act + Assert
+        self.assertTrue(ws_name in mtd)
+        message, complete = su.delete_zero_error_free_workspace(input_workspace_name = ws_name)
+        message.strip()
+        self.assertTrue(not message)
+        self.assertTrue(complete)
+        self.assertTrue(not ws_name in mtd)
+
+    def test_non_Q1D_and_Qxy_history_is_not_valid_and_produces_error_message(self):
+        # Arrange
+        ws_name = 'ws'
+        self._setup_workspace(ws_name, 'Histogram')
+        # Act
+        message, complete = su.is_valid_ws_for_removing_zero_errors(input_workspace_name = ws_name)
+        # Assert
+        message.strip()
+        self.assertTrue(message)
+        self.assertTrue(not complete)
+
+        self._removeWorkspace(ws_name)
+        self.assertTrue(not ws_name in mtd)
+
+
+class TestRenameMonitorsForMultiPeriodEventData(unittest.TestCase):
+    monitor_appendix="_monitors"
+    def test_monitors_are_renamed_correctly(self):
+        #Arrange
+        ws_1 = CreateSampleWorkspace()
+        ws_2 = CreateSampleWorkspace()
+        ws_3 = CreateSampleWorkspace()
+
+        ws_mon_1 = CreateSampleWorkspace()
+        ws_mon_2 = CreateSampleWorkspace()
+        ws_mon_3 = CreateSampleWorkspace()
+
+        ws_group = GroupWorkspaces(InputWorkspaces=[ws_1, ws_2, ws_3])
+        ws_mon_group = GroupWorkspaces(InputWorkspaces=[ws_mon_1, ws_mon_2, ws_mon_3])
+
+        # Act
+        su.rename_monitors_for_multiperiod_event_data(ws_mon_group, ws_group, self.monitor_appendix)
+
+        # Assert
+        self.assertTrue(ws_mon_1.name() == ws_1.name() + self.monitor_appendix, "Monitors should be renamed to xxxx_monitors")
+        self.assertTrue(ws_mon_2.name() == ws_2.name() + self.monitor_appendix, "Monitors should be renamed to xxxx_monitors")
+        self.assertTrue(ws_mon_3.name() == ws_3.name() + self.monitor_appendix, "Monitors should be renamed to xxxx_monitors")
+
+        # Clean up
+        for element in mtd.getObjectNames():
+            if element in mtd:
+                DeleteWorkspace(element)
+
+    def test_expection_is_raised_when_workspaec_and_monitor_mismatch(self):
+        #Arrange
+        ws_1 = CreateSampleWorkspace()
+        ws_2 = CreateSampleWorkspace()
+        ws_3 = CreateSampleWorkspace()
+
+        ws_mon_1 = CreateSampleWorkspace()
+        ws_mon_2 = CreateSampleWorkspace()
+
+        ws_group = GroupWorkspaces(InputWorkspaces=[ws_1, ws_2, ws_3])
+        ws_mon_group = GroupWorkspaces(InputWorkspaces=[ws_mon_1, ws_mon_2])
+
+        # Act + Assert
+        args = {'monitor_worksapce': ws_mon_group, 'workspace':ws_group, 'appendix':self.monitor_appendix}
+        self.assertRaises(RuntimeError, su.rename_monitors_for_multiperiod_event_data, *args)
+
+        # Clean up
+        for element in mtd.getObjectNames():
+            if element in mtd:
+                DeleteWorkspace(element)
+
+class TestConvertibleToInteger(unittest.TestCase):
+    def test_converts_true_to_integer_when_integer(self):
+        # Arrange
+        input = 3
+        # Act
+        result = su.is_convertible_to_int(input)
+        # Assert
+        self.assertTrue(result)
+
+    def test_converts_true_to_integer_when_convertible_string(self):
+        # Arrange
+        input = '34'
+        # Act
+        result = su.is_convertible_to_int(input)
+        # Assert
+        self.assertTrue(result)
+
+    def test__converts_false_to_integer_when_non_convertible_string(self):
+        # Arrange
+        input = '34_gt'
+        # Act
+        result = su.is_convertible_to_int(input)
+        # Assert
+        self.assertFalse(result)
+
+class TestConvertibleToFloat(unittest.TestCase):
+    def test_converts_true_to_float_when_float(self):
+        # Arrange
+        input = 3.8
+        # Act
+        result = su.is_convertible_to_float(input)
+        # Assert
+        self.assertTrue(result)
+
+    def test_convertible_true_to_float_when_convertible_string(self):
+        # Arrange
+        input = "4.78"
+        # Act
+        result = su.is_convertible_to_float(input)
+        # Assert
+        self.assertTrue(result)
+
+    def test_converts_false_to_float_when_convertible_string(self):
+        # Arrange
+        input = "4.78_tg"
+        # Act
+        result = su.is_convertible_to_float(input)
+        # Assert
+        self.assertFalse(result)
+
+class TestValidXmlFileList(unittest.TestCase):
+    def test_finds_valid_xml_file_list(self):
+        # Arrange
+        input = ["test1.xml", "test2.xml", "test3.xml"]
+        # Act
+        result =su.is_valid_xml_file_list(input)
+        # Assert
+        self.assertTrue(result)
+
+    def test_finds_invalid_xml_file_list(self):
+        # Arrange
+        input = ["test1.xml", "test2.ccl", "test3.xml"]
+        # Act
+        result =su.is_valid_xml_file_list(input)
+        # Assert
+        self.assertFalse(result)
+
+    def test_finds_empty_list(self):
+        # Arrange
+        input = []
+        # Act
+        result = su.is_valid_xml_file_list(input)
+        # Assert
+        self.assertFalse(result)
+
+class TestConvertToAndFromPythonStringList(unittest.TestCase):
+    def test_converts_from_string_to_list(self):
+        # Arrange
+        input = "test1.xml, test2.xml, test3.xml"
+        # Act
+        result = su.convert_to_string_list(input)
+        # Assert
+        expected = "['test1.xml','test2.xml','test3.xml']"
+        self.assertEqual(expected, result)
+    def test_converts_from_list_to_string(self):
+        # Arrange
+        input = ["test1.xml", "test2.xml", "test3.xml"]
+        # Act
+        result = su.convert_from_string_list(input)
+        # Assert
+        expected = "test1.xml,test2.xml,test3.xml"
+        self.assertEqual(expected, result)
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/Code/Mantid/scripts/test/SANSUtilitytests.py b/Code/Mantid/scripts/test/SANSUtilitytests.py
deleted file mode 100644
index 132d16da42611101409b2a02ac1873bea3947f2f..0000000000000000000000000000000000000000
--- a/Code/Mantid/scripts/test/SANSUtilitytests.py
+++ /dev/null
@@ -1,227 +0,0 @@
-
-import unittest
-import re
-# Need to import mantid before we import SANSUtility
-import mantid
-from mantid.simpleapi import *
-from mantid.api import mtd, WorkspaceGroup
-import SANSUtility as su
-import re
-
-TEST_STRING_DATA = 'SANS2D0003434-add' + su.ADDED_EVENT_DATA_TAG
-TEST_STRING_MON = 'SANS2D0003434-add_monitors' + su.ADDED_EVENT_DATA_TAG
-
-TEST_STRING_DATA1 = TEST_STRING_DATA + '_1'
-TEST_STRING_MON1 = TEST_STRING_MON + '_1'
-
-TEST_STRING_DATA2 = TEST_STRING_DATA + '_2'
-TEST_STRING_MON2 = TEST_STRING_MON + '_2'
-
-TEST_STRING_DATA3 = TEST_STRING_DATA + '_3'
-TEST_STRING_MON3 = TEST_STRING_MON + '_3'
-
-def provide_group_workspace_for_added_event_data(event_ws_name, monitor_ws_name, out_ws_name):
-    CreateWorkspace(DataX = [1,2,3], DataY = [2,3,4], OutputWorkspace = monitor_ws_name)
-    CreateSampleWorkspace(WorkspaceType= 'Event', OutputWorkspace = event_ws_name)
-    GroupWorkspaces(InputWorkspaces = [event_ws_name, monitor_ws_name ], OutputWorkspace = out_ws_name)
-
-# This test does not pass and was not used before 1/4/2015. SansUtilitytests was disabled.
-
-#class TestSliceStringParser(unittest.TestCase):
-
-#    def checkValues(self, list1, list2):
-
-#        def _check_single_values( v1, v2):
-#            self.assertAlmostEqual(v1, v2)
-
-#        self.assertEqual(len(list1), len(list2))
-#        for v1,v2 in zip(list1, list2):
-#            start_1,stop_1 = v1
-#            start_2, stop_2 = v2
-#            _check_single_values(start_1, start_2)
-#            _check_single_values(stop_1, stop_2)
-
-#    def test_checkValues(self):
-#        """sanity check to ensure that the others will work correctly"""
-#        values = [  [[1,2],],
-#                  [[None, 3],[4, None]],
-#                 ]
-#        for singlevalues in values:
-#            self.checkValues(singlevalues, singlevalues)
-
-
-#    def test_parse_strings(self):
-#        inputs = { '1-2':[[1,2]],         # single period syntax  min < x < max
-#                   '1.3-5.6':[[1.3,5.6]], # float
-#                   '1-2,3-4':[[1,2],[3,4]],# more than one slice
-#                   '>1':[[1, -1]],       # just lower bound
-#                   '<5':[[-1, 5]],      # just upper bound
-#                   '<5,8-9': [[-1, 5], [8,9]],
-#                   '1:2:5': [[1,3], [3,5]] # sintax: start, step, stop
-#            }
-
-#        for (k, v) in inputs.items():
-#            self.checkValues(su.sliceParser(k),v)
-
-#    def test_accept_spaces(self):
-#        self.checkValues(su.sliceParser("1 - 2, 3 - 4"), [[1,2],[3,4]])
-
-#    def test_invalid_values_raise(self):
-#        invalid_strs = ["5>6", ":3:", "MAX<min"]
-#        for val in invalid_strs:
-#            self.assertRaises(SyntaxError, su.sliceParser, val)
-
-#    def test_empty_string_is_valid(self):
-#        self.checkValues(su.sliceParser(""), [[-1,-1]])
-
-class TestBundleAddedEventDataFilesToGroupWorkspaceFile(unittest.TestCase):
-    def _prepare_workspaces(self, names):
-        CreateSampleWorkspace(WorkspaceType = 'Event', OutputWorkspace = names[0])
-        CreateWorkspace(DataX = [1,1,1], DataY = [1,1,1], OutputWorkspace = names[1])
-
-        temp_save_dir = config['defaultsave.directory']
-        if (temp_save_dir == ''):
-            temp_save_dir = os.getcwd()
-
-        data_file_name = os.path.join(temp_save_dir, names[0] + '.nxs')
-        monitor_file_name = os.path.join(temp_save_dir, names[1] + '.nxs')
-
-        SaveNexusProcessed(InputWorkspace = names[0], Filename = data_file_name)
-        SaveNexusProcessed(InputWorkspace = names[1], Filename = monitor_file_name)
-
-        file_names = [data_file_name, monitor_file_name]
-
-        return file_names
-
-
-    def _cleanup_workspaces(self, names):
-        for name in names:
-            DeleteWorkspace(name)
-
-
-    def test_load_valid_added_event_data_and_monitor_file_produces_group_ws(self):
-        # Arrange
-        names = ['event_data', 'monitor']
-        file_names = self._prepare_workspaces(names = names)
-        self._cleanup_workspaces(names = names)
-
-        # Act
-        group_ws_name = 'g_ws'
-        output_group_file_name = su.bundle_added_event_data_as_group(file_names[0], file_names[1])
-
-        Load(Filename = output_group_file_name, OutputWorkspace = group_ws_name)
-        group_ws = mtd[group_ws_name]
-
-        # Assert
-        self.assertTrue(isinstance(group_ws, WorkspaceGroup))
-        self.assertEqual(group_ws.size(), 2)
-        self.assertTrue(os.path.exists(file_names[0])) # File for group workspace exists
-        self.assertFalse(os.path.exists(file_names[1]))  # File for monitors is deleted
-
-        # Clean up
-        ws_names_to_delete = []
-        for ws_name in mtd.getObjectNames():
-            if ws_name != group_ws_name:
-                ws_names_to_delete.append(str(ws_name))
-        self._cleanup_workspaces(names = ws_names_to_delete)
-
-        if os.path.exists(file_names[0]):
-            os.remove(file_names[0])
-
-
-class TestLoadingAddedEventWorkspaceNameParsing(unittest.TestCase):
-
-    def do_test_load_check(self, event_name, monitor_name):
-        out_name = 'out_ws'
-        provide_group_workspace_for_added_event_data(event_ws_name = event_name, monitor_ws_name = monitor_name, out_ws_name = out_name)
-        out_ws = mtd[out_name]
-        self.assertTrue(su.check_child_ws_for_name_and_type_for_added_eventdata(out_ws))
-        DeleteWorkspace(out_ws)
-
-    def test_check_regex_for_data(self):
-        # Check when there is no special ending
-        self.assertNotEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_DATA))
-        # Check when there is a _1 ending
-        self.assertNotEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_DATA1))
-        # Check when there is a _2 ending
-        self.assertNotEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_DATA2))
-        # Check when there is a multiple ending
-        self.assertNotEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_DATA3))
-
-
-    def test_check_regex_for_data_monitors(self):
-        # Check when there is no special ending
-        self.assertNotEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_MON))
-        # Check when there is a _1 ending
-        self.assertNotEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_MON1))
-        # Check when there is a _2 ending
-        self.assertNotEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_MON2))
-        # Check when there is a multiple ending
-        self.assertNotEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_MON3))
-
-    def test_regexes_do_not_clash(self):
-        # Check when there is no special ending
-        self.assertEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_MON)) 
-        self.assertEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_DATA))
-        # Check when there is a _1 ending
-        self.assertEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_MON1)) 
-        self.assertEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_DATA1))
-        # Check when there is a _2 ending
-        self.assertEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_MON2)) 
-        self.assertEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_DATA2))
-        # Check when there is a multiple ending
-        self.assertEqual(None, re.search(su.REG_DATA_NAME, TEST_STRING_MON3)) 
-        self.assertEqual(None, re.search(su.REG_DATA_MONITORS_NAME, TEST_STRING_DATA3))
-    
-    def test_check_child_file_names_for_valid_names(self):
-        # Check when there is no special ending
-        event_name = TEST_STRING_DATA
-        monitor_name = TEST_STRING_MON
-        self.do_test_load_check(event_name = event_name, monitor_name = monitor_name)
-
-        # Check when there is a _1 ending
-        event_name1 = TEST_STRING_DATA1
-        monitor_name1 = TEST_STRING_MON1
-        self.do_test_load_check(event_name = event_name1, monitor_name = monitor_name1)
-
-        # Check when there is a _2 ending
-        event_name2 = TEST_STRING_DATA2
-        monitor_name2 = TEST_STRING_MON2
-        self.do_test_load_check(event_name = event_name2, monitor_name = monitor_name2)
-
-        # Check when there is a multiple ending
-        event_name3 = TEST_STRING_DATA3
-        monitor_name3 = TEST_STRING_MON3
-        self.do_test_load_check(event_name = event_name3, monitor_name = monitor_name3)
-
-
-class TestLoadingAddedEventWorkspaceExtraction(unittest.TestCase):
-    _appendix = '_monitors'
-
-    def do_test_extraction(self, event_name, monitor_name):
-        out_ws_name = 'out_group'
-        event_name_expect = out_ws_name
-        monitor_name_expect = out_ws_name + self._appendix
-
-        provide_group_workspace_for_added_event_data(event_ws_name = event_name, monitor_ws_name = monitor_name, out_ws_name = out_ws_name)
-        out_ws_group = mtd[out_ws_name]
-        
-        # Act
-        su.extract_child_ws_for_added_eventdata(out_ws_group, self._appendix)
-
-        # Assert
-
-        self.assertTrue(event_name_expect in mtd)
-        self.assertTrue(monitor_name_expect in mtd)
-
-        DeleteWorkspace(event_name_expect)
-        DeleteWorkspace(monitor_name_expect)
-
-
-    def test_extract_data_and_monitor_child_ws(self):
-        # Check when there is no special ending
-        self.do_test_extraction(TEST_STRING_DATA, TEST_STRING_MON)
-
-
-if __name__ == "__main__":
-    unittest.main()
diff --git a/Code/Mantid/scripts/test/SansIsisGuiSettings.py b/Code/Mantid/scripts/test/SansIsisGuiSettings.py
index de1db9d73e57841c1607073d3ad3757ec3021ac4..1adf12e286f600d439bf87c5ff93c4ae1bfe5d59 100644
--- a/Code/Mantid/scripts/test/SansIsisGuiSettings.py
+++ b/Code/Mantid/scripts/test/SansIsisGuiSettings.py
@@ -244,5 +244,24 @@ class Sans2DIsisGuiSettings(unittest.TestCase):
         self.checkFloat(tofs[1], 65000)
 
 
+    def test_time_shifts_for_added_event_files(self):
+        # Check for correct input
+        shifts = '12, 13, 14'
+        num_files = 4
+        output = i.check_time_shifts_for_added_event_files(number_of_files = num_files, time_shifts=shifts)
+        self.assertTrue(not output)
+
+        # Check warning is produced for mismatch in number of shifts and files, ideally #shifts = N-1 and #files=N
+        shifts2 = '12, 13'
+        num_files2 = 4
+        output2 = i.check_time_shifts_for_added_event_files(number_of_files = num_files2, time_shifts=shifts2)
+        self.assertTrue(output2.startswith('Error: Expected N-1 time shifts '))
+
+        # Check error is produced for lexically incorrect shifts, ie shifts which cannot be converted to float
+        shifts3 = '12, 13, a'
+        num_files3 = 4
+        output3 = i.check_time_shifts_for_added_event_files(number_of_files = num_files3, time_shifts=shifts3)
+        self.assertTrue(output3.startswith('Error: Elements of the time'))
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/Code/Tools/Development/git/git-add-test-data b/Code/Tools/Development/git/git-add-test-data
index be6e8a83d198c20d9cbd420cc9e33366d672d049..4686811c8dda3d1d0e2b3d38bffb57ca0b9d5fee 100755
--- a/Code/Tools/Development/git/git-add-test-data
+++ b/Code/Tools/Development/git/git-add-test-data
@@ -180,7 +180,7 @@ fi
 datafiles=$*
 all_hashed_files=""
 for datafile in $datafiles; do
-  hashed_content=$(add_test_data $datafile)
+  hashed_content=$(add_test_data ${GIT_PREFIX}$datafile)
   all_hashed_files="$all_hashed_files $hashed_content"
 done
 
diff --git a/Code/Tools/reports/facility-code-changes.py b/Code/Tools/reports/facility-code-changes.py
index ce55006dcd1f90b2740b4b8798201202ac651670..645589a536805d782c620654aac14159d6a5863f 100644
--- a/Code/Tools/reports/facility-code-changes.py
+++ b/Code/Tools/reports/facility-code-changes.py
@@ -7,6 +7,60 @@ import subprocess
 import csv
 import argparse
 import os
+import time
+
+def generate_file_changes_data(year_start, year_end):
+
+    current_year = int(datetime.datetime.now().strftime("%Y"))
+    current_month = int(datetime.datetime.now().strftime("%m"))
+
+    print('Generating git file change data...')
+
+    for year in range(year_start, year_end + 1):
+        for month in range(1, 13):
+            # Don't go past the current month
+            if current_year == year:
+                if month > current_month:
+                    continue
+            since = "--since='{0}-{1}-1'".format(str(year), str(month))
+            until = "--before='{0}-{1}-{2}'".format(str(year), str(month), str(days_in_month[month-1]))
+
+            date_key = str(year)+'-{0:02d}'.format(month)
+
+            f = open('facility-file-changes-{0}.stdout'.format(date_key),'w',buffering=0)
+            arg_changes = ['git', 'log', '--pretty=format:"%aE"', '--shortstat', since, until]
+            sub = subprocess.Popen(arg_changes, stdout=f, stderr=subprocess.PIPE, cwd=repolocation)
+            f.flush()
+            os.fsync(f.fileno())
+            f.close()
+
+def generate_commit_data(year_start, year_end):
+
+    current_year = int(datetime.datetime.now().strftime("%Y"))
+    current_month = int(datetime.datetime.now().strftime("%m"))
+
+    print('Generating git commit data...')
+
+    for year in range(year_start, year_end + 1):
+        for month in range(1, 13):
+            # Don't go past the current month
+            if current_year == year:
+                if month > current_month:
+                    continue
+
+            since = "--since='{0}-{1}-1'".format(str(year), str(month))
+            until = "--before='{0}-{1}-{2}'".format(str(year), str(month), str(days_in_month[month-1]))
+
+            date_key = str(year)+'-{0:02d}'.format(month)
+
+            f = open('facility-commits-{0}.stdout'.format(date_key),'w',buffering=0)
+            args_commits = ['git', 'log', '--pretty=format:"%aE"', since, until]
+            sub = subprocess.Popen(args_commits, stdout=f, stderr=subprocess.PIPE, cwd=repolocation)
+            f.flush()
+            os.fsync(f.fileno())
+            f.close()
+
+
 
 if __name__ == '__main__':
     print("Generating some random metrics...\n")
@@ -102,6 +156,11 @@ if __name__ == '__main__':
     # year_end = year_start
     year_end = current_year
 
+    generate_commit_data(year_start, year_end)
+    generate_file_changes_data(year_start, year_end)
+
+    time.sleep(20)
+
     for year in range(year_start, year_end + 1):
         print("------{0}------".format(str(year)))
         for month in range(1, 13):
@@ -117,21 +176,13 @@ if __name__ == '__main__':
             until = "--before='{0}-{1}-{2}'".format(str(year), str(month), str(days_in_month[month-1]))
             
             date_key = str(year)+'-{0:02d}'.format(month)
-            
-            f = open('facility-file-changes-{0}.stdout'.format(date_key),'w')
-            arg_changes = ['git', 'log', '--pretty=format:"%aE"', '--shortstat', since, until]
-            sub = subprocess.Popen(arg_changes, stdout=f, stderr=subprocess.PIPE, cwd=repolocation)
-            f.close()
-            
-            # stdout, stderr = sub.communicate()
-            # output = stdout.split('\n')
 
             facility_commits[date_key] = {}
             facility_changed[date_key] = {}
             facility_added[date_key] = {}
             facility_removed[date_key] = {}
             
-            freading = open('facility-file-changes-{0}.stdout'.format(date_key),'r')
+            freading = open('facility-file-changes-{0}.stdout'.format(date_key),'r',buffering=0)
 
             # initialize facility counters
             for org in organisations:
@@ -192,16 +243,10 @@ if __name__ == '__main__':
                     print("Email ({0}) couldn't be matched to a facility!".format(str(email_changes)))
 
             freading.close()
-            
-            f2 = open('facility-commits-{0}.stdout'.format(date_key),'w')
-            args_commits = ['git', 'log', '--pretty=format:"%aE"', since, until]
-            # print(args_commits)
-            sub2 = subprocess.Popen(args_commits, stdout=f2, stderr=subprocess.PIPE, cwd=repolocation)
+
             commits = 0
-            
-            f2.close()
-            
-            f2reading = open('facility-commits-{0}.stdout'.format(date_key), 'r')
+
+            f2reading = open('facility-commits-{0}.stdout'.format(date_key), 'r', buffering=0)
 
             for line in f2reading:
                 found = False
@@ -248,6 +293,8 @@ if __name__ == '__main__':
     csvadded.close()
     csvremoved.close()
 
+    f = open('last-updated','w')
+    f.write(str(datetime.datetime.now()))
+    f.close()
 
-
-    print("All done!\n")
+    print("All done!\n")
\ No newline at end of file
diff --git a/Code/Tools/scripts/ConvertToRST/ConvertWikiPage.py b/Code/Tools/scripts/ConvertToRST/ConvertWikiPage.py
new file mode 100644
index 0000000000000000000000000000000000000000..618c066e923864977aee829330c5b004a296337c
--- /dev/null
+++ b/Code/Tools/scripts/ConvertToRST/ConvertWikiPage.py
@@ -0,0 +1,284 @@
+###########################################################################################
+# Converts mediawiki pages to rst pages for sphinx.
+# run with -h for command line arguments
+#
+# sample command C:\MantidInstall\bin\python.exe C:/Mantid/Code/Tools/scripts/ConvertToRST/ConvertWikiPage.py
+#                       -o C:/Mantid/Code/Mantid/docs/source/training/MBC_Displaying_data_Formatting.rst
+#
+# pandoc must be installed an in the path
+#
+# extends pandoc by downloading and correcting image links, and adding links for algorithms,
+# fit functions and common concepts (workspace types)
+#
+# Limitations:
+# 1. in adding text to links or images in tables the table formatting will be disrupted
+# 2. pandoc creates some images in an inline format, these cannot have the align tags added
+#    back on, this is marked with a comment, the solution is probably to move the image from
+#    the inline to normal format.
+# 3. Image links cannot have spaces in the filename in rst.
+#    The spaces are removed in the downloaded file names, but not the links in the rst files.
+#
+##########################################################################################
+import os
+import re
+import sys
+import urllib2
+import urlparse
+import argparse
+import subprocess
+import mantid
+
+def readWebPage(url):
+    # set your environment HTTP_PROXY to be your proxy
+    # for ral HTTP_PROXY=http://wwwcache.rl.ac.uk:8080
+    aResp = urllib2.urlopen(url)
+    web_pg = aResp.read()
+    return web_pg
+
+def downloadImage(imgUrl, filePath):
+    downloadedImage = file(filePath, "wb")
+
+    imageOnWeb = urllib2.urlopen(imgUrl)
+    while True:
+        buf = imageOnWeb.read(65536)
+        if len(buf) == 0:
+            break
+        downloadedImage.write(buf)
+    downloadedImage.close()
+    imageOnWeb.close()
+
+    return filePath
+
+def convertURLToRaw(url):
+    return url + "?action=raw"
+
+def covertMediaWikiToRST(url):
+    cmd = 'pandoc -f mediawiki -t rst "' + url + '"'
+    print cmd
+
+    return runProcess(cmd)
+
+def runProcess(cmd):
+    # instantiate a startupinfo obj:
+    startupinfo = subprocess.STARTUPINFO()
+    # set the use show window flag, might make conditional on being in Windows:
+    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
+
+    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+                     startupinfo=startupinfo)
+    output, error = p.communicate()
+    output = output.replace("\r\n","\n")
+    print error
+    return output
+
+def processImageLinks(mediawikiText,rstText, imagePath, relImagePath):
+    retRstText = rstText
+    mwImagePattern = re.compile(r'\[\[(Image|File):(.+?)(\|.*?)?(\|.*?)?(\|.*?)?(\|.*?)?(\|.*?)?(\|.*?)?\]\]',
+                                re.IGNORECASE)
+    rstImagePattern = re.compile(r'figure:: (([\w\-\_\\\/]+)\.(\w{2,5}))(.{0,50}\3){2}',
+                            re.DOTALL)
+    rstSubstitutionImagePattern = re.compile(r'(figure|image):: (([\w\-\_\\\/]+)\.(\w{2,5}))')
+
+
+    imgLinkDict ={}
+    #for all of the mediawiki links
+    for m in re.finditer(mwImagePattern, mediawikiText):
+        print ("processing image link",m.group(0))
+        rstLink = generateRstImageLink(m,relImagePath)
+        imgLinkDict[m.group(2)] = rstLink
+        print (rstLink)
+
+    #for all of the rst figure links
+    replacements = []
+    for m in re.finditer(rstImagePattern, retRstText):
+        rstLink = imgLinkDict[m.group(1)]
+        replacements.append((m.start(), m.end(), m.group(1), rstLink))
+
+    #perform replacements in reverse order
+    for (start,end,imagefile,rstLink) in reversed(replacements):
+        retRstText = retRstText[0:start] + rstLink + retRstText[end:]
+
+    replacements = []
+    for m in re.finditer(rstSubstitutionImagePattern, retRstText):
+        rstLink = imgLinkDict[m.group(2)]
+        rstLink = cleanInlineImagesDefinition(rstLink)
+        replacements.append((m.start(), m.end(), m.group(2), rstLink))
+
+    #perform replacements in reverse order
+    for (start,end,imagefile,rstLink) in reversed(replacements):
+        retRstText = retRstText[0:start] + rstLink + retRstText[end:]
+
+    #get all of the image files
+    for imageName in imgLinkDict.keys():
+        saveImageFromMW(imageName,imagePath)
+
+
+    return retRstText
+
+def saveImageFromMW(imageName,path):
+    url =  "http://www.mantidproject.org/File:"+imageName.replace(" ","_")
+    print "Downloading image: ", url
+    imagePage = readWebPage(url)
+    mwImagePattern = re.compile(r'<div class="fullImageLink" id="file"><a href="([\/\w\.\-]+)">')
+
+    imagePath = path + "/" + imageName.replace(" ","")
+
+    match = re.search(mwImagePattern,imagePage)
+    if match is not None:
+        imageURL = match.group(1)
+        imageURL = "http://www.mantidproject.org" + imageURL
+        if not os.path.exists(imagePath):
+            print "saving ", imageName, "to", imagePath
+            downloadImage(imageURL,imagePath)
+
+def generateRstImageLink(match,relImagePath):
+    link = "image:: " + relImagePath+ "/" + match.group(2) + "\n"
+    for i in range(3,len(match.groups())):
+        if match.group(i) is None:
+            break
+        #strip off the first character as it is the | pipe
+        imageOption = addImageOption(match.group(i)[1:])
+        if imageOption is not None:
+            link += "\t\t\t" + imageOption + "\n"
+    return link
+
+def addImageOption(mwImageOption):
+    imageOption = mwImageOption.strip()
+    if len(imageOption)>0:
+        if imageOption.endswith("px"):
+            return ":width: " + imageOption
+        elif imageOption in ["right","left","middle","centre"]:
+            return ":align: " + imageOption
+        else:
+            return ":alt: " + imageOption
+
+def cleanInlineImagesDefinition(rstLink):
+    match = re.search(r'^\s+:align:\s+\w+\s*$',rstLink,re.MULTILINE)
+    if match is not None:
+        #take the align out
+        rstLink = rstLink[0:match.start()] + rstLink[match.end()+1:]
+        #then add it at the end as a comment
+        rstLink += ".. FIXME (inline definition does not allow align)" + match.group(0)
+    return rstLink
+
+def ensureDirectoriesExist(path):
+    try:
+        os.makedirs(path)
+    except OSError:
+        pass
+
+def addLocalLinks(rstText,list,prefix):
+    retRstText = rstText
+    #build regex string for simple words
+    regex = r"[^`<]((\*{0,2})(\b" + r"\b|\b".join(list) + r"\b)\2)[^`_]"
+    pattern = re.compile(regex)
+
+    replacements = []
+    for m in re.finditer(pattern, retRstText):
+        rstLink = ":ref:`" + m.group(3) + " <" + prefix + m.group(3) + ">`"
+        print ("processing new link",m.group(1), rstLink)
+        replacements.append((m.start(1), m.end(1), m.group(1), rstLink))
+
+    #perform replacements in reverse order
+    for (start,end,item,rstLink) in reversed(replacements):
+        retRstText = retRstText[0:start] + rstLink + retRstText[end:]
+
+    #build regex string for links
+    regexLink = r"`(.+?)<(\b" + r"\b|\b".join(list) + r"\b)>`__"
+    patternLink = re.compile(regexLink)
+    replacements = []
+    for m in re.finditer(patternLink, retRstText):
+        rstLink = ":ref:`" + m.group(1) + " <" + prefix + m.group(2) + ">`"
+        print ("processing existing link",m.group(0), rstLink)
+        replacements.append((m.start(), m.end(), m.group(0), rstLink))
+
+    #perform replacements in reverse order
+    for (start,end,item,rstLink) in reversed(replacements):
+        retRstText = retRstText[0:start] + rstLink + retRstText[end:]
+
+    return retRstText
+
+def fixUnderscoresInRefLinks(rstText):
+    retRstText = rstText
+    retRstText = re.sub(r"\b\\\_","_",retRstText)
+
+    return retRstText
+
+################################################################################################################
+
+parser = argparse.ArgumentParser(description='Converts mediawiki pages to rst pages for sphinx.')
+parser.add_argument('inputURL', help='the url of a mediawiki page')
+parser.add_argument('-o', '--o',
+                    help='Provide a path to output to a file')
+parser.add_argument('-i', '--i',
+                    help='Provide a relative path from the file to the images directory')
+parser.add_argument('-rp', '--rp',
+                    help='Provide a reference link prefix')
+parser.add_argument('-r', '--r',
+                    help='Provide a reference link')
+
+args = parser.parse_args()
+print args.inputURL
+print args.o
+
+urlSegments = urlparse.urlparse(args.inputURL)
+pageName = urlSegments.path[1:]
+print "Parsing ", pageName
+
+#run pandoc and get the output in rst
+mediawikiText = readWebPage(convertURLToRaw(args.inputURL))
+
+#run pandoc and get the output in rst
+rstText = covertMediaWikiToRST(convertURLToRaw(args.inputURL))
+
+#print "*****************"
+#print rstText
+#print "*****************"
+
+relPath = "../images"
+if args.i is not None:
+    relPath = os.path.dirname(args.i)
+outDir = os.curdir
+if args.o is not None:
+    outDir = os.path.dirname(args.o)
+
+imagePath = os.path.join(outDir,relPath)
+imagePath = os.path.abspath(imagePath)
+print imagePath, outDir
+
+ensureDirectoriesExist(imagePath)
+ensureDirectoriesExist(outDir)
+
+#perform any processing beyond pandoc
+rstText = fixUnderscoresInRefLinks(rstText)
+
+rstText = processImageLinks(mediawikiText,rstText, imagePath, relPath)
+
+wsList = ['EventWorkspace','MatrixWorkspace','PeaksWorkspace','MDWorkspace','Table Workspaces','WorkspaceGroup',
+          'RectangularDetector','RAW File','Facilities File','FitConstraint','Framework Manager',
+          'Instrument Data Service','InstrumentDefinitionFile','InstrumentParameterFile','Properties File',
+          'MDHistoWorkspace','MDNorm','Nexus file','PeaksWorkspace','Point and space groups','RAW File'
+          'Shared Pointer','Symmetry groups','Unit Factory','UserAlgorithms','Workflow Algorithm',
+          'Workspace','Workspace2D','WorkspaceGroup']
+rstText = addLocalLinks(rstText,wsList,"")
+
+algList = mantid.AlgorithmFactory.getRegisteredAlgorithms(False).keys()
+rstText = addLocalLinks(rstText,algList,"algm-")
+
+funcList = mantid.FunctionFactory.getFunctionNames()
+rstText = addLocalLinks(rstText,funcList,"func-")
+
+#add reference name
+refPrefix = "train-"
+if args.rp is not None:
+    refPrefix = args.rp
+refName = pageName
+if args.r is not None:
+    refName = args.r
+rstText = ".. _" + refPrefix + refName + ":\n\n" + rstText
+
+#save output
+if args.o is not None:
+    sys.stdout = open(args.o, 'w')
+print rstText
+